Categories
Meetings & Conferences

SBML Hackathon Day 2

Things changing with SBML Level 3

A complete list is available at http://sbml.org/Community/Wiki/SBML_Level_3_Core/Workplan

These are just the ones I found the most interesting as we went through the whole list.

+ Move species type and compartment type outside of the core. These were used for annotation reasons, but could also do it with the species and compartments using their annotation/RDF sections. If the reason to use it was to group together things for annotation, why just for species and compartments? Why not for all things? In which case, a generic mechanism would be a good thing. Further, the original reason for them was as the first step in a generalized reaction (e.g. automatically generate reactions when all matched species are present in the compartment). If they ever generalize reactions, then they will reintroduce something that works in a similar way as an extension. In summary, what these things do will be done within the new Annotation package that will be part of Level 3.
+ Remove default values on optional attributes and make the necessary adjustments.
+ Introduce an SIdRef/UnitSId type. These types will match the SId / UnitSId, and will allow differentiation between ids that are references and ids that are ids. This is a really good idea, and will help out with the Xpath-based referencing method used in the L3 hierarchical modelling extension.
+ Update the units section
+ Update the reactions section. This improves how stoichiometry is dealt with. Will explain reaction extent, add sections for stoichiometry and conversion factor and remove stoichiometryMath. You cannot show a distinction between targets for optimization and those which aren't. However, this isn't a problem that is strictly for SBML, as "parameter" in SBML means something different.
+ Remove the parts of the spec that belong in a Best Practices document
+ Remove the parts of the explanation of kinetics for multicompartment models

http://sbml.org/Events/Hackathons/The_7th_SBML_Hackathon

Please note that this post is merely my notes on the presentation. They are not guaranteed to be correct, and unless explicitly stated are not my opinions. They do not reflect the opinions of my employers. Any errors you can happily assume to be mine and no-one else's. I'm happy to correct any errors you may spot – just let me know!

Read and post comments |
Send to a friend

original

Categories
Meetings & Conferences

SBML Hackathon 2009: Introduction and libSBML 4 Overview

Keep track of the tweets at http://search.twitter.com/search?q=%23sbml

Nicolas' Introduction

Sponsored by Elixir ("a sustainable infrastructure for biological information in Europe"). Very nice graph of the minimal cost of storage and other IT resources (such as EBI) compared to the funding for the genome sequencing project. Elixir is a 4.5 million euro grant awarded in May 2007, but should have a rolling funding structure. The idea is that it will be a reliable distributed infrastructure. It's quite a large infrastructure with 14 work packages. Nicolas is coordinating the WP 13.3 technical feasibility study.

Other sponsors are ENFIN, NIH, Beckman Institute in Caltech.

Michael's Introduction

The goals of the hackathon: meet others working on software tools of all kinds; discuss SBML; learn to work with SBML; implement support for SBML in your software; test your software's SBML support. The tutorials are on libSBML version 4 (beta) and an SBML test suite update (though the re-write isn't finished yet). There are some suggested starting places for work and some competitions planned: a best poster competition, an sbml matrix competition, and an libsbml documentation competition (see http://sbml.org/Events/Hackathons/The_7th_SBML_Hackathon/Supplementary_documents_for_the_2009_SBML_Hackathon).

libSBML 4: Sarah Keating

libSBML is an API for working with SBML, with all the standard functions. There are a number of model history/metadata convenience methods that allow you to set such metadata without messing with the underlying attributes. For every attribute on every object, there are the setX(), getX(), and isSetX() methods (and unsetX() if it's allowed to be empty).

What is the difference between version 3 and version 4 of libSBML? There are changes for the developers (hidden from the normal users), functionality changes. The focus is to help people avoid creating invalid SBML. Sbase has metaid, notes and annotation. In libSBML 3, id and name exist on Sbase and shouldn't! So, libSBML 4 now better reflects SBML and name and id have moved out of Sbase.

Additionally, all change functions check first to see if the action is appropriate. For example, you can't set the compartment type on a level 1 model. It doesn't check that the id is already present in the model, but it does check that the syntax of the id is valid. It will also check that the math is well-formed. Each thing returns success or failure: 0 is success, and nonzero (with an enumeration) is various types of errors. Copying objects resets their parents to null. The setLevelAndVersion() method now has a strict argument (boolean). If false, it is the same behavior as level 3, if true will check if the converted model is really valid. If it's not valid, then it won't allow the conversion and reports an error.

Constructors now take a level and version, with an optional XML namespace. These are the only public constructors. There are huge problems with people creating objects and then adding them to a document where the level/version was already set and causing problems.

See http://sbml.org/SBML_Projects/libSBML/Development for details.

http://sbml.org/Events/Hackathons/The_7th_SBML_Hackathon

Please note that this post is merely my notes on the presentation. They are not guaranteed to be correct, and unless explicitly stated are not my opinions. They do not reflect the opinions of my employers. Any errors you can happily assume to be mine and no-one else's. I'm happy to correct any errors you may spot – just let me know!

Read and post comments |
Send to a friend

original