Skip to content

Instantly share code, notes, and snippets.

@kenwebb
Created August 17, 2012 10:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kenwebb/3377945 to your computer and use it in GitHub Desktop.
Save kenwebb/3377945 to your computer and use it in GitHub Desktop.
Petri net - Cell model
<?xml version="1.0" encoding="UTF-8"?>
<!--Xholon Workbook http://www.primordion.com/Xholon/wb/ (C) Ken Webb Sun Aug 26 2012 14:59:05 GMT-0400 (EDT)-->
<XholonWorkbook>
<Notes><![CDATA[
Xholon
------
Title: Petri net - Cell model
Description:
Url: http://www.primordion.com/Xholon/wb/
InternalName:
YoutubeId:
Keywords:
My Notes
--------
The token values, and vmax and km values, used in this model are the same
as the values used in my 2003 BioSystems paper.
The vmax and km values are the Michaelis-Menten values from the cellontro Cell model.
Results of the earlier Cellontro and Gepasi models, for comparison (at timeStep 500):
timeStep, Glucose (in ExtraCellularSolution), Glucose, Glucose_6_Phosphate, Fructose_6_Phosphate, Fructose_1x6_Biphosphate, DihydroxyacetonePhosphate, Glyceraldehyde_3_Phosphate, X1x3_BisphosphoGlycerate, X3_PhosphoGlycerate, X2_PhosphoGlycerate, PhosphoEnolPyruvate, Pyruvate
500,100000,51009,144372,86557,86454,2046,122313,102333,26254,239562,89324,181376 Cellontro
500,100000,51009,144372,86557,86454,2046,122313,102333,26254,239562,89324,181376 this model
500,100000,51010,144370,86558,86456,2121,122260,102340,26403,239390,89328,181360 Gepasi/Copasi
How to run the Java app that's included on this Xholon Workbook page::
(1) Click the "Save locally" button at the top of this page.
This will assemble the contents of the workbook into a separate web browser page.
Position the cursor in the new page and do "Select All" (Ctrl-A).
(2) Click the second "Launch" button further down on this page (http://www.primordion.com/Xholon/jnlp/Chameleon_0.jnlp).
This will start the Chameleon Java application. It's called Chameleon because if can be changed into anything else.
Select "File --> Open".
(3) Drag the contents of the workbook into the Chameleon app.
Just click on the selected text in the new browser window, and drag it anywhere within the Chameleon window.
An SVG image should appear in its own window.
(4) Click the "Refresh" button in the Chameleon window.
Explore the model to confirm that it has the same structure that's specified on this page.
Click the "Start" button to start the simulation.
Use the "Pause" and "Step" buttons to pause, unpause, and single-step the simulation.
(5) Expand the View node, and click the xYChart node to display a line chart.
Compare the values at timestep=500 with the expected values above.
By default, the simulation uses Michaelis-Menten enzyme/catalyst kinetics (kineticsType="4").
]]></Notes>
<script implName="lang:python:inline:"><![CDATA[
]]></script>
<script implName="lang:javascript:inline:"><![CDATA[
]]></script>
<_-.XholonClass>
<CellModelSystem/>
<CytoplasmGridOwner superClass="GridOwner"/>
<ExtraCellularSpace/>
<ExtraCellularSolution/>
<EukaryoticCell/>
<CellMembrane/>
<Cytoplasm/>
<Cytosol/>
<Enzyme superClass="TransitionPN">
<GlycolysisEnzyme>
<Hexokinase/>
<PhosphoGlucoIsomerase/>
<PhosphoFructokinase/>
<Aldolase/>
<TriosePhosphateIsomerase/>
<Glyceraldehyde_3_phosphateDehydrogenase/>
<PhosphoGlycerokinase/>
<PhosphoGlyceromutase/>
<Enolase/>
<PyruvateKinase/>
</GlycolysisEnzyme>
</Enzyme>
<CellBilayer superClass="TransitionPN"/>
<SmallMolecule superClass="PlacePN">
<Glucose/>
<Glucose_6_Phosphate/>
<Fructose_6_Phosphate/>
<Fructose_1x6_Biphosphate/>
<DihydroxyacetonePhosphate/>
<Glyceraldehyde_3_Phosphate/>
<X1x3_BisphosphoGlycerate/>
<X3_PhosphoGlycerate/>
<X2_PhosphoGlycerate/>
<PhosphoEnolPyruvate/>
<Pyruvate/>
</SmallMolecule>
</_-.XholonClass>
<xholonClassDetails>
<CytoplasmGridOwner>
<port name="petriNet" connector="#xpointer(ancestor::CellModelSystem/PetriNet)"/>
</CytoplasmGridOwner>
</xholonClassDetails>
<CellModelSystem xmlns:xi="http://www.w3.org/2001/XInclude">
<ExtraCellularSpace>
<ExtraCellularSolution>
<Glucose token="100000.0"/>
</ExtraCellularSolution>
<EukaryoticCell>
<CellMembrane>
<!-- CellBilayer is inactive -->
<CellBilayer k="0.0" count="0">
<InputArcs>
<InputArc weight="0" connector="ancestor::ExtraCellularSpace/ExtraCellularSolution/Glucose"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="0" connector="ancestor::EukaryoticCell/Cytoplasm/Cytosol/Glucose"/>
</OutputArcs>
</CellBilayer>
</CellMembrane>
<Cytoplasm>
<Cytosol>
<Glucose token="100000.0"/>
<Glucose_6_Phosphate token="100000.0"/>
<Fructose_6_Phosphate token="100000.0"/>
<Fructose_1x6_Biphosphate token="100000.0"/>
<DihydroxyacetonePhosphate token="100000.0"/>
<Glyceraldehyde_3_Phosphate token="100000.0"/>
<X1x3_BisphosphoGlycerate token="100000.0"/>
<X3_PhosphoGlycerate token="100000.0"/>
<X2_PhosphoGlycerate token="100000.0"/>
<PhosphoEnolPyruvate token="100000.0"/>
<Pyruvate token="100000.0"/>
<Plot mode="new"/>
</Cytosol>
<Hexokinase vmax="100.0" km="1500.0" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/Glucose"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/Glucose_6_Phosphate"/>
</OutputArcs>
</Hexokinase>
<PhosphoGlucoIsomerase vmax="10.0" km="10000.0" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/Glucose_6_Phosphate"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/Fructose_6_Phosphate"/>
</OutputArcs>
</PhosphoGlucoIsomerase>
<PhosphoFructokinase vmax="40.0" km="10000.0" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/Fructose_6_Phosphate"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/Fructose_1x6_Biphosphate"/>
</OutputArcs>
</PhosphoFructokinase>
<Aldolase roleName="Aldolase" vmax="70.0" km="10000.0" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/Fructose_1x6_Biphosphate"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/Glyceraldehyde_3_Phosphate"/>
<OutputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/DihydroxyacetonePhosphate"/>
</OutputArcs>
</Aldolase>
<TriosePhosphateIsomerase vmax="400.0" km="10000.0" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/DihydroxyacetonePhosphate"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/Glyceraldehyde_3_Phosphate"/>
</OutputArcs>
</TriosePhosphateIsomerase>
<Glyceraldehyde_3_phosphateDehydrogenase vmax="300.0" km="10000.0" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/Glyceraldehyde_3_Phosphate"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/X1x3_BisphosphoGlycerate"/>
</OutputArcs>
</Glyceraldehyde_3_phosphateDehydrogenase>
<PhosphoGlycerokinase vmax="300.0" km="10000.0" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/X1x3_BisphosphoGlycerate"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/X3_PhosphoGlycerate"/>
</OutputArcs>
</PhosphoGlycerokinase>
<PhosphoGlyceromutase vmax="500.0" km="10000.0" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/X3_PhosphoGlycerate"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/X2_PhosphoGlycerate"/>
</OutputArcs>
</PhosphoGlyceromutase>
<Enolase vmax="150.0" km="10000.0" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/X2_PhosphoGlycerate"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/PhosphoEnolPyruvate"/>
</OutputArcs>
</Enolase>
<PyruvateKinase vmax="180.0" km="10000.0" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/PhosphoEnolPyruvate"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::Cytoplasm/Cytosol/Pyruvate"/>
</OutputArcs>
</PyruvateKinase>
</Cytoplasm>
</EukaryoticCell>
</ExtraCellularSpace>
<!-- kineticsType
1 = Basic place/transition net kinetics (default) (use p)
2 = Mass action kinetics (use k)
3 = Grid (use count)
4 = Michaelis-Menten enzyme/catalyst kinetics (use vmax and km)
-->
<PetriNet roleName="cell" kineticsType="4" p="0.9" timeStepMultiplier="1">
<!-- shuffling has little or no effect -->
<QueueTransitions shouldAct="true" shouldShuffle="false" connector="ancestor::CellModelSystem/ExtraCellularSpace/EukaryoticCell"/>
<AnalysisCRN/>
</PetriNet>
<!-- grid owner -->
<CytoplasmGridOwner rows="20" cols="20" gridCellColor="000020" shouldPlacesMove="true" tokenFactor="0.001"/>
</CellModelSystem>
<Blockbehavior implName="lang:python:inline:"><![CDATA[
]]></Blockbehavior>
<Blockbehavior implName="lang:javascript:inline:"><![CDATA[
]]></Blockbehavior>
<Blockbehavior implName="lang:webEditionjs:inline:"><![CDATA[
]]></Blockbehavior>
<Blockbehavior implName="lang:bsh:inline:"><![CDATA[
]]></Blockbehavior>
<Blockbehavior implName="lang:jruby:inline:"><![CDATA[
]]></Blockbehavior>
<Blockbehavior implName="lang:groovy:inline:"><![CDATA[
]]></Blockbehavior>
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml,
<svg width="100" height="50" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Petri net - Cell model</title>
<rect id="CellModelSystem" fill="#98FB98" height="50" width="50" x="25" y="0"/>
</g>
</svg>
]]></Attribute_String><Attribute_String roleName="setup">${MODELNAME_DEFAULT},${SVGURI_DEFAULT}</Attribute_String></SvgClient>
</XholonWorkbook>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment