sbml l3 packages - brief overview and current status
DESCRIPTION
An overview of the SBML L3 packages under development and their current statusTRANSCRIPT
Sarah Keating
SBML Level 3 Packages
Status – July 2014
spatial
qual
Submodel 1 Submodel 2
comp
layout
core
SBML Level 3 Packages Modular approach
SBML Level 3 Packages
SBML Level 3 Packages
sbml.org/Documents/Specifications
#SBML_Level_3_Packages
SBML Level 3 Packages
SBML Level 3 Packages
SBML Level 3 Packages
Status
Status
Released
Specification document complete
Specification document approved
Two implementations
Status
Status
SUBJECT TO CHANGE
Implementations being worked on
Specification document being worked on
Draft available
Status
Status
Currently no activity
Package has been proposed
Stalled
Status
Status
Discussion
SBML Level 3 Packages
model submodel1 submodel2
enzyme
simple
Hierarchical Model Composition (comp)
<comp:listOfModelDefinitions> <comp:modelDefinition comp:id="enzyme"> <listOfCompartments> ... <comp:modelDefinition comp:id=“simple"> <listOfCompartments> ...
<model> ... <comp:listOfSubmodels> <comp:submodel comp:id="A" comp:modelRef="enzyme"/> <comp:submodel comp:id="B" comp:modelRef="simple“/> </comp:listOfSubmodels> </model>
Hierarchical Model Composition (comp)
model submodel1 submodel2
enzyme
simple
Hierarchical Model Composition (comp)
<comp:listOfExternalModelDefinitions> <comp:externalModelDefinition comp:id="ExtMod1“ comp:source="enzyme_model.xml" comp:modelRef="enzyme"/>
<model> ... <comp:listOfSubmodels> <comp:submodel comp:id="A" comp:modelRef="enzyme"/> <comp:submodel comp:id="B" comp:modelRef="simple“/> </comp:listOfSubmodels> </model>
Hierarchical Model Composition (comp)
<listOfExternalModelDefinitions> <comp:externalModelDefinition comp:id="ExtMod1“ comp:source="enzyme_model.xml" comp:modelRef="enzyme"/>
<model> ... <comp:listOfSubmodels> <comp:submodel comp:id="A" comp:modelRef="enzyme"/> <comp:submodel comp:id="B" comp:modelRef="simple“/> </comp:listOfSubmodels> </model>
Hierarchical Model Composition (comp)
Any URI
<comp:submodel comp:id="B" comp:modelRef="simple"> <comp:listOfDeletions> <comp:deletion comp:portRef="J0_port" comp:id="oldrxn"/> </comp:listOfDeletions>
<species id="S" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"> <comp:replacedBy comp:portRef="S_port" comp:submodelRef="B"/>
<compartment id="compartment" spatialDimensions="3" size="1" constant="true"> <comp:listOfReplacedElements> <comp:replacedElement comp:idRef="compartment" comp:submodelRef="A"/>
Hierarchical Model Composition (comp)
Hierarchical Model Composition (comp)
Hierarchical Model Composition (comp)
Library Support
libSBML Version 1 Release 2
JSBML Version 1 Release 2
Software Support
Antimony Reads/creates/writes
iBioSim Reads/creates/writes/simulates
COPASI Reads/simulates
Flux Balance Constraints (fbc)
<fbc:listOfFluxBounds> <fbc:fluxBound fbc:reaction="R1" fbc:operation="lessEqual" fbc:value="1"/> <fbc:fluxBound fbc:reaction="R1" fbc:operation=“greaterEqual" fbc:value=“0"/>
<reaction id="R1" reversible="false" fast="false"> <listOfReactants> <speciesReference species="IN" stoichiometry="1" constant="true"/> </listOfReactants> <listOfProducts> <speciesReference species="A" stoichiometry="1" constant="true"/> </listOfProducts> </reaction>
FluxBound 0 <= R1 <= 1
Flux Balance Constraints (fbc)
<fbc:listOfObjectives fbc:activeObjective="objective1"> <fbc:objective fbc:id="objective1" fbc:type="maximize"> <fbc:listOfFluxes> <fbc:fluxObjective fbc:reaction="R1" fbc:coefficient="1"/> <fbc:fluxObjective fbc:reaction="R2" fbc:coefficient=“2"/> </fbc:listOfFluxes> </fbc:objective>
Objective: maximize 1 R1 + 2 R2
Flux Balance Constraints (fbc)
<fbc:listOfObjectives fbc:activeObjective="objective1"> <fbc:objective fbc:id="objective1" fbc:type="maximize"> <fbc:listOfFluxes> <fbc:fluxObjective fbc:reaction="R1" fbc:coefficient="1"/> <fbc:fluxObjective fbc:reaction="R2" fbc:coefficient=“2"/> </fbc:listOfFluxes> </fbc:objective>
Objective: maximize 1 R1 + 2 R2
Flux Balance Constraints (fbc)
<fbc:listOfObjectives fbc:activeObjective="objective1"> <fbc:objective fbc:id="objective1" fbc:type="maximize"> <fbc:listOfFluxes> <fbc:fluxObjective fbc:reaction="R1" fbc:coefficient="1"/> <fbc:fluxObjective fbc:reaction="R2" fbc:coefficient=“2"/> </fbc:listOfFluxes> </fbc:objective>
Objective: maximize 1 R1 + 2 R2
Flux Balance Constraints (fbc)
Flux Balance Constraints (fbc)
Library Support
libSBML Version 1
JSBML Version 1
Software Support
SBW Flux Balance Reads/creates/writes/simulates
PySCeS-CBM Reads/creates/writes/simulates
COBRA libSBML converts to/from COBRA format
Qualitative Models (qual)
<qual:listOfQualitativeSpecies> <qual:qualitativeSpecies qual:compartment="cytosol" qual:constant="false" qual:id="A" qual:maxLevel="2" qual:name="sds" qual:initialLevel="0"/> <qual:transition qual:id="tr_A"> <qual:listOfInputs> <qual:input qual:qualitativeSpecies="A" qual:thresholdLevel="1" qual:transitionEffect="none“ /> </qual:listOfInputs> <qual:listOfOutputs> <qual:output qual:qualitativeSpecies=“B" qual:transitionEffect="assignmentLevel"/> </qual:listOfOutputs>
Qualitative Models (qual)
<qual:listOfFunctionTerms> <qual:functionTerm qual:resultLevel="2"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <!-- (A >= 1 and A < 2) or C < 1 --> <apply><or/><apply><and/> <apply><geq/><ci>A</ci><cn>1</cn> ... </qual:functionTerm> <qual:functionTerm qual:resultLevel="1"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <!-- (A < 1) and C >= 1 --> <qual:defaultTerm qual:resultLevel="0"/>
Qualitative Models (qual)
Qualitative Models (qual)
Library Support
libSBML Version 1
JSBML Version 1
Software Support
GinSim Reads/creates/writes/simulates
CellNetOpt Reads/creates/writes/simulates
CellCollective Reads/creates/writes/simulates
Layout (layout)
Layout (layout)
<listOfSpecies> <species id=“Glucose" compartment="compartment" initialConcentration="0" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false“/>
<layout:listOfSpeciesGlyphs> <layout:speciesGlyph layout:id="sGlyph_0" layout:species=“Glucose" > <layout:boundingBox> <layout:position layout:x="16" layout:y="18"/> <layout:dimensions layout:width="62" layout:height="40"/> </layout:boundingBox> </layout:speciesGlyph>
Library Support
libSBML Version 1
JSBML Version 1
Software Support
COPASI Reads/creates/writes/displays
Online Viewer Reads/displays
SBW Reads/displays
Layout (layout)
Rendering (render)
text
text
<listOfSpecies> <species id=“Glucose" compartment="compartment" initialConcentration="0" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false“/>
<layout:listOfSpeciesGlyphs> <layout:speciesGlyph layout:id="sGlyph_0" layout:species=“Glucose" >
Rendering (render)
<render:listOfStyles> <render:style render:idList=" sGlyph_0 "> <render:g render:stroke="black" render:stroke-width="1" render:fill-rule="nonzero" render:font-size="0" render:font-family="sans-serif" render:font-style="normal" render:font-weight="normal"> <render:curve render:transform="1,0,0,1,0,30“>
Library Support
libSBML Latest specification
JSBML Latest specification
Software Support
COPASI Reads/creates/writes/displays
Online Viewer Reads/displays
SBW Reads/displays
Rendering (render)
Multistate and Multicomponent species (multi)
Multistate and Multicomponent sp (multi)
stA
c1
B1
f1
c1
B2
f1
Multistate and Multicomponent sp (multi)
<multi:speciesType multi:id=“st_c" /> <multi:speciesType multi:id=“st_f" /> <multi:speciesType multi:id="st_B"> <multi:listOfSpeciesTypeInstances> <multi:speciesTypeInstance multi:id=“c1” multi:speciesType="st_c" multi:occur="1" /> <multi:speciesTypeInstance multi:id=“f1” multi:speciesType="st_f" multi:occur="1"/> </multi:listOfSpeciesTypeInstances> </multi:speciesType>
c1
B1
f1
Multistate and Multicomponent sp (multi)
<multi:speciesType multi:id="stA"> <multi:listOfSpeciesTypeInstances> <multi:speciesTypeInstance multi:id="B1“ multi:speciesType="st_B" multi:occur="1" /> <multi:speciesTypeInstance multi:id="B2“ multi:speciesType="st_B" multi:occur="1" /> </multi:listOfSpeciesTypeInstances> </multi:speciesType>
stA
c1
B1
f1
c1
B2
f1
Library Support
libSBML Latest specification
JSBML Older specification
Software Support
Simmune Reads/creates/writes/
Virginia Tech
Multistate and Multicomponent sp (multi)
Spatial processes (spatial)
<spatial:geometry spatial:coordinateSystem=“cartesian"> <spatial:listOfCoordinateComponents> <spatial:coordinateComponent spatial:id="x" spatial:type="cartesianX“ spatial:unit="um”> <spatial:boundaryMin spatial:id="Xmin" spatial:value="0"/> <spatial:boundaryMax spatial:id="Xmax" spatial:value="100"/> </spatial:coordinateComponent> <spatial:coordinateComponent spatial:id="y" spatial:type="cartesianY“ spatial:unit="um”> <spatial:boundaryMin spatial:id="Ymin" spatial:value="0"/> <spatial:boundaryMax spatial:id="Ymax" spatial:value="100"/> </spatial:coordinateComponent> </spatial:listOfCoordinateComponents> </spatial:geometry>
Spatial processes (spatial)
Spatial processes (spatial)
<parameter id="u_diff_X" value="0.02" constant="true”> <spatial:diffusionCoefficient spatial:variable="u" spatial:type=“isotropic"/> </parameter>
<species id="X" compartment="fish" initialConcentration="0“ substanceUnits="molecules" hasOnlySubstanceUnits="false“ boundaryCondition="false" constant="false" spatial:isSpatial="true“>
<reaction id="re2" name="re2" reversible="false" fast="false" spatial:isLocal="true"> <listOfReactants> <speciesReference species="X" stoichiometry="1" constant="true"/> </listOfReactants> . . .
Library Support
libSBML Latest specification
JSBML Latest specification
Software Support
VCell Reads/creates/writes/simulates
Spatial processes (spatial)
Arrays (arrays)
<species id=“A" compartment=“C" initialConcentration="0" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false“> <arrays:listOfDimensions> <arrays:dimension arrays:size="n" arrays:arrayDimension="0"/> <arrays:dimension arrays:size="n" arrays:arrayDimension=1/> </arrays:listOfDimensions> </species>
Arrays (arrays)
<parameter id=“n“ value=“4” constant=“true”/>
<initialAssignment symbol=“A"> <arrays:listOfDimensions> <arrays:dimension arrays:id="i" arrays:size="n" arrays:arrayDimension="0"/> <arrays:dimension arrays:id=“j" arrays:size="n" arrays:arrayDimension="0"/> </arrays:listOfDimensions> <arrays:listOfIndices> <arrays:index arrays:referencedAttribute=“symbol" arrays:arrayDimension="0"> <math/></index> <arrays:index arrays:referencedAttribute=“symbol" arrays:arrayDimension=“1"> <math/></index> </arrays:listOfIndices> <math xmlns="http://www.w3.org/1998/Math/MathML"> <apply> <selector/> <ci> B </ci><ci> i </ci><ci> j </ci> </apply> </math>
Arrays (arrays)
A[i][j] = B[i][j]
Library Support
libSBML Latest specification
JSBML Latest specification
Software Support
iBioSim In development
Arrays (arrays)
Distributions (distrib)
Distributions (distrib)
<functionDefinition id="normal"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <!-- math for use if distrib is ignored --> <distrib:drawFromDistribution> <distrib:listOfDistribInputs> <distrib:distribInput distrib:id="arg1" distrib:index="0"/> <distrib:distribInput distrib:id="arg2" distrib:index="1"/> </distrib:listOfDistribInputs> <UncertML xmlns="http://www.uncertml.org/3.0"> <NormalDistribution definition="http://www.uncertml.org/distributions/normal"> <mean> <var varId="arg1"/> </mean> <variance> <var varId="arg2"/> </variance> </NormalDistribution> </UncertML> </distrib:drawFromDistribution> </functionDefinition>
Distributions (distrib)
<functionDefinition id="normal"> </functionDefinition>
<initialAssignment symbol="V"> <math xmlns="http://www.w3.org/1998/Math/MathML” <apply> <ci>normal</ci> <ci>V_pop</ci> <ci>V_omega</ci> </apply> </math> </initialAssignment>
Distributions (distrib)
<parameter id="V" constant="true"> <distrib:uncertainty distrib:id="un1"> <UncertML xmlns="http://www.uncertml.org/3.0"> <NormalDistribution definition="http://www.uncertml.org/distributions/normal"> <mean> <var varId="V_pop"/> </mean> <variance> <var varId="V_omega"/> </variance> </NormalDistribution> </UncertML> </distrib:uncertainty> </parameter>
Distributions (distrib)
Library Support
libSBML Latest specification
JSBML
Software Support
Groups (groups)
<species id="ATPc" compartment="cytosol" substanceUnits="mole" constant="false" hasOnlySubstanceUnits="false" boundaryCondition="true" /> <species id="ATPm" compartment="mitochon" substanceUnits="mole" constant="false" hasOnlySubstanceUnits="false" boundaryCondition="true" />
<groups:group groups:id="ATP" groups:kind="classification"> <groups:listOfMembers sboTerm="SBO:0000248"> <groups:member groups:idRef="ATPc" /> <groups:member groups:idRef="ATPm" /> </groups:listOfMembers>
Groups (groups)
<groups:listOfMemberConstraints groups:membersShareType="true"> <groups:memberConstraint groups:distinctAttribute="compartment" /> <groups:memberConstraint groups:identicalAttribute="constant" /> </groups:listOfMemberConstraints> </groups:group>
Library Support
libSBML Latest specification
JSBML Latest specification
Software Support
Groups (groups)
Required Elements (req)
Required Elements (req)
<functionDefinition id="normal"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <!-- math for use if distrib is ignored --> <distrib:drawFromDistribution> <!– information about distribution --> <req:listOfChangedMaths> <req:changedMath req:changedBy=http://www.sbml.org/sbml/level3/version1/distrib/version1 req:viableWithoutChange="true" /> </req:listOfChangedMaths>
Required Elements (req)
<functionDefinition id="normal"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <!-- math for use if distrib is ignored --> <distrib:drawFromDistribution> <!– information about distribution --> <req:listOfChangedMaths> <req:changedMath req:changedBy=http://www.sbml.org/sbml/level3/version1/distrib/version1 req:viableWithoutChange="true" /> </req:listOfChangedMaths>
Library Support
libSBML Latest specification
JSBML Latest specification
Software Support
Required Elements (req)
SBML Level 3 Packages