We have released SBML.jl back in February, but since the original micropackage keeps packing up new features, I guess it’s a good time to announce it here now.
SBML.jl is a wrapper for libSBML (http://sbml.org/Software/libSBML), which is a de-facto standard for semantic storage of metabolic (and other) models in systems biology. The package uses a JLL wrapper around the C library API, ensuring the compatibility with the standard. We use the C calls to extract a (slightly reduced) representation of the stored SBML model, and output it as a normal Julia data struct
ure, allowing easy and efficient manipulation of the model data. Others may use SBML_jll
wrapper directly to interface with more advanced functions from libSBML.
We expect that the library is going to be extended on demand, mainly with extracting new kinds of information, as has already happened several times (last time we added extraction of reaction kinetics math).
The use is pretty straightforward: You give it a filename, and get a struct with all possible information extracted from the file. With one well known toy model of E. Coli, that may look as follows:
julia> using SBML
julia> m = readSBML("e_coli_core.xml");
julia> keys(m.species)
KeySet for a Dict{String, Species} with 72 entries. Keys:
"M_succoa_c"
"M_ac_c"
"M_etoh_c"
"M_acald_e"
"M_oaa_c"
"M_2pg_c"
"M_coa_c"
"M_nadh_c"
⋮
julia> m.species["M_glu__L_c"].name # very tasty!
"L-Glutamate"
julia> m.species["M_glu__L_c"].formula
"C5H8NO4"
PS. thanks laurentheirendt
stelmo
@anandj @paulflang and others for programming&support&ideas! (I can only @
-hilite 2 users, haha)