Lucian Smith - Modular Modeling: Standards and Tools (IMAG)
-
Upload
lucian-smith -
Category
Technology
-
view
477 -
download
1
description
Transcript of Lucian Smith - Modular Modeling: Standards and Tools (IMAG)
MODULAR MODELING:
STANDARDS AND TOOLSLUCIAN SMITH
SBML TEAM
HTTP://SBML.ORG/
CALTECH
IMAG WEBINAR, MARCH 8TH, 2013
STANDARDS: CELLML
<component name="environment">
<variable units="ms" public_interface="out" name="time" cmeta:id="environment_time"/>
</component>
<component name="membrane">
<variable units="mV" public_interface="out" cmeta:id="membrane_V" name="V" initial_value="-84.624"/>
<variable units="uF_per_mm2" cmeta:id="membrane_C" name="C" initial_value="0.01"/>
<variable units="ms" public_interface="in" name="time"/>
<variable units="uA_per_mm2" public_interface="in" name="i_Na"/>
<variable units="uA_per_mm2" public_interface="in" name="i_s"/>
<variable units="uA_per_mm2" public_interface="in" name="i_x1"/>
<variable units="uA_per_mm2" public_interface="in" name="i_K1"/>
<variable units="uA_per_mm2" public_interface="in" name="Istim"/>
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="membrane_voltage_diff_eq">
<apply>
<eq/>
<apply>
<diff/>
<bvar>
STANDARDS: CELLML
<component name="environment">
<variable units="ms" public_interface="out" name="time" cmeta:id="environment_time"/>
</component>
<component name="membrane">
<variable units="mV" public_interface="out" cmeta:id="membrane_V" name="V" initial_value="-84.624"/>
<variable units="uF_per_mm2" cmeta:id="membrane_C" name="C" initial_value="0.01"/>
<variable units="ms" public_interface="in" name="time"/>
<variable units="uA_per_mm2" public_interface="in" name="i_Na"/>
<variable units="uA_per_mm2" public_interface="in" name="i_s"/>
<variable units="uA_per_mm2" public_interface="in" name="i_x1"/>
<variable units="uA_per_mm2" public_interface="in" name="i_K1"/>
<variable units="uA_per_mm2" public_interface="in" name="Istim"/>
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="membrane_voltage_diff_eq">
<apply>
<eq/>
<apply>
<diff/>
<bvar>
STANDARDS: CELLML
<component name="environment">
<variable units="ms" public_interface="out" name="time" cmeta:id="environment_time"/>
</component>
<component name="membrane">
<variable units="mV" public_interface="out" cmeta:id="membrane_V" name="V" initial_value="-84.624"/>
<variable units="uF_per_mm2" cmeta:id="membrane_C" name="C" initial_value="0.01"/>
<variable units="ms" public_interface="in" name="time"/>
<variable units="uA_per_mm2" public_interface="in" name="i_Na"/>
<variable units="uA_per_mm2" public_interface="in" name="i_s"/>
<variable units="uA_per_mm2" public_interface="in" name="i_x1"/>
<variable units="uA_per_mm2" public_interface="in" name="i_K1"/>
<variable units="uA_per_mm2" public_interface="in" name="Istim"/>
<math xmlns="http://www.w3.org/1998/Math/MathML" cmeta:id="membrane_voltage_diff_eq">
<apply>
<eq/>
<apply>
<diff/>
<bvar>
STANDARDS: CELLML
<connection>
<map_components component_2="environment" component_1="membrane"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
<connection>
<map_components component_2="environment" component_1="sodium_current"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
<connection>
<map_components component_2="environment" component_1="slow_inward_current"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
<connection>
<map_components component_2="environment" component_1="time_dependent_outward_current"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
STANDARDS: CELLML
<connection>
<map_components component_2="environment" component_1="membrane"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
<connection>
<map_components component_2="environment" component_1="sodium_current"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
<connection>
<map_components component_2="environment" component_1="slow_inward_current"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
<connection>
<map_components component_2="environment" component_1="time_dependent_outward_current"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
STANDARDS: CELLML
<connection>
<map_components component_2="environment" component_1="membrane"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
<connection>
<map_components component_2="environment" component_1="sodium_current"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
<connection>
<map_components component_2="environment" component_1="slow_inward_current"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
<connection>
<map_components component_2="environment" component_1="time_dependent_outward_current"/>
<map_variables variable_2="time" variable_1="time"/>
</connection>
STANDARDS: SBML<sbml xmlns="http://www.sbml.org/sbml/level2/version4" level="2" version="4">
<model id="bistable">
<listOfCompartments>
<compartment id="default_compartment" size="1"/>
</listOfCompartments>
<listOfSpecies>
<species id="s1" compartment="default_compartment"/>
<species id="s2" compartment="default_compartment"/>
</listOfSpecies>
<listOfParameters>
<parameter id="k1" value="1"/>
<parameter id="k2" value="1"/>
</listOfParameters>
<listOfReactions>
<reaction id="g1">
<listOfProducts>
<speciesReference species="s1"/>
</listOfProducts>
<listOfModifiers>
<modifierSpeciesReference species="s2"/>
</listOfModifiers>
STANDARDS: SBML<sbml xmlns="http://www.sbml.org/sbml/level2/version4" level="2" version="4">
<model id="bistable">
<listOfCompartments>
<compartment id="default_compartment" size="1"/>
</listOfCompartments>
<listOfSpecies>
<species id="s1" compartment="default_compartment"/>
<species id="s2" compartment="default_compartment"/>
</listOfSpecies>
<listOfParameters>
<parameter id="k1" value="1"/>
<parameter id="k2" value="1"/>
</listOfParameters>
<listOfReactions>
<reaction id="g1">
<listOfProducts>
<speciesReference species="s1"/>
</listOfProducts>
<listOfModifiers>
<modifierSpeciesReference species="s2"/>
</listOfModifiers>
STANDARDS: SBML-COMPOSITION*<model>
<listOfParameters>
<parameter id="timeconv" value="60" constant="true"/>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id="sub1" comp:modelRef="moddef2“ comp:timeConversionFactor="timeconv"/>
</comp:listOfSubmodels>
</model>
<comp:listOfModelDefinitions>
<comp:modelDefinition id="moddef2">
<listOfParameters>
<parameter id="timeconv" value="60" constant="true"/>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id="sub1" comp:modelRef="moddef1" comp:timeConversionFactor="timeconv"/>
</comp:listOfSubmodels>
</comp:modelDefinition>
<comp:modelDefinition id="moddef1">
<listOfParameters>
<parameter id="t1" constant="false"/>
</listOfParameters>*HIERARCHICAL MODEL COMPOSITION
STANDARDS: SBML-COMPOSITION*<model>
<listOfParameters>
<parameter id="timeconv" value="60" constant="true"/>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id="sub1" comp:modelRef="moddef2“ comp:timeConversionFactor="timeconv"/>
</comp:listOfSubmodels>
</model>
<comp:listOfModelDefinitions>
<comp:modelDefinition id="moddef2">
<listOfParameters>
<parameter id="timeconv" value="60" constant="true"/>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id="sub1" comp:modelRef="moddef1" comp:timeConversionFactor="timeconv"/>
</comp:listOfSubmodels>
</comp:modelDefinition>
<comp:modelDefinition id="moddef1">
<listOfParameters>
<parameter id="t1" constant="false"/>
</listOfParameters>*HIERARCHICAL MODEL COMPOSITION
STANDARDS: SBML-COMPOSITION*<model>
<listOfParameters>
<parameter id="timeconv" value="60" constant="true"/>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id="sub1" comp:modelRef="moddef2“ comp:timeConversionFactor="timeconv"/>
</comp:listOfSubmodels>
</model>
<comp:listOfModelDefinitions>
<comp:modelDefinition id="moddef2">
<listOfParameters>
<parameter id="timeconv" value="60" constant="true"/>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id="sub1" comp:modelRef="moddef1" comp:timeConversionFactor="timeconv"/>
</comp:listOfSubmodels>
</comp:modelDefinition>
<comp:modelDefinition id="moddef1">
<listOfParameters>
<parameter id="t1" constant="false"/>
</listOfParameters>*HIERARCHICAL MODEL COMPOSITION
STANDARDS: SBML-COMPOSITION*<model>
<listOfParameters>
<parameter id="timeconv" value="60" constant="true"/>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id="sub1" comp:modelRef="moddef2“ comp:timeConversionFactor="timeconv"/>
</comp:listOfSubmodels>
</model>
<comp:listOfModelDefinitions>
<comp:modelDefinition id="moddef2">
<listOfParameters>
<parameter id="timeconv" value="60" constant="true"/>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id="sub1" comp:modelRef="moddef1" comp:timeConversionFactor="timeconv"/>
</comp:listOfSubmodels>
</comp:modelDefinition>
<comp:modelDefinition id="moddef1">
<listOfParameters>
<parameter id="t1" constant="false"/>
</listOfParameters>*HIERARCHICAL MODEL COMPOSITION
STANDARDS: SBML-COMPOSITION*<model>
<listOfParameters>
<parameter id="timeconv" value="60" constant="true"/>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id="sub1" comp:modelRef="moddef2“ comp:timeConversionFactor="timeconv"/>
</comp:listOfSubmodels>
</model>
<comp:listOfModelDefinitions>
<comp:modelDefinition id="moddef2">
<listOfParameters>
<parameter id="timeconv" value="60" constant="true"/>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id="sub1" comp:modelRef="moddef1" comp:timeConversionFactor="timeconv"/>
</comp:listOfSubmodels>
</comp:modelDefinition>
<comp:modelDefinition id="moddef1">
<listOfParameters>
<parameter id="t1" constant="false"/>
</listOfParameters>*HIERARCHICAL MODEL COMPOSITION
STANDARDS: SBML-COMPOSITION<model id="foo" name="foo">
<listOfParameters>
<parameter id=“Q" value="3" constant="true">
<comp:listOfReplacedElements>
<comp:replacedElement comp:idRef=“C" comp:submodelRef=“sub1"/>
</comp:listOfReplacedElements>
</parameter>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id=“sub1" comp:modelRef="bar"/>
</comp:listOfSubmodels>
</model>
STANDARDS: SBML-COMPOSITION<model id="foo" name="foo">
<listOfParameters>
<parameter id=“Q" value="3" constant="true">
<comp:listOfReplacedElements>
<comp:replacedElement comp:idRef=“C" comp:submodelRef=“sub1"/>
</comp:listOfReplacedElements>
</parameter>
</listOfParameters>
<comp:listOfSubmodels>
<comp:submodel comp:id=“sub1" comp:modelRef="bar"/>
</comp:listOfSubmodels>
</model>
REFERENCES
• CELLML, OPENCELL, OPENCOR: HTTP://CELLML.ORG
• SBML: HTTP://SBML.ORG
• ANTIMONY: HTTP://ANTIMONY.SF.NET
• IBIOSIM: HTTP://WWW.ASYNC.ECE.UTAH.EDU/IBIOSIM
• JIGCELL: HTTP://JIGCELL.CS.VT.EDU
• TINKERCELL: HTTP://WWW.TINKERCELL.COM
BLACK-BOX VS. WHITE-BOX
• CELLML IS ‘BLACK-BOX’
• CANNOT MODIFY NON-INTERFACE ELEMENTS WITHOUT
CHANGING MODEL
• SBML-COMPOSITION IS ‘WHITE-BOX’
• AN INTERFACE IS SUGGESTED, BUT YOU ARE ALLOWED TO
ACCESS ANY INTERNAL ELEMENT
• BLACK BOX
• STRICTER CONTROL
• MORE PREDICTABLE
BEHAVIOR
• WHITE BOX
• EASIER TO RE-USE MODELS
IN NEW CONTEXTS
• CAN RE-USE INTERNAL
CONSTANTS MORE READILY
ULTIMATELY SMALL DIFFERENCES: EDITS CAN CHANGE ONE TO THE OTHER
BLACK-BOX VS. WHITE-BOX