BioComputing's Network-Graph Tool

Joachim Niehren, INRIA & BioComputing, Lille, France, @Copyright August 2016

Why the Network-Graph tool?

Purpose

The main purpose of BioComputing's Network-Graph tool is to draw the graphs of reaction networks, while assuming that the coordinates of all species and reactions in the network are given. An appropriate XML syntax for specifying reaction networks with partially known kinetics is provided by an XML schema. It is defined by a document type descriptor (DTD) for defining the hierachical structure and a Schematron schema for imposing the coherence of the data values. The tool can solve the following tasks: The BioComputing's Network-Graph tool is a module of a larger tool that was developed in the context of a research article on Predicting Changes of Reaction Networks with Partial Kinetic Information by J. Niehren, M. John, C. Versari, F. Coutte, and P. Jacques at BioSystems 2016.

Example Graph

An example graph generated for the PIlv-Leu network is given below. Its has four actors, which represent the protein binding sides BSCodY, BSCcpA, BSTnrA and the promoter PIlv-Leu of the metabolites isoleucine Ilv and leucine Leu. Of those two, only the metabolite Leu is in the network. The dashed arrow starting at the Leu node means that Leu has an outflow to the context. There are also two inflows from the context, which produce the proteins CodY and TnrA. Reaction r2 has PIlv-Leu as its product, meaning that it activates the Ilv-Leu promoter. Note that r2 has an implicit degradation reaction, which is indicated by the squirreled arrow. It also has three inhibitors, BSCodY, Leu, and BSTnrA, and one accelerator BSCcpA. Reaction r1 has CodY as activator. CodY has an inflow and an explicit degradation reaction r51. The four reactions in orange r1, r14, r7, and r8 are knockout candidates. Protein CcpA is essential, which is indicated by the red border, so no knockout may block the production of CcpA. The colored arrows on the product and reactant edges can be used to indacte the fluxes computed by a elementary mode based flux analysis. PIlv-Leu network

Which kinds of reaction networks?

Example Network

    
<network id="PIlv-Leu" >

  <!-- species -->

  <metabolite id="Leu" x="12.75" y="-6.25" comment="Leucine" />
  <protein id="CcpA" x="16.50" y=" -4.00" essential="yes" comment="Carbon catabolite control protein A" />
  <protein id="CodY" x="16.50" y=" -1.00" comment="Transcriptional pleiotropic regulator" />
  <protein id="TnrA" x="16.50" y=" -7.5" comment="Nitrogen pleiotropic transcriptional regulator" />
  <actor id="BSCodY" x="14.50" y=" -2" comment="Activity of \M{CodY} binding to promotor \M{PIlv-Leu}" />
  <actor id="PIlv-Leu" x="12.75" y=" -4.00" comment="Activity of promoter of starting network producing of \M{Leu}" />
  <actor id="BSTnrA" x="14.50" y=" -6.25" comment="Activity of \M{TnrA} binding to promoter \M{PIlv-Leu}" />
  <actor id="BSCcpA" x="15.50" y=" -3.00" comment="Activity of \M{CcpA} binding to promotor \M{PIlv-Leu} without \M{BSTnrA} loop" />

  <!-- inflows and outflows -->

  <context id="150" x="18.05" y="-1.00" > 
      <input spec="CodY" />
  </context>
  <context id="149" x="18.05" y="-7.50" > 
      <input spec="TnrA" />
  </context>
  <context id="53" x="11.05" y="-6.25" > 
      <output spec="Leu" />
  </context>

  <!-- reactions  -->

  <reaction id="1" x="16.50" y="-2.00" candidate="yes" comment="bind \M{CodY} to \M{PIlv-Leu} for inhibition" >
      <inhibitor spec="CcpA" />
      <activator spec="CodY" />
      <product-inh spec="BSCodY" />
  </reaction>
  
  <reaction id="2" x="14.50" y="-4.00" comment="activate \M{PIlv-Leu} promoter" >   
      <inhibitor spec="BSCodY" />
      <accelerator spec="BSCcpA" />
      <inhibitor spec="Leu" /> 
      <inhibitor spec="BSTnrA" />
      <product-inh spec="PIlv-Leu" />
  </reaction>
  
  <reaction id="7" x="16.50" y="-6.25" candidate="yes" comment="bind \M{TnrA} to \M{PIlv-Leu} promoter for inhibition" >
      <activator spec="TnrA" />
      <product-inh spec="BSTnrA" />
  </reaction>

  <reaction id="9" x="15.50" y=" -5" comment="bind \M{CcpA} to \M{PIlv-Leu} promoter without \M{BSTnrA} loop" >
      <activator spec="CcpA" />
      <inhibitor spec="BSTnrA" />
      <product-inh spec="BSCcpA" />
  </reaction>

  <reaction id="51" x="15.00" y="-1.00" comment="\M{CodY} deactivation" > 
      <reactant spec="CodY" />
  </reaction>
  <reaction id="52" x="15.00" y="-7.50" comment="\M{TnrA} deactivation" > 
      <reactant spec="TnrA" />
  </reaction>

  <reaction id="14" x="17.00" y="-5.00" candidate="yes" comment="expressions of \M{CcpA}" >
      <product-inh spec="CcpA" />
  </reaction>
  
  <reaction id="8" x="12.75" y="-5.00" candidate="yes" comment="\M{PIlv-Leu} expression followed by \M{Leu} production" > 
      <kinetics angle="120" id="ma" />
      <reactant spec="PIlv-Leu" />
      <product spec="Leu" />
  </reaction>

