Home | Architecture - Install - Tutorial | Java Doc - Sourceforge Project | About us | Supplementary Data

How to use Cyclone. Examples.
Example of Cyclone commands in the terminal

- To build the XSD schema of a Cyc, type the following command, for example

java -jar Cyclone_1.0b_fat.jar -function:Biocyc2Xsd -orgids:Meta -max:2

It will create a file ./workspace/Cyclone_1.0b/schema/biocyc.xsd

- To build the XML file with the data of a Cyc, type the following command, for example

java -jar Cyclone_1.0b_fat.jar -function:Biocyc2Xml -orgids:Meta -max:100

It will create a file ./workspace/Cyclone_1.0b/samples/Meta-*.xml

The jar archive requires mySQL. To use a distinct database, you will need to make your own .jar. Furthermore, a short selection of functions are available from the jar. We encourage you to add your own functions or use a Java IDE like Eclipse to access all the functions.


Example of Cyclone usage with Eclipse and JBoss
- In the Package Explorer tab, open Cyclone_1.0b > src/manually-generated > fr.cns.genoscope.nemo.cyclone.application double click on Tutorial.java

- The source code of the Java class is opened in the main tab.

- To run the main of Tutorial.java, right-click on Tutorial.java in the 'Package Explorer' tab and choose 'Run as...' > '1 Run as Java application'.

- In the console tab, you will see that PathwayTools Server has started and at the end of the execution a trace of the Xml created file.

- Right-click on Cyclone_1.0b in the 'Package Explorer' tab and choose Refresh.

- Double click on Cyclone_1.0b > samples > Ecoli_xxx.xml to see the xml file generated.

We let you discover other examples in Tutorial.java:

- Create XSD schema from a list of biocyc (As Cyclone.xsd).

- Create XML data files of a BioCyc organism. (As Ecoli.xml 57Mo)

- Load an organism into Cyclone from a XML data file and duplicate it.

- List all genes that are regulated by a metabolite.

- Extract the Metabolic graph (As Ecoli_metabolicnetwork.xml).

- Extract the Transcriptional Regulation Interaction graph and open it with Cytoscape.

- Save an organism into BioCyc.

Example of OQL with Cyclone into JBoss

OQL means Object Query Language. You can query and browse Cyclone data using the JBoss interface. This is a really powerful and easier way to query and browse the data than using SQL or SQL browser. Objects underlying Cyclone make it really easier to access data than biowarehouse for example.

- In Eclipse, open the menu Window>Open perspective>Other... and select in the popup window 'Hibernate Console'.

- In the 'Hibernate Configurations' tab (top left panel), right click and select 'Add configuration'

