Download Links

Simulate 3D | SBW (Win32) | Bifurcation Discovery | FluxBalance

Wednesday, January 30, 2013

COPASI 4.9.45 Released

Just in time for last weeks COPASI workshop we released a new version of COPASI. This has been the first release I’ve seen since joining the team in March of last year. There have been a number of changes in this release, and I thought I would call out those, that help me the most. The first one definitely has to be the changes in plots. Starting with COPASI 4.9.45 you can go ahead and define line style and widths of curves (and points). To make that even easier, you can do so for multiple curves at once. So that should make it much easier to create appealing plots. Also the plot window has changed:
image
It now allows to toggle between log mode of the individual axes, without the need to re-execute the task. Also prominently featured is the Window menu, that finally allows you to quickly select the plot you were looking for.
Having been re-elected for another term as SBML editor, I can’t help but mention that more of the models you define in COPASI can now be shared with other SBML capable tools. Most notably COPASI now exports rates of compartments, species and global parameters (using a custom annotations) as well as the drawing of random numbers from uniform and normal distribution (again using a custom annotation). These annotations (see below for example) follow the approach I’ve outlined before (Though I adapted it to use a reference to the UncertML definition that people liked much better for some reason). The newest snapshot of SBW can readily import these annotations already!
Apart from these, this COPASI release features a first spring layout algorithm and import for CellDesigner annotations.
image
There also is a new cross section task, that you could use for bifurcation plots (rather than to define events to scan over yourself), but those will be part of a future post! In any case there are a large number of additional changes that will make working with COPASI quite a lot easier, so grab your version here:
And as promised, here the function definitions exported.
rateOf:
<functionDefinition id="rateOf">
  <annotation>
    <symbols xmlns="http://sbml.org/annotations/symbols" 
    definition="http://en.wikipedia.org/wiki/Derivative"/>
  </annotation>
  <math xmlns="http://www.w3.org/1998/Math/MathML">
    <lambda>
      <bvar>
        <ci> a </ci>
      </bvar>
      <notanumber/>
    </lambda>
  </math>
</functionDefinition>

Uniform:
<functionDefinition id="RUNIFORM">
  <annotation>
    <distribution xmlns="http://sbml.org/annotations/distribution" 
    definition="http://www.uncertml.org/distributions/uniform"/>
  </annotation>
  <math xmlns="http://www.w3.org/1998/Math/MathML">
    <lambda>
      <bvar>
        <ci> a </ci>
      </bvar>
      <bvar>
        <ci> b </ci>
      </bvar>
      <apply>
        <divide/>
        <apply>
          <plus/>
          <ci> a </ci>
          <ci> b </ci>
        </apply>
        <cn type="integer"> 2 </cn>
      </apply>
    </lambda>
  </math>
</functionDefinition>

Normal:
  <functionDefinition id="RNORMAL">
     <annotation>
    <distribution xmlns="http://sbml.org/annotations/distribution" 
    definition="http://www.uncertml.org/distributions/normal"/>
     </annotation>
     <math xmlns="http://www.w3.org/1998/Math/MathML">
       <lambda>
         <bvar>
           <ci> m </ci>
         </bvar>
         <bvar>
           <ci> s </ci>
         </bvar>
         <ci> m </ci>
       </lambda>
     </math>
   </functionDefinition>

Monday, January 28, 2013

libSBML 5.7.0 Released

I know I’m two weeks late by now, still I wanted to let you know that we released a new version of libSBML (be sure to have a look at the full release announcement). Since the last release the hierarchical modeling composition package was approved and thus for the first time the comp package is enabled in all binaries. So no matter which one you grab, you will be able to build comp models with it, and read and write them. Much work has gone into the flattening algorithm so that even if your software does not actually make use of the comp package yet, you could automatically flatten the model into a Level 3 core model. To make this possible even from the (otherwise from comp neglected) C API, we finally wrapped the libSBML Converter API for C (including the SBMLConverterRegistry). So now you can query for converters from all languages. Example conversions are available that demonstrate how to flatten the model for all binding languages. Just as example, given an SBMLDocument ‘doc’ all it would take to convert the model are these three lines (in C#)

var props = new ConversionProperties();
props.addOption("flatten comp", true, "flatten comp");
int result = doc.convert(props);

After that, the document will be flattened. And can be treated as a regular Level 3 model. (Though you might want to check for a zero result, just to make sure no issues crept up during the conversion (which would be logged in the error log)).


Perhaps one more word about ExternalModelDefinitions. LibSBML will automatically locate files on the *local* hard drive, relative to the document opened. If you are loading documents from string, and want this feature to be working, you can set the SBMLDocuments locationURI property. More generally the comp package includes a ResolverRegistry, where you can register your own resolvers. These resolvers basically allow you to return an SBML document for a given URI. This facility also would allow you to easily extend the resolvers to resolve documents from the web, from databases and other non-local sources. To demonstrate this, I wrote an example, the SBMLHttpResolverExample, that uses libCURL to download a model from any given website (with the caveat that the comp specification does not allow the inclusion of non-level 3 models, which means that all models from the BioModels Database are rejected for the time being. If you, like me, don’t particularly like that behavior, you might want to raise that issue with the comp working group).


Please grab the new version from SourceForge:


http://sourceforge.net/projects/sbml/files/libsbml/5.7.0/


Happy coding!


SBML logo