</network>

Service

The following main service is fully supported:

Complementary Services and Tools

There exist complementary services and tools for reaction networks with partial kinetic information with the same format for reaction networks as input. These are:

See the research article by J. Niehren, M. John, C. Versari, F. Coutte, and P. Jacques at BioSystems 2016 available online at https://hal.inria.fr/hal-01239198. These complementary tools are not yet distributed publically, since they are not yet documented, but can be made available when asking the author.

Not Supported

Download and Installation

The DTD of reaction networks


    
     <!--  This DTD is generated from its documentation, as inspired by Knuth's literated programming.

         Please don't change the generated file network.dtd manually.  -->
   
  

A reaction network may have three kinds of species: metabolites, proteins, and actors.


    <!ENTITY % species-elements "
    metabolite 
    | protein 
    | actor">
  

Beside of the species, a network contains edge clusters, which give references to species, (internal) reactions, and context inflows and outflows.


    <!ELEMENT network (( comment
    | %species-elements;
    | edgecluster
    | context
    | reaction )*) >
  

A network has an identfiier, a kind, and a scale for its graph.


    <!ATTLIST network
    id       CDATA      #IMPLIED
    kind     CDATA      #IMPLIED
    scale    CDATA      #IMPLIED >
  

@id: the identifier is relevant when referening to the networks entities withing latex,

@scale: the scale is a positive real number that permits to scale the x-axis and y-axis simultaneously,

@kind: is an identifier which serves for debugging purposes.

The graph of the network contains various kinds of nodes that must have an identifier and a position


    <!ENTITY % node "
    id          CDATA     #REQUIRED
    x           CDATA     #IMPLIED
    y           CDATA     #IMPLIED
    comment     CDATA     #IMPLIED">
  

Nodes have the follwoing attributes (where x-axis and y-axis should be given):

@id: identifier,

@x: coordinate of x-axis,

@y: coordinate of y-axis,

@comment: a latex comment.

Constraints:

Each species is mapped to a node in the graph. The node of a species is drawn as circled node with solid lines.


    <!ENTITY % species " %node;
    essential    CDATA     #IMPLIED
    latex-look   CDATA     #IMPLIED">
  

These optional attributes of species have the following meaning:

@essential: if present, the circle around the species' node will be drawn in red. It indicates that the presence of the species is essential for a network to work properly.

@latex-look: if present it specifies a possibly nicer latex display of the species' name.

Each species may have a set of copy nodes, which are drawn as dashed circles. All nodes for the same species are linked by a splitpoint, which also is drawn as a node. Logically, it doesn't matter whether a species participates in a reaction or one of its copies.


    <!ENTITY % copies "((copy+,splitpoint,comment?)?,comment*)">
    <!ELEMENT metabolite %copies;   >
    <!ATTLIST metabolite %species; >
    <!ELEMENT protein    %copies;>
    <!ATTLIST protein    %species;
    cluster CDATA #IMPLIED >
    <!ELEMENT actor      %copies;   >
    <!ATTLIST actor      %species; >
  

Species of type protein may represent clusters of proteins in reality. Whether this is the case, can be indicated by the presence attribute cluster". In this case the speciess node is drawn with a double-circle:

