Skip to content

Instantly share code, notes, and snippets.

@kenwebb
Last active October 9, 2015 06:48
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/3457105 to your computer and use it in GitHub Desktop.
Save kenwebb/3457105 to your computer and use it in GitHub Desktop.
Feinberg - Chemical Reaction Networks
<XholonWorkbook>
<ReactionNetworkSystem>
<PetriNet roleName="Feinberg (1987) 6.5" kineticsType="2" p="1.0" k="0.001" timeStepMultiplier="1">
<QueueTransitions shouldAct="true"/>
<AnalysisPetriNet/>
<AnalysisCRN/>
<AnalysisCat/>
<Speciez>
<A1 token="100"/>
<A2 token="100"/>
<A3 token="100"/>
<Plot mode="ifNotAlready" dataPlotter="JFreeChart"
dataPlotterParams="Feinberg 1987 6.5 - Petri nets,Time (timesteps),Tokens,./statistics/,pn,1,WRITE_AS_DOUBLE"/>
</Speciez>
<Reactions>
<R1 k="0.0039" count="10">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A1"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="2" connector="ancestor::PetriNet/Speciez/A1"/>
</OutputArcs>
</R1>
<R2 k="0.0038" count="10">
<InputArcs>
<InputArc weight="2" connector="ancestor::PetriNet/Speciez/A1"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A1"/>
</OutputArcs>
</R2>
<R3 k="0.0037" count="10">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A1"/>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A2"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A3"/>
</OutputArcs>
</R3>
<R4 k="0.0036" count="10">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A3"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A1"/>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A2"/>
</OutputArcs>
</R4>
<R5 k="0.0035" count="10">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A3"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A2"/>
</OutputArcs>
</R5>
<R6 k="0.0034" count="10">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A2"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A3"/>
</OutputArcs>
</R6>
</Reactions>
</PetriNet>
<ConstantlyStirredPot rows="20" cols="20" gridCellColor="000020" shouldPlacesMove="true"/>
</ReactionNetworkSystem>
</XholonWorkbook>
<XholonWorkbook>
<ReactionNetworkSystem>
<PetriNet roleName="Feinberg (1987) 6.7" kineticsType="2" p="1.0" k="0.001" timeStepMultiplier="1">
<QueueTransitions shouldAct="true"/>
<AnalysisPetriNet/>
<AnalysisCRN/>
<AnalysisCat/>
<Speciez>
<A1 token="100"/>
<A2 token="100"/>
<A3 token="100"/>
<Plot mode="ifNotAlready" dataPlotter="JFreeChart"
dataPlotterParams="Feinberg 1987 6.7 - Petri nets,Time (timesteps),Tokens,./statistics/,pn,1,WRITE_AS_DOUBLE"/>
</Speciez>
<Reactions>
<R1 k="0.0039" count="10">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A1"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="2" connector="ancestor::PetriNet/Speciez/A1"/>
</OutputArcs>
</R1>
<R2 k="0.0038" count="10">
<InputArcs>
<InputArc weight="2" connector="ancestor::PetriNet/Speciez/A1"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A1"/>
</OutputArcs>
</R2>
<R3 k="0.0037" count="10">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A1"/>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A2"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A3"/>
</OutputArcs>
</R3>
<R4 k="0.0036" count="10">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A3"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A1"/>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A2"/>
</OutputArcs>
</R4>
<R5 k="0.0035" count="10">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A3"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="2" connector="ancestor::PetriNet/Speciez/A2"/>
</OutputArcs>
</R5>
<R6 k="0.0034" count="10">
<InputArcs>
<InputArc weight="2" connector="ancestor::PetriNet/Speciez/A2"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A3"/>
</OutputArcs>
</R6>
</Reactions>
</PetriNet>
<ConstantlyStirredPot rows="20" cols="20" gridCellColor="000020" shouldPlacesMove="true"/>
</ReactionNetworkSystem>
</XholonWorkbook>
<XholonWorkbook>
<ReactionNetworkSystem>
<Annotation>
In 1979, Martin Feinberg gave a series of
&lt;a href="http://www.chbmeng.ohio-state.edu/~FEINBERG/LecturesOnReactionNetworks/"&gt;lectures on chemical reaction networks&lt;/a&gt;.
His very first example (1.1) was a simple reaction network with five species, five complexes, and six reactions.
This page shows the results of running a simulation of Feinberg's model, using basic Petri net kinetics.
</Annotation>
<PetriNet roleName="Feinberg 1.1" kineticsType="1" p="1.0" k="0.001" timeStepMultiplier="1">
<QueueTransitions shouldAct="true"/>
<AnalysisPetriNet/>
<AnalysisCRN/>
<AnalysisCat/>
<Speciez>
<A token="140"/>
<B token="180"/>
<C token="200"/>
<D token="25"/>
<E token="80"/>
<Plot mode="ifNotAlready" dataPlotter="JFreeChart"
dataPlotterParams="Feinberg 1.1 - Petri nets,Time (timesteps),Tokens,./statistics/,pn,1,WRITE_AS_DOUBLE"/>
</Speciez>
<Reactions>
<A_BB k="0.0039" count="10" symbol="α">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="2" connector="ancestor::PetriNet/Speciez/B"/>
</OutputArcs>
</A_BB>
<BB_A k="0.0038" count="10" symbol="β">
<InputArcs>
<InputArc weight="2" connector="ancestor::PetriNet/Speciez/B"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A"/>
</OutputArcs>
</BB_A>
<AC_D k="0.0037" count="10" symbol="γ">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A"/>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/C"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/D"/>
</OutputArcs>
</AC_D>
<D_AC k="0.0036" count="10" symbol="δ">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/D"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A"/>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/C"/>
</OutputArcs>
</D_AC>
<D_BE k="0.0035" count="10" symbol="ε">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/D"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/B"/>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/E"/>
</OutputArcs>
</D_BE>
<BE_AC k="0.0034" count="10" symbol="ξ">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/B"/>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/E"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A"/>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/C"/>
</OutputArcs>
</BE_AC>
</Reactions>
</PetriNet>
<ConstantlyStirredPot rows="20" cols="20" gridCellColor="000020" shouldPlacesMove="true"/>
</ReactionNetworkSystem>
</XholonWorkbook>
<XholonWorkbook>
<ReactionNetworkSystem>
<PetriNet roleName="Feinberg 2.31" kineticsType="1" p="0.9" k="0.001" timeStepMultiplier="1">
<QueueTransitions shouldAct="true"/>
<AnalysisPetriNet/>
<AnalysisCRN/>
<AnalysisCat/>
<Speciez>
<A token="100"/>
<B token="100"/>
<Plot mode="ifNotAlready" dataPlotter="JFreeChart"
dataPlotterParams="Feinberg 2.31 - Petri nets,Time (timesteps),Tokens,./statistics/,pn,1,WRITE_AS_DOUBLE"/>
</Speciez>
<Reactions>
<A_BB count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/A"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="2" connector="ancestor::PetriNet/Speciez/B"/>
</OutputArcs>
</A_BB>
<BB_A count="2">
<InputArcs>
<InputArc weight="2" connector="ancestor::PetriNet/Speciez/B"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/A"/>
</OutputArcs>
</BB_A>
</Reactions>
</PetriNet>
<ConstantlyStirredPot rows="20" cols="20" gridCellColor="000020" shouldPlacesMove="true"/>
</ReactionNetworkSystem>
</XholonWorkbook>
<XholonWorkbook>
<ReactionNetworkSystem>
<PetriNet roleName="Feinberg 2.34" kineticsType="1" p="1.0" k="0.001" timeStepMultiplier="1">
<QueueTransitions shouldAct="true"/>
<AnalysisPetriNet/>
<AnalysisCRN/>
<AnalysisCat/>
<Speciez>
<A token="100"/>
<B token="100"/>
<C token="100"/>
<Plot mode="ifNotAlready" dataPlotter="JFreeChart"
dataPlotterParams="Feinberg 2.34 - Petri nets,Time (timesteps),Tokens,./statistics/,pn,1,WRITE_AS_DOUBLE"/>
</Speciez>
<Reactions>
<AA_B count="2">
<InputArcs>
<InputArc weight="2" connector="ancestor::PetriNet/Speciez/A"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/B"/>
</OutputArcs>
</AA_B>
<B_C count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/B"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/C"/>
</OutputArcs>
</B_C>
<C_B count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/C"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::PetriNet/Speciez/B"/>
</OutputArcs>
</C_B>
<C_AA count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::PetriNet/Speciez/C"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="2" connector="ancestor::PetriNet/Speciez/A"/>
</OutputArcs>
</C_AA>
</Reactions>
</PetriNet>
<ConstantlyStirredPot rows="20" cols="20" gridCellColor="000020" shouldPlacesMove="true"/>
</ReactionNetworkSystem>
</XholonWorkbook>
<XholonWorkbook>
<ReactionNetworkSystem>
<PetriNet roleName="Feinberg 2.38" kineticsType="1" p="0.9" k="0.001" timeStepMultiplier="1">
<QueueTransitions shouldAct="true" connector="../MembranePN"/>
<AnalysisPetriNet/>
<AnalysisCRN/>
<AnalysisCat/>
<!-- the environment membrane is Feinberg's enity "0" -->
<MembranePN roleName="environment">
<MembranePN roleName="reactor">
<Speciez>
<A token="100"/>
<B token="100"/>
<Plot mode="ifNotAlready" dataPlotter="JFreeChart"
dataPlotterParams="Feinberg 2.38 - Petri nets,Time (timesteps),Tokens,./statistics/,pn,1,WRITE_AS_DOUBLE"/>
</Speciez>
<!-- reactions inside the reactor -->
<Reactions>
<AA_B count="2">
<InputArcs>
<InputArc weight="2" connector="ancestor::MembranePN/Speciez/A"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::MembranePN/Speciez/B"/>
</OutputArcs>
</AA_B>
<B_AA count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::MembranePN/Speciez/B"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="2" connector="ancestor::MembranePN/Speciez/A"/>
</OutputArcs>
</B_AA>
</Reactions>
</MembranePN>
<!-- interactions between the environment and the reactor -->
<Reactions>
<_A>
<InputArcs/>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::MembranePN/MembranePN/Speciez/A"/>
</OutputArcs>
</_A>
<_B>
<InputArcs/>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::MembranePN/MembranePN/Speciez/B"/>
</OutputArcs>
</_B>
<A_>
<InputArcs>
<InputArc weight="1" connector="ancestor::MembranePN/MembranePN/Speciez/A"/>
</InputArcs>
<OutputArcs/>
</A_>
<B_>
<InputArcs>
<InputArc weight="1" connector="ancestor::MembranePN/MembranePN/Speciez/B"/>
</InputArcs>
<OutputArcs/>
</B_>
</Reactions>
</MembranePN>
</PetriNet>
<ConstantlyStirredPot rows="20" cols="20" gridCellColor="000020" shouldPlacesMove="true"/>
</ReactionNetworkSystem>
</XholonWorkbook>
<XholonWorkbook>
<ReactionNetworkSystem>
<PetriNet roleName="Feinberg 2.44" kineticsType="1" p="0.9" k="0.001" timeStepMultiplier="1">
<QueueTransitions shouldAct="true" connector="../MembranePN"/>
<AnalysisPetriNet/>
<AnalysisCRN/>
<AnalysisCat/>
<AnalysisMemComp/>
<!-- an environment that contains two cells -->
<MembranePN roleName="environment">
<!-- Cell 1 and Cell 2 -->
<MembranePN roleName="cell" multiplicity="2">
<Speciez>
<A token="100"/>
<B token="100"/>
</Speciez>
<Reactions>
<A_BB k="0.0011" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::MembranePN/Speciez/A"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="2" connector="ancestor::MembranePN/Speciez/B"/>
</OutputArcs>
</A_BB>
<BB_A k="0.0012" count="2">
<InputArcs>
<InputArc weight="2" connector="ancestor::MembranePN/Speciez/B"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::MembranePN/Speciez/A"/>
</OutputArcs>
</BB_A>
</Reactions>
</MembranePN>
<!-- interactions between the two cells -->
<Reactions>
<A1_A2 k="0.0013" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::MembranePN/MembranePN[1]/Speciez/A"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::MembranePN/MembranePN[2]/Speciez/A"/>
</OutputArcs>
</A1_A2>
<A2_A1 k="0.0014" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::MembranePN/MembranePN[2]/Speciez/A"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::MembranePN/MembranePN[1]/Speciez/A"/>
</OutputArcs>
</A2_A1>
<B1_B2 k="0.0015" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::MembranePN/MembranePN[1]/Speciez/B"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::MembranePN/MembranePN[2]/Speciez/B"/>
</OutputArcs>
</B1_B2>
<B2_B1 k="0.0016" count="2">
<InputArcs>
<InputArc weight="1" connector="ancestor::MembranePN/MembranePN[2]/Speciez/B"/>
</InputArcs>
<OutputArcs>
<OutputArc weight="1" connector="ancestor::MembranePN/MembranePN[1]/Speciez/B"/>
</OutputArcs>
</B2_B1>
</Reactions>
<Plot mode="new" dataPlotter="JFreeChart"
dataPlotterParams="Feinberg 2.44 - Petri nets,Time (timesteps),Tokens,./statistics/,pn,1,WRITE_AS_DOUBLE"/>
</MembranePN>
</PetriNet>
<ConstantlyStirredPot rows="20" cols="20" gridCellColor="000020" shouldPlacesMove="true"/>
</ReactionNetworkSystem>
</XholonWorkbook>
<?xml version="1.0" encoding="UTF-8"?>
<!--Xholon Workbook http://www.primordion.com/Xholon/wb/ (C) Ken Webb Sat Aug 25 2012 11:37:02 GMT-0400 (EDT)-->
<XholonWorkbook>
<Notes><![CDATA[
Xholon
------
Title: Feinberg - Chemical Reaction Networks
Description:
Url: http://www.che.eng.ohio-state.edu/~FEINBERG/LecturesOnReactionNetworks/
InternalName:
YoutubeId:
Keywords:
My Notes
--------
source: Martin Feinberg (1980) Lectures on Chemical Reaction Networks - Lecture 1
http://www.che.eng.ohio-state.edu/~FEINBERG/LecturesOnReactionNetworks/
Chemical Reaction Networks are essentially the same as Petri nets.
This workbook is a base on which to build Chemical Reaction Networks.
Concrete networks that use this base, are available at github as separate XML files
within this gist. See ::
https://gist.github.com/3457105
Networks can use any of four different values for kineticType::
1 = Basic place/transition net kinetics (default) (use p)
2 = Mass action kinetics (use k)
3 = Grid (use count, use shouldAct="false")
4 = Michaelis-Menten enzyme/catalyst kinetics (use vmax and km)
]]></Notes>
<script implName="lang:python:inline:"><![CDATA[
]]></script>
<script implName="lang:javascript:inline:"><![CDATA[
]]></script>
<_-.XholonClass>
<ReactionNetworkSystem/>
<ConstantlyStirredPot superClass="GridOwner"/>
<Reaction superClass="TransitionPN">
<!-- subclasses of Reaction will be generated here at runtime -->
</Reaction>
<Species superClass="PlacePN">
<!-- subclasses of Species will be generated here at runtime -->
</Species>
<!-- collections -->
<Reactions superClass="Transitions" childSuperClass="Reaction"/>
<Speciez superClass="Places" childSuperClass="Species"/>
</_-.XholonClass>
<xholonClassDetails>
<ConstantlyStirredPot>
<port name="petriNet" connector="#xpointer(ancestor::ReactionNetworkSystem/PetriNet)"/>
</ConstantlyStirredPot>
</xholonClassDetails>
<ReactionNetworkSystem>
<!-- manually drag and drop, or copy and paste, actual content here at runtime -->
</ReactionNetworkSystem>
<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/>
</XholonWorkbook>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment