From: jo bruck on
> tool. In this case, as far as I know, Matlab is way too slow
> to do parameter scan/fit (I have 20 ODEs and up to 100
> parameters, no, I wont fit all of them) since numerical
> integration does not happen within a compiled code.(I
assume most tools allowing parameter fit convert stuff in
> C/fortran/whatever) While I am far from being able to make
> sound suggestions, I am wondering why a compiled C code
> cannot be produced with Matlab.

Comment on my previous:
Hennings Schmidt's SBtoolbox2 + SBPD (add-on), based on
'SBMLtoolbox' and 'libSBML') might be a serious Matlab tool
too, I am still in the making friends phase though.
AND he seems to have dealt with the above speed issue:
(under "High Performance Simulation")
http://sbtoolbox2.org/main.php?display=documentationSBPD&menu=overview

According to the website, for exporting files, all but one
SBML Vers.2 features have been implemented.
(if it also accepted SimBio code, this would be an answer
to the topic creator's question...:(


From: Henning Schmidt on
Hello,

just found this thread and wanted to give some info.

> >CellDesigner? Is there anything you can not do with
> SimBiology but like to do?

Having a look at the features of Simbiology there are tons of things the modeller needs that are not available in simbio. (yet?).

Just as an example: a reasonable organization of modeling projects in terms of models, experiment descriptions, and measurement data.

And I am not even starting to talk/write about model analysis methods.

1000US$ ... is this true?

> tool. In this case, as far as I know, Matlab is way
> too slow to do parameter scan/fit (I have 20 ODEs and up to 100

Yes, MATLAB is to slow for that. But it is extremely easy to interface MATLAB with a C-code integrator. It is very straight forward to generate model C-code and to compile and link the stuff to get an executable mex file doing the integration. Just a comparison of performances:

http://sbtoolbox2.org/main.php?display=documentationSBPD&menu=benchmark

This was NOT achieved with the lcc C-compiler included in MATLAB but with the freely available MinGW compiler.

The lcc compiler does a crappy code optimization and resulting MEX files execute up to 3.5 times slower (in my experience) than if using the gcc.

A benchmark can be found here:

http://sbtoolbox2.org/main.php?display=documentationSBT&menu=mexfc

Compared to standalone tools the simulation performance of the SBTOOLBOX2 is higher, even though it uses MATLAB as a platform. The reason is that the model is really compiled and not interpreted through function calls to libSBML.

A year ago I compared a test version of simbio with the SBTOOLBOX and got the result that already the ode15s simulation of the toolbox was 10 times faster than the simbio simulation. Not to speak about the MEX file simulation of the toolbox. This result was based on one of the models in the Biomodels database ... I dont recall which one it was.

The largest model we have simulated with the toolbox was a model containing 50.000 nodes with 23 states _each_. To be honest, we used a slightly customized version of the toolbox that allowed us to distribute the nodes on as many processors as we wished (well we only had 8 processors we could use).

So ... you get the speed of compiled C ... and the advantages of MATLAB ... all in one package.

The mingw compiler is included in the toolbox and the user will not even notice that it is used.


> guess I will have to try
> http://sbml.org/Software/SBMLToolbox
> no money but endless hours of intallation sessions
> involved...

You might even try the SBTOOLBOX2 (it includes the import and export parts of the SBML Toolbox). It handles all the features of SBML (L2V1 and L1 V1and V2). The exception are units, which are ignored. L2V3 support is almost completed and will be available latest after summer. After all, not that many L2V3 models are out there right now.

SBML models can easily be imported. And they can also be easily exported from the SBmodel format used in the toolbox. The user can use default settings or add as much manual information as desired. Everything is transparent.

Best,
Henning

PS: I do not try to convince anyone to use the toolbox ... but if you do try it out ... leave me a note about things that are missing and could be improved. There always are!
From: Ricardo Paxson on
Hello,

There are 3 different topics being discussed here, 1) SBML compliance, 2) Analysis methods and 3) Simulation Performance. I
would like to add some info on each:

1) SBML compliance is a difficult matter. While it is meant to be a standard format, we have not seen any tool, commercial or
open-source, that supports the entire specification. SimBiology supports most of the standard but not all of it; we are working to
close this gap. I might add that supporting Unit specifications, which SimBiology does, adds a fair amount of complication to this
matter since the format has changed a couple of times in incompatible ways, e.g. SpatialSizeUnits.

2) There are a variety of analysis methods needed by modelers. SimBiology has many of these (see
http://www.mathworks.com/products/simbiology for more info.) and of course we are working on more. Our process is to
prioritize features requested by users so if you have specific needs please let us know.

3) SimBiology simulation performance has been essentially MATLAB's ODE performance since version 1.0. We are aware that for
large models this is not adequate. A straightforward approach to increasing simulation performance is to generate C/Fortran code
from MATLAB code and compile it on the fly (meaning without requiring the user to do anything). There are a few ways to do this
in MATLAB; one of them is the MEX interface as mentioned in a previous post. SimBiology is likely to do something similar in the
near future.
In the meantime there are 2 things that might help. In the version of SimBiology that shipped with R2008a we have added a third
party solver implemented in C; this adds some performance for a class of models.
And secondly, for problems such as parameter scans (where each run is independent of the others), the use of the Parallel
Computing Toolbox in conjunction with SimBiology increases performance proportionally with the size of the cluster.