@cluster: the presence of this attribute indicates a protein cluster, its value is irrelevant.


    <!ELEMENT copy        (#PCDATA) >
    <!ATTLIST copy        %node;   >
    <!ELEMENT splitpoint  (#PCDATA) >
    <!ATTLIST splitpoint
    x          CDATA     #IMPLIED
    y          CDATA     #IMPLIED
    comment    CDATA     #IMPLIED >
  

Multiple edges of the network may be clustered for nicer graph presentation. An edge cluster is represented by a node of the graph, which can be used everywhere in the same way as a species node can be used.


    <!ELEMENT edgecluster (source*)>
  

A source of an edgecluster is a species, a copy of species, or an edgecluster that has an outgoing edge pointing to it.

edgecluster: a node that clusters edges from serveral sources.


    <!ATTLIST edgecluster %node;
    type       CDATA     #REQUIRED>
  

The type of an edge cluster is the type of edges that point to it. Only edges of the same type can be clustered.

type: the value is this element one of the 6 types of reaction complements (see the entity complement below).

Each source of an edgecluster must contain a reference to a species


    <!ENTITY % species-reference "	  
    spec        CDATA     #IMPLIED
    copy        CDATA     #IMPLIED
    edgecluster CDATA     #IMPLIED" >
  

The combined values of these three attributes must give reference to one or many species:

@spec: identfier of a species,

@copy: identifier of a copy of that species,

@edgecluster: reference to one species or many of them.

Constraints:


    <!ELEMENT source (#PCDATA) >
    <!ATTLIST source %species-reference; >
  

A reaction network may have are 3 kinds of reactions, represented by the following elements:

reaction: an internal reaction,

context[input]: an inflow from the context,

context[output]: an outflow to the context.

A (internal) reaction may have various the three kinds of modifiers, represented by the following elements:


    <!ENTITY % modifier "
    inhibitor
    | activator
    | accelerator">
  

accelerator: an accelerator speeds up the reaction,

activator: an activator is an accelerator nececessary to apply the reaction,

inhibitor: an inhibitor slows down the reaction

An (internal) reaction may have three other complements beside modifers:


    <!ENTITY % complement "
    %modifier;
    | reactant
    | product
    | product-inh">
  

product: a product of a reaction,

reactant: a reactant of a reaction,

product-inh: a product with an implicit degradation reaction.

An internal reaction has a kinetics and a set of complements.


    <!ELEMENT reaction  ((comment)*,((kinetics)?,(%complement;)*))>
  

The complements may be modifiers or else reactants, products, and products with an implicit degradation reaction. Each reaction may either be a candidate for knockout or not. An internal reaction is drawn as a boxed node. The fill-color of the box indicates whether the reaction is a candidate for knockout. The nodes of knockout candidates will be distinguished by a light orange color, while the others will be clored in gray.


    <!ATTLIST reaction %node;
    candidate    CDATA     #IMPLIED  >
  

candidate: the presence of this attribute means that the reaction is a candidate for knockout.

A species may interact in three ways with the context, by inflows, outflows, or both of them.


    <!ELEMENT context  (input | output | in-out)> 
    <!ATTLIST   context %node; >
  

The three possible context elements are as follows:

context/input: an inflow from the context,

context/output: an outflow into the context,

context/in-out: both, an inflow and an outflow.

The value of attribute spec of a context inflow or outflow is the identifier of the interacting species:


    <!ENTITY % species-identifier "
    spec      CDATA     #REQUIRED" >
    
    <!ELEMENT input   (#PCDATA)> <!ATTLIST input %species-identifier; >
    <!ELEMENT output  (#PCDATA)> <!ATTLIST output %species-identifier; >
    <!ELEMENT in-out  (#PCDATA)> <!ATTLIST in-out %species-identifier; >
  

Comments are given in latex format:


    <!ELEMENT comment      (#PCDATA)> 
    <!ATTLIST comment 
    latex	     CDATA    #IMPLIED 
    experiment   CDATA    #IMPLIED
    prediction   CDATA    #IMPLIED >
    
    <!ELEMENT kinetics    (#PCDATA) >
  

An internal reaction has may have an element kinetics, which provides a partial description of the real kinetics. kinetics" the kinetics descriptor. If the kinetics element is absent then similarity to expressoin kinetics is assume by chosing as default <kinetics id="exp">


    <!ATTLIST kinetics
    id        CDATA     #IMPLIED
    expr      CDATA     #IMPLIED  
    mode      CDATA     #IMPLIED
    angle     CDATA     #IMPLIED  >
  

The kinetics is described either by the identifier @id or informally by the latex expression @expr. Whether the descriptor is exact or up to similarity is specifie by @mode.

@id: An identfier of a kinetics, which must have either of the following three values

@expr: an arbitrary latex expression describing the kinetics. It may use the following predefined latex macros:

Other latex macros can be user defined by addition to the file Graph/Latex/macros.sty.

@mode: The interpretation mode may be either modulo similarity or exact. In the former case, the attribute mode must be absent, in the latter it must satisfy mode="equal".

@angle: The attribute angle says where the descriptor of the kinetics is annotated at the reaction node. If the id attribute is present, then the value of the annotation is the value of attribute expr.

Constraints:

Reactions may have three kinds of modfiers: inhibitors, activators, accelerators.


    <!ELEMENT inhibitor   (#PCDATA) >
    <!ATTLIST inhibitor   %species-reference; >
    <!ELEMENT activator   (#PCDATA) >
    <!ATTLIST activator   %species-reference; >
    <!ELEMENT accelerator (#PCDATA) >
    <!ATTLIST accelerator %species-reference; >
  

Beside of the modifieres there are three other kinds of reaction complements: reactants, products, and inhibited products.


    <!ENTITY % reaction-complement "%species-reference;
        stoichiometry CDATA   #IMPLIED"  >
    <!ELEMENT reactant      (#PCDATA) >
    <!ATTLIST reactant      %reaction-complement; >
    <!ELEMENT product       (#PCDATA) >
    <!ATTLIST product       %reaction-complement; >
    <!ELEMENT product-inh   (#PCDATA) >
    <!ATTLIST product-inh   %reaction-complement; >
  

@stoichiometry: the value of the stoichiometry attribute it is computed automatically by the implementation. User defined stoichiometry values will be overwritten so that they become correct if necessary.

Advanced Examples

The following examples illustrate some of the features discussed before, such as edgeclusters and splitpooints, but also some more advanced features.

Knockout predictions

We next come to an example of a bigger networks where edge clusters and copy node linked by splitpoins are needed to make the graph look nice. This is the graph of leucine network below.

There are internal reactions drawn in light orange for knockout candidate and others in medium orange for (unsafe) knockout predictions. While the knockout candididates are captured by the XML networks in the schema discussed before, the knockout prediction must be specified in an independent input file.

Leucine network

Branched chain amino acid network of B.~Subtilis.

Knockouts XML input file

    
<knockouts>
   <single>
      <knockout reaction="1" solution="2" />
      <knockout reaction="3" solution="3" />
      <knockout reaction="4" solution="4" />
      <knockout reaction="7" solution="5" />
      <knockout reaction="10" solution="6" />
      <knockout reaction="12" solution="7" />
      <knockout reaction="13" solution="8" />
      <knockout reaction="14" solution="9" />
      <knockout reaction="15" solution="10" />
      <knockout reaction="16" solution="11" />
      <knockout reaction="22" solution="12" />
      <knockout reaction="40" solution="13" />
      <knockout reaction="47" solution="14" />
   </single>
   <double/>
</knockouts>

Elementary Flux Analysis

In the graph of pyruvate metablic network below, we have annotated the result of an elementary flux analysis. The reactions are given a set of colors, that are annotated to the edges.

Pyruvate's metablic network.

Fluxes XML input file

    
<colors>
   <reaction id="47" thickness="2" >
      <color id="Apricot" />
      <color id="BlueGreen" />
      <color id="BlueViolet" />
      <color id="BrickRed" />
      <color id="BurntOrange" />
      <color id="Dandelion" />
      <color id="Fuchsia" />
      <color id="LimeGreen" />
   </reaction>
   <reaction id="48" thickness="2" >
      <color id="Apricot" />
   </reaction>
   <reaction id="14" thickness="2" >
      <color id="Aquamarine" />
      <color id="Cerulean" />
      <color id="DarkOrchid" />
      <color id="Green" />
      <color id="Magenta" />
   </reaction>
   <reaction id="15" thickness="2" >
      <color id="Aquamarine" />
   </reaction>
   <reaction id="12" thickness="2" >
      <color id="Bittersweet" />
      <color id="Cerulean" />
      <color id="DarkOrchid" />
      <color id="Green" />
      <color id="Magenta" />
   </reaction>
   <reaction id="13" thickness="2" >
      <color id="Bittersweet" />
   </reaction>
   <reaction id="16" thickness="2" >
      <color id="Black" />
      <color id="Cerulean" />
      <color id="DarkOrchid" />
      <color id="Green" />
      <color id="Magenta" />
   </reaction>
   <reaction id="17" thickness="2" >
      <color id="Black" />
   </reaction>
   <reaction id="8" thickness="2" >
      <color id="Blue" />
      <color id="Cerulean" />
      <color id="DarkOrchid" />
      <color id="Green" />
      <color id="Magenta" />
   </reaction>
   <reaction id="9" thickness="2" >
      <color id="Blue" />
   </reaction>
   <reaction id="159" thickness="2" >
      <color id="BlueGreen" />
      <color id="BlueViolet" />
      <color id="BrickRed" />
      <color id="BurntOrange" />
      <color id="Dandelion" />
      <color id="Fuchsia" />
      <color id="LimeGreen" />
   </reaction>
   <reaction id="5" thickness="2" >
      <color id="BlueGreen" />
      <color id="BrickRed" />
      <color id="Brown" />
      <color id="BurntOrange" />
      <color id="CadetBlue" />
      <color id="JungleGreen" />
   </reaction>
   <reaction id="7" thickness="2" >
      <color id="BlueGreen" />
      <color id="BrickRed" />
      <color id="Brown" />
      <color id="BurntOrange" />
      <color id="CadetBlue" />
      <color id="GreenYellow" />
   </reaction>
   <reaction id="10" thickness="2" >
      <color id="BlueGreen" />
      <color id="BlueViolet" />
      <color id="BrickRed" />
      <color id="Brown" />
      <color id="BurntOrange" />
      <color id="CadetBlue" />
      <color id="Cyan" />
      <color id="Dandelion" />
      <color id="ForestGreen" />
      <color id="Fuchsia" />
      <color id="Gray" />
      <color id="LimeGreen" />
   </reaction>
   <reaction id="50" thickness="2" >
      <color id="BlueGreen" />
      <color id="BrickRed" />
      <color id="Brown" />
      <color id="CarnationPink" />
      <color id="Dandelion" />
      <color id="DarkOrchid" />
      <color id="Fuchsia" />
      <color id="Green" />
   </reaction>
   <reaction id="51" thickness="2" >
      <color id="BlueGreen" />
      <color id="BrickRed" />
      <color id="Brown" />
      <color id="CadetBlue" />
      <color id="CarnationPink" />
      <color id="Cyan" />
      <color id="Dandelion" />
      <color id="DarkOrchid" />
      <color id="ForestGreen" />
      <color id="Fuchsia" />
      <color id="Green" />
   </reaction>
   <reaction id="53" thickness="2" >
      <color id="BlueGreen" />
      <color id="BlueViolet" />
      <color id="BurntOrange" />
      <color id="CadetBlue" />
      <color id="Cerulean" />
      <color id="CornflowerBlue" />
   </reaction>
   <reaction id="56" thickness="2" >
      <color id="BlueGreen" />
      <color id="BlueViolet" />
      <color id="BrickRed" />
      <color id="Brown" />
      <color id="BurntOrange" />
      <color id="CadetBlue" />
      <color id="Cerulean" />
      <color id="ForestGreen" />
      <color id="Fuchsia" />
      <color id="Goldenrod" />
      <color id="Green" />
   </reaction>
   <reaction id="149" thickness="2" >
      <color id="BlueViolet" />
      <color id="Cyan" />
      <color id="Dandelion" />
      <color id="DarkOrchid" />
      <color id="Emerald" />
      <color id="ForestGreen" />
      <color id="Fuchsia" />
      <color id="LimeGreen" />
      <color id="Magenta" />
   </reaction>
   <reaction id="2" thickness="2" >
      <color id="BlueViolet" />
      <color id="BurntOrange" />
      <color id="Cerulean" />
      <color id="Lavender" />
      <color id="LimeGreen" />
      <color id="Magenta" />
   </reaction>
   <reaction id="3" thickness="2" >
      <color id="BrickRed" />
      <color id="Brown" />
      <color id="CarnationPink" />
      <color id="Lavender" />
   </reaction>
   <reaction id="146" thickness="2" >
      <color id="Brown" />
      <color id="CadetBlue" />
      <color id="Cerulean" />
      <color id="Cyan" />
      <color id="DarkOrchid" />
      <color id="ForestGreen" />
      <color id="Green" />
      <color id="Magenta" />
   </reaction>
   <reaction id="46" thickness="2" >
      <color id="Brown" />
      <color id="CadetBlue" />
      <color id="Cyan" />
      <color id="ForestGreen" />
   </reaction>
   <reaction id="49" thickness="2" >
      <color id="Brown" />
      <color id="CadetBlue" />
      <color id="Cyan" />
      <color id="ForestGreen" />
   </reaction>
   <reaction id="54" thickness="2" >
      <color id="CarnationPink" />
      <color id="CornflowerBlue" />
      <color id="Cyan" />
      <color id="Dandelion" />
      <color id="DarkOrchid" />
      <color id="Emerald" />
   </reaction>
   <reaction id="500" thickness="2" >
      <color id="Cerulean" />
      <color id="DarkOrchid" />
      <color id="Green" />
      <color id="Magenta" />
   </reaction>
   <reaction id="1" thickness="2" >
      <color id="Cerulean" />
      <color id="DarkOrchid" />
      <color id="Green" />
      <color id="Magenta" />
   </reaction>
   <reaction id="18" thickness="2" >
      <color id="Cerulean" />
      <color id="DarkOrchid" />
      <color id="Green" />
      <color id="Magenta" />
   </reaction>
   <reaction id="4" thickness="2" >
      <color id="Cyan" />
      <color id="Dandelion" />
      <color id="DarkOrchid" />
      <color id="Emerald" />
      <color id="JungleGreen" />
      <color id="LimeGreen" />
      <color id="Magenta" />
   </reaction>
   <reaction id="6" thickness="2" >
      <color id="Cyan" />
      <color id="Dandelion" />
      <color id="DarkOrchid" />
      <color id="Emerald" />
      <color id="GreenYellow" />
      <color id="LimeGreen" />
      <color id="Magenta" />
   </reaction>
   <reaction id="55" thickness="2" >
      <color id="Emerald" />
      <color id="Goldenrod" />
   </reaction>
   <reaction id="11" thickness="2" >
      <color id="Gray" />
   </reaction>
</colors>

Solution Annotations for Abstract Interpretation

We next show that reaction nodes of network's graph can be annotated with a solution of a difference constraint, that was derived from the network's steady state equation by abstract interpretation.

A solution annotated to the network's graph.

Solutions XML input file

    
<results>
   <variables>
      <var kind="global" >o_1</var>
      <var kind="global" >o_7</var>
      <var kind="global" >o_8</var>
      <var kind="global" >o_14</var>
      <var kind="global" >v_1</var>
      <var kind="global" >v_7</var>
      <var kind="global" >v_9</var>
      <var kind="global" >v_14</var>
      <var kind="global" >x_CodY</var>
      <var kind="global" >x_TnrA</var>
      <var kind="global" >y_Leu</var>
      <var kind="global" >z_BSCcpA</var>
      <var kind="global" >z_BSCodY</var>
      <var kind="global" >z_BSTnrA</var>
      <var kind="global" >z_CcpA</var>
      <var kind="global" >z_CodY</var>
      <var kind="global" >z_Leu</var>
      <var kind="global" >z_PIlv_Leu</var>
      <var kind="global" >z_TnrA</var>
  </variables>
   <result>
      <variables>
         <var kind="global" >v_1</var>
         <var kind="global" >x_CodY</var>
         <var kind="global" >y_Leu</var>
         <var kind="global" >z_BSCodY</var>
         <var kind="global" >z_CodY</var>
         <var kind="global" >z_Leu</var>
         <var kind="global" >z_PIlv_Leu</var>
      </variables>
      <solution v_1="Do" x_CodY="Do" y_Leu="Up" z_BSCodY="Do" z_CodY="Do" z_Leu="Up" z_PIlv_Leu="Up" >
         <weight>70</weight>
         <position>2</position>
      </solution>
   </result>
</results>

A network with complete kinetic information

Without any extra files, we can annotate all reaction of a network with kinetic expressions, similarly to what is done in SBML.

A part of the Smad network.

Smad XML network

    
<network id="bio" scale=".8" >

  <!-- species -->

  <actor id="A" x="0.3" y="1" latex-look="G4_c" comment="cytoplasmic EGFP-Smad2/Smad4 complex" />
  <actor id="C" x="2.7" y="1" latex-look="pG_c" comment="cytoplasmic phosphorilated EGFP-Smad2 complex" />
  <actor id="X" x="4.5" y="1" latex-look="S4_c" comment="cytoplasmic Smad4" />
  <actor id="E" x="6.3" y="1" latex-look="pS2_c" comment="cytoplasmic phosphorilated Smad2" />
  <actor id="W" x="8.7" y="1" latex-look="S24_c" comment="cytoplasmic Smad2/Smad4 complex" />

  <actor id="B" x="0.3" y="-3" latex-look="G4_n" comment="nuclear EGFP-Smad2/Smad4 complex" />
  <actor id="D" x="2.7" y="-3" latex-look="pG_n" comment="nuclear phosphorilated EGFP-Smad2 complex" />
  <actor id="Y" x="4.5" y="-3" latex-look="S4_n" comment="nuclear Smad4" />
  <actor id="F" x="6.3" y="-3" latex-look="pS2_n" comment="nuclear phosphorilated Smad2" />
  <actor id="Z" x="8.7" y="-3" latex-look="S24_n" comment="nuclear Smad2/Smad4 complex" />

  <!-- reactions  -->


    <reaction id="22" x="1.5" y="2" comment="Formation of \M{A}" >
    <kinetics expr="C \kon\z C\z X" angle="90" />
    <product spec="A" />
    <reactant spec="C" />
    <reactant spec="X" />
  </reaction>

  <reaction id="-22" x="1.5" y="0" comment="Decomposition of \M{A}" >
    <kinetics expr="C \koff\z A" angle="-90" />
    <reactant spec="A" />
    <product spec="C" />
    <product spec="X" />
  </reaction>

  <reaction id="5" x="7.5" y="2" comment="Formation of complex \M{W}" >
    <kinetics expr="C \kon\z X\z E" angle="90" />
    <reactant spec="X" />
    <reactant spec="E" />
    <product spec="W" /> 
  </reaction>

  <reaction id="-5" x="7.5" y="0" comment="Decomposition of complex \M{W}" >
    <kinetics expr="C \koff\z W" angle="-90" />
    <product spec="X" />
    <product spec="E" />
    <reactant spec="W" /> 
  </reaction>
  

    <reaction id="23" x="1.5" y="-2" comment="Formation of \M{B}" >
    <kinetics expr="N \kon\z D\z Y" angle="90" />
    <product spec="B" />
    <reactant spec="D" />
    <reactant spec="Y" />
  </reaction>

  <reaction id="-23" x="1.5" y="-4" comment="Decomposition of \M{B}" >
    <kinetics expr="N \koff\z B" angle="-90" />
    <reactant spec="B" />
    <product spec="D" />
    <product spec="Y" />
  </reaction>

  <reaction id="6" x="7.5" y="-2" comment="Formation of complex \M{Z}" >
    <kinetics expr="\k{on} N\z Y \z F" angle="90" />
    <reactant spec="Y" />
    <reactant spec="F" />
    <product spec="Z" /> 
  </reaction>

  <reaction id="-6" x="7.5" y="-4" comment="Decomposition of complex \M{Z}" >
    <kinetics expr="\k{off} N \z Z" angle="-90" />
    <product spec="Y" />
    <product spec="F" />
    <reactant spec="Z" /> 
  </reaction>
  

    <reaction id="1" x="4" y="-1" comment="Shuttling of \M{X} into nucleus" >
    <kinetics expr="\k{in}\z X" angle="180" />
    <product spec="Y" />
    <reactant spec="X" /> 
  </reaction>
  
  <reaction id="-1" x="5" y="-1" comment="Shuttling of \M{Y} into cytoplasm" >
    <kinetics expr="\k{out}\z{Y}" angle="0" />
    <product spec="X" />
    <reactant spec="Y" /> 
  </reaction>
  
  <reaction id="7" x="8.7" y="-1" comment="Shuttling of \M{W} into nucleus" >
    <kinetics expr="\k{in}C I F \z W" angle="0" />
    <product spec="Z" />
    <reactant spec="W" /> 
  </reaction>
 
  
</network>