The little b language: shared models built from reusable parts

The little b project is an effort to provide an open source language which allows scientists to build mathematical models of complex systems. The initial focus is systems biology. The goal is to stimulate widespread sharing and reuse of models.

The little b language is designed to allow biologists to build models quickly and easily from shared parts, and to allow theorists to program new ways of describing complex systems. Currently, libraries have been developed for building ODE models of molecular networks in multi-compartment systems such as cellular epithelia.

Little b is based in Common Lisp and contains mechanisms for rule-based reasoning, symbolic mathematics and object-oriented definitions. The syntax is designed to be terse and human-readable to facilitate communication. The environment is both interactive and compilable.

Yet another biological DSL.

As usual, it is best to start by looking at some sample models.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Modelica

I prefer Modelica. Seems little-b has kind of a different intention, but Modelica seems a lot more general, and it's semantics are quite different than any general purpose language, which (for me) encourages a different style of thinking - it's a modelling language, not a programming language.

I haven't seen Modelica yet.

I haven't seen Modelica yet. I'll have to take a look.

Thanks

Hugo, I just wanted to say thank you on behalf of the Modelica design group for your comments.

Personally I find your description of Modelica as a modeling language and not a programming language very gratifying because it validates what we were attempting to do. There are definitely times when I would like to have more support for imperative programming but the focus is definitely on a more declarative approach.

That being said, the language is still being actively refined so I think some of its current deficiencies will be addressed but the general spirit of it being a modeling language first and foremost has been solidly established. Thanks again.

b vs. kappa

Can anybody knowledgeable compare this to
kappa
, the other systems-biology modeling language coming out of the same department at Harvard?

I guess someone should write

I guess someone should write a review comparing the multitude of biological modeling languages. If there exists such a review, let me know...

Agreed.

As an experiment, I developed an SBML to Modelica translator for a recent conference. It was an interesting experience and gave me some insights into the different perspectives that systems biology folks have about describing systems.

Hugo makes the point above that Modelica is more general and I would completely agree. This gives languages like SBML and little-b advantages in the sense that they can provide syntax for highly biological or chemical specific aspects (e.g. reactions). On the other hand, Modelica's generality allows you to combine a wider range of behavior (e.g. blood transport, electrical circuits, etc) with these biological and chemical aspects.

I think this is an area where there are lots of great new ideas coming out. The challenge in many cases is coming up with syntax and semantics that are generally convenient without being overspecialized to one domain.

One last point. Setting language syntax and semantics aside, I want to point out that the fundamental mathematical form being assumed in each language has profound implications. Modelica is based on hybrid DAEs and I think this is in important point not to be overlooked (and I'm not trying to imply it is the only one that makes this assumption, just the only one I know). Many other approaches tend to use a more limiting form (e.g. explicit ODEs). While you can often "workaround" not having support for full hybrid DAEs, there are lots of extremely useful analyses that can done with that capability.

Modelica library and SBML translator

As a matter of fact we are currently involved in a project, BioBridge with an ambition to develop modeling and simulation tools for clinicians. For pathway modeling we are using Modelica and we are developing a Modelica library called BioChem as well as an Import/Export functionality to SBML (this functionality will be made available for modeling tool MathModelica in the future). The library will be made available for download within a few weeks.

The benefit of this approach is, as Hugo and mtiller pointed out, that it makes it possible to combine pathway modeling with e.g. physiological models of the cardiovascular system.