On a separate note, I have emailed people on this thread asking for information on which features of SBML where being used by
the model that did not work, but I have not heard back. If someone could post what the troubles are with SBML import/export we
would very much appreciate it.

Cheers,

-pax


From: EL on
Henning Schmidt schrieb:

> just found this thread and wanted to give some info.
>
>>> CellDesigner? Is there anything you can not do with
>> SimBiology but like to do?
>
> Having a look at the features of Simbiology there are tons of things the modeller needs that are not available in simbio. (yet?).

Yes, that is very likely a "just yet" ;-).

> And I am not even starting to talk/write about model analysis methods.

Right, but I have the impression that these analysis methods are still
evolving in the whole space of Systems Biology anyway. There is a lot of
change going on in this scientific area, and many methods and standards
keep on changing... as always when this happens, this has good sides
and a bad sides. The good side is the evolution of methods, the spirit
and chances that good ideas have. But not all of these ideas and methods
are equally good in reality, or reach a "state of the art" level.
However, this will change over time and settle down.

>> guess I will have to try
>> http://sbml.org/Software/SBMLToolbox
>> no money but endless hours of intallation sessions
>> involved...

SimBiology aims to provide an easy to use toolbox and interface for
modellers, with methods that are kind of "settled" and can be seen as
state of the art (like parameter estimation). The aim of the tool is
that you buy and install it, and use it. No fiddeling around with
installation issues, or not working environments, half baken methods,
incorrect results due to math library failure... etc. The set of
analysis methods will evolve and grow over time, but you will always
have the guarantee that "it just works" ;-).

As a commercial tool it guarantees the quality that you need when you
want to get your job done as modeller and the biologists in your lab or
managers want to see results (and don't care much about details, which
is often the case). Everything else you can leave up to the developers
at The Mathworks. If you want a special method: put it in as a feature
request - they will care and you save valuable time. So you have more
time for the really interresting things in Systems Biology: the models
themselves.
Or extend SimBio with your own functions if your request is too special
and unique. It's just MATLAB.

> This was NOT achieved with the lcc C-compiler included in MATLAB but with the freely available MinGW compiler.

The MSVC express compiler is also freely available. It produces better
binaries on Windows than MinGW and is fully supported for MEX. I am
running it here very successful.


- Eckhard
From: Henning Schmidt on
> Right, but I have the impression that these analysis
> methods are still
> evolving in the whole space of Systems Biology
> anyway. There is a lot of

OH YESSS! Definitely! Thats why MATLAB is such a perfect tool for research in systems biology. It is easy to modularize things and build upon existing features. I LOVE IT!

That is also exactly what the Systems Biology Toolbox 2 is for. It gives the user powerful features and functions at hand that the user can use. But the user can also easily add new functions. Its just MATLAB ... after all.

> However, this will change over time and settle down.

Within the next 2 decades probably! Systems Biology is a lot more complex than Bioinformatics and control theory ...

> that you buy and install it, and use it. No fiddeling
> around with
> installation issues, or not working environments,
> half baken methods,
> incorrect results due to math library failure... etc.

Fully agree. But it seems you haven't tested the SBTOOLBOX2 yet. Thats exactly the idea I had from the beginning of the development. It should be easy to install, just working without giving the user a headache, no problems with errors due to different versions of MATLAB, etc. etc. AND it lives actually up to these expectations as far as bug reports and user feedback have told me.

That the toolbox is free for use ... has of course been my personal choice since I believe in the power of open source.

And you would be amazed how much of great GPLed software packages are out there that can be used. Just take the gcc (or MinGW) as an example. Its free its open ... and it generates almost 4x faster code than the inbuild lcc compiler in the tool that you pay for, install, and use.

I can tell you, this up to 4x increase in simulation performance is quite nice when doing extensive parameter estimations. Or simulations of systems with > 1.000.000 dynamic state variables. But even in every day use it is pretty nice to gain that speed.

> As a commercial tool it guarantees the quality that
> you need when you
> want to get your job done as modeller and the
> biologists in your lab or
> managers want to see results (and don't care much
> about details, which
> is often the case). Everything else you can leave up
> to the developers
> at The Mathworks. If you want a special method: put
> it in as a feature
> request

Would be interesting to see what you manager will tell you if you tell him: "Sorry man, can't do that ... need to wait for the next release, which will be in half a year".

> The MSVC express compiler is also freely available.
> It produces better
> binaries on Windows than MinGW and is fully supported
> for MEX. I am
> running it here very successful.

Yes, but then we are back at what you said in the beginning. You like a tool that you install without fiddling around. So here you need to install at least 2 programs already.

Apart from that: Does the MSVC also compile Fortran code?
Not being able to compile Fortran code under windows as under matlab would not be an option for me (when it comes to the development of the toolbox). Many great packages are still written in fortran and some are used in the toolbox ... without the user even noticing it.

/Henning