- Enter the following parameters:
Name: Cyclone
Property file: /Cyclone_1.0b/hbm/cyclone/hibernate.properties
Configuration file: Nothing to enter!
Entity resolver: Nothing to enter!
In the 'Mapping file' area, 'Add' all the files in /Cyclone_1.0b/classes/fr/cns/genoscope/nemo/cyclone/db/generated/.
To do so, click on the first file found 'AbbrevName.hbm.xml' and shift click on the last one 'Year.hbm.xml', then click 'Ok'.
In the 'Class path' area, 'add JARs/Dir', all the following files:
/classes
/lib/mysql/mysql-connector-java-3.1.10-bin.jar or your favorite rdbms JDBC
/lib/jaxb/*.jar/lib/hyperjaxb2/hyperjaxb2.jarThen click Finish.

Now in the Hibernate Configurations tab, you should see the created configuration Cyclone.
- In this tab, Right click on Cyclone and select menu 'HQL Scratchpad'`
- In the opened tab, write for example: select g.Values from Gene g
You should get the result in the 'Hibernate Query Result' tab on the bottom of the screeen instantly.
Some other examples of simple queries: select count(distinct r.FrameId) from GeneralizedReactions r

Tips

-- View the object model, XSD --

With Eclipse, open schema/biocyc.xsd and select the graph view in the biocyc.xsd tab that will open.

-- Help, JavaDoc --

Java doc can be accessed in the directory /doc. For more information, see http://www.biojava.org/docs/api/index.html. Cyclone JavaDoc is also available online.

-- Eclipse Error --

If you get this error 'Exception in thread "main" java.lang.OutOfMemoryError: Java heap space, you need to add memory to run a Java class. Right click on the class name in the 'Package Explorer'. Select 'RunAS>Run'... In the 'Arguments' tab, enter -Xmx1024M as VM arguments. This will give 1024Mo of memory to Eclipse Virtual Memory.
More on Eclipse

-- Debug mode --

To print all generated SQL and add comments to the generated SQL by Hibernate to the console, edit the file in Cyclone_1.0b>hbm/cyclone>hibernate.properties. Switch to true hibernate.show_sql and hibernate.use_sql_comments.
To print all Cyclone debug information, edit the file in Cyclone_1.0b>src/config>log4j.properties. Switch the parameters to values requested (FATAL, ERROR, DEBUG, INFO,A1)
More on Log4J

Tutorial.java
This tutorial file is part of the .jar package and can be found in fr.cns.genoscope.nemo.cyclone.application.

Eclipse manages imports automatically, so you do not need to write them manually. Here you have an extract of Tutorial.java (original location : Cyclone/src/manually-generated/fr/cns/genoscope/nemo/cyclone/application/Tutorial.java )

package fr.cns.genoscope.nemo.cyclone.application; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.xml.bind.JAXBException; import org.hibernate.LockMode; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.criterion.Example; import org.hibernate.criterion.Restrictions; import fr.cns.genoscope.nemo.cyclone.* import fr.cns.genoscope.nemo.graphml.db.generated.Graphml; import fr.cns.genoscope.nemo.hibernate.HibernateUtil; public class Tutorial { /** * This Java class is a sample class to demonstrate how to use Cyclone * to query and edit BioCyc. In the main function, uncomment lines of * tutorial you would like to run. Then click on the play button * at the top of the screen to Run Tutorial. * * 1-TutorialEx1: Extract the xml schema as ./Cyclone_Core/schema/Ecoli.xsd . * 2-TutorialEx2: Extract a Pathway Genome DataBase (PGDB - a Cyc) into a CycloneML file as ./Cyclone_Core/Data/Pgdb/CycloneML/Ecoli.xml . * 3-TutorialEx3: Load a CycloneML file into the Cyclone database (mySQL). * 4-TutorialEx4: Query Cyclone using Object Query Language or Criteria API. * 5-TutorialEx5: Build, export and display graphs. * 6-TutorialEx6: Edit a PGDB data. * 7-TutorialEx7: Save data from Cyclone to CycloneML * 8-TutorialEx8: Save data Cyclone into BioCyc */ /** * Example 1 * Extract the xml schema as ./Cyclone_Core/schema/Ecoli.xsd * Pathway Tools is required */ public static String TutorialEx1(String myOrganism, int max) { String[] organisms = new String[1]; organisms[0]=myOrganism; return Biocyc2Xsd.createXsd(organisms,max); } /** * Example 2 * Extract a Pathway Genome DataBase (PGDB - a Cyc) into a CycloneML file as ./Cyclone_Core/Data/Pgdb/CycloneML/ * Pathway Tools is required */ public static String TutorialEx2(String myOrganism,int max) { return Biocyc2Xml.createXml(myOrganism,max); } /** * Example 3 * Load a cycloneML file into the Cyclone database * mySQL is required */ public static void TutorialEx3(String myPath) { Xml2CycloneDb.importXml(myPath); } /** * Example 4a * Query Cyclone using Object Query Language or Criteria API * Find all enzymes for which ATP is an inhibitor with OBJECT QUERY LANGUAGE * mySQL is required * This function was inspired by Karp et al. 2004, Application Note in Bioinformatics */ public static List TutorialEx4a(String myOrganism, String metabolite) { //Open a session GeneralServices.EasyCycloneOpenOrganism(myOrganism); //OQL Query oql = GeneralServices.myEasySession.createQuery( "select er.FrameId from EnzymaticReactions er "+ "where er.Organism = :orgid "+ " and er.InhibitorsAll.Value like :metabolite"); //Replace variable in oql oql.setString("orgid",myOrganism); oql.setString("metabolite","ATP"); //Retrieves results List myResults =oql.list(); System.out.println(myResults); GeneralServices.EasyCycloneClose(); return myResults; } /** * Example 4b * Query Cyclone using Object Query Language or Criteria API * Find all enzymes for which ATP is an inhibitor with CRITERIA API * mySQL is required */ public static void TutorialEx4b(String myOrganism) { //Open session GeneralServices.EasyCycloneOpenOrganism(myOrganism); try { //Create an instance of the enzymatic reaction ObjectFactory myFactory = new ObjectFactory(); EnzymaticReactions er; er = myFactory.createEnzymaticReactions(); er.setOrganism("Ecoli"); //Create a criteria List results = GeneralServices.myEasySession.createCriteria(EnzymaticReactions.class) .add(Example.create(er)) .createCriteria("InhibitorsAll") .add(Restrictions.like("Value","ATP")) .list(); //Display results //Becareful we extract all the object, so we get an java adress System.out.println(results); //Display an attribute of the results int i=0; for(EnzymaticReactions myER : results){ System.out.println(myER.getFrameId()); i++; } } catch (JAXBException e) { e.printStackTrace(); } //Close the session GeneralServices.EasyCycloneClose(); } /** * Example 5a * Metabolic Graph : each node represents a metabolite or a reaction * build the grah, export it in graphml and draw it in a new window * mySQL is required */ public static void TutorialEx5a(String myOrganism, int max) { String keySession = new String("cyclone"); //Structure to store the tempory graph ArrayList> myPseudoGraph = new ArrayList>(); //Ask for a DataAccessObject (Dao) to manipulate the generalized-reactions GeneralizedReactionsDao rdao = new GeneralizedReactionsDao(keySession); //Get all Reactions List myRxns = rdao.getAllObjectsByInstance(myOrganism,"|Reactions|"); //List myObNodes = new ArrayList(); // myObNodes.addAll(rdao.getAllObjectsByInstance(orgid,"|Reactions|")); int i=0; //For each reaction, extract the left and right metabolites for(GeneralizedReactions myRxn : myRxns){ System.out.println("Dealing with "+myRxn.getFrameId()); List leftts = rdao.getValueList(myRxn.getLeftt()); for(String metaboliteFrame : leftts){ ArrayList myTmpEdge = new ArrayList(); myTmpEdge.add(metaboliteFrame); myTmpEdge.add(myRxn.getFrameId()); myPseudoGraph.add(myTmpEdge); } List rightts = myRxn.getRightt(); for(Rightt metabolite : rightts){ ArrayList myTmpEdge = new ArrayList(); myTmpEdge.add(myRxn.getFrameId()); myTmpEdge.add(metabolite.getValue()); myPseudoGraph.add(myTmpEdge); } if(i==max){break;}else{i++;} } //Export it in Graphml format Graphml myGraph2 = GraphmlServices.buildGraphML(max,"MetabolismNetwork of "+myOrganism,myPseudoGraph); String filexml2 = GraphmlServices.export2Xml(myGraph2,"Data/Graphs/GraphML/"+myOrganism+"_metabolicnetwork"+(new Date()).getTime()+".xml"); //Display it in a window using jung api GraphmlServices.displayGraph(filexml2); } /** * Example 5b * Transcriptional Regulation Interaction Graph: each node represents a gene * export the graph into Cytoscape format * mySQL is required */ public static void TutorialEx5b(String myOrganism, int max) { String keySession = new String("cyclone"); Regulation myRegulation = TranscriptionalRegulationCreator.getRegulation( keySession , myOrganism, max); //print in the console myRegulation.display(); //Export it in Cytoscape format (SIF, NA) myRegulation.toCytoscape(); //print it for NeMo clusters analysis tool //myRegulation.toClusterMatrix(); } /** * Example 5c * Full Graph: * each node can represent a gene, a reaction or a metabolite, * each link can represents transcriptional regulation, metabolite regulation, metabolite reaction * mySQL is required */ public static void TutorialEx5c(String myOrganism, int max) { FullNetwork.completeNetwork(myOrganism, max); } /** * Example 6 * Edit a PGDB * we correct a reaction stoechiometry of Ecoli_v9.5 * by adding a reactant to the 6PGLUCONDEHYDROG-ENZRXN reaction. * mySQL is required */ public static void TutorialEx6(String myOrganism, String myEnzymaticReactionFrameId, int max) { //String myEnzymaticReactionFrameId ="6PGLUCONDEHYDROG-ENZRXN"; try { GeneralServices.EasyCycloneOpenOrganism(myOrganism); EnzymaticReactionsDao myERDao = new EnzymaticReactionsDao("cyclone"); EnzymaticReactions myER = (EnzymaticReactions)myERDao.getObjectByFrameandOrganism(myOrganism,myEnzymaticReactionFrameId); GeneralServices.myEasySession.lock(myER,LockMode.READ); // get the Generalized Reaction corresponding to the Enzymatic reaction 6PGLUCONDEHYDROG-ENZRXN String reactionFrameId = ((Reaction)(myER.getReaction().get(0))).getValue(); GeneralizedReactionsDao myRDao = new GeneralizedReactionsDao("cyclone"); GeneralizedReactions myReaction = (GeneralizedReactions)myRDao.getObjectByFrameandOrganism(myOrganism,reactionFrameId); // build the proton object ObjectFactory factory = new ObjectFactory(); Rightt protonParticipant = factory.createRightt(); protonParticipant.setValue("PROTON"); protonParticipant.setCoefficient("1"); // Add the proton to the reaction myReaction.getRightt().add(protonParticipant); // Save the modified reaction myRDao.store(myReaction); // Now we should add the reverse link to be coherent with the BioCyc schema. (this is optional) // We add the reaction to the list of reactions in which 'proton' appears. { // We get the Proton object of the database ChemicalsDao cDao = new ChemicalsDao("cyclone"); Chemicals proton = (Chemicals)cDao.getObjectByFrameandOrganism(myOrganism,"PROTON"); // We get the AppearsInRightSideOf object AppearsInRightSideOf myRxn = factory.createAppearsInRightSideOf(); // We add the link and save myRxn.setValue(reactionFrameId); proton.getAppearsInRightSideOf().add(myRxn); cDao.store(proton); } GeneralServices.EasyCycloneClose(); } catch (JAXBException e) { e.printStackTrace(); } } /** * Example 7 * Extract data from Cyclone to CycloneML * mySQL is required */ public static String TutorialEx7(String myOrganism) { String keySession = new String("cyclone"); BiocycDao myBiocycDao = new BiocycDao(keySession); BioCyc myBiocyc = myBiocycDao.getByOrgid(myOrganism); Session mySession = HibernateUtil.getSessionFactory(keySession).openSession(); mySession.lock(myBiocyc,LockMode.READ); return ExportCyclone2Xml.exportBiocyc( myBiocyc, "Data/Pgdb/CycloneML/"+myOrganism+".export.xml"); } /** * Example 8 * Save an organism with the into BioCyc * BE CAREFULL it will override your organism. Use this function with caution. You should BACKUP YOUR ORGANISM BEFORE . * mySQL and pathway tools are required */ public static void TutorialEx7(String orgIdCyclone, String orgIdBiocyc) { String keySession = new String("cyclone"); //int max = 2; BiocycDao myBiocycDao = new BiocycDao(keySession); BioCyc myBiocyc = myBiocycDao.getByOrgid(orgIdCyclone); //If you have a list of orthologs links between Ecoli and your new organism //OrthologLinks2Cyclone.addOrthologsLinks(myBiocyc,keySession,"Ecoli","Data/Homology/ecocyc.bbh.acineto2.txt",max); ExportCyclone2Biocyc myExportBiocycJava = new ExportCyclone2Biocyc(keySession,orgIdCyclone, orgIdBiocyc); myExportBiocycJava.processCyclonePgdb2BiocycPgdb(); } /** * Example9 * Add information to your favorite PGDB from a file automatically. * This example should require investment from yourself. A list of orthologs between your * organism and Ecoli is required. The file format of the file is: * EGCCOLIID=YOURORGANISMID */ public static void TutorialEx9(String orgIdCyclone, String orgIdBiocyc) { String keySession = new String("cyclone"); int max = 2; BiocycDao myBiocycDao = new BiocycDao(keySession); BioCyc myBiocyc = myBiocycDao.getByOrgid(orgIdCyclone); // If you have a list of orthologs links between Ecoli and your new // organism OrthologLinks2Cyclone.addOrthologsLinks(myBiocyc, keySession, "Ecoli", "Data/Homology/ecocyc.bbh.organisms.txt", max); } }

Extract of the Biocyc96.xsd file generated by Cyclone
You can download the whose file CycloneBC96.xsd
<?xml version="1.0" encoding="UTF-8"?>

<!-- CycloneXSD . This file may be freely distributed and modified under the terms of the CeCILL  Licence. It should be distributed with the file. If you do  not have a copy, see: http://www.cecill.info/index.en.html -->
<!-- For more information on the Cyclone project and its  aims, or to join the cyclone mailing list, visit the home page at:  http://www.genoscope.cns.fr/bioinfo/nemo . Cyclone is a java project created at Genoscope,  French National Sequencing Center - CNRS UMR 8030. -->
<!-- Director: Jean WEISSENBACH -->
<!-- Bioinformatic Director:  Vincent SCHACHTER -->
<!-- Copyright for this file is held jointly by the individual creators. -->
<!-- Francois LE FEVRE (flefevre@genoscope.cns.fr) -  Network Modeling team (NeMo), http://www.genoscope.cns.fr/bioinfo/nemo -->
<!-- Serge SMIDTAS (sergi@sergi5.com) - Network Modeling  team (NeMo) - http://www.genoscope.cns.fr/bioinfo/nemo -->
<!-- and by the following individual authors. -->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:hj="http://hyperjaxb2.jvnet.org/customizations" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jaxb:extensionBindingPrefixes="hj xjc" jaxb:version="1.0">
  <xs:element name="BioCyc">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Ccid" type="xs:string" minOccurs="0" maxOccurs="1">
          <xs:annotation>
            <xs:appinfo>
              <hj:id>
                <hj:generator generatorClass="uuid"/>
              </hj:id>
            </xs:appinfo>
          </xs:annotation>
        </xs:element>
        <xs:element name="PgdbId" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="Level" type="xs:int" minOccurs="0" maxOccurs="1"/>
        <xs:element name="Version" type="xs:int" minOccurs="0" maxOccurs="1"/>
        <xs:element name="AnatomicalStructures" type="AnatomicalStructures" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="Cco" type="Cco" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="Chemicals" type="Chemicals" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="Databasess" type="Databasess" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="EnzymaticReactions" type="EnzymaticReactions" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="Evidences" type="Evidences" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="GeneralizedReactions" type="GeneralizedReactions" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="Kbdescriptor" type="Kbdescriptor" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="Notes" type="Notes" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="Organisms" type="Organisms" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="ParalogousGeneGroups" type="ParalogousGeneGroups" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="People" type="People" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="PolymerSegments" type="PolymerSegments" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="ProteinFeatures" type="ProteinFeatures" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="Publications" type="Publications" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="AnatomicalStructures">
    <xs:sequence>
      <xs:element name="Ccid" type="xs:string" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:appinfo>
            <hj:id>
              <hj:generator generatorClass="uuid"/>
            </hj:id>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element name="FrameId" type="xs:string"/>
      <xs:element name="Organism" type="xs:string"/>
      <xs:element name="FrameType" type="xs:string"/>
      <xs:element name="Comment" type="Comment" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:appinfo>
            <jaxb:property>
              <jaxb:javadoc>The Comment slot stores a general comment about the object that contains the slot.</jaxb:javadoc>
            </jaxb:property>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element name="CommentInternal" type="CommentInternal" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:appinfo>
            <jaxb:property>
              <jaxb:javadoc>A comment for internal purposes that is not released to the pubilc.</jaxb:javadoc>
            </jaxb:property>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element name="CommonName" type="CommonName" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:appinfo>
            <jaxb:property>
              <jaxb:javadoc>The primary name by which an object is known to scientists -- a widely used and familiar name in some cases arbitrary choices must be made .</jaxb:javadoc>
            </jaxb:property>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element name="ComponentOf" type="ComponentOf" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:appinfo>
            <jaxb:property>
              <jaxb:javadoc>This slot specifies an object that contains this object as a smaller part. For example, this slot points from a monomer to a larger complex that contains it.</jaxb:javadoc>
            </jaxb:property>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element name="Components" type="Components" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:appinfo>
            <jaxb:property>
              <jaxb:javadoc>This slot lists the components of some physical assembly, such as the subunits of a protein complex or the genes within a chromosome. The coefficient of each component when known is listed as an annotation of the component value under the label coefficient. When a modified protein is created to reflect a chemically modified alternate form of the protein, if that protein is a complex, its subunit structure need not be mirrored in the modified-protein frame. The subunit structure should be defined only once, for the frame that represents the unmodified form of the protein.</jaxb:javadoc>
            </jaxb:property>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element name="CreationDate" type="CreationDate" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:appinfo>
            <jaxb:property>

[...]

Extract of the Ecoli.xml file generated by Cyclone
<?xml version="1.0" encoding="UTF-8"?>
<BioCyc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://nemo-cyclone.sourceforge.net/CycloneBC96.xsd">

<!-- CycloneXSD . This file may be freely distributed and modified under the terms of the CeCILL  Licence. It should be distributed with the file. If you do  not have a copy, see: http://www.cecill.info/index.en.html -->
<!-- For more information on the Cyclone project and its  aims, or to join the cyclone mailing list, visit the home page at:  http://www.genoscope.cns.fr/bioinfo/nemo . Cyclone is a java project created at Genoscope,  French National Sequencing Center - CNRS UMR 8030. -->
<!-- Director: Jean WEISSENBACH -->
<!-- Bioinformatic Director:  Vincent SCHACHTER -->
<!-- Copyright for this file is held jointly by the individual creators. -->
<!-- Francois LE FEVRE (flefevre@genoscope.cns.fr) -  Network Modeling team (NeMo), http://www.genoscope.cns.fr/bioinfo/nemo -->
<!-- Serge SMIDTAS (sergi@sergi5.com) - Network Modeling  team (NeMo) - http://www.genoscope.cns.fr/bioinfo/nemo -->
<!-- and by the individual following authors. -->

  <PgdbId>Ecoli1142257131369</PgdbId>
  <Level>1</Level>
  <Version>1</Version>
  <AnatomicalStructures>
    <FrameId>|Compartments|</FrameId>

    <Organism>Ecoli</Organism>
    <FrameType>class</FrameType>
    <Comment>
      <Value>"This class describes cellular compartments such as the cytoplasm. A given compartment can be a component of a membrane, e.g., the cytoplasm is a component of the cytoplasmic membrane in the sense that it is bounded by the cytoplasmic membrane."</Value>
    </Comment>
    <CreationDate>
      <Value>3243104644</Value>

    </CreationDate>
    <Creator>
      <Value>|pkarp|</Value>
    </Creator>
    <Instances>
      <Value>|Anatomical-Structures|</Value>
      <Parents>false</Parents>

    </Instances>
    <Schema>
      <Value>T</Value>
    </Schema>
  </AnatomicalStructures>
  <AnatomicalStructures>
    <FrameId>|Membranes|</FrameId>
    <Organism>Ecoli</Organism>

    <FrameType>class</FrameType>
    <Comment>
      <Value>"This class describes cellular membranes such as the cytoplasmic membrane. A membrane can be a Component-Of a compartment that contains it, for example, in bacteria, the cytoplasmic membrane would be a Component-Of the periplasm."</Value>
    </Comment>
    <CreationDate>
      <Value>3243104644</Value>
    </CreationDate>

    <Creator>
      <Value>|pkarp|</Value>
    </Creator>
    <Instances>
      <Value>|Anatomical-Structures|</Value>
      <Parents>false</Parents>
    </Instances>

    <Schema>
      <Value>T</Value>
    </Schema>
  </AnatomicalStructures>
  <Cco>
    <FrameId>CCO-CELLWALL</FrameId>
    <Organism>Ecoli</Organism>

    <FrameType>class</FrameType>
    <CommonName>
      <Value>"cell wall"</Value>
    </CommonName>
    <CreationDate>
      <Value>3330884039</Value>
    </CreationDate>

    <Creator>
      <Value>|paley|</Value>
    </Creator>
    <Definition>
      <Value>"The rigid or semi-rigid envelope lying outside the cell membrane of plant, fungal, and most prokaryotic cells, maintaining their shape and protecting them from osmotic lysis. In plants it is made of cellulose and, often, lignin; in fungi it is composed largely of polysaccharides; in bacteria it is composed of peptidoglycan."</Value>
    </Definition>
    <DefinitionReference>
      <Value>"Gene Ontology Consortium"</Value>

    </DefinitionReference>
    <Goid>
      <Value>"GO:0005618"</Value>
    </Goid>
    <Instances>
      <Value>CCO</Value>
      <Parents>true</Parents>

    </Instances>
    <Instances>
      <Value>CCO-SURFACE-MAT</Value>
      <Parents>false</Parents>
    </Instances>
    <Schema>
      <Value>T</Value>

    </Schema>
    <Sensu>
      <Value>|Organisms|</Value>
    </Sensu>
  </Cco>
[...]

Extract of the Ecoli metabolic graph in GraphML
You can download the file Ecoli_metabolicnetwork.xml
<?xml version"1.0" encoding"UTF-8" standalone"yes"?>
<graphml xmlns"http://graphml.graphdrawing.org/xmlns/1.0rc">
    <desc>MetabolismNetwork of Ecoli</desc>
    <graph parse.edges"5526" parse.nodes"2716" parse.order"free" edgedefault"directed" id"MetabolismNetwork of Ecoli">
        <node id"ACYL-ACP"/>
        <node id"1-ACYLGLYCEROL-3-P-ACYLTRANSFER-RXN"/>
        <edge id"ACYL-ACP_1-ACYLGLYCEROL-3-P-ACYLTRANSFER-RXN" source"ACYL-ACP" target"1-ACYLGLYCEROL-3-P-ACYLTRANSFER-RXN"/>
        <node id"ACYL-SN-GLYCEROL-3P"/>
        <edge id"ACYL-SN-GLYCEROL-3P_1-ACYLGLYCEROL-3-P-ACYLTRANSFER-RXN" source"ACYL-SN-GLYCEROL-3P" target"1-ACYLGLYCEROL-3-P-ACYLTRANSFER-RXN"/>
        <node id"ACP"/>
        <edge id"1-ACYLGLYCEROL-3-P-ACYLTRANSFER-RXN_ACP" source"1-ACYLGLYCEROL-3-P-ACYLTRANSFER-RXN" target"ACP"/>
        <node id"L-PHOSPHATIDATE"/>
        <edge id"1-ACYLGLYCEROL-3-P-ACYLTRANSFER-RXN_L-PHOSPHATIDATE" source"1-ACYLGLYCEROL-3-P-ACYLTRANSFER-RXN" target"L-PHOSPHATIDATE"/>
        <node id"GLUCONATE"/>
        <node id"1.1.1.215-RXN"/>
        <edge id"GLUCONATE_1.1.1.215-RXN" source"GLUCONATE" target"1.1.1.215-RXN"/>
[...]

Home | Architecture - Install - Tutorial | Java Doc - Sourceforge Project | About us | Supplementary Data

SourceForge.net Logo © 2004-2006 Cyclone. All trademarks are the properties of their respective owners.