You can subscribe to this list here.
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(6) |
Jul
(5) |
Aug
(8) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2013 |
Jan
|
Feb
|
Mar
(6) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
(1) |
Feb
|
Mar
(4) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(2) |
Oct
(1) |
Nov
(4) |
Dec
|
| 2015 |
Jan
|
Feb
|
Mar
(23) |
Apr
(11) |
May
(33) |
Jun
(13) |
Jul
(86) |
Aug
(46) |
Sep
(104) |
Oct
(9) |
Nov
(1) |
Dec
|
| 2016 |
Jan
(9) |
Feb
(19) |
Mar
(8) |
Apr
|
May
(4) |
Jun
(25) |
Jul
(24) |
Aug
(14) |
Sep
|
Oct
(2) |
Nov
|
Dec
|
| 2017 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
| 2018 |
Jan
(1) |
Feb
|
Mar
(6) |
Apr
(7) |
May
(8) |
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2020 |
Jan
|
Feb
|
Mar
(8) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2021 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(9) |
Oct
|
Nov
|
Dec
|
| 2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
|
From: <nik...@us...> - 2017-08-29 11:09:51
|
Revision: 707
http://sourceforge.net/p/sbfc/code/707
Author: niko-rodrigue
Date: 2017-08-29 11:09:47 +0000 (Tue, 29 Aug 2017)
Log Message:
-----------
Fixes to the SBGNModel class so that it deal only with SBGN and properly. Added a hack to the GUI so that it does read correctly SBGNML files.
Modified Paths:
--------------
trunk/build.xml
trunk/miriam.xml
trunk/src/org/sbfc/converter/ConverterGUI.java
trunk/src/org/sbfc/converter/models/SBGNModel.java
Added Paths:
-----------
trunk/lib/libsbml-5.15.0.jar
trunk/lib/sbfc-1.3.8-SNAPSHOT.jar
Removed Paths:
-------------
trunk/lib/libsbml-5.11.4.jar
trunk/lib/sbfc-1.3.7.jar
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2017-08-04 14:21:30 UTC (rev 706)
+++ trunk/build.xml 2017-08-29 11:09:47 UTC (rev 707)
@@ -12,7 +12,7 @@
</tstamp>
<property name="Name" value="System Biology Format Converter"/>
<property name="name" value="sbfc"/>
- <property name="version" value="1.3.7"/>
+ <property name="version" value="1.3.8-SNAPSHOT"/>
<property name="sbml2xpp.version" value="1.3"/>
<property name="sbml2octave.version" value="1.2"/>
Deleted: trunk/lib/libsbml-5.11.4.jar
===================================================================
(Binary files differ)
Added: trunk/lib/libsbml-5.15.0.jar
===================================================================
(Binary files differ)
Index: trunk/lib/libsbml-5.15.0.jar
===================================================================
--- trunk/lib/libsbml-5.15.0.jar 2017-08-04 14:21:30 UTC (rev 706)
+++ trunk/lib/libsbml-5.15.0.jar 2017-08-29 11:09:47 UTC (rev 707)
Property changes on: trunk/lib/libsbml-5.15.0.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/zip
\ No newline at end of property
Deleted: trunk/lib/sbfc-1.3.7.jar
===================================================================
(Binary files differ)
Added: trunk/lib/sbfc-1.3.8-SNAPSHOT.jar
===================================================================
(Binary files differ)
Index: trunk/lib/sbfc-1.3.8-SNAPSHOT.jar
===================================================================
--- trunk/lib/sbfc-1.3.8-SNAPSHOT.jar 2017-08-04 14:21:30 UTC (rev 706)
+++ trunk/lib/sbfc-1.3.8-SNAPSHOT.jar 2017-08-29 11:09:47 UTC (rev 707)
Property changes on: trunk/lib/sbfc-1.3.8-SNAPSHOT.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/zip
\ No newline at end of property
Modified: trunk/miriam.xml
===================================================================
--- trunk/miriam.xml 2017-08-04 14:21:30 UTC (rev 706)
+++ trunk/miriam.xml 2017-08-29 11:09:47 UTC (rev 707)
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Export of Identifiers.org's Registry (full) -->
-<!-- Generated: Tue Jun 07 14:47:16 BST 2016 -->
+<!-- Generated: Wed, 26 Jul 2017 14:17:31 GMT -->
<!-- http://identifiers.org/registry/ -->
-<miriam xmlns="http://www.biomodels.net/MIRIAM/" date="2016-06-07T14:47:16+01:00" data-version="2016-05-31T18:03:14+01:00">
+<miriam xmlns="http://www.biomodels.net/MIRIAM/" date="Wed, 26 Jul 2017 14:17:31 GMT" data-version="Fri, 21 Jul 2017 09:49:14 GMT">
<datatype id="MIR:00000001" pattern="^\d+$" restricted="true" obsolete="true" replacement="MIR:00000010">
<comment>BIND doesn't exist any more and its successor (BOND) is not open-access. Bulk downloads of BIND data (http://bond.unleashedinformatics.com/downloads/data/BIND/data/datasets/taxon/xml/) and a PSI-MI 2.5 translation (http://download.baderlab.org/BINDTranslation/) are available.</comment>
<name>BIND</name>
@@ -76,7 +76,7 @@
<dataEntry>http://www.ebi.ac.uk/chebi/searchId.do?chebiId=$id</dataEntry>
<dataInfo>ChEBI (Chemical Entities of Biological Interest)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100158" state="up" reliability="99">
<dataResource>http://www.ebi.ac.uk/ols/ontologies/chebi</dataResource>
@@ -86,7 +86,7 @@
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100565" state="up" reliability="92">
+ <resource id="MIR:00100565" state="up" reliability="93">
<dataResource>http://bioportal.bioontology.org/ontologies/CHEBI</dataResource>
<dataEntityExample>CHEBI:36927</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/CHEBI/$id</dataEntry>
@@ -129,9 +129,9 @@
<dataEntry>http://www.ensembl.org/id/$id</dataEntry>
<dataInfo>Ensembl at Sanger/EMBL-EBI</dataInfo>
<dataInstitution>Sanger Institute and European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100561" state="up" reliability="98">
+ <resource id="MIR:00100561" state="up" reliability="99">
<dataResource>http://uswest.ensembl.org/</dataResource>
<dataEntityExample>ENSG00000139618</dataEntityExample>
<dataEntry>http://uswest.ensembl.org/id/$id</dataEntry>
@@ -208,7 +208,7 @@
<dataEntry>http://www.ebi.ac.uk/intenz/query?cmd=SearchEC&ec=$id</dataEntry>
<dataInfo>IntEnZ (Integrated relational Enzyme database)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100002" state="up" reliability="99">
<dataResource>http://www.genome.jp/dbget-bin/www_bfind?enzyme</dataResource>
@@ -278,9 +278,9 @@
<uris>
<uri type="URN">urn:miriam:uniprot</uri>
<uri type="URL">http://identifiers.org/uniprot/</uri>
- <uri type="URN" deprecated="true">urn:lsid:uniprot.org</uri>
<uri type="URN" deprecated="true">urn:lsid:uniprot.org:uniprot</uri>
<uri type="URL" deprecated="true">http://www.uniprot.org/</uri>
+ <uri type="URN" deprecated="true">urn:lsid:uniprot.org</uri>
</uris>
<namespace>uniprot</namespace>
<documentations>
@@ -288,28 +288,20 @@
<documentation type="PMID">urn:miriam:pubmed:23161681</documentation>
</documentations>
<resources>
- <resource id="MIR:00100134" state="up" reliability="100">
+ <resource id="MIR:00100164" state="up" reliability="99" primary="true">
<dataResource>http://www.uniprot.org/</dataResource>
- <dataEntityExample>P62158</dataEntityExample>
- <dataEntry>http://www.uniprot.org/uniprot/$id</dataEntry>
- <dataInfo>Universal Protein Resource</dataInfo>
- <dataInstitution>UniProt Consortium</dataInstitution>
- <dataLocation>USA, UK and Switzerland</dataLocation>
- </resource>
- <resource id="MIR:00100164" state="up" reliability="99" primary="true">
- <dataResource>http://purl.uniprot.org/</dataResource>
- <dataEntityExample>P62158</dataEntityExample>
+ <dataEntityExample>P0DP23</dataEntityExample>
<dataEntry>http://purl.uniprot.org/uniprot/$id</dataEntry>
<dataInfo>Universal Protein Resource using Persistent URL system</dataInfo>
<dataInstitution>UniProt Consortium</dataInstitution>
<dataLocation></dataLocation>
</resource>
- <resource id="MIR:00100330" state="up" reliability="100">
+ <resource id="MIR:00100330" state="up" reliability="99">
<dataResource>http://www.ncbi.nlm.nih.gov/protein/</dataResource>
- <dataEntityExample>P62158</dataEntityExample>
+ <dataEntityExample>P0DP23</dataEntityExample>
<dataEntry>http://www.ncbi.nlm.nih.gov/protein/$id</dataEntry>
<dataInfo>UniProt through NCBI</dataInfo>
- <dataInstitution>National Center for Biotechnology Information, Bethesda, Maryland</dataInstitution>
+ <dataInstitution>National Center for Biotechnology Information (NCBI)</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100004" obsolete="true">
@@ -318,7 +310,7 @@
<dataEntry>http://www.ebi.uniprot.org/entry/$id</dataEntry>
<dataInfo>Universal Protein Resource</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100027" obsolete="true">
<dataResource>http://www.pir.uniprot.org/</dataResource>
@@ -336,6 +328,14 @@
<dataInstitution>Swiss Institute of Bioinformatics</dataInstitution>
<dataLocation>Switzerland</dataLocation>
</resource>
+ <resource id="MIR:00100134" obsolete="true">
+ <dataResource>http://www.uniprot.org/</dataResource>
+ <dataEntityExample>P0DP23</dataEntityExample>
+ <dataEntry>http://www.uniprot.org/uniprot/$id</dataEntry>
+ <dataInfo>Universal Protein Resource</dataInfo>
+ <dataInstitution>UniProt Consortium</dataInstitution>
+ <dataLocation>USA, UK and Switzerland</dataLocation>
+ </resource>
</resources>
<tags>
<tag>protein</tag>
@@ -368,10 +368,10 @@
<uri type="URN">urn:miriam:taxonomy</uri>
<uri type="URL">http://identifiers.org/taxonomy/</uri>
<uri type="URL" deprecated="true">http://bio2rdf.org/taxonomy</uri>
+ <uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/NCBITaxon</uri>
<uri type="URL" deprecated="true">http://www.uniprot.org/taxonomy/</uri>
- <uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/NCBITaxon</uri>
+ <uri type="URL" deprecated="true">http://www.taxonomy.org/</uri>
<uri type="URL" deprecated="true">http://www.ncbi.nlm.nih.gov/Taxonomy/</uri>
- <uri type="URL" deprecated="true">http://www.taxonomy.org/</uri>
</uris>
<namespace>taxonomy</namespace>
<documentations>
@@ -383,7 +383,7 @@
<dataEntityExample>9606</dataEntityExample>
<dataEntry>http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=$id</dataEntry>
<dataInfo>NCBI Taxonomy</dataInfo>
- <dataInstitution>National Center for Biotechnology Information</dataInstitution>
+ <dataInstitution>National Center for Biotechnology Information (NCBI)</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100019" state="up" reliability="100">
@@ -402,7 +402,7 @@
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100507" state="up" reliability="78">
+ <resource id="MIR:00100507" state="up" reliability="83">
<dataResource>http://bioportal.bioontology.org/ontologies/NCBITAXON</dataResource>
<dataEntityExample>9606</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/NCBITAXON/$id</dataEntry>
@@ -410,7 +410,7 @@
<dataInstitution>National Center for Biomedical Ontology, Stanford</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100695" state="up" reliability="93">
+ <resource id="MIR:00100695" state="up" reliability="95">
<dataResource>http://taxonomy.bio2rdf.org/fct/</dataResource>
<dataEntityExample>9606</dataEntityExample>
<dataEntry>http://taxonomy.bio2rdf.org/describe/?url=http://bio2rdf.org/taxonomy:$id</dataEntry>
@@ -418,6 +418,14 @@
<dataInstitution>Bio2RDF.org</dataInstitution>
<dataLocation></dataLocation>
</resource>
+ <resource id="MIR:00100770" state="up" reliability="98">
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/ncbitaxon/</dataResource>
+ <dataEntityExample>9606</dataEntityExample>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/ncbitaxon/terms?short_form=NCBITaxon_$id</dataEntry>
+ <dataInfo>NCBI Taxonomy through OLS</dataInfo>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
+ <dataLocation>UK</dataLocation>
+ </resource>
</resources>
<tags>
<tag>taxonomy</tag>
@@ -460,9 +468,9 @@
<dataEntry>http://www.ebi.ac.uk/biomodels-main/$id</dataEntry>
<dataInfo>BioModels Database</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100107" state="up" reliability="79">
+ <resource id="MIR:00100107" state="up" reliability="81">
<dataResource>http://biomodels.caltech.edu/</dataResource>
<dataEntityExample>BIOMD0000000048</dataEntityExample>
<dataEntry>http://biomodels.caltech.edu/$id</dataEntry>
@@ -470,7 +478,7 @@
<dataInstitution>California Institute of Technology</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100674" state="down" reliability="61">
+ <resource id="MIR:00100674" state="down" reliability="41">
<dataResource>http://cu.biomodels.bio2rdf.org/fct/</dataResource>
<dataEntityExample>BIOMD0000000048</dataEntityExample>
<dataEntry>http://cu.biomodels.bio2rdf.org/describe/?url=http://bio2rdf.org/biomodels:$id</dataEntry>
@@ -518,7 +526,7 @@
<dataEntry>http://www.ebi.ac.uk/miriam/main/$id</dataEntry>
<dataInfo>MIRIAM Resources (data collection)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
</resources>
<tags>
@@ -581,7 +589,7 @@
<dataEntry>http://www.ebi.ac.uk/intact/interaction/$id</dataEntry>
<dataInfo>IntAct at EBI</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
</resources>
<tags>
@@ -614,15 +622,15 @@
<documentation type="PMID">urn:miriam:pubmed:15608177</documentation>
</documentations>
<resources>
- <resource id="MIR:00100018" state="up" reliability="97" primary="true">
+ <resource id="MIR:00100018" state="up" reliability="98" primary="true">
<dataResource>http://www.ebi.ac.uk/interpro/</dataResource>
<dataEntityExample>IPR000100</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/interpro/entry/$id</dataEntry>
<dataInfo>InterPro</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100697" state="down" reliability="51">
+ <resource id="MIR:00100697" state="down" reliability="30">
<dataResource>http://interpro.bio2rdf.org/fct/</dataResource>
<dataEntityExample>IPR000100</dataEntityExample>
<dataEntry>http://interpro.bio2rdf.org/describe/?url=http://bio2rdf.org/interpro:$id</dataEntry>
@@ -661,7 +669,7 @@
<documentation type="PMID">urn:miriam:pubmed:22700311</documentation>
</documentations>
<resources>
- <resource id="MIR:00100020" state="up" reliability="99">
+ <resource id="MIR:00100020" state="up" reliability="99" primary="true">
<dataResource>http://www.genome.jp/kegg/pathway.html</dataResource>
<dataEntityExample>hsa00620</dataEntityExample>
<dataEntry>http://www.kegg.jp/entry/$id</dataEntry>
@@ -701,7 +709,7 @@
<documentation type="PMID">urn:miriam:pubmed:22700311</documentation>
</documentations>
<resources>
- <resource id="MIR:00100021" state="up" reliability="99">
+ <resource id="MIR:00100021" state="up" reliability="99" primary="true">
<dataResource>http://www.genome.jp/kegg/ligand.html</dataResource>
<dataEntityExample>C12345</dataEntityExample>
<dataEntry>http://www.kegg.jp/entry/$id</dataEntry>
@@ -741,7 +749,7 @@
<documentation type="PMID">urn:miriam:pubmed:22700311</documentation>
</documentations>
<resources>
- <resource id="MIR:00100022" state="up" reliability="99">
+ <resource id="MIR:00100022" state="up" reliability="99" primary="true">
<dataResource>http://www.genome.jp/kegg/reaction/</dataResource>
<dataEntityExample>R00100</dataEntityExample>
<dataEntry>http://www.kegg.jp/entry/$id</dataEntry>
@@ -785,7 +793,7 @@
<dataEntityExample>16333295</dataEntityExample>
<dataEntry>http://www.ncbi.nlm.nih.gov/pubmed/$id</dataEntry>
<dataInfo>NCBI PubMed</dataInfo>
- <dataInstitution>National Center for Biotechnology Information</dataInstitution>
+ <dataInstitution>National Center for Biotechnology Information (NCBI)</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100064" state="up" reliability="98">
@@ -804,7 +812,7 @@
<dataInstitution>Europe PubMed Central partners</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100702" state="down" reliability="28">
+ <resource id="MIR:00100702" state="down" reliability="17">
<dataResource>http://pubmed.bio2rdf.org/fct</dataResource>
<dataEntityExample>23735196</dataEntityExample>
<dataEntry>http://pubmed.bio2rdf.org/describe/?url=http://bio2rdf.org/pubmed:$id</dataEntry>
@@ -812,7 +820,7 @@
<dataInstitution>Bio2RDF.org</dataInstitution>
<dataLocation></dataLocation>
</resource>
- <resource id="MIR:00100745" state="up" reliability="100">
+ <resource id="MIR:00100745" state="down" reliability="90">
<dataResource>http://linkedlifedata.com/</dataResource>
<dataEntityExample>23735196</dataEntityExample>
<dataEntry>http://linkedlifedata.com/resource/pubmed/id/$id</dataEntry>
@@ -826,7 +834,7 @@
<dataEntry>http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-view+MedlineFull+[medline-PMID:$id]</dataEntry>
<dataInfo>PubMed through SRS@EBI</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100032" obsolete="true">
<dataResource>http://www.ebi.ac.uk/citexplore/</dataResource>
@@ -834,7 +842,7 @@
<dataEntry>http://www.ebi.ac.uk/citexplore/citationDetails.do?dataSource=MED&externalId=$id</dataEntry>
<dataInfo>CiteXplore</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100462" obsolete="true">
<dataResource>http://ukpmc.ac.uk/</dataResource>
@@ -884,10 +892,26 @@
<dataEntityExample>603903</dataEntityExample>
<dataEntry>http://omim.org/entry/$id</dataEntry>
<dataInfo>OMIM at John Hopkins</dataInfo>
- <dataInstitution>Johns Hopkins University</dataInstitution>
+ <dataInstitution>Johns Hopkins University, Baltimore, Maryland</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100480" state="up" reliability="100">
+ <resource id="MIR:00100694" state="up" reliability="95">
+ <dataResource>http://omim.bio2rdf.org/fct</dataResource>
+ <dataEntityExample>603903</dataEntityExample>
+ <dataEntry>http://omim.bio2rdf.org/describe/?url=http://bio2rdf.org/omim:$id</dataEntry>
+ <dataInfo>Bio2RDF</dataInfo>
+ <dataInstitution>Bio2RDF.org</dataInstitution>
+ <dataLocation></dataLocation>
+ </resource>
+ <resource id="MIR:00100777" state="up" reliability="100">
+ <dataResource>http://mirror.omim.org/</dataResource>
+ <dataEntityExample>603903</dataEntityExample>
+ <dataEntry>http://mirror.omim.org/entry/$id</dataEntry>
+ <dataInfo>OMIM mirror at John Hopkins</dataInfo>
+ <dataInstitution>Johns Hopkins University, Baltimore, Maryland</dataInstitution>
+ <dataLocation>USA</dataLocation>
+ </resource>
+ <resource id="MIR:00100480" obsolete="true">
<dataResource>http://us-east.omim.org/</dataResource>
<dataEntityExample>603903</dataEntityExample>
<dataEntry>http://us-east.omim.org/entry/$id</dataEntry>
@@ -895,7 +919,7 @@
<dataInstitution>OMIM, Virgina</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100481" state="up" reliability="99">
+ <resource id="MIR:00100481" obsolete="true">
<dataResource>http://europe.omim.org/</dataResource>
<dataEntityExample>603903</dataEntityExample>
<dataEntry>http://europe.omim.org/entry/$id</dataEntry>
@@ -903,14 +927,6 @@
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100694" state="up" reliability="94">
- <dataResource>http://omim.bio2rdf.org/fct</dataResource>
- <dataEntityExample>603903</dataEntityExample>
- <dataEntry>http://omim.bio2rdf.org/describe/?url=http://bio2rdf.org/omim:$id</dataEntry>
- <dataInfo>Bio2RDF</dataInfo>
- <dataInstitution>Bio2RDF.org</dataInstitution>
- <dataLocation></dataLocation>
- </resource>
</resources>
<tags>
<tag>disorder</tag>
@@ -945,7 +961,7 @@
</documentations>
<resources>
<resource id="MIR:00100025" state="up" reliability="99">
- <dataResource>http://pir.georgetown.edu/pirsf/</dataResource>
+ <dataResource>http://pir.georgetown.edu/</dataResource>
<dataEntityExample>PIRSF000100</dataEntityExample>
<dataEntry>http://pir.georgetown.edu/cgi-bin/ipcSF?id=$id</dataEntry>
<dataInfo>PIRSF</dataInfo>
@@ -967,7 +983,7 @@
</annotation>
</datatype>
- <datatype id="MIR:00000018" pattern="(^(REACTOME:)?R-[A-Z]{3}-[0-9]+(-[0-9]+)?$)|(^REACT_\d+$)">
+ <datatype id="MIR:00000018" pattern="(^R-[A-Z]{3}-\d+(-\d+)?(\.\d+)?$)|(^REACT_\d+(\.\d+)?$)">
<name>Reactome</name>
<synonyms>
<synonym>Reactome Stable ID</synonym>
@@ -983,13 +999,13 @@
<documentation type="PMID">urn:miriam:pubmed:24243840</documentation>
</documentations>
<resources>
- <resource id="MIR:00100026" state="probably up" reliability="96">
+ <resource id="MIR:00100026" state="probably up" reliability="97">
<dataResource>http://www.reactome.org/</dataResource>
<dataEntityExample>R-HSA-201451</dataEntityExample>
- <dataEntry>http://www.reactome.org/PathwayBrowser/#$id</dataEntry>
+ <dataEntry>http://reactome.org/content/detail/$id</dataEntry>
<dataInfo>Reactome, a curated knowledgebase of biological pathways</dataInfo>
<dataInstitution>Ontario Institute for Cancer Research, NYU Medical School, Cold Spring Harbor Laboratory and European Bioinformatics Institute</dataInstitution>
- <dataLocation>Canada / USA / United Kingdom</dataLocation>
+ <dataLocation>Canada / USA / UK</dataLocation>
</resource>
</resources>
<tags>
@@ -1026,7 +1042,7 @@
<resource id="MIR:00100010" state="up" reliability="99" primary="true">
<dataResource>http://www.doi.org/</dataResource>
<dataEntityExample>10.1038/nbt1156</dataEntityExample>
- <dataEntry>http://dx.doi.org/$id</dataEntry>
+ <dataEntry>http://doi.org/$id</dataEntry>
<dataInfo>Digital Object Identifier</dataInfo>
<dataInstitution>International DOI Foundation</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
@@ -1039,7 +1055,7 @@
<dataInstitution>Corporation for National Research Initiatives</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100751" state="up" reliability="100">
+ <resource id="MIR:00100751" state="up" reliability="93">
<dataResource>http://doai.io/</dataResource>
<dataEntityExample>10.1038/nbt1156</dataEntityExample>
<dataEntry>http://doai.io/$id</dataEntry>
@@ -1094,7 +1110,7 @@
<dataEntry>http://www.pdbe.org/$id</dataEntry>
<dataInfo>Protein Databank in Europe (PDBe)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100096" state="up" reliability="99">
<dataResource>http://www.proteopedia.org/</dataResource>
@@ -1104,10 +1120,10 @@
<dataInstitution>Weizmann Institute of Science</dataInstitution>
<dataLocation>Israel</dataLocation>
</resource>
- <resource id="MIR:00100165" state="up" reliability="99">
+ <resource id="MIR:00100165" state="down" reliability="98">
<dataResource>http://www.pdbj.org/</dataResource>
<dataEntityExample>2gc4</dataEntityExample>
- <dataEntry>http://service.pdbj.org/mine/summary/$id</dataEntry>
+ <dataEntry>http://pdbj.org/mine/summary/$id</dataEntry>
<dataInfo>Protein Data Bank Japan (PDBj)</dataInfo>
<dataInstitution>Institute for Protein Research, Osaka University</dataInstitution>
<dataLocation>Japan</dataLocation>
@@ -1155,7 +1171,7 @@
<dataEntry>http://www.ebi.ac.uk/clustr-srv/CCluster?interpro=yes&cluster_varid=$id</dataEntry>
<dataInfo>CluSTr Database</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
</resources>
<tags>
@@ -1198,9 +1214,9 @@
<dataEntry>http://www.ebi.ac.uk/QuickGO/GTerm?id=$id</dataEntry>
<dataInfo>QuickGO (Gene Ontology browser)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100013" state="up" reliability="99" primary="true">
+ <resource id="MIR:00100013" state="up" reliability="98" primary="true">
<dataResource>http://amigo.geneontology.org/</dataResource>
<dataEntityExample>GO:0006915</dataEntityExample>
<dataEntry>http://amigo.geneontology.org/amigo/term/$id</dataEntry>
@@ -1208,7 +1224,7 @@
<dataInstitution>The Gene Ontology Consortium</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100015" state="up" reliability="99">
+ <resource id="MIR:00100015" state="down" reliability="96">
<dataResource>http://www.informatics.jax.org/searches/GO_form.shtml</dataResource>
<dataEntityExample>GO:0006915</dataEntityExample>
<dataEntry>http://www.informatics.jax.org/searches/GO.cgi?id=$id</dataEntry>
@@ -1246,7 +1262,7 @@
<dataEntry>http://www.bioinf.ebc.ee/EP/EP/GO/?Q=$id</dataEntry>
<dataInfo>EP:GO, Browser and analysis for Gene Ontology</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100659" obsolete="true">
<dataResource>http://amigo2.berkeleybop.org/cgi-bin/amigo2/amigo/</dataResource>
@@ -1300,7 +1316,7 @@
<dataInstitution>Stanford University</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100703" state="up" reliability="93">
+ <resource id="MIR:00100703" state="up" reliability="95">
<dataResource>http://sgd.bio2rdf.org/fct</dataResource>
<dataEntityExample>S000006169</dataEntityExample>
<dataEntry>http://sgd.bio2rdf.org/describe/?url=http://bio2rdf.org/sgd:$id</dataEntry>
@@ -1337,13 +1353,14 @@
</synonyms>
<definition>The goal of the Systems Biology Ontology is to develop controlled vocabularies and ontologies tailored specifically for the kinds of problems being faced in Systems Biology, especially in the context of computational modeling. SBO is a project of the BioModels.net effort.</definition>
<uris>
- <uri type="URN">urn:miriam:biomodels.sbo</uri>
- <uri type="URL">http://identifiers.org/biomodels.sbo/</uri>
+ <uri type="URN">urn:miriam:sbo</uri>
+ <uri type="URL">http://identifiers.org/sbo/</uri>
+ <uri type="URN" deprecated="true">urn:miriam:biomodels.sbo</uri>
+ <uri type="URN" deprecated="true">urn:miriam:obo.sbo</uri>
<uri type="URL" deprecated="true">http://www.biomodels.net/SBO/</uri>
- <uri type="URN" deprecated="true">urn:miriam:obo.sbo</uri>
<uri type="URL" deprecated="true">http://biomodels.net/SBO/</uri>
</uris>
- <namespace>biomodels.sbo</namespace>
+ <namespace>sbo</namespace>
<documentations>
<documentation type="PMID">urn:miriam:pubmed:17118155</documentation>
</documentations>
@@ -1354,17 +1371,17 @@
<dataEntry>http://www.ebi.ac.uk/sbo/main/$id</dataEntry>
<dataInfo>SBO</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100176" state="up" reliability="99">
+ <resource id="MIR:00100176" state="up" reliability="98">
<dataResource>http://www.ebi.ac.uk/ols/ontologies/sbo</dataResource>
<dataEntityExample>SBO:0000262</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/ols/ontologies/sbo/terms?obo_id=$id</dataEntry>
<dataInfo>SBO through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100242" state="up" reliability="96">
+ <resource id="MIR:00100242" state="down" reliability="90">
<dataResource>http://bioportal.bioontology.org/ontologies/SBO</dataResource>
<dataEntityExample>SBO:0000262</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/SBO/$id</dataEntry>
@@ -1408,7 +1425,7 @@
<documentation type="PMID">urn:miriam:pubmed:16381885</documentation>
</documentations>
<resources>
- <resource id="MIR:00100035" state="up" reliability="99">
+ <resource id="MIR:00100035" state="up" reliability="99" primary="true">
<dataResource>http://www.genome.jp/kegg/drug/</dataResource>
<dataEntityExample>D00123</dataEntityExample>
<dataEntry>http://www.kegg.jp/entry/$id</dataEntry>
@@ -1446,7 +1463,7 @@
<documentation type="PMID">urn:miriam:pubmed:16014746</documentation>
</documentations>
<resources>
- <resource id="MIR:00100036" state="up" reliability="99">
+ <resource id="MIR:00100036" state="up" reliability="99" primary="true">
<dataResource>http://www.genome.jp/kegg/glycan/</dataResource>
<dataEntityExample>G00123</dataEntityExample>
<dataEntry>http://www.kegg.jp/entry/$id</dataEntry>
@@ -1499,7 +1516,7 @@
<dataInstitution>Cold Spring Harbor Laboratory</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100704" state="up" reliability="95">
+ <resource id="MIR:00100704" state="up" reliability="96">
<dataResource>http://wormbase.bio2rdf.org/fct</dataResource>
<dataEntityExample>WBGene00000001</dataEntityExample>
<dataEntry>http://wormbase.bio2rdf.org/describe/?url=http://bio2rdf.org/wormbase:$id</dataEntry>
@@ -1650,6 +1667,7 @@
<synonym>International Nucleotide Sequence Database Collaboration</synonym>
<synonym>INSDC</synonym>
<synonym>NCBI nucleotide</synonym>
+ <synonym>GenBank</synonym>
</synonyms>
<definition>The International Nucleotide Sequence Database Collaboration (INSDC) consists of a joint effort to collect and disseminate databases containing DNA and RNA sequences.</definition>
<uris>
@@ -1673,10 +1691,10 @@
<dataEntityExample>X58356</dataEntityExample>
<dataEntry>http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?val=$id</dataEntry>
<dataInfo>INSDC through GenBank</dataInfo>
- <dataInstitution>National Center for Biotechnology Information</dataInstitution>
+ <dataInstitution>National Center for Biotechnology Information (NCBI)</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100066" state="up" reliability="97">
+ <resource id="MIR:00100066" state="down" reliability="97">
<dataResource>http://www.ddbj.nig.ac.jp/</dataResource>
<dataEntityExample>X58356</dataEntityExample>
<dataEntry>http://getentry.ddbj.nig.ac.jp/getentry?database=ddbj&accession_number=$id</dataEntry>
@@ -1690,7 +1708,7 @@
<dataEntry>http://www.ebi.ac.uk/ena/data/view/$id</dataEntry>
<dataInfo>INSDC through European Nucleotide Archive (ENA)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100490" state="up" reliability="99">
<dataResource>http://www.ncbi.nlm.nih.gov/nuccore/</dataResource>
@@ -1697,7 +1715,7 @@
<dataEntityExample>X58356</dataEntityExample>
<dataEntry>http://www.ncbi.nlm.nih.gov/nuccore/$id</dataEntry>
<dataInfo>INSDC through Nucleotide database at NCBI</dataInfo>
- <dataInstitution>National Center for Biotechnology Information, Bethesda, Maryland</dataInstitution>
+ <dataInstitution>National Center for Biotechnology Information (NCBI)</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100048" obsolete="true">
@@ -1706,7 +1724,7 @@
<dataEntry>http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-page+EntryPage+-e+[EMBL:$id]+-view+EmblEntry</dataEntry>
<dataInfo>INSDC through SRS at EMBL-EBI</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
</resources>
<tags>
@@ -1771,7 +1789,7 @@
<documentation type="URL">http://www.sanger.ac.uk/Projects/C_elegans/WORMBASE/current/wormpep_format.shtml</documentation>
</documentations>
<resources>
- <resource id="MIR:00100051" state="up" reliability="97" primary="true">
+ <resource id="MIR:00100051" state="up" reliability="98" primary="true">
<dataResource>http://www.wormbase.org/db/seq/protein</dataResource>
<dataEntityExample>CE28239</dataEntityExample>
<dataEntry>http://www.wormbase.org/db/seq/protein?name=WP:$id</dataEntry>
@@ -1885,7 +1903,7 @@
<documentation type="PMID">urn:miriam:pubmed:17170002</documentation>
</documentations>
<resources>
- <resource id="MIR:00100058" state="up" reliability="96">
+ <resource id="MIR:00100058" state="up" reliability="97">
<dataResource>http://pubchem.ncbi.nlm.nih.gov/</dataResource>
<dataEntityExample>100101</dataEntityExample>
<dataEntry>http://pubchem.ncbi.nlm.nih.gov/summary/summary.cgi?sid=$id</dataEntry>
@@ -1999,7 +2017,7 @@
<dataEntry>http://www.ebi.ac.uk/arrayexpress/experiments/$id</dataEntry>
<dataInfo>ArrayExpress</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
</resources>
<tags>
@@ -2018,12 +2036,14 @@
</synonyms>
<definition>The Mouse Genome Database (MGD) project includes data on gene characterization, nomenclature, mapping, gene homologies among mammals, sequence links, phenotypes, allelic variants and mutants, and strain data.</definition>
<uris>
- <uri type="URN">urn:miriam:mgd</uri>
- <uri type="URL">http://identifiers.org/mgd/</uri>
+ <uri type="URN">urn:miriam:mgi</uri>
+ <uri type="URL">http://identifiers.org/mgi/</uri>
<uri type="URL" deprecated="true">http://bio2rdf.org/mgi:</uri>
+ <uri type="URL" deprecated="true">http://identifiers.org/mgd/</uri>
<uri type="URL" deprecated="true">http://mousegenome.org/</uri>
+ <uri type="URN" deprecated="true">urn:miriam:mgd</uri>
</uris>
- <namespace>mgd</namespace>
+ <namespace>mgi</namespace>
<documentations>
<documentation type="PMID">urn:miriam:pubmed:15608240</documentation>
<documentation type="URL">http://www.informatics.jax.org/mgihome/projects/overview.shtml#aboutMGD</documentation>
@@ -2111,7 +2131,7 @@
<documentation type="PMID">urn:miriam:pubmed:17130148</documentation>
</documentations>
<resources>
- <resource id="MIR:00100067" state="up" reliability="99">
+ <resource id="MIR:00100067" state="down" reliability="95">
<dataResource>http://www.ncbi.nlm.nih.gov/projects/RefSeq/</dataResource>
<dataEntityExample>NP_012345</dataEntityExample>
<dataEntry>http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?val=$id</dataEntry>
@@ -2135,7 +2155,7 @@
</annotation>
</datatype>
- <datatype id="MIR:00000040" pattern="^\d+\.[A-Z]\.\d+\.\d+\.\d+$">
+ <datatype id="MIR:00000040" pattern="^\d+\.[A-Z]\.\d+\.\d+(\.\d+)?$">
<name>Transport Classification Database</name>
<synonyms>
<synonym>TCDB</synonym>
@@ -2185,13 +2205,13 @@
<documentation type="PMID">urn:miriam:pubmed:14681372</documentation>
</documentations>
<resources>
- <resource id="MIR:00100069" state="down" reliability="92">
+ <resource id="MIR:00100069" state="down" reliability="80">
<dataResource>http://www.ebi.ac.uk/uniparc/</dataResource>
<dataEntityExample>UPI000000000A</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/cgi-bin/dbfetch?db=uniparc&id=$id</dataEntry>
<dataInfo>UniProt Archive (UniParc)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100476" state="up" reliability="100">
<dataResource>http://www.uniprot.org/uniparc/</dataResource>
@@ -2226,7 +2246,7 @@
<documentation type="PMID">urn:miriam:pubmed:17135203</documentation>
</documentations>
<resources>
- <resource id="MIR:00100070" state="up" reliability="95">
+ <resource id="MIR:00100070" state="down" reliability="83">
<dataResource>http://mint.bio.uniroma2.it/mint/</dataResource>
<dataEntityExample>MINT-10000</dataEntityExample>
<dataEntry>http://mint.bio.uniroma2.it/mint/search/inFrameInteraction.do?interactionAc=$id</dataEntry>
@@ -2234,7 +2254,7 @@
<dataInstitution>University of Rome Tor Vergata, Rome</dataInstitution>
<dataLocation>Italy</dataLocation>
</resource>
- <resource id="MIR:00100654" state="up" reliability="87">
+ <resource id="MIR:00100654" state="up" reliability="91">
<dataResource>http://www.ebi.ac.uk/intact/</dataResource>
<dataEntityExample>MINT-7905142</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/intact/query/interaction_id:$id</dataEntry>
@@ -2271,7 +2291,7 @@
<dataEntry>http://www.ebi.ac.uk/Tools/dbfetch/dbfetch?db=ipi&id=$id&format=default&style=html</dataEntry>
<dataInfo>IPI (International Protein Index)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
</resources>
<tags>
@@ -2387,7 +2407,7 @@
<dataEntry>http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-id+6JSUg1NA6u4+-e+[RESID:'$id']</dataEntry>
<dataInfo>RESID</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
</resources>
<tags>
@@ -2533,7 +2553,7 @@
<documentation type="PMID">urn:miriam:pubmed:12444417</documentation>
</documentations>
<resources>
- <resource id="MIR:00100078" state="up" reliability="83">
+ <resource id="MIR:00100078" state="up" reliability="84">
<dataResource>http://arabidopsis.org/index.jsp</dataResource>
<dataEntityExample>AT1G01030</dataEntityExample>
<dataEntry>http://arabidopsis.org/servlets/TairObject?type=locus&name=$id</dataEntry>
@@ -2717,15 +2737,15 @@
<documentation type="URL">http://www.geneontology.org/GO.evidence.shtml</documentation>
</documentations>
<resources>
- <resource id="MIR:00100083" state="up" reliability="98">
+ <resource id="MIR:00100083" state="down" reliability="89">
<dataResource>http://www.ebi.ac.uk/ols/ontologies/eco</dataResource>
<dataEntityExample>ECO:0000006</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/ols/ontologies/eco/terms?obo_id=$id</dataEntry>
<dataInfo>Evidence Codes via the Ontology Lookup Service (OLS)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100235" state="up" reliability="94">
+ <resource id="MIR:00100235" state="down" reliability="82">
<dataResource>http://bioportal.bioontology.org/ontologies/ECO</dataResource>
<dataEntityExample>ECO:0000006</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/ECO/$id</dataEntry>
@@ -2747,12 +2767,13 @@
</synonyms>
<definition>The Proteomics Standards Initiative modification ontology (PSI-MOD) aims to define a concensus nomenclature and ontology reconciling, in a hierarchical representation, the complementary descriptions of residue modifications.</definition>
<uris>
- <uri type="URN">urn:miriam:psimod</uri>
- <uri type="URL">http://identifiers.org/psimod/</uri>
+ <uri type="URN">urn:miriam:mod</uri>
+ <uri type="URL">http://identifiers.org/mod/</uri>
<uri type="URL" deprecated="true">http://identifiers.org/obo.psi-mod/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.psi-mod</uri>
+ <uri type="URN" deprecated="true">urn:miriam:psimod</uri>
</uris>
- <namespace>psimod</namespace>
+ <namespace>mod</namespace>
<documentations>
<documentation type="URL">http://psidev.sourceforge.net/mod/data/PSI-MOD.obo</documentation>
</documentations>
@@ -2763,9 +2784,9 @@
<dataEntry>http://www.ebi.ac.uk/ols/ontologies/mod/terms?obo_id=$id</dataEntry>
<dataInfo>Protein modifications ontology via the Ontology Lookup Service (OLS)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100239" state="up" reliability="97">
+ <resource id="MIR:00100239" state="up" reliability="98">
<dataResource>http://bioportal.bioontology.org/ontologies/PSIMOD</dataResource>
<dataEntityExample>MOD:00001</dataEntityExample>
<dataEntry>http://bioportal.bioontology.org/ontologies/1041?p=terms&conceptid=$id</dataEntry>
@@ -2836,7 +2857,7 @@
<documentation type="PMID">urn:miriam:pubmed:16381927</documentation>
</documentations>
<resources>
- <resource id="MIR:00100086" state="up" reliability="99">
+ <resource id="MIR:00100086" state="down" reliability="90">
<dataResource>http://thebiogrid.org/</dataResource>
<dataEntityExample>31623</dataEntityExample>
<dataEntry>http://thebiogrid.org/$id</dataEntry>
@@ -2871,7 +2892,7 @@
<documentation type="PMID">urn:miriam:pubmed:17991683</documentation>
</documentations>
<resources>
- <resource id="MIR:00100087" state="up" reliability="99">
+ <resource id="MIR:00100087" state="down" reliability="97">
<dataResource>http://merops.sanger.ac.uk/index.htm</dataResource>
<dataEntityExample>S01.001</dataEntityExample>
<dataEntry>http://merops.sanger.ac.uk/cgi-bin/pepsum?mid=$id</dataEntry>
@@ -2906,7 +2927,7 @@
<documentation type="PMID">urn:miriam:pubmed:12952881</documentation>
</documentations>
<resources>
- <resource id="MIR:00100088" state="up" reliability="96">
+ <resource id="MIR:00100088" state="probably up" reliability="96">
<dataResource>http://www.pantherdb.org/</dataResource>
<dataEntityExample>PTHR12345</dataEntityExample>
<dataEntry>http://www.pantherdb.org/panther/family.do?clsAccession=$id</dataEntry>
@@ -2934,10 +2955,11 @@
</synonyms>
<definition>PRINTS is a compendium of protein fingerprints. A fingerprint is a group of conserved motifs used to characterise a protein family; its diagnostic power is refined by iterative scanning of a SWISS-PROT/TrEMBL composite. Usually the motifs do not overlap, but are separated along a sequence, though they may be contiguous in 3D-space. Fingerprints can encode protein folds and functionalities more flexibly and powerfully than can single motifs, full diagnostic potency deriving from the mutual context provided by motif neighbours.</definition>
<uris>
- <uri type="URN">urn:miriam:sprint</uri>
- <uri type="URL">http://identifiers.org/sprint/</uri>
+ <uri type="URN">urn:miriam:prints</uri>
+ <uri type="URL">http://identifiers.org/prints/</uri>
+ <uri type="URN" deprecated="true">urn:miriam:sprint</uri>
</uris>
- <namespace>sprint</namespace>
+ <namespace>prints</namespace>
<documentations>
<documentation type="PMID">urn:miriam:pubmed:10592232</documentation>
</documentations>
@@ -2979,7 +3001,7 @@
<documentation type="PMID">urn:miriam:pubmed:15059838</documentation>
</documentations>
<resources>
- <resource id="MIR:00100090" state="up" reliability="98">
+ <resource id="MIR:00100090" state="up" reliability="97">
<dataResource>http://ligand-depot.rutgers.edu/index.html</dataResource>
<dataEntityExample>ABC</dataEntityExample>
<dataEntry>http://ligand-depot.rutgers.edu/pyapps/ldHandler.py?formid=cc-index-search&target=$id&operation=ccid</dataEntry>
@@ -2987,7 +3009,7 @@
<dataInstitution>Rutgers, The State University of New Jersey</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100615" state="up" reliability="99">
+ <resource id="MIR:00100615" state="up" reliability="98">
<dataResource>http://ligand-expo.rcsb.org/</dataResource>
<dataEntityExample>ABC</dataEntityExample>
<dataEntry>http://ligand-expo.rcsb.org/pyapps/ldHandler.py?formid=cc-index-search&target=$id&operation=ccid</dataEntry>
@@ -3054,7 +3076,7 @@
<documentation type="URL">http://www.worldcat.org/whatis/default.jsp</documentation>
</documentations>
<resources>
- <resource id="MIR:00100092" state="up" reliability="94">
+ <resource id="MIR:00100092" state="up" reliability="95">
<dataResource>http://isbndb.com/</dataResource>
<dataEntityExample>9781584885658</dataEntityExample>
<dataEntry>http://isbndb.com/search-all.html?kw=$id</dataEntry>
@@ -3062,7 +3084,7 @@
<dataInstitution>ISNBdb project, San Gabriel, California</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100093" state="up" reliability="99">
+ <resource id="MIR:00100093" state="down" reliability="94">
<dataResource>http://www.worldcat.org/</dataResource>
<dataEntityExample>9781584885658</dataEntityExample>
<dataEntry>http://www.worldcat.org/isbn/$id</dataEntry>
@@ -3107,7 +3129,7 @@
<dataEntry>http://www.ebi.ac.uk/pride/archive/assays/$id</dataEntry>
<dataInfo>PRIDE at EBI</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
</resources>
<tags>
@@ -3182,9 +3204,9 @@
<dataEntry>http://www.ebi.ac.uk/ols/ontologies/fma/terms?obo_id=$id</dataEntry>
<dataInfo>Foundational Model of Anatomy via Ontology Lookup Service (OLS)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100236" state="up" reliability="94">
+ <resource id="MIR:00100236" state="up" reliability="95">
<dataResource>http://bioportal.bioontology.org/ontologies/FMA</dataResource>
<dataEntityExample>FMA:67112</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/FMA_subset/$id</dataEntry>
@@ -3219,10 +3241,10 @@
<documentation type="PMID">urn:miriam:pubmed:19147664</documentation>
</documentations>
<resources>
- <resource id="MIR:00100098" state="up" reliability="96">
- <dataResource>http://matrixdb.ibcp.fr/</dataResource>
+ <resource id="MIR:00100098" state="up" reliability="93" primary="true">
+ <dataResource>http://matrixdb.univ-lyon1.fr/</dataResource>
<dataEntityExample>P00747__P07355</dataEntityExample>
- <dataEntry>http://matrixdb.ibcp.fr/cgi-bin/current/newPort?type=association&value=$id&class=Association</dataEntry>
+ <dataEntry>http://matrixdb.univ-lyon1.fr//cgi-bin/current/newPort?type=association&value=$id&class=Association</dataEntry>
<dataInfo>MatrixDB Association</dataInfo>
<dataInstitution>Institut de Biologie et Chimie des Protéines, Lyon University</dataInstitution>
<dataLocation>France</dataLocation>
@@ -3261,15 +3283,15 @@
<documentation type="PMID">urn:miriam:pubmed:15608257</documentation>
</documentations>
<resources>
- <resource id="MIR:00100099" state="up" reliability="100" primary="true">
+ <resource id="MIR:00100099" state="up" reliability="99" primary="true">
<dataResource>http://www.ncbi.nlm.nih.gov/gene</dataResource>
<dataEntityExample>100010</dataEntityExample>
<dataEntry>http://www.ncbi.nlm.nih.gov/gene/$id</dataEntry>
<dataInfo>Entrez Gene (NCBI)</dataInfo>
- <dataInstitution>National Center for Biotechnology Information</dataInstitution>
+ <dataInstitution>National Center for Biotechnology Information (NCBI)</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100693" state="up" reliability="93">
+ <resource id="MIR:00100693" state="up" reliability="95">
<dataResource>http://ncbigene.bio2rdf.org/fct</dataResource>
<dataEntityExample>100010</dataEntityExample>
<dataEntry>http://ncbigene.bio2rdf.org/describe/?url=http://bio2rdf.org/ncbigene:$id</dataEntry>
@@ -3308,7 +3330,7 @@
<documentation type="PMID">urn:miriam:pubmed:16381885</documentation>
</documentations>
<resources>
- <resource id="MIR:00100100" state="up" reliability="99">
+ <resource id="MIR:00100100" state="up" reliability="99" primary="true">
<dataResource>http://www.genome.jp/kegg/genes.html</dataResource>
<dataEntityExample>syn:ssr3451</dataEntityExample>
<dataEntry>http://www.kegg.jp/entry/$id</dataEntry>
@@ -3484,7 +3506,7 @@
<documentation type="URL">http://www.mmmp.org/MMMP/import.mmmp?page=aims_org.mmmp</documentation>
</documentations>
<resources>
- <resource id="MIR:00100105" state="up" reliability="96">
+ <resource id="MIR:00100105" state="up" reliability="94">
<dataResource>http://www.mmmp.org/MMMP/public/biomap/listBiomap.mmmp</dataResource>
<dataEntityExample>37</dataEntityExample>
<dataEntry>http://www.mmmp.org/MMMP/public/biomap/viewBiomap.mmmp?id=$id</dataEntry>
@@ -3559,7 +3581,7 @@
<dataEntry>http://www.ebi.ac.uk/thornton-srv/databases/cgi-bin/MACiE/entry/getPage.pl?id=$id</dataEntry>
<dataInfo>MACiE database of mechanisms, annotation and classification in enzymes</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
</resources>
<tags>
@@ -3631,7 +3653,7 @@
<documentation type="PMID">urn:miriam:pubmed:17991680</documentation>
</documentations>
<resources>
- <resource id="MIR:00100110" state="up" reliability="96">
+ <resource id="MIR:00100110" state="up" reliability="97">
<dataResource>http://zfin.org</dataResource>
<dataEntityExample>ZDB-GENE-041118-11</dataEntityExample>
<dataEntry>http://zfin.org/$id</dataEntry>
@@ -3678,7 +3700,7 @@
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100698" state="up" reliability="94">
+ <resource id="MIR:00100698" state="up" reliability="95">
<dataResource>http://hgnc.bio2rdf.org/fct</dataResource>
<dataEntityExample>hgnc:2674</dataEntityExample>
<dataEntry>http://hgnc.bio2rdf.org/describe/?url=http://bio2rdf.org/$id</dataEntry>
@@ -3726,7 +3748,7 @@
<dataInstitution>Department of Molecular and Cellular Biology, University of California, Berkeley</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100241" state="up" reliability="92">
+ <resource id="MIR:00100241" state="up" reliability="93">
<dataResource>http://bioportal.bioontology.org/ontologies/SO</dataResource>
<dataEntityExample>SO:0000704</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/SO/$id</dataEntry>
@@ -3802,7 +3824,7 @@
<documentation type="URL">http://precedings.nature.com/documents/3214/version/1</documentation>
</documentations>
<resources>
- <resource id="MIR:00100114" state="down" reliability="95">
+ <resource id="MIR:00100114" state="down" reliability="81">
<dataResource>http://www.grenoble.prabi.fr/obiwarehouse/unipathway</dataResource>
<dataEntityExample>UPA00206</dataEntityExample>
<dataEntry>http://www.grenoble.prabi.fr/obiwarehouse/unipathway/upa?upid=$id</dataEntry>
@@ -3838,13 +3860,13 @@
<documentation type="URL">https://github.com/egonw/chembl.rdf</documentation>
</documentations>
<resources>
- <resource id="MIR:00100115" state="up" reliability="98" primary="true">
+ <resource id="MIR:00100115" state="up" reliability="99" primary="true">
<dataResource>https://www.ebi.ac.uk/chembldb/</dataResource>
<dataEntityExample>CHEMBL308052</dataEntityExample>
<dataEntry>https://www.ebi.ac.uk/chembl/compound/inspect/$id</dataEntry>
<dataInfo>ChEMBL compound database at EBI</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100484" state="up" reliability="99">
<dataResource>https://github.com/egonw/chembl.rdf</dataResource>
@@ -3854,7 +3876,7 @@
<dataInstitution>Maastricht University</dataInstitution>
<dataLocation>The Netherlands</dataLocation>
</resource>
- <resource id="MIR:00100744" state="probably up" reliability="91">
+ <resource id="MIR:00100744" state="probably up" reliability="97">
<dataResource>https://www.ebi.ac.uk/rdf/services/chembl/</dataResource>
<dataEntityExample>CHEMBL308052</dataEntityExample>
<dataEntry>http://rdf.ebi.ac.uk/resource/chembl/molecule/$id</dataEntry>
@@ -3896,7 +3918,7 @@
<dataEntry>https://www.ebi.ac.uk/chembl/target/inspect/$id</dataEntry>
<dataInfo>ChEMBL targets database at EBI</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
- <dataLocation>United Kingdom</dataLocation>
+ <dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100485" state="up" reliability="99">
<dataResource>https://github.com/egonw/chembl.rdf</dataResource>
@@ -3906,7 +3928,7 @@
<dataInstitution>Maastricht University</dataInstitution>
<dataLocation>The Netherlands</dataLocation>
</resource>
- <resource id="MIR:00100743" state="probably up" reliability="91">
+ <resource id="MIR:00100743" state="probably up" reliability="97">
<dataResource>http://rdf.ebi.ac.uk/resource/chembl/</dataResource>
<dataEntityExample>CHEMBL3467</dataEntityExample>
<dataEntry>http://rdf.ebi.ac.uk/resource/chembl/target/$id</dataEntry>
@@ -4021,7 +4043,7 @@
<documentation type="URL">http://www.whocc.no/atc_ddd_publications/guidelines/</documentation>
</documentations>
<resources>
- <resource id="MIR:00100119" state="up" reliability="99">
+ <resource id="MIR:00100119" state="down" reliability="91">
<dataResource>http://www.whocc.no/atc_ddd_index/</dataResource>
<dataEntityExample>A10BA02</dataEntityExample>
<dataEntry>http://www.whocc.no/atc_ddd_index/?code=$id</dataEntry>
@@ -4057,7 +4079,7 @@
<documentation type="PMID">urn:miriam:pubmed:22103613</documentation>
</documentations>
<resources>
- <resource id="MIR:00100120" state="up" reliability="83">
+ <resource id="MIR:00100120" state="up" reliability="86">
<dataResource>http://www.pharmgkb.org/</dataResource>
<dataEntityExample>PA146123006</dataEntityExample>
<dataEntry>http://www.pharmgkb.org/pathway/$id</dataEntry>
@@ -4091,7 +4113,7 @@
<documentation type="PMID">urn:miriam:pubmed:22103613</documentation>
</documentations>
<resources>
- <resource id="MIR:00100121" state="up" reliability="83">
+ <resource id="MIR:00100121" state="up" reliability="86">
<dataResource>http://www.pharmgkb.org/</dataResource>
<dataEntityExample>PA447218</dataEntityExample>
<dataEntry>http://www.pharmgkb.org/disease/$id</dataEntry>
@@ -4131,7 +4153,7 @@
<documentation type="PMID">urn:miriam:pubmed:22103613</documentation>
</documentations>
<resources>
- <resource id="MIR:00100122" state="up" reliability="83">
+ <resource id="MIR:00100122" state="up" reliability="85">
<dataResource>http://www.pharmgkb.org/</dataResource>
<dataEntityExample>PA448710</dataEntityExample>
<dataEntry>http://www.pharmgkb.org/drug/$id</dataEntry>
@@ -4168,7 +4190,7 @@
<documentation type="PMID">urn:miriam:pubmed:24265219</documentation>
</documentations>
<resources>
- <resource id="MIR:00100123" state="up" reliability="87">
+ <resource id="MIR:00100123" state="up" reliability="88">
<dataResource>http://bidd.nus.edu.sg/group/ttd/ttd.asp</dataResource>
<dataEntityExample>DAP000773</dataEntityExample>
<dataEntry>http://bidd.nus.edu.sg/group/TTD/ZFTTDDRUG.asp?ID=$id</dataEntry>
@@ -4203,7 +4225,7 @@
<documentation type="PMID">urn:miriam:pubmed:24265219</documentation>
</documentations>
<resources>
- <resource id="MIR:00100124" state="up" reliability="87">
+ <resource id="MIR:00100124" state="up" reliability="89">
<dataResource>http://bidd.nus.edu.sg/group/ttd/ttd.asp</dataResource>
<dataEntityExample>TTDS00056</dataEntityExample>
<dataEntry>http://bidd.nus.edu.sg/group/TTD/ZFTTDDetail.asp?ID=$id</dataEntry>
@@ -4237,7 +4259,7 @@
<documentation type="URL">http://senselab.med.yale.edu/NeuronDB/default.asp</documentation>
</documentations>
<resources>
- <resource id="MIR:00100125" state="up" reliability="94">
+ <resource id="MIR:00100125" state="down" reliability="92">
<dataResource>http://senselab.med.yale.edu/NeuronDB/</dataResource>
<dataEntityExample>265</dataEntityExample>
<dataEntry>http://senselab.med.yale.edu/NeuronDB/NeuronProp.aspx?id=$id</dataEntry>
@@ -4306,7 +4328,7 @@
<documentation type="URL">http://www.nlm.nih.gov/pubs/factsheets/chemidplusfs.html</documentation>
</documentations>
<resources>
- <resource id="MIR:00100127" state="probably up" reliability="98">
+ <resource id="MIR:00100127" state="probably up" reliability="99">
<dataResource>http://chem.sis.nlm.nih.gov/chemidplus/chemidheavy.jsp</dataResource>
<dataEntityExample>000057272</dataEntityExample>
<dataEntry>http://chem.sis.nlm.nih.gov/chemidplus/direct.jsp?regno=$id</dataEntry>
@@ -4341,7 +4363,7 @@
<documentation type="PMID">urn:miriam:pubmed:19854944</documentation>
</documentations>
<resources>
- <resource id="MIR:00100128" state="up" reliability="100">
+ <resource id="MIR:00100128" state="up" reliability="99">
<dataResource>http://www.ncbi.nlm.nih.gov/biosystems/</dataResource>
<dataEntityExample>001</dataEntityExample>
<dataEntry>http://www.ncbi.nlm.nih.gov/biosystems/$id</dataEntry>
@@ -4516,7 +4538,7 @@
<dataInstitution>Departments of Computing Science & Biological Sciences, University of Alberta</dataInstitution>
<dataLocation>Canada</dataLocation>
</resource>
- <resource id="MIR:00100691" state="up" reliability="95">
+ <resource id="MIR:00100691" state="up" reliability="96">
<dataResource>http://drugba...
[truncated message content] |
|
From: <nik...@us...> - 2017-08-04 14:21:32
|
Revision: 706
http://sourceforge.net/p/sbfc/code/706
Author: niko-rodrigue
Date: 2017-08-04 14:21:30 +0000 (Fri, 04 Aug 2017)
Log Message:
-----------
Stopping the SBML2SBML conversion if libsbml was not successfull
Modified Paths:
--------------
trunk/src/org/sbfc/converter/sbml2sbml/SBML2SBML.java
Modified: trunk/src/org/sbfc/converter/sbml2sbml/SBML2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2sbml/SBML2SBML.java 2017-02-23 12:53:41 UTC (rev 705)
+++ trunk/src/org/sbfc/converter/sbml2sbml/SBML2SBML.java 2017-08-04 14:21:30 UTC (rev 706)
@@ -34,6 +34,7 @@
import org.sbml.jsbml.SBMLDocument;
import org.sbml.libsbml.SBMLReader;
import org.sbml.libsbml.SBMLWriter;
+import org.sbml.libsbml.libsbmlConstants;
/**
@@ -150,6 +151,7 @@
if (!isSetLVSuccesfull) {
System.out.println("SBML2SBML - Conversion was not possible, here are the errors returned by libSBML:");
libSBMLdoc.printErrors();
+ throw new ConversionException("The LibSBML conversion failed, it detected '" + libSBMLdoc.getNumErrors(libsbmlConstants.LIBSBML_SEV_ERROR) + "' potential problems.");
}
org.sbml.libsbml.SBMLWriter libSBMLWriter = new SBMLWriter();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2017-01-03 07:48:51
|
Revision: 704
http://sourceforge.net/p/sbfc/code/704
Author: tramy-nguyen
Date: 2017-01-03 07:48:49 +0000 (Tue, 03 Jan 2017)
Log Message:
-----------
implemented custom annotation for biopax comments property
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-genetic-interaction.xml
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2017-01-03 06:43:06 UTC (rev 703)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2017-01-03 07:48:49 UTC (rev 704)
@@ -659,7 +659,7 @@
}
if(pathway.getAnnotations() != null && !pathway.getAnnotations().isEmpty()){
- //Hold the custom annotation for xref comment property
+
List<XMLNode> annotatedList = new ArrayList<XMLNode>();
parseAnnotations(pathway, "pathway", annotatedList);
@@ -674,7 +674,7 @@
}
}
if(pathway.getAvailability() != null && !pathway.getAvailability().isEmpty()){
- //Hold the custom annotation for xref comment property
+
List<XMLNode> annotatedList = new ArrayList<XMLNode>();
parseAvailability(pathway, "pathway", annotatedList);
@@ -688,6 +688,22 @@
}
}
}
+ if(pathway.getComment() != null && !pathway.getComment().isEmpty()){
+
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+
+ parseComment(pathway, "pathway", annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(sbmlModel);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
+
}
else
@@ -718,6 +734,7 @@
* Creates SBML custom annotation for BioPAX Annotations property
*
* @param entity - The BioPAX element of the annotation property.
+ * @param entityType - The entity type to set SBML custom annotation property field.
* @param annotatedList - An empty list of XMLNode to store the SBML annotations in.
* @return
*/
@@ -726,16 +743,16 @@
//TODO: Find annotations example for this method.
if(entity.getAnnotations() != null && entity.getAnnotations().size() > 0)
{
- XMLNode xrefNode = createAnnotatedObject(entityType, entity.getRDFId());
+ XMLNode annotNode = createAnnotatedObject(entityType, entity.getRDFId());
XMLNode commentNode = createAnnotatedProperty("annotations");
- xrefNode.addChild(commentNode);
+ annotNode.addChild(commentNode);
for(Object annotObj : entity.getAnnotations().values())
{
//TODO: Note, this will ignore all annotation key.
String annotValue = annotObj.toString();
commentNode.addChild(createAnnotatedValue(annotValue));
- annotatedList.add(xrefNode);
+ annotatedList.add(annotNode);
}
}
@@ -743,24 +760,61 @@
}
+ /**
+ * Creates SBML custom annotation for BioPAX Availability property
+ *
+ * @param entity- The BioPAX element of the annotation property.
+ * @param entityType - The entity type to set SBML custom annotation property field.
+ * @param annotatedList - An empty list of XMLNode to store the SBML annotations in.
+ * @return
+ */
private List<XMLNode> parseAvailability(Entity entity, String entityType, List<XMLNode> annotatedList)
{
//TODO: Find example for this method.
if(entity.getAvailability() != null && entity.getAvailability().size() > 0)
{
- XMLNode xrefNode = createAnnotatedObject(entityType, entity.getRDFId());
+ XMLNode availNode = createAnnotatedObject(entityType, entity.getRDFId());
XMLNode commentNode = createAnnotatedProperty("availability");
- xrefNode.addChild(commentNode);
+ availNode.addChild(commentNode);
for(String availability : entity.getAvailability())
{
commentNode.addChild(createAnnotatedValue(availability));
}
- annotatedList.add(xrefNode);
+ annotatedList.add(availNode);
}
return annotatedList;
}
+
+ /**
+ * Creates SBML custom annotation for BioPAX Availability property
+ *
+ * @param entity- The BioPAX element of the annotation property.
+ * @param entityType - The entity type to set SBML custom annotation property field.
+ * @param annotatedList - An empty list of XMLNode to store the SBML annotations in.
+ * @return
+ */
+ private List<XMLNode> parseComment(Entity entity, String entityType, List<XMLNode> annotatedList)
+ {
+ //TODO: Find example for this method.
+ if(entity.getComment() != null && entity.getComment().size() > 0)
+ {
+ XMLNode commentAnnotNode = createAnnotatedObject(entityType, entity.getRDFId());
+ XMLNode commentNode = createAnnotatedProperty("comment");
+ commentAnnotNode.addChild(commentNode);
+ for(String comment : entity.getComment())
+ {
+ commentNode.addChild(createAnnotatedValue(comment));
+ }
+ annotatedList.add(commentAnnotNode);
+ }
+
+ return annotatedList;
+
+ }
+
+
/**
* Convert a list of pathway components to its corresponding SBML Elements.
@@ -1175,7 +1229,7 @@
}
if(evidence.getEvidenceCode() != null)
{
- evidenceCode_unifXrefId = parseEvidenceCode(evidence.getEvidenceCode(), evidenceCode_cvterms);
+ evidenceCode_unifXrefId = parseEvidenceCode(evidence.getEvidenceCode(), evidenceCode_cvterms, sbmlElement);
}
if(evidence.getConfidence() != null)
{
@@ -1205,20 +1259,44 @@
*
* @param evidenceCodeList - The list of EvidenceCode to convert into CVTerms
* @param evidenceCode_cvterms - A list of CVTerm to store the EvidenceCode xref that were converted to CVTerms
+ * @param sbmlElement - the SBML element that stores the converted information of evidenceCode
* @return The last UnificationXref parsed from the EvidenceCode Xref property
*/
- private String parseEvidenceCode(Set<EvidenceCodeVocabulary> evidenceCodeList, List<CVTerm> evidenceCode_cvterms)
+ private String parseEvidenceCode(Set<EvidenceCodeVocabulary> evidenceCodeList, List<CVTerm> evidenceCode_cvterms, SBase sbmlElement)
{
String unifXref_id = null;
- List<CVTerm> cvtermList = new ArrayList<CVTerm>();
+// List<CVTerm> cvtermList = new ArrayList<CVTerm>();
List<XMLNode> annotationList = new ArrayList<XMLNode>();
for(EvidenceCodeVocabulary evidenceCode : evidenceCodeList)
{
if(evidenceCode.getXref() != null)
{
- unifXref_id = parseXref(evidenceCode.getXref(), cvtermList, annotationList);
+ unifXref_id = parseXref(evidenceCode.getXref(), evidenceCode_cvterms, annotationList);
+ if(annotationList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(sbmlElement);
+ for(XMLNode node: annotationList)
+ {
+ customNode.addChild(node);
+ }
+ }
}
+ if(evidenceCode.getComment() != null)
+ {
+ annotationList = new ArrayList<XMLNode>();
+ if(evidenceCode.getComment() != null && evidenceCode.getComment().size() > 0)
+ {
+ XMLNode commentAnnotNode = createAnnotatedObject("EvidenceCode", evidenceCode.getRDFId());
+ XMLNode commentNode = createAnnotatedProperty("comment");
+ commentAnnotNode.addChild(commentNode);
+ for(String comment : evidenceCode.getComment())
+ {
+ commentNode.addChild(createAnnotatedValue(comment));
+ }
+ annotationList.add(commentAnnotNode);
+ }
+ }
//TODO: parse the other properties for evidenceCode as custom Annotation
}
@@ -1395,7 +1473,7 @@
}
}
if(entity.getAvailability() != null && !entity.getAvailability().isEmpty()){
- //Hold the custom annotation for xref comment property
+
List<XMLNode> annotatedList = new ArrayList<XMLNode>();
parseAvailability(entity, "PhysicalEntity", annotatedList);
@@ -1409,6 +1487,21 @@
}
}
}
+ if(entity.getComment() != null && !entity.getComment().isEmpty()){
+
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+
+ parseComment(entity, "PhysicalEntity", annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(sbmlSpecies);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
sbmlId2biopaxId.put(sbmlSpecies.getId(), entity.getRDFId());
@@ -2134,6 +2227,21 @@
}
}
}
+ if(control.getComment() != null && !control.getComment().isEmpty()){
+
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+
+ parseComment(control, "ControlInteraction", annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(modifierSpecies);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
}
}
@@ -2511,7 +2619,22 @@
}
}
}
+ if(entity.getComment() != null && !entity.getComment().isEmpty()){
+
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+ parseComment(entity, "Interaction", annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(reaction);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
+
return reaction;
}
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-genetic-interaction.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-genetic-interaction.xml 2017-01-03 06:43:06 UTC (rev 703)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-genetic-interaction.xml 2017-01-03 07:48:49 UTC (rev 704)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' standalone='no'?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
- <model id="defaultSBMLModelId" metaid="_21e37e5d-a01c-4a23-b6fa-b860ca761803">
+ <model id="defaultSBMLModelId" metaid="f4ce5119-6178-4bb9-8346-b5f6cd0fe37c">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -8,7 +8,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#_21e37e5d-a01c-4a23-b6fa-b860ca761803">
+ <rdf:Description rdf:about="#f4ce5119-6178-4bb9-8346-b5f6cd0fe37c">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
@@ -25,8 +25,8 @@
<compartment constant="true" id="defaultCompartment" sboTerm="SBO:0000290" />
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="defaultCompartment" constant="false" hasOnlySubstanceUnits="true" id="Gene_1" initialAmount="1" metaid="efb8f0e5-a607-44ed-8640-2f33b7d48002"
- name="MLC1" sboTerm="SBO:0000243">
+ <species boundaryCondition="false" compartment="defaultCompartment" constant="false" hasOnlySubstanceUnits="true" id="Gene_1" metaid="d4d5d903-40fb-4c36-8c99-c45c08a0f279" name="MLC1"
+ sboTerm="SBO:0000243">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="http://identifiers.org/ncbigene/852772">
@@ -34,7 +34,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#efb8f0e5-a607-44ed-8640-2f33b7d48002">
+ <rdf:Description rdf:about="#d4d5d903-40fb-4c36-8c99-c45c08a0f279">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/ncbigene/852772" />
@@ -44,8 +44,8 @@
</rdf:RDF>
</annotation>
</species>
- <species boundaryCondition="false" compartment="defaultCompartment" constant="false" hasOnlySubstanceUnits="true" id="Gene_3" initialAmount="1" metaid="_08635c64-49cd-4794-93d0-33eb6fc1d1e0"
- name="MYO2" sboTerm="SBO:0000243">
+ <species boundaryCondition="false" compartment="defaultCompartment" constant="false" hasOnlySubstanceUnits="true" id="Gene_3" metaid="_9a277d04-80df-41fc-bd44-e64e18d2caee" name="MYO2"
+ sboTerm="SBO:0000243">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="http://identifiers.org/ncbigene/854504">
@@ -53,7 +53,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_08635c64-49cd-4794-93d0-33eb6fc1d1e0">
+ <rdf:Description rdf:about="#_9a277d04-80df-41fc-bd44-e64e18d2caee">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/ncbigene/854504" />
@@ -65,10 +65,15 @@
</species>
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="GeneticInteraction_2" metaid="a1727a41-2bcd-4999-b9ca-4ea6fa25b73a" name="MYO2 - MLC1" reversible="true" sboTerm="SBO:0000343">
+ <reaction fast="false" id="GeneticInteraction_2" metaid="c6c5a565-4330-47e2-98af-529180b2badf" name="MYO2 - MLC1" reversible="true" sboTerm="SBO:0000343">
<annotation>
+ <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ <Xref uri="MI:0441">
+ <comments>synthetic genetic analysis</comments>
+ </Xref>
+ </biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#a1727a41-2bcd-4999-b9ca-4ea6fa25b73a">
+ <rdf:Description rdf:about="#c6c5a565-4330-47e2-98af-529180b2badf">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/9700160" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2017-01-03 06:43:08
|
Revision: 703
http://sourceforge.net/p/sbfc/code/703
Author: tramy-nguyen
Date: 2017-01-03 06:43:06 +0000 (Tue, 03 Jan 2017)
Log Message:
-----------
Implemented custom annotation for BioPAX availability property
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2017-01-03 05:54:23 UTC (rev 702)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2017-01-03 06:43:06 UTC (rev 703)
@@ -662,7 +662,7 @@
//Hold the custom annotation for xref comment property
List<XMLNode> annotatedList = new ArrayList<XMLNode>();
- parseAnnotations(pathway, annotatedList);
+ parseAnnotations(pathway, "pathway", annotatedList);
if(annotatedList.size() > 0)
{
@@ -673,6 +673,22 @@
}
}
}
+ if(pathway.getAvailability() != null && !pathway.getAvailability().isEmpty()){
+ //Hold the custom annotation for xref comment property
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+
+ parseAvailability(pathway, "pathway", annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(sbmlModel);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
+
}
else
{
@@ -705,18 +721,18 @@
* @param annotatedList - An empty list of XMLNode to store the SBML annotations in.
* @return
*/
- private List<XMLNode> parseAnnotations(Entity entity, List<XMLNode> annotatedList)
+ private List<XMLNode> parseAnnotations(Entity entity, String entityType, List<XMLNode> annotatedList)
{
//TODO: Find annotations example for this method.
if(entity.getAnnotations() != null && entity.getAnnotations().size() > 0)
{
- for(String annotKey : entity.getAnnotations().keySet())
+ XMLNode xrefNode = createAnnotatedObject(entityType, entity.getRDFId());
+ XMLNode commentNode = createAnnotatedProperty("annotations");
+ xrefNode.addChild(commentNode);
+ for(Object annotObj : entity.getAnnotations().values())
{
- XMLNode xrefNode = createAnnotatedObject("Pathway", annotKey);
- XMLNode commentNode = createAnnotatedProperty("annotations");
- xrefNode.addChild(commentNode);
-
- String annotValue = entity.getAnnotations().get(annotKey).toString();
+ //TODO: Note, this will ignore all annotation key.
+ String annotValue = annotObj.toString();
commentNode.addChild(createAnnotatedValue(annotValue));
annotatedList.add(xrefNode);
@@ -726,6 +742,25 @@
return annotatedList;
}
+
+ private List<XMLNode> parseAvailability(Entity entity, String entityType, List<XMLNode> annotatedList)
+ {
+ //TODO: Find example for this method.
+ if(entity.getAvailability() != null && entity.getAvailability().size() > 0)
+ {
+ XMLNode xrefNode = createAnnotatedObject(entityType, entity.getRDFId());
+ XMLNode commentNode = createAnnotatedProperty("availability");
+ xrefNode.addChild(commentNode);
+ for(String availability : entity.getAvailability())
+ {
+ commentNode.addChild(createAnnotatedValue(availability));
+ }
+ annotatedList.add(xrefNode);
+ }
+
+ return annotatedList;
+
+ }
/**
* Convert a list of pathway components to its corresponding SBML Elements.
@@ -1345,10 +1380,25 @@
parseEvidence(entity.getEvidence(), sbmlSpecies);
}
if(entity.getAnnotations() != null && !entity.getAnnotations().isEmpty()){
+
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+
+ parseAnnotations(entity, "PhysicalEntity", annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(sbmlSpecies);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
+ if(entity.getAvailability() != null && !entity.getAvailability().isEmpty()){
//Hold the custom annotation for xref comment property
List<XMLNode> annotatedList = new ArrayList<XMLNode>();
- parseAnnotations(entity, annotatedList);
+ parseAvailability(entity, "PhysicalEntity", annotatedList);
if(annotatedList.size() > 0)
{
@@ -2054,6 +2104,37 @@
{
parseXref(control.getXref(), modifierSpecies);
}
+ if(control.getAnnotations() != null && !control.getAnnotations().isEmpty()){
+
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+
+ parseAnnotations(control, "ControlInteractions", annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(modifierSpecies);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
+ if(control.getAvailability() != null && !control.getAvailability().isEmpty()){
+
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+
+ parseAvailability(control, "ControlInteraction", annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(modifierSpecies);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
+
}
}
}
@@ -2400,7 +2481,37 @@
{
parseEvidence(entity.getEvidence(), reaction);
}
+ if(entity.getAnnotations() != null && !entity.getAnnotations().isEmpty()){
+
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+ parseAnnotations(entity, "Interactions", annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(reaction);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
+ if(entity.getAvailability() != null && !entity.getAvailability().isEmpty()){
+ //Hold the custom annotation for xref comment property
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+
+ parseAvailability(entity, "Interaction", annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(reaction);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
+
return reaction;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2017-01-03 05:54:25
|
Revision: 702
http://sourceforge.net/p/sbfc/code/702
Author: tramy-nguyen
Date: 2017-01-03 05:54:23 +0000 (Tue, 03 Jan 2017)
Log Message:
-----------
implemented custom annotation for all BioPAX Annotations property
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-template-reaction.xml
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-10-26 19:33:39 UTC (rev 701)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2017-01-03 05:54:23 UTC (rev 702)
@@ -657,6 +657,22 @@
{
parseXref(pathway.getXref(), sbmlModel);
}
+
+ if(pathway.getAnnotations() != null && !pathway.getAnnotations().isEmpty()){
+ //Hold the custom annotation for xref comment property
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+
+ parseAnnotations(pathway, annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(sbmlModel);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
}
else
{
@@ -680,6 +696,36 @@
return sbmlModel;
}
+
+
+ /**
+ * Creates SBML custom annotation for BioPAX Annotations property
+ *
+ * @param entity - The BioPAX element of the annotation property.
+ * @param annotatedList - An empty list of XMLNode to store the SBML annotations in.
+ * @return
+ */
+ private List<XMLNode> parseAnnotations(Entity entity, List<XMLNode> annotatedList)
+ {
+ //TODO: Find annotations example for this method.
+ if(entity.getAnnotations() != null && entity.getAnnotations().size() > 0)
+ {
+ for(String annotKey : entity.getAnnotations().keySet())
+ {
+ XMLNode xrefNode = createAnnotatedObject("Pathway", annotKey);
+ XMLNode commentNode = createAnnotatedProperty("annotations");
+ xrefNode.addChild(commentNode);
+
+ String annotValue = entity.getAnnotations().get(annotKey).toString();
+ commentNode.addChild(createAnnotatedValue(annotValue));
+
+ annotatedList.add(xrefNode);
+ }
+ }
+
+ return annotatedList;
+
+ }
/**
* Convert a list of pathway components to its corresponding SBML Elements.
@@ -1298,7 +1344,23 @@
{
parseEvidence(entity.getEvidence(), sbmlSpecies);
}
+ if(entity.getAnnotations() != null && !entity.getAnnotations().isEmpty()){
+ //Hold the custom annotation for xref comment property
+ List<XMLNode> annotatedList = new ArrayList<XMLNode>();
+ parseAnnotations(entity, annotatedList);
+
+ if(annotatedList.size() > 0)
+ {
+ XMLNode customNode = createCustomBiopaxAnnotation(sbmlSpecies);
+ for(XMLNode node: annotatedList)
+ {
+ customNode.addChild(node);
+ }
+ }
+ }
+
+
sbmlId2biopaxId.put(sbmlSpecies.getId(), entity.getRDFId());
mappedEntities.put(entity.getRDFId(), sbmlSpecies);
@@ -1352,7 +1414,7 @@
}
/**
- * Create the XMLNode to set the custom annotation "comments" section
+ * Create the XMLNode to set the custom annotation "comments" tag
* For example:
* <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
* <Xref uri="http://identifiers.org/go/GO:0005654">
@@ -1384,7 +1446,7 @@
* </comments>
* </Xref>
* </biopax2sbml>
- * In this case, value is anything annotated for Xref comment property
+ * In this case, value is anything annotated within Xref comments property
*
* @param value - the custom annotation value
* @return The XMLNode of the custom annotaiton value
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-template-reaction.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-template-reaction.xml 2016-10-26 19:33:39 UTC (rev 701)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-template-reaction.xml 2017-01-03 05:54:23 UTC (rev 702)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' standalone='no'?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
- <model id="defaultSBMLModelId" metaid="f45bece3-395f-4ab5-957e-230a9709f9d5">
+ <model id="defaultSBMLModelId" metaid="_249e18df-80bb-41f7-8973-98b2cb1cebb2">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -8,7 +8,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#f45bece3-395f-4ab5-957e-230a9709f9d5">
+ <rdf:Description rdf:about="#_249e18df-80bb-41f7-8973-98b2cb1cebb2">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
@@ -22,7 +22,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="CellularLocationVocabulary_3" metaid="d1cba5c6-bcf3-4545-860d-9b81689a3fd8" sboTerm="SBO:0000290">
+ <compartment constant="true" id="CellularLocationVocabulary_3" metaid="_02615ee4-f819-4f2b-b543-2b17d93cd05a" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="http://identifiers.org/go/GO:0005634">
@@ -30,7 +30,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#d1cba5c6-bcf3-4545-860d-9b81689a3fd8">
+ <rdf:Description rdf:about="#_02615ee4-f819-4f2b-b543-2b17d93cd05a">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/go/GO:0005634" />
@@ -43,11 +43,11 @@
<compartment constant="true" id="defaultCompartment" sboTerm="SBO:0000290" />
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="Complex_37" initialAmount="1"
- metaid="_4d1fc452-146c-464b-8be4-65a97826f769" name="Beta-catenin-TCF1" sboTerm="SBO:0000253">
+ <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="Complex_37" metaid="_483a8e71-2e9e-4826-bc92-af02558d15fd"
+ name="Beta-catenin-TCF1" sboTerm="SBO:0000253">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_4d1fc452-146c-464b-8be4-65a97826f769">
+ <rdf:Description rdf:about="#_483a8e71-2e9e-4826-bc92-af02558d15fd">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -62,11 +62,11 @@
</rdf:RDF>
</annotation>
</species>
- <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="Protein_12" initialAmount="1"
- metaid="fce87b8b-5d11-426e-bfcb-b038cf80e8e8" name="Blimp1/Krox_protein" sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="Protein_12" metaid="_8aff8cc9-5ed6-4a8a-bb32-94f679217808"
+ name="Blimp1/Krox_protein" sboTerm="SBO:0000252">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#fce87b8b-5d11-426e-bfcb-b038cf80e8e8">
+ <rdf:Description rdf:about="#_8aff8cc9-5ed6-4a8a-bb32-94f679217808">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -81,11 +81,11 @@
</rdf:RDF>
</annotation>
</species>
- <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="Protein_1" initialAmount="1"
- metaid="f8eaed83-d2a1-4a2b-b4f1-0599019948e0" name="Wnt8_protein" sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="Protein_1" metaid="_7cf3b199-4739-4a6c-b2d3-aff49addb03a"
+ name="Wnt8_protein" sboTerm="SBO:0000252">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#f8eaed83-d2a1-4a2b-b4f1-0599019948e0">
+ <rdf:Description rdf:about="#_7cf3b199-4739-4a6c-b2d3-aff49addb03a">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -100,11 +100,11 @@
</rdf:RDF>
</annotation>
</species>
- <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="Protein_38" initialAmount="1"
- metaid="_8b8b6fbd-2f25-4551-9f00-18a2815f8472" name="TCF1_protein" sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="Protein_38" metaid="_14a240d8-db89-4d13-aae7-01a5e66c8848"
+ name="TCF1_protein" sboTerm="SBO:0000252">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_8b8b6fbd-2f25-4551-9f00-18a2815f8472">
+ <rdf:Description rdf:about="#_14a240d8-db89-4d13-aae7-01a5e66c8848">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -119,11 +119,11 @@
</rdf:RDF>
</annotation>
</species>
- <species boundaryCondition="false" compartment="defaultCompartment" constant="false" hasOnlySubstanceUnits="true" id="Protein_25" initialAmount="1"
- metaid="_6888ef4e-4518-4786-8a7c-e05a1429763a" name="Eve_protein" sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="defaultCompartment" constant="false" hasOnlySubstanceUnits="true" id="Protein_25" metaid="_3b7a9e53-9112-405d-b1b2-58e1370fe757"
+ name="Eve_protein" sboTerm="SBO:0000252">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_6888ef4e-4518-4786-8a7c-e05a1429763a">
+ <rdf:Description rdf:about="#_3b7a9e53-9112-405d-b1b2-58e1370fe757">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -138,8 +138,8 @@
</rdf:RDF>
</annotation>
</species>
- <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="DnaRegion_10" initialAmount="1"
- metaid="_6610ffc6-87ba-4fad-99c2-d60175aa02f1" name="Blimp1/Krox_gene" sboTerm="SBO:0000634">
+ <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="DnaRegion_10" metaid="_4b2e4ec1-e832-448d-a3fc-5e2e30467f94"
+ name="Blimp1/Krox_gene" sboTerm="SBO:0000634">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="http://identifiers.org/refseq/NP_001073021">
@@ -147,7 +147,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_6610ffc6-87ba-4fad-99c2-d60175aa02f1">
+ <rdf:Description rdf:about="#_4b2e4ec1-e832-448d-a3fc-5e2e30467f94">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -167,11 +167,11 @@
</rdf:RDF>
</annotation>
</species>
- <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="Protein_2" initialAmount="1"
- metaid="_344cdafe-29f2-4be3-ad18-3d99b0037efa" name="beta-catenin_protein" sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="Protein_2" metaid="_67b528f9-67c6-4577-a796-16411480e749"
+ name="beta-catenin_protein" sboTerm="SBO:0000252">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_344cdafe-29f2-4be3-ad18-3d99b0037efa">
+ <rdf:Description rdf:about="#_67b528f9-67c6-4577-a796-16411480e749">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -186,8 +186,8 @@
</rdf:RDF>
</annotation>
</species>
- <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="DnaRegion_23" initialAmount="1"
- metaid="_88e49828-e4a3-4a2d-b174-28327b607938" name="Eve_gene" sboTerm="SBO:0000634">
+ <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="DnaRegion_23" metaid="_3397947e-0cb6-4b44-a9e8-b2caf49699b5"
+ name="Eve_gene" sboTerm="SBO:0000634">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="http://identifiers.org/refseq/NW_001301245">
@@ -195,7 +195,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_88e49828-e4a3-4a2d-b174-28327b607938">
+ <rdf:Description rdf:about="#_3397947e-0cb6-4b44-a9e8-b2caf49699b5">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -215,8 +215,8 @@
</rdf:RDF>
</annotation>
</species>
- <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="DnaRegion_12" initialAmount="1"
- metaid="f508ac8b-1f60-45f2-a9fc-60295b82aad9" name="Wnt8_gene" sboTerm="SBO:0000634">
+ <species boundaryCondition="false" compartment="CellularLocationVocabulary_3" constant="false" hasOnlySubstanceUnits="true" id="DnaRegion_12" metaid="_1d3a59d4-dd38-499f-8450-04b825a7e034"
+ name="Wnt8_gene" sboTerm="SBO:0000634">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="http://identifiers.org/refseq/NW_001424793">
@@ -224,7 +224,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#f508ac8b-1f60-45f2-a9fc-60295b82aad9">
+ <rdf:Description rdf:about="#_1d3a59d4-dd38-499f-8450-04b825a7e034">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -256,10 +256,10 @@
<speciesReference constant="true" species="Complex_37" />
</listOfProducts>
</reaction>
- <reaction fast="false" id="TemplateReaction_22" metaid="_1a27e4e0-78c1-4ae5-a03c-1714ca8cf2e0" name="Eve transcription" reversible="false" sboTerm="SBO:0000589">
+ <reaction fast="false" id="TemplateReaction_22" metaid="b5f2fab5-8077-4030-9ed1-7217c2308174" name="Eve transcription" reversible="false" sboTerm="SBO:0000589">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_1a27e4e0-78c1-4ae5-a03c-1714ca8cf2e0">
+ <rdf:Description rdf:about="#b5f2fab5-8077-4030-9ed1-7217c2308174">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -278,10 +278,10 @@
</listOfProducts>
<listOfModifiers>
<modifierSpeciesReference species="DnaRegion_23" />
- <modifierSpeciesReference metaid="f24d767f-4a7c-43d9-bcb2-70ab9125c080" name="beta-catenin TCF1 regulates Eve" sboTerm="SBO:0000459" species="Complex_37">
+ <modifierSpeciesReference metaid="f3ba9d20-7d50-4fda-837d-226576ab1a21" name="beta-catenin TCF1 regulates Eve" sboTerm="SBO:0000459" species="Complex_37">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#f24d767f-4a7c-43d9-bcb2-70ab9125c080">
+ <rdf:Description rdf:about="#f3ba9d20-7d50-4fda-837d-226576ab1a21">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -296,10 +296,10 @@
</rdf:RDF>
</annotation>
</modifierSpeciesReference>
- <modifierSpeciesReference metaid="_6e4033f9-c626-4705-b3c3-f696b20c5ee3" name="Bilmp1/Krox regulates Eve" sboTerm="SBO:0000459" species="Protein_12">
+ <modifierSpeciesReference metaid="_4742ff01-eb69-4db9-9494-662ac96e7fde" name="Bilmp1/Krox regulates Eve" sboTerm="SBO:0000459" species="Protein_12">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_6e4033f9-c626-4705-b3c3-f696b20c5ee3">
+ <rdf:Description rdf:about="#_4742ff01-eb69-4db9-9494-662ac96e7fde">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -316,10 +316,10 @@
</modifierSpeciesReference>
</listOfModifiers>
</reaction>
- <reaction fast="false" id="Blimp" metaid="_9c4480ea-0523-4138-8426-5fa303438de3" name="Blimp1/Krox transcription" reversible="false" sboTerm="SBO:0000589">
+ <reaction fast="false" id="Blimp" metaid="_507af5e0-ff38-4255-a6a8-6873f9377668" name="Blimp1/Krox transcription" reversible="false" sboTerm="SBO:0000589">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_9c4480ea-0523-4138-8426-5fa303438de3">
+ <rdf:Description rdf:about="#_507af5e0-ff38-4255-a6a8-6873f9377668">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -338,10 +338,10 @@
</listOfProducts>
<listOfModifiers>
<modifierSpeciesReference species="DnaRegion_10" />
- <modifierSpeciesReference metaid="f0d5b773-a230-440f-95b3-607f6fd65ff7" name="beta-catenin TCF1 regulates Blimp1/Krox" sboTerm="SBO:0000459" species="Complex_37">
+ <modifierSpeciesReference metaid="_1f7e8eed-1442-4ba4-9e72-a42a9b6434e8" name="beta-catenin TCF1 regulates Blimp1/Krox" sboTerm="SBO:0000459" species="Complex_37">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#f0d5b773-a230-440f-95b3-607f6fd65ff7">
+ <rdf:Description rdf:about="#_1f7e8eed-1442-4ba4-9e72-a42a9b6434e8">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -358,10 +358,10 @@
</modifierSpeciesReference>
</listOfModifiers>
</reaction>
- <reaction fast="false" id="TemplateReaction_1" metaid="e59d6c36-a8eb-4ff2-a787-ac03051514ac" name="Wnt8 transcription" reversible="false" sboTerm="SBO:0000589">
+ <reaction fast="false" id="TemplateReaction_1" metaid="ba93b6d8-946b-431d-ae58-ca35f4db26dd" name="Wnt8 transcription" reversible="false" sboTerm="SBO:0000589">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#e59d6c36-a8eb-4ff2-a787-ac03051514ac">
+ <rdf:Description rdf:about="#ba93b6d8-946b-431d-ae58-ca35f4db26dd">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -380,10 +380,10 @@
</listOfProducts>
<listOfModifiers>
<modifierSpeciesReference species="DnaRegion_12" />
- <modifierSpeciesReference metaid="_2100575a-6316-48e3-9c07-cdc96cbb5719" name="Blimp1/Krox regulates Wnt8" sboTerm="SBO:0000459" species="Protein_12">
+ <modifierSpeciesReference metaid="b09a3117-3512-4ba8-800b-f470ad5fdcc2" name="Blimp1/Krox regulates Wnt8" sboTerm="SBO:0000459" species="Protein_12">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_2100575a-6316-48e3-9c07-cdc96cbb5719">
+ <rdf:Description rdf:about="#b09a3117-3512-4ba8-800b-f470ad5fdcc2">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
@@ -398,10 +398,10 @@
</rdf:RDF>
</annotation>
</modifierSpeciesReference>
- <modifierSpeciesReference metaid="de1d9da6-bdfe-4283-93df-8faf0d45edfc" name="beta-catenin TCF1 regulates Wnt8" sboTerm="SBO:0000459" species="Complex_37">
+ <modifierSpeciesReference metaid="f43d42d9-e1a4-4592-90f5-ecab597dc216" name="beta-catenin TCF1 regulates Wnt8" sboTerm="SBO:0000459" species="Complex_37">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#de1d9da6-bdfe-4283-93df-8faf0d45edfc">
+ <rdf:Description rdf:about="#f43d42d9-e1a4-4592-90f5-ecab597dc216">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/12027441" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-10-26 19:33:42
|
Revision: 701
http://sourceforge.net/p/sbfc/code/701
Author: tramy-nguyen
Date: 2016-10-26 19:33:39 +0000 (Wed, 26 Oct 2016)
Log Message:
-----------
Included SBML2BioPAX converter to parse multiple pathways beyond 2 level hierarchy.
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-10-24 04:34:11 UTC (rev 700)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-10-26 19:33:39 UTC (rev 701)
@@ -396,7 +396,8 @@
CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDoc.getPlugin(CompConstants.shortLabel);
for(Pathway pathway : pathways)
{
- org.sbml.jsbml.Model subModel = parsePathway(pathway, sbmlDoc);
+ org.sbml.jsbml.Model subModel = parsePathway(pathway, sbmlDoc);
+
//Loop over all interaction within the biomodel and see if there are any interactions that contain a control this pathway
for(Control pathwayControl : bioModel.getObjects(Control.class))
{
@@ -446,6 +447,7 @@
Submodel s = compModel.createSubmodel("submodel__" + subModel.getId());
s.setModelRef(subModel.getId());
}
+
//Add all species replacements and replacedby from submodels to toplevel_sbmlModel
for(PhysicalEntity physicalEntity : bioModel.getObjects(PhysicalEntity.class))
{
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-10-24 04:34:11 UTC (rev 700)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-10-26 19:33:39 UTC (rev 701)
@@ -146,19 +146,8 @@
log.debug("There are " + sbmlTopLevelModel.getNumReactions() + " reactions in the SBML model. ");
log.debug("Let's iterate over reactions and convert them one by one.");
parseReactions(sbmlTopLevelModel, bpModel, pathway, null);
- if(compTopLevelModel != null && compTopLevelModel.isSetListOfSubmodels())
- {
- for(Submodel submodel : compTopLevelModel.getListOfSubmodels())
- {
- if(submodel != null && submodel.isSetModelRef())
- {
- ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(submodel.getModelRef());
- Pathway subModelPathway = sbml2BioPAXUtilities.convertPathway(bpModel, submodel);
- parseSpecies(submodelDef.getModel(), bpModel, submodel.getId());
- parseReactions(submodelDef.getModel(), bpModel, subModelPathway, submodel.getId());
- }
- }
- }
+
+ parseSubmodels(compTopLevelModel, compSBMLDocPlugin, bpModel);
// // The process above leaves some of the complexes empty. We need to fix this.
@@ -174,6 +163,28 @@
return bpModel;
}
+ private void parseSubmodels(CompModelPlugin localTopLevelModel, CompSBMLDocumentPlugin compSBMLDocPlugin, Model bpModel)
+ {
+ if(localTopLevelModel != null && localTopLevelModel.isSetListOfSubmodels())
+ {
+ for(Submodel submodel : localTopLevelModel.getListOfSubmodels())
+ {
+ if(submodel != null && submodel.isSetModelRef())
+ {
+ ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(submodel.getModelRef());
+ Pathway subModelPathway = sbml2BioPAXUtilities.convertPathway(bpModel, submodel);
+ parseSpecies(submodelDef.getModel(), bpModel, submodel.getId());
+ parseReactions(submodelDef.getModel(), bpModel, subModelPathway, submodel.getId());
+
+ //If submodels contains submodel, recursively create pathways from them
+ CompModelPlugin compModel = (CompModelPlugin) submodelDef.getExtension(CompConstants.shortLabel);
+ parseSubmodels(compModel, compSBMLDocPlugin, (Model)submodelDef);
+ }
+
+ }
+ }
+ }
+
/**
* Check to see if the SBML element has a replacement or a replacedBy to be parsed.
* If so, then store the element to be replaced, the model the replacing element is contained in, and
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-10-24 04:34:14
|
Revision: 700
http://sourceforge.net/p/sbfc/code/700
Author: tramy-nguyen
Date: 2016-10-24 04:34:11 +0000 (Mon, 24 Oct 2016)
Log Message:
-----------
Made the following changes:
- updated new jsbml jar to include pMg SBO term.
- Added sbml files for genetic toggle switch to perform roundtripping
Modified Paths:
--------------
trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies.jar
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping2.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping2_3.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSingleSpecies_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSpeciesSpecies_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingElements_roundtripping.xml
trunk/test/org/sbfc/test/resources/mapSpeciesSpecies.xml
trunk/test/org/sbfc/test/resources/replacingElements.xml
trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/mapSpeciesSpecies_roundtripping.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/replacingElements_roundtripping.owl
Added Paths:
-----------
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping2.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping23.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingASpecies_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingASpecies_roundtripping2.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingASpecies_roundtripping2_3.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingElements_roundtripping2.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingElements_roundtripping2_3.xml
trunk/test/org/sbfc/test/resources/LacI_Inverter.xml
trunk/test/org/sbfc/test/resources/TetR_Inverter.xml
trunk/test/org/sbfc/test/resources/replacingASpecies.xml
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML2_roundtripping2.xml
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/TetR_Inverter_roundtripping.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/TetR_Inverter_roundtripping2.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/TetR_Inverter_roundtripping23.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/replacingASpecies_roundtripping.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/replacingASpecies_roundtripping2.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/replacingASpecies_roundtripping2_3.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/replacingElements_roundtripping2.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/replacingElements_roundtripping2_3.owl
Modified: trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies.jar
===================================================================
(Binary files differ)
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-19 07:12:51 UTC (rev 699)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-10-24 04:34:11 UTC (rev 700)
@@ -1283,14 +1283,10 @@
* setConstant(false) :
* Specify if species ever change.
* Assume species is usually never change, true is set
- * setInitialAmount();
- * Species initial amount
- * Assume species amount is currently always one.
*/
sbmlSpecies.setHasOnlySubstanceUnits(true);
sbmlSpecies.setBoundaryCondition(false);
sbmlSpecies.setConstant(false);
- sbmlSpecies.setInitialAmount(1);
if(entity.getXref() != null)
{
parseXref(entity.getXref(), sbmlSpecies);
@@ -1929,7 +1925,7 @@
* reference the same control and by getting a valid sbmlId from control will result
* in many collision of the same use of control id map to the different modifiers
*/
- // modifierSpecies.setId(getValidSBMLId(control));
+ //modifierSpecies.setId(getValidSBMLId(control));
String modifierSpeciesName = getValidSBMLName(control);
if(modifierSpeciesName != null)
{
@@ -2019,7 +2015,7 @@
addLocalParameter(prefix + "deltaGPrime0", kineticLaw, deltaG.getDeltaGPrime0(), SBO.getGibbsFreeEnergyChange());
addLocalParameter(prefix + "deltaGIonicStrength", kineticLaw, deltaG.getIonicStrength(), SBO.getIonicStrength());
addLocalParameter(prefix + "deltaGPh", kineticLaw, deltaG.getPh(), SBO.getpH());
- addLocalParameter(prefix + "deltaGPMg", kineticLaw, deltaG.getPMg(), SBO.getGibbsFreeEnergyChange());
+ addLocalParameter(prefix + "deltaGPMg", kineticLaw, deltaG.getPMg(), SBO.getPMg());
addLocalParameter(prefix + "deltaGTemperature", kineticLaw, deltaG.getTemperature(), SBO.getThermodynamicTemperature());
}
for(Float deltaH : biochemReaction.getDeltaH())
@@ -2036,7 +2032,7 @@
addLocalParameter(prefix + "KPrime", kineticLaw, kprime.getKPrime(), SBO.getEquilibriumConstant());
addLocalParameter(prefix + "KPrimeIonicStrength", kineticLaw, kprime.getIonicStrength(), SBO.getIonicStrength());
addLocalParameter(prefix + "KPrimePh", kineticLaw, kprime.getPh(), SBO.getpH());
- addLocalParameter(prefix + "KPrimeMg", kineticLaw, kprime.getPMg(), SBO.getEquilibriumConstant());
+ addLocalParameter(prefix + "KPrimeMg", kineticLaw, kprime.getPMg(), SBO.getPMg());
addLocalParameter(prefix + "KPrimeTemperature", kineticLaw, kprime.getTemperature(), SBO.getThermodynamicTemperature());
}
}
@@ -2151,7 +2147,7 @@
}
else if(controlType.equals(ControlType.INHIBITION_OTHER))
{
- modifierSpecies.setSBOTerm(SBO.getInhibitor());
+ modifierSpecies.setSBOTerm(SBO.getInhibitor()); //TODO: TBD
}
else if(controlType.equals(ControlType.INHIBITION_UNCOMPETITIVE))
{
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-19 07:12:51 UTC (rev 699)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-10-24 04:34:11 UTC (rev 700)
@@ -95,7 +95,7 @@
*
* During the course of the conversion from SBML to BioPAX, each corresponding SBase will be
* converted to its corresponding BioPAX entity based on the SBase elements' SBO term.
- * All SBML species will be converted to either a Gene or any if the PhysicalEntity type.
+ * All SBML species will be converted to either a Gene or any of the PhysicalEntity type.
* All SBML reactions will be converted to either a Conversion Interaction or an Interaction that is not of type Control.
* All SBML ModifierSpeciesReference of a reaction will be converted to a ControlInteraction.
* All SBML SpeciesReference will be converted to an entity that takes part in a BioPAX Interaction participants.
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-19 07:12:51 UTC (rev 699)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-10-24 04:34:11 UTC (rev 700)
@@ -891,7 +891,7 @@
//Each cvterm will only have one resource assigned.
for (CVTerm cvTerm : annotation.getListOfCVTerms()) {
for (String resource : cvTerm.getResources()) {
- // String xrefId = completeId(xrefClass.getSimpleName().toLowerCase() + "_" + cvTerm.hashCode());
+ //String xrefId = completeId(xrefClass.getSimpleName().toLowerCase() + "_" + cvTerm.hashCode());
String xrefId = completeId(resource);
// Let's not replicate xrefs if possible
Xref xref = (Xref) bpModel.getByID(xrefId);
Modified: trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java 2016-08-19 07:12:51 UTC (rev 699)
+++ trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java 2016-10-24 04:34:11 UTC (rev 700)
@@ -334,7 +334,8 @@
@Test
public void test_SBOTerms()
{
-// Assert.assertTrue(SBO.getGene() == 354);
+ System.out.println(SBO.getGene());
+ Assert.assertTrue(SBO.getGene() == 354);
Assert.assertTrue(SBO.getMaterialEntity() == 240); //PhysicalEntity
Assert.assertTrue(SBO.getComplex() == 253);
Assert.assertTrue(SBO.getGeneric() == 252);
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml 2016-08-19 07:12:51 UTC (rev 699)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' standalone='no'?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
- <model id="defaultSBMLModelId" metaid="f5d15566-cbc0-4745-bba1-84b5667f09de">
+ <model id="defaultSBMLModelId" metaid="a3521aee-d603-48fc-9475-d485fc0c6dc6">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -8,7 +8,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#f5d15566-cbc0-4745-bba1-84b5667f09de">
+ <rdf:Description rdf:about="#a3521aee-d603-48fc-9475-d485fc0c6dc6">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
@@ -25,9 +25,9 @@
<compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S1" initialAmount="1" name="http://www.humanmetabolism.org/#S1" sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S0" initialAmount="1" name="http://www.humanmetabolism.org/#S0" sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S2" initialAmount="1" name="http://www.humanmetabolism.org/#S2" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S1" name="http://www.humanmetabolism.org/#S1" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S0" name="http://www.humanmetabolism.org/#S0" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S2" name="http://www.humanmetabolism.org/#S2" sboTerm="SBO:0000252" />
</listOfSpecies>
<listOfReactions>
<reaction fast="false" id="R0" name="http://www.humanmetabolism.org/#R0" reversible="true" sboTerm="SBO:0000176">
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml 2016-08-19 07:12:51 UTC (rev 699)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -6,14 +6,10 @@
<compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="C1__pLac" initialAmount="1" name="http://www.humanmetabolism.org/#C1__pLac"
- sboTerm="SBO:0000634" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
- sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" initialAmount="1" name="http://www.humanmetabolism.org/#GFP"
- sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
- sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="C1__pLac" name="http://www.humanmetabolism.org/#C1__pLac" sboTerm="SBO:0000634" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" name="http://www.humanmetabolism.org/#LacI" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" name="http://www.humanmetabolism.org/#GFP" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" name="http://www.humanmetabolism.org/#TetR" sboTerm="SBO:0000252" />
</listOfSpecies>
<listOfReactions>
<reaction fast="false" id="C1__pLac_prod_GFP_pLac_prod_TetR" name="http://www.humanmetabolism.org/#C1__pLac_prod_GFP_pLac_prod_TetR" reversible="false" sboTerm="SBO:0000589">
@@ -33,12 +29,9 @@
<compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="C2__P0" initialAmount="1" name="http://www.humanmetabolism.org/#C2__P0"
- sboTerm="SBO:0000634" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
- sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
- sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="C2__P0" name="http://www.humanmetabolism.org/#C2__P0" sboTerm="SBO:0000634" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" name="http://www.humanmetabolism.org/#TetR" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" name="http://www.humanmetabolism.org/#LacI" sboTerm="SBO:0000252" />
</listOfSpecies>
<listOfReactions>
<reaction fast="false" id="C2__P0_prod_LacI" name="http://www.humanmetabolism.org/#C2__P0_prod_LacI" reversible="false" sboTerm="SBO:0000589">
@@ -53,7 +46,7 @@
</listOfReactions>
</comp:modelDefinition>
</comp:listOfModelDefinitions>
- <model id="topLevel_sbmlModel" metaid="be1e58d8-18bc-4071-8450-1205ffa6da47">
+ <model id="topLevel_sbmlModel" metaid="_855c36b9-0a16-4022-b880-e698d464c45a">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -61,7 +54,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#be1e58d8-18bc-4071-8450-1205ffa6da47">
+ <rdf:Description rdf:about="#_855c36b9-0a16-4022-b880-e698d464c45a">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
@@ -87,29 +80,23 @@
</compartment>
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI_IPTG" initialAmount="1" name="http://www.humanmetabolism.org/#LacI_IPTG"
- sboTerm="SBO:0000253" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
- sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI_IPTG" name="http://www.humanmetabolism.org/#LacI_IPTG" sboTerm="SBO:0000253" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" name="http://www.humanmetabolism.org/#LacI" sboTerm="SBO:0000252">
<comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:replacedElement comp:idRef="LacI" comp:submodelRef="submodel__C1" />
<comp:replacedElement comp:idRef="LacI" comp:submodelRef="submodel__C2" />
</comp:listOfReplacedElements>
</species>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="IPTG" initialAmount="1" name="http://www.humanmetabolism.org/#IPTG"
- sboTerm="SBO:0000247" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR_aTc" initialAmount="1" name="http://www.humanmetabolism.org/#TetR_aTc"
- sboTerm="SBO:0000253" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="aTc" initialAmount="1" name="http://www.humanmetabolism.org/#aTc"
- sboTerm="SBO:0000247" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
- sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="IPTG" name="http://www.humanmetabolism.org/#IPTG" sboTerm="SBO:0000247" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR_aTc" name="http://www.humanmetabolism.org/#TetR_aTc" sboTerm="SBO:0000253" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="aTc" name="http://www.humanmetabolism.org/#aTc" sboTerm="SBO:0000247" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" name="http://www.humanmetabolism.org/#TetR" sboTerm="SBO:0000252">
<comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:replacedElement comp:idRef="TetR" comp:submodelRef="submodel__C1" />
<comp:replacedElement comp:idRef="TetR" comp:submodelRef="submodel__C2" />
</comp:listOfReplacedElements>
</species>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" initialAmount="1" name="http://www.humanmetabolism.org/#GFP" sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" name="http://www.humanmetabolism.org/#GFP" sboTerm="SBO:0000252">
<comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:replacedElement comp:idRef="GFP" comp:submodelRef="submodel__C1" />
</comp:listOfReplacedElements>
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping2.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping2.xml 2016-08-19 07:12:51 UTC (rev 699)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping2.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -6,14 +6,11 @@
<compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="submodel__C1__C1__pLac" initialAmount="1"
- name="http://www.humanmetabolism.org/#C1__pLac" sboTerm="SBO:0000634" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
- sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" initialAmount="1" name="http://www.humanmetabolism.org/#GFP"
- sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
- sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="submodel__C1__C1__pLac" name="http://www.humanmetabolism.org/#C1__pLac"
+ sboTerm="SBO:0000634" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" name="http://www.humanmetabolism.org/#LacI" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" name="http://www.humanmetabolism.org/#GFP" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" name="http://www.humanmetabolism.org/#TetR" sboTerm="SBO:0000252" />
</listOfSpecies>
<listOfReactions>
<reaction fast="false" id="submodel__C1__C1__pLac_prod_GFP_pLac_prod_TetR" name="http://www.humanmetabolism.org/#C1__pLac_prod_GFP_pLac_prod_TetR" reversible="false" sboTerm="SBO:0000589">
@@ -33,12 +30,10 @@
<compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="submodel__C2__C2__P0" initialAmount="1" name="http://www.humanmetabolism.org/#C2__P0"
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="submodel__C2__C2__P0" name="http://www.humanmetabolism.org/#C2__P0"
sboTerm="SBO:0000634" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
- sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
- sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" name="http://www.humanmetabolism.org/#TetR" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" name="http://www.humanmetabolism.org/#LacI" sboTerm="SBO:0000252" />
</listOfSpecies>
<listOfReactions>
<reaction fast="false" id="submodel__C2__C2__P0_prod_LacI" name="http://www.humanmetabolism.org/#C2__P0_prod_LacI" reversible="false" sboTerm="SBO:0000589">
@@ -53,7 +48,7 @@
</listOfReactions>
</comp:modelDefinition>
</comp:listOfModelDefinitions>
- <model id="topLevel_sbmlModel" metaid="dbea2ffe-fb48-46e8-a14e-3b0a9e71aaa7">
+ <model id="topLevel_sbmlModel" metaid="_38fb9089-e0b1-489a-aa8a-21744b30b4b9">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -61,7 +56,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#dbea2ffe-fb48-46e8-a14e-3b0a9e71aaa7">
+ <rdf:Description rdf:about="#_38fb9089-e0b1-489a-aa8a-21744b30b4b9">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
@@ -87,29 +82,23 @@
</compartment>
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI_IPTG" initialAmount="1" name="http://www.humanmetabolism.org/#LacI_IPTG"
- sboTerm="SBO:0000253" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
- sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI_IPTG" name="http://www.humanmetabolism.org/#LacI_IPTG" sboTerm="SBO:0000253" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" name="http://www.humanmetabolism.org/#LacI" sboTerm="SBO:0000252">
<comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:replacedElement comp:idRef="LacI" comp:submodelRef="submodel__submodel__C1" />
<comp:replacedElement comp:idRef="LacI" comp:submodelRef="submodel__submodel__C2" />
</comp:listOfReplacedElements>
</species>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="IPTG" initialAmount="1" name="http://www.humanmetabolism.org/#IPTG"
- sboTerm="SBO:0000247" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR_aTc" initialAmount="1" name="http://www.humanmetabolism.org/#TetR_aTc"
- sboTerm="SBO:0000253" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="aTc" initialAmount="1" name="http://www.humanmetabolism.org/#aTc"
- sboTerm="SBO:0000247" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
- sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="IPTG" name="http://www.humanmetabolism.org/#IPTG" sboTerm="SBO:0000247" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR_aTc" name="http://www.humanmetabolism.org/#TetR_aTc" sboTerm="SBO:0000253" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="aTc" name="http://www.humanmetabolism.org/#aTc" sboTerm="SBO:0000247" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" name="http://www.humanmetabolism.org/#TetR" sboTerm="SBO:0000252">
<comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:replacedElement comp:idRef="TetR" comp:submodelRef="submodel__submodel__C1" />
<comp:replacedElement comp:idRef="TetR" comp:submodelRef="submodel__submodel__C2" />
</comp:listOfReplacedElements>
</species>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" initialAmount="1" name="http://www.humanmetabolism.org/#GFP" sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" name="http://www.humanmetabolism.org/#GFP" sboTerm="SBO:0000252">
<comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:replacedElement comp:idRef="GFP" comp:submodelRef="submodel__submodel__C1" />
</comp:listOfReplacedElements>
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping2_3.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping2_3.xml 2016-08-19 07:12:51 UTC (rev 699)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping2_3.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -6,12 +6,10 @@
<compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="submodel__submodel__C2__submodel__C2__C2__P0" initialAmount="1"
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="submodel__submodel__C2__submodel__C2__C2__P0"
name="http://www.humanmetabolism.org/#C2__P0" sboTerm="SBO:0000634" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
- sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
- sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" name="http://www.humanmetabolism.org/#TetR" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" name="http://www.humanmetabolism.org/#LacI" sboTerm="SBO:0000252" />
</listOfSpecies>
<listOfReactions>
<reaction fast="false" id="submodel__submodel__C2__submodel__C2__C2__P0_prod_LacI" name="http://www.humanmetabolism.org/#C2__P0_prod_LacI" reversible="false" sboTerm="SBO:0000589">
@@ -30,14 +28,11 @@
<compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="submodel__submodel__C1__submodel__C1__C1__pLac" initialAmount="1"
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="submodel__submodel__C1__submodel__C1__C1__pLac"
name="http://www.humanmetabolism.org/#C1__pLac" sboTerm="SBO:0000634" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
- sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" initialAmount="1" name="http://www.humanmetabolism.org/#GFP"
- sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
- sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" name="http://www.humanmetabolism.org/#LacI" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" name="http://www.humanmetabolism.org/#GFP" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" name="http://www.humanmetabolism.org/#TetR" sboTerm="SBO:0000252" />
</listOfSpecies>
<listOfReactions>
<reaction fast="false" id="submodel__submodel__C1__submodel__C1__C1__pLac_prod_GFP_pLac_prod_TetR" name="http://www.humanmetabolism.org/#C1__pLac_prod_GFP_pLac_prod_TetR" reversible="false"
@@ -54,7 +49,7 @@
</listOfReactions>
</comp:modelDefinition>
</comp:listOfModelDefinitions>
- <model id="topLevel_sbmlModel" metaid="_2d032aa0-f608-4551-a2d9-d9b8b1fcbd73">
+ <model id="topLevel_sbmlModel" metaid="d3c65b2a-6d60-47d5-8096-2b83a0cdba9d">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -62,7 +57,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#_2d032aa0-f608-4551-a2d9-d9b8b1fcbd73">
+ <rdf:Description rdf:about="#d3c65b2a-6d60-47d5-8096-2b83a0cdba9d">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
@@ -88,29 +83,23 @@
</compartment>
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI_IPTG" initialAmount="1" name="http://www.humanmetabolism.org/#LacI_IPTG"
- sboTerm="SBO:0000253" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
- sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI_IPTG" name="http://www.humanmetabolism.org/#LacI_IPTG" sboTerm="SBO:0000253" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" name="http://www.humanmetabolism.org/#LacI" sboTerm="SBO:0000252">
<comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:replacedElement comp:idRef="LacI" comp:submodelRef="submodel__submodel__submodel__C2" />
<comp:replacedElement comp:idRef="LacI" comp:submodelRef="submodel__submodel__submodel__C1" />
</comp:listOfReplacedElements>
</species>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="IPTG" initialAmount="1" name="http://www.humanmetabolism.org/#IPTG"
- sboTerm="SBO:0000247" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR_aTc" initialAmount="1" name="http://www.humanmetabolism.org/#TetR_aTc"
- sboTerm="SBO:0000253" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="aTc" initialAmount="1" name="http://www.humanmetabolism.org/#aTc"
- sboTerm="SBO:0000247" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
- sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="IPTG" name="http://www.humanmetabolism.org/#IPTG" sboTerm="SBO:0000247" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR_aTc" name="http://www.humanmetabolism.org/#TetR_aTc" sboTerm="SBO:0000253" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="aTc" name="http://www.humanmetabolism.org/#aTc" sboTerm="SBO:0000247" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" name="http://www.humanmetabolism.org/#TetR" sboTerm="SBO:0000252">
<comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:replacedElement comp:idRef="TetR" comp:submodelRef="submodel__submodel__submodel__C2" />
<comp:replacedElement comp:idRef="TetR" comp:submodelRef="submodel__submodel__submodel__C1" />
</comp:listOfReplacedElements>
</species>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" initialAmount="1" name="http://www.humanmetabolism.org/#GFP" sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" name="http://www.humanmetabolism.org/#GFP" sboTerm="SBO:0000252">
<comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:replacedElement comp:idRef="GFP" comp:submodelRef="submodel__submodel__submodel__C1" />
</comp:listOfReplacedElements>
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml 2016-08-19 07:12:51 UTC (rev 699)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' standalone='no'?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
- <model id="defaultSBMLModelId" metaid="db5289f0-f588-48b9-abda-2fd979867761">
+ <model id="defaultSBMLModelId" metaid="_7e39605e-07c1-424d-8f7d-995d000a5e12">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -8,7 +8,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#db5289f0-f588-48b9-abda-2fd979867761">
+ <rdf:Description rdf:about="#_7e39605e-07c1-424d-8f7d-995d000a5e12">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
@@ -25,10 +25,10 @@
<compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S1" initialAmount="1" name="http://www.humanmetabolism.org/#S1" sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S0" initialAmount="1" name="http://www.humanmetabolism.org/#S0" sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S3" initialAmount="1" name="http://www.humanmetabolism.org/#S3" sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S2" initialAmount="1" name="http://www.humanmetabolism.org/#S2" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S1" name="http://www.humanmetabolism.org/#S1" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S0" name="http://www.humanmetabolism.org/#S0" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S3" name="http://www.humanmetabolism.org/#S3" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S2" name="http://www.humanmetabolism.org/#S2" sboTerm="SBO:0000252" />
</listOfSpecies>
<listOfReactions>
<reaction fast="false" id="R0" name="http://www.humanmetabolism.org/#R0" reversible="true" sboTerm="SBO:0000176">
Added: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping.xml (rev 0)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -0,0 +1,44 @@
+<?xml version='1.0' encoding='utf-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+ <model id="defaultSBMLModelId" metaid="_061a0208-8e05-4cd2-9c5f-663fd5f98871">
+ <notes>
+ <body xmlns="http://www.w3.org/1999/xhtml">
+ <p>This model has been automatically generated by BioPAX2SBML</p>
+ </body>
+ </notes>
+ <annotation>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
+ <rdf:Description rdf:about="#_061a0208-8e05-4cd2-9c5f-663fd5f98871">
+ <dc:creator>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <vCard:ORG rdf:parseType="Resource">
+ <vCard:Orgname>GSoC 2016, National Resource for Network Biology</vCard:Orgname>
+ </vCard:ORG>
+ </rdf:li>
+ </rdf:Bag>
+ </dc:creator>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="B" name="http://www.humanmetabolism.org/#B" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="P0" name="http://www.humanmetabolism.org/#P0" sboTerm="SBO:0000634" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="P0_prod_LacI" name="http://www.humanmetabolism.org/#P0_prod_LacI" reversible="false" sboTerm="SBO:0000589">
+ <listOfProducts>
+ <speciesReference constant="true" species="B" />
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference species="P0" />
+ <modifierSpeciesReference name="http://www.humanmetabolism.org/#P0_prod_LacI__A" sboTerm="SBO:0000020" species="A" />
+ </listOfModifiers>
+ </reaction>
+ </listOfReactions>
+ </model>
+</sbml>
Added: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping2.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping2.xml (rev 0)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping2.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -0,0 +1,44 @@
+<?xml version='1.0' encoding='utf-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+ <model id="defaultSBMLModelId" metaid="eb7a5918-021a-4991-a7df-33a72924f966">
+ <notes>
+ <body xmlns="http://www.w3.org/1999/xhtml">
+ <p>This model has been automatically generated by BioPAX2SBML</p>
+ </body>
+ </notes>
+ <annotation>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
+ <rdf:Description rdf:about="#eb7a5918-021a-4991-a7df-33a72924f966">
+ <dc:creator>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <vCard:ORG rdf:parseType="Resource">
+ <vCard:Orgname>GSoC 2016, National Resource for Network Biology</vCard:Orgname>
+ </vCard:ORG>
+ </rdf:li>
+ </rdf:Bag>
+ </dc:creator>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="B" name="http://www.humanmetabolism.org/#B" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="P0" name="http://www.humanmetabolism.org/#P0" sboTerm="SBO:0000634" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="P0_prod_LacI" name="http://www.humanmetabolism.org/#P0_prod_LacI" reversible="false" sboTerm="SBO:0000589">
+ <listOfProducts>
+ <speciesReference constant="true" species="B" />
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference species="P0" />
+ <modifierSpeciesReference name="http://www.humanmetabolism.org/#P0_prod_LacI__A" sboTerm="SBO:0000020" species="A" />
+ </listOfModifiers>
+ </reaction>
+ </listOfReactions>
+ </model>
+</sbml>
Added: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping23.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping23.xml (rev 0)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/TetR_Inverter_roundtripping23.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -0,0 +1,44 @@
+<?xml version='1.0' encoding='utf-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+ <model id="defaultSBMLModelId" metaid="c09f6cc7-2f0e-475c-ba76-e5df2dbb4f2f">
+ <notes>
+ <body xmlns="http://www.w3.org/1999/xhtml">
+ <p>This model has been automatically generated by BioPAX2SBML</p>
+ </body>
+ </notes>
+ <annotation>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
+ <rdf:Description rdf:about="#c09f6cc7-2f0e-475c-ba76-e5df2dbb4f2f">
+ <dc:creator>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <vCard:ORG rdf:parseType="Resource">
+ <vCard:Orgname>GSoC 2016, National Resource for Network Biology</vCard:Orgname>
+ </vCard:ORG>
+ </rdf:li>
+ </rdf:Bag>
+ </dc:creator>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="B" name="http://www.humanmetabolism.org/#B" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="P0" name="http://www.humanmetabolism.org/#P0" sboTerm="SBO:0000634" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="P0_prod_LacI" name="http://www.humanmetabolism.org/#P0_prod_LacI" reversible="false" sboTerm="SBO:0000589">
+ <listOfProducts>
+ <speciesReference constant="true" species="B" />
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference species="P0" />
+ <modifierSpeciesReference name="http://www.humanmetabolism.org/#P0_prod_LacI__A" sboTerm="SBO:0000020" species="A" />
+ </listOfModifiers>
+ </reaction>
+ </listOfReactions>
+ </model>
+</sbml>
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSingleSpecies_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSingleSpecies_roundtripping.xml 2016-08-19 07:12:51 UTC (rev 699)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSingleSpecies_roundtripping.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -7,7 +7,7 @@
<compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" initialAmount="1" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000250" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000250" />
</listOfSpecies>
<listOfReactions>
<reaction fast="false" id="model1__R" name="http://www.humanmetabolism.org/#model1__R" reversible="false" sboTerm="SBO:0000179">
@@ -18,7 +18,7 @@
</listOfReactions>
</comp:modelDefinition>
</comp:listOfModelDefinitions>
- <model id="topLevel_sbmlModel" metaid="_6dfcc4ba-6923-4e1e-a8a1-40fdae1cd3d3">
+ <model id="topLevel_sbmlModel" metaid="_68f4bbe3-730f-417b-8dff-283ab1eca52a">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -26,7 +26,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#_6dfcc4ba-6923-4e1e-a8a1-40fdae1cd3d3">
+ <rdf:Description rdf:about="#_68f4bbe3-730f-417b-8dff-283ab1eca52a">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSpeciesSpecies_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSpeciesSpecies_roundtripping.xml 2016-08-19 07:12:51 UTC (rev 699)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSpeciesSpecies_roundtripping.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -2,17 +2,23 @@
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" comp:required="true" level="3" version="1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:modelDefinition id="C1" name="http://www.humanmetabolism.org/#C1">
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000250" />
+ </listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="C1__R0" name="http://www.humanmetabolism.org/#C1__R0" reversible="false" sboTerm="SBO:0000182" />
+ <reaction fast="false" id="C1__R" name="http://www.humanmetabolism.org/#C1__R" reversible="false" sboTerm="SBO:0000179">
+ <listOfProducts>
+ <speciesReference constant="true" name="http://www.humanmetabolism.org/#R__S1" species="A" stoichiometry="1" />
+ </listOfProducts>
+ </reaction>
</listOfReactions>
</comp:modelDefinition>
- <comp:modelDefinition id="C2" name="http://www.humanmetabolism.org/#C2">
- <listOfReactions>
- <reaction fast="false" id="C2__R0" name="http://www.humanmetabolism.org/#C2__R0" reversible="false" sboTerm="SBO:0000182" />
- </listOfReactions>
- </comp:modelDefinition>
+ <comp:modelDefinition id="C2" name="http://www.humanmetabolism.org/#C2"></comp:modelDefinition>
</comp:listOfModelDefinitions>
- <model id="topLevel_sbmlModel" metaid="b72d8a85-49c2-4896-8cba-e32c57b2a7a3">
+ <model id="topLevel_sbmlModel" metaid="_48edc37b-3c8e-41c4-8380-446f81b6c8cc">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -20,7 +26,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#b72d8a85-49c2-4896-8cba-e32c57b2a7a3">
+ <rdf:Description rdf:about="#_48edc37b-3c8e-41c4-8380-446f81b6c8cc">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
@@ -37,19 +43,5 @@
<comp:submodel comp:id="submodel__C1" comp:modelRef="C1" />
<comp:submodel comp:id="submodel__C2" comp:modelRef="C2" />
</comp:listOfSubmodels>
- <listOfCompartments>
- <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
- </listOfCompartments>
- <listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="C2__Y" initialAmount="1" name="http://www.humanmetabolism.org/#C2__Y"
- sboTerm="SBO:0000240" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" initialAmount="1" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000240" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="B" initialAmount="1" name="http://www.humanmetabolism.org/#B" sboTerm="SBO:0000240" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="C1__Y" initialAmount="1" name="http://www.humanmetabolism.org/#C1__Y"
- sboTerm="SBO:0000240" />
- </listOfSpecies>
- <listOfReactions>
- <reaction fast="false" id="R0" name="http://www.humanmetabolism.org/#R0" reversible="false" sboTerm="SBO:0000182" />
- </listOfReactions>
</model>
</sbml>
Added: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingASpecies_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingASpecies_roundtripping.xml (rev 0)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingASpecies_roundtripping.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='utf-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" comp:required="true" level="3" version="1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:modelDefinition id="C1" name="http://www.humanmetabolism.org/#C1">
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000250" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="C1__R" name="http://www.humanmetabolism.org/#C1__R" reversible="false" sboTerm="SBO:0000179">
+ <listOfProducts>
+ <speciesReference constant="true" name="http://www.humanmetabolism.org/#R__S1" species="A" stoichiometry="1" />
+ </listOfProducts>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
+ <comp:modelDefinition id="C2" name="http://www.humanmetabolism.org/#C2"></comp:modelDefinition>
+ </comp:listOfModelDefinitions>
+ <model id="topLevel_sbmlModel" metaid="c895961a-4648-4750-978f-bc6a5ed99617">
+ <notes>
+ <body xmlns="http://www.w3.org/1999/xhtml">
+ <p>This model has been automatically generated by BioPAX2SBML</p>
+ </body>
+ </notes>
+ <annotation>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
+ <rdf:Description rdf:about="#c895961a-4648-4750-978f-bc6a5ed99617">
+ <dc:creator>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <vCard:ORG rdf:parseType="Resource">
+ <vCard:Orgname>GSoC 2016, National Resource for Network Biology</vCard:Orgname>
+ </vCard:ORG>
+ </rdf:li>
+ </rdf:Bag>
+ </dc:creator>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ <comp:listOfSubmodels xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:submodel comp:id="submodel__C1" comp:modelRef="C1" />
+ <comp:submodel comp:id="submodel__C2" comp:modelRef="C2" />
+ </comp:listOfSubmodels>
+ </model>
+</sbml>
Added: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingASpecies_roundtripping2.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingASpecies_roundtripping2.xml (rev 0)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingASpecies_roundtripping2.xml 2016-10-24 04:34:11 UTC (rev 700)
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='utf-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" comp:required="true" level="3" version="1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:modelDefinition id="submodel__C1" name="http://www.humanmetabolism.org/#submodel__C1">
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000250" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="C1__R" name="http://www.humanmetabolism.org/#C1__R" reversible="false" sboTerm="SBO:0000179">
+ <listOfProducts>
+ <speciesReference constant="true" name="http://www.humanmetabolism.org/#C1__R__A" species="A" stoichiometry="1" />
+ </listOfProducts>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
+ <comp:modelDefinition id="submodel__C2" name="http://www.humanmetabolism.org/#submodel__C2"></comp:modelDefinition>
+ </comp:listOfModelDefinitions>
+ <model id="topLevel_sbmlModel" me...
[truncated message content] |
|
From: <tra...@us...> - 2016-08-19 07:12:54
|
Revision: 699
http://sourceforge.net/p/sbfc/code/699
Author: tramy-nguyen
Date: 2016-08-19 07:12:51 +0000 (Fri, 19 Aug 2016)
Log Message:
-----------
- generated new jar file for sbfc-1.3.7.jar
- created .sh files for biopax2sbml and sbml2biopax-gsoc16.sh
Modified Paths:
--------------
trunk/lib/sbfc-1.3.7.jar
Added Paths:
-----------
trunk/biopax2sbml.sh
trunk/sbml2biopax_gsoc16.sh
Added: trunk/biopax2sbml.sh
===================================================================
--- trunk/biopax2sbml.sh (rev 0)
+++ trunk/biopax2sbml.sh 2016-08-19 07:12:51 UTC (rev 699)
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+RESOLVE_LINK=`readlink -f $0`
+
+SBF_CONVERTER_HOME=`dirname ${RESOLVE_LINK}`
+
+
+${SBF_CONVERTER_HOME}/sbfConverter.sh BioPAXModel BioPAX2SBML $1
+
+
Property changes on: trunk/biopax2sbml.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/lib/sbfc-1.3.7.jar
===================================================================
(Binary files differ)
Added: trunk/sbml2biopax_gsoc16.sh
===================================================================
--- trunk/sbml2biopax_gsoc16.sh (rev 0)
+++ trunk/sbml2biopax_gsoc16.sh 2016-08-19 07:12:51 UTC (rev 699)
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+RESOLVE_LINK=`readlink -f $0`
+
+SBF_CONVERTER_HOME=`dirname ${RESOLVE_LINK}`
+
+
+${SBF_CONVERTER_HOME}/sbfConverter.sh SBMLModel SBML2BioPAX_Arman $1
+
+
Property changes on: trunk/sbml2biopax_gsoc16.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-08-18 04:46:18
|
Revision: 698
http://sourceforge.net/p/sbfc/code/698
Author: tramy-nguyen
Date: 2016-08-18 04:46:15 +0000 (Thu, 18 Aug 2016)
Log Message:
-----------
Added javadoc to majority of the methods in BioPAX2SBML and SBML2BioPAX Converter.
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/AKT_Signaling_Pathway.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/AKT_Signaling_Pathway_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping2.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/INOH_GPCR_signaling-pertussis_toxin-.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/INOH_GPCR_signaling-pertussis_toxin-_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/JNK.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/JNK_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/NetPath_1.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/NetPath_1_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-ecocyc-glycolysis.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-ecocyc-glycolysis_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-proteomics-protein-interaction.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-proteomics-protein-interaction_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-short-pathway.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-short-pathway_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-level1.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-level1_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-genetic-interaction.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-insulin-maturation.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-insulin-maturation_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-phosphorylation-reaction.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-protein-interaction.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-short-metabolic-pathway.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-short-metabolic-pathway_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-template-reaction.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSingleSpecies_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingElements_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/rna.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/rna_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testBiochemReactParticipantsLocationRule.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testBiochemReactParticipantsLocationRule_Transport.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testBiochemReactParticipantsLocationRule_Transport_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testBiochemReactParticipantsLocationRule_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testControlTypeRule.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testControlTypeRule_roundtripping.xml
trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML2_roundtripping2.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/biopax3-phosphorylation-reaction.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/biopax3-template-reaction.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/mapSpeciesSpecies_roundtripping.owl
Added Paths:
-----------
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping2_3.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSpeciesSpecies_roundtripping.xml
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML2_roundtripping2_3.owl
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-16 16:17:06 UTC (rev 697)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-18 04:46:15 UTC (rev 698)
@@ -36,6 +36,7 @@
import org.biopax.paxtools.model.BioPAXElement;
import org.biopax.paxtools.model.BioPAXFactory;
import org.biopax.paxtools.model.BioPAXLevel;
+import org.biopax.paxtools.model.level2.evidence;
import org.biopax.paxtools.model.level3.BiochemicalPathwayStep;
import org.biopax.paxtools.model.level3.BiochemicalReaction;
import org.biopax.paxtools.model.level3.Catalysis;
@@ -121,8 +122,13 @@
import org.sbml.jsbml.xml.XMLToken;
import org.sbml.jsbml.xml.XMLTriple;
-
-public class BioPAX2SBML extends GeneralConverter {
+/**
+ * Perform conversion from a BioPAX Model to an SBML Model.
+ *
+ * @author Tramy Nguyen
+ */
+public class BioPAX2SBML extends GeneralConverter
+{
//Format how SBML notes are set
private final static String notesStartString = "<notes><body xmlns=\"http://www.w3.org/1999/xhtml\">";
private final static String notesEndString = "</body></notes>";
@@ -131,10 +137,22 @@
private final static String biopax2sbml_Namespace = "http://sbfc.sf.net/biopax2sbml";
+ /**
+ * Verify if the character is a valid character ranging between A to Z or a to z.
+ *
+ * @param c - The character to check if it is a valid character
+ * @return True if the given character is valid. Return false otherwise
+ */
public static boolean isLetter(char c) { return ((c >= 97) && (c <= 122)) || ((c >= 65) && (c <= 90)); }
- public static boolean isDigit(char c) { return ((c >= 48) && (c <= 57)); }
+
+ /**
+ * Verify if the given character is a valid value ranging between 0 to 9.
+ *
+ * @param value - The value to check if it is a valid value
+ * @return True if the given character is valid. Return false otherwise
+ */
+ public static boolean isDigit(char value) { return ((value >= 48) && (value <= 57)); }
- //Indicate which SBML level and version to generate
protected final static int sbmlLevel = 3;
protected final static int sbmlVer = 1;
@@ -145,11 +163,8 @@
/** Map biopax entity RDFId to the sbml sbase object */
private Map<String, SBase> mappedEntities;
- /** Map the biopax RDFId to the list of Reactions that were split (i.e. A catalysis direction that did not match its controlled interaction direction)*/
- private Map<String, List<SBase>> mappedSplitReactions;
-
//Counter for creating new SBML id
- private int globalSBMLId;
+ private int globalSBMLIdCounter;
//GO ontology obo file path
private final static String goOntology_filePath = "src/org/sbfc/ontology/go.obo";
@@ -159,10 +174,10 @@
//The URL prefix for biopax RDFId
private String biopaxPrefixID;
- // creation of the link to the web services
+ // creation of the link to the MIRIAM web services
public static RegistryLocalProvider link;
- //Use to access any deprecated, old, or equivalent MIRIAM URI to the latest URIs
+ //Use to access any deprecated, old, or equivalent MIRIAM URI
static
{
link = new RegistryLocalProvider();
@@ -172,39 +187,42 @@
public BioPAX2SBML(){
super();
}
-
+
/**
* Perform conversion between the provided BioPAXModel to an SBML Model. If the provided BioPAX model is a level
* 1 or 2 model, the model will be translated to level 3 before starting the conversion from BioPAX to SBML. The
* SBML file produced will be in SBML level 3 version 1.
*
- * During the course of the conversion from BioPAX to SBML, all BioPAX PhysicalEntities are mapped to SBML Species.
+ * During the course of the conversion from BioPAX to SBML, each BioPAX Pathway will be mapped to its corresponding SBML Model.
+ * If the BioPAX Model has no Pathway, then the entire BioPAX Model will be converted into one SBML Model.
+ * All BioPAX PhysicalEntities and BioPAX Entity Genes are mapped to SBML Species.
* All BioPAX Control Interactions are mapped to SBML ModifierSpeciesReference
* All BioPAX Conversion Interactions and other Interactions that are not classified as Control or Conversion
- * Interactions will be mapped to SBML Reactions with its corresponding SBML Reactants, Products and SpeciesReference.
+ * Interactions will be mapped to SBML Reactions with its corresponding SBML reactants and products as SpeciesReference.
*
- * To retain the different types of PhysicalEntities and Interactions, these BioPAX entities are assigned to its
+ * To retain the different types of Entity that get converted to SBML elements, these BioPAX entities are assigned to its
* corresponding SBO terms when creating the different SBML elements.
*
+ * For any BioPAX entity fields that is unable to directly convert to an SBML elements' property, their value will be stored
+ * as the SBML elements' custom annotation.
+ *
* @param biopaxmodel - The BioPAX model to be converted to an SBML model
* @return The SBML model generated from the conversion of the biopax model
* @throws SBMLException
* @throws ConversionException
* @throws ReadModelException
*/
- public SBMLModel sbmlExport(BioPAXModel biopaxmodel) throws SBMLException, ConversionException, ReadModelException {
-
-
+ public SBMLModel sbmlExport(BioPAXModel biopaxmodel) throws SBMLException, ConversionException, ReadModelException
+ {
//Keep track of the mapping between biopax RDFId to SBML id;
biopaxId2sbmlId = new HashMap<String, String>();
sbmlId2biopaxId = new HashMap<String, String>();
//Counter for creating new SBML id
- globalSBMLId = 0;
+ globalSBMLIdCounter = 0;
//Store the mapping between biopax enties rdfId to the sbml object created for the corresponding biopax entity
mappedEntities = new HashMap<String, SBase>();
- mappedSplitReactions = new HashMap<String, List<SBase>>();
SBMLDocument sbmlDoc = new SBMLDocument(sbmlLevel, sbmlVer);
SBMLModel biopaxSBMLModel = new SBMLModel(sbmlDoc);
@@ -232,22 +250,26 @@
addSBMLHistory(sbmlModel, sbmlOrganization);
addSBMLNotes(sbmlModel, "This model has been automatically generated by BioPAX2SBML");
- //TODO: throw conversionException if invalid sbml file?
- // validateSBMLFile(sbmlDoc);
+ //validateSBMLFile(sbmlDoc);
return biopaxSBMLModel;
}
- private void validateSBMLFile(SBMLDocument document)
+ /**
+ * Validate the given SBML file and print all SBML SEVERITY Errors found in the document
+ *
+ * @param document - The SBMLDocument to be validated
+ */
+ public void validateSBMLFile(SBMLDocument document)
{
String message = "Validation Problems Found by Webservice\n";
document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.GENERAL_CONSISTENCY, true);
document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.IDENTIFIER_CONSISTENCY, true);
- // document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.OVERDETERMINED_MODEL, true);
- // document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.UNITS_CONSISTENCY, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.OVERDETERMINED_MODEL, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.UNITS_CONSISTENCY, true);
document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.MATHML_CONSISTENCY, true);
document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.SBO_CONSISTENCY, true);
- // document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.MODELING_PRACTICE, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.MODELING_PRACTICE, true);
long numberOfErrors = document.checkConsistency();
for (int i = 0; i < numberOfErrors; i++)
{
@@ -263,6 +285,15 @@
}
}
+ /**
+ * Convert all BioPAX Entity into its corresponding SBML Element.
+ * All BioPAX Entity that get converted to SBML Element will be stored into a map
+ * that will reference the BioPAX Entity RDFId to the the SBML Element created for the
+ * corresponding BioPAX Entity.
+ *
+ * @param bioModel - The BioPAX model containing all the BioPAX Elements to be converted to SBML Elements.
+ * @throws ConversionException
+ */
private void mappAllEntities(org.biopax.paxtools.model.Model bioModel) throws ConversionException
{
Set<Complex> complexList = bioModel.getObjects(Complex.class);
@@ -291,7 +322,8 @@
}
}
/*
- * Note: Complex has a property called complex.getComponent() that requires
+ * Note:
+ * Complex has a property called complex.getComponent() that requires
* a complexAssembly reaction to be created. For that reason, after all species
* are created from biopax entities, parse the complex.getComponent() to create
* the complexAssembly reaction to ensure that the SpeciesReference are created with
@@ -304,14 +336,13 @@
/*
- * Note: Collect all biopax interaction types to parse after iterating through all entities.
- * This will ensure that species are created first from PhysicalEntities and any Entites that
- * are not of type Interaction.
+ * Note:
+ * Collect all biopax interaction types to parse after iterating through all entities.
+ * This will ensure that species are created first from PhysicalEntities and Gene Entity
+ * Any Entites that are not of type Interaction.
*/
Set<Conversion> listOfConversions = new HashSet<Conversion>();
-
Set<Control> listOfControls = new HashSet<Control>();
-
List<Interaction> listOfInteractions = new ArrayList<Interaction>();
Set<Interaction> interactionEntityList = bioModel.getObjects(Interaction.class);
@@ -333,15 +364,19 @@
parseInteractions(listOfConversions, listOfControls, listOfInteractions);
}
-
+
/**
- * Convert a list of biopax pathways to its equivalent SBML Model. Each pathway model that gets created, will be represented in its own submodel.
- * If there are no pathway found within the biopax model, then a default pathway will be created and all entities within the biomodel will be parsed into the sbml document.
+ * Convert each pathway found in the BioPAX model to its equivalent SBML ModelDefinition by making use of the SBML Comp package.
+ * Any entities that are related to the corresponding pathway will be stored within the ModelDefinition as SBML Element.
+ * Each ModelDefinition will make use of replacements to map any SBML Elements that does not occur in the ModelDefinition or
+ * if the elements occur more than once in a ModelDefinition to the top level SBML Model.
+ * If a pathway act as a Controller to another entity, then a SBML Reaction will be created to represent this connection.
+ * If a pathway act as a Controlled to another entitty, then a SBML Species will be created to represent this connection.
*
- * @param bioModel - The biopax model that contains a set of pathways to convert to sbml models
- * @param sbmlDoc - the top level sbml document that will store all the references of the sbml submodels that were converted from each biopax pathways.
- * @return the top level sbml model that contains references to all sub models that were converted from each pathway
- * @throws ConversionException
+ * @param bioModel - The biopax model that hold a set of pathways to convert to sbml models
+ * @param sbmlDoc - The top level sbml document that will store all the references of the sbml submodels that were converted from each biopax pathways.
+ * @return The top level sbml model that contains references to all sub models that were converted from each pathway
+ * @throws ConversionException
*/
private org.sbml.jsbml.Model parsePathways(org.biopax.paxtools.model.Model bioModel, SBMLDocument sbmlDoc) throws ConversionException
{
@@ -457,10 +492,6 @@
Reaction reaction = (Reaction) mappedEntities.get(interactionEntity.getRDFId());
//Keep track of how many times this reaction occur in the each submodel
int count = 0;
- if(reaction == null)
- {
- System.out.println(reaction);
- }
if(compSBMLDocPlugin.isSetListOfModelDefinitions())
{
for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
@@ -539,20 +570,38 @@
return sbmlDoc.getModel();
}
+ /**
+ * Add the SBML species to the SBML model based on the species Id.
+ * The species Id will be used to look up the species from a map that holds all the
+ * SBML elements that were converted from a BioPAX model.
+ *
+ * @param speciesId - The id of the species to be added to the SBML Model
+ * @param sbmlModel - The SBML Model to add the species to
+ * @throws ConversionException
+ */
private void addSpecies(String speciesId, org.sbml.jsbml.Model sbmlModel) throws ConversionException
{
- Species species = (Species) getSBaseFromSBMLId(speciesId);
- if(sbmlModel.getSpecies(species.getId()) == null)
+ Species species = (Species) getSBaseFromSBMLId(speciesId);
+ if(!sbmlModel.containsSpecies(species.getId()))
{
sbmlModel.addSpecies(species.clone());
Compartment compartment = (Compartment) getSBaseFromSBMLId(species.getCompartment());
- if(sbmlModel.getCompartment(compartment.getId()) == null)
+ if(!sbmlModel.containsCompartment(compartment.getId()))
{
sbmlModel.addCompartment(compartment.clone());
}
}
}
+ /**
+ * Add the SBML reaction to the SBML model based on the reaction Id.
+ * The reaction Id will be used to look up the reaction from a map that holds all the
+ * SBML elements that were converted from a BioPAX model.
+ *
+ * @param reactionId - The id of the reaction to be added to the SBML Model
+ * @param sbmlModel - The SBML Model to add the reaction to
+ * @throws ConversionException
+ */
private void addReaction(String reactionId, org.sbml.jsbml.Model sbmlModel) throws ConversionException
{
Reaction reaction = (Reaction) getSBaseFromSBMLId(reactionId);
@@ -630,6 +679,13 @@
return sbmlModel;
}
+ /**
+ * Convert a list of pathway components to its corresponding SBML Elements.
+ *
+ * @param entityList - The list of pathway components
+ * @param sbmlModel - The SBML model to store the converted pathway components
+ * @throws ConversionException
+ */
private void parsePathwayComponents(Set<org.biopax.paxtools.model.level3.Process> entityList, org.sbml.jsbml.Model sbmlModel) throws ConversionException
{
for(Entity entity : entityList)
@@ -638,6 +694,13 @@
}
}
+ /**
+ * Convert the pathway component to its corresponding SBML Element.
+ *
+ * @param entity - The pathway component to be converted to an SBML Element
+ * @param sbmlModel - The SBML model to store the converted pathway components
+ * @throws ConversionException
+ */
private void parsePathwayComponent(Entity entity, org.sbml.jsbml.Model sbmlModel) throws ConversionException
{
if(entity instanceof Interaction)
@@ -668,6 +731,12 @@
}
}
+ /**
+ * Convert a list of pathway steps to its corresponding SBML Elements.
+ * @param pathwayStepList - The list of pathway steps
+ * @param sbmlModel - The SBML model to store the converted pathway components
+ * @throws ConversionException
+ */
private void parsePathwayStep(Set<PathwayStep> pathwayStepList, org.sbml.jsbml.Model sbmlModel) throws ConversionException
{
for(PathwayStep pathwayStep : pathwayStepList)
@@ -679,7 +748,7 @@
{
parsePathwayComponent(biochemPathwayStep.getStepConversion(), sbmlModel);
}
- }
+ }
if(pathwayStep.getStepProcess() != null && pathwayStep.getStepProcess().size() > 0)
{
parsePathwayComponents(pathwayStep.getStepProcess(), sbmlModel);
@@ -694,7 +763,7 @@
/**
* Returns the SBase object based on the SBML id.
- * If an SBase object can't be found based from the given id, then this method will throw a ConversionException.
+ * If an SBase object can't be found based on the given id, then this method will throw a ConversionException.
*
* @param id - The SBase object id
* @return The SBase object
@@ -711,11 +780,11 @@
}
}
throw new ConversionException("Unable to locate a species with this biopax entity id in the sbmlId2biopaxId table : " + id);
-
}
+
/**
- * Converts the given Pathway to an SBML model within the given SBMLDocument.
- * If no pathway exist and the pathway parameter is null, then a default SBML model is created
+ * Converts a Pathway to an SBML model within an SBMLDocument.
+ * If no pathway exist and the pathway parameter is null, then a default SBML model is created.
*
* @param pathway - The pathway to be converted to an SBML model
* @param sbmlDoc - The SBMLDocument to store the SBML model
@@ -757,17 +826,13 @@
sbmlModel.setName(sbmlModelName);
}
- // sbmlModel.setTimeUnits(UnitDefinition.TIME);
- // sbmlModel.setVolumeUnits(UnitDefinition.VOLUME);
- // sbmlModel.setSubstanceUnits(UnitDefinition.SUBSTANCE);
-
return sbmlModel;
}
/**
* Inserts the history of where or whom this SBML model is generated from
*
- * @param sbmlModel - The SBMLModel to add the SBML history in
+ * @param sbmlModel - The SBML Model to add the SBML history in
* @param organization - The name of the organization that generated this SBML model
*/
private void addSBMLHistory(org.sbml.jsbml.Model sbmlModel, String organization)
@@ -780,12 +845,12 @@
}
/**
- * Add the provided notes to the provided SBML model
+ * Add the provided notes to the SBML model
*
* @param sbmlModel - The SBML model to add the notes to
* @param sbmlNotes - The notes to be added to the SBML model
*/
- private void addSBMLNotes(org.sbml.jsbml.Model sbmlModel, String sbmlNotes)
+ public void addSBMLNotes(org.sbml.jsbml.Model sbmlModel, String sbmlNotes)
{
StringBuffer notes = new StringBuffer(notesStartString);
notes.append(String.format("<p>" + sbmlNotes + "</p>"));
@@ -800,9 +865,19 @@
}
}
+ /**
+ * Convert each xref into cvterm annotation to add onto the SBML element.
+ *
+ * @param xrefList - A list of xref elements to be converted to a list of cvterms
+ * @param sbase - The SBML element to add the cvterm to
+ * @return The last UnificationXref id parsed
+ */
private String parseXref(Set<Xref> xrefList, SBase sbase)
{
+ //Hold annotation for xref
List<CVTerm> cvtermList = new ArrayList<CVTerm>();
+
+ //Hold the custom annotation for xref comment property
List<XMLNode> annotatedList = new ArrayList<XMLNode>();
String topLevel_cvtermURI = parseXref(xrefList, cvtermList, annotatedList);
@@ -825,13 +900,13 @@
}
/**
- * Convert each xref element into a cvterm.
- * If the xref element contains a comment property, then a customize annotation is created and stored in the provided annotatinList.
+ * Convert each xref element into a cvterm. The cvterm will then get stored in the provided cvtermList.
+ * If the xref element contains a comment property, then a customize annotation is created and stored in the provided annotationList.
*
* @param xrefList - A list of xref elements to be converted to a list of cvterms
* @param cvtermList - the list of cvterms to store the converted xref elements to
* @param annotationList - the list of XMLNode to store the customized annotations found on each xref comment property
- * @return The unification xref id found from the given xref elements.
+ * @return The UnificationXref id found from the given xref elements.
*/
private String parseXref(Set<Xref> xrefList, List<CVTerm> cvtermList, List<XMLNode> annotationList)
{
@@ -843,6 +918,7 @@
//Each xref stored as annotation -> cvterms -> resources
if(xref instanceof RelationshipXref)
{
+ //TODO: Qualifier for RelationshipXref TBD
RelationshipXref relationshipXref = (RelationshipXref) xref;
xrefId = addXref(relationshipXref, Qualifier.BQB_UNKNOWN, cvtermList);
}
@@ -927,12 +1003,27 @@
}
+ /**
+ * Create a CVTerm with the given qualifier type and resouce value.
+ *
+ * @param qualifierType - The qualifier type of the CVTerm
+ * @param id - The resouce value for the CVTerm
+ * @return The CVTerm created based on the Qualifier type and resource value
+ */
private CVTerm createCVTerm(Qualifier qualifierType, String id)
{
CVTerm cvterm = new CVTerm(qualifierType, id);
return cvterm;
}
+ /**
+ * Convert the BioPAX entity to an SBML species.
+ * An SBO Term is given to the species to indicate what BioPAX entity was converted.
+ *
+ * @param entity - The BioPAX entity to be converted into its corresponding SBML Species
+ * @return The species converted from the given Biopax entity
+ * @throws ConversionException
+ */
private Species parseEntity(Entity entity) throws ConversionException
{
Species sbmlSpecies = createSpecies(entity);
@@ -950,6 +1041,13 @@
return sbmlSpecies;
}
+ /**
+ * Convert the BioPAX Complex component property to create an SBML Reaction with the product as the complex,
+ * the reactant as the complex component.
+ *
+ * @param complex - The complex to convert the complexComponent property
+ * @throws ConversionException
+ */
private void parseComplexComponent(Complex complex) throws ConversionException
{
if(complex.getComponent().size() > 0)
@@ -961,7 +1059,7 @@
SpeciesReference product = createSpeciesReferences(complex);
caReaction.addProduct(product.clone());
- ListOf<SpeciesReference> reactantList = getSpeciesReferences(complex.getComponent(), complex.getComponentStoichiometry());
+ ListOf<SpeciesReference> reactantList = addSpeciesReferences(complex.getComponent(), complex.getComponentStoichiometry());
caReaction.setListOfReactants(reactantList);
sbmlId2biopaxId.put(caReaction.getId(), complexAssembly.getRDFId());
@@ -970,11 +1068,16 @@
}
+ /**
+ * Convert each evidence object into its assigned custom annotation.
+ * Each evidence xref and evidenceCode property will be converted to CVTerm annotations.
+ *
+ * @param evidenceList - A list of evidence ojects to be its assigned custom annotation
+ * @param sbmlElement - The SBML element to assign the custom annotation to
+ */
private void parseEvidence(Set<Evidence> evidenceList, SBase sbmlElement)
{
List<CVTerm> evidenceCode_cvterms = new ArrayList<CVTerm>();
- List<CVTerm> confidence_cvterms = new ArrayList<CVTerm>();
- List<CVTerm> experimentalForm_cvterms = new ArrayList<CVTerm>();
for(Evidence evidence: evidenceList)
{
@@ -1001,7 +1104,7 @@
}
String evidenceResouce = (evidenceCode_unifXrefId != null) ? evidenceCode_unifXrefId : evidence.getRDFId();
-
+ //TODO: Determine QualifierType for Evidence entity
CVTerm evidence_CVTerm = createCVTerm(Qualifier.BQB_UNKNOWN, evidenceResouce);
for(CVTerm ec_term : evidenceCode_cvterms)
@@ -1013,6 +1116,14 @@
}
}
+ /**
+ * Convert a list of EvidenceCode into its own SBML custom annotation
+ * Each evidenceCode xref will be converted to its corresponding cvterms.
+ *
+ * @param evidenceCodeList - The list of EvidenceCode to convert into CVTerms
+ * @param evidenceCode_cvterms - A list of CVTerm to store the EvidenceCode xref that were converted to CVTerms
+ * @return The last UnificationXref parsed from the EvidenceCode Xref property
+ */
private String parseEvidenceCode(Set<EvidenceCodeVocabulary> evidenceCodeList, List<CVTerm> evidenceCode_cvterms)
{
String unifXref_id = null;
@@ -1025,6 +1136,7 @@
{
unifXref_id = parseXref(evidenceCode.getXref(), cvtermList, annotationList);
}
+ //TODO: parse the other properties for evidenceCode as custom Annotation
}
return unifXref_id;
@@ -1069,7 +1181,8 @@
/**
* Return a valid SBML id from the provided biopax entity.
- * @param entity - the biopax entity where the valid SBML id is be retrieved from
+ *
+ * @param entity - The biopax entity where the valid SBML id is be retrieved from
* @return the valid SBML id
*/
private String getValidSBMLId(BioPAXElement entity)
@@ -1128,7 +1241,7 @@
String temp = result;
while(biopaxId2sbmlId.containsKey(temp))
{
- temp = result + '_' + ++globalSBMLId;
+ temp = result + '_' + ++globalSBMLIdCounter;
}
result = temp;
@@ -1137,6 +1250,13 @@
}
+ /**
+ * Convert the given BioPAX entity into its equivalent SBML Species
+ * Any entity field that is unable to convert to species field will be stored as custom annotation.
+ *
+ * @param entity - The entity to be converted into a species
+ * @return The species that was converted from the given BioPAX entity
+ */
private Species createSpecies(Entity entity)
{
String speciesId = getValidSBMLId(entity);
@@ -1150,7 +1270,10 @@
sbmlSpecies.setName(speciesName);
}
- /* Default settings for sbml species required attributes
+ /* Note:
+ * TODO: Determine where these default fields should be stored in BioPAX model
+ *
+ * Default settings for sbml species required attributes
* setHasOnlySubstanceUnits(true) :
* Specify if species is an amount or a concentration.
* Consider the species to be amount so true is set.
@@ -1160,6 +1283,9 @@
* setConstant(false) :
* Specify if species ever change.
* Assume species is usually never change, true is set
+ * setInitialAmount();
+ * Species initial amount
+ * Assume species amount is currently always one.
*/
sbmlSpecies.setHasOnlySubstanceUnits(true);
sbmlSpecies.setBoundaryCondition(false);
@@ -1181,6 +1307,12 @@
return sbmlSpecies;
}
+ /**
+ * Create a custom annotation to store on the sbml element.
+ *
+ * @param sbmlElement - The SBML element to store the custom annotation on
+ * @return - the custom annotation that was created
+ */
private XMLNode createCustomBiopaxAnnotation(SBase sbmlElement)
{
XMLNamespaces nameSpace = new XMLNamespaces();
@@ -1193,6 +1325,23 @@
return biopax2sbml_node;
}
+ /**
+ * Create a custom annotation based on the given URI and name
+ * For example:
+ * <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ * <Xref uri="http://identifiers.org/go/GO:0005654">
+ * <comments>
+ * ... (free text coming from the biopax comments)
+ * </comments>
+ * </Xref>
+ * </biopax2sbml>
+ *
+ * In this case, annotatedObjectName = Xref and annotatedObjectURI = http://identifiers.org/go/GO:0005654
+ *
+ * @param annotatedObjectName - The name of the custom annotation
+ * @param annotatedObjectURI - The URI of the custom annotaiton
+ * @return The custom annotation containing the given annotated URI and name
+ */
private XMLNode createAnnotatedObject(String annotatedObjectName, String annotatedObjectURI)
{
XMLAttributes attribute = new XMLAttributes();
@@ -1204,6 +1353,21 @@
return xref_node;
}
+ /**
+ * Create the XMLNode to set the custom annotation "comments" section
+ * For example:
+ * <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ * <Xref uri="http://identifiers.org/go/GO:0005654">
+ * <comments>
+ * ... (free text coming from the biopax comments)
+ * </comments>
+ * </Xref>
+ * </biopax2sbml>
+ * In this case, property = comments
+ *
+ * @param property - Name of the annotated property
+ * @return - The XMLNode for the comments property
+ */
private XMLNode createAnnotatedProperty(String property)
{
XMLTriple comment_triple = new XMLTriple(property);
@@ -1212,15 +1376,44 @@
return comment_node;
}
+ /**
+ * Create the XMLNode to set the custom annotation for everything in the comments section
+ * For example:
+ * <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ * <Xref uri="http://identifiers.org/go/GO:0005654">
+ * <comments>
+ * ... (free text coming from the biopax comments)
+ * </comments>
+ * </Xref>
+ * </biopax2sbml>
+ * In this case, value is anything annotated for Xref comment property
+ *
+ * @param value - the custom annotation value
+ * @return The XMLNode of the custom annotaiton value
+ */
private XMLNode createAnnotatedValue(String value)
{
XMLNode notes = new XMLNode(value);
return notes;
}
+ /**
+ * Converts the following entity to an SBML Compartment.
+ * If the entity is of type PhysicalEntity, the CellularLocationVocabulary of the
+ * PhysicalEntity will directly convert to its corresponding Compartment.
+ * If the CellularLocationVocabulary make use of the GO ontology as the entity RDFId,
+ * then the GO ontology will be use to look up the necessary information to convert to its
+ * equivalent SBML compartment.
+ *
+ * If the entity is not of type PhysicalEntity, then a default SBML compartment will be created.
+ *
+ * @param entity - The entity to create its corresponding SBML Compartment
+ * @return The SBML Compartment that was converted from the given entity.
+ */
private Compartment createCompartment(Entity entity)
{
org.sbml.jsbml.Compartment finalCompartment = null;
+
/*
* Note: Only PhysicalEntity contains cellularLocation.
* Since Gene is the only Entity type that is not a PhysicalEntity, the compartment for
@@ -1316,11 +1509,18 @@
return finalCompartment;
}
+ /**
+ * The given CellularLocationVocabulary contains and RDFId with GO ontology term.
+ * This method will parse the ontology term to get the ontology name to set the compartment id.
+ *
+ * @param cellLocVocab - The CellularLocationVocabulary that has a GO ontology as the RDFId.
+ * @return The SBML Compartment id converted from the CellularLocationVocabulary uri
+ */
private String parseCellularLocationURL(CellularLocationVocabulary cellLocVocab)
{
String compartmentId = null;
- //Update this compartment uri with the latest uri it the uri is deprecated.
+ //Update this compartment uri with the latest uri if the uri is deprecated.
String cellLocOfficialURI = link.getMiriamURI(cellLocVocab.getRDFId());
if(cellLocOfficialURI != null)
@@ -1344,6 +1544,11 @@
return compartmentId;
}
+ /**
+ * Create a default compartment.
+ *
+ * @return The default compartment that was created
+ */
private Compartment getDefaultCompartment()
{
org.sbml.jsbml.Compartment defaultCompartment = new Compartment("defaultCompartment", sbmlLevel, sbmlVer);
@@ -1362,7 +1567,7 @@
{
if (entity instanceof Complex)
{
- sbmlSpecies.setSBOTerm(SBO.getComplex()); //253
+ sbmlSpecies.setSBOTerm(SBO.getComplex());
}
else if (entity instanceof Protein)
{
@@ -1370,7 +1575,7 @@
}
else if (entity instanceof Dna)
{
- sbmlSpecies.setSBOTerm(SBO.getDNA()); //251
+ sbmlSpecies.setSBOTerm(SBO.getDNA());
}
else if (entity instanceof DnaRegion)
{
@@ -1378,7 +1583,7 @@
}
else if (entity instanceof Rna)
{
- sbmlSpecies.setSBOTerm(SBO.getRNA()); //250
+ sbmlSpecies.setSBOTerm(SBO.getRNA());
}
else if (entity instanceof RnaRegion)
{
@@ -1386,7 +1591,7 @@
}
else if (entity instanceof SmallMolecule)
{
- sbmlSpecies.setSBOTerm(SBO.getSmallMolecule()); //247
+ sbmlSpecies.setSBOTerm(SBO.getSmallMolecule());
}
else
{
@@ -1409,11 +1614,20 @@
}
}
+ /**
+ * Convert the list of Conversion, Control, and Interaction into its corresponding SBML element.
+ *
+ * @param listOfConversions - The list of Conversions to be converted to SBML Reactions
+ * @param listOfControls - The list of Control to be converted to SBML ModifiersSpeciesReference
+ * @param listOfInteractions - The list of Interaction to be converted to SBML Reactions
+ * @throws ConversionException
+ */
private void parseInteractions(Set<Conversion> listOfConversions, Set<Control> listOfControls, List<Interaction> listOfInteractions) throws ConversionException
{
/*
- * Note: Interaction must be parsed in this order: Interaction, Conversion, then Control
- * This will ensure all reactions are created first before ModifierSpeciesReference are created.
+ * Note:
+ * Interaction must be parsed in this order: Interaction, Conversion, then Control
+ * This will ensure all reactions are created first before ModifierSpeciesReference are created.
*/
for(Interaction interaction : listOfInteractions)
{
@@ -1430,6 +1644,12 @@
}
+ /**
+ * Converts the given BioPAX Interaction to its equivalent SBML Reaction
+ *
+ * @param entity - The Interaction Entity to be converted to SBML Reaction
+ * @throws ConversionException
+ */
private void parsePhysicalInteraction(Interaction entity) throws ConversionException
{
Reaction reaction = createReaction(entity);
@@ -1456,13 +1676,22 @@
mappedEntities.put(entity.getRDFId(), reaction);
}
+ /**
+ * Convert all property for a TemplateReaction Entity to store in its equivalent SBML reaction property.
+ * For example, templateReaction.getTemplate() will be parsed as to its equivalent SBML reaction modifier.
+ * A ConversionException will be thrown if there are no modifiers or products created from this TemplateReaction
+ *
+ * @param templateReaction - The TemplateReaction to parse its property
+ * @param reaction - The corresponding reaction of the given TemplateReaction
+ * @throws ConversionException
+ */
private void parseTemplateReaction(TemplateReaction templateReaction, Reaction reaction) throws ConversionException
{
boolean hasModifier = false;
boolean hasProduct = false; templateReaction.getTemplateDirection();
reaction.setReversible(false);
/*
- * TODO: handel how to parse templateDirection()
+ * TODO: handel how to parse templateDirection(). Use Custom Annotation
*/
if(templateReaction.getTemplateDirection() == TemplateDirectionType.FORWARD)
{
@@ -1483,7 +1712,7 @@
if(templateReaction.getProduct() != null)
{
- ListOf<SpeciesReference> productList = getSpeciesReferences(templateReaction.getProduct(), null);
+ ListOf<SpeciesReference> productList = addSpeciesReferences(templateReaction.getProduct(), null);
for(SpeciesReference product : productList)
{
reaction.addProduct(product.clone());
@@ -1497,6 +1726,15 @@
}
+ /**
+ * Converts all property of a MolecularInteraction to its corresponding SBML reaction property.
+ * For example, all MolecularInteraction participants will be converted to its corresponding reaction
+ * reactant and product.
+ *
+ * @param molecularInteraction - The MolecularInteraction to parse its property
+ * @param reaction - The corresponding reaction of the given MolecularInteraction
+ * @throws ConversionException
+ */
private void parseMolecularInteraction(MolecularInteraction molecularInteraction, Reaction reaction) throws ConversionException
{
Set<Entity> participants = molecularInteraction.getParticipant();
@@ -1510,6 +1748,15 @@
}
}
+ /**
+ * Converts all property of a GeneticInteraction to its corresponding SBML reaction property.
+ * For example, all GeneticInteraction participants will be converted to its corresponding reaction
+ * reactant and product.
+ *
+ * @param geneticInteraction - The GeneticInteraction to parse its property
+ * @param reaction - The corresponding reaction of the given GeneticInteraction
+ * @throws ConversionException
+ */
private void parseGeneticInteraction(GeneticInteraction geneticInteraction, Reaction reaction) throws ConversionException
{
Set<Entity> participants = geneticInteraction.getParticipant();
@@ -1549,10 +1796,16 @@
}
else //This must be Interaction
{
- reaction.setSBOTerm(SBO.getInteraction()); //231
+ reaction.setSBOTerm(SBO.getInteraction());
}
}
+ /**
+ * Convert a conversion interaction to its corresponding SBML reaction
+ *
+ * @param conversion - The Conversion Interaction to be converted to its corresponding SBML reaction
+ * @throws ConversionException
+ */
private void parseConversionInteraction(Conversion conversion) throws ConversionException
{
Reaction reaction = createReaction(conversion);
@@ -1570,11 +1823,11 @@
reaction.setReversible(false);
//Parse for reactant/substrate
- ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
+ ListOf<SpeciesReference> reactants = addSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
reaction.setListOfReactants(reactants);
//Parse for product
- ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
+ ListOf<SpeciesReference> products = addSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
reaction.setListOfProducts(products);
}
else if(conversion.getConversionDirection() != null && conversion.getConversionDirection().equals(ConversionDirectionType.REVERSIBLE))
@@ -1582,11 +1835,11 @@
reaction.setReversible(true);
//Parse for reactant/substrate
- ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
+ ListOf<SpeciesReference> reactants = addSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
reaction.setListOfReactants(reactants);
//Parse for product
- ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
+ ListOf<SpeciesReference> products = addSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
reaction.setListOfProducts(products);
}
else if( conversion.getConversionDirection() != null && (conversion.getConversionDirection().equals(ConversionDirectionType.RIGHT_TO_LEFT)))
@@ -1594,11 +1847,11 @@
reaction.setReversible(false);
//Parse for reactant/substrate
- ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
+ ListOf<SpeciesReference> reactants = addSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
reaction.setListOfReactants(reactants);
//Parse for product
- ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
+ ListOf<SpeciesReference> products = addSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
reaction.setListOfProducts(products);
}
else
@@ -1606,11 +1859,11 @@
reaction.setReversible(false);
//Parse for reactant/substrate
- ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
+ ListOf<SpeciesReference> reactants = addSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
reaction.setListOfReactants(reactants);
//Parse for product
- ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
+ ListOf<SpeciesReference> products = addSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
reaction.setListOfProducts(products);
}
@@ -1618,7 +1871,8 @@
if(conversion instanceof BiochemicalReaction)
{
BiochemicalReaction biochemicalReaction = (BiochemicalReaction) conversion;
- biochemicalReaction.getECNumber(); //TODO: Look at circadian_clock.owl example for term eCNumber
+ //TODO: Look at circadian_clock.owl example for term eCNumber. Store as annotation
+ biochemicalReaction.getECNumber();
}
setConversion_SBO(conversion, reaction);
@@ -1627,6 +1881,12 @@
mappedEntities.put(conversion.getRDFId(), reaction);
}
+ /**
+ * Convert a control interaction to its corresponding reaction's ModifierSpeciesReferences
+ *
+ * @param control - The control interaction to be converted to ModifierSpeciesReference
+ * @throws ConversionException
+ */
private void parseControlInteraction(Control control) throws ConversionException
{
//parse controlled to create reactions. There must be 0 or more Controlled
@@ -1637,7 +1897,7 @@
}
/**
- * Create ModifierSpeciesReference from the controller interactions found within the given control interaction.
+ * Creates ModifierSpeciesReferences from the controller interactions found within the given control interaction.
* The ModifierSpeciesReference created are stored within the given list of reactions.
* For each ModifierSpeciesReference that are created, SBO terms are associated based on the controlType found
* within the given control interaction.
@@ -1739,6 +1999,15 @@
}
}
+ /**
+ * Converts all property of a BiochemicalReaction to its corresponding SBML reaction property.
+ * For example, all BiochemicalReaction DeltaG will be converted to LocalParameter assigned to a
+ * KineticLaw of the corresponing SBML reaction
+ *
+ * @param biochemReaction - The BiochemicalReaction to parse its property
+ * @param reaction - The corresponding reaction of the given BiochemicalReaction
+ * @param controlledReaction
+ */
private void parseBiochemicalReaction(BiochemicalReaction biochemReaction, Reaction controlledReaction)
{
KineticLaw kineticLaw = controlledReaction.createKineticLaw();
@@ -1779,7 +2048,7 @@
* @param kineticLaw - The KineticLaw that the LocalParameter will be added on
* @param value - The value to set the LocalParameter to
* @param SBOvalue - The SBO value the LocalParameter should be set to
- * @return
+ * @return The LocalParameter created
*/
private LocalParameter addLocalParameter(String id, KineticLaw kineticLaw, double value, int SBOvalue)
{
@@ -1789,6 +2058,13 @@
return localParam;
}
+ /**
+ * Converts a BioPAX entity to a SBML ModifierSpeciesReference.
+ *
+ * @param entity - The BioPAX entity to be converted to a ModifierSpeciesReference
+ * @return - the ModifierSpeciesReference that was created from the given Entity. Null is returned if no ModifierSpeciesReference could be created.
+ * @throws ConversionException
+ */
private ModifierSpeciesReference createModifierSpeciesReference(Entity entity) throws ConversionException
{
ModifierSpeciesReference modifierSpecies = new ModifierSpeciesReference(sbmlLevel, sbmlVer);
@@ -1809,8 +2085,8 @@
/**
* Assign the given SBML ModifierSpeciesReference with its corresponding SBO terms determined by the given biopax control interaction
*
- * @param control - the control interaction to assign the SBO terms
- * @param modifierSpecies - the reaction where the SBO term will be assigned to
+ * @param control - The control interaction to assign the SBO terms
+ * @param modifierSpecies - The reaction where the SBO term will be assigned to
*/
private void setControl_SBO(Control control, ModifierSpeciesReference modifierSpecies)
{
@@ -1836,8 +2112,8 @@
/**
* Assign the SBML ModifierSpeciesReference with its corresponding SBO terms determined by the biopax controlType interaction
*
- * @param controlType - the ControlType to assign the SBO terms
- * @param modifierSpecies - the reaction where the SBO term will be assigned to
+ * @param controlType - The ControlType to assign the SBO terms
+ * @param modifierSpecies - The reaction where the SBO term will be assigned to
*/
private void setControlType_SBO(ControlType controlType, ModifierSpeciesReference modifierSpecies)
{
@@ -1847,42 +2123,48 @@
}
else if(controlType.equals(ControlType.ACTIVATION_ALLOSTERIC))
{
- modifierSpecies.setSBOTerm(SBO.getAllostericActivator()); //636
+ modifierSpecies.setSBOTerm(SBO.getAllostericActivator());
}
else if(controlType.equals(ControlType.ACTIVATION_NONALLOSTERIC))
{
- modifierSpecies.setSBOTerm(SBO.getNonAllostericActivator()); //637
+ modifierSpecies.setSBOTerm(SBO.getNonAllostericActivator());
}
else if(controlType.equals(ControlType.INHIBITION))
{
- modifierSpecies.setSBOTerm(SBO.getInhibitor()); //SBO:0000020
+ modifierSpecies.setSBOTerm(SBO.getInhibitor());
}
else if(controlType.equals(ControlType.INHIBITION_ALLOSTERIC))
{
- modifierSpecies.setSBOTerm(SBO.getAllostericInhibitor()); //639
+ modifierSpecies.setSBOTerm(SBO.getAllostericInhibitor());
}
else if(controlType.equals(ControlType.INHIBITION_COMPETITIVE))
{
- modifierSpecies.setSBOTerm(SBO.getCompetitiveInhibitor()); //206
+ modifierSpecies.setSBOTerm(SBO.getCompetitiveInhibitor());
}
else if(controlType.equals(ControlType.INHIBITION_IRREVERSIBLE))
{
- modifierSpecies.setSBOTerm(SBO.getIrreversibleInhibitor()); //638
+ modifierSpecies.setSBOTerm(SBO.getIrreversibleInhibitor());
}
else if(controlType.equals(ControlType.INHIBITION_NONCOMPETITIVE))
{
- modifierSpecies.setSBOTerm(SBO.getNonCompetitiveInhibitor()); //207
+ modifierSpecies.setSBOTerm(SBO.getNonCompetitiveInhibitor());
}
else if(controlType.equals(ControlType.INHIBITION_OTHER))
{
- modifierSpecies.setSBOTerm(SBO.getInhibitor()); //20
+ modifierSpecies.setSBOTerm(SBO.getInhibitor());
}
else if(controlType.equals(ControlType.INHIBITION_UNCOMPETITIVE))
{
- modifierSpecies.setSBOTerm(SBO.getUncompetitiveInhibitor()); //640
+ modifierSpecies.setSBOTerm(SBO.getUncompetitiveInhibitor());
}
}
+ /**
+ *
+ * @param control
+ * @return
+ * @throws ConversionException
+ */
private List<Reaction> parseControlledInteraction(Control control) throws ConversionException
{
Set<org.biopax.paxtools.model.level3.Process> controlledList = control.getControlled();
@@ -1909,7 +2191,7 @@
else
{
//throw new ConversionException("The reaction for " + process.getRDFId() + " must exist in the SBML Document in order to create a ModifierSpeciesReference for the Controlled interaction.");
- //TODO: if process is a pathway, then TBD how to determine. Maybe set as annotations?
+ //TODO: if process is a pathway, then TBD. Maybe set as annotations?
}
}
@@ -1919,8 +2201,17 @@
return controlledReactionList;
}
-
- private ListOf<org.sbml.jsbml.SpeciesReference> getSpeciesReferences(Set<PhysicalEntity> participants, Set<Stoichiometry> stoichiometrySet) throws ConversionException
+ /**
+ * Converts a list of PhysicalEntity to SBML SpeciesReference.
+ * If there exist a stoichiometry value reference to a physicalEntity, the corresponding
+ * SpeciesReference will have its stoichiometry values assigned to it.
+ *
+ * @param participants - The list of PhysicalEntity to be converted to SpeciesReferences
+ * @param stoichiometrySet - The list of Stoiciometry Values to check if the physicalEntity is assigned to any of the given PhysicalEntity
+ * @return The list of SpeciesReference that were converted from the the list of PhysicalEntity
+ * @throws ConversionException
+ */
+ private ListOf<org.sbml.jsbml.SpeciesReference> addSpeciesReferences(Set<PhysicalEntity> participants, Set<Stoichiometry> stoichiometrySet) throws ConversionException
{
ListOf<SpeciesReference> speciesReferencesList = new ListOf<SpeciesReference>(sbmlLevel, sbmlVer);
@@ -1936,7 +2227,13 @@
return speciesReferencesList;
}
-
+ /**
+ * Convert the given BioPAX entity to a SBML SpeciesReference.
+ *
+ * @param participant - The BioPAX entity to be converted to a SpeciesReference
+ * @return The SpeciesReference converted from the given Entity
+ * @throws ConversionException If the species to be referenced onto the SpeciesReference object could not be found.
+ */
private org.sbml.jsbml.SpeciesReference createSpeciesReferences(Entity participant) throws ConversionException
{
SpeciesReference speciesReference = new SpeciesReference(sbmlLevel, sbmlVer);
@@ -2010,6 +2307,12 @@
return (stoichiometry > 0 && stoichiometry < Double.MAX_VALUE);
}
+ /**
+ * Converts the given Biopax Interaction to a SBML Reaction.
+ *
+ * @param entity - The Interaction to be converted to an SBML Reaction
+ * @return The reaction that was converted from the given Interaction Entity
+ */
private Reaction createReaction(Interaction entity)
{
Reaction reaction = new Reaction(getValidSBMLId(entity), sbmlLevel, sbmlVer);
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-16 16:17:06 UTC (rev 697)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-18 04:46:15 UTC (rev 698)
@@ -49,14 +49,29 @@
import org.sbml.jsbml.ext.comp.SBaseRef;
import org.sbml.jsbml.ext.comp.Submodel;
+/**
+ * Perform conversion from a SBML Document to a BioPAX Model.
+ *
+ * @author Tramy Nguyen
+ */
+public class SBML2BioPAXConverter
+{
-public class SBML2BioPAXConverter {
-
private static Log log = LogFactory.getLog(SBML2BioPAXConverter.class);
private SBML2BioPAXUtilities sbml2BioPAXUtilities = new SBML2BioPAXUtilities();
+ /** SBML model id - SBase element id - SBase replacing element id - flag to indicate if replacement */
private Map<String, Map<String, Map<String, Boolean>>> mapReplacements;
+ /**
+ * Store the mapping of the replacing SBML element with the element that is being used for
+ * replacements and replacedBy that occur in ModelDefinition and the top level SBML Model.
+ *
+ * @param submodelId - The id of the SBML model that stores the sbml element to be replaced
+ * @param sbaseElementId - The id of the SBML element that will be replaced
+ * @param replacingElementId - The id of the replacing element
+ * @param isReplacement - Indicate if the SBML element to be replaced is a replacement or a replacedBy
+ */
private void mapReplacement(String submodelId, String sbaseElementId, String replacingElementId, Boolean isReplacement)
{
//replacement : (pathway, entity) -> entity (replacing element)
@@ -73,6 +88,25 @@
mapReplacements.get(submodelId).get(sbaseElementId).put(replacingElementId, isReplacement);
}
+ /**
+ * Perform conversion between the provided SBMLDocument to a BioPAX Model.
+ * The current implementation assume that the given SBMLDocument must contain 2 level of hierarchy.
+ * The BioPAX Model produced will be level 3.
+ *
+ * During the course of the conversion from SBML to BioPAX, each corresponding SBase will be
+ * converted to its corresponding BioPAX entity based on the SBase elements' SBO term.
+ * All SBML species will be converted to either a Gene or any if the PhysicalEntity type.
+ * All SBML reactions will be converted to either a Conversion Interaction or an Interaction that is not of type Control.
+ * All SBML ModifierSpeciesReference of a reaction will be converted to a ControlInteraction.
+ * All SBML SpeciesReference will be converted to an entity that takes part in a BioPAX Interaction participants.
+ *
+ * For any SBML SBase properties that have been custom annotated to retain information that can't be mapped to
+ * a BioPAX entity property, the SBase properties will be parsed to fill in the missing information for the
+ * BioPAX entity that was unable to map directly from SBase element to BioPAX entity.
+ *
+ * @param sbmlDocument - The SBMLDocument model to be converted to an BioPAX model
+ * @return The BioPAX model generated from the conversion of the SBMLDocument model
+ */
public Model convert(SBMLDocument sbmlDocument)
{
mapReplacements = new HashMap<String, Map<String, Map<String, Boolean>>>();
@@ -106,7 +140,7 @@
// Species -> PhysicalEntities [start]
log.debug("There are " + sbmlTopLevelModel.getNumSpecies() + " reactions in the SBML model. ");
- parseSpecies(sbmlTopLevelModel, bpModel, pathway, null);
+ parseSpecies(sbmlTopLevelModel, bpModel, null);
// Reactions -> Conversions [start]
log.debug("There are " + sbmlTopLevelModel.getNumReactions() + " reactions in the SBML model. ");
@@ -120,7 +154,7 @@
{
ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(submodel.getModelRef());
Pathway subModelPathway = sbml2BioPAXUtilities.convertPathway(bpModel, submodel);
- parseSpecies(submodelDef.getModel(), bpModel, subModelPathway, submodel.getId());
+ parseSpecies(submodelDef.getModel(), bpModel, submodel.getId());
parseReactions(submodelDef.getModel(), bpModel, subModelPathway, submodel.getId());
}
}
@@ -140,6 +174,15 @@
return bpModel;
}
+ /**
+ * Check to see if the SBML element has a replacement or a replacedBy to be parsed.
+ * If so, then store the element to be replaced, the model the replacing element is contained in, and
+ * the replacing element.
+ *
+ * @param namedSbase - the SBML element to check if it has any replacement and replaceBy to parse
+ * @param compSBMLDocPlugin - The comp SBML Document Plugin that stores the ModelDefinition
+ * @param compTopLevelModel - The comp top level model that stores all the subModels referencing the ModelDefinition
+ */
private void parseSBMLCompElements(AbstractNamedSBase namedSbase, CompSBMLDocumentPlugin compSBMLDocPlugin, CompModelPlugin compTopLevelModel)
{
CompSBasePlugin replacementPlugin = (CompSBasePlugin) namedSbase.getPlugin(CompConstants.shortLabel);
@@ -161,9 +204,18 @@
}
}
+ /**
+ * Map the replacement or replacedBy object
+ *
+ * @param topLevelSpecies - The replacing element
+ * @param replacementElement - The element to be replaced
+ * @param refSubmodel - The submodel where the element to be replaced is contained in
+ * @param compSBMLDocPlugin - The comp SBML Document Plugin that stores the ModelDefinition
+ * @param isReplacingElement - Indicate whether the element is a replacement or replacedBy element
+ */
private void parseReplacement(AbstractNamedSBase topLevelSpecies, SBaseRef replacementElement, Submodel refSubmodel, CompSBMLDocumentPlugin compSBMLDocPlugin, boolean isReplacingElement)
{
- //go to the referenced submodel
+ //Go to the referenced submodel
if(refSubmodel != null && refSubmodel.isSetModelRef())
{
ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(refSubmodel.getModelRef());
@@ -174,23 +226,26 @@
Port modelPort = compSubModel.getPort(replacementElement.getPortRef());
if(modelPort != null)
{
-// Species submodelSpecies = submodelDef.getSpecies(modelPort.getIdRef());
-// if(submodelSpecies != null)
-// {
- mapReplacement(refSubmodel.getId(), modelPort.getIdRef(), topLevelSpecies.getId(), true);
-// }
+ mapReplacement(refSubmodel.getId(), modelPort.getIdRef(), topLevelSpecies.getId(), isReplacingElement);
}
}
- //TODO: check of idRef and look up modelDef using idRef
if(replacementElement.isSetIdRef())
{
String id = replacementElement.getIdRef();
- mapReplacement(refSubmodel.getId(), id, topLevelSpecies.getId(), true);
+ mapReplacement(refSubmodel.getId(), id, topLevelSpecies.getId(), isReplacingElement);
}
}
}
- private void parseSpecies(org.sbml.jsbml.Model sbmlModel, Model bpModel, Pathway pathway, String submodelId){
+ /**
+ * Convert a species to its corresponding BioPAX entity based on the species assigned SBO term.
+ *
+ * @param sbmlModel - The SBML model the species is contained in.
+ * @param bpModel - The BioPAX model to store the converted BioPAX entity.
+ * @param submodelId - The submodel id that this species is contained in.
+ */
+ private void parseSpecies(org.sbml.jsbml.Model sbmlModel, Model bpModel, String submodelId)
+ {
for(Species species: sbmlModel.getListOfSpecies())
{
@@ -200,6 +255,14 @@
}
}
+ /**
+ * Convert a reaction to its corresponding ...
[truncated message content] |
|
From: <tra...@us...> - 2016-08-16 16:17:08
|
Revision: 697
http://sourceforge.net/p/sbfc/code/697
Author: tramy-nguyen
Date: 2016-08-16 16:17:06 +0000 (Tue, 16 Aug 2016)
Log Message:
-----------
- modified parsing of reaction in SBML2BioPAX to create default Conversion Interaction instead of Interaction.
Modified Paths:
--------------
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingElements_roundtripping.xml
trunk/test/org/sbfc/test/resources/replacingElements.xml
trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/replacingElements_roundtripping.owl
Added Paths:
-----------
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSingleSpecies_roundtripping.xml
trunk/test/org/sbfc/test/resources/mapSingleSpecies.xml
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/mapSingleSpecies_roundtripping.owl
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-16 08:23:28 UTC (rev 696)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-16 16:17:06 UTC (rev 697)
@@ -76,7 +76,7 @@
public Model convert(SBMLDocument sbmlDocument)
{
mapReplacements = new HashMap<String, Map<String, Map<String, Boolean>>>();
-
+ boolean isControlledReaction = false;
org.sbml.jsbml.Model sbmlTopLevelModel = sbmlDocument.getModel();
CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDocument.getPlugin(CompConstants.shortLabel);
@@ -209,7 +209,7 @@
Interaction interaction = sbml2BioPAXUtilities.convertReaction(bpModel, reaction, submodelId, mapReplacements);
if(pathway != null)
{
- pathway.addPathwayComponent(interaction);
+ pathway.addPathwayComponent(interaction);
}
// Modifiers -> Control reactions [start]
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-16 08:23:28 UTC (rev 696)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-16 16:17:06 UTC (rev 697)
@@ -185,7 +185,7 @@
*/
int reactionSBOValue = reaction.getSBOTerm();
- if(SBO.isChildOf(reactionSBOValue, SBO.getInteraction()))
+ if(SBO.isChildOf(reactionSBOValue, SBO.getInteraction())) //TODO: change getInteraction to SBO.getOccurringEntityRepresentation
{
if(SBO.isChildOf(reactionSBOValue, SBO.getTransportWithBiochemicalReaction()))
{
@@ -237,13 +237,13 @@
}
else
{
- interactionReactionClass = Interaction.class;
+ interactionReactionClass = Conversion.class;
}
} //End of Interaction
else
{
//Default Interaction type
- interactionReactionClass = Interaction.class;
+ interactionReactionClass = Conversion.class;
}
@@ -689,7 +689,6 @@
}
else if(SBO.isChildOf(speciesSBOValue, SBO.getRNASegment()))
{
- System.out.println(species.getSBOTerm());
physicalEntity = convertSpeciesToSPE(bpModel, RnaRegion.class, RnaRegionReference.class, species);
}
else if(SBO.isChildOf(speciesSBOValue, SBO.getSmallMolecule()))
Added: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSingleSpecies_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSingleSpecies_roundtripping.xml (rev 0)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/mapSingleSpecies_roundtripping.xml 2016-08-16 16:17:06 UTC (rev 697)
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='utf-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" comp:required="true" level="3" version="1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:modelDefinition id="model2" name="http://www.humanmetabolism.org/#model2"></comp:modelDefinition>
+ <comp:modelDefinition id="model1" name="http://www.humanmetabolism.org/#model1">
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" initialAmount="1" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000250" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="model1__R" name="http://www.humanmetabolism.org/#model1__R" reversible="false" sboTerm="SBO:0000179">
+ <listOfProducts>
+ <speciesReference constant="true" name="http://www.humanmetabolism.org/#R__S1" species="A" stoichiometry="1" />
+ </listOfProducts>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
+ </comp:listOfModelDefinitions>
+ <model id="topLevel_sbmlModel" metaid="_3c732148-1106-4ea3-8c20-ca448490347c">
+ <notes>
+ <body xmlns="http://www.w3.org/1999/xhtml">
+ <p>This model has been automatically generated by BioPAX2SBML</p>
+ </body>
+ </notes>
+ <annotation>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
+ <rdf:Description rdf:about="#_3c732148-1106-4ea3-8c20-ca448490347c">
+ <dc:creator>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <vCard:ORG rdf:parseType="Resource">
+ <vCard:Orgname>GSoC 2016, National Resource for Network Biology</vCard:Orgname>
+ </vCard:ORG>
+ </rdf:li>
+ </rdf:Bag>
+ </dc:creator>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ <comp:listOfSubmodels xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:submodel comp:id="submodel__model2" comp:modelRef="model2" />
+ <comp:submodel comp:id="submodel__model1" comp:modelRef="model1" />
+ </comp:listOfSubmodels>
+ </model>
+</sbml>
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingElements_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingElements_roundtripping.xml 2016-08-16 08:23:28 UTC (rev 696)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingElements_roundtripping.xml 2016-08-16 16:17:06 UTC (rev 697)
@@ -1,18 +1,48 @@
<?xml version='1.0' encoding='utf-8' standalone='no'?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" comp:required="true" level="3" version="1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
- <comp:modelDefinition id="model2" name="http://www.humanmetabolism.org/#model2">
+ <comp:modelDefinition id="model1" name="http://www.humanmetabolism.org/#model1">
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="model1__Y" initialAmount="1" name="http://www.humanmetabolism.org/#model1__Y"
+ sboTerm="SBO:0000250" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" initialAmount="1" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000252" />
+ </listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="model2__R" name="http://www.humanmetabolism.org/#model2__R" sboTerm="SBO:0000231" />
+ <reaction fast="false" id="model1__R" name="http://www.humanmetabolism.org/#model1__R" reversible="false" sboTerm="SBO:0000176">
+ <listOfReactants>
+ <speciesReference constant="true" name="http://www.humanmetabolism.org/#R__Y" species="model1__Y" stoichiometry="1" />
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" name="http://www.humanmetabolism.org/#R__X" species="A" stoichiometry="1" />
+ </listOfProducts>
+ </reaction>
</listOfReactions>
</comp:modelDefinition>
- <comp:modelDefinition id="model1" name="http://www.humanmetabolism.org/#model1">
+ <comp:modelDefinition id="model2" name="http://www.humanmetabolism.org/#model2">
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="model2__Y" initialAmount="1" name="http://www.humanmetabolism.org/#model2__Y"
+ sboTerm="SBO:0000251" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="B" initialAmount="1" name="http://www.humanmetabolism.org/#B" sboTerm="SBO:0000635" />
+ </listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="model1__R" name="http://www.humanmetabolism.org/#model1__R" sboTerm="SBO:0000231" />
+ <reaction fast="false" id="model2__R" name="http://www.humanmetabolism.org/#model2__R" reversible="false" sboTerm="SBO:0000176">
+ <listOfReactants>
+ <speciesReference constant="true" name="http://www.humanmetabolism.org/#R__Y1" species="model2__Y" stoichiometry="1" />
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" name="http://www.humanmetabolism.org/#R__X1" species="B" stoichiometry="1" />
+ </listOfProducts>
+ </reaction>
</listOfReactions>
</comp:modelDefinition>
</comp:listOfModelDefinitions>
- <model id="topLevel_sbmlModel" metaid="_95b18638-e7b8-417c-aab9-4c75fcee7e49">
+ <model id="topLevel_sbmlModel" metaid="_28cb0005-2139-4171-bc6f-738fc4f28c7a">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -20,7 +50,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#_95b18638-e7b8-417c-aab9-4c75fcee7e49">
+ <rdf:Description rdf:about="#_28cb0005-2139-4171-bc6f-738fc4f28c7a">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
@@ -34,22 +64,38 @@
</rdf:RDF>
</annotation>
<comp:listOfSubmodels xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:submodel comp:id="submodel__model1" comp:modelRef="model1" />
<comp:submodel comp:id="submodel__model2" comp:modelRef="model2" />
- <comp:submodel comp:id="submodel__model1" comp:modelRef="model1" />
</comp:listOfSubmodels>
<listOfCompartments>
- <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="Cell" comp:submodelRef="submodel__model1" />
+ <comp:replacedElement comp:idRef="Cell" comp:submodelRef="submodel__model2" />
+ </comp:listOfReplacedElements>
+ </compartment>
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="model1__Y" initialAmount="1" name="http://www.humanmetabolism.org/#model1__Y"
- sboTerm="SBO:0000250" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" initialAmount="1" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000252" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="B" initialAmount="1" name="http://www.humanmetabolism.org/#B" sboTerm="SBO:0000635" />
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="model2__Y" initialAmount="1" name="http://www.humanmetabolism.org/#model2__Y"
- sboTerm="SBO:0000251" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" initialAmount="1" name="http://www.humanmetabolism.org/#A" sboTerm="SBO:0000252">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="A" comp:submodelRef="submodel__model1" />
+ </comp:listOfReplacedElements>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="B" initialAmount="1" name="http://www.humanmetabolism.org/#B" sboTerm="SBO:0000635">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="B" comp:submodelRef="submodel__model2" />
+ </comp:listOfReplacedElements>
+ </species>
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="R" name="http://www.humanmetabolism.org/#R" sboTerm="SBO:0000231" />
+ <reaction fast="false" id="R" name="http://www.humanmetabolism.org/#R" reversible="false" sboTerm="SBO:0000176">
+ <listOfReactants>
+ <speciesReference constant="true" name="http://www.humanmetabolism.org/#R__A" species="A" stoichiometry="1" />
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" name="http://www.humanmetabolism.org/#R__B" species="B" stoichiometry="1" />
+ </listOfProducts>
+ </reaction>
</listOfReactions>
</model>
</sbml>
Added: trunk/test/org/sbfc/test/resources/mapSingleSpecies.xml
===================================================================
--- trunk/test/org/sbfc/test/resources/mapSingleSpecies.xml (rev 0)
+++ trunk/test/org/sbfc/test/resources/mapSingleSpecies.xml 2016-08-16 16:17:06 UTC (rev 697)
@@ -0,0 +1,70 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" arrays:required="true" comp:required="true" fbc:required="false" layout:required="false" level="3" version="1" xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1">
+ <comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:modelDefinition fbc:strict="false" id="C2">
+ <comp:listOfPorts xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="input__S2" comp:idRef="S2" sboTerm="SBO:0000600"/>
+ </comp:listOfPorts>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" size="1" spatialDimensions="3"/>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S2" initialAmount="0" sboTerm="SBO:0000250"/>
+ </listOfSpecies>
+ </comp:modelDefinition>
+ <comp:modelDefinition fbc:strict="false" id="C1">
+ <comp:listOfPorts xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="output__S1" comp:idRef="S1" sboTerm="SBO:0000601"/>
+ </comp:listOfPorts>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" size="1" spatialDimensions="3"/>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S1" initialAmount="0" metaid="iBioSim3" sboTerm="SBO:0000250"/>
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction compartment="Cell" fast="false" id="R" metaid="iBioSim1" reversible="false" sboTerm="SBO:0000179">
+ <listOfProducts>
+ <speciesReference constant="true" species="S1" stoichiometry="1"/>
+ </listOfProducts>
+ <kineticLaw>
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <ci> kf </ci>
+ </math>
+ <listOfLocalParameters>
+ <localParameter id="kf" value="0.1"/>
+ <localParameter id="kr" value="1"/>
+ </listOfLocalParameters>
+ </kineticLaw>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
+ </comp:listOfModelDefinitions>
+ <model fbc:strict="false" id="mapSpeciesSpecies" >
+ <comp:listOfSubmodels xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:submodel comp:id="model1" comp:modelRef="C1"/>
+ <comp:submodel comp:id="model2" comp:modelRef="C2"/>
+ </comp:listOfSubmodels>
+ <comp:listOfPorts xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
+ </comp:listOfPorts>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" size="1" spatialDimensions="3">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:portRef="compartment__Cell" comp:submodelRef="model1"/>
+ <comp:replacedElement comp:portRef="compartment__Cell" comp:submodelRef="model2"/>
+ </comp:listOfReplacedElements>
+ </compartment>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" initialAmount="0" sboTerm="SBO:0000250">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:portRef="input__S2" comp:submodelRef="model2"/>
+ </comp:listOfReplacedElements>
+ <comp:replacedBy xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" comp:portRef="output__S1" comp:submodelRef="model1"/>
+ </species>
+ </listOfSpecies>
+ </model>
+</sbml>
\ No newline at end of file
Modified: trunk/test/org/sbfc/test/resources/replacingElements.xml
===================================================================
--- trunk/test/org/sbfc/test/resources/replacingElements.xml 2016-08-16 08:23:28 UTC (rev 696)
+++ trunk/test/org/sbfc/test/resources/replacingElements.xml 2016-08-16 16:17:06 UTC (rev 697)
@@ -1,75 +1,302 @@
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" arrays:required="true" comp:required="true" fbc:required="false" layout:required="false" level="3" version="1" xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1">
<comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
- <comp:modelDefinition fbc:strict="false" id="C2">
- <comp:listOfPorts xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
- <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
- <comp:port comp:id="input__X" comp:idRef="X" sboTerm="SBO:0000600"/>
- </comp:listOfPorts>
- <listOfCompartments>
- <compartment constant="true" id="Cell" size="1" spatialDimensions="3"/>
- </listOfCompartments>
- <listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="X" initialAmount="0" sboTerm="SBO:0000635"/>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="Y" initialAmount="0" sboTerm="SBO:0000251"/>
- </listOfSpecies>
- <listOfReactions>
- <reaction compartment="Cell" fast="false" id="R" reversible="false">
- <listOfReactants>
- <speciesReference constant="true" species="Y" stoichiometry="1"/>
- </listOfReactants>
- <listOfProducts>
- <speciesReference constant="true" species="X" stoichiometry="1"/>
- </listOfProducts>
- <kineticLaw>
- <math xmlns="http://www.w3.org/1998/Math/MathML">
- <ci> kf </ci>
- </math>
- <listOfLocalParameters>
- <localParameter id="kf" value="0.1"/>
- <localParameter id="kr" value="1"/>
- </listOfLocalParameters>
- </kineticLaw>
- </reaction>
- </listOfReactions>
- </comp:modelDefinition>
- <comp:modelDefinition fbc:strict="false" id="C1">
- <comp:listOfPorts xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
- <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
- <comp:port comp:id="output__X" comp:idRef="X" sboTerm="SBO:0000601"/>
- </comp:listOfPorts>
- <listOfCompartments>
- <compartment constant="true" id="Cell" size="1" spatialDimensions="3"/>
- </listOfCompartments>
- <listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="X" initialAmount="0" sboTerm="SBO:0000252"/>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="Y" initialAmount="0" sboTerm="SBO:0000250"/>
- </listOfSpecies>
- <listOfReactions>
- <reaction compartment="Cell" fast="false" id="R" reversible="false">
- <listOfReactants>
- <speciesReference constant="true" species="Y" stoichiometry="1"/>
- </listOfReactants>
- <listOfProducts>
- <speciesReference constant="true" species="X" stoichiometry="1"/>
- </listOfProducts>
- <kineticLaw>
- <math xmlns="http://www.w3.org/1998/Math/MathML">
- <cn type="integer"> 0 </cn>
- </math>
- </kineticLaw>
- </reaction>
- </listOfReactions>
- </comp:modelDefinition>
+ <comp:modelDefinition id="C1" metaid="C1__iBioSim1">
+ <comp:listOfPorts>
+ <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="output__X" comp:idRef="X" sboTerm="SBO:0000601"/>
+ </comp:listOfPorts>
+ <layout:listOfLayouts xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <layout:layout layout:id="C1__iBioSim">
+ <layout:dimensions layout:depth="0" layout:height="425" layout:width="1070"/>
+ <layout:listOfCompartmentGlyphs>
+ <layout:compartmentGlyph layout:compartment="Cell" layout:id="Glyph__Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:compartmentGlyph>
+ </layout:listOfCompartmentGlyphs>
+ <layout:listOfSpeciesGlyphs>
+ <layout:speciesGlyph layout:id="Glyph__X" layout:species="X">
+ <layout:boundingBox>
+ <layout:position layout:x="5" layout:y="70"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__Y" layout:species="Y">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="20" layout:width="50"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ </layout:listOfSpeciesGlyphs>
+ <layout:listOfReactionGlyphs>
+ <layout:reactionGlyph layout:id="Glyph__Y__Reaction__X">
+ <layout:boundingBox>
+ <layout:position layout:x="25" layout:y="90"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__Y__Reaction__X" layout:role="product" layout:speciesGlyph="Glyph__X">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="25" layout:y="10"/>
+ <layout:end layout:x="25" layout:y="90"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ </layout:listOfReactionGlyphs>
+ <layout:listOfTextGlyphs>
+ <layout:textGlyph layout:graphicalObject="Glyph__Cell" layout:id="TextGlyph__Cell" layout:text="Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__X" layout:id="TextGlyph__X" layout:text="X">
+ <layout:boundingBox>
+ <layout:position layout:x="5" layout:y="70"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__Y" layout:id="TextGlyph__Y" layout:text="Y">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="20" layout:width="50"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ </layout:listOfTextGlyphs>
+ </layout:layout>
+ </layout:listOfLayouts>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" size="1" spatialDimensions="3"/>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="X" initialAmount="0" metaid="C1__iBioSim2" sboTerm="SBO:0000252"/>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="Y" initialAmount="0" metaid="C1__iBioSim3" sboTerm="SBO:0000250"/>
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction compartment="Cell" fast="false" id="R" metaid="C1__iBioSim4" reversible="false" sboTerm="SBO:0000176">
+ <listOfReactants>
+ <speciesReference constant="true" species="Y" stoichiometry="1"/>
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" species="X" stoichiometry="1"/>
+ </listOfProducts>
+ <kineticLaw>
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <cn type="integer"> 0 </cn>
+ </math>
+ </kineticLaw>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
+ <comp:modelDefinition id="C2" metaid="C2__iBioSim5">
+ <comp:listOfPorts>
+ <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="input__X" comp:idRef="X" sboTerm="SBO:0000600"/>
+ </comp:listOfPorts>
+ <layout:listOfLayouts xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <layout:layout layout:id="C2__iBioSim">
+ <layout:dimensions layout:depth="0" layout:height="425" layout:width="1070"/>
+ <layout:listOfCompartmentGlyphs>
+ <layout:compartmentGlyph layout:compartment="Cell" layout:id="Glyph__Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:compartmentGlyph>
+ </layout:listOfCompartmentGlyphs>
+ <layout:listOfSpeciesGlyphs>
+ <layout:speciesGlyph layout:id="Glyph__X" layout:species="X">
+ <layout:boundingBox>
+ <layout:position layout:x="20" layout:y="30"/>
+ <layout:dimensions layout:height="20" layout:width="50"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__Y" layout:species="Y">
+ <layout:boundingBox>
+ <layout:position layout:x="40" layout:y="80"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ </layout:listOfSpeciesGlyphs>
+ <layout:listOfReactionGlyphs>
+ <layout:reactionGlyph layout:id="Glyph__Y__Reaction__X">
+ <layout:boundingBox>
+ <layout:position layout:x="45" layout:y="40"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__Y__Reaction__X" layout:role="product" layout:speciesGlyph="Glyph__X">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="90" layout:y="95"/>
+ <layout:end layout:x="45" layout:y="40"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ </layout:listOfReactionGlyphs>
+ <layout:listOfTextGlyphs>
+ <layout:textGlyph layout:graphicalObject="Glyph__Cell" layout:id="TextGlyph__Cell" layout:text="Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__X" layout:id="TextGlyph__X" layout:text="X">
+ <layout:boundingBox>
+ <layout:position layout:x="20" layout:y="30"/>
+ <layout:dimensions layout:height="20" layout:width="50"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__Y" layout:id="TextGlyph__Y" layout:text="Y">
+ <layout:boundingBox>
+ <layout:position layout:x="40" layout:y="80"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ </layout:listOfTextGlyphs>
+ </layout:layout>
+ </layout:listOfLayouts>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" size="1" spatialDimensions="3"/>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="X" initialAmount="0" metaid="C2__iBioSim2" sboTerm="SBO:0000635"/>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="Y" initialAmount="0" metaid="C2__iBioSim3" sboTerm="SBO:0000251"/>
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction compartment="Cell" fast="false" id="R" metaid="C2__iBioSim4" reversible="false" sboTerm="SBO:0000176">
+ <listOfReactants>
+ <speciesReference constant="true" species="Y" stoichiometry="1"/>
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" species="X" stoichiometry="1"/>
+ </listOfProducts>
+ <kineticLaw>
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <ci> kf </ci>
+ </math>
+ <listOfLocalParameters>
+ <localParameter id="kf" value="0.1"/>
+ <localParameter id="kr" value="1"/>
+ </listOfLocalParameters>
+ </kineticLaw>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
</comp:listOfModelDefinitions>
- <model fbc:strict="false" id="replacingElements" >
+ <model id="replacingElements" metaid="iBioSim7">
<comp:listOfSubmodels xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
- <comp:submodel comp:id="model1" comp:modelRef="C1"/>
- <comp:submodel comp:id="model2" comp:modelRef="C2"/>
+ <comp:submodel comp:id="model1" comp:modelRef="C1" metaid="iBioSim1"/>
+ <comp:submodel comp:id="model2" comp:modelRef="C2" metaid="iBioSim5"/>
</comp:listOfSubmodels>
<comp:listOfPorts xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
</comp:listOfPorts>
+ <layout:listOfLayouts xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <layout:layout layout:id="iBioSim">
+ <layout:dimensions layout:depth="0" layout:height="425" layout:width="1070"/>
+ <layout:listOfAdditionalGraphicalObjects>
+ <layout:generalGlyph layout:id="Glyph__model1" layout:reference="model1">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="40" layout:width="80"/>
+ </layout:boundingBox>
+ </layout:generalGlyph>
+ <layout:generalGlyph layout:id="Glyph__model2" layout:reference="model2">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="250"/>
+ <layout:dimensions layout:height="40" layout:width="80"/>
+ </layout:boundingBox>
+ </layout:generalGlyph>
+ </layout:listOfAdditionalGraphicalObjects>
+ <layout:listOfCompartmentGlyphs>
+ <layout:compartmentGlyph layout:compartment="Cell" layout:id="Glyph__Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:compartmentGlyph>
+ </layout:listOfCompartmentGlyphs>
+ <layout:listOfSpeciesGlyphs>
+ <layout:speciesGlyph layout:id="Glyph__A" layout:species="A">
+ <layout:boundingBox>
+ <layout:position layout:x="20" layout:y="90"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__B" layout:species="B">
+ <layout:boundingBox>
+ <layout:position layout:x="15" layout:y="180"/>
+ <layout:dimensions layout:height="20" layout:width="50"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ </layout:listOfSpeciesGlyphs>
+ <layout:listOfReactionGlyphs>
+ <layout:reactionGlyph layout:id="Glyph__A__Reaction__B">
+ <layout:boundingBox>
+ <layout:position layout:x="40" layout:y="190"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__A__Reaction__B" layout:role="product" layout:speciesGlyph="Glyph__B">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="40" layout:y="110"/>
+ <layout:end layout:x="40" layout:y="190"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ </layout:listOfReactionGlyphs>
+ <layout:listOfTextGlyphs>
+ <layout:textGlyph layout:graphicalObject="Glyph__Cell" layout:id="TextGlyph__Cell" layout:text="Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__A" layout:id="TextGlyph__A" layout:text="A">
+ <layout:boundingBox>
+ <layout:position layout:x="20" layout:y="90"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__B" layout:id="TextGlyph__B" layout:text="B">
+ <layout:boundingBox>
+ <layout:position layout:x="15" layout:y="180"/>
+ <layout:dimensions layout:height="20" layout:width="50"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__model1" layout:id="TextGlyph__model1" layout:text="model1">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="40" layout:width="80"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__model2" layout:id="TextGlyph__model2" layout:text="model2">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="250"/>
+ <layout:dimensions layout:height="40" layout:width="80"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ </layout:listOfTextGlyphs>
+ </layout:layout>
+ </layout:listOfLayouts>
<listOfCompartments>
<compartment constant="true" id="Cell" size="1" spatialDimensions="3">
<comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
@@ -79,17 +306,17 @@
</compartment>
</listOfCompartments>
<listOfSpecies>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" initialAmount="0" sboTerm="SBO:0000252">
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" initialAmount="0" metaid="iBioSim2" sboTerm="SBO:0000252">
<comp:replacedBy xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" comp:portRef="output__X" comp:submodelRef="model1"/>
</species>
- <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="B" initialAmount="0" sboTerm="SBO:0000635">
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="B" initialAmount="0" metaid="iBioSim3" sboTerm="SBO:0000635">
<comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:replacedElement comp:portRef="input__X" comp:submodelRef="model2"/>
</comp:listOfReplacedElements>
</species>
</listOfSpecies>
<listOfReactions>
- <reaction compartment="Cell" fast="false" id="R" reversible="false">
+ <reaction compartment="Cell" fast="false" id="R" metaid="iBioSim4" reversible="false" sboTerm="SBO:0000176">
<listOfReactants>
<speciesReference constant="true" species="A" stoichiometry="1"/>
</listOfReactants>
@@ -101,14 +328,14 @@
<ci> delataG </ci>
</math>
<listOfLocalParameters>
- <localParameter id="delataG" name="delta G prime0" sboTerm="SBO:0000581" value="1"/>
- <localParameter id="deltaH" name="delta h" sboTerm="SBO:0000573" value="2"/>
- <localParameter id="deltaS" name="delta S" sboTerm="SBO:0000577" value="3"/>
- <localParameter id="keq_ec" name="KEQ equilibrium constant" sboTerm="SBO:0000281" value="4"/>
- <localParameter id="keq_ionicStrength" name="KEQ Ionic Strength" sboTerm="SBO:0000623" value="5"/>
- <localParameter id="keq_pH" sboTerm="SBO:0000304" value="6"/>
- <localParameter id="keq_Mg" sboTerm="SBO:0000281" value="7"/>
- <localParameter id="keq_temperature" name="KEQ temperature" sboTerm="SBO:0000147" value="8"/>
+ <localParameter id="delataG" name="delta G prime0" value="1"/>
+ <localParameter id="deltaH" name="delta h" value="2"/>
+ <localParameter id="deltaS" name="delta S" value="3"/>
+ <localParameter id="keq_ec" name="KEQ equilibrium constant" value="4"/>
+ <localParameter id="keq_ionicStrength" name="KEQ Ionic Strength" value="5"/>
+ <localParameter id="keq_pH" value="6"/>
+ <localParameter id="keq_Mg" value="7"/>
+ <localParameter id="keq_temperature" name="KEQ temperature" value="8"/>
</listOfLocalParameters>
</kineticLaw>
</reaction>
Modified: trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java 2016-08-16 08:23:28 UTC (rev 696)
+++ trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java 2016-08-16 16:17:06 UTC (rev 697)
@@ -394,5 +394,19 @@
TestOWLFiles.saveSBMLModelToFile(sbfcSBMLModel, fileName+"_roundtripping");
}
+
+ @Test public void test_mapSingleSpecies_File()
+ {
+ String fileName = "mapSingleSpecies";
+ String xmlFile = "./test/org/sbfc/test/resources/" + fileName + ".xml";
+ org.biopax.paxtools.model.Model bioModel = readSBMLFiles(xmlFile);
+
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ printBioPAXModel(sbfcBiopaxModel.getModel());
+ saveBioModelToFile(bioModel, fileName + "_roundtripping");
+ SBMLModel sbfcSBMLModel = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ TestOWLFiles.saveSBMLModelToFile(sbfcSBMLModel, fileName+"_roundtripping");
+
+ }
}
Added: trunk/test/org/sbfc/test/sbml2biopax/outputFiles/mapSingleSpecies_roundtripping.owl
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/outputFiles/mapSingleSpecies_roundtripping.owl (rev 0)
+++ trunk/test/org/sbfc/test/sbml2biopax/outputFiles/mapSingleSpecies_roundtripping.owl 2016-08-16 16:17:06 UTC (rev 697)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rdf:RDF
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:owl="http://www.w3.org/2002/07/owl#"
+ xmlns:bp="http://www.biopax.org/release/biopax-level3.owl#"
+ xml:base="http://www.humanmetabolism.org/#">
+<owl:Ontology rdf:about="">
+ <owl:imports rdf:resource="http://www.biopax.org/release/biopax-level3.owl#" />
+</owl:Ontology>
+
+<bp:Stoichiometry rdf:ID="R__S1">
+ <bp:physicalEntity rdf:resource="#A" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:Pathway rdf:ID="model2">
+</bp:Pathway>
+
+<bp:Rna rdf:ID="A">
+ <bp:cellularLocation rdf:resource="#Cell" />
+</bp:Rna>
+
+<bp:Degradation rdf:ID="model1__R">
+ <bp:participantStoichiometry rdf:resource="#R__S1" />
+ <bp:right rdf:resource="#A" />
+ <bp:spontaneous rdf:datatype = "http://www.w3.org/2001/XMLSchema#boolean">false</bp:spontaneous>
+ <bp:conversionDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">LEFT_TO_RIGHT</bp:conversionDirection>
+</bp:Degradation>
+
+<bp:CellularLocationVocabulary rdf:ID="Cell">
+</bp:CellularLocationVocabulary>
+
+<bp:Pathway rdf:ID="model1">
+ <bp:pathwayComponent rdf:resource="#model1__R" />
+</bp:Pathway>
+</rdf:RDF>
\ No newline at end of file
Modified: trunk/test/org/sbfc/test/sbml2biopax/outputFiles/replacingElements_roundtripping.owl
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/outputFiles/replacingElements_roundtripping.owl 2016-08-16 08:23:28 UTC (rev 696)
+++ trunk/test/org/sbfc/test/sbml2biopax/outputFiles/replacingElements_roundtripping.owl 2016-08-16 16:17:06 UTC (rev 697)
@@ -9,10 +9,44 @@
<owl:imports rdf:resource="http://www.biopax.org/release/biopax-level3.owl#" />
</owl:Ontology>
+<bp:BiochemicalReaction rdf:ID="R">
+ <bp:participantStoichiometry rdf:resource="#R__A" />
+ <bp:participantStoichiometry rdf:resource="#R__B" />
+ <bp:deltaG rdf:resource="#R_deltaGId" />
+ <bp:right rdf:resource="#B" />
+ <bp:spontaneous rdf:datatype = "http://www.w3.org/2001/XMLSchema#boolean">false</bp:spontaneous>
+ <bp:left rdf:resource="#A" />
+ <bp:kEQ rdf:resource="#R_KPrimeId" />
+ <bp:conversionDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">LEFT_TO_RIGHT</bp:conversionDirection>
+</bp:BiochemicalReaction>
+
+<bp:KPrime rdf:ID="model2__R_KPrimeId">
+</bp:KPrime>
+
+<bp:Stoichiometry rdf:ID="R__A">
+ <bp:physicalEntity rdf:resource="#A" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:Pathway rdf:ID="model1">
+ <bp:pathwayComponent rdf:resource="#model1__R" />
+</bp:Pathway>
+
+<bp:Stoichiometry rdf:ID="R__B">
+ <bp:physicalEntity rdf:resource="#B" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:KPrime rdf:ID="model1__R_KPrimeId">
+</bp:KPrime>
+
<bp:Rna rdf:ID="model1__Y">
<bp:cellularLocation rdf:resource="#Cell" />
</bp:Rna>
+<bp:KPrime rdf:ID="R_KPrimeId">
+</bp:KPrime>
+
<bp:Pathway rdf:ID="model2">
<bp:pathwayComponent rdf:resource="#model2__R" />
</bp:Pathway>
@@ -21,27 +55,65 @@
<bp:cellularLocation rdf:resource="#Cell" />
</bp:Protein>
+<bp:DeltaG rdf:ID="R_deltaGId">
+</bp:DeltaG>
+
+<bp:Stoichiometry rdf:ID="R__Y">
+ <bp:physicalEntity rdf:resource="#model1__Y" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
<bp:RnaRegion rdf:ID="B">
<bp:cellularLocation rdf:resource="#Cell" />
</bp:RnaRegion>
-<bp:Interaction rdf:ID="R">
-</bp:Interaction>
-
<bp:Dna rdf:ID="model2__Y">
<bp:cellularLocation rdf:resource="#Cell" />
</bp:Dna>
-<bp:Interaction rdf:ID="model1__R">
-</bp:Interaction>
+<bp:Stoichiometry rdf:ID="R__X">
+ <bp:physicalEntity rdf:resource="#A" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+<bp:BiochemicalReaction rdf:ID="model1__R">
+ <bp:participantStoichiometry rdf:resource="#R__Y" />
+ <bp:participantStoichiometry rdf:resource="#R__X" />
+ <bp:deltaG rdf:resource="#model1__R_deltaGId" />
+ <bp:right rdf:resource="#A" />
+ <bp:spontaneous rdf:datatype = "http://www.w3.org/2001/XMLSchema#boolean">false</bp:spontaneous>
+ <bp:left rdf:resource="#model1__Y" />
+ <bp:kEQ rdf:resource="#model1__R_KPrimeId" />
+ <bp:conversionDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">LEFT_TO_RIGHT</bp:conversionDirection>
+</bp:BiochemicalReaction>
+
+<bp:DeltaG rdf:ID="model2__R_deltaGId">
+</bp:DeltaG>
+
<bp:CellularLocationVocabulary rdf:ID="Cell">
</bp:CellularLocationVocabulary>
-<bp:Pathway rdf:ID="model1">
- <bp:pathwayComponent rdf:resource="#model1__R" />
-</bp:Pathway>
+<bp:DeltaG rdf:ID="model1__R_deltaGId">
+</bp:DeltaG>
-<bp:Interaction rdf:ID="model2__R">
-</bp:Interaction>
+<bp:Stoichiometry rdf:ID="R__Y1">
+ <bp:physicalEntity rdf:resource="#model2__Y" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:Stoichiometry rdf:ID="R__X1">
+ <bp:physicalEntity rdf:resource="#B" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:BiochemicalReaction rdf:ID="model2__R">
+ <bp:participantStoichiometry rdf:resource="#R__Y1" />
+ <bp:participantStoichiometry rdf:resource="#R__X1" />
+ <bp:deltaG rdf:resource="#model2__R_deltaGId" />
+ <bp:right rdf:resource="#B" />
+ <bp:spontaneous rdf:datatype = "http://www.w3.org/2001/XMLSchema#boolean">false</bp:spontaneous>
+ <bp:left rdf:resource="#model2__Y" />
+ <bp:kEQ rdf:resource="#model2__R_KPrimeId" />
+ <bp:conversionDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">LEFT_TO_RIGHT</bp:conversionDirection>
+</bp:BiochemicalReaction>
</rdf:RDF>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-08-16 08:23:32
|
Revision: 696
http://sourceforge.net/p/sbfc/code/696
Author: tramy-nguyen
Date: 2016-08-16 08:23:28 +0000 (Tue, 16 Aug 2016)
Log Message:
-----------
- added owl files to test all biopax entities and performed roundtripping with the converted files on both SBML2BioPAX and BioPAX2SBML.
- added sbml files that contains 2 level hierarchy to perform roundtripping containing localParameters.
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/biopax2sbml/TestOWLFiles.java
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/AKT_Signaling_Pathway.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-genetic-interaction.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-phosphorylation-reaction.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-protein-interaction.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-template-reaction.xml
trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java
Added Paths:
-----------
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/AKT_Signaling_Pathway_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping2.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping23.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/INOH_GPCR_signaling-pertussis_toxin-.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/INOH_GPCR_signaling-pertussis_toxin-_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/JNK.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/JNK_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/NetPath_1.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/NetPath_1_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-ecocyc-glycolysis.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-ecocyc-glycolysis_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-proteomics-protein-interaction.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-proteomics-protein-interaction_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-short-pathway.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-example-short-pathway_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-level1.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax-level1_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-insulin-maturation.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-insulin-maturation_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-short-metabolic-pathway.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-short-metabolic-pathway_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/replacingElements_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/rna.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/rna_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testBiochemReactParticipantsLocationRule.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testBiochemReactParticipantsLocationRule_Transport.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testBiochemReactParticipantsLocationRule_Transport_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testBiochemReactParticipantsLocationRule_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testControlTypeRule.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/testControlTypeRule_roundtripping.xml
trunk/test/org/sbfc/test/resources/_reactome.owl
trunk/test/org/sbfc/test/resources/biopax-example-proteomics-protein-interaction.owl
trunk/test/org/sbfc/test/resources/biopax-example-short-pathway.owl
trunk/test/org/sbfc/test/resources/biopax-level1.owl
trunk/test/org/sbfc/test/resources/biopax3-insulin-maturation.owl
trunk/test/org/sbfc/test/resources/biopax3-short-metabolic-pathway.owl
trunk/test/org/sbfc/test/resources/replacingElements.xml
trunk/test/org/sbfc/test/resources/testBiochemReactParticipantsLocationRule.owl
trunk/test/org/sbfc/test/resources/testBiochemReactParticipantsLocationRule_Transport.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML2_roundtripping2.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML2_roundtripping23.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/replacingElements_roundtripping.owl
Removed Paths:
-------------
trunk/test/org/sbfc/test/resources/9510375.owl
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-15 06:11:37 UTC (rev 695)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-16 08:23:28 UTC (rev 696)
@@ -26,6 +26,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -307,14 +308,28 @@
* This will ensure that species are created first from PhysicalEntities and any Entites that
* are not of type Interaction.
*/
- Set<Conversion> listOfConversions = bioModel.getObjects(Conversion.class);
+ Set<Conversion> listOfConversions = new HashSet<Conversion>();
- Set<Control> listOfControls = bioModel.getObjects(Control.class);
+ Set<Control> listOfControls = new HashSet<Control>();
List<Interaction> listOfInteractions = new ArrayList<Interaction>();
- listOfInteractions.addAll(bioModel.getObjects(GeneticInteraction.class));
- listOfInteractions.addAll(bioModel.getObjects(MolecularInteraction.class));
- listOfInteractions.addAll(bioModel.getObjects(TemplateReaction.class));
+
+ Set<Interaction> interactionEntityList = bioModel.getObjects(Interaction.class);
+ for(Interaction interaction : interactionEntityList)
+ {
+ if(interaction instanceof Conversion)
+ {
+ listOfConversions.add((Conversion)interaction);
+ }
+ else if(interaction instanceof Control)
+ {
+ listOfControls.add((Control)interaction);
+ }
+ else
+ {
+ listOfInteractions.add(interaction);
+ }
+ }
parseInteractions(listOfConversions, listOfControls, listOfInteractions);
}
@@ -370,7 +385,7 @@
}
}
}
-
+
boolean isControllerPathway = false;
for(Controller controllerEntity : pathwayControl.getController())
{
@@ -442,11 +457,18 @@
Reaction reaction = (Reaction) mappedEntities.get(interactionEntity.getRDFId());
//Keep track of how many times this reaction occur in the each submodel
int count = 0;
- for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ if(reaction == null)
{
- if(modelDef.getReaction(reaction.getId()) != null)
+ System.out.println(reaction);
+ }
+ if(compSBMLDocPlugin.isSetListOfModelDefinitions())
+ {
+ for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
{
- count++;
+ if(modelDef.containsReaction(reaction.getId()))
+ {
+ count++;
+ }
}
}
if(count == 0)
@@ -534,12 +556,12 @@
private void addReaction(String reactionId, org.sbml.jsbml.Model sbmlModel) throws ConversionException
{
Reaction reaction = (Reaction) getSBaseFromSBMLId(reactionId);
+
if(sbmlModel.getReaction(reaction.getId()) == null)
{
for(ModifierSpeciesReference modifier : reaction.getListOfModifiers())
{
addSpecies(modifier.getSpecies(), sbmlModel);
-
}
for(SpeciesReference reactant : reaction.getListOfReactants())
{
@@ -872,7 +894,7 @@
{
String xrefName = xref.getDb();
String xrefId = xref.getId();
-
+
//Look for MIRIAM URL with this xref
String miriamFullURI = link.getURI(xrefName, xrefId);
@@ -1444,14 +1466,14 @@
*/
if(templateReaction.getTemplateDirection() == TemplateDirectionType.FORWARD)
{
-
+
}
else if (templateReaction.getTemplateDirection() == TemplateDirectionType.REVERSE)
{
-
+
}
-
+
if(templateReaction.getTemplate() != null)
{
ModifierSpeciesReference modifierSpeciesRef = createModifierSpeciesReference(templateReaction.getTemplate());
@@ -1592,7 +1614,7 @@
reaction.setListOfProducts(products);
}
-
+
if(conversion instanceof BiochemicalReaction)
{
BiochemicalReaction biochemicalReaction = (BiochemicalReaction) conversion;
@@ -1639,7 +1661,15 @@
{
continue;
}
- modifierSpecies.setId(getValidSBMLId(control));
+
+ /*
+ * Note:
+ * TODO: find out other ways to set modifierId using control.
+ * Current code will cause problem since there will be many controller that will
+ * reference the same control and by getting a valid sbmlId from control will result
+ * in many collision of the same use of control id map to the different modifiers
+ */
+ // modifierSpecies.setId(getValidSBMLId(control));
String modifierSpeciesName = getValidSBMLName(control);
if(modifierSpeciesName != null)
{
@@ -1677,12 +1707,12 @@
catalysis.getCatalysisDirection() == CatalysisDirectionType.LEFT_TO_RIGHT)
{
String reaction_prefixId = controlledReaction.getId();
-
+
Reaction forwardReaction = controlledReaction.clone();
forwardReaction.setId(reaction_prefixId + "_forwardReaction");
forwardReaction.setReversible(false);
forwardReaction.addModifier(modifierSpecies);
-
+
Reaction reverseReaction = controlledReaction.clone();
reverseReaction.setId(reaction_prefixId + "_reverseReaction");
reverseReaction.setReversible(false);
@@ -1949,7 +1979,14 @@
{
speciesReference.setStoichiometry(stoichiometry.getStoichiometricCoefficient());
}
- speciesReference.setId(getValidSBMLId(stoichiometry));
+ /*
+ * Note:
+ * TODO: find out other ways to set speciesRefId using stoichiometry entity.
+ * Current code will cause problem since there will be many stoichiometry that will
+ * reference the same physicalEntity and by getting a valid sbmlId from stoichiometry will result
+ * in many collision of the same use of stoichiometry id map to the different physicalEntity
+ */
+ // speciesReference.setId(getValidSBMLId(stoichiometry));
String speciesRefName = getValidSBMLName(stoichiometry);
if(speciesRefName != null)
{
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-15 06:11:37 UTC (rev 695)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-16 08:23:28 UTC (rev 696)
@@ -147,7 +147,7 @@
boolean isConversionSet = false;
//Handle replacement and replacedBy Reactions before converting to biopax entity
- if(submodelId != null)
+ if(submodelId != null && mapReplacements.containsKey(submodelId))
{
Map<String, Boolean> replacingElement = mapReplacements.get(submodelId).get(reaction.getId());
@@ -349,6 +349,10 @@
{
kprime.setTemperature((float) localParam.getValue());
}
+ else
+ {
+ //TODO: What biochemicalReaction property should this localParameter be stored in?
+ }
}
@@ -628,7 +632,7 @@
}
- if(submodelId != null)
+ if(submodelId != null && mapReplacements.containsKey(submodelId))
{
Map<String, Boolean> replacingElement = mapReplacements.get(submodelId).get(speciesCompartment.getId());
@@ -664,7 +668,8 @@
}
else if(SBO.isChildOf(speciesSBOValue, SBO.getComplex()))
{
- physicalEntity = convertSpeciesToPE(bpModel, Complex.class, UnificationXref.class, species);
+// physicalEntity = convertSpeciesToPE(bpModel, Complex.class, UnificationXref.class, species);
+ physicalEntity = createComplexFromSpecies(bpModel, species);
}
else if(SBO.isChildOf(speciesSBOValue, SBO.getGeneric()))
{
@@ -684,6 +689,7 @@
}
else if(SBO.isChildOf(speciesSBOValue, SBO.getRNASegment()))
{
+ System.out.println(species.getSBOTerm());
physicalEntity = convertSpeciesToSPE(bpModel, RnaRegion.class, RnaRegionReference.class, species);
}
else if(SBO.isChildOf(speciesSBOValue, SBO.getSmallMolecule()))
Modified: trunk/test/org/sbfc/test/biopax2sbml/TestOWLFiles.java
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/TestOWLFiles.java 2016-08-15 06:11:37 UTC (rev 695)
+++ trunk/test/org/sbfc/test/biopax2sbml/TestOWLFiles.java 2016-08-16 08:23:28 UTC (rev 696)
@@ -24,6 +24,7 @@
import org.sbfc.converter.models.SBMLModel;
import org.sbfc.converter.sbml2biopax.arman.SBML2BioPAXConverter;
import org.sbfc.test.biopax2sbml.InteractionTests;
+import org.sbfc.test.sbml2biopax.TestSBMLFiles;
import org.sbml.jsbml.Compartment;
import org.sbml.jsbml.ModifierSpeciesReference;
import org.sbml.jsbml.Reaction;
@@ -38,8 +39,8 @@
{
//Directory to get testing files
- protected static String inputFileDirectory = "./test/org/sbfc/test/resources/";
- protected static String outputFileDirectory = "./test/org/sbfc/test/biopax2sbml/outputFiles/";
+ public static String inputFileDirectory = "./test/org/sbfc/test/resources/";
+ public static String outputFileDirectory = "./test/org/sbfc/test/biopax2sbml/outputFiles/";
private static String XMLBase = "http://www.humanmetabolism.org/#";
@@ -148,7 +149,7 @@
* - templateReactionRegulation
*/
@Test
- public void test_TemplateReactionFile()
+ public void test_biopax3_template_reaction_File()
{
String fileName = "biopax3-template-reaction";
String owlFile = inputFileDirectory + fileName + ".owl";
@@ -203,31 +204,6 @@
Assert.assertTrue(TemplateReaction_1.getCVTerms().size() == 2);
Assert.assertTrue(TemplateReaction_1.getNumProducts() == 1);
Assert.assertTrue(TemplateReaction_1.getNumModifiers() == 3);
- for(ModifierSpeciesReference modifier : TemplateReaction_1.getListOfModifiers())
- {
- String modifierId = modifier.getId();
- if(modifier.getSpecies().equals("DnaRegion_12"))
- {
- Species DnaRegion_12 = sbmlModel.getSpecies("DnaRegion_12");
- Assert.assertTrue(DnaRegion_12.getName().equals("Wnt8_gene"));
- Assert.assertTrue(DnaRegion_12.getCVTerms().size() == 3);
- }
- else if(modifierId.equals("TemplateReactionRegulation_28") )
- {
- Assert.assertTrue(modifier.getName().equals("Blimp1/Krox regulates Wnt8"));
- Assert.assertTrue(modifier.getSBOTerm() == SBO.getStimulator());
- Assert.assertTrue(modifier.getCVTerms().size() == 2);
- }
- else if(modifierId.equals("TemplateReactionRegulation_17"))
- {
- Assert.assertTrue(modifier.getName().equals("beta-catenin TCF1 regulates Wnt8"));
- Assert.assertTrue(modifier.getSBOTerm() == SBO.getStimulator());
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
Assert.assertTrue(TemplateReaction_1.getSBOTerm() == SBO.getTemplateReaction());
Assert.assertTrue(TemplateReaction_1.getProduct(0).getSpecies().equals("Protein_1"));
@@ -240,35 +216,6 @@
Assert.assertTrue(TemplateReaction_22.getProduct(0).getSpecies().equals("Protein_25"));
Species Protein_25 = sbmlModel.getSpecies("Protein_25");
Assert.assertTrue(Protein_25.getName().equals("Eve_protein"));
- for(ModifierSpeciesReference modifier : TemplateReaction_22.getListOfModifiers())
- {
- String modifierId = modifier.getId();
- if(modifier.getSpecies().equals("DnaRegion_23"))
- {
- Species DnaRegion_23 = sbmlModel.getSpecies("DnaRegion_23");
- Assert.assertTrue(DnaRegion_23.getName().equals("Eve_gene"));
- Assert.assertTrue(DnaRegion_23.getCVTerms().size() == 3);
- Assert.assertTrue(DnaRegion_23.getCompartment().equals("CellularLocationVocabulary_3"));
- Assert.assertTrue(DnaRegion_23.getSBOTerm() == SBO.getDNASegment());
- }
- else if(modifierId.equals("TemplateReactionRegulation_30") )
- {
- Assert.assertTrue(modifier.getName().equals("Bilmp1/Krox regulates Eve"));
- Assert.assertTrue(modifier.getSBOTerm() == SBO.getStimulator());
- Assert.assertTrue(modifier.getCVTerms().size() == 2);
- Assert.assertTrue(modifier.getSpecies().equals("Protein_12"));
- }
- else if(modifierId.equals("TemplateReactionRegulation_27"))
- {
- Assert.assertTrue(modifier.getName().equals("beta-catenin TCF1 regulates Eve"));
- Assert.assertTrue(modifier.getSBOTerm() == SBO.getStimulator());
- Assert.assertTrue(modifier.getSpecies().equals("Complex_37"));
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
Reaction Blimp = sbmlModel.getReaction("Blimp");
Assert.assertTrue(Blimp.getName().equals("Blimp1/Krox transcription"));
Assert.assertTrue(Blimp.getSBOTerm() == SBO.getTemplateReaction());
@@ -276,29 +223,6 @@
Assert.assertTrue(Blimp.getNumProducts() == 1);
Assert.assertTrue(Blimp.getNumModifiers() == 2);
Assert.assertTrue(Blimp.getProduct(0).getSpecies().equals("Protein_12"));
- for(ModifierSpeciesReference modifier : Blimp.getListOfModifiers())
- {
- String modifierId = modifier.getId();
- if(modifier.getSpecies().equals("DnaRegion_10"))
- {
- Species DnaRegion_23 = sbmlModel.getSpecies("DnaRegion_10");
- Assert.assertTrue(DnaRegion_23.getName().equals("Blimp1/Krox_gene"));
- Assert.assertTrue(DnaRegion_23.getCVTerms().size() == 3);
- Assert.assertTrue(DnaRegion_23.getCompartment().equals("CellularLocationVocabulary_3"));
- Assert.assertTrue(DnaRegion_23.getSBOTerm() == SBO.getDNASegment());
- }
- else if(modifierId.equals("TemplateReactionRegulation_14") )
- {
- Assert.assertTrue(modifier.getName().equals("beta-catenin TCF1 regulates Blimp1/Krox"));
- Assert.assertTrue(modifier.getSBOTerm() == SBO.getStimulator());
- Assert.assertTrue(modifier.getCVTerms().size() == 2);
- Assert.assertTrue(modifier.getSpecies().equals("Complex_37"));
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
}
/**
@@ -307,7 +231,7 @@
* - GeneticInteraction
*/
@Test
- public void test_GeneticInteractionFile()
+ public void test_biopax3_genetic_interaction_File()
{
String fileName = "biopax3-genetic-interaction";
String owlFile = inputFileDirectory + fileName + ".owl";
@@ -365,7 +289,7 @@
}
@Test
- public void test_PhosphorylationReactionFile()
+ public void test_biopax3_phosphorylation_reactionFile()
{
String fileName = "biopax3-phosphorylation-reaction";
String owlFile = inputFileDirectory + fileName + ".owl";
@@ -393,61 +317,12 @@
Assert.assertTrue(BiochemicalReaction_2.getNumReactants() == 2);
Assert.assertTrue(BiochemicalReaction_2.getNumProducts() == 2);
Assert.assertTrue(BiochemicalReaction_2.getNumModifiers() == 1);
- Assert.assertTrue(BiochemicalReaction_2.getModifier(0).getId().equals("Catalysis_1"));
Assert.assertTrue(BiochemicalReaction_2.getModifier(0).getSBOTerm() == SBO.getCatalyst());
Assert.assertTrue(BiochemicalReaction_2.getModifier(0).getSpecies().equals("Protein_27"));
- //TODO: modifier for protein 27 has stoichiometry value of 1
- for(SpeciesReference reactant : BiochemicalReaction_2.getListOfReactants())
- {
- if(reactant.getId().equals("Stoichiometry_1"))
- {
- Species Protein_5 = sbmlModel.getSpecies("Protein_5");
- Assert.assertTrue(Protein_5.getName().equals("CHK2"));
- Assert.assertTrue(Protein_5.getCVTerms().size() == 0);
- Assert.assertTrue(Protein_5.getCompartment().equals("CellularLocationVocabulary_6"));
- Assert.assertTrue(Protein_5.getSBOTerm() == SBO.getGeneric());
- Assert.assertTrue(reactant.getStoichiometry() == 1);
- }
- else if(reactant.getId().equals("Stoichiometry_4"))
- {
- Species SmallMolecule_13 = sbmlModel.getSpecies("SmallMolecule_13");
- Assert.assertTrue(SmallMolecule_13.getName().equals("ATP"));
- Assert.assertTrue(SmallMolecule_13.getSBOTerm() == SBO.getSmallMolecule());
- Assert.assertTrue(SmallMolecule_13.getCVTerms().size() == 0);
- Assert.assertTrue(reactant.getStoichiometry() == 1);
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
- for(SpeciesReference product : BiochemicalReaction_2.getListOfProducts())
- {
- if(product.getSpecies().equals("Protein_16"))
- {
- Species Protein_5 = sbmlModel.getSpecies("Protein_16");
- Assert.assertTrue(Protein_5.getName().equals("CHK2"));
- Assert.assertTrue(Protein_5.getCVTerms().size() == 0);
- Assert.assertTrue(Protein_5.getCompartment().equals("CellularLocationVocabulary_6"));
- Assert.assertTrue(Protein_5.getSBOTerm() == SBO.getGeneric());
- }
- else if(product.getId().equals("Stoichiometry_3"))
- {
- Species SmallMolecule_13 = sbmlModel.getSpecies("SmallMolecule_21");
- Assert.assertTrue(SmallMolecule_13.getCompartment().equals("CellularLocationVocabulary_6"));
- Assert.assertTrue(SmallMolecule_13.getName().equals("ADP"));
- Assert.assertTrue(SmallMolecule_13.getSBOTerm() == SBO.getSmallMolecule());
- Assert.assertTrue(SmallMolecule_13.getCVTerms().size() == 0);
- Assert.assertTrue(product.getStoichiometry() == 1);
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
}
- @Test public void test_ProteinInteractionFile()
+ @Test
+ public void test_biopax3_protein_interaction_File()
{
String fileName = "biopax3-protein-interaction";
String owlFile = inputFileDirectory + fileName + ".owl";
@@ -475,12 +350,212 @@
}
@Test
- public void test_AKT_File()
+ public void test_AKT_Signaling_Pathway_File()
{
String fileName = "AKT_Signaling_Pathway";
String owlFile = inputFileDirectory + fileName + ".owl";
SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
}
+
+ @Test
+ public void test_biopax_example_ecocyc_glycolysis_File()
+ {
+ String fileName = "biopax-example-ecocyc-glycolysis";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ //@Test
+ public void test_circadian_clock_File()
+ {
+ //TODO : Too big of file. Stack overflow will occur...darn..
+ String fileName = "circadian_clock";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ @Test
+ public void test_INOH_GPCR_signaling_pertussis_toxin_File()
+ {
+ String fileName = "INOH_GPCR_signaling-pertussis_toxin-";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ @Test
+ public void test_JNK_File()
+ {
+ String fileName = "JNK";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ @Test
+ public void test_NetPath_1_File()
+ {
+ String fileName = "NetPath_1";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ @Test
+ public void test_rna_File()
+ {//TODO
+ String fileName = "rna";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ @Test
+ public void test_testControlTypeRule_File()
+ {
+ String fileName = "testControlTypeRule";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ @Test
+ public void test_biopax3_insulin_maturation_File()
+ {
+ //TODO
+ String fileName = "biopax3-insulin-maturation";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ @Test
+ public void test_biopax3_short_metabolic_pathway_File()
+ {
+ String fileName = "biopax3-short-metabolic-pathway";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ @Test
+ public void test_biopax_example_proteomics_protein_interaction_File()
+ {
+ String fileName = "biopax-example-proteomics-protein-interaction";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+ @Test
+ public void test_biopax_example_short_pathway_File()
+ {
+ String fileName = "biopax-example-short-pathway";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ @Test
+ public void test_biopax_level1_File()
+ {
+ String fileName = "biopax-level1";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ @Test
+ public void test_testBiochemReactParticipantsLocationRule_Transport_File()
+ {
+ String fileName = "testBiochemReactParticipantsLocationRule_Transport";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+ @Test
+ public void test_testBiochemReactParticipantsLocationRule_File()
+ {
+ String fileName = "testBiochemReactParticipantsLocationRule";
+ String owlFile = inputFileDirectory + fileName + ".owl";
+ SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+ saveSBMLModelToFile(sbfcSBMLModel, fileName);
+ org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+ SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+ saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+ }
+
+// @Test
+// public void test_reactome_File()
+// {//TODO
+// String fileName = "_reactome";
+// String owlFile = inputFileDirectory + fileName + ".owl";
+// SBMLModel sbfcSBMLModel = readOWLFiles(owlFile);
+// saveSBMLModelToFile(sbfcSBMLModel, fileName);
+// org.biopax.paxtools.model.Model bioModel = TestSBMLFiles.readSBMLFiles(outputFileDirectory + fileName + ".xml");
+// BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
+// SBMLModel sbfcSBMLModel2 = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
+// saveSBMLModelToFile(sbfcSBMLModel2, fileName + "_roundtripping");
+// }
}
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/AKT_Signaling_Pathway.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/AKT_Signaling_Pathway.xml 2016-08-15 06:11:37 UTC (rev 695)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/AKT_Signaling_Pathway.xml 2016-08-16 08:23:28 UTC (rev 696)
@@ -4,10 +4,10 @@
<comp:modelDefinition id="http___pid_nci_nih_gov_biopaxpid_108233" name="akt signaling pathway">
<listOfCompartments>
<compartment constant="true" id="defaultCompartment" sboTerm="SBO:0000290" />
- <compartment constant="true" id="cytoplasm" metaid="a42aa37c-029d-4ba1-a1d9-9dd45dfebec4" sboTerm="SBO:0000290">
+ <compartment constant="true" id="cytoplasm" metaid="_6f33fb08-aa05-485c-88bd-9191e78c035b" sboTerm="SBO:0000290">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#a42aa37c-029d-4ba1-a1d9-9dd45dfebec4">
+ <rdf:Description rdf:about="#_6f33fb08-aa05-485c-88bd-9191e78c035b">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/go/GO:0005737" />
@@ -17,10 +17,10 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="extracellular_region" metaid="e0cf247c-556c-4a08-98a4-4265ee04b383" sboTerm="SBO:0000290">
+ <compartment constant="true" id="extracellular_region" metaid="_5a314950-04a3-419e-b331-6e865f6e07ab" sboTerm="SBO:0000290">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#e0cf247c-556c-4a08-98a4-4265ee04b383">
+ <rdf:Description rdf:about="#_5a314950-04a3-419e-b331-6e865f6e07ab">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/go/GO:0005576" />
@@ -30,10 +30,10 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="nucleus" metaid="c838e868-1a7a-4ead-b359-4f7510d16cd8" sboTerm="SBO:0000290">
+ <compartment constant="true" id="nucleus" metaid="_0cf11842-46ef-481b-b4fb-985008badff3" sboTerm="SBO:0000290">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#c838e868-1a7a-4ead-b359-4f7510d16cd8">
+ <rdf:Description rdf:about="#_0cf11842-46ef-481b-b4fb-985008badff3">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/go/GO:0005634" />
@@ -99,146 +99,116 @@
sboTerm="SBO:0000252" />
</listOfSpecies>
<listOfReactions>
- <reaction fast="true" id="http___pid_nci_nih_gov_biopaxpid_108288" name="http://pid.nci.nih.gov/biopaxpid_108288" reversible="true" sboTerm="SBO:0000177">
+ <reaction fast="true" id="http___pid_nci_nih_gov_biopaxpid_108288" name="http://pid.nci.nih.gov/biopaxpid_108288" reversible="false" sboTerm="SBO:0000177">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108292" name="http://pid.nci.nih.gov/biopaxpid_108292" species="http___pid_nci_nih_gov_biopaxpid_981"
- stoichiometry="1" />
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108293" name="http://pid.nci.nih.gov/biopaxpid_108293" species="http___pid_nci_nih_gov_biopaxpid_1359"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108292" species="http___pid_nci_nih_gov_biopaxpid_981" stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108293" species="http___pid_nci_nih_gov_biopaxpid_1359" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108294" name="http://pid.nci.nih.gov/biopaxpid_108294" species="http___pid_nci_nih_gov_biopaxpid_108289"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108294" species="http___pid_nci_nih_gov_biopaxpid_108289" stoichiometry="1" />
</listOfProducts>
</reaction>
- <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108267" name="http://pid.nci.nih.gov/biopaxpid_108267" reversible="true" sboTerm="SBO:0000176">
+ <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108267" name="http://pid.nci.nih.gov/biopaxpid_108267" reversible="false" sboTerm="SBO:0000176">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108268" name="http://pid.nci.nih.gov/biopaxpid_108268" species="http___pid_nci_nih_gov_biopaxpid_1359"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108268" species="http___pid_nci_nih_gov_biopaxpid_1359" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108269" name="http://pid.nci.nih.gov/biopaxpid_108269" species="http___pid_nci_nih_gov_biopaxpid_1033"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108269" species="http___pid_nci_nih_gov_biopaxpid_1033" stoichiometry="1" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="http___pid_nci_nih_gov_biopaxpid_108270" name="http://pid.nci.nih.gov/biopaxpid_108270" sboTerm="SBO:0000013"
- species="http___pid_nci_nih_gov_biopaxpid_105130" />
+ <modifierSpeciesReference name="http://pid.nci.nih.gov/biopaxpid_108270" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_105130" />
</listOfModifiers>
</reaction>
- <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108283" name="http://pid.nci.nih.gov/biopaxpid_108283" reversible="true" sboTerm="SBO:0000176">
+ <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108283" name="http://pid.nci.nih.gov/biopaxpid_108283" reversible="false" sboTerm="SBO:0000176">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108284" name="http://pid.nci.nih.gov/biopaxpid_108284" species="http___pid_nci_nih_gov_biopaxpid_1585"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108284" species="http___pid_nci_nih_gov_biopaxpid_1585" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108285" name="http://pid.nci.nih.gov/biopaxpid_108285" species="http___pid_nci_nih_gov_biopaxpid_1594"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108285" species="http___pid_nci_nih_gov_biopaxpid_1594" stoichiometry="1" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="http___pid_nci_nih_gov_biopaxpid_108286" name="http://pid.nci.nih.gov/biopaxpid_108286" sboTerm="SBO:0000013"
- species="http___pid_nci_nih_gov_biopaxpid_54617" />
+ <modifierSpeciesReference name="http://pid.nci.nih.gov/biopaxpid_108286" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_54617" />
</listOfModifiers>
</reaction>
- <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_1546" name="http://pid.nci.nih.gov/biopaxpid_1546" reversible="true" sboTerm="SBO:0000176">
+ <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_1546" name="http://pid.nci.nih.gov/biopaxpid_1546" reversible="false" sboTerm="SBO:0000176">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_1547" name="http://pid.nci.nih.gov/biopaxpid_1547" species="http___pid_nci_nih_gov_biopaxpid_1033"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_1547" species="http___pid_nci_nih_gov_biopaxpid_1033" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_1548" name="http://pid.nci.nih.gov/biopaxpid_1548" species="http___pid_nci_nih_gov_biopaxpid_1359"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_1548" species="http___pid_nci_nih_gov_biopaxpid_1359" stoichiometry="1" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="http___pid_nci_nih_gov_biopaxpid_1549" name="http://pid.nci.nih.gov/biopaxpid_1549" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_1550" />
+ <modifierSpeciesReference name="http://pid.nci.nih.gov/biopaxpid_1549" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_1550" />
</listOfModifiers>
</reaction>
- <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108239" name="http://pid.nci.nih.gov/biopaxpid_108239" reversible="true" sboTerm="SBO:0000176">
+ <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108239" name="http://pid.nci.nih.gov/biopaxpid_108239" reversible="false" sboTerm="SBO:0000176">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108242" name="http://pid.nci.nih.gov/biopaxpid_108242" species="http___pid_nci_nih_gov_biopaxpid_28772"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108242" species="http___pid_nci_nih_gov_biopaxpid_28772" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108243" name="http://pid.nci.nih.gov/biopaxpid_108243" species="http___pid_nci_nih_gov_biopaxpid_108240"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108243" species="http___pid_nci_nih_gov_biopaxpid_108240" stoichiometry="1" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="http___pid_nci_nih_gov_biopaxpid_108244" name="http://pid.nci.nih.gov/biopaxpid_108244" sboTerm="SBO:0000013"
- species="http___pid_nci_nih_gov_biopaxpid_1359" />
+ <modifierSpeciesReference name="http://pid.nci.nih.gov/biopaxpid_108244" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_1359" />
</listOfModifiers>
</reaction>
- <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108277" name="http://pid.nci.nih.gov/biopaxpid_108277" reversible="true" sboTerm="SBO:0000176">
+ <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108277" name="http://pid.nci.nih.gov/biopaxpid_108277" reversible="false" sboTerm="SBO:0000176">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108280" name="http://pid.nci.nih.gov/biopaxpid_108280" species="http___pid_nci_nih_gov_biopaxpid_31559"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108280" species="http___pid_nci_nih_gov_biopaxpid_31559" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108281" name="http://pid.nci.nih.gov/biopaxpid_108281" species="http___pid_nci_nih_gov_biopaxpid_108278"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108281" species="http___pid_nci_nih_gov_biopaxpid_108278" stoichiometry="1" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="http___pid_nci_nih_gov_biopaxpid_108282" name="http://pid.nci.nih.gov/biopaxpid_108282" sboTerm="SBO:0000013"
- species="http___pid_nci_nih_gov_biopaxpid_1359" />
+ <modifierSpeciesReference name="http://pid.nci.nih.gov/biopaxpid_108282" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_1359" />
</listOfModifiers>
</reaction>
- <reaction fast="true" id="http___pid_nci_nih_gov_biopaxpid_108299" name="http://pid.nci.nih.gov/biopaxpid_108299" reversible="true" sboTerm="SBO:0000177">
+ <reaction fast="true" id="http___pid_nci_nih_gov_biopaxpid_108299" name="http://pid.nci.nih.gov/biopaxpid_108299" reversible="false" sboTerm="SBO:0000177">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108300" name="http://pid.nci.nih.gov/biopaxpid_108300" species="http___pid_nci_nih_gov_biopaxpid_6986"
- stoichiometry="1" />
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108301" name="http://pid.nci.nih.gov/biopaxpid_108301" species="http___pid_nci_nih_gov_biopaxpid_108256"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108300" species="http___pid_nci_nih_gov_biopaxpid_6986" stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108301" species="http___pid_nci_nih_gov_biopaxpid_108256" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108302" name="http://pid.nci.nih.gov/biopaxpid_108302" species="http___pid_nci_nih_gov_biopaxpid_108263"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108302" species="http___pid_nci_nih_gov_biopaxpid_108263" stoichiometry="1" />
</listOfProducts>
</reaction>
- <reaction fast="true" id="http___pid_nci_nih_gov_biopaxpid_108235" name="http://pid.nci.nih.gov/biopaxpid_108235" reversible="true" sboTerm="SBO:0000177">
+ <reaction fast="true" id="http___pid_nci_nih_gov_biopaxpid_108235" name="http://pid.nci.nih.gov/biopaxpid_108235" reversible="false" sboTerm="SBO:0000177">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108237" name="http://pid.nci.nih.gov/biopaxpid_108237" species="http___pid_nci_nih_gov_biopaxpid_48168"
- stoichiometry="1" />
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108236" name="http://pid.nci.nih.gov/biopaxpid_108236" species="http___pid_nci_nih_gov_biopaxpid_48171"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108237" species="http___pid_nci_nih_gov_biopaxpid_48168" stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108236" species="http___pid_nci_nih_gov_biopaxpid_48171" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108238" name="http://pid.nci.nih.gov/biopaxpid_108238" species="http___pid_nci_nih_gov_biopaxpid_54617"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108238" species="http___pid_nci_nih_gov_biopaxpid_54617" stoichiometry="1" />
</listOfProducts>
</reaction>
- <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108295" name="http://pid.nci.nih.gov/biopaxpid_108295" reversible="true" sboTerm="SBO:0000176">
+ <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108295" name="http://pid.nci.nih.gov/biopaxpid_108295" reversible="false" sboTerm="SBO:0000176">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108296" name="http://pid.nci.nih.gov/biopaxpid_108296" species="http___pid_nci_nih_gov_biopaxpid_1352"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108296" species="http___pid_nci_nih_gov_biopaxpid_1352" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108297" name="http://pid.nci.nih.gov/biopaxpid_108297" species="http___pid_nci_nih_gov_biopaxpid_29575"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108297" species="http___pid_nci_nih_gov_biopaxpid_29575" stoichiometry="1" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="http___pid_nci_nih_gov_biopaxpid_108298" name="http://pid.nci.nih.gov/biopaxpid_108298" sboTerm="SBO:0000013"
- species="http___pid_nci_nih_gov_biopaxpid_1359" />
+ <modifierSpeciesReference name="http://pid.nci.nih.gov/biopaxpid_108298" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_1359" />
</listOfModifiers>
</reaction>
- <reaction fast="true" id="http___pid_nci_nih_gov_biopaxpid_108274" name="http://pid.nci.nih.gov/biopaxpid_108274" reversible="true" sboTerm="SBO:0000185">
+ <reaction fast="true" id="http___pid_nci_nih_gov_biopaxpid_108274" name="http://pid.nci.nih.gov/biopaxpid_108274" reversible="false" sboTerm="SBO:0000185">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108275" name="http://pid.nci.nih.gov/biopaxpid_108275" species="http___pid_nci_nih_gov_biopaxpid_108248"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108275" species="http___pid_nci_nih_gov_biopaxpid_108248" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108276" name="http://pid.nci.nih.gov/biopaxpid_108276" species="http___pid_nci_nih_gov_biopaxpid_108273"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108276" species="http___pid_nci_nih_gov_biopaxpid_108273" stoichiometry="1" />
</listOfProducts>
</reaction>
- <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_1615" name="http://pid.nci.nih.gov/biopaxpid_1615" reversible="true" sboTerm="SBO:0000176">
+ <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_1615" name="http://pid.nci.nih.gov/biopaxpid_1615" reversible="false" sboTerm="SBO:0000176">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_1618" name="http://pid.nci.nih.gov/biopaxpid_1618" species="http___pid_nci_nih_gov_biopaxpid_1616"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_1618" species="http___pid_nci_nih_gov_biopaxpid_1616" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_1619" name="http://pid.nci.nih.gov/biopaxpid_1619" species="http___pid_nci_nih_gov_biopaxpid_1582"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_1619" species="http___pid_nci_nih_gov_biopaxpid_1582" stoichiometry="1" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="http___pid_nci_nih_gov_biopaxpid_1620" name="http://pid.nci.nih.gov/biopaxpid_1620" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_1594" />
+ <modifierSpeciesReference name="http://pid.nci.nih.gov/biopaxpid_1620" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_1594" />
</listOfModifiers>
</reaction>
<reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108271" name="http://pid.nci.nih.gov/biopaxpid_108271" reversible="false" sboTerm="SBO:0000589">
@@ -246,43 +216,37 @@
<speciesReference constant="true" species="http___pid_nci_nih_gov_biopaxpid_16844" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="http___pid_nci_nih_gov_biopaxpid_108272" name="http://pid.nci.nih.gov/biopaxpid_108272" sboTerm="SBO:0000021"
- species="http___pid_nci_nih_gov_biopaxpid_108273" />
+ <modifierSpeciesReference name="http://pid.nci.nih.gov/biopaxpid_108272" sboTerm="SBO:0000459" species="http___pid_nci_nih_gov_biopaxpid_108273" />
</listOfModifiers>
</reaction>
- <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_1577" name="http://pid.nci.nih.gov/biopaxpid_1577" reversible="true" sboTerm="SBO:0000176">
+ <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_1577" name="http://pid.nci.nih.gov/biopaxpid_1577" reversible="false" sboTerm="SBO:0000176">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_1579" name="http://pid.nci.nih.gov/biopaxpid_1579" species="http___pid_nci_nih_gov_biopaxpid_1578"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_1579" species="http___pid_nci_nih_gov_biopaxpid_1578" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_1580" name="http://pid.nci.nih.gov/biopaxpid_1580" species="http___pid_nci_nih_gov_biopaxpid_1550"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_1580" species="http___pid_nci_nih_gov_biopaxpid_1550" stoichiometry="1" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="http___pid_nci_nih_gov_biopaxpid_1581" name="http://pid.nci.nih.gov/biopaxpid_1581" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_1582" />
+ <modifierSpeciesReference name="http://pid.nci.nih.gov/biopaxpid_1581" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_1582" />
</listOfModifiers>
</reaction>
- <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108247" name="http://pid.nci.nih.gov/biopaxpid_108247" reversible="true" sboTerm="SBO:0000176">
+ <reaction fast="false" id="http___pid_nci_nih_gov_biopaxpid_108247" name="http://pid.nci.nih.gov/biopaxpid_108247" reversible="false" sboTerm="SBO:0000176">
<listOfReactants>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108258" name="http://pid.nci.nih.gov/biopaxpid_108258" species="http___pid_nci_nih_gov_biopaxpid_108248"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108258" species="http___pid_nci_nih_gov_biopaxpid_108248" stoichiometry="1" />
</listOfReactants>
<listOfProducts>
- <speciesReference constant="true" id="http___pid_nci_nih_gov_biopaxpid_108259" name="http://pid.nci.nih.gov/biopaxpid_108259" species="http___pid_nci_nih_gov_biopaxpid_108256"
- stoichiometry="1" />
+ <speciesReference constant="true" name="http://pid.nci.nih.gov/biopaxpid_108259" species="http___pid_nci_nih_gov_biopaxpid_108256" stoichiometry="1" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="http___pid_nci_nih_gov_biopaxpid_108260" name="http://pid.nci.nih.gov/biopaxpid_108260" sboTerm="SBO:0000013"
- species="http___pid_nci_nih_gov_biopaxpid_1359" />
+ <modifierSpeciesReference name="http://pid.nci.nih.gov/biopaxpid_108260" sboTerm="SBO:0000013" species="http___pid_nci_nih_gov_biopaxpid_1359" />
</listOfModifiers>
</reaction>
</listOfReactions>
</comp:modelDefinition>
- <comp:modelDefinition id="http___pid_nci_nih_gov_biopaxpid_15760" metaid="_5527692c-9a95-43dd-b1fa-41fd057152e3" name="apoptosis">
+ <comp:modelDefinition id="http___pid_nci_nih_gov_biopaxpid_15760" metaid="f9e78160-bce9-4d4d-a6a0-b9251492cac6" name="apoptosis">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_5527692c-9a95-43dd-b1fa-41fd057152e3">
+ <rdf:Description rdf:about="#f9e78160-bce9-4d4d-a6a0-b9251492cac6">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/go/GO:0006915" />
@@ -304,10 +268,10 @@
<comp:modelDefinition id="http___pid_nci_nih_gov_biopaxpid_10409" name="cell survival">
<listOfCompartments>
<compartment constant="true" id="defaultCompartment" sboTerm="SBO:0000290" />
- <compartment constant="true" id="nucleus" metaid="cd34212a-6028-4492-82e3-d4226a147012" sboTerm="SBO:0000290">
+ <compartment constant="true" id="nucleus" metaid="_89dff4c8-7d7f-42cb-8806-b215d4402394" sboTerm="SBO:0000290">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#cd34212a-6028-4492-82e3-d4226a147012">
+ <rdf:Description rdf:about="#_89dff4c8-7d7f-42cb-8806-b215d4402394">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/go/GO:0005634" />
@@ -329,10 +293,10 @@
sboTerm="SBO:0000252" />
</listOfSpecies>
</comp:modelDefinition>
- <comp:modelDefinition id="http___pid_nci_nih_gov_biopaxpid_1543" metaid="_827f3f3e-8b71-426b-9236-5b05187a05a6" name="protein ubiquitination">
+ <comp:modelDefinition id="http___pid_nci_nih_gov_biopaxpid_1543" metaid="_8ba97f4a-61ed-483d-8dd6-4f76347e30e6" name="protein ubiquitination">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_827f3f3e-8b71-426b-9236-5b05187a05a6">
+ <rdf:Description rdf:about="#_8ba97f4a-61ed-483d-8dd6-4f76347e30e6">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/go/GO:0016567" />
@@ -350,7 +314,7 @@
</listOfSpecies>
</comp:modelDefinition>
</comp:listOfModelDefinitions>
- <model id="topLevel_sbmlModel" metaid="e5cee301-b3d1-4a94-9b54-abcf48aae997">
+ <model id="topLevel_sbmlModel" metaid="_597b7403-f113-4470-b380-48ab240af5b4">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -358,7 +322,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#e5cee301-b3d1-4a94-9b54-abcf48aae997">
+ <rdf:Description rdf:about="#_597b7403-f113-4470-b380-48ab240af5b4">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
@@ -378,7 +342,14 @@
<comp:submodel comp:id="submodel__http___pid_nci_nih_gov_biopaxpid_1543" comp:modelRef="http___pid_nci_nih_gov_biopaxpid_1543" />
</comp:listOfSubmodels>
<listOfCompartments>
- <compartment constant="true" id="defaultCompartment" sboTerm="SBO:0000290" />
+ <compartment constant="true" id="defaultCompartment" sboTerm="SBO:0000290">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="defaultCompartment" comp:submodelRef="submodel__http___pid_nci_nih_gov_biopaxpid_108233" />
+ <comp:replacedElement comp...
[truncated message content] |
|
From: <tra...@us...> - 2016-08-15 06:11:40
|
Revision: 695
http://sourceforge.net/p/sbfc/code/695
Author: tramy-nguyen
Date: 2016-08-15 06:11:37 +0000 (Mon, 15 Aug 2016)
Log Message:
-----------
- expanded support for replacements and replaced to include reactions and compartments.
Modified Paths:
--------------
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml
trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml
trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML2_roundtripping.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/biopax3-genetic-interaction.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/biopax3-phosphorylation-reaction.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/biopax3-protein-interaction.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/biopax3-template-reaction.owl
Added Paths:
-----------
trunk/test/org/sbfc/test/resources/mapSpeciesSpecies.xml
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/mapSpeciesSpecies_roundtripping.owl
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-12 04:34:25 UTC (rev 694)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-15 06:11:37 UTC (rev 695)
@@ -6,14 +6,11 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.biopax.paxtools.impl.level3.StoichiometryImpl;
import org.biopax.paxtools.model.BioPAXFactory;
import org.biopax.paxtools.model.BioPAXLevel;
import org.biopax.paxtools.model.Model;
import org.biopax.paxtools.model.level3.Catalysis;
-import org.biopax.paxtools.model.level3.Complex;
import org.biopax.paxtools.model.level3.Control;
-import org.biopax.paxtools.model.level3.ControlType;
import org.biopax.paxtools.model.level3.Controller;
import org.biopax.paxtools.model.level3.Conversion;
import org.biopax.paxtools.model.level3.Dna;
@@ -27,23 +24,18 @@
import org.biopax.paxtools.model.level3.NucleicAcid;
import org.biopax.paxtools.model.level3.Pathway;
import org.biopax.paxtools.model.level3.PhysicalEntity;
-import org.biopax.paxtools.model.level3.Protein;
import org.biopax.paxtools.model.level3.Rna;
import org.biopax.paxtools.model.level3.RnaRegion;
-import org.biopax.paxtools.model.level3.SimplePhysicalEntity;
-import org.biopax.paxtools.model.level3.SmallMolecule;
import org.biopax.paxtools.model.level3.Stoichiometry;
-import org.biopax.paxtools.model.level3.TemplateDirectionType;
import org.biopax.paxtools.model.level3.TemplateReaction;
-import org.biopax.paxtools.model.level3.TemplateReactionRegulation;
import org.biopax.paxtools.model.level3.UnificationXref;
+import org.sbml.jsbml.AbstractNamedSBase;
import org.sbml.jsbml.Compartment;
import org.sbml.jsbml.ListOf;
import org.sbml.jsbml.ModifierSpeciesReference;
import org.sbml.jsbml.Reaction;
import org.sbml.jsbml.SBMLDocument;
import org.sbml.jsbml.SBO;
-import org.sbml.jsbml.SBase;
import org.sbml.jsbml.Species;
import org.sbml.jsbml.SpeciesReference;
import org.sbml.jsbml.ext.comp.CompConstants;
@@ -54,6 +46,7 @@
import org.sbml.jsbml.ext.comp.Port;
import org.sbml.jsbml.ext.comp.ReplacedBy;
import org.sbml.jsbml.ext.comp.ReplacedElement;
+import org.sbml.jsbml.ext.comp.SBaseRef;
import org.sbml.jsbml.ext.comp.Submodel;
@@ -64,74 +57,6 @@
private Map<String, Map<String, Map<String, Boolean>>> mapReplacements;
- /**
- * Hold the sbml model and the element that will replace all other interconnection model elements
- * (i.e. elements A->B->C->D->E . Arrows indicate replacements.
- * In this case, B, C, D, and E will be replaced by A.)
- * String will be the model Id of the replacing element.
- * SBase will be the replacing element.
- * InterconnectionElements will hold all information for the elements that will be replaced by the replacing element.
- */
- private Map<String, Map<SBase, InterconnectionElements>> replacementMap;
-
- private void parseReplacement(String topModel, String subModel, SBase topElement, SBase subElement)
- {
- //Hold the main model and its element to replace all other elements from different models
- InterconnectionElements interconnect = null;
-
- //Check if the replacementMap has been created for the 2 given models.
- if(!replacementMap.containsKey(topModel))
- {
- replacementMap.put(topModel, new HashMap<SBase, InterconnectionElements>());
- }
- if(!replacementMap.containsKey(subModel))
- {
- replacementMap.put(subModel, new HashMap<SBase, InterconnectionElements>());
- }
-
- Map<SBase, InterconnectionElements> interTopMap = replacementMap.get(topModel);
- Map<SBase, InterconnectionElements> interSubMap = replacementMap.get(subModel);
-
- if(interTopMap.containsKey(topElement))
- {
- interconnect = interTopMap.get(topElement);
- }
- else
- {
- interconnect = new InterconnectionElements();
- }
- interconnect.setReplacingElement(topElement);
- interconnect.addInterconnectingElement(topModel, topElement);
-
- /*
- * Note:
- * if the top element and sub element are connected to different groups,
- * combine both elements from different list to one set of replacing element
- * (i.e. A->B->C->D->E . B, C, D, and E are elements to be replaced by A represented by the arrow sign)
- * if A,B,C are coming from its own interconnecting elements and
- * D,E are coming from its own interconnecting elements, then add D,E to A,B,C interconnecting elements
- * because C and D are connected to each other
- */
- if(interSubMap.containsKey(subElement))
- {
- interconnect.addAllInterconnectingElement(interSubMap.get(subElement));
- }
- else
- {
- interconnect.addInterconnectingElement(subModel, subElement);
- }
- }
-
- private SBase getReplacementSBase(String modelId, SBase sbase)
- {
- if(replacementMap.containsKey(modelId) && replacementMap.get(modelId).containsKey(sbase) )
- {
- return replacementMap.get(modelId).get(sbase).getReplacingElement();
- }
-
- return sbase;
- }
-
private void mapReplacement(String submodelId, String sbaseElementId, String replacingElementId, Boolean isReplacement)
{
//replacement : (pathway, entity) -> entity (replacing element)
@@ -161,76 +86,16 @@
for(Species topLevelSpecies : sbmlTopLevelModel.getListOfSpecies())
{
- CompSBasePlugin replacementPlugin = (CompSBasePlugin) sbmlTopLevelModel.getSpecies(topLevelSpecies.getId()).getPlugin(CompConstants.shortLabel);
-
- if(replacementPlugin.isSetListOfReplacedElements())
- {
- for(ReplacedElement replacementElement : replacementPlugin.getListOfReplacedElements())
- {
- if(replacementElement.isSetSubmodelRef())
- {
- //go to the referenced submodel
- Submodel refSubmodel = compTopLevelModel.getSubmodel(replacementElement.getSubmodelRef());
- if(refSubmodel != null && refSubmodel.isSetModelRef())
- {
- ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(refSubmodel.getModelRef());
- CompModelPlugin compSubModel = (CompModelPlugin) submodelDef.getExtension(CompConstants.shortLabel);
-
- if(replacementElement.isSetPortRef())
- {
- Port modelPort = compSubModel.getPort(replacementElement.getPortRef());
- if(modelPort != null)
- {
- Species submodelSpecies = submodelDef.getSpecies(modelPort.getIdRef());
- if(submodelSpecies != null)
- {
- //TODO:
- mapReplacement(refSubmodel.getId(), submodelSpecies.getId(), topLevelSpecies.getId(), true);
- }
- }
- }
- //TODO: check of idRef and look up modelDef using idRef
- if(replacementElement.isSetIdRef())
- {
-
- }
- }
- }
-
- }
- }
- if(replacementPlugin.isSetReplacedBy())
- {
- ReplacedBy replacementElement = replacementPlugin.getReplacedBy();
- if(replacementElement.isSetSubmodelRef())
- {
- //go to the referenced submodel
- Submodel refSubmodel = compTopLevelModel.getSubmodel(replacementElement.getSubmodelRef());
- if(refSubmodel != null && refSubmodel.isSetModelRef())
- {
- ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(refSubmodel.getModelRef());
- CompModelPlugin compSubModel = (CompModelPlugin) submodelDef.getExtension(CompConstants.shortLabel);
-
- if(replacementElement.isSetPortRef())
- {
- Port modelPort = compSubModel.getPort(replacementElement.getPortRef());
- if(modelPort != null)
- {
- Species submodelSpecies = submodelDef.getSpecies(modelPort.getIdRef());
- if(submodelSpecies != null)
- {
- //TODO:
- mapReplacement(refSubmodel.getId(), submodelSpecies.getId(), topLevelSpecies.getId(), false);
- }
- }
- }
- //TODO: check of idRef and look up modelDef using idRef
- }
- }
-
- }
-
+ parseSBMLCompElements(topLevelSpecies, compSBMLDocPlugin, compTopLevelModel);
}
+ for(Reaction topLevelReaction : sbmlTopLevelModel.getListOfReactions())
+ {
+ parseSBMLCompElements(topLevelReaction, compSBMLDocPlugin, compTopLevelModel);
+ }
+ for(Compartment topLevelCompartment : sbmlTopLevelModel.getListOfCompartments())
+ {
+ parseSBMLCompElements(topLevelCompartment, compSBMLDocPlugin, compTopLevelModel);
+ }
System.out.println(mapReplacements.toString());
log.debug("First thing first: create a BioPAX model");
@@ -247,22 +112,17 @@
log.debug("There are " + sbmlTopLevelModel.getNumReactions() + " reactions in the SBML model. ");
log.debug("Let's iterate over reactions and convert them one by one.");
parseReactions(sbmlTopLevelModel, bpModel, pathway, null);
-
- //TODO:
- /*
- * take the sbmlModel (which is the sbml toplevel model) and get all ModelDefinitions
- * to parse all of their species and reactions.
- */
- // CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDocument.getPlugin(CompConstants.shortLabel);
- // TODO: loop over Submodels, use source to find the ModelDefinition
- for(Submodel submodel : compTopLevelModel.getListOfSubmodels())
+ if(compTopLevelModel != null && compTopLevelModel.isSetListOfSubmodels())
{
- if(submodel != null && submodel.isSetModelRef())
+ for(Submodel submodel : compTopLevelModel.getListOfSubmodels())
{
- ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(submodel.getModelRef());
- Pathway subModelPathway = sbml2BioPAXUtilities.convertPathway(bpModel, submodel);
- parseSpecies(submodelDef.getModel(), bpModel, subModelPathway, submodel.getId());
- parseReactions(submodelDef, bpModel, subModelPathway, submodel.getId());
+ if(submodel != null && submodel.isSetModelRef())
+ {
+ ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(submodel.getModelRef());
+ Pathway subModelPathway = sbml2BioPAXUtilities.convertPathway(bpModel, submodel);
+ parseSpecies(submodelDef.getModel(), bpModel, subModelPathway, submodel.getId());
+ parseReactions(submodelDef.getModel(), bpModel, subModelPathway, submodel.getId());
+ }
}
}
@@ -280,6 +140,56 @@
return bpModel;
}
+ private void parseSBMLCompElements(AbstractNamedSBase namedSbase, CompSBMLDocumentPlugin compSBMLDocPlugin, CompModelPlugin compTopLevelModel)
+ {
+ CompSBasePlugin replacementPlugin = (CompSBasePlugin) namedSbase.getPlugin(CompConstants.shortLabel);
+
+ if(replacementPlugin.isSetListOfReplacedElements())
+ {
+ for(ReplacedElement replacementElement : replacementPlugin.getListOfReplacedElements())
+ {
+ Submodel refSubmodel = compTopLevelModel.getSubmodel(replacementElement.getSubmodelRef());
+ parseReplacement(namedSbase, replacementElement, refSubmodel, compSBMLDocPlugin, true);
+ }
+ }
+
+ if(replacementPlugin.isSetReplacedBy())
+ {
+ ReplacedBy replacedBy = replacementPlugin.getReplacedBy();
+ Submodel refSubmodel = compTopLevelModel.getSubmodel(replacedBy.getSubmodelRef());
+ parseReplacement(namedSbase, replacedBy, refSubmodel, compSBMLDocPlugin, false);
+ }
+ }
+
+ private void parseReplacement(AbstractNamedSBase topLevelSpecies, SBaseRef replacementElement, Submodel refSubmodel, CompSBMLDocumentPlugin compSBMLDocPlugin, boolean isReplacingElement)
+ {
+ //go to the referenced submodel
+ if(refSubmodel != null && refSubmodel.isSetModelRef())
+ {
+ ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(refSubmodel.getModelRef());
+ CompModelPlugin compSubModel = (CompModelPlugin) submodelDef.getExtension(CompConstants.shortLabel);
+
+ if(replacementElement.isSetPortRef())
+ {
+ Port modelPort = compSubModel.getPort(replacementElement.getPortRef());
+ if(modelPort != null)
+ {
+// Species submodelSpecies = submodelDef.getSpecies(modelPort.getIdRef());
+// if(submodelSpecies != null)
+// {
+ mapReplacement(refSubmodel.getId(), modelPort.getIdRef(), topLevelSpecies.getId(), true);
+// }
+ }
+ }
+ //TODO: check of idRef and look up modelDef using idRef
+ if(replacementElement.isSetIdRef())
+ {
+ String id = replacementElement.getIdRef();
+ mapReplacement(refSubmodel.getId(), id, topLevelSpecies.getId(), true);
+ }
+ }
+ }
+
private void parseSpecies(org.sbml.jsbml.Model sbmlModel, Model bpModel, Pathway pathway, String submodelId){
for(Species species: sbmlModel.getListOfSpecies())
@@ -296,7 +206,7 @@
for (Reaction reaction : sbmlModel.getListOfReactions())
{
log.trace("Working on reaction conversion: " + reaction.getName());
- Interaction interaction = sbml2BioPAXUtilities.convertReaction(bpModel, reaction);
+ Interaction interaction = sbml2BioPAXUtilities.convertReaction(bpModel, reaction, submodelId, mapReplacements);
if(pathway != null)
{
pathway.addPathwayComponent(interaction);
@@ -476,81 +386,4 @@
interaction.addParticipantStoichiometry(stoichio);
}
- private class InterconnectionElements
- {
- //TODO: Add a map that will map the elements from different models to this interconnecting model
- private Map<String, SBase> interconnectingElementList;
- private SBase replacingElement;
-
- InterconnectionElements()
- {
- interconnectingElementList = new HashMap<String, SBase>();
- }
-
- /**
- * Retrieve the element from the interconnecting models to replace all other elements from different models
- * @return
- */
- public SBase getReplacingElement()
- {
- return replacingElement;
- }
-
- /**
- * Set the replacing element for the interconnection model.
- * For example, if you have 3 models and you want to replace multiple elements in each model
- * with one of the three models, then, set this method to hold the element you want to replace the
- * all other elements in the 3 models with.
- *
- * @param replacingElement
- */
- public void setReplacingElement(SBase replacingElement)
- {
- this.replacingElement = replacingElement;
- }
-
- /**
- * Return all the elements from different models that should be replaced by this
- * @return
- */
- public Map<String, SBase> getInterconnectingElementList()
- {
- return interconnectingElementList;
- }
-
- public void setInterconnectingElementList(Map<String, SBase> interconnectingElementList)
- {
- this.interconnectingElementList = interconnectingElementList;
- }
-
- /**
- * Store all sbml elements that will be replaced the the replacing element.
- * This means that all the sbml elements from the submodels that are connected to each other and will be replaced by the top level sbml model.
- *
- * @param modelId - The model id that holds the sbmlElement to be replaced
- * @param sbmlElement - The element to be replaced by the replacing element variable
- */
- public void addInterconnectingElement(String modelId, SBase sbmlElement)
- {
- if(!replacementMap.containsKey(modelId))
- {
- replacementMap.put(modelId, new HashMap<SBase, InterconnectionElements>());
- }
-
- replacementMap.get(modelId).put(sbmlElement, this);
- interconnectingElementList.put(modelId, sbmlElement);
- }
-
- public void addAllInterconnectingElement(InterconnectionElements interModel)
- {
- //Get all the elements from different model to be replaced by this interMap model
- Map<String, SBase> interMap = interModel.getInterconnectingElementList();
- for(String modelId : interMap.keySet())
- {
- //TODO: handle disjoint interconnection elements
- addInterconnectingElement(modelId, interMap.get(modelId));
- }
- }
-
- } //End of InterconnectionModel class
}
\ No newline at end of file
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-12 04:34:25 UTC (rev 694)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-15 06:11:37 UTC (rev 695)
@@ -139,13 +139,42 @@
* @param reaction - The SBML Reaction to be converted to a BioPAX Interaction
* @return The converted BioPAX Interaction
*/
- public Interaction convertReaction(Model bpModel, Reaction reaction) {
- Class<? extends Conversion> rxnClass = null;
+ public Interaction convertReaction(Model bpModel, Reaction reaction, String submodelId, Map<String, Map<String, Map<String, Boolean>>> mapReplacements) {
+ Class<? extends Conversion> conversionReactionClass = null;
- Class<? extends Interaction> reactionClass = null;
+ Class<? extends Interaction> interactionReactionClass = null;
boolean isConversionSet = false;
+
+ //Handle replacement and replacedBy Reactions before converting to biopax entity
+ if(submodelId != null)
+ {
+ Map<String, Boolean> replacingElement = mapReplacements.get(submodelId).get(reaction.getId());
+ if(replacingElement == null)
+ {
+ reaction = reaction.clone();
+ reaction.setId(submodelId + "__" + reaction.getId());
+
+ }
+ else if(replacingElement.values().contains(true))
+ {
+ //this is a replacement object
+ reaction = reaction.clone();
+ String elementId = replacingElement.keySet().iterator().next();
+ reaction.setId(elementId);
+ }
+ else
+ {
+ //this is a replacedBy object
+ reaction = reaction.clone();
+ String elementId = replacingElement.keySet().iterator().next();
+ reaction.setId(elementId);
+ // TODO: somehow to replace the object in the bpModel
+ }
+
+ }
+
/*
* Note:
* The constant values : 231, 167, 176, 185, 179, 177, 182, 589, 343, and 344 represents SBO values.
@@ -164,65 +193,65 @@
{
if(SBO.isChildOf(reactionSBOValue, SBO.getComplexAssembly()))
{
- rxnClass = ComplexAssembly.class;
+ conversionReactionClass = ComplexAssembly.class;
isConversionSet = true;
}
else if(SBO.isChildOf(reactionSBOValue, SBO.getDegradation()))
{
- rxnClass = Degradation.class;
+ conversionReactionClass = Degradation.class;
isConversionSet = true;
}
else if(SBO.isChildOf(reactionSBOValue, SBO.getConversion()))
{
- rxnClass = Conversion.class;
+ conversionReactionClass = Conversion.class;
isConversionSet = true;
}
else
{
- rxnClass = BiochemicalReaction.class;
+ conversionReactionClass = BiochemicalReaction.class;
isConversionSet = true;
}
}
else if(SBO.isChildOf(reactionSBOValue, SBO.getTransport()))
{
- rxnClass = Transport.class;
+ conversionReactionClass = Transport.class;
isConversionSet = true;
}
else
{
- rxnClass = TransportWithBiochemicalReaction.class;
+ conversionReactionClass = TransportWithBiochemicalReaction.class;
isConversionSet = true;
}
} //End of TransportWithBiochemicalReaction
else if(SBO.isChildOf(reactionSBOValue, SBO.getGeneticInteraction()))
{
- reactionClass = GeneticInteraction.class;
+ interactionReactionClass = GeneticInteraction.class;
}
else if(SBO.isChildOf(reactionSBOValue, SBO.getMolecularInteraction()))
{
- reactionClass = MolecularInteraction.class;
+ interactionReactionClass = MolecularInteraction.class;
}
else if(SBO.isChildOf(reactionSBOValue, SBO.getTemplateReaction()))
{
- reactionClass = TemplateReaction.class;
+ interactionReactionClass = TemplateReaction.class;
}
else
{
- reactionClass = Interaction.class;
+ interactionReactionClass = Interaction.class;
}
} //End of Interaction
else
{
//Default Interaction type
- reactionClass = Interaction.class;
+ interactionReactionClass = Interaction.class;
}
if(isConversionSet)
{
- Conversion conversion = createBPEfromSBMLE(bpModel, rxnClass, reaction);
-
+ Conversion conversion = createBPEfromSBMLE(bpModel, conversionReactionClass, reaction);
+
if(reaction.getReversible())
{
conversion.setConversionDirection(ConversionDirectionType.REVERSIBLE);
@@ -234,7 +263,7 @@
conversion.setSpontaneous(reaction.getFast() ? true : false);
- if(rxnClass.equals(TransportWithBiochemicalReaction.class) || rxnClass.equals(BiochemicalReaction.class))
+ if(conversionReactionClass.equals(TransportWithBiochemicalReaction.class) || conversionReactionClass.equals(BiochemicalReaction.class))
{
BiochemicalReaction biochemicalReaction = (BiochemicalReaction) conversion;
parseKineticLaw(reaction, biochemicalReaction, bpModel);
@@ -242,9 +271,9 @@
return setXref(bpModel, reaction, conversion);
}
- if(reactionClass.equals(TemplateReaction.class))
+ if(interactionReactionClass.equals(TemplateReaction.class))
{
- TemplateReaction templateReaction = (TemplateReaction) createBPEfromSBMLE(bpModel, reactionClass, reaction);
+ TemplateReaction templateReaction = (TemplateReaction) createBPEfromSBMLE(bpModel, interactionReactionClass, reaction);
/*
* Note: Because templateReaction is always acting as a production,
* TemplateDirectionType should always be FORWARD
@@ -252,7 +281,9 @@
templateReaction.setTemplateDirection(TemplateDirectionType.FORWARD);
return setXref(bpModel, reaction, templateReaction);
}
- Interaction interaction = createBPEfromSBMLE(bpModel, reactionClass, reaction);
+
+ Interaction interaction = createBPEfromSBMLE(bpModel, interactionReactionClass, reaction);
+
return setXref(bpModel, reaction, interaction);
}
@@ -538,7 +569,9 @@
//TODO: future implementation for setting entity.comment(). Currently not supported in BioPAX2SBML
// setComments(abstractNamedSBase, entity);
bpModel.add(entity);
- } else {
+ }
+ else
+ {
// TODO: remove existing one
// replace with new one
}
@@ -567,7 +600,7 @@
Entity entity = null;
boolean isPhysicalEntity = true;
- if(submodelId != null)
+ if(submodelId != null && mapReplacements.containsKey(submodelId))
{
Map<String, Boolean> replacingElement = mapReplacements.get(submodelId).get(species.getId());
@@ -594,6 +627,35 @@
}
}
+
+ if(submodelId != null)
+ {
+ Map<String, Boolean> replacingElement = mapReplacements.get(submodelId).get(speciesCompartment.getId());
+
+ if(replacingElement == null)
+ {
+ speciesCompartment = speciesCompartment.clone();
+ speciesCompartment.setId(submodelId + "__" + species.getId());
+
+ }
+ else if(replacingElement.values().contains(true))
+ {
+ //this is a replacement object
+ speciesCompartment = speciesCompartment.clone();
+ String elementId = replacingElement.keySet().iterator().next();
+ speciesCompartment.setId(elementId);
+ }
+ else
+ {
+ //this is a replacedBy object
+ speciesCompartment = speciesCompartment.clone();
+ String elementId = replacingElement.keySet().iterator().next();
+ speciesCompartment.setId(elementId);
+ // TODO: somehow to replace the object in the bpModel
+ }
+
+ }
+
int speciesSBOValue = species.getSBOTerm();
if(SBO.isChildOf(speciesSBOValue, SBO.getGene()))
{
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml 2016-08-12 04:34:25 UTC (rev 694)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml 2016-08-15 06:11:37 UTC (rev 695)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' standalone='no'?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
- <model id="defaultSBMLModelId" metaid="_7a4e88f6-c98d-4df2-8db4-461697bd658f">
+ <model id="defaultSBMLModelId" metaid="_039f1c65-01e7-4113-aad3-a3f02cc6d488">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -8,7 +8,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#_7a4e88f6-c98d-4df2-8db4-461697bd658f">
+ <rdf:Description rdf:about="#_039f1c65-01e7-4113-aad3-a3f02cc6d488">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml 2016-08-12 04:34:25 UTC (rev 694)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml 2016-08-15 06:11:37 UTC (rev 695)
@@ -16,7 +16,7 @@
sboTerm="SBO:0000252" />
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="pLac_prod_GFP_pLac_prod_TetR" name="http://www.humanmetabolism.org/#pLac_prod_GFP_pLac_prod_TetR" reversible="false" sboTerm="SBO:0000589">
+ <reaction fast="false" id="C1__pLac_prod_GFP_pLac_prod_TetR" name="http://www.humanmetabolism.org/#C1__pLac_prod_GFP_pLac_prod_TetR" reversible="false" sboTerm="SBO:0000589">
<listOfProducts>
<speciesReference constant="true" species="GFP" />
<speciesReference constant="true" species="TetR" />
@@ -41,7 +41,7 @@
sboTerm="SBO:0000252" />
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="P0_prod_LacI" name="http://www.humanmetabolism.org/#P0_prod_LacI" reversible="false" sboTerm="SBO:0000589">
+ <reaction fast="false" id="C2__P0_prod_LacI" name="http://www.humanmetabolism.org/#C2__P0_prod_LacI" reversible="false" sboTerm="SBO:0000589">
<listOfProducts>
<speciesReference constant="true" species="LacI" />
</listOfProducts>
@@ -53,7 +53,7 @@
</listOfReactions>
</comp:modelDefinition>
</comp:listOfModelDefinitions>
- <model id="topLevel_sbmlModel" metaid="_188f3eb4-953c-4b35-b3d2-09aa97217964">
+ <model id="topLevel_sbmlModel" metaid="_5c21e73e-1f70-4447-b9c3-70492ff5fbc7">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -61,7 +61,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#_188f3eb4-953c-4b35-b3d2-09aa97217964">
+ <rdf:Description rdf:about="#_5c21e73e-1f70-4447-b9c3-70492ff5fbc7">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml 2016-08-12 04:34:25 UTC (rev 694)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml 2016-08-15 06:11:37 UTC (rev 695)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' standalone='no'?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
- <model id="defaultSBMLModelId" metaid="cef18744-9ba2-4044-8b2e-a22307cdbd3b">
+ <model id="defaultSBMLModelId" metaid="_324ce959-0c81-4a49-930b-66375671a0a4">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -8,7 +8,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#cef18744-9ba2-4044-8b2e-a22307cdbd3b">
+ <rdf:Description rdf:about="#_324ce959-0c81-4a49-930b-66375671a0a4">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
@@ -40,7 +40,7 @@
</listOfProducts>
<listOfModifiers>
<modifierSpeciesReference id="R0__S2" name="http://www.humanmetabolism.org/#R0__S2" sboTerm="SBO:0000013" species="S2" />
- <modifierSpeciesReference id="R0__S3" name="http://www.humanmetabolism.org/#R0__S3" sboTerm="SBO:0000021" species="S3" />
+ <modifierSpeciesReference id="R0__S3" name="http://www.humanmetabolism.org/#R0__S3" sboTerm="SBO:0000459" species="S3" />
</listOfModifiers>
</reaction>
</listOfReactions>
Modified: trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml
===================================================================
--- trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml 2016-08-12 04:34:25 UTC (rev 694)
+++ trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml 2016-08-15 06:11:37 UTC (rev 695)
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='utf-8' standalone='no'?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" comp:required="true" level="3" version="1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
- <comp:modelDefinition id="id1345359130_Negative_regulation_of__G_alpha_i_GDP_GTP_exchange_signaling_" metaid="_9fec6ef9-d6e3-4d7a-8a1a-d3c14a2a93f0"
+ <comp:modelDefinition id="id1345359130_Negative_regulation_of__G_alpha_i_GDP_GTP_exchange_signaling_" metaid="_5f362681-261b-48d0-9879-941ec4c9fc18"
name="Negative regulation of (G alpha i GDP-GTP exchange signaling) ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -22,7 +22,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_9fec6ef9-d6e3-4d7a-8a1a-d3c14a2a93f0">
+ <rdf:Description rdf:about="#_5f362681-261b-48d0-9879-941ec4c9fc18">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025356" />
@@ -52,7 +52,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" metaid="_31229841-07a5-46b7-8108-9f26baf60b58" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" metaid="_9f33ba22-0549-4144-b5d2-2f63fbf35216" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000007">
@@ -60,7 +60,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_31229841-07a5-46b7-8108-9f26baf60b58">
+ <rdf:Description rdf:about="#_9f33ba22-0549-4144-b5d2-2f63fbf35216">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="http://www.inoh.org/biopax/IC_NO_XREF" />
@@ -80,7 +80,7 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_47cc5e31-0a19-44e1-9254-33b2888030ec" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="eade8342-5943-4024-9846-b7e5a21f4246" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000010">
@@ -88,7 +88,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_47cc5e31-0a19-44e1-9254-33b2888030ec">
+ <rdf:Description rdf:about="#eade8342-5943-4024-9846-b7e5a21f4246">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P63092" />
@@ -116,7 +116,7 @@
</listOfCompartments>
<listOfSpecies>
<species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id830922164_RGS"
- initialAmount="1" metaid="_30f68469-682e-4ca1-8592-7b3fe20c9c64" name="RGS" sboTerm="SBO:0000252">
+ initialAmount="1" metaid="_69fe2e77-52dc-4106-a42c-a063c3435c26" name="RGS" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="IMR_0000431">
@@ -136,7 +136,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_30f68469-682e-4ca1-8592-7b3fe20c9c64">
+ <rdf:Description rdf:about="#_69fe2e77-52dc-4106-a42c-a063c3435c26">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/Q8K443" />
@@ -437,7 +437,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id1167711338_G_alpha_i" initialAmount="1"
- metaid="_67669ef6-5c18-4646-b63f-12acca77e3ca" name="G alpha i" sboTerm="SBO:0000252">
+ metaid="d815df9b-781d-42e8-aec4-691050d703f5" name="G alpha i" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0025194">
@@ -457,7 +457,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_67669ef6-5c18-4646-b63f-12acca77e3ca">
+ <rdf:Description rdf:about="#d815df9b-781d-42e8-aec4-691050d703f5">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025194" />
@@ -523,7 +523,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id2142488298_GTP"
- initialAmount="1" metaid="_6537d85a-f969-4249-920c-c7328e23feca" name="GTP" sboTerm="SBO:0000247">
+ initialAmount="1" metaid="_56625e40-d36d-4988-91f8-27a1e94d1339" name="GTP" sboTerm="SBO:0000247">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0021541">
@@ -543,7 +543,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_6537d85a-f969-4249-920c-c7328e23feca">
+ <rdf:Description rdf:about="#_56625e40-d36d-4988-91f8-27a1e94d1339">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="C00044" />
@@ -584,7 +584,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id790431118_GDP"
- initialAmount="1" metaid="_5075b551-1783-4794-9087-43fc2dd08c0c" name="GDP" sboTerm="SBO:0000247">
+ initialAmount="1" metaid="_198d3208-84c7-4f78-b65b-5572ab8a05e4" name="GDP" sboTerm="SBO:0000247">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="M1660">
@@ -604,7 +604,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_5075b551-1783-4794-9087-43fc2dd08c0c">
+ <rdf:Description rdf:about="#_198d3208-84c7-4f78-b65b-5572ab8a05e4">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="C00035" />
@@ -646,7 +646,7 @@
</species>
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="id537126859_Hydrolysis" metaid="_24009189-97f0-48ee-86aa-5f9bc6e95c58" name="http://www.inoh.org/biopax/id537126859_Hydrolysis" reversible="false"
+ <reaction fast="false" id="id537126859_Hydrolysis" metaid="_35bf191b-a589-44e1-baa4-01bffb51eb4c" name="http://www.inoh.org/biopax/id537126859_Hydrolysis" reversible="false"
sboTerm="SBO:0000176">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -678,7 +678,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_24009189-97f0-48ee-86aa-5f9bc6e95c58">
+ <rdf:Description rdf:about="#_35bf191b-a589-44e1-baa4-01bffb51eb4c">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="Inhibit" />
@@ -739,7 +739,7 @@
<speciesReference constant="true" species="id790431118_GDP" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="id1345090438_Control" metaid="_8cebbc63-0355-4ee4-b347-f71b90aaa9b2" name="http://www.inoh.org/biopax/id1345090438_Control" sboTerm="SBO:0000596"
+ <modifierSpeciesReference id="id1345090438_Control" metaid="adda40d2-5e8f-4651-8bd2-7e227955200b" name="http://www.inoh.org/biopax/id1345090438_Control" sboTerm="SBO:0000596"
species="id830922164_RGS">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -768,7 +768,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_8cebbc63-0355-4ee4-b347-f71b90aaa9b2">
+ <rdf:Description rdf:about="#adda40d2-5e8f-4651-8bd2-7e227955200b">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/8774883" />
@@ -818,7 +818,7 @@
</rdf:RDF>
</annotation>
</modifierSpeciesReference>
- <modifierSpeciesReference id="id373103285_Catalyze" metaid="_9fd77e7a-3ed4-4eef-93ff-4950ba26fcf5" name="http://www.inoh.org/biopax/id373103285_Catalyze" sboTerm="SBO:0000013"
+ <modifierSpeciesReference id="id373103285_Catalyze" metaid="a00941cf-599a-4495-9324-1f04bd61960e" name="http://www.inoh.org/biopax/id373103285_Catalyze" sboTerm="SBO:0000013"
species="id1167711338_G_alpha_i">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -847,7 +847,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_9fd77e7a-3ed4-4eef-93ff-4950ba26fcf5">
+ <rdf:Description rdf:about="#a00941cf-599a-4495-9324-1f04bd61960e">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/8774883" />
@@ -901,7 +901,7 @@
</reaction>
</listOfReactions>
</comp:modelDefinition>
- <comp:modelDefinition id="id505442170_Adenylate_cyclase_activation_signaling" metaid="_88e4b37c-15e7-413a-94fc-7187acc8398b"
+ <comp:modelDefinition id="id505442170_Adenylate_cyclase_activation_signaling" metaid="_51f8e529-3e7a-4f95-97a0-3073f2ee4767"
name="Adenylate cyclase activation signaling ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -922,7 +922,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_88e4b37c-15e7-413a-94fc-7187acc8398b">
+ <rdf:Description rdf:about="#_51f8e529-3e7a-4f95-97a0-3073f2ee4767">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="IEV_0002021" />
@@ -957,7 +957,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_8f3597e9-b354-45ce-a5ee-d743c8d5b20c" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_8e6731c3-a639-4c25-89ff-e1a18689a9fa" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000010">
@@ -965,7 +965,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_8f3597e9-b354-45ce-a5ee-d743c8d5b20c">
+ <rdf:Description rdf:about="#_8e6731c3-a639-4c25-89ff-e1a18689a9fa">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P63092" />
@@ -990,7 +990,7 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="plasma_membrane" metaid="_59bbd971-8b47-4956-9824-49cc1c7b8aae" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane" metaid="_03308032-09c8-4e91-88ce-8da31bf5ffc8" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000003">
@@ -998,7 +998,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_59bbd971-8b47-4956-9824-49cc1c7b8aae">
+ <rdf:Description rdf:about="#_03308032-09c8-4e91-88ce-8da31bf5ffc8">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/14734786" />
@@ -1031,7 +1031,7 @@
</listOfCompartments>
<listOfSpecies>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id914752420_adenylate_cyclase"
- initialAmount="1" metaid="c101019f-bde1-4cf1-9385-0b32a186fc5e" name="adenylate cyclase" sboTerm="SBO:0000252">
+ initialAmount="1" metaid="_044bfd85-bf30-4812-b0f8-0285f878b2c2" name="adenylate cyclase" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="IMR_0000313">
@@ -1051,7 +1051,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#c101019f-bde1-4cf1-9385-0b32a186fc5e">
+ <rdf:Description rdf:about="#_044bfd85-bf30-4812-b0f8-0285f878b2c2">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P97490" />
@@ -1212,7 +1212,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane" constant="false" hasOnlySubstanceUnits="true" id="id1767261917_G_alpha_s_GTP" initialAmount="1"
- metaid="aa4f751d-a3cb-449a-bc0d-614091b49f86" name="G alpha s_GTP" sboTerm="SBO:0000253">
+ metaid="e98f8792-4520-4e68-9d01-4d4e7d4e5289" name="G alpha s_GTP" sboTerm="SBO:0000253">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0012388">
@@ -1229,7 +1229,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#aa4f751d-a3cb-449a-bc0d-614091b49f86">
+ <rdf:Description rdf:about="#e98f8792-4520-4e68-9d01-4d4e7d4e5289">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0012388" />
@@ -1270,7 +1270,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane" constant="false" hasOnlySubstanceUnits="true" id="id561447739_adenylate_cyclase_G_alpha_s_GTP" initialAmount="1"
- metaid="c33760c3-3c79-4806-9dd7-97f31f1c904b" name="adenylate cyclase:G alpha s_GTP" sboTerm="SBO:0000253">
+ metaid="_3fe3b6c9-f1c2-4e09-af40-7228aead3f91" name="adenylate cyclase:G alpha s_GTP" sboTerm="SBO:0000253">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="M1632">
@@ -1287,7 +1287,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#c33760c3-3c79-4806-9dd7-97f31f1c904b">
+ <rdf:Description rdf:about="#_3fe3b6c9-f1c2-4e09-af40-7228aead3f91">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="M1632" />
@@ -1319,7 +1319,7 @@
</species>
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="id684626400_Binding" metaid="ef2dd342-1464-44a3-bd68-a035a25bfb80" name="http://www.inoh.org/biopax/id684626400_Binding" reversible="false" sboTerm="SBO:0000177">
+ <reaction fast="false" id="id684626400_Binding" metaid="_5b67bc22-6ce6-4b09-8513-5ac1d86a1fdb" name="http://www.inoh.org/biopax/id684626400_Binding" reversible="false" sboTerm="SBO:0000177">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="Inhibit">
@@ -1350,7 +1350,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#ef2dd342-1464-44a3-bd68-a035a25bfb80">
+ <rdf:Description rdf:about="#_5b67bc22-6ce6-4b09-8513-5ac1d86a1fdb">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="Inhibit" />
@@ -1414,7 +1414,7 @@
</reaction>
</listOfReactions>
</comp:modelDefinition>
- <comp:modelDefinition id="id1656077294_Negative_regulation_of__Binding_of_G_alpha_i_GTP_and_adenylate_cyclase_" metaid="b6941931-ae4b-4576-8764-1b76951bc365"
+ <comp:modelDefinition id="id1656077294_Negative_regulation_of__Binding_of_G_alpha_i_GTP_and_adenylate_cyclase_" metaid="_254e0d58-eb1e-4927-ab6e-4d4363c7f033"
name="Negative regulation of (Binding of G alpha i-GTP and adenylate cyclase) ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -1435,7 +1435,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#b6941931-ae4b-4576-8764-1b76951bc365">
+ <rdf:Description rdf:about="#_254e0d58-eb1e-4927-ab6e-4d4363c7f033">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="IEV_0002020" />
@@ -1465,7 +1465,7 @@
</rdf:RDF>
</annotation>
</comp:modelDefinition>
- <comp:modelDefinition id="id823066982_Negative_regulation_of__Binding_of_GPCR_ligand_and_GPCR_" metaid="daa5c22b-e050-4b78-a1f0-6856c6306387"
+ <comp:modelDefinition id="id823066982_Negative_regulation_of__Binding_of_GPCR_ligand_and_GPCR_" metaid="a24ff641-4d60-4e17-a4b7-0e366c178209"
name="Negative regulation of (Binding of GPCR ligand and GPCR) ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -1486,7 +1486,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#daa5c22b-e050-4b78-a1f0-6856c6306387">
+ <rdf:Description rdf:about="#a24ff641-4d60-4e17-a4b7-0e366c178209">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="P104" />
@@ -1516,7 +1516,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="cytoplasm" metaid="_61ea43d0-5822-4ff8-8b04-84a295b50b15" sboTerm="SBO:0000290">
+ <compartment constant="true" id="cytoplasm" metaid="_6f0d9046-1456-4a38-9a54-fb0051c3b011" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000036">
@@ -1524,7 +1524,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_61ea43d0-5822-4ff8-8b04-84a295b50b15">
+ <rdf:Description rdf:about="#_6f0d9046-1456-4a38-9a54-fb0051c3b011">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="http://www.inoh.org/biopax/IC_NO_XREF" />
@@ -1544,7 +1544,7 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_4dba1457-e8d0-4a74-a53a-f109dfdc8044" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_487bb89e-c1d5-41b8-bc7b-23763199b826" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000010">
@@ -1552,7 +1552,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_4dba1457-e8d0-4a74-a53a-f109dfdc8044">
+ <rdf:Description rdf:about="#_487bb89e-c1d5-41b8-bc7b-23763199b826">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P63092" />
@@ -1580,7 +1580,7 @@
</listOfCompartments>
<listOfSpecies>
<species boundaryCondition="false" compartment="cytoplasm" constant="false" hasOnlySubstanceUnits="true" id="id141699547_pertussis_toxin" initialAmount="1"
- metaid="e4f86bc9-8706-48ad-8d35-124a0292c7e0" name="pertussis toxin" sboTerm="SBO:0000252">
+ metaid="dd380ff0-5d80-4c7f-9314-0877c39b0e28" name="pertussis toxin" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="IMR_0100469">
@@ -1600,7 +1600,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#e4f86bc9-8706-48ad-8d35-124a0292c7e0">
+ <rdf:Description rdf:about="#dd380ff0-5d80-4c7f-9314-0877c39b0e28">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="IMR_0100469" />
@@ -1661,7 +1661,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id428834256_G_alpha_i" initialAmount="1"
- metaid="_455f1c31-18f4-4a3a-ace3-4a046c239834" name="G alpha i" sboTerm="SBO:0000252">
+ metaid="_665d19c2-b379-492e-9702-d6c7a309d726" name="G alpha i" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0025360">
@@ -1681,7 +1681,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_455f1c31-18f4-4a3a-ace3-4a046c239834">
+ <rdf:Description rdf:about="#_665d19c2-b379-492e-9702-d6c7a309d726">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P08752" />
@@ -1747,7 +1747,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id1339337698_G_alpha_i_ADP" initialAmount="1"
- metaid="_690cb6c9-d2ea-4508-adc2-65477ad491ce" name="G alpha i_ADP" sboTerm="SBO:0000252">
+ metaid="_5c0597e5-eac5-478b-819b-8c4f7ff4f1d5" name="G alpha i_ADP" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0025361">
@@ -1767,7 +1767,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_690cb6c9-d2ea-4508-adc2-65477ad491ce">
+ <rdf:Description rdf:about="#_5c0597e5-eac5-478b-819b-8c4f7ff4f1d5">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025361" />
@@ -1844,7 +1844,7 @@
</species>
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="id2122690064_ADP_ribosylation" metaid="_2c4d3007-54b8-4780-83d0-7c1c3ac54d77" name="http://www.inoh.org/biopax/id2122690064_ADP_ribosylation" reversible="false"
+ <reaction fast="false" id="id2122690064_ADP_ribosylation" metaid="_9978cdc3-6058-4115-bcb4-2305994e7539" name="http://www.inoh.org/biopax/id2122690064_ADP_ribosylation" reversible="false"
sboTerm="SBO:0000176">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -1869,7 +1869,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_2c4d3007-54b8-4780-83d0-7c1c3ac54d77">
+ <rdf:Description rdf:about="#_9978cdc3-6058-4115-bcb4-2305994e7539">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025358" />
@@ -1920,7 +1920,7 @@
<speciesReference constant="true" species="id1339337698_G_alpha_i_ADP" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="id1688410553_Catalyze" metaid="_1ddf7ca9-060f-4c37-8ec6-fca4cc3ba7a6" name="http://www.inoh.org/biopax/id1688410553_Catalyze" sboTerm="SBO:0000013"
+ <modifierSpeciesReference id="id1688410553_Catalyze" metaid="_8febc322-96ba-46dd-938f-a78fbbbca591" name="http://www.inoh.org/biopax/id1688410553_Catalyze" sboTerm="SBO:0000013"
species="id141699547_pertussis_toxin">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -1945,7 +1945,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_1ddf7ca9-060f-4c37-8ec6-fca4cc3ba7a6">
+ <rdf:Description rdf:about="#_8febc322-96ba-46dd-938f-a78fbbbca591">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/9032437" />
@@ -1994,7 +1994,7 @@
</reaction>
</listOfReactions>
</comp:modelDefinition>
- <comp:modelDefinition id="id753278671_Heterotrimeric_GPCR_signaling_pathway__through_G_alpha_i_and_pertussis_toxin_" metaid="_172fe43f-f549-4259-b16d-e36e68d7c3f1"
+ <comp:modelDefinition id="id753278671_Heterotrimeric_GPCR_signaling_pathway__through_G_alpha_i_and_pertussis_toxin_" metaid="_9ae8fd06-2387-4ce1-9898-254ea9925d23"
name="Heterotrimeric GPCR signaling pathway (through G alpha i and pertussis toxin) ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -2015,7 +2015,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_172fe43f-f549-4259-b16d-e36e68d7c3f1">
+ <rdf:Description rdf:about="#_9ae8fd06-2387-4ce1-9898-254ea9925d23">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="IEV_0000692" />
@@ -2045,7 +2045,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="plasma_membrane" metaid="_9e023c2e-375c-44ee-b65b-39...
[truncated message content] |
|
From: <tra...@us...> - 2016-08-12 04:34:27
|
Revision: 694
http://sourceforge.net/p/sbfc/code/694
Author: tramy-nguyen
Date: 2016-08-12 04:34:25 +0000 (Fri, 12 Aug 2016)
Log Message:
-----------
- implemented version 2 for modification of sbml models containing replacements and replacedBy for species
Modified Paths:
--------------
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java
Added Paths:
-----------
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML2_roundtripping.owl
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-12 04:33:23 UTC (rev 693)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-12 04:34:25 UTC (rev 694)
@@ -47,17 +47,23 @@
import org.sbml.jsbml.Species;
import org.sbml.jsbml.SpeciesReference;
import org.sbml.jsbml.ext.comp.CompConstants;
+import org.sbml.jsbml.ext.comp.CompModelPlugin;
import org.sbml.jsbml.ext.comp.CompSBMLDocumentPlugin;
import org.sbml.jsbml.ext.comp.CompSBasePlugin;
import org.sbml.jsbml.ext.comp.ModelDefinition;
+import org.sbml.jsbml.ext.comp.Port;
+import org.sbml.jsbml.ext.comp.ReplacedBy;
import org.sbml.jsbml.ext.comp.ReplacedElement;
+import org.sbml.jsbml.ext.comp.Submodel;
public class SBML2BioPAXConverter {
-
+
private static Log log = LogFactory.getLog(SBML2BioPAXConverter.class);
private SBML2BioPAXUtilities sbml2BioPAXUtilities = new SBML2BioPAXUtilities();
+ private Map<String, Map<String, Map<String, Boolean>>> mapReplacements;
+
/**
* Hold the sbml model and the element that will replace all other interconnection model elements
* (i.e. elements A->B->C->D->E . Arrows indicate replacements.
@@ -126,91 +132,141 @@
return sbase;
}
+ private void mapReplacement(String submodelId, String sbaseElementId, String replacingElementId, Boolean isReplacement)
+ {
+ //replacement : (pathway, entity) -> entity (replacing element)
+ //replacedBy: (pathway, entity) <- entity (replacing element)
+ if(!mapReplacements.containsKey(submodelId))
+ {
+ mapReplacements.put(submodelId, new HashMap<String, Map<String, Boolean>>());
+ }
+
+ if(!mapReplacements.get(submodelId).containsKey(sbaseElementId))
+ {
+ mapReplacements.get(submodelId).put(sbaseElementId, new HashMap<String, Boolean>());
+ }
+ mapReplacements.get(submodelId).get(sbaseElementId).put(replacingElementId, isReplacement);
+ }
+
public Model convert(SBMLDocument sbmlDocument)
{
- replacementMap = new HashMap<String, Map<SBase, InterconnectionElements>>();
-
+ mapReplacements = new HashMap<String, Map<String, Map<String, Boolean>>>();
+
org.sbml.jsbml.Model sbmlTopLevelModel = sbmlDocument.getModel();
-
+
CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDocument.getPlugin(CompConstants.shortLabel);
-
+
+ Model bpModel = sbml2BioPAXUtilities.createModel();
+ CompModelPlugin compTopLevelModel = (CompModelPlugin) sbmlTopLevelModel.getExtension(CompConstants.shortLabel);
+
for(Species topLevelSpecies : sbmlTopLevelModel.getListOfSpecies())
{
CompSBasePlugin replacementPlugin = (CompSBasePlugin) sbmlTopLevelModel.getSpecies(topLevelSpecies.getId()).getPlugin(CompConstants.shortLabel);
- for(ReplacedElement replacementElement : replacementPlugin.getListOfReplacedElements())
+
+ if(replacementPlugin.isSetListOfReplacedElements())
{
- for(ModelDefinition submodelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ for(ReplacedElement replacementElement : replacementPlugin.getListOfReplacedElements())
{
- if(submodelDef.containsSpecies(replacementElement.getIdRef()))
+ if(replacementElement.isSetSubmodelRef())
{
- Species submodelSpecies = submodelDef.getSpecies(replacementElement.getIdRef());
- parseReplacement(sbmlTopLevelModel.getId(), submodelDef.getModel().getId(), topLevelSpecies, submodelSpecies);
+ //go to the referenced submodel
+ Submodel refSubmodel = compTopLevelModel.getSubmodel(replacementElement.getSubmodelRef());
+ if(refSubmodel != null && refSubmodel.isSetModelRef())
+ {
+ ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(refSubmodel.getModelRef());
+ CompModelPlugin compSubModel = (CompModelPlugin) submodelDef.getExtension(CompConstants.shortLabel);
+
+ if(replacementElement.isSetPortRef())
+ {
+ Port modelPort = compSubModel.getPort(replacementElement.getPortRef());
+ if(modelPort != null)
+ {
+ Species submodelSpecies = submodelDef.getSpecies(modelPort.getIdRef());
+ if(submodelSpecies != null)
+ {
+ //TODO:
+ mapReplacement(refSubmodel.getId(), submodelSpecies.getId(), topLevelSpecies.getId(), true);
+ }
+ }
+ }
+ //TODO: check of idRef and look up modelDef using idRef
+ if(replacementElement.isSetIdRef())
+ {
+
+ }
+ }
}
+
}
}
- }
-
- for(Compartment topLevelCompartment : sbmlTopLevelModel.getListOfCompartments())
- {
- CompSBasePlugin replacementPlugin = (CompSBasePlugin) sbmlTopLevelModel.getCompartment(topLevelCompartment.getId()).getPlugin(CompConstants.shortLabel);
- for(ReplacedElement replacementElement : replacementPlugin.getListOfReplacedElements())
+ if(replacementPlugin.isSetReplacedBy())
{
- for(ModelDefinition submodelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ ReplacedBy replacementElement = replacementPlugin.getReplacedBy();
+ if(replacementElement.isSetSubmodelRef())
{
- if(submodelDef.containsCompartment(replacementElement.getIdRef()))
+ //go to the referenced submodel
+ Submodel refSubmodel = compTopLevelModel.getSubmodel(replacementElement.getSubmodelRef());
+ if(refSubmodel != null && refSubmodel.isSetModelRef())
{
- Compartment submodelReaction = submodelDef.getCompartment(replacementElement.getIdRef());
- parseReplacement(sbmlTopLevelModel.getId(), submodelDef.getModel().getId(), topLevelCompartment, submodelReaction);
+ ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(refSubmodel.getModelRef());
+ CompModelPlugin compSubModel = (CompModelPlugin) submodelDef.getExtension(CompConstants.shortLabel);
+
+ if(replacementElement.isSetPortRef())
+ {
+ Port modelPort = compSubModel.getPort(replacementElement.getPortRef());
+ if(modelPort != null)
+ {
+ Species submodelSpecies = submodelDef.getSpecies(modelPort.getIdRef());
+ if(submodelSpecies != null)
+ {
+ //TODO:
+ mapReplacement(refSubmodel.getId(), submodelSpecies.getId(), topLevelSpecies.getId(), false);
+ }
+ }
+ }
+ //TODO: check of idRef and look up modelDef using idRef
}
}
+
}
+
}
-
- for(Reaction topLevelReaction : sbmlTopLevelModel.getListOfReactions())
- {
- CompSBasePlugin replacementPlugin = (CompSBasePlugin) sbmlTopLevelModel.getReaction(topLevelReaction.getId()).getPlugin(CompConstants.shortLabel);
- for(ReplacedElement replacementElement : replacementPlugin.getListOfReplacedElements())
- {
- for(ModelDefinition submodelDef : compSBMLDocPlugin.getListOfModelDefinitions())
- {
- if(submodelDef.containsReaction(replacementElement.getIdRef()))
- {
- Reaction submodelReaction = submodelDef.getReaction(replacementElement.getIdRef());
- parseReplacement(sbmlTopLevelModel.getId(), submodelDef.getModel().getId(), topLevelReaction, submodelReaction);
- }
- }
- }
- }
-
+
+ System.out.println(mapReplacements.toString());
log.debug("First thing first: create a BioPAX model");
- Model bpModel = sbml2BioPAXUtilities.createModel();
+ // Model bpModel = sbml2BioPAXUtilities.createModel();
log.debug("Now, let's create a Pathway that corresponds to this SBML model.");
Pathway pathway = null;//sbml2BioPAXUtilities.convertPathway(bpModel, sbmlTopLevelModel);
// Species -> PhysicalEntities [start]
log.debug("There are " + sbmlTopLevelModel.getNumSpecies() + " reactions in the SBML model. ");
- parseSpecies(sbmlTopLevelModel, bpModel);
+ parseSpecies(sbmlTopLevelModel, bpModel, pathway, null);
// Reactions -> Conversions [start]
log.debug("There are " + sbmlTopLevelModel.getNumReactions() + " reactions in the SBML model. ");
log.debug("Let's iterate over reactions and convert them one by one.");
- parseReactions(sbmlTopLevelModel, bpModel, pathway);
+ parseReactions(sbmlTopLevelModel, bpModel, pathway, null);
//TODO:
/*
* take the sbmlModel (which is the sbml toplevel model) and get all ModelDefinitions
* to parse all of their species and reactions.
*/
-// CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDocument.getPlugin(CompConstants.shortLabel);
+ // CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDocument.getPlugin(CompConstants.shortLabel);
// TODO: loop over Submodels, use source to find the ModelDefinition
- for(ModelDefinition subModelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ for(Submodel submodel : compTopLevelModel.getListOfSubmodels())
{
- Pathway subModelPathway = sbml2BioPAXUtilities.convertPathway(bpModel, subModelDef);
- parseSpecies(subModelDef.getModel(), bpModel);
- parseReactions(subModelDef, bpModel, subModelPathway);
+ if(submodel != null && submodel.isSetModelRef())
+ {
+ ModelDefinition submodelDef = compSBMLDocPlugin.getModelDefinition(submodel.getModelRef());
+ Pathway subModelPathway = sbml2BioPAXUtilities.convertPathway(bpModel, submodel);
+ parseSpecies(submodelDef.getModel(), bpModel, subModelPathway, submodel.getId());
+ parseReactions(submodelDef, bpModel, subModelPathway, submodel.getId());
+ }
}
+
// // The process above leaves some of the complexes empty. We need to fix this.
// sbml2BioPAXUtilities.fillComplexes(bpModel, sbmlModel);
//
@@ -224,23 +280,23 @@
return bpModel;
}
- private void parseSpecies(org.sbml.jsbml.Model sbmlModel, Model bpModel){
-
+ private void parseSpecies(org.sbml.jsbml.Model sbmlModel, Model bpModel, Pathway pathway, String submodelId){
+
for(Species species: sbmlModel.getListOfSpecies())
{
- Species replacementSpecies = (Species) getReplacementSBase(sbmlModel.getId(), species);
- Compartment replacementCompartment = (Compartment) getReplacementSBase(sbmlModel.getId(), species.getCompartmentInstance());
- sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementCompartment);
+ Compartment compartment = species.getCompartmentInstance();
+ sbml2BioPAXUtilities.convertSpecies(bpModel, species, compartment, submodelId, mapReplacements);
+
}
}
private void parseReactions(org.sbml.jsbml.Model sbmlModel,
- Model bpModel, Pathway pathway)
+ Model bpModel, Pathway pathway, String submodelId)
{
- for (Reaction reaction : sbmlModel.getListOfReactions()) {
- Reaction replacementReaction = (Reaction) getReplacementSBase(sbmlModel.getId(), reaction);
- log.trace("Working on reaction conversion: " + replacementReaction.getName());
- Interaction interaction = sbml2BioPAXUtilities.convertReaction(bpModel, replacementReaction);
+ for (Reaction reaction : sbmlModel.getListOfReactions())
+ {
+ log.trace("Working on reaction conversion: " + reaction.getName());
+ Interaction interaction = sbml2BioPAXUtilities.convertReaction(bpModel, reaction);
if(pathway != null)
{
pathway.addPathwayComponent(interaction);
@@ -248,46 +304,45 @@
// Modifiers -> Control reactions [start]
log.trace(
- "- There are " + replacementReaction.getNumModifiers() + " modifiers to this reaction. " +
+ "- There are " + reaction.getNumModifiers() + " modifiers to this reaction. " +
"Converting them to controls to this reaction."
);
- parseModifier(sbmlModel, replacementReaction, bpModel, interaction, pathway);
+ parseModifier(sbmlModel, reaction, bpModel, interaction, pathway, submodelId);
// Reactants -> Left Participants [start]
- log.trace("- There are " + replacementReaction.getNumReactants() + " reactants to this reaction. " +
+ log.trace("- There are " + reaction.getNumReactants() + " reactants to this reaction. " +
"Adding them to the reaction as left participants.");
- parseSpeciesReference(sbmlModel, replacementReaction.getListOfReactants(), bpModel, interaction, replacementReaction, true);
+ parseSpeciesReference(sbmlModel, reaction.getListOfReactants(), bpModel, interaction, reaction, true, submodelId);
// Reactants -> Left Participants [end]
// Products -> Right Participants [start]
- log.trace("- There are " + replacementReaction.getNumProducts() + " products to this reaction. " +
+ log.trace("- There are " + reaction.getNumProducts() + " products to this reaction. " +
"Adding them to the reaction as right participants.");
- parseSpeciesReference(sbmlModel, replacementReaction.getListOfProducts(), bpModel, interaction, replacementReaction, false);
+ parseSpeciesReference(sbmlModel, reaction.getListOfProducts(), bpModel, interaction, reaction, false, submodelId);
// Products -> Right Participants [end]
}
// Reactions -> Conversions [end]
}
private void parseModifier(org.sbml.jsbml.Model sbmlModel, Reaction reaction,
- Model bpModel, Interaction interaction, Pathway pathway)
+ Model bpModel, Interaction interaction, Pathway pathway, String submodelId)
{
ListOf<ModifierSpeciesReference> listOfModifiers = reaction.getListOfModifiers();
for(ModifierSpeciesReference modifier : listOfModifiers)
{
Species species = sbmlModel.getSpecies(modifier.getSpecies());
- Species replacementSpecies = (Species) getReplacementSBase(sbmlModel.getId(), species);
if(interaction instanceof GeneticInteraction)
{
- Gene gene = sbml2BioPAXUtilities.convertSpeciesToE(bpModel, Gene.class, UnificationXref.class, replacementSpecies);
+ Gene gene = sbml2BioPAXUtilities.convertSpeciesToE(bpModel, Gene.class, UnificationXref.class, species);
interaction.addParticipant(gene);
continue;
}
else if(interaction instanceof TemplateReaction)
{
TemplateReaction templateReaction = (TemplateReaction) interaction;
- Entity entity = (Entity) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
+ Entity entity = (Entity) sbml2BioPAXUtilities.convertSpecies(bpModel, species, species.getCompartmentInstance(), submodelId, mapReplacements);
if(entity instanceof Dna || entity instanceof DnaRegion
|| entity instanceof Rna || entity instanceof RnaRegion)
{
@@ -302,7 +357,7 @@
pathway.addPathwayComponent(control);
}
control.addControlled(interaction);
- Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
+ Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species, species.getCompartmentInstance(), submodelId, mapReplacements);
control.addController(controller);
}
}
@@ -315,7 +370,7 @@
pathway.addPathwayComponent(catalysis);
}
catalysis.addControlled(interaction);
- Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
+ Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species, species.getCompartmentInstance(), submodelId, mapReplacements);
catalysis.addController(controller);
for (ModifierSpeciesReference modifier2 : listOfModifiers)
{
@@ -323,13 +378,12 @@
{
continue;
}
-
+
Species species2 = sbmlModel.getSpecies(modifier2.getSpecies());
- Species replacementSpecies2 = (Species) getReplacementSBase(sbmlModel.getId(), species2);
-
+
if(modifier2.getSBOTerm() == SBO.getCatalyticActivator())
{
- PhysicalEntity cofactorEntity = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
+ PhysicalEntity cofactorEntity = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, species, species.getCompartmentInstance(), submodelId, mapReplacements);
catalysis.addCofactor(cofactorEntity);
}
else if(sbml2BioPAXUtilities.isControlType(modifier2.getSBOTerm()))
@@ -341,7 +395,7 @@
pathway.addPathwayComponent(modulation);
}
modulation.addControlled(catalysis);
- Controller controller2 = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies2, replacementSpecies2.getCompartmentInstance());
+ Controller controller2 = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species2, species2.getCompartmentInstance(), submodelId, mapReplacements);
modulation.addController(controller2);
}
}
@@ -352,15 +406,14 @@
}
private void parseSpeciesReference(org.sbml.jsbml.Model sbmlModel, ListOf<SpeciesReference> listOfSpeciesReferences,
- Model bpModel, Interaction interaction, Reaction reaction, boolean isLeft)
+ Model bpModel, Interaction interaction, Reaction reaction, boolean isLeft, String submodelId)
{
// Reactants -> Left Participants [start]
for (SpeciesReference speciesRef : listOfSpeciesReferences)
{
Species species = sbmlModel.getSpecies(speciesRef.getSpecies());
- Species replacementSpecies = (Species) getReplacementSBase(sbmlModel.getId(), species);
- Entity entity = sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
+ Entity entity = sbml2BioPAXUtilities.convertSpecies(bpModel, species, species.getCompartmentInstance(), submodelId, mapReplacements);
if(interaction instanceof Conversion)
{
Conversion conversion = (Conversion) interaction;
@@ -374,7 +427,7 @@
}
if(!Double.isNaN(speciesRef.getStoichiometry()))
{
- parseStoichiometry(reaction, speciesRef, conversion, sbmlModel, bpModel);
+ parseStoichiometry(reaction, speciesRef, conversion, sbmlModel, bpModel, submodelId);
}
}
else if(interaction instanceof TemplateReaction)
@@ -389,7 +442,7 @@
}
private void parseStoichiometry(Reaction reaction, SpeciesReference speciesRef, Conversion interaction,
- org.sbml.jsbml.Model sbmlModel, Model bpModel)
+ org.sbml.jsbml.Model sbmlModel, Model bpModel, String submodelId)
{
BioPAXFactory bioPAXFactory = BioPAXLevel.L3.getDefaultFactory();
String stoichId = null;
@@ -417,8 +470,7 @@
stoichio.setStoichiometricCoefficient((float) speciesRef.getStoichiometry());
Species species = sbmlModel.getSpecies(speciesRef.getSpecies());
- Species replacementSpecies = (Species) getReplacementSBase(sbmlModel.getId(), species);
- PhysicalEntity physicalEntityParticipant = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
+ PhysicalEntity physicalEntityParticipant = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, species, species.getCompartmentInstance(), submodelId, mapReplacements);
stoichio.setPhysicalEntity((PhysicalEntity) physicalEntityParticipant);
bpModel.add(stoichio);
interaction.addParticipantStoichiometry(stoichio);
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-12 04:33:23 UTC (rev 693)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-12 04:34:25 UTC (rev 694)
@@ -5,6 +5,7 @@
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Map;
import java.util.Set;
import javax.xml.stream.XMLStreamException;
@@ -116,9 +117,9 @@
* @param sbmlModel - The SBML Model to be converted to a BioPAX Interaction
* @return
*/
- public Pathway convertPathway(Model bpModel, org.sbml.jsbml.Model sbmlModel) {
- Pathway pathway = createBPEfromSBMLE(bpModel, Pathway.class, sbmlModel);
- for (Xref xref : generateXrefsForSBase(bpModel, sbmlModel)) {
+ public Pathway convertPathway(Model bpModel, AbstractNamedSBase abstractNamedSBase) {
+ Pathway pathway = createBPEfromSBMLE(bpModel, Pathway.class, abstractNamedSBase);
+ for (Xref xref : generateXrefsForSBase(bpModel, abstractNamedSBase)) {
pathway.addXref(xref);
}
return pathway;
@@ -537,6 +538,9 @@
//TODO: future implementation for setting entity.comment(). Currently not supported in BioPAX2SBML
// setComments(abstractNamedSBase, entity);
bpModel.add(entity);
+ } else {
+ // TODO: remove existing one
+ // replace with new one
}
return entity;
@@ -558,11 +562,38 @@
* @param species - The SBML Species to be converted to a BioPAX Physical Entities
* @return The converted BioPAX Physical Entity
*/
- public Entity convertSpecies(Model bpModel, Species species, Compartment speciesCompartment) {
+ public Entity convertSpecies(Model bpModel, Species species, Compartment speciesCompartment, String submodelId, Map<String, Map<String, Map<String, Boolean>>> mapReplacements) {
PhysicalEntity physicalEntity = null;
Entity entity = null;
boolean isPhysicalEntity = true;
+ if(submodelId != null)
+ {
+ Map<String, Boolean> replacingElement = mapReplacements.get(submodelId).get(species.getId());
+
+ if(replacingElement == null)
+ {
+ species = species.clone();
+ species.setId(submodelId + "__" + species.getId());
+
+ }
+ else if(replacingElement.values().contains(true))
+ {
+ //this is a replacement object
+ species = species.clone();
+ String elementId = replacingElement.keySet().iterator().next();
+ species.setId(elementId);
+ }
+ else
+ {
+ //this is a replacedBy object
+ species = species.clone();
+ String elementId = replacingElement.keySet().iterator().next();
+ species.setId(elementId);
+ // TODO: somehow to replace the object in the bpModel
+ }
+
+ }
int speciesSBOValue = species.getSBOTerm();
if(SBO.isChildOf(speciesSBOValue, SBO.getGene()))
{
Added: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml (rev 0)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML2_roundtripping.xml 2016-08-12 04:34:25 UTC (rev 694)
@@ -0,0 +1,164 @@
+<?xml version='1.0' encoding='utf-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" comp:required="true" level="3" version="1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:modelDefinition id="C1" name="http://www.humanmetabolism.org/#C1">
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="C1__pLac" initialAmount="1" name="http://www.humanmetabolism.org/#C1__pLac"
+ sboTerm="SBO:0000634" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
+ sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" initialAmount="1" name="http://www.humanmetabolism.org/#GFP"
+ sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
+ sboTerm="SBO:0000252" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="pLac_prod_GFP_pLac_prod_TetR" name="http://www.humanmetabolism.org/#pLac_prod_GFP_pLac_prod_TetR" reversible="false" sboTerm="SBO:0000589">
+ <listOfProducts>
+ <speciesReference constant="true" species="GFP" />
+ <speciesReference constant="true" species="TetR" />
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference species="C1__pLac" />
+ <modifierSpeciesReference id="pLac_prod_GFP_pLac_prod_TetR__A" name="http://www.humanmetabolism.org/#pLac_prod_GFP_pLac_prod_TetR__A" sboTerm="SBO:0000020" species="LacI" />
+ </listOfModifiers>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
+ <comp:modelDefinition id="C2" name="http://www.humanmetabolism.org/#C2">
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="C2__P0" initialAmount="1" name="http://www.humanmetabolism.org/#C2__P0"
+ sboTerm="SBO:0000634" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
+ sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
+ sboTerm="SBO:0000252" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="P0_prod_LacI" name="http://www.humanmetabolism.org/#P0_prod_LacI" reversible="false" sboTerm="SBO:0000589">
+ <listOfProducts>
+ <speciesReference constant="true" species="LacI" />
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference species="C2__P0" />
+ <modifierSpeciesReference id="P0_prod_LacI__A" name="http://www.humanmetabolism.org/#P0_prod_LacI__A" sboTerm="SBO:0000020" species="TetR" />
+ </listOfModifiers>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
+ </comp:listOfModelDefinitions>
+ <model id="topLevel_sbmlModel" metaid="_188f3eb4-953c-4b35-b3d2-09aa97217964">
+ <notes>
+ <body xmlns="http://www.w3.org/1999/xhtml">
+ <p>This model has been automatically generated by BioPAX2SBML</p>
+ </body>
+ </notes>
+ <annotation>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
+ <rdf:Description rdf:about="#_188f3eb4-953c-4b35-b3d2-09aa97217964">
+ <dc:creator>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <vCard:ORG rdf:parseType="Resource">
+ <vCard:Orgname>GSoC 2016, National Resource for Network Biology</vCard:Orgname>
+ </vCard:ORG>
+ </rdf:li>
+ </rdf:Bag>
+ </dc:creator>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ <comp:listOfSubmodels xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:submodel comp:id="submodel__C1" comp:modelRef="C1" />
+ <comp:submodel comp:id="submodel__C2" comp:modelRef="C2" />
+ </comp:listOfSubmodels>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="Cell" comp:submodelRef="submodel__C1" />
+ <comp:replacedElement comp:idRef="Cell" comp:submodelRef="submodel__C2" />
+ </comp:listOfReplacedElements>
+ </compartment>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI_IPTG" initialAmount="1" name="http://www.humanmetabolism.org/#LacI_IPTG"
+ sboTerm="SBO:0000253" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
+ sboTerm="SBO:0000252">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="LacI" comp:submodelRef="submodel__C1" />
+ <comp:replacedElement comp:idRef="LacI" comp:submodelRef="submodel__C2" />
+ </comp:listOfReplacedElements>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="IPTG" initialAmount="1" name="http://www.humanmetabolism.org/#IPTG"
+ sboTerm="SBO:0000247" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR_aTc" initialAmount="1" name="http://www.humanmetabolism.org/#TetR_aTc"
+ sboTerm="SBO:0000253" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="aTc" initialAmount="1" name="http://www.humanmetabolism.org/#aTc"
+ sboTerm="SBO:0000247" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
+ sboTerm="SBO:0000252">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="TetR" comp:submodelRef="submodel__C1" />
+ <comp:replacedElement comp:idRef="TetR" comp:submodelRef="submodel__C2" />
+ </comp:listOfReplacedElements>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" initialAmount="1" name="http://www.humanmetabolism.org/#GFP" sboTerm="SBO:0000252">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="GFP" comp:submodelRef="submodel__C1" />
+ </comp:listOfReplacedElements>
+ </species>
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="Degradation_TetR_aTc" name="http://www.humanmetabolism.org/#Degradation_TetR_aTc" reversible="false" sboTerm="SBO:0000179">
+ <listOfReactants>
+ <speciesReference constant="true" id="Degradation_TetR_aTc__TetR_aTc" name="http://www.humanmetabolism.org/#Degradation_TetR_aTc__TetR_aTc" species="TetR_aTc" stoichiometry="1" />
+ </listOfReactants>
+ </reaction>
+ <reaction fast="false" id="Degradation_TetR" name="http://www.humanmetabolism.org/#Degradation_TetR" reversible="false" sboTerm="SBO:0000179">
+ <listOfReactants>
+ <speciesReference constant="true" id="Degradation_TetR__TetR" name="http://www.humanmetabolism.org/#Degradation_TetR__TetR" species="TetR" stoichiometry="1" />
+ </listOfReactants>
+ </reaction>
+ <reaction fast="false" id="Degradation_LacI" name="http://www.humanmetabolism.org/#Degradation_LacI" reversible="false" sboTerm="SBO:0000179">
+ <listOfReactants>
+ <speciesReference constant="true" id="Degradation_LacI__LacI" name="http://www.humanmetabolism.org/#Degradation_LacI__LacI" species="LacI" stoichiometry="1" />
+ </listOfReactants>
+ </reaction>
+ <reaction fast="false" id="Complex_LacI_IPTG" name="http://www.humanmetabolism.org/#Complex_LacI_IPTG" reversible="true" sboTerm="SBO:0000177">
+ <listOfReactants>
+ <speciesReference constant="true" id="Complex_LacI_IPTG__LacI" name="http://www.humanmetabolism.org/#Complex_LacI_IPTG__LacI" species="LacI" stoichiometry="2" />
+ <speciesReference constant="true" id="Complex_LacI_IPTG__IPTG" name="http://www.humanmetabolism.org/#Complex_LacI_IPTG__IPTG" species="IPTG" stoichiometry="2" />
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" id="Complex_LacI_IPTG__LacI_IPTG" name="http://www.humanmetabolism.org/#Complex_LacI_IPTG__LacI_IPTG" species="LacI_IPTG" stoichiometry="1" />
+ </listOfProducts>
+ </reaction>
+ <reaction fast="false" id="Degradation_GFP" name="http://www.humanmetabolism.org/#Degradation_GFP" reversible="false" sboTerm="SBO:0000179">
+ <listOfReactants>
+ <speciesReference constant="true" id="Degradation_GFP__GFP" name="http://www.humanmetabolism.org/#Degradation_GFP__GFP" species="GFP" stoichiometry="1" />
+ </listOfReactants>
+ </reaction>
+ <reaction fast="false" id="Complex_TetR_aTc" name="http://www.humanmetabolism.org/#Complex_TetR_aTc" reversible="true" sboTerm="SBO:0000177">
+ <listOfReactants>
+ <speciesReference constant="true" id="Complex_TetR_aTc__aTc" name="http://www.humanmetabolism.org/#Complex_TetR_aTc__aTc" species="aTc" stoichiometry="2" />
+ <speciesReference constant="true" id="Complex_TetR_aTc__TetR" name="http://www.humanmetabolism.org/#Complex_TetR_aTc__TetR" species="TetR" stoichiometry="2" />
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" id="Complex_TetR_aTc__TetR_aTc" name="http://www.humanmetabolism.org/#Complex_TetR_aTc__TetR_aTc" species="TetR_aTc" stoichiometry="1" />
+ </listOfProducts>
+ </reaction>
+ <reaction fast="false" id="Degradation_LacI_IPTG" name="http://www.humanmetabolism.org/#Degradation_LacI_IPTG" reversible="false" sboTerm="SBO:0000179">
+ <listOfReactants>
+ <speciesReference constant="true" id="Degradation_LacI_IPTG__LacI_IPTG" name="http://www.humanmetabolism.org/#Degradation_LacI_IPTG__LacI_IPTG" species="LacI_IPTG" stoichiometry="1" />
+ </listOfReactants>
+ </reaction>
+ </listOfReactions>
+ </model>
+</sbml>
Modified: trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java 2016-08-12 04:33:23 UTC (rev 693)
+++ trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java 2016-08-12 04:34:25 UTC (rev 694)
@@ -282,12 +282,12 @@
@Test public void test_GeneticToggleSwitchFile()
{
- String fileName = "GeneticToggleSBML";
+ String fileName = "GeneticToggleSBML2";
String xmlFile = "./test/org/sbfc/test/resources/" + fileName + ".xml";
org.biopax.paxtools.model.Model bioModel = readSBMLFiles(xmlFile);
BioPAXModel sbfcBiopaxModel = new BioPAXModel(bioModel);
-
+ printBioPAXModel(sbfcBiopaxModel.getModel());
saveBioModelToFile(bioModel, fileName + "_roundtripping");
SBMLModel sbfcSBMLModel = TestOWLFiles.readOWLModel(sbfcBiopaxModel);
TestOWLFiles.saveSBMLModelToFile(sbfcSBMLModel, fileName+"_roundtripping");
Added: trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML2_roundtripping.owl
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML2_roundtripping.owl (rev 0)
+++ trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML2_roundtripping.owl 2016-08-12 04:34:25 UTC (rev 694)
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rdf:RDF
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:owl="http://www.w3.org/2002/07/owl#"
+ xmlns:bp="http://www.biopax.org/release/biopax-level3.owl#"
+ xml:base="http://www.humanmetabolism.org/#">
+<owl:Ontology rdf:about="">
+ <owl:imports rdf:resource="http://www.biopax.org/release/biopax-level3.owl#" />
+</owl:Ontology>
+
+<bp:Degradation rdf:ID="Degradation_TetR_aTc">
+ <bp:participantStoichiometry rdf:resource="#Degradation_TetR_aTc__TetR_aTc" />
+ <bp:spontaneous rdf:datatype = "http://www.w3.org/2001/XMLSchema#boolean">false</bp:spontaneous>
+ <bp:left rdf:resource="#TetR_aTc" />
+ <bp:conversionDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">LEFT_TO_RIGHT</bp:conversionDirection>
+</bp:Degradation>
+
+<bp:Protein rdf:ID="GFP">
+ <bp:cellularLocation rdf:resource="#Cell" />
+</bp:Protein>
+
+<bp:Degradation rdf:ID="Degradation_TetR">
+ <bp:participantStoichiometry rdf:resource="#Degradation_TetR__TetR" />
+ <bp:spontaneous rdf:datatype = "http://www.w3.org/2001/XMLSchema#boolean">false</bp:spontaneous>
+ <bp:left rdf:resource="#TetR" />
+ <bp:conversionDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">LEFT_TO_RIGHT</bp:conversionDirection>
+</bp:Degradation>
+
+<bp:Stoichiometry rdf:ID="Complex_TetR_aTc__TetR_aTc">
+ <bp:physicalEntity rdf:resource="#TetR_aTc" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:Complex rdf:ID="LacI_IPTG">
+ <bp:cellularLocation rdf:resource="#Cell" />
+</bp:Complex>
+
+<bp:Stoichiometry rdf:ID="Complex_TetR_aTc__TetR">
+ <bp:physicalEntity rdf:resource="#TetR" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">2.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:DnaRegion rdf:ID="C1__pLac">
+ <bp:cellularLocation rdf:resource="#Cell" />
+</bp:DnaRegion>
+
+<bp:TemplateReactionRegulation rdf:ID="pLac_prod_GFP_pLac_prod_TetR__A">
+ <bp:controlled rdf:resource="#pLac_prod_GFP_pLac_prod_TetR" />
+ <bp:controller rdf:resource="#LacI" />
+ <bp:controlType rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">INHIBITION</bp:controlType>
+</bp:TemplateReactionRegulation>
+
+<bp:Stoichiometry rdf:ID="Complex_LacI_IPTG__LacI_IPTG">
+ <bp:physicalEntity rdf:resource="#LacI_IPTG" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:Stoichiometry rdf:ID="Degradation_LacI_IPTG__LacI_IPTG">
+ <bp:physicalEntity rdf:resource="#LacI_IPTG" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:Protein rdf:ID="LacI">
+ <bp:cellularLocation rdf:resource="#Cell" />
+</bp:Protein>
+
+<bp:SmallMolecule rdf:ID="IPTG">
+ <bp:cellularLocation rdf:resource="#Cell" />
+</bp:SmallMolecule>
+
+<bp:TemplateReactionRegulation rdf:ID="P0_prod_LacI__A">
+ <bp:controlled rdf:resource="#P0_prod_LacI" />
+ <bp:controller rdf:resource="#TetR" />
+ <bp:controlType rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">INHIBITION</bp:controlType>
+</bp:TemplateReactionRegulation>
+
+<bp:Degradation rdf:ID="Degradation_LacI">
+ <bp:participantStoichiometry rdf:resource="#Degradation_LacI__LacI" />
+ <bp:spontaneous rdf:datatype = "http://www.w3.org/2001/XMLSchema#boolean">false</bp:spontaneous>
+ <bp:left rdf:resource="#LacI" />
+ <bp:conversionDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">LEFT_TO_RIGHT</bp:conversionDirection>
+</bp:Degradation>
+
+<bp:ComplexAssembly rdf:ID="Complex_LacI_IPTG">
+ <bp:participantStoichiometry rdf:resource="#Complex_LacI_IPTG__LacI" />
+ <bp:participantStoichiometry rdf:resource="#Complex_LacI_IPTG__IPTG" />
+ <bp:participantStoichiometry rdf:resource="#Complex_LacI_IPTG__LacI_IPTG" />
+ <bp:right rdf:resource="#LacI_IPTG" />
+ <bp:spontaneous rdf:datatype = "http://www.w3.org/2001/XMLSchema#boolean">false</bp:spontaneous>
+ <bp:left rdf:resource="#LacI" />
+ <bp:left rdf:resource="#IPTG" />
+ <bp:conversionDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">REVERSIBLE</bp:conversionDirection>
+</bp:ComplexAssembly>
+
+<bp:Complex rdf:ID="TetR_aTc">
+ <bp:cellularLocation rdf:resource="#Cell" />
+</bp:Complex>
+
+<bp:Stoichiometry rdf:ID="Degradation_LacI__LacI">
+ <bp:physicalEntity rdf:resource="#LacI" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:SmallMolecule rdf:ID="aTc">
+ <bp:cellularLocation rdf:resource="#Cell" />
+</bp:SmallMolecule>
+
+<bp:Pathway rdf:ID="C1">
+ <bp:pathwayComponent rdf:resource="#pLac_prod_GFP_pLac_prod_TetR" />
+ <bp:pathwayComponent rdf:resource="#pLac_prod_GFP_pLac_prod_TetR__A" />
+</bp:Pathway>
+
+<bp:Degradation rdf:ID="Degradation_GFP">
+ <bp:participantStoichiometry rdf:resource="#Degradation_GFP__GFP" />
+ <bp:spontaneous rdf:datatype = "http://www.w3.org/2001/XMLSchema#boolean">false</bp:spontaneous>
+ <bp:left rdf:resource="#GFP" />
+ <bp:conversionDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">LEFT_TO_RIGHT</bp:conversionDirection>
+</bp:Degradation>
+
+<bp:Pathway rdf:ID="C2">
+ <bp:pathwayComponent rdf:resource="#P0_prod_LacI" />
+ <bp:pathwayComponent rdf:resource="#P0_prod_LacI__A" />
+</bp:Pathway>
+
+<bp:Protein rdf:ID="TetR">
+ <bp:cellularLocation rdf:resource="#Cell" />
+</bp:Protein>
+
+<bp:DnaRegion rdf:ID="C2__P0">
+ <bp:cellularLocation rdf:resource="#Cell" />
+</bp:DnaRegion>
+
+<bp:TemplateReaction rdf:ID="pLac_prod_GFP_pLac_prod_TetR">
+ <bp:template rdf:resource="#C1__pLac" />
+ <bp:product rdf:resource="#GFP" />
+ <bp:product rdf:resource="#TetR" />
+ <bp:participant rdf:resource="#GFP" />
+ <bp:participant rdf:resource="#C1__pLac" />
+ <bp:participant rdf:resource="#TetR" />
+ <bp:templateDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">FORWARD</bp:templateDirection>
+</bp:TemplateReaction>
+
+<bp:Stoichiometry rdf:ID="Complex_TetR_aTc__aTc">
+ <bp:physicalEntity rdf:resource="#aTc" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">2.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:Stoichiometry rdf:ID="Degradation_TetR_aTc__TetR_aTc">
+ <bp:physicalEntity rdf:resource="#TetR_aTc" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:Stoichiometry rdf:ID="Degradation_GFP__GFP">
+ <bp:physicalEntity rdf:resource="#GFP" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:Stoichiometry rdf:ID="Complex_LacI_IPTG__LacI">
+ <bp:physicalEntity rdf:resource="#LacI" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">2.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:CellularLocationVocabulary rdf:ID="Cell">
+</bp:CellularLocationVocabulary>
+
+<bp:Stoichiometry rdf:ID="Complex_LacI_IPTG__IPTG">
+ <bp:physicalEntity rdf:resource="#IPTG" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">2.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:Stoichiometry rdf:ID="Degradation_TetR__TetR">
+ <bp:physicalEntity rdf:resource="#TetR" />
+ <bp:stoichiometricCoefficient rdf:datatype = "http://www.w3.org/2001/XMLSchema#float">1.0</bp:stoichiometricCoefficient>
+</bp:Stoichiometry>
+
+<bp:ComplexAssembly rdf:ID="Complex_TetR_aTc">
+ <bp:participantStoichiometry rdf:resource="#Complex_TetR_aTc__aTc" />
+ <bp:participantStoichiometry rdf:resource="#Complex_TetR_aTc__TetR_aTc" />
+ <bp:participantStoichiometry rdf:resource="#Complex_TetR_aTc__TetR" />
+ <bp:right rdf:resource="#TetR_aTc" />
+ <bp:spontaneous rdf:datatype = "http://www.w3.org/2001/XMLSchema#boolean">false</bp:spontaneous>
+ <bp:left rdf:resource="#aTc" />
+ <bp:left rdf:resource="#TetR" />
+ <bp:conversionDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">REVERSIBLE</bp:conversionDirection>
+</bp:ComplexAssembly>
+
+<bp:TemplateReaction rdf:ID="P0_prod_LacI">
+ <bp:template rdf:resource="#C2__P0" />
+ <bp:product rdf:resource="#LacI" />
+ <bp:participant rdf:resource="#LacI" />
+ <bp:participant rdf:resource="#C2__P0" />
+ <bp:templateDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">FORWARD</bp:templateDirection>
+</bp:TemplateReaction>
+
+<bp:Degradation rdf:ID="Degradation_LacI_IPTG">
+ <bp:participantStoichiometry rdf:resource="#Degradation_LacI_IPTG__LacI_IPTG" />
+ <bp:spontaneous rdf:datatype = "http://www.w3.org/2001/XMLSchema#boolean">false</bp:spontaneous>
+ <bp:left rdf:resource="#LacI_IPTG" />
+ <bp:conversionDirection rdf:datatype = "http://www.w3.org/2001/XMLSchema#string">LEFT_TO_RIGHT</bp:conversionDirection>
+</bp:Degradation>
+</rdf:RDF>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-08-12 04:33:27
|
Revision: 693
http://sourceforge.net/p/sbfc/code/693
Author: tramy-nguyen
Date: 2016-08-12 04:33:23 +0000 (Fri, 12 Aug 2016)
Log Message:
-----------
- Added GeneticToggleSwitch sbml model with 2 layers of hierarchy.
Added Paths:
-----------
trunk/test/org/sbfc/test/resources/GeneticToggleSBML2.xml
Added: trunk/test/org/sbfc/test/resources/GeneticToggleSBML2.xml
===================================================================
--- trunk/test/org/sbfc/test/resources/GeneticToggleSBML2.xml (rev 0)
+++ trunk/test/org/sbfc/test/resources/GeneticToggleSBML2.xml 2016-08-12 04:33:23 UTC (rev 693)
@@ -0,0 +1,1236 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" arrays:required="true" comp:required="true" fbc:required="false" layout:required="false" level="3" version="1" xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1">
+ <comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:modelDefinition id="LacI_Inverter" metaid="LacI_Inverter__iBioSim1_">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim1">
+ <mts:ModuleDefinitions>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/LacI_Inverter"/></rdf:Bag></mts:ModuleDefinitions></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ <comp:listOfPorts>
+ <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="input__A" comp:idRef="A" sboTerm="SBO:0000600"/>
+ <comp:port comp:id="output__B" comp:idRef="B" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="output__C" comp:idRef="C" sboTerm="SBO:0000601"/>
+ </comp:listOfPorts>
+ <layout:listOfLayouts xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <layout:layout layout:id="LacI_Inverter__iBioSim">
+ <layout:dimensions layout:depth="0" layout:height="425" layout:width="1070"/>
+ <layout:listOfCompartmentGlyphs>
+ <layout:compartmentGlyph layout:compartment="Cell" layout:id="Glyph__Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:compartmentGlyph>
+ </layout:listOfCompartmentGlyphs>
+ <layout:listOfSpeciesGlyphs>
+ <layout:speciesGlyph layout:id="Glyph__pLac" layout:species="pLac">
+ <layout:boundingBox>
+ <layout:position layout:x="65" layout:y="82.955078125"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__A" layout:species="A">
+ <layout:boundingBox>
+ <layout:position layout:x="65" layout:y="1.4775390625"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__B" layout:species="B">
+ <layout:boundingBox>
+ <layout:position layout:x="130" layout:y="188.91015625"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__C" layout:species="C">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="188.91015625"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ </layout:listOfSpeciesGlyphs>
+ <layout:listOfReactionGlyphs>
+ <layout:reactionGlyph layout:id="Glyph__pLac__Production__C">
+ <layout:boundingBox>
+ <layout:position layout:x="20" layout:y="208.91015625"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__pLac__Production__C" layout:role="product" layout:speciesGlyph="Glyph__C">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="115" layout:y="97.955078125"/>
+ <layout:end layout:x="20" layout:y="208.91015625"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ <layout:reactionGlyph layout:id="Glyph__pLac__Production__B">
+ <layout:boundingBox>
+ <layout:position layout:x="150" layout:y="208.91015625"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__pLac__Production__B" layout:role="product" layout:speciesGlyph="Glyph__B">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="115" layout:y="97.955078125"/>
+ <layout:end layout:x="150" layout:y="208.91015625"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ <layout:reactionGlyph layout:id="Glyph__A__repression__pLac">
+ <layout:boundingBox>
+ <layout:position layout:x="115" layout:y="97.955078125"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__A__repression__pLac" layout:role="product" layout:speciesGlyph="Glyph__pLac">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="85" layout:y="21.4775390625"/>
+ <layout:end layout:x="115" layout:y="97.955078125"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ </layout:listOfReactionGlyphs>
+ <layout:listOfTextGlyphs>
+ <layout:textGlyph layout:graphicalObject="Glyph__pLac" layout:id="TextGlyph__pLac" layout:text="pLac">
+ <layout:boundingBox>
+ <layout:position layout:x="65" layout:y="82.955078125"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__Cell" layout:id="TextGlyph__Cell" layout:text="Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__A" layout:id="TextGlyph__A" layout:text="A">
+ <layout:boundingBox>
+ <layout:position layout:x="65" layout:y="1.4775390625"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__B" layout:id="TextGlyph__B" layout:text="B">
+ <layout:boundingBox>
+ <layout:position layout:x="130" layout:y="188.91015625"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__C" layout:id="TextGlyph__C" layout:text="C">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="188.91015625"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ </layout:listOfTextGlyphs>
+ </layout:layout>
+ </layout:listOfLayouts>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" size="1" spatialDimensions="3"/>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="true" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" initialAmount="0" metaid="LacI_Inverter__LacI_Inverter__iBioSim2" sboTerm="SBO:0000252">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#LacI_Inverter__iBioSim2">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/LacI_Inverter__LacI"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="B" initialAmount="0" metaid="LacI_Inverter__LacI_Inverter__iBioSim3" sboTerm="SBO:0000252">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#LacI_Inverter__iBioSim3">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/LacI_Inverter__TetR"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="C" initialAmount="0" metaid="LacI_Inverter__LacI_Inverter__iBioSim4" sboTerm="SBO:0000252">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#LacI_Inverter__iBioSim4">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/LacI_Inverter__GFP"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="pLac" initialAmount="2" metaid="LacI_Inverter__LacI_Inverter__iBioSim5" sboTerm="SBO:0000590">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim5">
+ <mts:ComponentDefinitions>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/LacI_Inverter_Gene/1"/></rdf:Bag></mts:ComponentDefinitions><mts:FunctionalComponents>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/LacI_Inverter_Gene/1"/></rdf:Bag></mts:FunctionalComponents><mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/LacI_Inverter_Gene/1"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </species>
+ </listOfSpecies>
+ <listOfParameters>
+ <parameter constant="true" id="kr_f" metaid="LacI_Inverter__LacI_Inverter__iBioSim1" name="Forward repression binding rate" value="0.5"/>
+ <parameter constant="true" id="kr_r" metaid="LacI_Inverter__LacI_Inverter__iBioSim11" name="Reverse repression binding rate" value="1"/>
+ <parameter constant="true" id="ka_f" metaid="LacI_Inverter__LacI_Inverter__iBioSim12" name="Forward activation binding rate" value="0.0033"/>
+ <parameter constant="true" id="ka_r" metaid="LacI_Inverter__LacI_Inverter__iBioSim13" name="Reverse activation binding rate" value="1"/>
+ <parameter constant="true" id="ko_f" metaid="LacI_Inverter__LacI_Inverter__iBioSim14" name="Forward RNAP binding rate" value="0.033"/>
+ <parameter constant="true" id="ko_r" metaid="LacI_Inverter__LacI_Inverter__iBioSim15" name="Reverse RNAP binding rate" value="1"/>
+ <parameter constant="true" id="kao_f" metaid="LacI_Inverter__LacI_Inverter__iBioSim16" name="Forward activated RNAP binding rate" value="1"/>
+ <parameter constant="true" id="kao_r" metaid="LacI_Inverter__LacI_Inverter__iBioSim17" name="Reverse activated RNAP binding rate" value="1"/>
+ <parameter constant="true" id="nc" metaid="LacI_Inverter__LacI_Inverter__iBioSim18" name="Stoichiometry of binding" value="2"/>
+ <parameter constant="true" id="nr" metaid="LacI_Inverter__LacI_Inverter__iBioSim19" name="Initial RNAP count" value="30"/>
+ <parameter constant="true" id="ko" metaid="LacI_Inverter__LacI_Inverter__iBioSim20" name="Open complex production rate" value="0.05"/>
+ <parameter constant="true" id="kb" metaid="LacI_Inverter__LacI_Inverter__iBioSim21" name="Basal production rate" value="0.0001"/>
+ <parameter constant="true" id="ng" metaid="LacI_Inverter__LacI_Inverter__iBioSim22" name="Initial promoter count" value="2"/>
+ <parameter constant="true" id="np" metaid="LacI_Inverter__LacI_Inverter__iBioSim23" name="Stoichiometry of production" value="10"/>
+ <parameter constant="true" id="ka" metaid="LacI_Inverter__LacI_Inverter__iBioSim24" name="Activated production rate" value="0.25"/>
+ </listOfParameters>
+ <listOfReactions>
+ <reaction compartment="Cell" fast="false" id="pLac_prod_GFP_pLac_prod_TetR" metaid="LacI_Inverter__LacI_Inverter__iBioSim6" reversible="false" sboTerm="SBO:0000589">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim6">
+ <mts:Interactions>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/LacI_Inverter/pLac_prod_GFP"/><rdf:li rdf:resource="http://www.async.ece.utah.edu/md/LacI_Inverter/pLac_prod_TetR"/><rdf:li rdf:resource="http://www.async.ece.utah.edu/md/LacI_Inverter/LacI_rep_pLac"/></rdf:Bag></mts:Interactions></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ <listOfProducts>
+ <speciesReference constant="true" metaid="LacI_Inverter__LacI_Inverter__iBioSim8" species="C" stoichiometry="10">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim8">
+ <mts:Participations>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/LacI_Inverter/GFP"/></rdf:Bag></mts:Participations></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </speciesReference>
+ <speciesReference constant="true" metaid="LacI_Inverter__LacI_Inverter__iBioSim9" species="B" stoichiometry="10">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim9">
+ <mts:Participations>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/LacI_Inverter/TetR"/></rdf:Bag></mts:Participations></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </speciesReference>
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference sboTerm="SBO:0000598" species="pLac">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#">
+ <mts:Participations>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/LacI_Inverter/pLac_prod_GFP/pLac"/><rdf:li rdf:resource="http://www.async.ece.utah.edu/md/LacI_Inverter/pLac_prod_TetR/pLac"/><rdf:li rdf:resource="http://www.async.ece.utah.edu/md/LacI_Inverter/LacI_rep_pLac/pLac"/></rdf:Bag></mts:Participations></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </modifierSpeciesReference>
+ <modifierSpeciesReference metaid="LacI_Inverter__LacI_Inverter__iBioSim7" sboTerm="SBO:0000020" species="A">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim7">
+ <mts:Participations>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/LacI_Inverter/LacI"/></rdf:Bag></mts:Participations></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </modifierSpeciesReference>
+ </listOfModifiers>
+ <kineticLaw>
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <apply>
+ <divide/>
+ <apply>
+ <times/>
+ <apply>
+ <divide/>
+ <apply>
+ <times/>
+ <apply>
+ <times/>
+ <ci> pLac </ci>
+ <ci> ko </ci>
+ </apply>
+ <ci> ko_f </ci>
+ </apply>
+ <ci> ko_r </ci>
+ </apply>
+ <ci> nr </ci>
+ </apply>
+ <apply>
+ <plus/>
+ <apply>
+ <plus/>
+ <cn type="integer"> 1 </cn>
+ <apply>
+ <times/>
+ <apply>
+ <divide/>
+ <ci> ko_f </ci>
+ <ci> ko_r </ci>
+ </apply>
+ <ci> nr </ci>
+ </apply>
+ </apply>
+ <apply>
+ <power/>
+ <apply>
+ <times/>
+ <apply>
+ <divide/>
+ <ci> kr_f </ci>
+ <ci> kr_r </ci>
+ </apply>
+ <ci> A </ci>
+ </apply>
+ <ci> nc </ci>
+ </apply>
+ </apply>
+ </apply>
+ </math>
+ </kineticLaw>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
+ <comp:modelDefinition id="TetR_Inverter" metaid="TetR_Inverter__iBioSim2_">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim1">
+ <mts:ModuleDefinitions>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/TetR_Inverter"/></rdf:Bag></mts:ModuleDefinitions></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ <comp:listOfPorts>
+ <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="input__A" comp:idRef="A" sboTerm="SBO:0000600"/>
+ <comp:port comp:id="output__B" comp:idRef="B" sboTerm="SBO:0000601"/>
+ </comp:listOfPorts>
+ <layout:listOfLayouts xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <layout:layout layout:id="TetR_Inverter__iBioSim">
+ <layout:dimensions layout:depth="0" layout:height="425" layout:width="1070"/>
+ <layout:listOfCompartmentGlyphs>
+ <layout:compartmentGlyph layout:compartment="Cell" layout:id="Glyph__Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:compartmentGlyph>
+ </layout:listOfCompartmentGlyphs>
+ <layout:listOfSpeciesGlyphs>
+ <layout:speciesGlyph layout:id="Glyph__P0" layout:species="P0">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="82.955078125"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__A" layout:species="A">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="1.4775390625"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__B" layout:species="B">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="188.91015625"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ </layout:listOfSpeciesGlyphs>
+ <layout:listOfReactionGlyphs>
+ <layout:reactionGlyph layout:id="Glyph__P0__Production__B">
+ <layout:boundingBox>
+ <layout:position layout:x="20" layout:y="208.91015625"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__P0__Production__B" layout:role="product" layout:speciesGlyph="Glyph__B">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="50" layout:y="97.955078125"/>
+ <layout:end layout:x="20" layout:y="208.91015625"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ <layout:reactionGlyph layout:id="Glyph__A__repression__P0">
+ <layout:boundingBox>
+ <layout:position layout:x="50" layout:y="97.955078125"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__A__repression__P0" layout:role="product" layout:speciesGlyph="Glyph__P0">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="20" layout:y="21.4775390625"/>
+ <layout:end layout:x="50" layout:y="97.955078125"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ </layout:listOfReactionGlyphs>
+ <layout:listOfTextGlyphs>
+ <layout:textGlyph layout:graphicalObject="Glyph__P0" layout:id="TextGlyph__P0" layout:text="P0">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="82.955078125"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__Cell" layout:id="TextGlyph__Cell" layout:text="Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__A" layout:id="TextGlyph__A" layout:text="A">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="1.4775390625"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__B" layout:id="TextGlyph__B" layout:text="B">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="188.91015625"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ </layout:listOfTextGlyphs>
+ </layout:layout>
+ </layout:listOfLayouts>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" size="1" spatialDimensions="3"/>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="true" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="A" initialAmount="0" metaid="TetR_Inverter__TetR_Inverter__iBioSim2" sboTerm="SBO:0000252">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#TetR_Inverter__iBioSim2">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/TetR_Inverter__TetR"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="B" initialAmount="0" metaid="TetR_Inverter__TetR_Inverter__iBioSim3" sboTerm="SBO:0000252">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#TetR_Inverter__iBioSim3">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/TetR_Inverter__LacI"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="P0" initialAmount="2" metaid="TetR_Inverter__TetR_Inverter__iBioSim4" sboTerm="SBO:0000590">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim4">
+ <mts:ComponentDefinitions>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/TetR_Inverter_Gene/1"/></rdf:Bag></mts:ComponentDefinitions><mts:FunctionalComponents>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/TetR_Inverter_Gene/1"/></rdf:Bag></mts:FunctionalComponents><mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/TetR_Inverter_Gene/1"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </species>
+ </listOfSpecies>
+ <listOfParameters>
+ <parameter constant="true" id="kr_f" metaid="TetR_Inverter__TetR_Inverter__iBioSim1" name="Forward repression binding rate" value="0.5"/>
+ <parameter constant="true" id="kr_r" metaid="TetR_Inverter__TetR_Inverter__iBioSim9" name="Reverse repression binding rate" value="1"/>
+ <parameter constant="true" id="ka_f" metaid="TetR_Inverter__TetR_Inverter__iBioSim10" name="Forward activation binding rate" value="0.0033"/>
+ <parameter constant="true" id="ka_r" metaid="TetR_Inverter__TetR_Inverter__iBioSim11" name="Reverse activation binding rate" value="1"/>
+ <parameter constant="true" id="ko_f" metaid="TetR_Inverter__TetR_Inverter__iBioSim12" name="Forward RNAP binding rate" value="0.033"/>
+ <parameter constant="true" id="ko_r" metaid="TetR_Inverter__TetR_Inverter__iBioSim13" name="Reverse RNAP binding rate" value="1"/>
+ <parameter constant="true" id="kao_f" metaid="TetR_Inverter__TetR_Inverter__iBioSim14" name="Forward activated RNAP binding rate" value="1"/>
+ <parameter constant="true" id="kao_r" metaid="TetR_Inverter__TetR_Inverter__iBioSim15" name="Reverse activated RNAP binding rate" value="1"/>
+ <parameter constant="true" id="nc" metaid="TetR_Inverter__TetR_Inverter__iBioSim16" name="Stoichiometry of binding" value="2"/>
+ <parameter constant="true" id="nr" metaid="TetR_Inverter__TetR_Inverter__iBioSim17" name="Initial RNAP count" value="30"/>
+ <parameter constant="true" id="ko" metaid="TetR_Inverter__TetR_Inverter__iBioSim18" name="Open complex production rate" value="0.05"/>
+ <parameter constant="true" id="kb" metaid="TetR_Inverter__TetR_Inverter__iBioSim19" name="Basal production rate" value="0.0001"/>
+ <parameter constant="true" id="ng" metaid="TetR_Inverter__TetR_Inverter__iBioSim20" name="Initial promoter count" value="2"/>
+ <parameter constant="true" id="np" metaid="TetR_Inverter__TetR_Inverter__iBioSim21" name="Stoichiometry of production" value="10"/>
+ <parameter constant="true" id="ka" metaid="TetR_Inverter__TetR_Inverter__iBioSim22" name="Activated production rate" value="0.25"/>
+ </listOfParameters>
+ <listOfReactions>
+ <reaction compartment="Cell" fast="false" id="P0_prod_LacI" metaid="TetR_Inverter__TetR_Inverter__iBioSim5" reversible="false" sboTerm="SBO:0000589">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim5">
+ <mts:Interactions>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/TetR_Inverter/P0_prod_LacI"/><rdf:li rdf:resource="http://www.async.ece.utah.edu/md/TetR_Inverter/TetR_rep_P0"/></rdf:Bag></mts:Interactions></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ <listOfProducts>
+ <speciesReference constant="true" metaid="TetR_Inverter__TetR_Inverter__iBioSim7" species="B" stoichiometry="10">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim7">
+ <mts:Participations>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/TetR_Inverter/LacI"/></rdf:Bag></mts:Participations></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </speciesReference>
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference sboTerm="SBO:0000598" species="P0">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#">
+ <mts:Participations>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/TetR_Inverter/P0_prod_LacI/P0"/><rdf:li rdf:resource="http://www.async.ece.utah.edu/md/TetR_Inverter/TetR_rep_P0/P0"/></rdf:Bag></mts:Participations></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </modifierSpeciesReference>
+ <modifierSpeciesReference metaid="TetR_Inverter__TetR_Inverter__iBioSim6" sboTerm="SBO:0000020" species="A">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim6">
+ <mts:Participations>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/TetR_Inverter/TetR"/></rdf:Bag></mts:Participations></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </modifierSpeciesReference>
+ </listOfModifiers>
+ <kineticLaw>
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <apply>
+ <divide/>
+ <apply>
+ <times/>
+ <apply>
+ <divide/>
+ <apply>
+ <times/>
+ <apply>
+ <times/>
+ <ci> P0 </ci>
+ <ci> ko </ci>
+ </apply>
+ <ci> ko_f </ci>
+ </apply>
+ <ci> ko_r </ci>
+ </apply>
+ <ci> nr </ci>
+ </apply>
+ <apply>
+ <plus/>
+ <apply>
+ <plus/>
+ <cn type="integer"> 1 </cn>
+ <apply>
+ <times/>
+ <apply>
+ <divide/>
+ <ci> ko_f </ci>
+ <ci> ko_r </ci>
+ </apply>
+ <ci> nr </ci>
+ </apply>
+ </apply>
+ <apply>
+ <power/>
+ <apply>
+ <times/>
+ <apply>
+ <divide/>
+ <ci> kr_f </ci>
+ <ci> kr_r </ci>
+ </apply>
+ <ci> A </ci>
+ </apply>
+ <ci> nc </ci>
+ </apply>
+ </apply>
+ </apply>
+ </math>
+ </kineticLaw>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
+ </comp:listOfModelDefinitions>
+ <model id="GeneticToggle" metaid="iBioSim23">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim1">
+ <mts:ModuleDefinitions>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/GeneticToggle"/></rdf:Bag></mts:ModuleDefinitions></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ <comp:listOfSubmodels xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:submodel comp:id="C1" comp:modelRef="LacI_Inverter" metaid="iBioSim24">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim22">
+ <mts:Modules>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/LacI_Inverter"/></rdf:Bag></mts:Modules></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </comp:submodel>
+ <comp:submodel comp:id="C2" comp:modelRef="TetR_Inverter" metaid="iBioSim25">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim26">
+ <mts:Modules>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/md/TetR_Inverter"/></rdf:Bag></mts:Modules></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </comp:submodel>
+ </comp:listOfSubmodels>
+ <comp:listOfPorts xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="output__LacI" comp:idRef="LacI" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="output__GFP" comp:idRef="GFP" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="output__TetR" comp:idRef="TetR" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="Degradation_TetR" comp:idRef="Degradation_TetR" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="Degradation_GFP" comp:idRef="Degradation_GFP" sboTerm="SBO:0000601"/>
+ <comp:port comp:id="Degradation_LacI" comp:idRef="Degradation_LacI" sboTerm="SBO:0000601"/>
+ </comp:listOfPorts>
+ <layout:listOfLayouts xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <layout:layout layout:id="iBioSim">
+ <layout:dimensions layout:depth="0" layout:height="425" layout:width="1070"/>
+ <layout:listOfAdditionalGraphicalObjects>
+ <layout:generalGlyph layout:id="Glyph__C1" layout:reference="C1">
+ <layout:boundingBox>
+ <layout:position layout:x="208" layout:y="82.955078125"/>
+ <layout:dimensions layout:height="40" layout:width="80"/>
+ </layout:boundingBox>
+ </layout:generalGlyph>
+ <layout:generalGlyph layout:id="Glyph__C2" layout:reference="C2">
+ <layout:boundingBox>
+ <layout:position layout:x="490" layout:y="89.91015625"/>
+ <layout:dimensions layout:height="40" layout:width="80"/>
+ </layout:boundingBox>
+ </layout:generalGlyph>
+ </layout:listOfAdditionalGraphicalObjects>
+ <layout:listOfCompartmentGlyphs>
+ <layout:compartmentGlyph layout:compartment="Cell" layout:id="Glyph__Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:compartmentGlyph>
+ </layout:listOfCompartmentGlyphs>
+ <layout:listOfSpeciesGlyphs>
+ <layout:speciesGlyph layout:id="Glyph__IPTG" layout:species="IPTG">
+ <layout:boundingBox>
+ <layout:position layout:x="75" layout:y="1.4775390625"/>
+ <layout:dimensions layout:height="20" layout:width="20"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__LacI" layout:species="LacI">
+ <layout:boundingBox>
+ <layout:position layout:x="205" layout:y="1.4775390625"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__LacI_IPTG" layout:species="LacI_IPTG">
+ <layout:boundingBox>
+ <layout:position layout:x="75" layout:y="87.955078125"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__aTc" layout:species="aTc">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="174.4326171875"/>
+ <layout:dimensions layout:height="20" layout:width="20"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__TetR_aTc" layout:species="TetR_aTc">
+ <layout:boundingBox>
+ <layout:position layout:x="90" layout:y="260.91015625"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__GFP" layout:species="GFP">
+ <layout:boundingBox>
+ <layout:position layout:x="130" layout:y="174.4326171875"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__TetR" layout:species="TetR">
+ <layout:boundingBox>
+ <layout:position layout:x="260" layout:y="174.4326171875"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ </layout:listOfSpeciesGlyphs>
+ <layout:listOfReactionGlyphs>
+ <layout:reactionGlyph layout:id="Glyph__LacI__complex__LacI_IPTG">
+ <layout:boundingBox>
+ <layout:position layout:x="125" layout:y="102.955078125"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__LacI__complex__LacI_IPTG" layout:role="product" layout:speciesGlyph="Glyph__LacI_IPTG">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="225" layout:y="21.4775390625"/>
+ <layout:end layout:x="125" layout:y="102.955078125"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ <layout:reactionGlyph layout:id="Glyph__IPTG__complex__LacI_IPTG">
+ <layout:boundingBox>
+ <layout:position layout:x="125" layout:y="102.955078125"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__IPTG__complex__LacI_IPTG" layout:role="product" layout:speciesGlyph="Glyph__LacI_IPTG">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="85" layout:y="11.4775390625"/>
+ <layout:end layout:x="125" layout:y="102.955078125"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ <layout:reactionGlyph layout:id="Glyph__TetR__complex__TetR_aTc">
+ <layout:boundingBox>
+ <layout:position layout:x="140" layout:y="275.91015625"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__TetR__complex__TetR_aTc" layout:role="product" layout:speciesGlyph="Glyph__TetR_aTc">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="280" layout:y="194.4326171875"/>
+ <layout:end layout:x="140" layout:y="275.91015625"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ <layout:reactionGlyph layout:id="Glyph__aTc__complex__TetR_aTc">
+ <layout:boundingBox>
+ <layout:position layout:x="140" layout:y="275.91015625"/>
+ <layout:dimensions layout:height="0" layout:width="0"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="ReferenceGlyph__aTc__complex__TetR_aTc" layout:role="product" layout:speciesGlyph="Glyph__TetR_aTc">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="10" layout:y="184.4326171875"/>
+ <layout:end layout:x="140" layout:y="275.91015625"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ </layout:listOfReactionGlyphs>
+ <layout:listOfTextGlyphs>
+ <layout:textGlyph layout:graphicalObject="Glyph__C1" layout:id="TextGlyph__C1" layout:text="C1">
+ <layout:boundingBox>
+ <layout:position layout:x="208" layout:y="82.955078125"/>
+ <layout:dimensions layout:height="40" layout:width="80"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__C2" layout:id="TextGlyph__C2" layout:text="C2">
+ <layout:boundingBox>
+ <layout:position layout:x="490" layout:y="89.91015625"/>
+ <layout:dimensions layout:height="40" layout:width="80"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__Cell" layout:id="TextGlyph__Cell" layout:text="Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__IPTG" layout:id="TextGlyph__IPTG" layout:text="IPTG">
+ <layout:boundingBox>
+ <layout:position layout:x="75" layout:y="1.4775390625"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__LacI" layout:id="TextGlyph__LacI" layout:text="LacI">
+ <layout:boundingBox>
+ <layout:position layout:x="205" layout:y="1.4775390625"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__LacI_IPTG" layout:id="TextGlyph__LacI_IPTG" layout:text="LacI_IPTG">
+ <layout:boundingBox>
+ <layout:position layout:x="75" layout:y="87.955078125"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__aTc" layout:id="TextGlyph__aTc" layout:text="aTc">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="174.4326171875"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__TetR_aTc" layout:id="TextGlyph__TetR_aTc" layout:text="TetR_aTc">
+ <layout:boundingBox>
+ <layout:position layout:x="90" layout:y="260.91015625"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__GFP" layout:id="TextGlyph__GFP" layout:text="GFP">
+ <layout:boundingBox>
+ <layout:position layout:x="130" layout:y="174.4326171875"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__TetR" layout:id="TextGlyph__TetR" layout:text="TetR">
+ <layout:boundingBox>
+ <layout:position layout:x="260" layout:y="174.4326171875"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ </layout:listOfTextGlyphs>
+ </layout:layout>
+ </layout:listOfLayouts>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" size="1" spatialDimensions="3">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:portRef="compartment__Cell" comp:submodelRef="C1"/>
+ <comp:replacedElement comp:portRef="compartment__Cell" comp:submodelRef="C2"/>
+ </comp:listOfReplacedElements>
+ </compartment>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="IPTG" initialAmount="0" metaid="iBioSim2" sboTerm="SBO:0000247">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim2">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/GeneticToggle__IPTG"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="0" metaid="iBioSim3" sboTerm="SBO:0000252">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim3">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/GeneticToggle__LacI"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:portRef="input__A" comp:submodelRef="C1"/>
+ </comp:listOfReplacedElements>
+ <comp:replacedBy xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" comp:portRef="output__B" comp:submodelRef="C2"/>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI_IPTG" initialAmount="0" metaid="iBioSim4" sboTerm="SBO:0000253">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim4">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/GeneticToggle__LacI_IPTG"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="aTc" initialAmount="0" metaid="iBioSim5" sboTerm="SBO:0000247">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim5">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/GeneticToggle__aTc"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR_aTc" initialAmount="0" metaid="iBioSim6" sboTerm="SBO:0000253">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim6">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/GeneticToggle__TetR_aTc"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" initialAmount="0" metaid="iBioSim7" sboTerm="SBO:0000252">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim7">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/GeneticToggle__GFP"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ <comp:replacedBy xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" comp:portRef="output__B" comp:submodelRef="C1"/>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="0" metaid="iBioSim8" sboTerm="SBO:0000252">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:mts="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:Description rdf:about="#iBioSim8">
+ <mts:DNAComponents>
+ <rdf:Seq>
+ <rdf:li rdf:resource="http://www.async.ece.utah.edu/cd/GeneticToggle__TetR"/></rdf:Seq></mts:DNAComponents><mts:Strand>+</mts:Strand></rdf:Description></rdf:RDF></ModelToSBOL>
+ </annotation>
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:portRef="input__A" comp:submodelRef="C2"/>
+ </comp:listOfReplacedElements>
+ <comp:replacedBy xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" comp:portRef="output__C" comp:submodelRef="C1"/>
+ </species>
+ </listOfSpecies>
+ <listOfParameters>
+ <parameter constant="true" id="kc_f" metaid="iBioSim1" name="Forward complex formation rate" value="0.05"/>
+ <parameter constant="true" id="kc_r" metaid="iBioSim30" name="Reverse complex formation rate" value="1"/>
+ <parameter constant="true" id="nc" metaid="iBioSim31" name="Stoichiometry of binding" value="2"/>
+ <parameter constant="true" id="kd" metaid="iBioSim32" name="Degradation rate" value="0.0075"/>
+ </listOfParameters>
+ <listOfReactions>
+ <reaction compartment="Cell" fast="false" id="Complex_LacI_IPTG" metaid="iBioSim9" reversible="true" sboTerm="SBO:0000177">
+ <annotation>
+ <ModelToSBOL xmlns="http://sbolstandard.org/modeltosbol/1.0#">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#...
[truncated message content] |
|
From: <tra...@us...> - 2016-08-11 06:38:37
|
Revision: 692
http://sourceforge.net/p/sbfc/code/692
Author: tramy-nguyen
Date: 2016-08-11 06:38:33 +0000 (Thu, 11 Aug 2016)
Log Message:
-----------
- Implemented replacements for all species, compartments, and reactions for SBML2BioPAX
- replaced constants to use SBO.get()
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML_roundtripping.xml
trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml
trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java
Added Paths:
-----------
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML_roundtripping.owl
Removed Paths:
-------------
trunk/test/org/sbfc/test/resources/GeneticToggleSBML.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML.owl
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-09 02:34:43 UTC (rev 691)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-11 06:38:33 UTC (rev 692)
@@ -1813,7 +1813,7 @@
{
if(controlType.equals(ControlType.ACTIVATION))
{
- modifierSpecies.setSBOTerm(SBO.getPotentiator());
+ modifierSpecies.setSBOTerm(SBO.getActivator());
}
else if(controlType.equals(ControlType.ACTIVATION_ALLOSTERIC))
{
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-09 02:34:43 UTC (rev 691)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-11 06:38:33 UTC (rev 692)
@@ -1,6 +1,9 @@
package org.sbfc.converter.sbml2biopax.arman;
+import java.util.HashMap;
+import java.util.Map;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.biopax.paxtools.impl.level3.StoichiometryImpl;
@@ -34,26 +37,151 @@
import org.biopax.paxtools.model.level3.TemplateReaction;
import org.biopax.paxtools.model.level3.TemplateReactionRegulation;
import org.biopax.paxtools.model.level3.UnificationXref;
+import org.sbml.jsbml.Compartment;
import org.sbml.jsbml.ListOf;
import org.sbml.jsbml.ModifierSpeciesReference;
import org.sbml.jsbml.Reaction;
import org.sbml.jsbml.SBMLDocument;
import org.sbml.jsbml.SBO;
+import org.sbml.jsbml.SBase;
import org.sbml.jsbml.Species;
import org.sbml.jsbml.SpeciesReference;
import org.sbml.jsbml.ext.comp.CompConstants;
import org.sbml.jsbml.ext.comp.CompSBMLDocumentPlugin;
+import org.sbml.jsbml.ext.comp.CompSBasePlugin;
import org.sbml.jsbml.ext.comp.ModelDefinition;
+import org.sbml.jsbml.ext.comp.ReplacedElement;
public class SBML2BioPAXConverter {
+
private static Log log = LogFactory.getLog(SBML2BioPAXConverter.class);
private SBML2BioPAXUtilities sbml2BioPAXUtilities = new SBML2BioPAXUtilities();
+ /**
+ * Hold the sbml model and the element that will replace all other interconnection model elements
+ * (i.e. elements A->B->C->D->E . Arrows indicate replacements.
+ * In this case, B, C, D, and E will be replaced by A.)
+ * String will be the model Id of the replacing element.
+ * SBase will be the replacing element.
+ * InterconnectionElements will hold all information for the elements that will be replaced by the replacing element.
+ */
+ private Map<String, Map<SBase, InterconnectionElements>> replacementMap;
+
+ private void parseReplacement(String topModel, String subModel, SBase topElement, SBase subElement)
+ {
+ //Hold the main model and its element to replace all other elements from different models
+ InterconnectionElements interconnect = null;
+
+ //Check if the replacementMap has been created for the 2 given models.
+ if(!replacementMap.containsKey(topModel))
+ {
+ replacementMap.put(topModel, new HashMap<SBase, InterconnectionElements>());
+ }
+ if(!replacementMap.containsKey(subModel))
+ {
+ replacementMap.put(subModel, new HashMap<SBase, InterconnectionElements>());
+ }
+
+ Map<SBase, InterconnectionElements> interTopMap = replacementMap.get(topModel);
+ Map<SBase, InterconnectionElements> interSubMap = replacementMap.get(subModel);
+
+ if(interTopMap.containsKey(topElement))
+ {
+ interconnect = interTopMap.get(topElement);
+ }
+ else
+ {
+ interconnect = new InterconnectionElements();
+ }
+ interconnect.setReplacingElement(topElement);
+ interconnect.addInterconnectingElement(topModel, topElement);
+
+ /*
+ * Note:
+ * if the top element and sub element are connected to different groups,
+ * combine both elements from different list to one set of replacing element
+ * (i.e. A->B->C->D->E . B, C, D, and E are elements to be replaced by A represented by the arrow sign)
+ * if A,B,C are coming from its own interconnecting elements and
+ * D,E are coming from its own interconnecting elements, then add D,E to A,B,C interconnecting elements
+ * because C and D are connected to each other
+ */
+ if(interSubMap.containsKey(subElement))
+ {
+ interconnect.addAllInterconnectingElement(interSubMap.get(subElement));
+ }
+ else
+ {
+ interconnect.addInterconnectingElement(subModel, subElement);
+ }
+ }
+
+ private SBase getReplacementSBase(String modelId, SBase sbase)
+ {
+ if(replacementMap.containsKey(modelId) && replacementMap.get(modelId).containsKey(sbase) )
+ {
+ return replacementMap.get(modelId).get(sbase).getReplacingElement();
+ }
+
+ return sbase;
+ }
+
public Model convert(SBMLDocument sbmlDocument)
{
+ replacementMap = new HashMap<String, Map<SBase, InterconnectionElements>>();
+
org.sbml.jsbml.Model sbmlTopLevelModel = sbmlDocument.getModel();
+ CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDocument.getPlugin(CompConstants.shortLabel);
+
+ for(Species topLevelSpecies : sbmlTopLevelModel.getListOfSpecies())
+ {
+ CompSBasePlugin replacementPlugin = (CompSBasePlugin) sbmlTopLevelModel.getSpecies(topLevelSpecies.getId()).getPlugin(CompConstants.shortLabel);
+ for(ReplacedElement replacementElement : replacementPlugin.getListOfReplacedElements())
+ {
+ for(ModelDefinition submodelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ {
+ if(submodelDef.containsSpecies(replacementElement.getIdRef()))
+ {
+ Species submodelSpecies = submodelDef.getSpecies(replacementElement.getIdRef());
+ parseReplacement(sbmlTopLevelModel.getId(), submodelDef.getModel().getId(), topLevelSpecies, submodelSpecies);
+ }
+ }
+ }
+ }
+
+ for(Compartment topLevelCompartment : sbmlTopLevelModel.getListOfCompartments())
+ {
+ CompSBasePlugin replacementPlugin = (CompSBasePlugin) sbmlTopLevelModel.getCompartment(topLevelCompartment.getId()).getPlugin(CompConstants.shortLabel);
+ for(ReplacedElement replacementElement : replacementPlugin.getListOfReplacedElements())
+ {
+ for(ModelDefinition submodelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ {
+ if(submodelDef.containsCompartment(replacementElement.getIdRef()))
+ {
+ Compartment submodelReaction = submodelDef.getCompartment(replacementElement.getIdRef());
+ parseReplacement(sbmlTopLevelModel.getId(), submodelDef.getModel().getId(), topLevelCompartment, submodelReaction);
+ }
+ }
+ }
+ }
+
+ for(Reaction topLevelReaction : sbmlTopLevelModel.getListOfReactions())
+ {
+ CompSBasePlugin replacementPlugin = (CompSBasePlugin) sbmlTopLevelModel.getReaction(topLevelReaction.getId()).getPlugin(CompConstants.shortLabel);
+ for(ReplacedElement replacementElement : replacementPlugin.getListOfReplacedElements())
+ {
+ for(ModelDefinition submodelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ {
+ if(submodelDef.containsReaction(replacementElement.getIdRef()))
+ {
+ Reaction submodelReaction = submodelDef.getReaction(replacementElement.getIdRef());
+ parseReplacement(sbmlTopLevelModel.getId(), submodelDef.getModel().getId(), topLevelReaction, submodelReaction);
+ }
+ }
+ }
+ }
+
log.debug("First thing first: create a BioPAX model");
Model bpModel = sbml2BioPAXUtilities.createModel();
@@ -62,25 +190,25 @@
// Species -> PhysicalEntities [start]
log.debug("There are " + sbmlTopLevelModel.getNumSpecies() + " reactions in the SBML model. ");
- parseSpecies(sbmlTopLevelModel.getListOfSpecies(), bpModel);
+ parseSpecies(sbmlTopLevelModel, bpModel);
// Reactions -> Conversions [start]
log.debug("There are " + sbmlTopLevelModel.getNumReactions() + " reactions in the SBML model. ");
log.debug("Let's iterate over reactions and convert them one by one.");
- parseReactions(sbmlTopLevelModel.getListOfReactions(), sbmlTopLevelModel, bpModel, pathway);
+ parseReactions(sbmlTopLevelModel, bpModel, pathway);
//TODO:
/*
* take the sbmlModel (which is the sbml toplevel model) and get all ModelDefinitions
* to parse all of their species and reactions.
*/
- CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDocument.getPlugin(CompConstants.shortLabel);
+// CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDocument.getPlugin(CompConstants.shortLabel);
// TODO: loop over Submodels, use source to find the ModelDefinition
for(ModelDefinition subModelDef : compSBMLDocPlugin.getListOfModelDefinitions())
{
Pathway subModelPathway = sbml2BioPAXUtilities.convertPathway(bpModel, subModelDef);
- parseSpecies(subModelDef.getListOfSpecies(), bpModel);
- parseReactions(subModelDef.getListOfReactions(), subModelDef, bpModel, subModelPathway);
+ parseSpecies(subModelDef.getModel(), bpModel);
+ parseReactions(subModelDef, bpModel, subModelPathway);
}
// // The process above leaves some of the complexes empty. We need to fix this.
@@ -96,19 +224,23 @@
return bpModel;
}
- private void parseSpecies(ListOf<Species> sbmlSpecies, Model bpModel){
- for(Species species: sbmlSpecies)
+ private void parseSpecies(org.sbml.jsbml.Model sbmlModel, Model bpModel){
+
+ for(Species species: sbmlModel.getListOfSpecies())
{
- sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ Species replacementSpecies = (Species) getReplacementSBase(sbmlModel.getId(), species);
+ Compartment replacementCompartment = (Compartment) getReplacementSBase(sbmlModel.getId(), species.getCompartmentInstance());
+ sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementCompartment);
}
}
- private void parseReactions(ListOf<Reaction> sbmlReactions, org.sbml.jsbml.Model sbmlModel,
+ private void parseReactions(org.sbml.jsbml.Model sbmlModel,
Model bpModel, Pathway pathway)
{
- for (Reaction reaction : sbmlReactions) {
- log.trace("Working on reaction conversion: " + reaction.getName());
- Interaction interaction = sbml2BioPAXUtilities.convertReaction(bpModel, reaction);
+ for (Reaction reaction : sbmlModel.getListOfReactions()) {
+ Reaction replacementReaction = (Reaction) getReplacementSBase(sbmlModel.getId(), reaction);
+ log.trace("Working on reaction conversion: " + replacementReaction.getName());
+ Interaction interaction = sbml2BioPAXUtilities.convertReaction(bpModel, replacementReaction);
if(pathway != null)
{
pathway.addPathwayComponent(interaction);
@@ -116,22 +248,22 @@
// Modifiers -> Control reactions [start]
log.trace(
- "- There are " + reaction.getNumModifiers() + " modifiers to this reaction. " +
+ "- There are " + replacementReaction.getNumModifiers() + " modifiers to this reaction. " +
"Converting them to controls to this reaction."
);
- parseModifier(sbmlModel, reaction, bpModel, interaction, pathway);
+ parseModifier(sbmlModel, replacementReaction, bpModel, interaction, pathway);
// Reactants -> Left Participants [start]
- log.trace("- There are " + reaction.getNumReactants() + " reactants to this reaction. " +
+ log.trace("- There are " + replacementReaction.getNumReactants() + " reactants to this reaction. " +
"Adding them to the reaction as left participants.");
- parseSpeciesReference(sbmlModel, reaction.getListOfReactants(), bpModel, interaction, reaction, true);
+ parseSpeciesReference(sbmlModel, replacementReaction.getListOfReactants(), bpModel, interaction, replacementReaction, true);
// Reactants -> Left Participants [end]
// Products -> Right Participants [start]
- log.trace("- There are " + reaction.getNumProducts() + " products to this reaction. " +
+ log.trace("- There are " + replacementReaction.getNumProducts() + " products to this reaction. " +
"Adding them to the reaction as right participants.");
- parseSpeciesReference(sbmlModel, reaction.getListOfProducts(), bpModel, interaction, reaction, false);
+ parseSpeciesReference(sbmlModel, replacementReaction.getListOfProducts(), bpModel, interaction, replacementReaction, false);
// Products -> Right Participants [end]
}
// Reactions -> Conversions [end]
@@ -141,21 +273,21 @@
Model bpModel, Interaction interaction, Pathway pathway)
{
ListOf<ModifierSpeciesReference> listOfModifiers = reaction.getListOfModifiers();
-
+
for(ModifierSpeciesReference modifier : listOfModifiers)
{
Species species = sbmlModel.getSpecies(modifier.getSpecies());
-
+ Species replacementSpecies = (Species) getReplacementSBase(sbmlModel.getId(), species);
if(interaction instanceof GeneticInteraction)
{
- Gene gene = sbml2BioPAXUtilities.convertSpeciesToE(bpModel, Gene.class, UnificationXref.class, species);
+ Gene gene = sbml2BioPAXUtilities.convertSpeciesToE(bpModel, Gene.class, UnificationXref.class, replacementSpecies);
interaction.addParticipant(gene);
continue;
}
else if(interaction instanceof TemplateReaction)
{
TemplateReaction templateReaction = (TemplateReaction) interaction;
- Entity entity = (Entity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ Entity entity = (Entity) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
if(entity instanceof Dna || entity instanceof DnaRegion
|| entity instanceof Rna || entity instanceof RnaRegion)
{
@@ -170,7 +302,7 @@
pathway.addPathwayComponent(control);
}
control.addControlled(interaction);
- Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
control.addController(controller);
}
}
@@ -183,27 +315,33 @@
pathway.addPathwayComponent(catalysis);
}
catalysis.addControlled(interaction);
- Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
catalysis.addController(controller);
- for (ModifierSpeciesReference modifier2 : listOfModifiers) {
+ for (ModifierSpeciesReference modifier2 : listOfModifiers)
+ {
if (SBO.isChildOf(modifier2.getSBOTerm(), SBO.getCatalyst()))
{
continue;
}
+
Species species2 = sbmlModel.getSpecies(modifier2.getSpecies());
+ Species replacementSpecies2 = (Species) getReplacementSBase(sbmlModel.getId(), species2);
+
if(modifier2.getSBOTerm() == SBO.getCatalyticActivator())
{
- PhysicalEntity cofactorEntity = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ PhysicalEntity cofactorEntity = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
catalysis.addCofactor(cofactorEntity);
- } else if(sbml2BioPAXUtilities.isControlType(modifier2.getSBOTerm())) {
-
+ }
+ else if(sbml2BioPAXUtilities.isControlType(modifier2.getSBOTerm()))
+ {
+
Modulation modulation = (Modulation) sbml2BioPAXUtilities.convertModifier(bpModel, modifier2, reaction);
if(pathway!= null)
{
pathway.addPathwayComponent(modulation);
}
modulation.addControlled(catalysis);
- Controller controller2 = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species2);
+ Controller controller2 = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies2, replacementSpecies2.getCompartmentInstance());
modulation.addController(controller2);
}
}
@@ -218,9 +356,11 @@
{
// Reactants -> Left Participants [start]
- for (SpeciesReference speciesRef : listOfSpeciesReferences) {
+ for (SpeciesReference speciesRef : listOfSpeciesReferences)
+ {
Species species = sbmlModel.getSpecies(speciesRef.getSpecies());
- Entity entity = sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ Species replacementSpecies = (Species) getReplacementSBase(sbmlModel.getId(), species);
+ Entity entity = sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
if(interaction instanceof Conversion)
{
Conversion conversion = (Conversion) interaction;
@@ -247,7 +387,7 @@
}
}
}
-
+
private void parseStoichiometry(Reaction reaction, SpeciesReference speciesRef, Conversion interaction,
org.sbml.jsbml.Model sbmlModel, Model bpModel)
{
@@ -269,18 +409,96 @@
stoichId = sbml2BioPAXUtilities.getXMLBase() + reaction.getId() + "__" + speciesRef.getSpecies();
stoichId = sbml2BioPAXUtilities.getUniqueEntityId(stoichId, bpModel);
}
-
-
-
+
+
+
Stoichiometry stoichio = bioPAXFactory.create(Stoichiometry.class, stoichId);
stoichio.setStoichiometricCoefficient((float) speciesRef.getStoichiometry());
-
+
Species species = sbmlModel.getSpecies(speciesRef.getSpecies());
- PhysicalEntity physicalEntityParticipant = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ Species replacementSpecies = (Species) getReplacementSBase(sbmlModel.getId(), species);
+ PhysicalEntity physicalEntityParticipant = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, replacementSpecies, replacementSpecies.getCompartmentInstance());
stoichio.setPhysicalEntity((PhysicalEntity) physicalEntityParticipant);
bpModel.add(stoichio);
interaction.addParticipantStoichiometry(stoichio);
}
-
+
+ private class InterconnectionElements
+ {
+ //TODO: Add a map that will map the elements from different models to this interconnecting model
+ private Map<String, SBase> interconnectingElementList;
+ private SBase replacingElement;
+
+ InterconnectionElements()
+ {
+ interconnectingElementList = new HashMap<String, SBase>();
+ }
+
+ /**
+ * Retrieve the element from the interconnecting models to replace all other elements from different models
+ * @return
+ */
+ public SBase getReplacingElement()
+ {
+ return replacingElement;
+ }
+
+ /**
+ * Set the replacing element for the interconnection model.
+ * For example, if you have 3 models and you want to replace multiple elements in each model
+ * with one of the three models, then, set this method to hold the element you want to replace the
+ * all other elements in the 3 models with.
+ *
+ * @param replacingElement
+ */
+ public void setReplacingElement(SBase replacingElement)
+ {
+ this.replacingElement = replacingElement;
+ }
+
+ /**
+ * Return all the elements from different models that should be replaced by this
+ * @return
+ */
+ public Map<String, SBase> getInterconnectingElementList()
+ {
+ return interconnectingElementList;
+ }
+
+ public void setInterconnectingElementList(Map<String, SBase> interconnectingElementList)
+ {
+ this.interconnectingElementList = interconnectingElementList;
+ }
+
+ /**
+ * Store all sbml elements that will be replaced the the replacing element.
+ * This means that all the sbml elements from the submodels that are connected to each other and will be replaced by the top level sbml model.
+ *
+ * @param modelId - The model id that holds the sbmlElement to be replaced
+ * @param sbmlElement - The element to be replaced by the replacing element variable
+ */
+ public void addInterconnectingElement(String modelId, SBase sbmlElement)
+ {
+ if(!replacementMap.containsKey(modelId))
+ {
+ replacementMap.put(modelId, new HashMap<SBase, InterconnectionElements>());
+ }
+
+ replacementMap.get(modelId).put(sbmlElement, this);
+ interconnectingElementList.put(modelId, sbmlElement);
+ }
+
+ public void addAllInterconnectingElement(InterconnectionElements interModel)
+ {
+ //Get all the elements from different model to be replaced by this interMap model
+ Map<String, SBase> interMap = interModel.getInterconnectingElementList();
+ for(String modelId : interMap.keySet())
+ {
+ //TODO: handle disjoint interconnection elements
+ addInterconnectingElement(modelId, interMap.get(modelId));
+ }
+ }
+
+ } //End of InterconnectionModel class
}
\ No newline at end of file
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-09 02:34:43 UTC (rev 691)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-11 06:38:33 UTC (rev 692)
@@ -155,23 +155,23 @@
*/
int reactionSBOValue = reaction.getSBOTerm();
- if(SBO.isChildOf(reactionSBOValue, 231))
+ if(SBO.isChildOf(reactionSBOValue, SBO.getInteraction()))
{
- if(SBO.isChildOf(reactionSBOValue, 167))
+ if(SBO.isChildOf(reactionSBOValue, SBO.getTransportWithBiochemicalReaction()))
{
- if(SBO.isChildOf(reactionSBOValue, 176))
+ if(SBO.isChildOf(reactionSBOValue, SBO.getBiochemicalReaction()))
{
- if(SBO.isChildOf(reactionSBOValue, 177))
+ if(SBO.isChildOf(reactionSBOValue, SBO.getComplexAssembly()))
{
rxnClass = ComplexAssembly.class;
isConversionSet = true;
}
- else if(SBO.isChildOf(reactionSBOValue, 179))
+ else if(SBO.isChildOf(reactionSBOValue, SBO.getDegradation()))
{
rxnClass = Degradation.class;
isConversionSet = true;
}
- else if(SBO.isChildOf(reactionSBOValue, 182))
+ else if(SBO.isChildOf(reactionSBOValue, SBO.getConversion()))
{
rxnClass = Conversion.class;
isConversionSet = true;
@@ -182,7 +182,7 @@
isConversionSet = true;
}
}
- else if(SBO.isChildOf(reactionSBOValue, 185))
+ else if(SBO.isChildOf(reactionSBOValue, SBO.getTransport()))
{
rxnClass = Transport.class;
isConversionSet = true;
@@ -193,15 +193,15 @@
isConversionSet = true;
}
} //End of TransportWithBiochemicalReaction
- else if(SBO.isChildOf(reactionSBOValue, 343))
+ else if(SBO.isChildOf(reactionSBOValue, SBO.getGeneticInteraction()))
{
reactionClass = GeneticInteraction.class;
}
- else if(SBO.isChildOf(reactionSBOValue, 344))
+ else if(SBO.isChildOf(reactionSBOValue, SBO.getMolecularInteraction()))
{
reactionClass = MolecularInteraction.class;
}
- else if(SBO.isChildOf(reactionSBOValue, 589))
+ else if(SBO.isChildOf(reactionSBOValue, SBO.getTemplateReaction()))
{
reactionClass = TemplateReaction.class;
}
@@ -405,12 +405,12 @@
int reactionSBOValue = reaction.getSBOTerm();
int modifierSBOValue = modifierSpeciesReference.getSBOTerm();
- if(SBO.isChildOf(reactionSBOValue, 589))
+ if(SBO.isChildOf(reactionSBOValue, SBO.getTemplateReaction()))
{
//If reaction SBO value is a TemplateReaction (SBO:0000589), then create a TemplateReactionRegulation
control = createBPEfromSBMLE(bpModel, TemplateReactionRegulation.class, modifierSpeciesReference, modifierId);
}
- else if(SBO.isChildOf(modifierSBOValue, 13))
+ else if(SBO.isChildOf(modifierSBOValue, SBO.getCatalyst()))
{
/*
* Note:
@@ -436,26 +436,25 @@
public void setControlType(Control control, int modifierSBOTerm)
{
- //TODO: same SBO terms for ControlType.INHIBITION_OTHER and INHIBITION;
- if(SBO.isChildOf(modifierSBOTerm, 20))
+ if(SBO.isChildOf(modifierSBOTerm, SBO.getInhibitor()))
{
- if(SBO.isChildOf(modifierSBOTerm, 206))
+ if(SBO.isChildOf(modifierSBOTerm, SBO.getCompetitiveInhibitor()))
{
control.setControlType(ControlType.INHIBITION_COMPETITIVE);
}
- else if(SBO.isChildOf(modifierSBOTerm, 207))
+ else if(SBO.isChildOf(modifierSBOTerm, SBO.getNonCompetitiveInhibitor()))
{
control.setControlType(ControlType.INHIBITION_NONCOMPETITIVE);
}
- else if(SBO.isChildOf(modifierSBOTerm, 638))
+ else if(SBO.isChildOf(modifierSBOTerm, SBO.getIrreversibleInhibitor()))
{
control.setControlType(ControlType.INHIBITION_IRREVERSIBLE);
}
- else if(SBO.isChildOf(modifierSBOTerm, 639))
+ else if(SBO.isChildOf(modifierSBOTerm, SBO.getAllostericInhibitor()))
{
control.setControlType(ControlType.INHIBITION_ALLOSTERIC);
}
- else if(SBO.isChildOf(modifierSBOTerm, 640))
+ else if(SBO.isChildOf(modifierSBOTerm, SBO.getUncompetitiveInhibitor()))
{
control.setControlType(ControlType.INHIBITION_UNCOMPETITIVE);
}
@@ -464,13 +463,13 @@
control.setControlType(ControlType.INHIBITION);
}
}
- else if(SBO.isChildOf(modifierSBOTerm, 459))
+ else if(SBO.isChildOf(modifierSBOTerm, SBO.getActivator()))
{
- if(SBO.isChildOf(modifierSBOTerm, 636))
+ if(SBO.isChildOf(modifierSBOTerm, SBO.getAllostericActivator()))
{
control.setControlType(ControlType.ACTIVATION_ALLOSTERIC);
}
- else if(SBO.isChildOf(modifierSBOTerm, 637))
+ else if(SBO.isChildOf(modifierSBOTerm, SBO.getNonAllostericActivator()))
{
control.setControlType(ControlType.ACTIVATION_NONALLOSTERIC);
}
@@ -487,7 +486,7 @@
public boolean isControlType(int modifierSBOTerm)
{
- if(SBO.isChildOf(modifierSBOTerm, 19))
+ if(SBO.isChildOf(modifierSBOTerm, SBO.getModifier()))
{
return true;
}
@@ -559,42 +558,42 @@
* @param species - The SBML Species to be converted to a BioPAX Physical Entities
* @return The converted BioPAX Physical Entity
*/
- public Entity convertSpecies(Model bpModel, Species species) {
+ public Entity convertSpecies(Model bpModel, Species species, Compartment speciesCompartment) {
PhysicalEntity physicalEntity = null;
Entity entity = null;
boolean isPhysicalEntity = true;
int speciesSBOValue = species.getSBOTerm();
- if(SBO.isChildOf(speciesSBOValue, 243))
+ if(SBO.isChildOf(speciesSBOValue, SBO.getGene()))
{
entity = convertSpeciesToE(bpModel, Gene.class, UnificationXref.class, species);
isPhysicalEntity = false;
}
- else if(SBO.isChildOf(speciesSBOValue, 253))
+ else if(SBO.isChildOf(speciesSBOValue, SBO.getComplex()))
{
physicalEntity = convertSpeciesToPE(bpModel, Complex.class, UnificationXref.class, species);
}
- else if(SBO.isChildOf(speciesSBOValue, 252))
+ else if(SBO.isChildOf(speciesSBOValue, SBO.getGeneric()))
{
physicalEntity = convertSpeciesToSPE(bpModel, Protein.class, ProteinReference.class, species);
}
- else if(SBO.isChildOf(speciesSBOValue, 251))
+ else if(SBO.isChildOf(speciesSBOValue, SBO.getDNA()))
{
physicalEntity = convertSpeciesToSPE(bpModel, Dna.class, DnaReference.class, species);
}
- else if(SBO.isChildOf(speciesSBOValue, 634) || SBO.isChildOf(speciesSBOValue, 335) || SBO.isChildOf(speciesSBOValue, 369))
+ else if(SBO.isChildOf(speciesSBOValue, SBO.getDNASegment()) || SBO.isChildOf(speciesSBOValue, SBO.getGeneCodingRegion()) || SBO.isChildOf(speciesSBOValue, 369))
{
physicalEntity = convertSpeciesToSPE(bpModel, DnaRegion.class, DnaRegionReference.class, species);
}
- else if(SBO.isChildOf(speciesSBOValue, 250))
+ else if(SBO.isChildOf(speciesSBOValue, SBO.getRNA()))
{
physicalEntity = convertSpeciesToSPE(bpModel, Rna.class, RnaReference.class, species);
}
- else if(SBO.isChildOf(speciesSBOValue, 635))
+ else if(SBO.isChildOf(speciesSBOValue, SBO.getRNASegment()))
{
physicalEntity = convertSpeciesToSPE(bpModel, RnaRegion.class, RnaRegionReference.class, species);
}
- else if(SBO.isChildOf(speciesSBOValue, 247))
+ else if(SBO.isChildOf(speciesSBOValue, SBO.getSmallMolecule()))
{
physicalEntity = convertSpeciesToSPE(bpModel, SmallMolecule.class, SmallMoleculeReference.class, species);
}
@@ -608,7 +607,7 @@
return entity;
}
- CellularLocationVocabulary cellularLocationVocabulary = createCompartment(bpModel, species.getCompartmentInstance());
+ CellularLocationVocabulary cellularLocationVocabulary = createCompartment(bpModel, speciesCompartment);
physicalEntity.setCellularLocation(cellularLocationVocabulary);
Modified: trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java 2016-08-09 02:34:43 UTC (rev 691)
+++ trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java 2016-08-11 06:38:33 UTC (rev 692)
@@ -344,6 +344,9 @@
Assert.assertTrue(SBO.getRNASegment() == 635);
Assert.assertTrue(SBO.getSmallMolecule() == 247);
Assert.assertTrue(SBO.getCompartment() == 290);
+ Assert.assertTrue(SBO.getGene() == 243);
+ Assert.assertTrue(SBO.getGeneCodingRegion() == 335);
+// Assert.assertTrue(SBO.getGeneCodingRegion() == 369);
//Interaction
Assert.assertTrue(SBO.getInteraction() == 231);
@@ -360,9 +363,21 @@
Assert.assertTrue(SBO.getDegradation() == 179);
//ControlType - TODO
+ Assert.assertTrue(SBO.getCatalyst() == 13);
Assert.assertTrue(SBO.getPotentiator() == 21);
Assert.assertTrue(SBO.getAllostericActivator() == 636);
+ Assert.assertTrue(SBO.getInhibitor() == 20);
+ Assert.assertTrue(SBO.getCompetitiveInhibitor() == 206);
+ Assert.assertTrue(SBO.getNonCompetitiveInhibitor() == 207);
+ Assert.assertTrue(SBO.getIrreversibleInhibitor() == 638);
+ Assert.assertTrue(SBO.getAllostericInhibitor() == 639);
+ Assert.assertTrue(SBO.getUncompetitiveInhibitor() == 640);
+ Assert.assertTrue(SBO.getActivator() == 459);
+ Assert.assertTrue(SBO.getAllostericActivator() == 636);
+ Assert.assertTrue(SBO.getNonAllostericActivator() == 637);
+ Assert.assertTrue(SBO.getModifier() == 19);
+
Assert.assertTrue(SBO.isChildOf(21, 21));
}
Modified: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML_roundtripping.xml 2016-08-09 02:34:43 UTC (rev 691)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML_roundtripping.xml 2016-08-11 06:38:33 UTC (rev 692)
@@ -53,7 +53,7 @@
</listOfReactions>
</comp:modelDefinition>
</comp:listOfModelDefinitions>
- <model id="topLevel_sbmlModel" metaid="_7c77aab6-ff32-41d2-92b3-6170ff08bb15">
+ <model id="topLevel_sbmlModel" metaid="_14c0eed7-ac7a-4444-bd1f-24209d368083">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>This model has been automatically generated by BioPAX2SBML</p>
@@ -61,7 +61,7 @@
</notes>
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
- <rdf:Description rdf:about="#_7c77aab6-ff32-41d2-92b3-6170ff08bb15">
+ <rdf:Description rdf:about="#_14c0eed7-ac7a-4444-bd1f-24209d368083">
<dc:creator>
<rdf:Bag>
<rdf:li rdf:parseType="Resource">
Deleted: trunk/test/org/sbfc/test/resources/GeneticToggleSBML.owl
===================================================================
--- trunk/test/org/sbfc/test/resources/GeneticToggleSBML.owl 2016-08-09 02:34:43 UTC (rev 691)
+++ trunk/test/org/sbfc/test/resources/GeneticToggleSBML.owl 2016-08-11 06:38:33 UTC (rev 692)
@@ -1,52 +0,0 @@
-######################################################
-#Something went wrong during the conversion !
-#Try to validate your input file before converting it
-
-
-org.sbfc.converter.exceptions.WriteModelException: java.lang.NullPointerException
- at org.sbfc.converter.models.BioPAXModel.modelToFile(BioPAXModel.java:110)
- at org.sbfc.converter.Converter.convertFromFile(Converter.java:202)
- at org.sbfc.converter.ConverterGUI$7.actionPerformed(ConverterGUI.java:375)
- at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
- at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
- at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
- at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
- at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
- at java.awt.Component.processMouseEvent(Component.java:6535)
- at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
- at java.awt.Component.processEvent(Component.java:6300)
- at java.awt.Container.processEvent(Container.java:2236)
- at java.awt.Component.dispatchEventImpl(Component.java:4891)
- at java.awt.Container.dispatchEventImpl(Container.java:2294)
- at java.awt.Component.dispatchEvent(Component.java:4713)
- at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
- at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
- at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
- at java.awt.Container.dispatchEventImpl(Container.java:2280)
- at java.awt.Window.dispatchEventImpl(Window.java:2750)
- at java.awt.Component.dispatchEvent(Component.java:4713)
- at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
- at java.awt.EventQueue.access$500(EventQueue.java:97)
- at java.awt.EventQueue$3.run(EventQueue.java:709)
- at java.awt.EventQueue$3.run(EventQueue.java:703)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
- at java.awt.EventQueue$4.run(EventQueue.java:731)
- at java.awt.EventQueue$4.run(EventQueue.java:729)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
- at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
- at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
- at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
- at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
- at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
-Caused by: java.lang.NullPointerException
- at org.biopax.paxtools.io.SimpleIOHandler.writeStatementFor(SimpleIOHandler.java:636)
- at org.biopax.paxtools.io.SimpleIOHandler.writeObject(SimpleIOHandler.java:592)
- at org.biopax.paxtools.io.SimpleIOHandler.writeObjects(SimpleIOHandler.java:607)
- at org.biopax.paxtools.io.SimpleIOHandler.convertToOWL(SimpleIOHandler.java:553)
- at org.sbfc.converter.models.BioPAXModel.modelToFile(BioPAXModel.java:106)
- ... 38 more
Modified: trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml
===================================================================
--- trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml 2016-08-09 02:34:43 UTC (rev 691)
+++ trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml 2016-08-11 06:38:33 UTC (rev 692)
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='utf-8' standalone='no'?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" comp:required="true" level="3" version="1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
- <comp:modelDefinition id="id1345359130_Negative_regulation_of__G_alpha_i_GDP_GTP_exchange_signaling_" metaid="_4d2a00f0-cb45-49aa-8973-0f3ff9e8cb1f"
+ <comp:modelDefinition id="id1345359130_Negative_regulation_of__G_alpha_i_GDP_GTP_exchange_signaling_" metaid="_9fec6ef9-d6e3-4d7a-8a1a-d3c14a2a93f0"
name="Negative regulation of (G alpha i GDP-GTP exchange signaling) ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -22,7 +22,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_4d2a00f0-cb45-49aa-8973-0f3ff9e8cb1f">
+ <rdf:Description rdf:about="#_9fec6ef9-d6e3-4d7a-8a1a-d3c14a2a93f0">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025356" />
@@ -52,7 +52,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" metaid="_9f0aa422-fe9c-4ecf-9e4b-0ce029cb82e7" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" metaid="_31229841-07a5-46b7-8108-9f26baf60b58" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000007">
@@ -60,7 +60,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_9f0aa422-fe9c-4ecf-9e4b-0ce029cb82e7">
+ <rdf:Description rdf:about="#_31229841-07a5-46b7-8108-9f26baf60b58">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="http://www.inoh.org/biopax/IC_NO_XREF" />
@@ -80,7 +80,7 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_031af1cc-77c5-490d-8419-304fd11186f4" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_47cc5e31-0a19-44e1-9254-33b2888030ec" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000010">
@@ -88,7 +88,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_031af1cc-77c5-490d-8419-304fd11186f4">
+ <rdf:Description rdf:about="#_47cc5e31-0a19-44e1-9254-33b2888030ec">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P63092" />
@@ -116,7 +116,7 @@
</listOfCompartments>
<listOfSpecies>
<species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id830922164_RGS"
- initialAmount="1" metaid="_94dafecf-a1bf-4125-a5c9-f52d31b6a425" name="RGS" sboTerm="SBO:0000252">
+ initialAmount="1" metaid="_30f68469-682e-4ca1-8592-7b3fe20c9c64" name="RGS" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="IMR_0000431">
@@ -136,7 +136,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_94dafecf-a1bf-4125-a5c9-f52d31b6a425">
+ <rdf:Description rdf:about="#_30f68469-682e-4ca1-8592-7b3fe20c9c64">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/Q8K443" />
@@ -437,7 +437,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id1167711338_G_alpha_i" initialAmount="1"
- metaid="c118c266-4081-4f3a-b009-4cbd6120c47d" name="G alpha i" sboTerm="SBO:0000252">
+ metaid="_67669ef6-5c18-4646-b63f-12acca77e3ca" name="G alpha i" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0025194">
@@ -457,7 +457,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#c118c266-4081-4f3a-b009-4cbd6120c47d">
+ <rdf:Description rdf:about="#_67669ef6-5c18-4646-b63f-12acca77e3ca">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025194" />
@@ -523,7 +523,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id2142488298_GTP"
- initialAmount="1" metaid="d519c0a6-6362-420d-8454-58ebb1e56791" name="GTP" sboTerm="SBO:0000247">
+ initialAmount="1" metaid="_6537d85a-f969-4249-920c-c7328e23feca" name="GTP" sboTerm="SBO:0000247">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0021541">
@@ -543,7 +543,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#d519c0a6-6362-420d-8454-58ebb1e56791">
+ <rdf:Description rdf:about="#_6537d85a-f969-4249-920c-c7328e23feca">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="C00044" />
@@ -584,7 +584,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id790431118_GDP"
- initialAmount="1" metaid="_2a4e3526-32f3-4a63-aedf-8b97719150d7" name="GDP" sboTerm="SBO:0000247">
+ initialAmount="1" metaid="_5075b551-1783-4794-9087-43fc2dd08c0c" name="GDP" sboTerm="SBO:0000247">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="M1660">
@@ -604,7 +604,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_2a4e3526-32f3-4a63-aedf-8b97719150d7">
+ <rdf:Description rdf:about="#_5075b551-1783-4794-9087-43fc2dd08c0c">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="C00035" />
@@ -646,7 +646,7 @@
</species>
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="id537126859_Hydrolysis" metaid="_1283ecdd-cd1e-4b44-96e4-6af06ab6f4d5" name="http://www.inoh.org/biopax/id537126859_Hydrolysis" reversible="false"
+ <reaction fast="false" id="id537126859_Hydrolysis" metaid="_24009189-97f0-48ee-86aa-5f9bc6e95c58" name="http://www.inoh.org/biopax/id537126859_Hydrolysis" reversible="false"
sboTerm="SBO:0000176">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -678,7 +678,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_1283ecdd-cd1e-4b44-96e4-6af06ab6f4d5">
+ <rdf:Description rdf:about="#_24009189-97f0-48ee-86aa-5f9bc6e95c58">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="Inhibit" />
@@ -739,7 +739,7 @@
<speciesReference constant="true" species="id790431118_GDP" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="id1345090438_Control" metaid="_962ed90c-aa59-4fb4-859e-9cdecae69888" name="http://www.inoh.org/biopax/id1345090438_Control" sboTerm="SBO:0000596"
+ <modifierSpeciesReference id="id1345090438_Control" metaid="_8cebbc63-0355-4ee4-b347-f71b90aaa9b2" name="http://www.inoh.org/biopax/id1345090438_Control" sboTerm="SBO:0000596"
species="id830922164_RGS">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -768,7 +768,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_962ed90c-aa59-4fb4-859e-9cdecae69888">
+ <rdf:Description rdf:about="#_8cebbc63-0355-4ee4-b347-f71b90aaa9b2">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/8774883" />
@@ -818,7 +818,7 @@
</rdf:RDF>
</annotation>
</modifierSpeciesReference>
- <modifierSpeciesReference id="id373103285_Catalyze" metaid="_63e0252c-990b-46bb-944b-f37b6755cb1c" name="http://www.inoh.org/biopax/id373103285_Catalyze" sboTerm="SBO:0000013"
+ <modifierSpeciesReference id="id373103285_Catalyze" metaid="_9fd77e7a-3ed4-4eef-93ff-4950ba26fcf5" name="http://www.inoh.org/biopax/id373103285_Catalyze" sboTerm="SBO:0000013"
species="id1167711338_G_alpha_i">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -847,7 +847,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_63e0252c-990b-46bb-944b-f37b6755cb1c">
+ <rdf:Description rdf:about="#_9fd77e7a-3ed4-4eef-93ff-4950ba26fcf5">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/8774883" />
@@ -901,7 +901,7 @@
</reaction>
</listOfReactions>
</comp:modelDefinition>
- <comp:modelDefinition id="id505442170_Adenylate_cyclase_activation_signaling" metaid="_5b0eb183-bcdb-4d38-8373-05e967204926"
+ <comp:modelDefinition id="id505442170_Adenylate_cyclase_activation_signaling" metaid="_88e4b37c-15e7-413a-94fc-7187acc8398b"
name="Adenylate cyclase activation signaling ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -922,7 +922,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_5b0eb183-bcdb-4d38-8373-05e967204926">
+ <rdf:Description rdf:about="#_88e4b37c-15e7-413a-94fc-7187acc8398b">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="IEV_0002021" />
@@ -957,7 +957,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_7ff3b00a-a9c4-4f63-b574-ab53ea33829e" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_8f3597e9-b354-45ce-a5ee-d743c8d5b20c" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000010">
@@ -965,7 +965,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_7ff3b00a-a9c4-4f63-b574-ab53ea33829e">
+ <rdf:Description rdf:about="#_8f3597e9-b354-45ce-a5ee-d743c8d5b20c">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P63092" />
@@ -990,7 +990,7 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="plasma_membrane" metaid="_7183af62-3250-411c-8cea-37189b03a537" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane" metaid="_59bbd971-8b47-4956-9824-49cc1c7b8aae" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000003">
@@ -998,7 +998,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_7183af62-3250-411c-8cea-37189b03a537">
+ <rdf:Description rdf:about="#_59bbd971-8b47-4956-9824-49cc1c7b8aae">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/14734786" />
@@ -1031,7 +1031,7 @@
</listOfCompartments>
<listOfSpecies>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id914752420_adenylate_cyclase"
- initialAmount="1" metaid="aa729223-cf37-4ea5-a774-d77dad5affc8" name="adenylate cyclase" sboTerm="SBO:0000252">
+ initialAmount="1" metaid="c101019f-bde1-4cf1-9385-0b32a186fc5e" name="adenylate cyclase" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="IMR_0000313">
@@ -1051,7 +1051,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#aa729223-cf37-4ea5-a774-d77dad5affc8">
+ <rdf:Description rdf:about="#c101019f-bde1-4cf1-9385-0b32a186fc5e">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P97490" />
@@ -1212,7 +1212,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane" constant="false" hasOnlySubstanceUnits="true" id="id1767261917_G_alpha_s_GTP" initialAmount="1"
- metaid="_43da80f7-c352-4d99-b57a-dac9f6e0f7ba" name="G alpha s_GTP" sboTerm="SBO:0000253">
+ metaid="aa4f751d-a3cb-449a-bc0d-614091b49f86" name="G alpha s_GTP" sboTerm="SBO:0000253">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0012388">
@@ -1229,7 +1229,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_43da80f7-c352-4d99-b57a-dac9f6e0f7ba">
+ <rdf:Description rdf:about="#aa4f751d-a3cb-449a-bc0d-614091b49f86">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0012388" />
@@ -1270,7 +1270,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane" constant="false" hasOnlySubstanceUnits="true" id="id561447739_adenylate_cyclase_G_alpha_s_GTP" initialAmount="1"
- metaid="_0ba7160a-7e1c-4539-bb7d-64c854d92bd1" name="adenylate cyclase:G alpha s_GTP" sboTerm="SBO:0000253">
+ metaid="c33760c3-3c79-4806-9dd7-97f31f1c904b" name="adenylate cyclase:G alpha s_GTP" sboTerm="SBO:0000253">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="M1632">
@@ -1287,7 +1287,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_0ba7160a-7e1c-4539-bb7d-64c854d92bd1">
+ <rdf:Description rdf:about="#c33760c3-3c79-4806-9dd7-97f31f1c904b">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="M1632" />
@@ -1319,7 +1319,7 @@
</species>
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="id684626400_Binding" metaid="aefaf717-7122-4532-baf3-cd2115594ad6" name="http://www.inoh.org/biopax/id684626400_Binding" reversible="false" sboTerm="SBO:0000177">
+ <reaction fast="false" id="id684626400_Binding" metaid="ef2dd342-1464-44a3-bd68-a035a25bfb80" name="http://www.inoh.org/biopax/id684626400_Binding" reversible="false" sboTerm="SBO:0000177">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="Inhibit">
@@ -1350,7 +1350,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#aefaf717-7122-4532-baf3-cd2115594ad6">
+ <rdf:Description rdf:about="#ef2dd342-1464-44a3-bd68-a035a25bfb80">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="Inhibit" />
@@ -1414,7 +1414,7 @@
</reaction>
</listOfReactions>
</comp:modelDefinition>
- <comp:modelDefinition id="id1656077294_Negative_regulation_of__Binding_of_G_alpha_i_GTP_and_adenylate_cyclase_" metaid="ef3b429c-52db-4af6-bd76-7d9527499e2b"
+ <comp:modelDefinition id="id1656077294_Negative_regulation_of__Binding_of_G_alpha_i_GTP_and_adenylate_cyclase_" metaid="b6941931-ae4b-4576-8764-1b76951bc365"
name="Negative regulation of (Binding of G alpha i-GTP and adenylate cyclase) ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -1435,7 +1435,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#ef3b429c-52db-4af6-bd76-7d9527499e2b">
+ <rdf:Description rdf:about="#b6941931-ae4b-4576-8764-1b76951bc365">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="IEV_0002020" />
@@ -1465,7 +1465,7 @@
</rdf:RDF>
</annotation>
</comp:modelDefinition>
- <comp:modelDefinition id="id823066982_Negative_regulation_of__Binding_of_GPCR_ligand_and_GPCR_" metaid="_600a3676-d93a-4bce-a3fc-ecc175f91634"
+ <comp:modelDefinition id="id823066982_Negative_regulation_of__Binding_of_GPCR_ligand_and_GPCR_" metaid="daa5c22b-e050-4b78-a1f0-6856c6306387"
name="Negative regulation of (Binding of GPCR ligand and GPCR) ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -1486,7 +1486,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_600a3676-d93a-4bce-a3fc-ecc175f91634">
+ <rdf:Description rdf:about="#daa5c22b-e050-4b78-a1f0-6856c6306387">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="P104" />
@@ -1516,7 +1516,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="cytoplasm" metaid="cc0b776f-6906-4ea6-a744-3e24704b84ed" sboTerm="SBO:0000290">
+ <compartment constant="true" id="cytoplasm" metaid="_61ea43d0-5822-4ff8-8b04-84a295b50b15" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000036">
@@ -1524,7 +1524,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#cc0b776f-6906-4ea6-a744-3e24704b84ed">
+ <rdf:Description rdf:about="#_61ea43d0-5822-4ff8-8b04-84a295b50b15">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="http://www.inoh.org/biopax/IC_NO_XREF" />
@@ -1544,7 +1544,7 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_0ada46e5-4089-4720-b858-bb73060a4d27" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_4dba1457-e8d0-4a74-a53a-f109dfdc8044" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000010">
@@ -1552,7 +1552,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_0ada46e5-4089-4720-b858-bb73060a4d27">
+ <rdf:Description rdf:about="#_4dba1457-e8d0-4a74-a53a-f109dfdc8044">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P63092" />
@@ -1580,7 +1580,7 @@
</listOfCompartments>
<listOfSpecies>
<species boundaryCondition="false" compartment="cytoplasm" constant="false" hasOnlySubstanceUnits="true" id="id141699547_pertussis_toxin" initialAmount="1"
- metaid="e7c462dd-2864-4096-a707-7a85ee06f9d1" name="pertussis toxin" sboTerm="SBO:0000252">
+ metaid="e4f86bc9-8706-48ad-8d35-124a0292c7e0" name="pertussis toxin" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="IMR_0100469">
@@ -1600,7 +1600,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#e7c462dd-2864-4096-a707-7a85ee06f9d1">
+ <rdf:Description rdf:about="#e4f86bc9-8706-48a...
[truncated message content] |
|
From: <tra...@us...> - 2016-08-09 02:34:45
|
Revision: 691
http://sourceforge.net/p/sbfc/code/691
Author: tramy-nguyen
Date: 2016-08-09 02:34:43 +0000 (Tue, 09 Aug 2016)
Log Message:
-----------
- moved implementation for replacements on top level sbml model and submodels so that it could take place when iterating through all species, reactions, and compartments from submodels that matches top level sbml model species, reactions, and compartments in BioPAX2SBML.
- set the reaction for templateReation with default flag setReversible(false) in BioPAX2SBML.
- Modified SBML2BioPAX to have no pathway created for the top level sbml model. This will make all entities created from the sbml element on the top level sbml model to have no pathway assigned to it. This will help deal with hierarchical model or else the toplevel smbl model with become its own submodel when converting from BioPAX2SBML.
- fixed SBML2BioPAX parseSpeciesReference() to correctly set left and right participants on a biopax interaction
- Modified how modifiers should be translated to Control Interactions in SBML2BioPAX along with the SBO terms that are being checked to determine the Control Interaction that are created.
- Set templateReaction templateDirection flag to always be FORWARD in SBML2BioPAX
- fixed kprime and deltaG to always add to biomodel when converting these localParameter from kineticLaw to its biochemical reaction in SBML2BioPAX
- removed N/A in setNames() of a biopax entity so that a name is not set to a biopax entity unless there exist a sbmlElement.getName() property set in SBML2BioPAX
- added sbml files to test for catalysis and modulation interactions.
- set up test class to take an original sbml file and roundtrip it back to its a new converted sbml file.
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/biopax2sbml/TestOWLFiles.java
trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java
Added Paths:
-----------
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML_roundtripping.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml
trunk/test/org/sbfc/test/resources/Catalysis.xml
trunk/test/org/sbfc/test/resources/Modulation.xml
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-08 08:11:35 UTC (rev 690)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-09 02:34:43 UTC (rev 691)
@@ -431,17 +431,6 @@
else
{
addSpecies(species.getId(), topModel);
- for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
- {
- Species submodel_species = modelDef.getSpecies(species.getId());
- if(submodel_species != null)
- {
- CompSBasePlugin replacementPlugin = (CompSBasePlugin) topModel.getSpecies(species.getId()).getPlugin(CompConstants.shortLabel);
- ReplacedElement replacement = replacementPlugin.createReplacedElement();
- replacement.setIdRef(submodel_species.getId());
- replacement.setSubmodelRef("submodel__" + modelDef.getId());
- }
- }
}
}
for(Interaction interactionEntity : bioModel.getObjects(Interaction.class))
@@ -483,19 +472,47 @@
else
{
addReaction(reaction.getId(), topModel);
- for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ }
+ }
+ for (Compartment compartment : topModel.getListOfCompartments()) {
+ for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ {
+ Compartment submodelCompartment = modelDef.getModel().getCompartment(compartment.getId());
+ if(submodelCompartment != null)
{
- Reaction submodel_reaction = modelDef.getModel().getReaction(reaction.getId());
- if(submodel_reaction != null)
- {
- CompSBasePlugin replacementPlugin = (CompSBasePlugin) topModel.getReaction(reaction.getId()).getPlugin(CompConstants.shortLabel);
- ReplacedElement replacement = replacementPlugin.createReplacedElement();
- replacement.setIdRef(submodel_reaction.getId());
- replacement.setSubmodelRef("submodel__"+modelDef.getId());
- }
+ CompSBasePlugin replacementPlugin = (CompSBasePlugin) topModel.getCompartment(compartment.getId()).getPlugin(CompConstants.shortLabel);
+ ReplacedElement replacement = replacementPlugin.createReplacedElement();
+ replacement.setIdRef(submodelCompartment.getId());
+ replacement.setSubmodelRef("submodel__"+modelDef.getId());
}
}
}
+ for (Species species : topModel.getListOfSpecies()) {
+ for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ {
+ Species submodel_species = modelDef.getSpecies(species.getId());
+ if(submodel_species != null)
+ {
+ CompSBasePlugin replacementPlugin = (CompSBasePlugin) topModel.getSpecies(species.getId()).getPlugin(CompConstants.shortLabel);
+ ReplacedElement replacement = replacementPlugin.createReplacedElement();
+ replacement.setIdRef(submodel_species.getId());
+ replacement.setSubmodelRef("submodel__" + modelDef.getId());
+ }
+ }
+ }
+ for (Reaction reaction : topModel.getListOfReactions()) {
+ for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ {
+ Reaction submodel_reaction = modelDef.getModel().getReaction(reaction.getId());
+ if(submodel_reaction != null)
+ {
+ CompSBasePlugin replacementPlugin = (CompSBasePlugin) topModel.getReaction(reaction.getId()).getPlugin(CompConstants.shortLabel);
+ ReplacedElement replacement = replacementPlugin.createReplacedElement();
+ replacement.setIdRef(submodel_reaction.getId());
+ replacement.setSubmodelRef("submodel__"+modelDef.getId());
+ }
+ }
+ }
return sbmlDoc.getModel();
}
@@ -519,6 +536,19 @@
Reaction reaction = (Reaction) getSBaseFromSBMLId(reactionId);
if(sbmlModel.getReaction(reaction.getId()) == null)
{
+ for(ModifierSpeciesReference modifier : reaction.getListOfModifiers())
+ {
+ addSpecies(modifier.getSpecies(), sbmlModel);
+
+ }
+ for(SpeciesReference reactant : reaction.getListOfReactants())
+ {
+ addSpecies(reactant.getSpecies(), sbmlModel);
+ }
+ for(SpeciesReference product : reaction.getListOfProducts())
+ {
+ addSpecies(product.getSpecies(), sbmlModel);
+ }
sbmlModel.addReaction(reaction.clone());
}
}
@@ -603,20 +633,6 @@
if(mappedEntities.get(entity.getRDFId()) != null)
{
Reaction pathwayComponent = (Reaction) mappedEntities.get(entity.getRDFId());
-
- for(ModifierSpeciesReference modifier : pathwayComponent.getListOfModifiers())
- {
- addSpecies(modifier.getSpecies(), sbmlModel);
-
- }
- for(SpeciesReference reactant : pathwayComponent.getListOfReactants())
- {
- addSpecies(reactant.getSpecies(), sbmlModel);
- }
- for(SpeciesReference product : pathwayComponent.getListOfProducts())
- {
- addSpecies(product.getSpecies(), sbmlModel);
- }
addReaction(pathwayComponent.getId(), sbmlModel);
}
else
@@ -1422,19 +1438,19 @@
{
boolean hasModifier = false;
boolean hasProduct = false; templateReaction.getTemplateDirection();
-
+ reaction.setReversible(false);
+ /*
+ * TODO: handel how to parse templateDirection()
+ */
if(templateReaction.getTemplateDirection() == TemplateDirectionType.FORWARD)
{
- reaction.setReversible(false);
+
}
else if (templateReaction.getTemplateDirection() == TemplateDirectionType.REVERSE)
{
- reaction.setReversible(true);
+
}
- else
- {
- reaction.setReversible(false);
- }
+
if(templateReaction.getTemplate() != null)
{
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-08 08:11:35 UTC (rev 690)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-09 02:34:43 UTC (rev 691)
@@ -19,6 +19,7 @@
import org.biopax.paxtools.model.level3.Gene;
import org.biopax.paxtools.model.level3.GeneticInteraction;
import org.biopax.paxtools.model.level3.Interaction;
+import org.biopax.paxtools.model.level3.Modulation;
import org.biopax.paxtools.model.level3.MolecularInteraction;
import org.biopax.paxtools.model.level3.NucleicAcid;
import org.biopax.paxtools.model.level3.Pathway;
@@ -31,6 +32,7 @@
import org.biopax.paxtools.model.level3.Stoichiometry;
import org.biopax.paxtools.model.level3.TemplateDirectionType;
import org.biopax.paxtools.model.level3.TemplateReaction;
+import org.biopax.paxtools.model.level3.TemplateReactionRegulation;
import org.biopax.paxtools.model.level3.UnificationXref;
import org.sbml.jsbml.ListOf;
import org.sbml.jsbml.ModifierSpeciesReference;
@@ -56,7 +58,7 @@
Model bpModel = sbml2BioPAXUtilities.createModel();
log.debug("Now, let's create a Pathway that corresponds to this SBML model.");
- Pathway pathway = sbml2BioPAXUtilities.convertPathway(bpModel, sbmlTopLevelModel);
+ Pathway pathway = null;//sbml2BioPAXUtilities.convertPathway(bpModel, sbmlTopLevelModel);
// Species -> PhysicalEntities [start]
log.debug("There are " + sbmlTopLevelModel.getNumSpecies() + " reactions in the SBML model. ");
@@ -73,6 +75,7 @@
* to parse all of their species and reactions.
*/
CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDocument.getPlugin(CompConstants.shortLabel);
+ // TODO: loop over Submodels, use source to find the ModelDefinition
for(ModelDefinition subModelDef : compSBMLDocPlugin.getListOfModelDefinitions())
{
Pathway subModelPathway = sbml2BioPAXUtilities.convertPathway(bpModel, subModelDef);
@@ -106,7 +109,10 @@
for (Reaction reaction : sbmlReactions) {
log.trace("Working on reaction conversion: " + reaction.getName());
Interaction interaction = sbml2BioPAXUtilities.convertReaction(bpModel, reaction);
- pathway.addPathwayComponent(interaction);
+ if(pathway != null)
+ {
+ pathway.addPathwayComponent(interaction);
+ }
// Modifiers -> Control reactions [start]
log.trace(
@@ -119,13 +125,13 @@
log.trace("- There are " + reaction.getNumReactants() + " reactants to this reaction. " +
"Adding them to the reaction as left participants.");
- parseSpeciesReference(sbmlModel, reaction.getListOfReactants(), bpModel, interaction, reaction);
+ parseSpeciesReference(sbmlModel, reaction.getListOfReactants(), bpModel, interaction, reaction, true);
// Reactants -> Left Participants [end]
// Products -> Right Participants [start]
log.trace("- There are " + reaction.getNumProducts() + " products to this reaction. " +
"Adding them to the reaction as right participants.");
- parseSpeciesReference(sbmlModel, reaction.getListOfProducts(), bpModel, interaction, reaction);
+ parseSpeciesReference(sbmlModel, reaction.getListOfProducts(), bpModel, interaction, reaction, false);
// Products -> Right Participants [end]
}
// Reactions -> Conversions [end]
@@ -146,16 +152,7 @@
interaction.addParticipant(gene);
continue;
}
-
- //Control could only be Modulation, TemplateReactionRegulation, or any other Control Interaction
- Control control = sbml2BioPAXUtilities.convertModifier(bpModel, modifier, reaction);
-
- pathway.addPathwayComponent(control);
- control.addControlled(interaction);
- Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
- control.addController(controller);
-
- if(interaction instanceof TemplateReaction)
+ else if(interaction instanceof TemplateReaction)
{
TemplateReaction templateReaction = (TemplateReaction) interaction;
Entity entity = (Entity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
@@ -165,18 +162,51 @@
NucleicAcid templateEntity = (NucleicAcid) entity;
templateReaction.setTemplate(templateEntity);
}
- }
- else if(interaction instanceof Catalysis)
- {
- Catalysis catalysis = (Catalysis) interaction;
- if(modifier.getSBOTerm() == SBO.getCatalyticActivator())
+ else if(sbml2BioPAXUtilities.isControlType(modifier.getSBOTerm()))
{
- PhysicalEntity cofactorEntity = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
- catalysis.addCofactor(cofactorEntity);
+ Control control = sbml2BioPAXUtilities.convertModifier(bpModel, modifier, reaction);
+ if(pathway!= null)
+ {
+ pathway.addPathwayComponent(control);
+ }
+ control.addControlled(interaction);
+ Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ control.addController(controller);
}
- else if(modifier.getSBOTerm() == SBO.getCatalyst())
+ }
+ else {
+ if(SBO.isChildOf(modifier.getSBOTerm(), SBO.getCatalyst()))
{
- catalysis.setControlType(ControlType.ACTIVATION);
+ Catalysis catalysis = (Catalysis) sbml2BioPAXUtilities.convertModifier(bpModel, modifier, reaction);
+ if(pathway!= null)
+ {
+ pathway.addPathwayComponent(catalysis);
+ }
+ catalysis.addControlled(interaction);
+ Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ catalysis.addController(controller);
+ for (ModifierSpeciesReference modifier2 : listOfModifiers) {
+ if (SBO.isChildOf(modifier2.getSBOTerm(), SBO.getCatalyst()))
+ {
+ continue;
+ }
+ Species species2 = sbmlModel.getSpecies(modifier2.getSpecies());
+ if(modifier2.getSBOTerm() == SBO.getCatalyticActivator())
+ {
+ PhysicalEntity cofactorEntity = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ catalysis.addCofactor(cofactorEntity);
+ } else if(sbml2BioPAXUtilities.isControlType(modifier2.getSBOTerm())) {
+
+ Modulation modulation = (Modulation) sbml2BioPAXUtilities.convertModifier(bpModel, modifier2, reaction);
+ if(pathway!= null)
+ {
+ pathway.addPathwayComponent(modulation);
+ }
+ modulation.addControlled(catalysis);
+ Controller controller2 = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species2);
+ modulation.addController(controller2);
+ }
+ }
}
}
// Modifiers -> Controls [end]
@@ -184,7 +214,7 @@
}
private void parseSpeciesReference(org.sbml.jsbml.Model sbmlModel, ListOf<SpeciesReference> listOfSpeciesReferences,
- Model bpModel, Interaction interaction, Reaction reaction)
+ Model bpModel, Interaction interaction, Reaction reaction, boolean isLeft)
{
// Reactants -> Left Participants [start]
@@ -194,7 +224,7 @@
if(interaction instanceof Conversion)
{
Conversion conversion = (Conversion) interaction;
- if(reaction.getReversible())
+ if(isLeft)
{
conversion.addLeft((PhysicalEntity) entity);
}
@@ -204,7 +234,7 @@
}
if(!Double.isNaN(speciesRef.getStoichiometry()))
{
- parseStoichiometry(speciesRef, conversion, sbmlModel, bpModel);
+ parseStoichiometry(reaction, speciesRef, conversion, sbmlModel, bpModel);
}
}
else if(interaction instanceof TemplateReaction)
@@ -218,18 +248,39 @@
}
}
- private void parseStoichiometry(SpeciesReference speciesRef, Conversion interaction,
+ private void parseStoichiometry(Reaction reaction, SpeciesReference speciesRef, Conversion interaction,
org.sbml.jsbml.Model sbmlModel, Model bpModel)
{
BioPAXFactory bioPAXFactory = BioPAXLevel.L3.getDefaultFactory();
- Stoichiometry stoichio = bioPAXFactory.create(Stoichiometry.class, speciesRef.getId());
+ String stoichId = null;
+ if(speciesRef.isSetId())
+ {
+ stoichId = sbml2BioPAXUtilities.getXMLBase() + speciesRef.getId();
+ }
+ else
+ {
+ /*
+ * Note:
+ * Special case when you have same species in multiple speciesReference
+ * i.e. A + A -> B
+ * i.e. A + B -> 2A
+ *
+ */
+ stoichId = sbml2BioPAXUtilities.getXMLBase() + reaction.getId() + "__" + speciesRef.getSpecies();
+ stoichId = sbml2BioPAXUtilities.getUniqueEntityId(stoichId, bpModel);
+ }
+
+
+
+ Stoichiometry stoichio = bioPAXFactory.create(Stoichiometry.class, stoichId);
stoichio.setStoichiometricCoefficient((float) speciesRef.getStoichiometry());
Species species = sbmlModel.getSpecies(speciesRef.getSpecies());
PhysicalEntity physicalEntityParticipant = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
stoichio.setPhysicalEntity((PhysicalEntity) physicalEntityParticipant);
-
+ bpModel.add(stoichio);
interaction.addParticipantStoichiometry(stoichio);
}
+
}
\ No newline at end of file
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-08 08:11:35 UTC (rev 690)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-09 02:34:43 UTC (rev 691)
@@ -20,6 +20,7 @@
import org.biopax.paxtools.model.Model;
import org.biopax.paxtools.model.level3.BioSource;
import org.biopax.paxtools.model.level3.BiochemicalReaction;
+import org.biopax.paxtools.model.level3.Catalysis;
import org.biopax.paxtools.model.level3.CellularLocationVocabulary;
import org.biopax.paxtools.model.level3.Complex;
import org.biopax.paxtools.model.level3.ComplexAssembly;
@@ -235,7 +236,7 @@
if(rxnClass.equals(TransportWithBiochemicalReaction.class) || rxnClass.equals(BiochemicalReaction.class))
{
BiochemicalReaction biochemicalReaction = (BiochemicalReaction) conversion;
- parseKineticLaw(reaction, biochemicalReaction);
+ parseKineticLaw(reaction, biochemicalReaction, bpModel);
}
return setXref(bpModel, reaction, conversion);
@@ -243,18 +244,18 @@
if(reactionClass.equals(TemplateReaction.class))
{
TemplateReaction templateReaction = (TemplateReaction) createBPEfromSBMLE(bpModel, reactionClass, reaction);
- templateReaction.setTemplateDirection(
- reaction.getReversible()
- ? TemplateDirectionType.FORWARD
- : TemplateDirectionType.REVERSE
- );
+ /*
+ * Note: Because templateReaction is always acting as a production,
+ * TemplateDirectionType should always be FORWARD
+ */
+ templateReaction.setTemplateDirection(TemplateDirectionType.FORWARD);
return setXref(bpModel, reaction, templateReaction);
}
Interaction interaction = createBPEfromSBMLE(bpModel, reactionClass, reaction);
return setXref(bpModel, reaction, interaction);
}
- private void parseKineticLaw(Reaction reaction, BiochemicalReaction biochemicalReaction)
+ private void parseKineticLaw(Reaction reaction, BiochemicalReaction biochemicalReaction, Model bpModel)
{
KineticLaw reactionKL = reaction.getKineticLaw();
if(reactionKL != null)
@@ -319,6 +320,9 @@
}
+ bpModel.add(kprime);
+ bpModel.add(deltaG);
+
biochemicalReaction.addDeltaG(deltaG);
biochemicalReaction.addKEQ(kprime);
}
@@ -348,16 +352,28 @@
*/
public void setNames(AbstractNamedSBase namedSBase, Named named) {
String name = namedSBase.getName();
- if(name == null || name.isEmpty()) {
- name = "N/A";
+ if(name != null && !name.isEmpty()) {
+ /*
+ * TODO: TBD - modify standardName
+ */
+ named.setStandardName(name);
+ named.setDisplayName(name);
+// named.getName().add(name);
}
- /*
- * TODO: TBD - modify standardName
- */
- named.setStandardName(name);
- named.setDisplayName(name);
- named.getName().add(name);
+
}
+
+ public String getUniqueEntityId(String id, Model bpModel)
+ {
+ String result = id;
+ int uniqueCounter = 0;
+ while(bpModel.getByID(result) != null )
+ {
+ result = id + ++uniqueCounter;
+
+ }
+ return result;
+ }
/**
* Convert a SBML ModifierSpeciesReference to a BioPAX Control Interaction.
@@ -367,18 +383,34 @@
* @return The converted BioPAX Control Interaction
*/
public Control convertModifier(Model bpModel, ModifierSpeciesReference modifierSpeciesReference, Reaction reaction) {
- String id = completeId(modifierSpeciesReference.getId());
-
+ String modifierId = null;
+ if(modifierSpeciesReference.isSetId())
+ {
+ modifierId = getXMLBase() + modifierSpeciesReference.getId();
+ }
+ else
+ {
+ /*
+ * Note:
+ * Special case when you have same modifierSpeciesReference multiple time
+ *
+ */
+ modifierId = getXMLBase() + reaction.getId() + "__" + modifierSpeciesReference.getSpecies();
+ modifierId = getUniqueEntityId(modifierId, bpModel);
+ }
+
Control control = null;
//Check what type of control is this modifier
int reactionSBOValue = reaction.getSBOTerm();
+ int modifierSBOValue = modifierSpeciesReference.getSBOTerm();
+
if(SBO.isChildOf(reactionSBOValue, 589))
{
//If reaction SBO value is a TemplateReaction (SBO:0000589), then create a TemplateReactionRegulation
- control = createBPEfromSBMLE(bpModel, TemplateReactionRegulation.class, modifierSpeciesReference, id);
+ control = createBPEfromSBMLE(bpModel, TemplateReactionRegulation.class, modifierSpeciesReference, modifierId);
}
- else if(SBO.isChildOf(reactionSBOValue, 167))
+ else if(SBO.isChildOf(modifierSBOValue, 13))
{
/*
* Note:
@@ -386,11 +418,11 @@
* Since all SBO value under SBO:0000167 contains SBO values that map to a Conversion Interaction,
* it should safe to check only the parent SBO value.
*/
- control = createBPEfromSBMLE(bpModel, Modulation.class, modifierSpeciesReference, id);
+ control = createBPEfromSBMLE(bpModel, Catalysis.class, modifierSpeciesReference, modifierId);
}
- else
+ else
{
- control = createBPEfromSBMLE(bpModel, Control.class, modifierSpeciesReference, id);
+ control = createBPEfromSBMLE(bpModel, Modulation.class, modifierSpeciesReference, modifierId);
}
setControlType(control, modifierSpeciesReference.getSBOTerm());
@@ -432,7 +464,7 @@
control.setControlType(ControlType.INHIBITION);
}
}
- else if(SBO.isChildOf(modifierSBOTerm, 21))
+ else if(SBO.isChildOf(modifierSBOTerm, 459))
{
if(SBO.isChildOf(modifierSBOTerm, 636))
{
@@ -443,15 +475,25 @@
control.setControlType(ControlType.ACTIVATION_NONALLOSTERIC);
}
else
- {
+ {
control.setControlType(ControlType.ACTIVATION);
}
}
else
{
- //TODO: throw exception because SBO value is none of the above?
+ //TODO: SBO:0000596 (unknown) SBO:0000595(dual) and SBO:0000019(modifier) deal with how?
}
}
+
+ public boolean isControlType(int modifierSBOTerm)
+ {
+ if(SBO.isChildOf(modifierSBOTerm, 19))
+ {
+ return true;
+ }
+
+ return false;
+ }
public <T extends SimplePhysicalEntity, S extends EntityReference> T convertSpeciesToSPE(Model bpModel, Class<T> entityClass, Class<S> refClass, Species species) {
T entity = createBPEfromSBMLE(bpModel, entityClass, species);
@@ -540,7 +582,7 @@
{
physicalEntity = convertSpeciesToSPE(bpModel, Dna.class, DnaReference.class, species);
}
- else if(SBO.isChildOf(speciesSBOValue, 634))
+ else if(SBO.isChildOf(speciesSBOValue, 634) || SBO.isChildOf(speciesSBOValue, 335) || SBO.isChildOf(speciesSBOValue, 369))
{
physicalEntity = convertSpeciesToSPE(bpModel, DnaRegion.class, DnaRegionReference.class, species);
}
@@ -568,8 +610,8 @@
CellularLocationVocabulary cellularLocationVocabulary = createCompartment(bpModel, species.getCompartmentInstance());
physicalEntity.setCellularLocation(cellularLocationVocabulary);
+
-
return physicalEntity;
}
Modified: trunk/test/org/sbfc/test/biopax2sbml/TestOWLFiles.java
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/TestOWLFiles.java 2016-08-08 08:11:35 UTC (rev 690)
+++ trunk/test/org/sbfc/test/biopax2sbml/TestOWLFiles.java 2016-08-09 02:34:43 UTC (rev 691)
@@ -86,6 +86,33 @@
return biopax2sbmlModel;
}
+ public static SBMLModel readOWLModel(BioPAXModel sbfcBiopaxModel)
+ {
+ BioPAX2SBML sbml2biopax = new BioPAX2SBML();
+ SBMLModel biopax2sbmlModel = null;
+ try
+ {
+ biopax2sbmlModel = sbml2biopax.sbmlExport(sbfcBiopaxModel);
+ }
+ catch (SBMLException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ catch (ConversionException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ catch (ReadModelException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return biopax2sbmlModel;
+ }
+
public static void printSBMLModel(SBMLModel sbfcSBMLModel)
{
try
Added: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml (rev 0)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Catalysis_roundtripping.xml 2016-08-09 02:34:43 UTC (rev 691)
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='utf-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+ <model id="defaultSBMLModelId" metaid="_7a4e88f6-c98d-4df2-8db4-461697bd658f">
+ <notes>
+ <body xmlns="http://www.w3.org/1999/xhtml">
+ <p>This model has been automatically generated by BioPAX2SBML</p>
+ </body>
+ </notes>
+ <annotation>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
+ <rdf:Description rdf:about="#_7a4e88f6-c98d-4df2-8db4-461697bd658f">
+ <dc:creator>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <vCard:ORG rdf:parseType="Resource">
+ <vCard:Orgname>GSoC 2016, National Resource for Network Biology</vCard:Orgname>
+ </vCard:ORG>
+ </rdf:li>
+ </rdf:Bag>
+ </dc:creator>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S1" initialAmount="1" name="http://www.humanmetabolism.org/#S1" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S0" initialAmount="1" name="http://www.humanmetabolism.org/#S0" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S2" initialAmount="1" name="http://www.humanmetabolism.org/#S2" sboTerm="SBO:0000252" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="R0" name="http://www.humanmetabolism.org/#R0" reversible="true" sboTerm="SBO:0000176">
+ <listOfReactants>
+ <speciesReference constant="true" id="R0__S0" name="http://www.humanmetabolism.org/#R0__S0" species="S0" stoichiometry="1" />
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" id="R0__S1" name="http://www.humanmetabolism.org/#R0__S1" species="S1" stoichiometry="1" />
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference id="R0__S2" name="http://www.humanmetabolism.org/#R0__S2" sboTerm="SBO:0000013" species="S2" />
+ </listOfModifiers>
+ </reaction>
+ </listOfReactions>
+ </model>
+</sbml>
Added: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML_roundtripping.xml (rev 0)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/GeneticToggleSBML_roundtripping.xml 2016-08-09 02:34:43 UTC (rev 691)
@@ -0,0 +1,164 @@
+<?xml version='1.0' encoding='utf-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" comp:required="true" level="3" version="1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:modelDefinition id="LacI_Inverter" name="http://www.humanmetabolism.org/#LacI_Inverter">
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="pLac" initialAmount="1" name="http://www.humanmetabolism.org/#pLac"
+ sboTerm="SBO:0000634" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
+ sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" initialAmount="1" name="http://www.humanmetabolism.org/#GFP"
+ sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
+ sboTerm="SBO:0000252" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="pLac_prod_GFP_pLac_prod_TetR" name="http://www.humanmetabolism.org/#pLac_prod_GFP_pLac_prod_TetR" reversible="false" sboTerm="SBO:0000589">
+ <listOfProducts>
+ <speciesReference constant="true" species="GFP" />
+ <speciesReference constant="true" species="TetR" />
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference species="pLac" />
+ <modifierSpeciesReference id="pLac_prod_GFP_pLac_prod_TetR__LacI" name="http://www.humanmetabolism.org/#pLac_prod_GFP_pLac_prod_TetR__LacI" sboTerm="SBO:0000020" species="LacI" />
+ </listOfModifiers>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
+ <comp:modelDefinition id="TetR_Inverter" name="http://www.humanmetabolism.org/#TetR_Inverter">
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="P0" initialAmount="1" name="http://www.humanmetabolism.org/#P0"
+ sboTerm="SBO:0000634" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
+ sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
+ sboTerm="SBO:0000252" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="P0_prod_LacI" name="http://www.humanmetabolism.org/#P0_prod_LacI" reversible="false" sboTerm="SBO:0000589">
+ <listOfProducts>
+ <speciesReference constant="true" species="LacI" />
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference species="P0" />
+ <modifierSpeciesReference id="P0_prod_LacI__TetR" name="http://www.humanmetabolism.org/#P0_prod_LacI__TetR" sboTerm="SBO:0000020" species="TetR" />
+ </listOfModifiers>
+ </reaction>
+ </listOfReactions>
+ </comp:modelDefinition>
+ </comp:listOfModelDefinitions>
+ <model id="topLevel_sbmlModel" metaid="_7c77aab6-ff32-41d2-92b3-6170ff08bb15">
+ <notes>
+ <body xmlns="http://www.w3.org/1999/xhtml">
+ <p>This model has been automatically generated by BioPAX2SBML</p>
+ </body>
+ </notes>
+ <annotation>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
+ <rdf:Description rdf:about="#_7c77aab6-ff32-41d2-92b3-6170ff08bb15">
+ <dc:creator>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <vCard:ORG rdf:parseType="Resource">
+ <vCard:Orgname>GSoC 2016, National Resource for Network Biology</vCard:Orgname>
+ </vCard:ORG>
+ </rdf:li>
+ </rdf:Bag>
+ </dc:creator>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ <comp:listOfSubmodels xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:submodel comp:id="submodel__LacI_Inverter" comp:modelRef="LacI_Inverter" />
+ <comp:submodel comp:id="submodel__TetR_Inverter" comp:modelRef="TetR_Inverter" />
+ </comp:listOfSubmodels>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="Cell" comp:submodelRef="submodel__LacI_Inverter" />
+ <comp:replacedElement comp:idRef="Cell" comp:submodelRef="submodel__TetR_Inverter" />
+ </comp:listOfReplacedElements>
+ </compartment>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI_IPTG" initialAmount="1" name="http://www.humanmetabolism.org/#LacI_IPTG"
+ sboTerm="SBO:0000253" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="LacI" initialAmount="1" name="http://www.humanmetabolism.org/#LacI"
+ sboTerm="SBO:0000252">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="LacI" comp:submodelRef="submodel__LacI_Inverter" />
+ <comp:replacedElement comp:idRef="LacI" comp:submodelRef="submodel__TetR_Inverter" />
+ </comp:listOfReplacedElements>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="IPTG" initialAmount="1" name="http://www.humanmetabolism.org/#IPTG"
+ sboTerm="SBO:0000247" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR_aTc" initialAmount="1" name="http://www.humanmetabolism.org/#TetR_aTc"
+ sboTerm="SBO:0000253" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="aTc" initialAmount="1" name="http://www.humanmetabolism.org/#aTc"
+ sboTerm="SBO:0000247" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="TetR" initialAmount="1" name="http://www.humanmetabolism.org/#TetR"
+ sboTerm="SBO:0000252">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="TetR" comp:submodelRef="submodel__LacI_Inverter" />
+ <comp:replacedElement comp:idRef="TetR" comp:submodelRef="submodel__TetR_Inverter" />
+ </comp:listOfReplacedElements>
+ </species>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="GFP" initialAmount="1" name="http://www.humanmetabolism.org/#GFP" sboTerm="SBO:0000252">
+ <comp:listOfReplacedElements xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:replacedElement comp:idRef="GFP" comp:submodelRef="submodel__LacI_Inverter" />
+ </comp:listOfReplacedElements>
+ </species>
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="Degradation_TetR_aTc" name="http://www.humanmetabolism.org/#Degradation_TetR_aTc" reversible="false" sboTerm="SBO:0000179">
+ <listOfReactants>
+ <speciesReference constant="true" id="Degradation_TetR_aTc__TetR_aTc" name="http://www.humanmetabolism.org/#Degradation_TetR_aTc__TetR_aTc" species="TetR_aTc" stoichiometry="1" />
+ </listOfReactants>
+ </reaction>
+ <reaction fast="false" id="Degradation_TetR" name="http://www.humanmetabolism.org/#Degradation_TetR" reversible="false" sboTerm="SBO:0000179">
+ <listOfReactants>
+ <speciesReference constant="true" id="Degradation_TetR__TetR" name="http://www.humanmetabolism.org/#Degradation_TetR__TetR" species="TetR" stoichiometry="1" />
+ </listOfReactants>
+ </reaction>
+ <reaction fast="false" id="Degradation_LacI" name="http://www.humanmetabolism.org/#Degradation_LacI" reversible="false" sboTerm="SBO:0000179">
+ <listOfReactants>
+ <speciesReference constant="true" id="Degradation_LacI__LacI" name="http://www.humanmetabolism.org/#Degradation_LacI__LacI" species="LacI" stoichiometry="1" />
+ </listOfReactants>
+ </reaction>
+ <reaction fast="false" id="Complex_LacI_IPTG" name="http://www.humanmetabolism.org/#Complex_LacI_IPTG" reversible="true" sboTerm="SBO:0000177">
+ <listOfReactants>
+ <speciesReference constant="true" id="Complex_LacI_IPTG__LacI" name="http://www.humanmetabolism.org/#Complex_LacI_IPTG__LacI" species="LacI" stoichiometry="2" />
+ <speciesReference constant="true" id="Complex_LacI_IPTG__IPTG" name="http://www.humanmetabolism.org/#Complex_LacI_IPTG__IPTG" species="IPTG" stoichiometry="2" />
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" id="Complex_LacI_IPTG__LacI_IPTG" name="http://www.humanmetabolism.org/#Complex_LacI_IPTG__LacI_IPTG" species="LacI_IPTG" stoichiometry="1" />
+ </listOfProducts>
+ </reaction>
+ <reaction fast="false" id="Degradation_GFP" name="http://www.humanmetabolism.org/#Degradation_GFP" reversible="false" sboTerm="SBO:0000179">
+ <listOfReactants>
+ <speciesReference constant="true" id="Degradation_GFP__GFP" name="http://www.humanmetabolism.org/#Degradation_GFP__GFP" species="GFP" stoichiometry="1" />
+ </listOfReactants>
+ </reaction>
+ <reaction fast="false" id="Complex_TetR_aTc" name="http://www.humanmetabolism.org/#Complex_TetR_aTc" reversible="true" sboTerm="SBO:0000177">
+ <listOfReactants>
+ <speciesReference constant="true" id="Complex_TetR_aTc__aTc" name="http://www.humanmetabolism.org/#Complex_TetR_aTc__aTc" species="aTc" stoichiometry="2" />
+ <speciesReference constant="true" id="Complex_TetR_aTc__TetR" name="http://www.humanmetabolism.org/#Complex_TetR_aTc__TetR" species="TetR" stoichiometry="2" />
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" id="Complex_TetR_aTc__TetR_aTc" name="http://www.humanmetabolism.org/#Complex_TetR_aTc__TetR_aTc" species="TetR_aTc" stoichiometry="1" />
+ </listOfProducts>
+ </reaction>
+ <reaction fast="false" id="Degradation_LacI_IPTG" name="http://www.humanmetabolism.org/#Degradation_LacI_IPTG" reversible="false" sboTerm="SBO:0000179">
+ <listOfReactants>
+ <speciesReference constant="true" id="Degradation_LacI_IPTG__LacI_IPTG" name="http://www.humanmetabolism.org/#Degradation_LacI_IPTG__LacI_IPTG" species="LacI_IPTG" stoichiometry="1" />
+ </listOfReactants>
+ </reaction>
+ </listOfReactions>
+ </model>
+</sbml>
Added: trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml (rev 0)
+++ trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Modulation_roundtripping.xml 2016-08-09 02:34:43 UTC (rev 691)
@@ -0,0 +1,48 @@
+<?xml version='1.0' encoding='utf-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+ <model id="defaultSBMLModelId" metaid="cef18744-9ba2-4044-8b2e-a22307cdbd3b">
+ <notes>
+ <body xmlns="http://www.w3.org/1999/xhtml">
+ <p>This model has been automatically generated by BioPAX2SBML</p>
+ </body>
+ </notes>
+ <annotation>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#">
+ <rdf:Description rdf:about="#cef18744-9ba2-4044-8b2e-a22307cdbd3b">
+ <dc:creator>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <vCard:ORG rdf:parseType="Resource">
+ <vCard:Orgname>GSoC 2016, National Resource for Network Biology</vCard:Orgname>
+ </vCard:ORG>
+ </rdf:li>
+ </rdf:Bag>
+ </dc:creator>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" sboTerm="SBO:0000290" />
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S1" initialAmount="1" name="http://www.humanmetabolism.org/#S1" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S0" initialAmount="1" name="http://www.humanmetabolism.org/#S0" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S3" initialAmount="1" name="http://www.humanmetabolism.org/#S3" sboTerm="SBO:0000252" />
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S2" initialAmount="1" name="http://www.humanmetabolism.org/#S2" sboTerm="SBO:0000252" />
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="R0" name="http://www.humanmetabolism.org/#R0" reversible="true" sboTerm="SBO:0000176">
+ <listOfReactants>
+ <speciesReference constant="true" id="R0__S0" name="http://www.humanmetabolism.org/#R0__S0" species="S0" stoichiometry="1" />
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" id="R0__S1" name="http://www.humanmetabolism.org/#R0__S1" species="S1" stoichiometry="1" />
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference id="R0__S2" name="http://www.humanmetabolism.org/#R0__S2" sboTerm="SBO:0000013" species="S2" />
+ <modifierSpeciesReference id="R0__S3" name="http://www.humanmetabolism.org/#R0__S3" sboTerm="SBO:0000021" species="S3" />
+ </listOfModifiers>
+ </reaction>
+ </listOfReactions>
+ </model>
+</sbml>
Added: trunk/test/org/sbfc/test/resources/Catalysis.xml
===================================================================
--- trunk/test/org/sbfc/test/resources/Catalysis.xml (rev 0)
+++ trunk/test/org/sbfc/test/resources/Catalysis.xml 2016-08-09 02:34:43 UTC (rev 691)
@@ -0,0 +1,163 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" arrays:required="true" comp:required="true" fbc:required="false" layout:required="false" level="3" version="1" xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1">
+ <model fbc:strict="false" id="Catalysis" metaid="iBioSim2">
+ <comp:listOfPorts xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
+ </comp:listOfPorts>
+ <layout:listOfLayouts xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <layout:layout layout:id="iBioSim">
+ <layout:dimensions layout:depth="0" layout:height="425" layout:width="1070"/>
+ <layout:listOfCompartmentGlyphs>
+ <layout:compartmentGlyph layout:compartment="Cell" layout:id="Glyph__Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:compartmentGlyph>
+ </layout:listOfCompartmentGlyphs>
+ <layout:listOfSpeciesGlyphs>
+ <layout:speciesGlyph layout:id="Glyph__S0" layout:species="S0">
+ <layout:boundingBox>
+ <layout:position layout:x="80" layout:y="60"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__S1" layout:species="S1">
+ <layout:boundingBox>
+ <layout:position layout:x="232" layout:y="228"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__S2" layout:species="S2">
+ <layout:boundingBox>
+ <layout:position layout:x="359" layout:y="58"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ </layout:listOfSpeciesGlyphs>
+ <layout:listOfReactionGlyphs>
+ <layout:reactionGlyph layout:id="Glyph__R0" layout:reaction="R0">
+ <layout:boundingBox>
+ <layout:position layout:x="227" layout:y="124"/>
+ <layout:dimensions layout:height="20" layout:width="20"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="Glyph__R0__substrate__S0" layout:role="substrate" layout:speciesGlyph="Glyph__S0">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="100" layout:y="80"/>
+ <layout:end layout:x="237" layout:y="134"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ <layout:speciesReferenceGlyph layout:id="Glyph__R0__modifier__S2" layout:role="modifier" layout:speciesGlyph="Glyph__S2">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="379" layout:y="78"/>
+ <layout:end layout:x="237" layout:y="134"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ <layout:speciesReferenceGlyph layout:id="Glyph__R0__product__S1" layout:role="product" layout:speciesGlyph="Glyph__S1">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="237" layout:y="134"/>
+ <layout:end layout:x="252" layout:y="248"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ </layout:listOfReactionGlyphs>
+ <layout:listOfTextGlyphs>
+ <layout:textGlyph layout:graphicalObject="Glyph__Cell" layout:id="TextGlyph__Cell" layout:text="Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__S0" layout:id="TextGlyph__S0" layout:text="S0">
+ <layout:boundingBox>
+ <layout:position layout:x="80" layout:y="60"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__S1" layout:id="TextGlyph__S1" layout:text="S1">
+ <layout:boundingBox>
+ <layout:position layout:x="232" layout:y="228"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__R0" layout:id="TextGlyph__R0" layout:text="R0">
+ <layout:boundingBox>
+ <layout:position layout:x="227" layout:y="124"/>
+ <layout:dimensions layout:height="20" layout:width="20"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__S2" layout:id="TextGlyph__S2" layout:text="S2">
+ <layout:boundingBox>
+ <layout:position layout:x="359" layout:y="58"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ </layout:listOfTextGlyphs>
+ </layout:layout>
+ </layout:listOfLayouts>
+ <listOfCompartments>
+ <compartment constant="true" id="Cell" size="1" spatialDimensions="3"/>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S0" initialAmount="0" metaid="iBioSim1" sboTerm="SBO:0000252"/>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S1" initialAmount="0" metaid="iBioSim3" sboTerm="SBO:0000252"/>
+ <species boundaryCondition="false" compartment="Cell" constant="false" hasOnlySubstanceUnits="true" id="S2" initialAmount="0" metaid="iBioSim5" sboTerm="SBO:0000252"/>
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction compartment="Cell" fast="false" id="R0" metaid="iBioSim4" reversible="true" sboTerm="SBO:0000176">
+ <listOfReactants>
+ <speciesReference constant="true" species="S0" stoichiometry="1"/>
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" species="S1" stoichiometry="1"/>
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference sboTerm="SBO:0000013" species="S2"/>
+ </listOfModifiers>
+ <kineticLaw>
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <apply>
+ <minus/>
+ <apply>
+ <times/>
+ <apply>
+ <times/>
+ <ci> kf </ci>
+ <ci> S0 </ci>
+ </apply>
+ <ci> S2 </ci>
+ </apply>
+ <apply>
+ <times/>
+ <apply>
+ <times/>
+ <ci> kr </ci>
+ <ci> S1 </ci>
+ </apply>
+ <ci> S2 </ci>
+ </apply>
+ </apply>
+ </math>
+ <listOfLocalParameters>
+ <localParameter id="kf" value="0.1"/>
+ <localParameter id="kr" value="1"/>
+ </listOfLocalParameters>
+ </kineticLaw>
+ </reaction>
+ </listOfReactions>
+ </model>
+</sbml>
\ No newline at end of file
Added: trunk/test/org/sbfc/test/resources/Modulation.xml
===================================================================
--- trunk/test/org/sbfc/test/resources/Modulation.xml (rev 0)
+++ trunk/test/org/sbfc/test/resources/Modulation.xml 2016-08-09 02:34:43 UTC (rev 691)
@@ -0,0 +1,187 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" arrays:required="true" comp:required="true" fbc:required="false" layout:required="false" level="3" version="1" xmlns:arrays="http://www.sbml.org/sbml/level3/version1/arrays/version1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1">
+ <model fbc:strict="false" id="Modulation" metaid="iBioSim6">
+ <comp:listOfPorts xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:port comp:id="compartment__Cell" comp:idRef="Cell" sboTerm="SBO:0000601"/>
+ </comp:listOfPorts>
+ <layout:listOfLayouts xmlns:layout="http://www.sbml.org/sbml/level3/version1/layout/version1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <layout:layout layout:id="iBioSim">
+ <layout:dimensions layout:depth="0" layout:height="425" layout:width="1070"/>
+ <layout:listOfCompartmentGlyphs>
+ <layout:compartmentGlyph layout:compartment="Cell" layout:id="Glyph__Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:compartmentGlyph>
+ </layout:listOfCompartmentGlyphs>
+ <layout:listOfSpeciesGlyphs>
+ <layout:speciesGlyph layout:id="Glyph__S0" layout:species="S0">
+ <layout:boundingBox>
+ <layout:position layout:x="80" layout:y="60"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__S1" layout:species="S1">
+ <layout:boundingBox>
+ <layout:position layout:x="232" layout:y="228"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__S2" layout:species="S2">
+ <layout:boundingBox>
+ <layout:position layout:x="359" layout:y="58"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ <layout:speciesGlyph layout:id="Glyph__S3" layout:species="S3">
+ <layout:boundingBox>
+ <layout:position layout:x="318" layout:y="142"/>
+ <layout:dimensions layout:height="40" layout:width="40"/>
+ </layout:boundingBox>
+ </layout:speciesGlyph>
+ </layout:listOfSpeciesGlyphs>
+ <layout:listOfReactionGlyphs>
+ <layout:reactionGlyph layout:id="Glyph__R0" layout:reaction="R0">
+ <layout:boundingBox>
+ <layout:position layout:x="227" layout:y="124"/>
+ <layout:dimensions layout:height="20" layout:width="20"/>
+ </layout:boundingBox>
+ <layout:listOfSpeciesReferenceGlyphs>
+ <layout:speciesReferenceGlyph layout:id="Glyph__R0__substrate__S0" layout:role="substrate" layout:speciesGlyph="Glyph__S0">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="100" layout:y="80"/>
+ <layout:end layout:x="237" layout:y="134"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ <layout:speciesReferenceGlyph layout:id="Glyph__R0__modifier__S2" layout:role="modifier" layout:speciesGlyph="Glyph__S2">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="379" layout:y="78"/>
+ <layout:end layout:x="237" layout:y="134"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ <layout:speciesReferenceGlyph layout:id="Glyph__R0__modifier__S3" layout:role="modifier" layout:speciesGlyph="Glyph__S3">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="338" layout:y="162"/>
+ <layout:end layout:x="237" layout:y="134"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ <layout:speciesReferenceGlyph layout:id="Glyph__R0__product__S1" layout:role="product" layout:speciesGlyph="Glyph__S1">
+ <layout:curve>
+ <layout:listOfCurveSegments>
+ <layout:curveSegment xsi:type="LineSegment">
+ <layout:start layout:x="237" layout:y="134"/>
+ <layout:end layout:x="252" layout:y="248"/>
+ </layout:curveSegment>
+ </layout:listOfCurveSegments>
+ </layout:curve>
+ </layout:speciesReferenceGlyph>
+ </layout:listOfSpeciesReferenceGlyphs>
+ </layout:reactionGlyph>
+ </layout:listOfReactionGlyphs>
+ <layout:listOfTextGlyphs>
+ <layout:textGlyph layout:graphicalObject="Glyph__Cell" layout:id="TextGlyph__Cell" layout:text="Cell">
+ <layout:boundingBox>
+ <layout:position layout:x="0" layout:y="0"/>
+ <layout:dimensions layout:height="425" layout:width="1070"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__S0" layout:id="TextGlyph__S0" layout:text="S0">
+ <layout:boundingBox>
+ <layout:position layout:x="80" layout:y="60"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__S1" layout:id="TextGlyph__S1" layout:text="S1">
+ <layout:boundingBox>
+ <layout:position layout:x="232" layout:y="228"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__R0" layout:id="TextGlyph__R0" layout:text="R0">
+ <layout:boundingBox>
+ <layout:position layout:x="227" layout:y="124"/>
+ <layout:dimensions layout:height="20" layout:width="20"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__S2" layout:id="TextGlyph__S2" layout:text="S2">
+ <layout:boundingBox>
+ <layout:position layout:x="359" layout:y="58"/>
+ <layout:dimensions layout:height="30" layout:width="100"/>
+ </layout:boundingBox>
+ </layout:textGlyph>
+ <layout:textGlyph layout:graphicalObject="Glyph__S3" layout:id="TextGlyph__S3" layout:text="S3">
+ ...
[truncated message content] |
|
From: <tra...@us...> - 2016-08-08 08:11:38
|
Revision: 690
http://sourceforge.net/p/sbfc/code/690
Author: tramy-nguyen
Date: 2016-08-08 08:11:35 +0000 (Mon, 08 Aug 2016)
Log Message:
-----------
- updated jsbml jar to use SBO terms: thermodynamic temperature, pH, and ionic strength to use in BioPAX2SBML
- modified implementation of complexComponent
- implemented pathway with control properties to get pathway.getController()
- modified implementation to get cellularLocation when given a uri
- Fixed parsing of sbml modifier in SBML2BioPAX in order for Control Interaction to get created correctly.
- Fixed implementation for parsing Stoichiometry values in SBML2BioPAX.
- Fixed implementation for parsing localParameter in SBML2BioPAX.
- removed implemenation for setting entityReference in SBML2BioPAX for SimplePhysicalEntity since this property will later on be implemented using sbml group
- moved all test cases in InteractionTest.java and PhysicalEntityTests.java that parses owl files into its own seperate class called TestOWLFiles.java
- Implemented a sbml file reader class that will test all sbml files that are used to be converted in SBML2BioPAX.
Modified Paths:
--------------
trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies.jar
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java
trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-genetic-interaction.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-phosphorylation-reaction.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-template-reaction.xml
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/biopax3-genetic-interaction.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/biopax3-template-reaction.owl
Added Paths:
-----------
trunk/test/org/sbfc/test/biopax2sbml/TestOWLFiles.java
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/AKT_Signaling_Pathway.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/biopax3-protein-interaction.xml
trunk/test/org/sbfc/test/resources/GeneticToggleSBML.owl
trunk/test/org/sbfc/test/resources/GeneticToggleSBML.xml
trunk/test/org/sbfc/test/sbml2biopax/TestSBMLFiles.java
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/GeneticToggleSBML.owl
trunk/test/org/sbfc/test/sbml2biopax/outputFiles/biopax3-protein-interaction.owl
Removed Paths:
-------------
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Pathway_419e1aa2f2de4f2a58ab73b85f793b0d.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Pathway_42cda92147931e8046e0fcc6a85509ab.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Pathway_79a3ef254eed2ebacee98d13e786cabf.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Pathway_ccad983a29165136d58be22f22d7a89b.xml
trunk/test/org/sbfc/test/biopax2sbml/outputFiles/Pathway_ee87a6828a38006fc572f6c644975d9d.xml
trunk/test/org/sbfc/test/sbml2biopax/ReadingSBMLFileTests.java
Modified: trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies.jar
===================================================================
(Binary files differ)
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-06 05:29:39 UTC (rev 689)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-08 08:11:35 UTC (rev 690)
@@ -38,6 +38,7 @@
import org.biopax.paxtools.model.level3.BiochemicalPathwayStep;
import org.biopax.paxtools.model.level3.BiochemicalReaction;
import org.biopax.paxtools.model.level3.Catalysis;
+import org.biopax.paxtools.model.level3.CatalysisDirectionType;
import org.biopax.paxtools.model.level3.CellularLocationVocabulary;
import org.biopax.paxtools.model.level3.Complex;
import org.biopax.paxtools.model.level3.ComplexAssembly;
@@ -76,6 +77,7 @@
import org.biopax.paxtools.model.level3.UnificationXref;
import org.biopax.paxtools.model.level3.Xref;
import org.identifiers.registry.RegistryLocalProvider;
+import org.identifiers.registry.RegistryUtilities;
import org.sbfc.converter.biopaxL3converter.BioPAX2BioPAXL3;
import org.sbfc.converter.exceptions.ConversionException;
import org.sbfc.converter.exceptions.ReadModelException;
@@ -141,7 +143,7 @@
/** Map biopax entity RDFId to the sbml sbase object */
private Map<String, SBase> mappedEntities;
-
+
/** Map the biopax RDFId to the list of Reactions that were split (i.e. A catalysis direction that did not match its controlled interaction direction)*/
private Map<String, List<SBase>> mappedSplitReactions;
@@ -202,7 +204,7 @@
//Store the mapping between biopax enties rdfId to the sbml object created for the corresponding biopax entity
mappedEntities = new HashMap<String, SBase>();
mappedSplitReactions = new HashMap<String, List<SBase>>();
-
+
SBMLDocument sbmlDoc = new SBMLDocument(sbmlLevel, sbmlVer);
SBMLModel biopaxSBMLModel = new SBMLModel(sbmlDoc);
@@ -225,12 +227,12 @@
* first before parsing other biopax entities.
*/
org.sbml.jsbml.Model sbmlModel = parsePathways(bioModel, sbmlDoc);
-
+
addSBMLHistory(sbmlModel, sbmlOrganization);
addSBMLNotes(sbmlModel, "This model has been automatically generated by BioPAX2SBML");
//TODO: throw conversionException if invalid sbml file?
- validateSBMLFile(sbmlDoc);
+ // validateSBMLFile(sbmlDoc);
return biopaxSBMLModel;
}
@@ -262,6 +264,8 @@
private void mappAllEntities(org.biopax.paxtools.model.Model bioModel) throws ConversionException
{
+ Set<Complex> complexList = bioModel.getObjects(Complex.class);
+
for (Gene gene : bioModel.getObjects(Gene.class))
{
mappedEntities.put(gene.getRDFId(), parseEntity(gene));
@@ -285,7 +289,19 @@
}
}
}
+ /*
+ * Note: Complex has a property called complex.getComponent() that requires
+ * a complexAssembly reaction to be created. For that reason, after all species
+ * are created from biopax entities, parse the complex.getComponent() to create
+ * the complexAssembly reaction to ensure that the SpeciesReference are created with
+ * the species that were created.
+ */
+ for(Complex complex : complexList)
+ {
+ parseComplexComponent(complex);
+ }
+
/*
* Note: Collect all biopax interaction types to parse after iterating through all entities.
* This will ensure that species are created first from PhysicalEntities and any Entites that
@@ -354,15 +370,29 @@
}
}
}
- //TODO:
- /*
- * First look for examples for this example
- * Loop over all controller and check if each controller has a the same id as the pathway id
- * If so, then loop over all the controlled within the biomodel and add reaction to this pathway
- *
- */
+
+ boolean isControllerPathway = false;
+ for(Controller controllerEntity : pathwayControl.getController())
+ {
+ if(controllerEntity.getRDFId().equals(pathway.getRDFId()))
+ {
+ isControllerPathway = true;
+ break;
+ }
+ }
+ if(isControllerPathway)
+ {
+ for(org.biopax.paxtools.model.level3.Process controlled : pathwayControl.getControlled())
+ {
+ if(controlled instanceof PhysicalEntity)
+ {
+ Reaction controlledReaction = (Reaction) mappedEntities.get(controlled.getRDFId());
+ addReaction(controlledReaction.getId(), subModel);
+ }
+ }
+ }
}
-
+
Submodel s = compModel.createSubmodel("submodel__" + subModel.getId());
s.setModelRef(subModel.getId());
}
@@ -483,7 +513,7 @@
}
}
}
-
+
private void addReaction(String reactionId, org.sbml.jsbml.Model sbmlModel) throws ConversionException
{
Reaction reaction = (Reaction) getSBaseFromSBMLId(reactionId);
@@ -492,7 +522,7 @@
sbmlModel.addReaction(reaction.clone());
}
}
-
+
/**
* Convert a biopax pathway to its equivalent SBML Model
*
@@ -517,8 +547,8 @@
{
parsePathwayStep(pathway.getPathwayOrder(), sbmlModel);
}
-
+
//Add SBML annotation for biopax pathway
if(pathway.getXref() != null && !pathway.getXref().isEmpty())
{
@@ -555,7 +585,7 @@
parsePathwayComponent(entity, sbmlModel);
}
}
-
+
private void parsePathwayComponent(Entity entity, org.sbml.jsbml.Model sbmlModel) throws ConversionException
{
if(entity instanceof Interaction)
@@ -656,10 +686,12 @@
private org.sbml.jsbml.Model createSBMLModel(Pathway pathway, SBMLDocument sbmlDoc)
{
// Convert biopax pathway to sbml model
- org.sbml.jsbml.Model sbmlModel;
- if (pathway==null) {
+ org.sbml.jsbml.Model sbmlModel;
+ if (pathway==null)
+ {
sbmlModel = sbmlDoc.createModel();
- } else {
+ } else
+ {
CompSBMLDocumentPlugin compDoc = (CompSBMLDocumentPlugin) sbmlDoc.getPlugin(CompConstants.shortLabel);
sbmlModel = compDoc.createModelDefinition();
}
@@ -824,7 +856,7 @@
{
String xrefName = xref.getDb();
String xrefId = xref.getId();
-
+
//Look for MIRIAM URL with this xref
String miriamFullURI = link.getURI(xrefName, xrefId);
@@ -866,31 +898,7 @@
private Species parseEntity(Entity entity) throws ConversionException
{
Species sbmlSpecies = createSpecies(entity);
- if(entity instanceof Complex)
- {
- Complex complex = (Complex) entity;
- if(complex.getComponent().size() > 0)
- {
- //TODO
- complex.getComponentStoichiometry(); //stoichiometry for reactants
- //complex; //product of complexAssembly reaction
- //complexAssembly sbo term becomes this new reaction complex Assembly SBO term
- //complex.getComponent() becomes reatants of this complex Assembly
- BioPAXFactory bioPAXFactory = BioPAXLevel.L3.getDefaultFactory();
- ComplexAssembly complexAssembly = bioPAXFactory.create(ComplexAssembly.class, "ComplexAssembly_forComplexParticipant" + complex.getRDFId());
- Reaction caReaction = createReaction(complexAssembly);
-
- SpeciesReference product = createSpeciesReferences(complex);
- caReaction.addProduct(product.clone());
-
- ListOf<SpeciesReference> reactantList = getSpeciesReferences(complex.getComponent(), complex.getComponentStoichiometry());
- caReaction.setListOfReactants(reactantList);
-
- sbmlId2biopaxId.put(caReaction.getId(), complexAssembly.getRDFId());
- mappedEntities.put(complexAssembly.getRDFId(), caReaction);
- }
- }
-
+
//Add SBO terms to species
if (entity instanceof PhysicalEntity)
{
@@ -904,6 +912,26 @@
return sbmlSpecies;
}
+ private void parseComplexComponent(Complex complex) throws ConversionException
+ {
+ if(complex.getComponent().size() > 0)
+ {
+ BioPAXFactory bioPAXFactory = BioPAXLevel.L3.getDefaultFactory();
+ ComplexAssembly complexAssembly = bioPAXFactory.create(ComplexAssembly.class, "ComplexAssembly_forComplexParticipant_" + complex.getRDFId());
+ Reaction caReaction = createReaction(complexAssembly);
+ caReaction.setReversible(false);
+ SpeciesReference product = createSpeciesReferences(complex);
+ caReaction.addProduct(product.clone());
+
+ ListOf<SpeciesReference> reactantList = getSpeciesReferences(complex.getComponent(), complex.getComponentStoichiometry());
+ caReaction.setListOfReactants(reactantList);
+
+ sbmlId2biopaxId.put(caReaction.getId(), complexAssembly.getRDFId());
+ mappedEntities.put(complexAssembly.getRDFId(), caReaction);
+ }
+
+ }
+
private void parseEvidence(Set<Evidence> evidenceList, SBase sbmlElement)
{
List<CVTerm> evidenceCode_cvterms = new ArrayList<CVTerm>();
@@ -1201,10 +1229,10 @@
{
String cellLocId = physicalEntity.getCellularLocation().getRDFId();
String compartmentId = null;
-
+
if(cellLocId.contains("http://identifiers.org/"))
{
- compartmentId = replaceInvalidSBMLcharId(parseCellularLocationURL(cellularLocVocab));
+ compartmentId = parseCellularLocationURL(cellularLocVocab);
}
else
{
@@ -1252,14 +1280,29 @@
private String parseCellularLocationURL(CellularLocationVocabulary cellLocVocab)
{
- String compartmentId = getValidSBMLName(cellLocVocab);
-
- String cellLocOfficialURI = link.getMiriamURI(cellLocVocab.getRDFId());
+ String compartmentId = null;
+
+ //Update this compartment uri with the latest uri it the uri is deprecated.
+ String cellLocOfficialURI = link.getMiriamURI(cellLocVocab.getRDFId());
+
if(cellLocOfficialURI != null)
{
- compartmentId = ontology.getTerm(cellLocOfficialURI).getName();
+ String ontologyId = RegistryUtilities.getElementPart(cellLocOfficialURI);
+ if(ontologyId != null)
+ {
+ /*
+ * Note: getting the name for the ontology term contains spaces so replace invalid characters within the ontology term name
+ */
+ compartmentId = replaceInvalidSBMLcharId(ontology.getTerm(ontologyId).getName());
+ }
}
+ if(compartmentId == null)
+ {
+ //http://identifiers.org/go/
+ String temp = cellLocVocab.getRDFId().replace("http://identifiers.org/go/", "");
+ compartmentId = replaceInvalidSBMLcharId(temp);
+ }
return compartmentId;
}
@@ -1357,7 +1400,7 @@
if (entity instanceof TemplateReaction)
{
parseTemplateReaction((TemplateReaction) entity, reaction);
-
+
}
else if (entity instanceof MolecularInteraction)
{
@@ -1379,7 +1422,7 @@
{
boolean hasModifier = false;
boolean hasProduct = false; templateReaction.getTemplateDirection();
-
+
if(templateReaction.getTemplateDirection() == TemplateDirectionType.FORWARD)
{
reaction.setReversible(false);
@@ -1392,7 +1435,7 @@
{
reaction.setReversible(false);
}
-
+
if(templateReaction.getTemplate() != null)
{
ModifierSpeciesReference modifierSpeciesRef = createModifierSpeciesReference(templateReaction.getTemplate());
@@ -1522,8 +1565,7 @@
}
else
{
- //TODO: what happens when no direction is found? Assume reversible?
- reaction.setReversible(true);
+ reaction.setReversible(false);
//Parse for reactant/substrate
ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
@@ -1534,9 +1576,15 @@
reaction.setListOfProducts(products);
}
+
+ if(conversion instanceof BiochemicalReaction)
+ {
+ BiochemicalReaction biochemicalReaction = (BiochemicalReaction) conversion;
+ biochemicalReaction.getECNumber(); //TODO: Look at circadian_clock.owl example for term eCNumber
+ }
setConversion_SBO(conversion, reaction);
-
+
sbmlId2biopaxId.put(reaction.getId(), conversion.getRDFId());
mappedEntities.put(conversion.getRDFId(), reaction);
}
@@ -1598,8 +1646,10 @@
for(org.biopax.paxtools.model.level3.Process catalysisControlled : catalysis.getControlled())
{
Conversion controlled = (Conversion) catalysisControlled;
-
+
/*
+ * TODO: need to find real file cases on how this works
+ *
* Note:
* Special case when the catalysisDirection and the controlledReaction is not the same, perform the following:
* Quoted from Chris Myers,
@@ -1607,61 +1657,22 @@
* Split the Reversible reaction for this interaction into two irreversible reactions
* and the Catalyst would appear as a Modifier in only the reaction that matches the CatalysisDirection."
*/
-// if(controlled.getConversionDirection() == ConversionDirectionType.LEFT_TO_RIGHT &&
-// catalysis.getCatalysisDirection() != CatalysisDirectionType.LEFT_TO_RIGHT)
-// {
-// //TODO:
-// String reaction_prefixId = controlledReaction.getId();
-// List<SBase> splitReactions = new ArrayList<SBase>();
-//
-// Reaction forwardReaction = controlledReaction.clone();
-// forwardReaction.setId(reaction_prefixId + "_forwardReaction");
-// forwardReaction.setReversible(false);
-// splitReactions.add(forwardReaction);
-//
-// Reaction reverseReaction = controlledReaction.clone();
-// reverseReaction.setId(reaction_prefixId + "_reverseReaction");
-// reverseReaction.setReversible(false);
-// reverseReaction.addModifier(modifierSpecies);
-// splitReactions.add(reverseReaction);
-//
-// mappedSplitReactions.put(catalysis.getRDFId(), splitReactions);
-//
-// ListOf<SpeciesReference> reactants = controlledReaction.getListOfProducts();
-// ListOf<SpeciesReference> products = controlledReaction.getListOfReactants();
-//
-// for(int index = 0; index < controlledReaction.getNumReactants(); index++)
-// {
-// controlledReaction.removeReactant(index);
-// }
-// for(int index = 0; index < controlledReaction.getNumProducts(); index++)
-// {
-// controlledReaction.removeProduct(index);
-// }
-//
-// for(SpeciesReference r : reactants)
-// {
-// controlledReaction.addReactant(r);
-// }
-// for(SpeciesReference p : products)
-// {
-// controlledReaction.addProduct(p);
-// }
-// }
-// else if(controlled.getConversionDirection() == ConversionDirectionType.RIGHT_TO_LEFT &&
-// catalysis.getCatalysisDirection() != CatalysisDirectionType.RIGHT_TO_LEFT)
-// {
-// //TODO:
-// }
-// else if(controlled.getConversionDirection() == ConversionDirectionType.REVERSIBLE &&
-// catalysis.getCatalysisDirection() == CatalysisDirectionType.RIGHT_TO_LEFT)
-// {
-// //TODO:
-// }
+ if(controlled.getConversionDirection() == ConversionDirectionType.REVERSIBLE &&
+ catalysis.getCatalysisDirection() == CatalysisDirectionType.LEFT_TO_RIGHT)
+ {
+ String reaction_prefixId = controlledReaction.getId();
+
+ Reaction forwardReaction = controlledReaction.clone();
+ forwardReaction.setId(reaction_prefixId + "_forwardReaction");
+ forwardReaction.setReversible(false);
+ forwardReaction.addModifier(modifierSpecies);
+
+ Reaction reverseReaction = controlledReaction.clone();
+ reverseReaction.setId(reaction_prefixId + "_reverseReaction");
+ reverseReaction.setReversible(false);
+ }
}
-
- catalysis.getCatalysisDirection(); //TODO: need to find real file cases on how this works
-
+
}
setControl_SBO(control, modifierSpecies);
@@ -1688,13 +1699,13 @@
kineticLaw.setMath(new ASTNode(Double.NaN));
int count = 0;
for(DeltaG deltaG : biochemReaction.getDeltaG())
- {
+ {
String prefix = getValidSBMLId(deltaG) + "_";
addLocalParameter(prefix + "deltaGPrime0", kineticLaw, deltaG.getDeltaGPrime0(), SBO.getGibbsFreeEnergyChange());
- addLocalParameter(prefix + "deltaGIonicStrength", kineticLaw, deltaG.getIonicStrength(), SBO.getGibbsFreeEnergyChange());
- addLocalParameter(prefix + "deltaGPh", kineticLaw, deltaG.getPh(), SBO.getGibbsFreeEnergyChange());
+ addLocalParameter(prefix + "deltaGIonicStrength", kineticLaw, deltaG.getIonicStrength(), SBO.getIonicStrength());
+ addLocalParameter(prefix + "deltaGPh", kineticLaw, deltaG.getPh(), SBO.getpH());
addLocalParameter(prefix + "deltaGPMg", kineticLaw, deltaG.getPMg(), SBO.getGibbsFreeEnergyChange());
- addLocalParameter(prefix + "deltaGTemperature", kineticLaw, deltaG.getTemperature(), SBO.getGibbsFreeEnergyChange());
+ addLocalParameter(prefix + "deltaGTemperature", kineticLaw, deltaG.getTemperature(), SBO.getThermodynamicTemperature());
}
for(Float deltaH : biochemReaction.getDeltaH())
{
@@ -1708,13 +1719,13 @@
{
String prefix = getValidSBMLId(kprime) + "_";
addLocalParameter(prefix + "KPrime", kineticLaw, kprime.getKPrime(), SBO.getEquilibriumConstant());
- addLocalParameter(prefix + "KPrimeIonicStrength", kineticLaw, kprime.getIonicStrength(), SBO.getEquilibriumConstant());
- addLocalParameter(prefix + "KPrimePh", kineticLaw, kprime.getPh(), SBO.getEquilibriumConstant());
+ addLocalParameter(prefix + "KPrimeIonicStrength", kineticLaw, kprime.getIonicStrength(), SBO.getIonicStrength());
+ addLocalParameter(prefix + "KPrimePh", kineticLaw, kprime.getPh(), SBO.getpH());
addLocalParameter(prefix + "KPrimeMg", kineticLaw, kprime.getPMg(), SBO.getEquilibriumConstant());
- addLocalParameter(prefix + "KPrimeTemperature", kineticLaw, kprime.getTemperature(), SBO.getEquilibriumConstant());
+ addLocalParameter(prefix + "KPrimeTemperature", kineticLaw, kprime.getTemperature(), SBO.getThermodynamicTemperature());
}
}
-
+
/**
* Creates a LocalParameter to attach to a KineticLaw
*
@@ -1726,7 +1737,7 @@
*/
private LocalParameter addLocalParameter(String id, KineticLaw kineticLaw, double value, int SBOvalue)
{
- LocalParameter localParam = kineticLaw.createLocalParameter(id);
+ LocalParameter localParam = kineticLaw.createLocalParameter(id);
localParam.setSBOTerm(SBOvalue);
localParam.setValue(value);
return localParam;
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-06 05:29:39 UTC (rev 689)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-08 08:11:35 UTC (rev 690)
@@ -4,6 +4,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.biopax.paxtools.impl.level3.StoichiometryImpl;
+import org.biopax.paxtools.model.BioPAXFactory;
+import org.biopax.paxtools.model.BioPAXLevel;
import org.biopax.paxtools.model.Model;
import org.biopax.paxtools.model.level3.Catalysis;
import org.biopax.paxtools.model.level3.Complex;
@@ -48,12 +50,6 @@
public Model convert(SBMLDocument sbmlDocument)
{
- return convert2(sbmlDocument);
- }
-
-
- private Model convert2(SBMLDocument sbmlDocument) {
-
org.sbml.jsbml.Model sbmlTopLevelModel = sbmlDocument.getModel();
log.debug("First thing first: create a BioPAX model");
@@ -139,18 +135,29 @@
Model bpModel, Interaction interaction, Pathway pathway)
{
ListOf<ModifierSpeciesReference> listOfModifiers = reaction.getListOfModifiers();
+
for(ModifierSpeciesReference modifier : listOfModifiers)
{
+ Species species = sbmlModel.getSpecies(modifier.getSpecies());
+
if(interaction instanceof GeneticInteraction)
{
- Species species = sbmlModel.getSpecies(modifier.getSpecies());
Gene gene = sbml2BioPAXUtilities.convertSpeciesToE(bpModel, Gene.class, UnificationXref.class, species);
interaction.addParticipant(gene);
+ continue;
}
- else if(interaction instanceof TemplateReaction)
+
+ //Control could only be Modulation, TemplateReactionRegulation, or any other Control Interaction
+ Control control = sbml2BioPAXUtilities.convertModifier(bpModel, modifier, reaction);
+
+ pathway.addPathwayComponent(control);
+ control.addControlled(interaction);
+ Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ control.addController(controller);
+
+ if(interaction instanceof TemplateReaction)
{
TemplateReaction templateReaction = (TemplateReaction) interaction;
- Species species = sbmlModel.getSpecies(modifier.getSpecies());
Entity entity = (Entity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
if(entity instanceof Dna || entity instanceof DnaRegion
|| entity instanceof Rna || entity instanceof RnaRegion)
@@ -164,7 +171,6 @@
Catalysis catalysis = (Catalysis) interaction;
if(modifier.getSBOTerm() == SBO.getCatalyticActivator())
{
- Species species = sbmlModel.getSpecies(modifier.getSpecies());
PhysicalEntity cofactorEntity = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
catalysis.addCofactor(cofactorEntity);
}
@@ -173,14 +179,6 @@
catalysis.setControlType(ControlType.ACTIVATION);
}
}
- else {//This could be Modulation, TemplateReactionRegulation, or any other Control Interaction
- Control control = sbml2BioPAXUtilities.convertModifier(bpModel, modifier);
- pathway.addPathwayComponent(control);
- control.addControlled(interaction);
- Species species = sbmlModel.getSpecies(modifier.getSpecies());
- Controller controller = (Controller) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
- control.addController(controller);
- }
// Modifiers -> Controls [end]
}
}
@@ -193,7 +191,8 @@
for (SpeciesReference speciesRef : listOfSpeciesReferences) {
Species species = sbmlModel.getSpecies(speciesRef.getSpecies());
Entity entity = sbml2BioPAXUtilities.convertSpecies(bpModel, species);
- if(interaction instanceof Conversion){
+ if(interaction instanceof Conversion)
+ {
Conversion conversion = (Conversion) interaction;
if(reaction.getReversible())
{
@@ -205,18 +204,32 @@
}
if(!Double.isNaN(speciesRef.getStoichiometry()))
{
- Stoichiometry conversionStoich = new StoichiometryImpl();
- conversionStoich.setStoichiometricCoefficient((float) speciesRef.getStoichiometry());
- conversion.addParticipantStoichiometry(conversionStoich);
+ parseStoichiometry(speciesRef, conversion, sbmlModel, bpModel);
}
}
else if(interaction instanceof TemplateReaction)
{
((TemplateReaction) interaction).addProduct((PhysicalEntity) entity);
}
- else if(interaction instanceof GeneticInteraction || interaction instanceof MolecularInteraction){
+ else if(interaction instanceof GeneticInteraction || interaction instanceof MolecularInteraction)
+ {
interaction.addParticipant(entity);
}
}
}
+
+ private void parseStoichiometry(SpeciesReference speciesRef, Conversion interaction,
+ org.sbml.jsbml.Model sbmlModel, Model bpModel)
+ {
+ BioPAXFactory bioPAXFactory = BioPAXLevel.L3.getDefaultFactory();
+ Stoichiometry stoichio = bioPAXFactory.create(Stoichiometry.class, speciesRef.getId());
+
+ stoichio.setStoichiometricCoefficient((float) speciesRef.getStoichiometry());
+
+ Species species = sbmlModel.getSpecies(speciesRef.getSpecies());
+ PhysicalEntity physicalEntityParticipant = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ stoichio.setPhysicalEntity((PhysicalEntity) physicalEntityParticipant);
+
+ interaction.addParticipantStoichiometry(stoichio);
+ }
}
\ No newline at end of file
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-06 05:29:39 UTC (rev 689)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-08 08:11:35 UTC (rev 690)
@@ -55,6 +55,7 @@
import org.biopax.paxtools.model.level3.SimplePhysicalEntity;
import org.biopax.paxtools.model.level3.SmallMolecule;
import org.biopax.paxtools.model.level3.SmallMoleculeReference;
+import org.biopax.paxtools.model.level3.Stoichiometry;
import org.biopax.paxtools.model.level3.TemplateDirectionType;
import org.biopax.paxtools.model.level3.TemplateReaction;
import org.biopax.paxtools.model.level3.TemplateReactionRegulation;
@@ -152,7 +153,7 @@
* (i.e. SBO term SBO:0000588 will create a Transport entity because this SBO value is an child of SBO:0000185)
*/
int reactionSBOValue = reaction.getSBOTerm();
-
+
if(SBO.isChildOf(reactionSBOValue, 231))
{
if(SBO.isChildOf(reactionSBOValue, 167))
@@ -213,18 +214,22 @@
//Default Interaction type
reactionClass = Interaction.class;
}
-
-
+
+
if(isConversionSet)
{
Conversion conversion = createBPEfromSBMLE(bpModel, rxnClass, reaction);
- conversion.setConversionDirection(
- reaction.getReversible()
- ? ConversionDirectionType.REVERSIBLE
- : ConversionDirectionType.RIGHT_TO_LEFT
- );
+ if(reaction.getReversible())
+ {
+ conversion.setConversionDirection(ConversionDirectionType.REVERSIBLE);
+ }
+ else
+ {
+ conversion.setConversionDirection(ConversionDirectionType.LEFT_TO_RIGHT);
+ }
+
conversion.setSpontaneous(reaction.getFast() ? true : false);
if(rxnClass.equals(TransportWithBiochemicalReaction.class) || rxnClass.equals(BiochemicalReaction.class))
@@ -254,47 +259,33 @@
KineticLaw reactionKL = reaction.getKineticLaw();
if(reactionKL != null)
{
+ DeltaG deltaG = bioPAXFactory.create(DeltaG.class, biochemicalReaction.getRDFId() + "_deltaGId");
+ KPrime kprime = bioPAXFactory.create(KPrime.class, biochemicalReaction.getRDFId() + "_KPrimeId");
+
for(LocalParameter localParam : reactionKL.getListOfLocalParameters())
{
String localParamId = localParam.getId();
if(localParam.getSBOTerm() == SBO.getGibbsFreeEnergyChange())
{
- //Create deltaG
- DeltaG deltaG = new DeltaGImpl();
-
- //TODO: how to set rdfId for deltaG?
- String suffix = "";
- int index = localParamId.length() - 1;
- while(localParamId.charAt(index) != '_')
- {
- suffix = localParamId.charAt(index--) + suffix ;
- }
- String rdfId = localParamId.substring(0, index);
-
-
- if(localParamId.endsWith("_deltaGPrime0"))
- {
- deltaG.setDeltaGPrime0((float) localParam.getValue());
- }
- else if(localParamId.endsWith("_deltaGIonicStrength"))
- {
- deltaG.setIonicStrength((float) localParam.getValue());
- }
- else if(localParamId.endsWith("_deltaGPh"))
- {
- deltaG.setPh((float) localParam.getValue());
- }
- else if(localParamId.endsWith("_deltaGPMg"))
- {
- deltaG.setPMg((float) localParam.getValue());
- }
- else if(localParamId.endsWith("_deltaGTemperature"))
- {
- deltaG.setTemperature((float) localParam.getValue());
- }
- biochemicalReaction.addDeltaG(deltaG);
+ deltaG.setDeltaGPrime0((float) localParam.getValue());
}
+ if(localParamId.endsWith("_deltaGIonicStrength"))
+ {
+ deltaG.setIonicStrength((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_deltaGPh"))
+ {
+ deltaG.setPh((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_deltaGPMg"))
+ {
+ deltaG.setPMg((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_deltaGTemperature"))
+ {
+ deltaG.setTemperature((float) localParam.getValue());
+ }
else if(localParam.getSBOTerm() == SBO.getEnthalpyChange())
{
//deltaH
@@ -307,30 +298,29 @@
}
else if(localParam.getSBOTerm() == SBO.getEquilibriumConstant())
{
- //KEQ
- KPrime kprime = new KPrimeImpl();
- if(localParamId.endsWith("_KPrime"))
- {
- kprime.setKPrime((float) localParam.getValue());
- }
- else if(localParamId.endsWith("_KPrimeIonicStrength"))
- {
- kprime.setIonicStrength((float) localParam.getValue());
- }
- else if(localParamId.endsWith("_KPrimePh"))
- {
- kprime.setPh((float) localParam.getValue());
- }
- else if(localParamId.endsWith("_KPrimeMg"))
- {
- kprime.setPMg((float) localParam.getValue());
- }
- else if(localParamId.endsWith("_KPrimeTemperature"))
- {
- kprime.setTemperature((float) localParam.getValue());
- }
+ kprime.setKPrime((float) localParam.getValue());
}
+ else if(localParamId.endsWith("_KPrimeIonicStrength"))
+ {
+ kprime.setIonicStrength((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_KPrimePh"))
+ {
+ kprime.setPh((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_KPrimeMg"))
+ {
+ kprime.setPMg((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_KPrimeTemperature"))
+ {
+ kprime.setTemperature((float) localParam.getValue());
+ }
+
}
+
+ biochemicalReaction.addDeltaG(deltaG);
+ biochemicalReaction.addKEQ(kprime);
}
}
@@ -364,7 +354,7 @@
/*
* TODO: TBD - modify standardName
*/
- // named.setStandardName(name);
+ named.setStandardName(name);
named.setDisplayName(name);
named.getName().add(name);
}
@@ -376,35 +366,42 @@
* @param modifierSpeciesReference - The SBML ModifierSpeciesReference to be converted to a BioPAX Control Interaction
* @return The converted BioPAX Control Interaction
*/
- public Control convertModifier(Model bpModel, ModifierSpeciesReference modifierSpeciesReference) {
- // Interesting enough, these reference objects don't have an ID associated with them
- // That is why we are using hashcodes to generate unique BioPAX ID.
+ public Control convertModifier(Model bpModel, ModifierSpeciesReference modifierSpeciesReference, Reaction reaction) {
String id = completeId(modifierSpeciesReference.getId());
-
+
Control control = null;
-
+
//Check what type of control is this modifier
- int controlSBOValue = modifierSpeciesReference.getSBOTerm();
- if(controlSBOValue == 639 || controlSBOValue == 206 || controlSBOValue == 638 || controlSBOValue == 207
- || controlSBOValue == 20 || controlSBOValue == 640 || controlSBOValue == 637 || controlSBOValue == 636)
+ int reactionSBOValue = reaction.getSBOTerm();
+ if(SBO.isChildOf(reactionSBOValue, 589))
{
- control = createBPEfromSBMLE(bpModel, Modulation.class, modifierSpeciesReference, id);
+ //If reaction SBO value is a TemplateReaction (SBO:0000589), then create a TemplateReactionRegulation
+ control = createBPEfromSBMLE(bpModel, TemplateReactionRegulation.class, modifierSpeciesReference, id);
}
- else if(controlSBOValue == 20 || controlSBOValue == 21)
+ else if(SBO.isChildOf(reactionSBOValue, 167))
{
- //TODO: SBO value 20 will conflict with INHIBITION_OTHER and INHIBITION
- control = createBPEfromSBMLE(bpModel, TemplateReactionRegulation.class, modifierSpeciesReference, id);
+ /*
+ * Note:
+ * All Conversion SBO value maps to Modulation Entity
+ * Since all SBO value under SBO:0000167 contains SBO values that map to a Conversion Interaction,
+ * it should safe to check only the parent SBO value.
+ */
+ control = createBPEfromSBMLE(bpModel, Modulation.class, modifierSpeciesReference, id);
}
else
{
control = createBPEfromSBMLE(bpModel, Control.class, modifierSpeciesReference, id);
}
+
+ setControlType(control, modifierSpeciesReference.getSBOTerm());
- setControlType(control, modifierSpeciesReference.getSBOTerm());
+ for (Xref xref : generateXrefsForSBase(bpModel, modifierSpeciesReference)) {
+ control.addXref(xref);
+ }
return control;
}
-
+
public void setControlType(Control control, int modifierSBOTerm)
{
//TODO: same SBO terms for ControlType.INHIBITION_OTHER and INHIBITION;
@@ -457,46 +454,12 @@
}
public <T extends SimplePhysicalEntity, S extends EntityReference> T convertSpeciesToSPE(Model bpModel, Class<T> entityClass, Class<S> refClass, Species species) {
- Set<Xref> xrefs = generateXrefsForSBase(bpModel, species);
- HashSet<XReferrable> ers = new HashSet<XReferrable>();
- for (Xref xref : xrefs) {
- for (XReferrable xReferrable : xref.getXrefOf()) {
- // Only add the entity references
- if(xReferrable instanceof EntityReference) {
- ers.add(xReferrable);
- }
- }
- }
-
- S reference;
- if(ers.isEmpty()) {
- reference = createBPEfromSBMLE(bpModel, refClass, species, completeId("ref_" + species.getId()));
- for (Xref xref : xrefs) {
- reference.addXref(xref);
- }
- } else if(ers.size() == 1) { // There shouldn't be more than one
- reference = (S) ers.iterator().next();
- } else {
- log.warn(
- "There are more than one EntityReferences that match with the same unification xref for species: "
- + species.getName()
- + ". Picking the first one: "
- + ers.iterator().next().getRDFId()
- );
-
- reference = (S) ers.iterator().next();
- }
-
T entity = createBPEfromSBMLE(bpModel, entityClass, species);
- entity.setEntityReference(reference);
-
- // Clean-up non-used xrefs
- for (Xref xref : xrefs) {
- if(xref.getXrefOf().isEmpty()) {
- bpModel.remove(xref);
- }
+ for (Xref xref : generateXrefsForSBase(bpModel, species)) {
+ entity.addXref(xref);
}
-
+ //TODO: grab from sbml group to get biopax entityReference
+ //entity.setEntityReference(reference);
return entity;
}
@@ -507,7 +470,7 @@
String idToken = RegistryUtilities.getElementPart(resource);
String dataBase = RegistryUtilities.getDataPart(resource);
DataType datatype = RegistryUtilities.getDataType(dataBase);
-
+
if (datatype != null) {
dataBase = datatype.getName();
} else {
@@ -598,7 +561,7 @@
//If SBO value does not match any of the above, then assume species is a PhysicalEntity
physicalEntity = convertSpeciesToPE(bpModel, PhysicalEntity.class, UnificationXref.class, species);
}
-
+
if(!isPhysicalEntity){
return entity;
}
@@ -690,13 +653,11 @@
for (CVTerm cvTerm : annotation.getListOfCVTerms()) {
for (String resource : cvTerm.getResources()) {
// String xrefId = completeId(xrefClass.getSimpleName().toLowerCase() + "_" + cvTerm.hashCode());
- String xrefId = completeId(resource + cvTerm.hashCode());
+ String xrefId = completeId(resource);
// Let's not replicate xrefs if possible
Xref xref = (Xref) bpModel.getByID(xrefId);
- if(xref == null) {
- // if(resource.toLowerCase().contains("pubmed")) {
- // xref = resourceToXref(PublicationXref.class, xrefId, resource);
- // }
+ if(xref == null)
+ {
if(cvTerm.getQualifier().equals(Qualifier.BQB_UNKNOWN))
{
xref = resourceToXref(RelationshipXref.class, xrefId, resource);
Modified: trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java 2016-08-06 05:29:39 UTC (rev 689)
+++ trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java 2016-08-08 08:11:35 UTC (rev 690)
@@ -322,32 +322,6 @@
Assert.assertTrue(conversion.getSBOTerm() == SBO.getConversion());
}
- private void validateSBMLFile(SBMLDocument document)
- {
-
- String message = "Validation Problems Found by Webservice\n";
- document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.GENERAL_CONSISTENCY, true);
- document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.IDENTIFIER_CONSISTENCY, true);
- document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.OVERDETERMINED_MODEL, true);
- document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.UNITS_CONSISTENCY, true);
- document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.MATHML_CONSISTENCY, true);
- document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.SBO_CONSISTENCY, true);
- document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.MODELING_PRACTICE, true);
- long numberOfErrors = document.checkConsistency();
- for (int i = 0; i < numberOfErrors; i++)
- {
- String error = document.getError(i).getMessage();
- message += i + ":" + error + "\n";
- i++;
- }
- System.out.println(message);
- }
-
- @Test public void test_PathwayInteraction()
- {
-
- }
-
@Test public void test_InteractionReaction()
{
org.sbml.jsbml.Model sbmlModel = sbfcSBMLModel.getModel();
@@ -396,317 +370,7 @@
}
}
}
-
- @Test public void test_BiochemicalReactionFile()
- {
- String owlFile = fileDirectory + "biopax3-phosphorylation-reaction.owl";
- SBMLModel sbfcSBMLModel = InteractionTests.read_biopaxFile(owlFile);
- org.sbml.jsbml.Model sbmlModel = sbfcSBMLModel.getModel();
-
- Assert.assertTrue(sbmlModel.getNumSpecies() == 5);
-
- Species protein = sbmlModel.getSpecies("Protein_5");
- Assert.assertTrue(protein.getId().equals("Protein_5"));
- Assert.assertTrue(protein.getName().equals("CHK2"));
- Assert.assertTrue(protein.getCompartment().equals("CellularLocationVocabulary_6"));
-
- Species SmallMolecule_21 = sbmlModel.getSpecies("SmallMolecule_21");
- Assert.assertTrue(SmallMolecule_21.getId().equals("SmallMolecule_21"));
- Assert.assertTrue(SmallMolecule_21.getName().equals("ADP"));
- Assert.assertTrue(SmallMolecule_21.getCompartment().equals("CellularLocationVocabulary_6"));
-
- Reaction BiochemicalReaction_2 = sbmlModel.getReaction("BiochemicalReaction_2");
- Assert.assertTrue(BiochemicalReaction_2.getName().equals("Phosphorylation and activation of CHK2 by ATM"));
- Assert.assertTrue(BiochemicalReaction_2.getSBOTerm() == SBO.getBiochemicalReaction());
- Assert.assertTrue(BiochemicalReaction_2.getCVTerms().size() == 3);
- Assert.assertTrue(BiochemicalReaction_2.isReversible());
- Assert.assertTrue(BiochemicalReaction_2.getNumReactants() == 2);
- Assert.assertTrue(BiochemicalReaction_2.getNumProducts() == 2);
- Assert.assertTrue(BiochemicalReaction_2.getNumModifiers() == 1);
- Assert.assertTrue(BiochemicalReaction_2.getModifier(0).getId().equals("Catalysis_1"));
- Assert.assertTrue(BiochemicalReaction_2.getModifier(0).getSBOTerm() == SBO.getCatalyst());
- Assert.assertTrue(BiochemicalReaction_2.getModifier(0).getSpecies().equals("Protein_27"));
- //TODO: modifier for protein 27 has stoichiometry value of 1
- for(SpeciesReference reactant : BiochemicalReaction_2.getListOfReactants())
- {
- if(reactant.getId().equals("Stoichiometry_1"))
- {
- Species Protein_5 = sbmlModel.getSpecies("Protein_5");
- Assert.assertTrue(Protein_5.getName().equals("CHK2"));
- Assert.assertTrue(Protein_5.getCVTerms().size() == 0);
- Assert.assertTrue(Protein_5.getCompartment().equals("CellularLocationVocabulary_6"));
- Assert.assertTrue(Protein_5.getSBOTerm() == SBO.getGeneric());
- Assert.assertTrue(reactant.getStoichiometry() == 1);
- }
- else if(reactant.getId().equals("Stoichiometry_4"))
- {
- Species SmallMolecule_13 = sbmlModel.getSpecies("SmallMolecule_13");
- Assert.assertTrue(SmallMolecule_13.getName().equals("ATP"));
- Assert.assertTrue(SmallMolecule_13.getSBOTerm() == SBO.getSmallMolecule());
- Assert.assertTrue(SmallMolecule_13.getCVTerms().size() == 0);
- Assert.assertTrue(reactant.getStoichiometry() == 1);
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
- for(SpeciesReference product : BiochemicalReaction_2.getListOfProducts())
- {
- if(product.getSpecies().equals("Protein_16"))
- {
- Species Protein_5 = sbmlModel.getSpecies("Protein_16");
- Assert.assertTrue(Protein_5.getName().equals("CHK2"));
- Assert.assertTrue(Protein_5.getCVTerms().size() == 0);
- Assert.assertTrue(Protein_5.getCompartment().equals("CellularLocationVocabulary_6"));
- Assert.assertTrue(Protein_5.getSBOTerm() == SBO.getGeneric());
- }
- else if(product.getId().equals("Stoichiometry_3"))
- {
- Species SmallMolecule_13 = sbmlModel.getSpecies("SmallMolecule_21");
- Assert.assertTrue(SmallMolecule_13.getCompartment().equals("CellularLocationVocabulary_6"));
- Assert.assertTrue(SmallMolecule_13.getName().equals("ADP"));
- Assert.assertTrue(SmallMolecule_13.getSBOTerm() == SBO.getSmallMolecule());
- Assert.assertTrue(SmallMolecule_13.getCVTerms().size() == 0);
- Assert.assertTrue(product.getStoichiometry() == 1);
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
- }
-
- @Test public void test_TemplateReactionFile()
- {
- String owlFile = fileDirectory + "biopax3-template-reaction.owl";
-
- SBMLModel sbfcSBMLModel = InteractionTests.read_biopaxFile(owlFile);
- org.sbml.jsbml.Model sbmlModel = sbfcSBMLModel.getModel();
-
- Species Complex_37 = sbmlModel.getSpecies("Complex_37");
- Assert.assertTrue(Complex_37.getName().equals("Beta-catenin-TCF1"));
- Assert.assertTrue(Complex_37.getSBOTerm() == SBO.getComplex());
- Assert.assertTrue(Complex_37.getCVTerms().size() == 2);
- Assert.assertTrue(Complex_37.getCompartment().equals("CellularLocationVocabulary_3"));
- Compartment complexCompartment = sbmlModel.getCompartment(Complex_37.getCompartment());
- Assert.assertTrue(complexCompartment.getCVTerms().iterator().next().getBiologicalQualifierType().equals(Qualifier.BQB_IS));
- Assert.assertTrue(complexCompartment.getCVTerms().size() == 1);
-
- Species Protein_1 = sbmlModel.getSpecies("Protein_1");
- Assert.assertTrue(Protein_1.getSBOTerm() == SBO.getGeneric());
- Assert.assertTrue(Protein_1.getName().equals("Wnt8_protein"));
- Assert.assertTrue(Protein_1.getCVTerms().size() == 2);
- Assert.assertTrue(Protein_1.getCompartment().equals("CellularLocationVocabulary_3"));
- Compartment proteinCompartment = sbmlModel.getCompartment(Protein_1.getCompartment());
- Assert.assertTrue(proteinCompartment.getCVTerms().size() == 1);
- Assert.assertTrue(Protein_1.getCVTerm(0).getBiologicalQualifierType().equals(Qualifier.BQB_IS_DESCRIBED_BY));
- Assert.assertTrue(Protein_1.getCVTerm(1).getBiologicalQualifierType().equals(Qualifier.BQB_IS_DESCRIBED_BY));
-
- Species Protein_38 = sbmlModel.getSpecies("Protein_38");
- Assert.assertTrue(Protein_38.getSBOTerm() == SBO.getGeneric());
- Assert.assertTrue(Protein_38.getName().equals("TCF1_protein"));
- Assert.assertTrue(Protein_38.getCVTerms().size() == 2);
- Assert.assertTrue(Protein_38.getCompartment().equals("CellularLocationVocabulary_3"));
- Compartment protein38Compartment = sbmlModel.getCompartment(Protein_1.getCompartment());
- Assert.assertTrue(protein38Compartment.getCVTerms().size() == 1);
- Assert.assertTrue(Protein_38.getCVTerm(0).getBiologicalQualifierType().equals(Qualifier.BQB_IS_DESCRIBED_BY));
- Assert.assertTrue(Protein_38.getCVTerm(1).getBiologicalQualifierType().equals(Qualifier.BQB_IS_DESCRIBED_BY));
-
-
- Species Protein_2 = sbmlModel.getSpecies("Protein_2");
- Assert.assertTrue(Protein_2.getSBOTerm() == SBO.getGeneric());
- Assert.assertTrue(Protein_2.getName().equals("beta-catenin_protein"));
- Assert.assertTrue(Protein_2.getCVTerms().size() == 2);
- Assert.assertTrue(Protein_2.getCVTerm(0).getBiologicalQualifierType().equals(Qualifier.BQB_IS_DESCRIBED_BY));
- Assert.assertTrue(Protein_2.getCVTerm(1).getBiologicalQualifierType().equals(Qualifier.BQB_IS_DESCRIBED_BY));
- Assert.assertTrue(Protein_2.getCompartment().equals("CellularLocationVocabulary_3"));
- Compartment protein2Compartment = sbmlModel.getCompartment(Protein_1.getCompartment());
- Assert.assertTrue(protein2Compartment.getCVTerms().size() == 1);
-
-
- Reaction TemplateReaction_1 = sbmlModel.getReaction("TemplateReaction_1");
- Assert.assertTrue(TemplateReaction_1.getSBOTerm() == SBO.getTemplateReaction());
- Assert.assertTrue(TemplateReaction_1.getName().equals("Wnt8 transcription"));
- Assert.assertTrue(TemplateReaction_1.getCVTerms().size() == 2);
- Assert.assertTrue(TemplateReaction_1.getNumProducts() == 1);
- Assert.assertTrue(TemplateReaction_1.getNumModifiers() == 3);
- for(ModifierSpeciesReference modifier : TemplateReaction_1.getListOfModifiers())
- {
- String modifierId = modifier.getId();
- if(modifier.getSpecies().equals("DnaRegion_12"))
- {
- Species DnaRegion_12 = sbmlModel.getSpecies("DnaRegion_12");
- Assert.assertTrue(DnaRegion_12.getName().equals("Wnt8_gene"));
- Assert.assertTrue(DnaRegion_12.getCVTerms().size() == 3);
- }
- else if(modifierId.equals("TemplateReactionRegulation_28") )
- {
- Assert.assertTrue(modifier.getName().equals("Blimp1/Krox regulates Wnt8"));
- Assert.assertTrue(modifier.getSBOTerm() == SBO.getStimulator());
- Assert.assertTrue(modifier.getCVTerms().size() == 2);
- }
- else if(modifierId.equals("TemplateReactionRegulation_17"))
- {
- Assert.assertTrue(modifier.getName().equals("beta-catenin TCF1 regulates Wnt8"));
- Assert.assertTrue(modifier.getSBOTerm() == SBO.getStimulator());
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
- Assert.assertTrue(TemplateReaction_1.getSBOTerm() == SBO.getTemplateReaction());
- Assert.assertTrue(TemplateReaction_1.getProduct(0).getSpecies().equals("Protein_1"));
-
- Reaction TemplateReaction_22 = sbmlModel.getReaction("TemplateReaction_22");
- Assert.assertTrue(TemplateReaction_22.getName().equals("Eve transcription"));
- Assert.assertTrue(TemplateReaction_22.getSBOTerm() == SBO.getTemplateReaction());
- Assert.assertTrue(TemplateReaction_22.getCVTerms().size() == 2);
- Assert.assertTrue(TemplateReaction_22.getNumProducts() == 1);
- Assert.assertTrue(TemplateReaction_22.getNumModifiers() == 3);
- Assert.assertTrue(TemplateReaction_22.getProduct(0).getSpecies().equals("Protein_25"));
- Species Protein_25 = sbmlModel.getSpecies("Protein_25");
- Assert.assertTrue(Protein_25.getName().equals("Eve_protein"));
- for(ModifierSpeciesReference modifier : TemplateReaction_22.getListOfModifiers())
- {
- String modifierId = modifier.getId();
- if(modifier.getSpecies().equals("DnaRegion_23"))
- {
- Species DnaRegion_23 = sbmlModel.getSpecies("DnaRegion_23");
- Assert.assertTrue(DnaRegion_23.getName().equals("Eve_gene"));
- Assert.assertTrue(DnaRegion_23.getCVTerms().size() == 3);
- Assert.assertTrue(DnaRegion_23.getCompartment().equals("CellularLocationVocabulary_3"));
- Assert.assertTrue(DnaRegion_23.getSBOTerm() == SBO.getDNASegment());
- }
- else if(modifierId.equals("TemplateReactionRegulation_30") )
- {
- Assert.assertTrue(modifier.getName().equals("Bilmp1/Krox regulates Eve"));
- Assert.assertTrue(modifier.getSBOTerm() == SBO.getStimulator());
- Assert.assertTrue(modifier.getCVTerms().size() == 2);
- Assert.assertTrue(modifier.getSpecies().equals("Protein_12"));
- }
- else if(modifierId.equals("TemplateReactionRegulation_27"))
- {
- Assert.assertTrue(modifier.getName().equals("beta-catenin TCF1 regulates Eve"));
- Assert.assertTrue(modifier.getSBOTerm() == SBO.getStimulator());
- Assert.assertTrue(modifier.getSpecies().equals("Complex_37"));
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
- Reaction Blimp = sbmlModel.getReaction("Blimp");
- Assert.assertTrue(Blimp.getName().equals("Blimp1/Krox transcription"));
- Assert.assertTrue(Blimp.getSBOTerm() == SBO.getTemplateReaction());
- Assert.assertTrue(Blimp.getCVTerms().size() == 2);
- Assert.assertTrue(Blimp.getNumProducts() == 1);
- Assert.assertTrue(Blimp.getNumModifiers() == 2);
- Assert.assertTrue(Blimp.getProduct(0).getSpecies().equals("Protein_12"));
- for(ModifierSpeciesReference modifier : Blimp.getListOfModifiers())
- {
- String modifierId = modifier.getId();
- if(modifier.getSpecies().equals("DnaRegion_10"))
- {
- Species DnaRegion_23 = sbmlModel.getSpecies("DnaRegion_10");
- Assert.assertTrue(DnaRegion_23.getName().equals("Blimp1/Krox_gene"));
- Assert.assertTrue(DnaRegion_23.getCVTerms().size() == 3);
- Assert.assertTrue(DnaRegion_23.getCompartment().equals("CellularLocationVocabulary_3"));
- Assert.assertTrue(DnaRegion_23.getSBOTerm() == SBO.getDNASegment());
- }
- else if(modifierId.equals("TemplateReactionRegulation_14") )
- {
- Assert.assertTrue(modifier.getName().equals("beta-catenin TCF1 regulates Blimp1/Krox"));
- Assert.assertTrue(modifier.getSBOTerm() == SBO.getStimulator());
- Assert.assertTrue(modifier.getCVTerms().size() == 2);
- Assert.assertTrue(modifier.getSpecies().equals("Complex_37"));
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
- }
- @Test public void test_GeneticInteractionFile()
- {
- String owlFile = fileDirectory + "biopax3-genetic-interaction.owl";
-
- SBMLModel sbfcSBMLModel = InteractionTests.read_biopaxFile(owlFile);
-
- org.sbml.jsbml.Model sbmlModel = sbfcSBMLModel.getModel();
- Assert.assertTrue(sbmlModel.getModel().getId().equals("defaultSBMLModelId"));
- Assert.assertTrue(sbmlModel.getNumSpecies() == 2);
- Assert.assertTrue(sbmlModel.getNumReactions() == 1);
-
- Assert.assertTrue(sbmlModel.getNumModifierSpeciesReferences() == 2);
-
- for(ModifierSpeciesReference modifier : sbmlModel.getModifierSpeciesReferences())
- {
- if(modifier.getSpecies().equals("Gene_1") || modifier.getSpecies().equals("Gene_3"))
- {
- Assert.assertTrue(true);
- }
- }
-
- Species gene1 = sbmlModel.getSpecies("Gene_1");
- Assert.assertTrue(gene1.getName().equals("MLC1"));
- Assert.assertTrue(gene1.getSBOTerm() == SBO.getGene());
- Assert.assertTrue(gene1.getCVTermCount() == 1);
- Assert.assertTrue(gene1.getCVTerms().iterator().next().getBiologicalQualifierType().equals(Qualifier.BQB_IS));
-
- Species gene3 = sbmlModel.getSpecies("Gene_3");
- Assert.assertTrue(gene3.getName().equals("MYO2"));
- Assert.assertTrue(gene3.getSBOTerm() == SBO.getGene());
- Assert.assertTrue(gene3.getCVTerms().iterator().next().getBiologicalQualifierType().equals(Qualifier.BQB_IS));
- Assert.assertTrue(gene3.getCVTerms().iterator().next().getResources().size() == 1);
-
- Reaction GeneticInteraction_2 = sbmlModel.getReaction("GeneticInteraction_2");
- Assert.assertTrue(GeneticInteraction_2.getName().equals("MYO2 - MLC1"));
- Assert.assertTrue(GeneticInteraction_2.getSBOTerm() == SBO.getGeneticInteraction());
- Assert.assertTrue(GeneticInteraction_2.getCVTerms().size() == 2);
- Assert.assertTrue(GeneticInteraction_2.getNumModifiers() == 2);
- for(ModifierSpeciesReference modifier : GeneticInteraction_2.getListOfModifiers())
- {
- Assert.assertFalse(!modifier.getSpecies().equals("Gene_1") && !modifier.getSpecies().equals("Gene_3"));
- }
- Assert.assertTrue(GeneticInteraction_2.getNumProducts() == 2);
- for(SpeciesReference product : GeneticInteraction_2.getListOfProducts())
- {
- Assert.assertFalse(!product.getSpecies().equals("Gene_1") && !product.getSpecies().equals("Gene_3"));
- }
- Assert.assertTrue(GeneticInteraction_2.getNumReactants() == 2);
- for(SpeciesReference reactant : GeneticInteraction_2.getListOfReactants())
- {
- Assert.assertFalse(!reactant.getSpecies().equals("Gene_1") && !reactant.getSpecies().equals("Gene_3"));
- }
- }
-
- @Test public void test_MolecularInteractionFile()
- {
- String owlFile = fileDirectory + "biopax3-protein-interaction.owl";
-
- SBMLModel sbfcSBMLModel = read_biopaxFile(owlFile);
- org.sbml.jsbml.Model sbmlModel = sbfcSBMLModel.getModel();
-
- Species Mdm2 = sbmlModel.getSpecies("Mdm2");
- Assert.assertTrue(Mdm2.getId().equals("Mdm2"));
- Assert.assertTrue(Mdm2.getName().equals("Mdm2"));
- Assert.assertTrue(Mdm2.getCompartment().equals("defaultCompartment"));
-
- Species p73 = sbmlModel.getSpecies("p73");
- Assert.assertTrue(p73.getId().equals("p73"));
- Assert.assertTrue(p73.getName().equals("p73"));
- Assert.assertTrue(p73.getCompartment().equals("defaultCompartment"));
-
- Reaction molecularInteraction = sbmlModel.getReaction("Mdm2_p73_by_coimmunoprecipitation");
- Assert.assertTrue(molecularInteraction.getName().equals("{Mdm2, p73} by coimmunoprecipitation"));
- Assert.assertTrue(molecularInteraction.getSBOTerm() == SBO.getMolecularInteraction());
- Assert.assertTrue(molecularInteraction.getNumReactants() == 2);
- Assert.assertTrue(molecularInteraction.getNumProducts() == 2);
- }
-
// @Test public void test_ComplexAssemblyFile()
// {
// String owlFile = fileDirectory + "INOH_GPCR_signaling-pertussis_toxin-.owl";
@@ -744,86 +408,8 @@
// //TODO:
// }
- @Test public void test_CatalysisFile()
- {
- String owlFile = fileDirectory + "biopax3-phosphorylation-reaction.owl";
- SBMLModel sbfcSBMLModel = InteractionTests.read_biopaxFile(owlFile);
- org.sbml.jsbml.Model sbmlModel = sbfcSBMLModel.getModel();
-
- Assert.assertTrue(sbmlModel.getNumSpecies() == 5);
-
- Species protein = sbmlModel.getSpecies("Protein_5");
- Assert.assertTrue(protein.getId().equals("Protein_5"));
- Assert.assertTrue(protein.getName().equals("CHK2"));
- Assert.assertTrue(protein.getCompartment().equals("CellularLocationVocabulary_6"));
-
- Species SmallMolecule_21 = sbmlModel.getSpecies("SmallMolecule_21");
- Assert.assertTrue(SmallMolecule_21.getId().equals("SmallMolecule_21"));
- Assert.assertTrue(SmallMolecule_21.getName().equals("ADP"));
- Assert.assertTrue(SmallMolecule_21.getCompartment().equals("CellularLocationVocabulary_6"));
-
- Reaction BiochemicalReaction_2 = sbmlModel.getReaction("BiochemicalReaction_2");
- Assert.assertTrue(BiochemicalReaction_2.getName().equals("Phosphorylation and activation of CHK2 by ATM"));
- Assert.assertTrue(BiochemicalReaction_2.getSBOTerm() == SBO.getBiochemicalReaction());
- Assert.assertTrue(BiochemicalReaction_2.getCVTerms().size() == 3);
- Assert.assertTrue(BiochemicalReaction_2.isReversible());
- Assert.assertTrue(BiochemicalReaction_2.getNumReactants() == 2);
- Assert.assertTrue(BiochemicalReaction_2.getNumProducts() == 2);
- Assert.assertTrue(BiochemicalReaction_2.getNumModifiers() == 1);
- Assert.assertTrue(BiochemicalReaction_2.getModifier(0).getId().equals("Catalysis_1"));
- Assert.assertTrue(BiochemicalReaction_2.getModifier(0).getSBOTerm() == SBO.getCatalyst());
- Assert.assertTrue(BiochemicalReaction_2.getModifier(0).getSpecies().equals("Protein_27"));
- //TODO: modifier for protein 27 has stoichiometry value of 1
- for(SpeciesReference reactant : BiochemicalReaction_2.getListOfReactants())
- {
- if(reactant.getId().equals("Stoichiometry_1"))
- {
- Species Protein_5 = sbmlModel.getSpecies("Protein_5");
- Assert.assertTrue(Protein_5.getName().equals("CHK2"));
- Assert.assertTrue(Protein_5.getCVTerms().size() == 0);
- Assert.assertTrue(Protein_5.getCompartment().equals("CellularLocationVocabulary_6"));
- Assert.assertTrue(Protein_5.getSBOTerm() == SBO.getGeneric());
- Assert.assertTrue(reactant.getStoichiometry() == 1);
- }
- else if(reactant.getId().equals("Stoichiometry_4"))
- {
- Species SmallMolecule_13 = sbmlModel.getSpecies("SmallMolecule_13");
- Assert.assertTrue(SmallMolecule_13.getName().equals("ATP"));
- Assert.assertTrue(SmallMolecule_13.getSBOTerm() == SBO.getSmallMolecule());
- Assert.assertTrue(SmallMolecule_13.getCVTerms().size() == 0);
- Assert.assertTrue(reactant.getStoichiometry() == 1);
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
- for(SpeciesReference product : BiochemicalReaction_2.getListOfProducts())
- {
- if(product.getSpecies().equals("Protein_16"))
- {
- Species Protein_5 = sbmlModel.getSpecies("Protein_16");
- Assert.assertTrue(Protein_5.getName().equals("CHK2"));
- Assert.assertTrue(Protein_5.getCVTerms().size() == 0);
- Assert.assertTrue(Protein_5.getCompartment().equals("CellularLocationVocabulary_6"));
- Assert.assertTrue(Protein_5.getSBOTerm() == SBO.getGeneric());
- }
- else if(product.getId().equals("Stoichiometry_3"))
- {
- Species SmallMolecule_13 = sbmlModel.getSpecies("SmallMolecule_21");
- Assert.assertTrue(SmallMolecule_13.getCompartment().equals("CellularLocationVocabulary_6"));
- Assert.assertTrue(SmallMolecule_13.getName().equals("ADP"));
- Assert.assertTrue(SmallMolecule_13.getSBOTerm() == SBO.getSmallMolecule());
- Assert.assertTrue(SmallMolecule_13.getCVTerms().size() == 0);
- Assert.assertTrue(product.getStoichiometry() == 1);
- }
- else
- {
- Assert.assertFalse(true);
- }
- }
- }
+
// @Test public void test_ModulationFile()
// {
// String owlFile = fileDirectory + "biopax-example-ecocyc-glycolysis.owl";
@@ -833,239 +419,7 @@
// //TODO:
// }
- @Test public void test_TemplateReactionRegulationFile()
- {
- String owlFile = fileDirectory + "biopax3-template-reaction.owl";
-
- SBMLModel sbfcSBMLModel = InteractionTests.read_biopaxFile(owlFile);
- org.sbml.jsbml.Model sbmlModel = sbfcSBMLModel.getModel();
-
- Species Complex_37 = sbmlModel.getSpecies("Complex_37");
- Assert.assertTrue(Complex_37.getName().equals("Beta-catenin-TCF1"));
- Assert.assertTrue(Complex_37.getSBOTerm() == SBO.getComplex());
- Assert.assertTrue(Complex_37.getCVTerms().size() == 2);
- Assert.assertTrue(Complex_37.getCompartment().equals("CellularLocationVocabulary_3"));
- Compartment complexCompartment = sbmlModel.getCompartment(Complex_37.getCompartment());
- Assert.assertTrue(complexCompartme...
[truncated message content] |
|
From: <tra...@us...> - 2016-08-06 05:29:41
|
Revision: 689
http://sourceforge.net/p/sbfc/code/689
Author: tramy-nguyen
Date: 2016-08-06 05:29:39 +0000 (Sat, 06 Aug 2016)
Log Message:
-----------
- Added support for creating multiple pathways in SBML2BioPAX.
- Added implementation for Complex.getComponents() when parsing a biopax entity.
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-03 06:22:17 UTC (rev 688)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-06 05:29:39 UTC (rev 689)
@@ -24,11 +24,8 @@
*/
package org.sbfc.converter.biopax2sbml;
-import java.io.File;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -38,11 +35,9 @@
import org.biopax.paxtools.model.BioPAXElement;
import org.biopax.paxtools.model.BioPAXFactory;
import org.biopax.paxtools.model.BioPAXLevel;
-import org.biopax.paxtools.model.Model;
import org.biopax.paxtools.model.level3.BiochemicalPathwayStep;
import org.biopax.paxtools.model.level3.BiochemicalReaction;
import org.biopax.paxtools.model.level3.Catalysis;
-import org.biopax.paxtools.model.level3.CatalysisDirectionType;
import org.biopax.paxtools.model.level3.CellularLocationVocabulary;
import org.biopax.paxtools.model.level3.Complex;
import org.biopax.paxtools.model.level3.ComplexAssembly;
@@ -56,27 +51,21 @@
import org.biopax.paxtools.model.level3.Dna;
import org.biopax.paxtools.model.level3.DnaRegion;
import org.biopax.paxtools.model.level3.Entity;
-import org.biopax.paxtools.model.level3.EntityFeature;
-import org.biopax.paxtools.model.level3.EntityReference;
import org.biopax.paxtools.model.level3.Evidence;
import org.biopax.paxtools.model.level3.EvidenceCodeVocabulary;
-import org.biopax.paxtools.model.level3.ExperimentalForm;
import org.biopax.paxtools.model.level3.Gene;
import org.biopax.paxtools.model.level3.GeneticInteraction;
import org.biopax.paxtools.model.level3.Interaction;
import org.biopax.paxtools.model.level3.KPrime;
-import org.biopax.paxtools.model.level3.Modulation;
import org.biopax.paxtools.model.level3.MolecularInteraction;
import org.biopax.paxtools.model.level3.Pathway;
import org.biopax.paxtools.model.level3.PathwayStep;
import org.biopax.paxtools.model.level3.PhysicalEntity;
import org.biopax.paxtools.model.level3.Protein;
-import org.biopax.paxtools.model.level3.Provenance;
import org.biopax.paxtools.model.level3.PublicationXref;
import org.biopax.paxtools.model.level3.RelationshipXref;
import org.biopax.paxtools.model.level3.Rna;
import org.biopax.paxtools.model.level3.RnaRegion;
-import org.biopax.paxtools.model.level3.Score;
import org.biopax.paxtools.model.level3.SimplePhysicalEntity;
import org.biopax.paxtools.model.level3.SmallMolecule;
import org.biopax.paxtools.model.level3.Stoichiometry;
@@ -115,12 +104,10 @@
import org.sbml.jsbml.SBase;
import org.sbml.jsbml.Species;
import org.sbml.jsbml.SpeciesReference;
-import org.sbml.jsbml.UnitDefinition;
import org.sbml.jsbml.ext.comp.CompConstants;
import org.sbml.jsbml.ext.comp.CompModelPlugin;
import org.sbml.jsbml.ext.comp.CompSBMLDocumentPlugin;
import org.sbml.jsbml.ext.comp.CompSBasePlugin;
-import org.sbml.jsbml.ext.comp.ExternalModelDefinition;
import org.sbml.jsbml.ext.comp.ModelDefinition;
import org.sbml.jsbml.ext.comp.ReplacedElement;
import org.sbml.jsbml.ext.comp.Submodel;
@@ -130,8 +117,6 @@
import org.sbml.jsbml.xml.XMLNode;
import org.sbml.jsbml.xml.XMLToken;
import org.sbml.jsbml.xml.XMLTriple;
-import org.sbml.jsbml.xml.parsers.AnnotationWriter;
-import org.sbml.jsbml.xml.parsers.SBMLRDFAnnotationParser;
public class BioPAX2SBML extends GeneralConverter {
@@ -878,7 +863,7 @@
return cvterm;
}
- private Species parseEntity(Entity entity)
+ private Species parseEntity(Entity entity) throws ConversionException
{
Species sbmlSpecies = createSpecies(entity);
if(entity instanceof Complex)
@@ -892,7 +877,17 @@
//complexAssembly sbo term becomes this new reaction complex Assembly SBO term
//complex.getComponent() becomes reatants of this complex Assembly
BioPAXFactory bioPAXFactory = BioPAXLevel.L3.getDefaultFactory();
- ComplexAssembly complexAssembly = bioPAXFactory.create(ComplexAssembly.class, complex.getRDFId() + "ComplexAssembly");
+ ComplexAssembly complexAssembly = bioPAXFactory.create(ComplexAssembly.class, "ComplexAssembly_forComplexParticipant" + complex.getRDFId());
+ Reaction caReaction = createReaction(complexAssembly);
+
+ SpeciesReference product = createSpeciesReferences(complex);
+ caReaction.addProduct(product.clone());
+
+ ListOf<SpeciesReference> reactantList = getSpeciesReferences(complex.getComponent(), complex.getComponentStoichiometry());
+ caReaction.setListOfReactants(reactantList);
+
+ sbmlId2biopaxId.put(caReaction.getId(), complexAssembly.getRDFId());
+ mappedEntities.put(complexAssembly.getRDFId(), caReaction);
}
}
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-03 06:22:17 UTC (rev 688)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-06 05:29:39 UTC (rev 689)
@@ -37,6 +37,9 @@
import org.sbml.jsbml.SBO;
import org.sbml.jsbml.Species;
import org.sbml.jsbml.SpeciesReference;
+import org.sbml.jsbml.ext.comp.CompConstants;
+import org.sbml.jsbml.ext.comp.CompSBMLDocumentPlugin;
+import org.sbml.jsbml.ext.comp.ModelDefinition;
public class SBML2BioPAXConverter {
@@ -45,114 +48,52 @@
public Model convert(SBMLDocument sbmlDocument)
{
- // return convert(sbmlDocument.getModel());
- return convert2(sbmlDocument.getModel());
+ return convert2(sbmlDocument);
}
- /*
- private Model convert(org.sbml.jsbml.Model sbmlModel) {
- log.debug("First thing first: create a BioPAX model");
- Model bpModel = sbml2BioPAXUtilities.createModel();
- log.debug("Now, let's create a Pathway that corresponds to this SBML model.");
- Pathway pathway = sbml2BioPAXUtilities.convertPathway(bpModel, sbmlModel);
-
- // Reactions -> Conversions [start]
- ListOf<Reaction> sbmlReactions = sbmlModel.getListOfReactions();
- log.debug("There are " + sbmlReactions.size() + " reactions in the SBML model. ");
- log.debug("Let's iterate over reactions and convert them one by one.");
- for (Reaction reaction : sbmlReactions) {
- log.trace("Working on reaction conversion: " + reaction.getName());
- Conversion conversion = sbml2BioPAXUtilities.convertReaction(bpModel, reaction);
- pathway.addPathwayComponent(conversion);
-
- // Modifiers -> Control reactions [start]
- ListOf<ModifierSpeciesReference> listOfModifiers = reaction.getListOfModifiers();
- log.trace(
- "- There are " + listOfModifiers.size() + " modifiers to this reaction. " +
- "Converting them to controls to this reaction."
- );
-
- for (ModifierSpeciesReference modifierSpeciesReference : listOfModifiers) {
- Control control = sbml2BioPAXUtilities.convertModifier(bpModel, modifierSpeciesReference);
- pathway.addPathwayComponent(control);
- control.addControlled(conversion);
- Species species = sbmlModel.getSpecies(modifierSpeciesReference.getSpecies());
- Controller controller = sbml2BioPAXUtilities.convertSpecies(bpModel, species);
- control.addController(controller);
- }
- // Modifiers -> Controls [end]
-
- // Reactants -> Left Participants [start]
- ListOf<SpeciesReference> listOfReactants = reaction.getListOfReactants();
- log.trace("- There are " + listOfReactants.size() + " reactants to this reaction. " +
- "Adding them to the reaction as left participants.");
- for (SpeciesReference reactantRef : listOfReactants) {
- Species species = sbmlModel.getSpecies(reactantRef.getSpecies());
- PhysicalEntity physicalEntity = sbml2BioPAXUtilities.convertSpecies(bpModel, species);
- conversion.addLeft(physicalEntity);
- }
- // Reactants -> Left Participants [end]
-
- // Products -> Right Participants [start]
- ListOf<SpeciesReference> listOfProducts = reaction.getListOfProducts();
- log.trace("- There are " + listOfProducts.size() + " products to this reaction. " +
- "Adding them to the reaction as right participants.");
- for (SpeciesReference productRef : listOfProducts) {
- Species species = sbmlModel.getSpecies(productRef.getSpecies());
- PhysicalEntity physicalEntity = sbml2BioPAXUtilities.convertSpecies(bpModel, species);
- conversion.addRight(physicalEntity);
- }
- // Products -> Right Participants [end]
- }
- // Reactions -> Conversions [end]
-
- // The process above leaves some of the complexes empty. We need to fix this.
- sbml2BioPAXUtilities.fillComplexes(bpModel, sbmlModel);
-
- // Let's assign organism to every possible entity
- sbml2BioPAXUtilities.assignOrganism(bpModel);
-
- // Some references do not have relationship entities in them
- // Let's assign biomodels model id for them
- sbml2BioPAXUtilities.assignRelationXrefs(bpModel);
-
-
- return bpModel;
- }
- */
-
- private Model convert2(org.sbml.jsbml.Model sbmlModel) {
+ private Model convert2(SBMLDocument sbmlDocument) {
+
+ org.sbml.jsbml.Model sbmlTopLevelModel = sbmlDocument.getModel();
+
log.debug("First thing first: create a BioPAX model");
Model bpModel = sbml2BioPAXUtilities.createModel();
log.debug("Now, let's create a Pathway that corresponds to this SBML model.");
- Pathway pathway = sbml2BioPAXUtilities.convertPathway(bpModel, sbmlModel);
+ Pathway pathway = sbml2BioPAXUtilities.convertPathway(bpModel, sbmlTopLevelModel);
// Species -> PhysicalEntities [start]
- log.debug("There are " + sbmlModel.getNumSpecies() + " reactions in the SBML model. ");
- parseSpecies(sbmlModel.getListOfSpecies(), bpModel);
+ log.debug("There are " + sbmlTopLevelModel.getNumSpecies() + " reactions in the SBML model. ");
+ parseSpecies(sbmlTopLevelModel.getListOfSpecies(), bpModel);
// Reactions -> Conversions [start]
- log.debug("There are " + sbmlModel.getNumReactions() + " reactions in the SBML model. ");
+ log.debug("There are " + sbmlTopLevelModel.getNumReactions() + " reactions in the SBML model. ");
log.debug("Let's iterate over reactions and convert them one by one.");
- parseReactions(sbmlModel.getListOfReactions(), sbmlModel, bpModel, pathway);
+ parseReactions(sbmlTopLevelModel.getListOfReactions(), sbmlTopLevelModel, bpModel, pathway);
//TODO:
/*
* take the sbmlModel (which is the sbml toplevel model) and get all ModelDefinitions
* to parse all of their species and reactions.
*/
-// // The process above leaves some of the complexes empty. We need to fix this.
-// sbml2BioPAXUtilities.fillComplexes(bpModel, sbmlModel);
-//
-// // Let's assign organism to every possible entity
-// sbml2BioPAXUtilities.assignOrganism(bpModel);
-//
-// // Some references do not have relationship entities in them
-// // Let's assign biomodels model id for them
-// sbml2BioPAXUtilities.assignRelationXrefs(bpModel);
-
+ CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDocument.getPlugin(CompConstants.shortLabel);
+ for(ModelDefinition subModelDef : compSBMLDocPlugin.getListOfModelDefinitions())
+ {
+ Pathway subModelPathway = sbml2BioPAXUtilities.convertPathway(bpModel, subModelDef);
+ parseSpecies(subModelDef.getListOfSpecies(), bpModel);
+ parseReactions(subModelDef.getListOfReactions(), subModelDef, bpModel, subModelPathway);
+ }
+
+ // // The process above leaves some of the complexes empty. We need to fix this.
+ // sbml2BioPAXUtilities.fillComplexes(bpModel, sbmlModel);
+ //
+ // // Let's assign organism to every possible entity
+ // sbml2BioPAXUtilities.assignOrganism(bpModel);
+ //
+ // // Some references do not have relationship entities in them
+ // // Let's assign biomodels model id for them
+ // sbml2BioPAXUtilities.assignRelationXrefs(bpModel);
+
return bpModel;
}
@@ -170,7 +111,7 @@
log.trace("Working on reaction conversion: " + reaction.getName());
Interaction interaction = sbml2BioPAXUtilities.convertReaction(bpModel, reaction);
pathway.addPathwayComponent(interaction);
-
+
// Modifiers -> Control reactions [start]
log.trace(
"- There are " + reaction.getNumModifiers() + " modifiers to this reaction. " +
@@ -181,7 +122,7 @@
// Reactants -> Left Participants [start]
log.trace("- There are " + reaction.getNumReactants() + " reactants to this reaction. " +
"Adding them to the reaction as left participants.");
-
+
parseSpeciesReference(sbmlModel, reaction.getListOfReactants(), bpModel, interaction, reaction);
// Reactants -> Left Participants [end]
@@ -243,12 +184,12 @@
// Modifiers -> Controls [end]
}
}
-
+
private void parseSpeciesReference(org.sbml.jsbml.Model sbmlModel, ListOf<SpeciesReference> listOfSpeciesReferences,
Model bpModel, Interaction interaction, Reaction reaction)
{
// Reactants -> Left Participants [start]
-
+
for (SpeciesReference speciesRef : listOfSpeciesReferences) {
Species species = sbmlModel.getSpecies(speciesRef.getSpecies());
Entity entity = sbml2BioPAXUtilities.convertSpecies(bpModel, species);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-08-03 06:22:21
|
Revision: 688
http://sourceforge.net/p/sbfc/code/688
Author: tramy-nguyen
Date: 2016-08-03 06:22:17 +0000 (Wed, 03 Aug 2016)
Log Message:
-----------
- removed excess parameter for generating xrefs
- modified conversion of sbo terms from sbml elements to biopax entities to make use of SBO.isChildOf()
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-02 04:07:31 UTC (rev 687)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-03 06:22:17 UTC (rev 688)
@@ -36,6 +36,8 @@
import javax.xml.stream.XMLStreamException;
import org.biopax.paxtools.model.BioPAXElement;
+import org.biopax.paxtools.model.BioPAXFactory;
+import org.biopax.paxtools.model.BioPAXLevel;
import org.biopax.paxtools.model.Model;
import org.biopax.paxtools.model.level3.BiochemicalPathwayStep;
import org.biopax.paxtools.model.level3.BiochemicalReaction;
@@ -889,6 +891,8 @@
//complex; //product of complexAssembly reaction
//complexAssembly sbo term becomes this new reaction complex Assembly SBO term
//complex.getComponent() becomes reatants of this complex Assembly
+ BioPAXFactory bioPAXFactory = BioPAXLevel.L3.getDefaultFactory();
+ ComplexAssembly complexAssembly = bioPAXFactory.create(ComplexAssembly.class, complex.getRDFId() + "ComplexAssembly");
}
}
@@ -1202,10 +1206,10 @@
{
String cellLocId = physicalEntity.getCellularLocation().getRDFId();
String compartmentId = null;
+
if(cellLocId.contains("http://identifiers.org/"))
{
compartmentId = replaceInvalidSBMLcharId(parseCellularLocationURL(cellularLocVocab));
-
}
else
{
@@ -1254,19 +1258,14 @@
private String parseCellularLocationURL(CellularLocationVocabulary cellLocVocab)
{
String compartmentId = getValidSBMLName(cellLocVocab);
- String cellLocId = cellLocVocab.getRDFId();
+
+ String cellLocOfficialURI = link.getMiriamURI(cellLocVocab.getRDFId());
+ if(cellLocOfficialURI != null)
+ {
+ compartmentId = ontology.getTerm(cellLocOfficialURI).getName();
+ }
- //take the end part of the URI and transform it into a name
- compartmentId = (cellLocId.length() > 10) ?
- cellLocId.substring(cellLocId.length() - 10) : cellLocId;
-
- //check to see if cellularLocation is a URL and look up the term in identifiers.org and use its name
- if(cellLocId.contains("http://identifiers.org/go/"))
- {
- compartmentId = ontology.getTerm(compartmentId).getName().replaceAll(" ", "_");
- }
-
- return compartmentId;
+ return compartmentId;
}
private Compartment getDefaultCompartment()
@@ -1765,6 +1764,7 @@
{
if (control instanceof Catalysis)
{
+ //Based on Biopax Level 3 ontology, Catalysis will only be ACTIVATION
modifierSpecies.setSBOTerm(SBO.getCatalyst()); //"SBO:0000013"
}
else
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-02 04:07:31 UTC (rev 687)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-03 06:22:17 UTC (rev 688)
@@ -116,7 +116,7 @@
*/
public Pathway convertPathway(Model bpModel, org.sbml.jsbml.Model sbmlModel) {
Pathway pathway = createBPEfromSBMLE(bpModel, Pathway.class, sbmlModel);
- for (Xref xref : generateXrefsForSBase(bpModel, RelationshipXref.class, sbmlModel)) {
+ for (Xref xref : generateXrefsForSBase(bpModel, sbmlModel)) {
pathway.addXref(xref);
}
return pathway;
@@ -143,48 +143,78 @@
boolean isConversionSet = false;
- // Extend this switch with further SBO terms as needed
- switch (reaction.getSBOTerm()) {
- case 589:
- reactionClass = TemplateReaction.class;
- break;
- case 343:
+ /*
+ * Note:
+ * The constant values : 231, 167, 176, 185, 179, 177, 182, 589, 343, and 344 represents SBO values.
+ * These constant values are currently used to convert from BioPAX2SBML.
+ * For the reverse direction, if the reaction that is getting converted to a biopax entity has an
+ * SBO term that is a child of any of these constant values, create an entity of the same type.
+ * (i.e. SBO term SBO:0000588 will create a Transport entity because this SBO value is an child of SBO:0000185)
+ */
+ int reactionSBOValue = reaction.getSBOTerm();
+
+ if(SBO.isChildOf(reactionSBOValue, 231))
+ {
+ if(SBO.isChildOf(reactionSBOValue, 167))
+ {
+ if(SBO.isChildOf(reactionSBOValue, 176))
+ {
+ if(SBO.isChildOf(reactionSBOValue, 177))
+ {
+ rxnClass = ComplexAssembly.class;
+ isConversionSet = true;
+ }
+ else if(SBO.isChildOf(reactionSBOValue, 179))
+ {
+ rxnClass = Degradation.class;
+ isConversionSet = true;
+ }
+ else if(SBO.isChildOf(reactionSBOValue, 182))
+ {
+ rxnClass = Conversion.class;
+ isConversionSet = true;
+ }
+ else
+ {
+ rxnClass = BiochemicalReaction.class;
+ isConversionSet = true;
+ }
+ }
+ else if(SBO.isChildOf(reactionSBOValue, 185))
+ {
+ rxnClass = Transport.class;
+ isConversionSet = true;
+ }
+ else
+ {
+ rxnClass = TransportWithBiochemicalReaction.class;
+ isConversionSet = true;
+ }
+ } //End of TransportWithBiochemicalReaction
+ else if(SBO.isChildOf(reactionSBOValue, 343))
+ {
reactionClass = GeneticInteraction.class;
- break;
- case 344:
+ }
+ else if(SBO.isChildOf(reactionSBOValue, 344))
+ {
reactionClass = MolecularInteraction.class;
- break;
- case 231:
+ }
+ else if(SBO.isChildOf(reactionSBOValue, 589))
+ {
+ reactionClass = TemplateReaction.class;
+ }
+ else
+ {
reactionClass = Interaction.class;
- break;
- case 177: //Complex Assembly
- rxnClass = ComplexAssembly.class;
- isConversionSet = true;
- break;
- case 176: // Biochemical reaction
- rxnClass = BiochemicalReaction.class;
- isConversionSet = true;
- break;
- case 167: // Transport With Biochemical Reaction
- rxnClass = TransportWithBiochemicalReaction.class;
- isConversionSet = true;
- break;
- case 185: // Transport reaction
- rxnClass = Transport.class;
- isConversionSet = true;
- break;
- case 179: // Degradation
- rxnClass = Degradation.class;
- isConversionSet = true;
- break;
- case 182: // Conversion
- rxnClass = Conversion.class;
- isConversionSet = true;
- break;
- default:
- reactionClass = Interaction.class;
- break;
+ }
+ } //End of Interaction
+ else
+ {
+ //Default Interaction type
+ reactionClass = Interaction.class;
}
+
+
if(isConversionSet)
{
@@ -314,7 +344,7 @@
*/
public Interaction setXref(Model bpModel, Reaction reaction, Interaction interaction)
{
- for (Xref xref : generateXrefsForSBase(bpModel, RelationshipXref.class, reaction)) {
+ for (Xref xref : generateXrefsForSBase(bpModel, reaction)) {
interaction.addXref(xref);
}
return interaction;
@@ -354,69 +384,80 @@
Control control = null;
//Check what type of control is this modifier
- //TODO: modulation and templateReactionRegulation has no sbo terms.
- String controlName = modifierSpeciesReference.getName();
- if(controlName != null && !controlName.isEmpty())
+ int controlSBOValue = modifierSpeciesReference.getSBOTerm();
+ if(controlSBOValue == 639 || controlSBOValue == 206 || controlSBOValue == 638 || controlSBOValue == 207
+ || controlSBOValue == 20 || controlSBOValue == 640 || controlSBOValue == 637 || controlSBOValue == 636)
{
- if(controlName.contains("Modulation"))
+ control = createBPEfromSBMLE(bpModel, Modulation.class, modifierSpeciesReference, id);
+ }
+ else if(controlSBOValue == 20 || controlSBOValue == 21)
+ {
+ //TODO: SBO value 20 will conflict with INHIBITION_OTHER and INHIBITION
+ control = createBPEfromSBMLE(bpModel, TemplateReactionRegulation.class, modifierSpeciesReference, id);
+ }
+ else
+ {
+ control = createBPEfromSBMLE(bpModel, Control.class, modifierSpeciesReference, id);
+ }
+
+ setControlType(control, modifierSpeciesReference.getSBOTerm());
+
+ return control;
+ }
+
+ public void setControlType(Control control, int modifierSBOTerm)
+ {
+ //TODO: same SBO terms for ControlType.INHIBITION_OTHER and INHIBITION;
+ if(SBO.isChildOf(modifierSBOTerm, 20))
+ {
+ if(SBO.isChildOf(modifierSBOTerm, 206))
{
- control = createBPEfromSBMLE(bpModel, Modulation.class, modifierSpeciesReference, id);
+ control.setControlType(ControlType.INHIBITION_COMPETITIVE);
}
- else if(controlName.contains("TemplateReactionRegulation"))
+ else if(SBO.isChildOf(modifierSBOTerm, 207))
{
- control = createBPEfromSBMLE(bpModel, TemplateReactionRegulation.class, modifierSpeciesReference, id);
+ control.setControlType(ControlType.INHIBITION_NONCOMPETITIVE);
}
+ else if(SBO.isChildOf(modifierSBOTerm, 638))
+ {
+ control.setControlType(ControlType.INHIBITION_IRREVERSIBLE);
+ }
+ else if(SBO.isChildOf(modifierSBOTerm, 639))
+ {
+ control.setControlType(ControlType.INHIBITION_ALLOSTERIC);
+ }
+ else if(SBO.isChildOf(modifierSBOTerm, 640))
+ {
+ control.setControlType(ControlType.INHIBITION_UNCOMPETITIVE);
+ }
else
{
- control = createBPEfromSBMLE(bpModel, Control.class, modifierSpeciesReference, id);
+ control.setControlType(ControlType.INHIBITION);
}
}
- else
+ else if(SBO.isChildOf(modifierSBOTerm, 21))
{
- control = createBPEfromSBMLE(bpModel, Control.class, modifierSpeciesReference, id);
- }
-
- switch (modifierSpeciesReference.getSBOTerm()) {
- case 21:
- control.setControlType(ControlType.ACTIVATION);
- break;
- case 636:
+ if(SBO.isChildOf(modifierSBOTerm, 636))
+ {
control.setControlType(ControlType.ACTIVATION_ALLOSTERIC);
- break;
- case 637:
+ }
+ else if(SBO.isChildOf(modifierSBOTerm, 637))
+ {
control.setControlType(ControlType.ACTIVATION_NONALLOSTERIC);
- break;
- case 20:
- control.setControlType(ControlType.INHIBITION);
- break;
- case 207:
- control.setControlType(ControlType.INHIBITION_NONCOMPETITIVE);
- break;
- case 206:
- control.setControlType(ControlType.INHIBITION_COMPETITIVE);
- break;
- case 638:
- control.setControlType(ControlType.INHIBITION_IRREVERSIBLE);
- break;
- case 639:
- control.setControlType(ControlType.INHIBITION_ALLOSTERIC);
- break;
- // case 20: //TODO: same SBO terms
- // control.setControlType(ControlType.INHIBITION_OTHER);
- // break;
- case 640:
- control.setControlType(ControlType.INHIBITION_UNCOMPETITIVE);
- break;
- default:
+ }
+ else
+ {
control.setControlType(ControlType.ACTIVATION);
- break;
+ }
}
-
- return control;
+ else
+ {
+ //TODO: throw exception because SBO value is none of the above?
+ }
}
public <T extends SimplePhysicalEntity, S extends EntityReference> T convertSpeciesToSPE(Model bpModel, Class<T> entityClass, Class<S> refClass, Species species) {
- Set<Xref> xrefs = generateXrefsForSBase(bpModel, UnificationXref.class, species);
+ Set<Xref> xrefs = generateXrefsForSBase(bpModel, species);
HashSet<XReferrable> ers = new HashSet<XReferrable>();
for (Xref xref : xrefs) {
for (XReferrable xReferrable : xref.getXrefOf()) {
@@ -518,37 +559,46 @@
Entity entity = null;
boolean isPhysicalEntity = true;
- switch (species.getSBOTerm()) {
- case 243: //Gene
- entity = convertSpeciesToE(bpModel, Gene.class, UnificationXref.class, species);
- isPhysicalEntity = false;
- break;
- case 253: // Complex
- physicalEntity = convertSpeciesToPE(bpModel, Complex.class, UnificationXref.class, species);
- break;
- case 252: // Protein
- physicalEntity = convertSpeciesToSPE(bpModel, Protein.class, ProteinReference.class, species);
- break;
- case 251: // DNA
- physicalEntity = convertSpeciesToSPE(bpModel, Dna.class, DnaReference.class, species);
- break;
- case 634: // DNA Region
- physicalEntity = convertSpeciesToSPE(bpModel, DnaRegion.class, DnaRegionReference.class, species);
- break;
- case 250: // RNA
- physicalEntity = convertSpeciesToSPE(bpModel, Rna.class, RnaReference.class, species);
- break;
- case 635: // RNA Region
- physicalEntity = convertSpeciesToSPE(bpModel, Rna.class, RnaReference.class, species);
- break;
- case 247: // Small Molecule
- physicalEntity = convertSpeciesToSPE(bpModel, SmallMolecule.class, SmallMoleculeReference.class, species);
- break;
- default: // Physical Entity
- physicalEntity = convertSpeciesToPE(bpModel, PhysicalEntity.class, UnificationXref.class, species);
- break;
+ int speciesSBOValue = species.getSBOTerm();
+ if(SBO.isChildOf(speciesSBOValue, 243))
+ {
+ entity = convertSpeciesToE(bpModel, Gene.class, UnificationXref.class, species);
+ isPhysicalEntity = false;
}
-
+ else if(SBO.isChildOf(speciesSBOValue, 253))
+ {
+ physicalEntity = convertSpeciesToPE(bpModel, Complex.class, UnificationXref.class, species);
+ }
+ else if(SBO.isChildOf(speciesSBOValue, 252))
+ {
+ physicalEntity = convertSpeciesToSPE(bpModel, Protein.class, ProteinReference.class, species);
+ }
+ else if(SBO.isChildOf(speciesSBOValue, 251))
+ {
+ physicalEntity = convertSpeciesToSPE(bpModel, Dna.class, DnaReference.class, species);
+ }
+ else if(SBO.isChildOf(speciesSBOValue, 634))
+ {
+ physicalEntity = convertSpeciesToSPE(bpModel, DnaRegion.class, DnaRegionReference.class, species);
+ }
+ else if(SBO.isChildOf(speciesSBOValue, 250))
+ {
+ physicalEntity = convertSpeciesToSPE(bpModel, Rna.class, RnaReference.class, species);
+ }
+ else if(SBO.isChildOf(speciesSBOValue, 635))
+ {
+ physicalEntity = convertSpeciesToSPE(bpModel, RnaRegion.class, RnaRegionReference.class, species);
+ }
+ else if(SBO.isChildOf(speciesSBOValue, 247))
+ {
+ physicalEntity = convertSpeciesToSPE(bpModel, SmallMolecule.class, SmallMoleculeReference.class, species);
+ }
+ else
+ {
+ //If SBO value does not match any of the above, then assume species is a PhysicalEntity
+ physicalEntity = convertSpeciesToPE(bpModel, PhysicalEntity.class, UnificationXref.class, species);
+ }
+
if(!isPhysicalEntity){
return entity;
}
@@ -573,7 +623,7 @@
if(cellularLocationVocabulary == null) {
cellularLocationVocabulary = bioPAXFactory.create(CellularLocationVocabulary.class, id);
cellularLocationVocabulary.addTerm(compartment.getName());
- for (Xref xref : generateXrefsForSBase(bpModel, UnificationXref.class, compartment)) {
+ for (Xref xref : generateXrefsForSBase(bpModel, compartment)) {
cellularLocationVocabulary.addXref(xref);
}
bpModel.add(cellularLocationVocabulary);
@@ -585,7 +635,7 @@
public <T extends Entity, S extends Xref> T convertSpeciesToE(Model bpModel, Class<T> entityClass, Class<S> xrefClass, Species species)
{
T entity = createBPEfromSBMLE(bpModel, entityClass, species);
- for (Xref xref : generateXrefsForSBase(bpModel, xrefClass, species)) {
+ for (Xref xref : generateXrefsForSBase(bpModel, species)) {
entity.addXref(xref);
}
return entity;
@@ -594,7 +644,7 @@
public <T extends PhysicalEntity, S extends Xref> T convertSpeciesToPE(Model bpModel, Class<T> entityClass, Class<S> xrefClass, Species species)
{
T physicalEntity = createBPEfromSBMLE(bpModel, entityClass, species);
- for (Xref xref : generateXrefsForSBase(bpModel, xrefClass, species)) {
+ for (Xref xref : generateXrefsForSBase(bpModel, species)) {
physicalEntity.addXref(xref);
}
return physicalEntity;
@@ -609,7 +659,7 @@
*/
private Complex createComplexFromSpecies(Model bpModel, Species species) {
Complex complex = createBPEfromSBMLE(bpModel, Complex.class, species);
- for (Xref xref : generateXrefsForSBase(bpModel, RelationshipXref.class, species)) {
+ for (Xref xref : generateXrefsForSBase(bpModel, species)) {
complex.addXref(xref);
}
@@ -625,14 +675,14 @@
*/
public Gene convertGeneFromSpecies(Model bpModel, Species species) {
Gene gene = createBPEfromSBMLE(bpModel, Gene.class, species);
- for (Xref xref : generateXrefsForSBase(bpModel, UnificationXref.class, species)) {
+ for (Xref xref : generateXrefsForSBase(bpModel, species)) {
gene.addXref(xref);
}
return gene;
}
- private <T extends Xref> Set<Xref> generateXrefsForSBase(Model bpModel, Class<T> xrefClass, AbstractSBase sBase) {
+ private <T extends Xref> Set<Xref> generateXrefsForSBase(Model bpModel, AbstractSBase sBase) {
Annotation annotation = sBase.getAnnotation();
HashSet<Xref> xrefs = new HashSet<Xref>();
Modified: trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java 2016-08-02 04:07:31 UTC (rev 687)
+++ trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java 2016-08-03 06:22:17 UTC (rev 688)
@@ -916,4 +916,9 @@
System.out.println("Conversion completed");
}
+ @Test
+ public void test_SBO()
+ {
+ Assert.assertTrue(SBO.isChildOf(21, 21));
+ }
}
Modified: trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml
===================================================================
--- trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml 2016-08-02 04:07:31 UTC (rev 687)
+++ trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml 2016-08-03 06:22:17 UTC (rev 688)
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='utf-8' standalone='no'?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" comp:required="true" level="3" version="1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
<comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
- <comp:modelDefinition id="id1345359130_Negative_regulation_of__G_alpha_i_GDP_GTP_exchange_signaling_" metaid="_222b4f69-c54f-4682-b169-501c9fa19f47"
+ <comp:modelDefinition id="id1345359130_Negative_regulation_of__G_alpha_i_GDP_GTP_exchange_signaling_" metaid="_4d2a00f0-cb45-49aa-8973-0f3ff9e8cb1f"
name="Negative regulation of (G alpha i GDP-GTP exchange signaling) ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -22,7 +22,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_222b4f69-c54f-4682-b169-501c9fa19f47">
+ <rdf:Description rdf:about="#_4d2a00f0-cb45-49aa-8973-0f3ff9e8cb1f">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025356" />
@@ -52,7 +52,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" metaid="_1c21e592-ed53-443b-80f8-dec24c4a3e97" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" metaid="_9f0aa422-fe9c-4ecf-9e4b-0ce029cb82e7" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000007">
@@ -60,7 +60,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_1c21e592-ed53-443b-80f8-dec24c4a3e97">
+ <rdf:Description rdf:about="#_9f0aa422-fe9c-4ecf-9e4b-0ce029cb82e7">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="http://www.inoh.org/biopax/IC_NO_XREF" />
@@ -80,7 +80,7 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_1a9fb09d-8307-4384-8bca-9c0bdd1b0105" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_031af1cc-77c5-490d-8419-304fd11186f4" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000010">
@@ -88,7 +88,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_1a9fb09d-8307-4384-8bca-9c0bdd1b0105">
+ <rdf:Description rdf:about="#_031af1cc-77c5-490d-8419-304fd11186f4">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P63092" />
@@ -116,7 +116,7 @@
</listOfCompartments>
<listOfSpecies>
<species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id830922164_RGS"
- initialAmount="1" metaid="dfa0aae1-67f4-44d0-9d66-61d30c8a8a66" name="RGS" sboTerm="SBO:0000252">
+ initialAmount="1" metaid="_94dafecf-a1bf-4125-a5c9-f52d31b6a425" name="RGS" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="IMR_0000431">
@@ -136,7 +136,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#dfa0aae1-67f4-44d0-9d66-61d30c8a8a66">
+ <rdf:Description rdf:about="#_94dafecf-a1bf-4125-a5c9-f52d31b6a425">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/Q8K443" />
@@ -437,7 +437,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id1167711338_G_alpha_i" initialAmount="1"
- metaid="eac7eb42-3021-4a6c-9d07-83a632640fb0" name="G alpha i" sboTerm="SBO:0000252">
+ metaid="c118c266-4081-4f3a-b009-4cbd6120c47d" name="G alpha i" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0025194">
@@ -457,7 +457,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#eac7eb42-3021-4a6c-9d07-83a632640fb0">
+ <rdf:Description rdf:about="#c118c266-4081-4f3a-b009-4cbd6120c47d">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025194" />
@@ -523,7 +523,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id2142488298_GTP"
- initialAmount="1" metaid="_2505c075-43fb-4498-adc2-9254e72ff973" name="GTP" sboTerm="SBO:0000247">
+ initialAmount="1" metaid="d519c0a6-6362-420d-8454-58ebb1e56791" name="GTP" sboTerm="SBO:0000247">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0021541">
@@ -543,7 +543,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_2505c075-43fb-4498-adc2-9254e72ff973">
+ <rdf:Description rdf:about="#d519c0a6-6362-420d-8454-58ebb1e56791">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="C00044" />
@@ -584,7 +584,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id790431118_GDP"
- initialAmount="1" metaid="f4703605-a8e7-4837-9419-3bfc09bf79d6" name="GDP" sboTerm="SBO:0000247">
+ initialAmount="1" metaid="_2a4e3526-32f3-4a63-aedf-8b97719150d7" name="GDP" sboTerm="SBO:0000247">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="M1660">
@@ -604,7 +604,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#f4703605-a8e7-4837-9419-3bfc09bf79d6">
+ <rdf:Description rdf:about="#_2a4e3526-32f3-4a63-aedf-8b97719150d7">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="C00035" />
@@ -646,7 +646,7 @@
</species>
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="id537126859_Hydrolysis" metaid="_6e937028-5315-470f-9155-5fa8d263707a" name="http://www.inoh.org/biopax/id537126859_Hydrolysis" reversible="false"
+ <reaction fast="false" id="id537126859_Hydrolysis" metaid="_1283ecdd-cd1e-4b44-96e4-6af06ab6f4d5" name="http://www.inoh.org/biopax/id537126859_Hydrolysis" reversible="false"
sboTerm="SBO:0000176">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -678,7 +678,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_6e937028-5315-470f-9155-5fa8d263707a">
+ <rdf:Description rdf:about="#_1283ecdd-cd1e-4b44-96e4-6af06ab6f4d5">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="Inhibit" />
@@ -739,7 +739,7 @@
<speciesReference constant="true" species="id790431118_GDP" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="id1345090438_Control" metaid="_32bddd7e-d912-4714-9a42-65d213b41a6e" name="http://www.inoh.org/biopax/id1345090438_Control" sboTerm="SBO:0000596"
+ <modifierSpeciesReference id="id1345090438_Control" metaid="_962ed90c-aa59-4fb4-859e-9cdecae69888" name="http://www.inoh.org/biopax/id1345090438_Control" sboTerm="SBO:0000596"
species="id830922164_RGS">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -768,7 +768,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_32bddd7e-d912-4714-9a42-65d213b41a6e">
+ <rdf:Description rdf:about="#_962ed90c-aa59-4fb4-859e-9cdecae69888">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/8774883" />
@@ -818,7 +818,7 @@
</rdf:RDF>
</annotation>
</modifierSpeciesReference>
- <modifierSpeciesReference id="id373103285_Catalyze" metaid="_4dd1e27f-d0bc-420e-995e-68ed6087881f" name="http://www.inoh.org/biopax/id373103285_Catalyze" sboTerm="SBO:0000013"
+ <modifierSpeciesReference id="id373103285_Catalyze" metaid="_63e0252c-990b-46bb-944b-f37b6755cb1c" name="http://www.inoh.org/biopax/id373103285_Catalyze" sboTerm="SBO:0000013"
species="id1167711338_G_alpha_i">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -847,7 +847,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_4dd1e27f-d0bc-420e-995e-68ed6087881f">
+ <rdf:Description rdf:about="#_63e0252c-990b-46bb-944b-f37b6755cb1c">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/8774883" />
@@ -901,7 +901,7 @@
</reaction>
</listOfReactions>
</comp:modelDefinition>
- <comp:modelDefinition id="id505442170_Adenylate_cyclase_activation_signaling" metaid="e06e4f5b-a288-4e1f-8453-d99f73493185"
+ <comp:modelDefinition id="id505442170_Adenylate_cyclase_activation_signaling" metaid="_5b0eb183-bcdb-4d38-8373-05e967204926"
name="Adenylate cyclase activation signaling ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -922,7 +922,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#e06e4f5b-a288-4e1f-8453-d99f73493185">
+ <rdf:Description rdf:about="#_5b0eb183-bcdb-4d38-8373-05e967204926">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="IEV_0002021" />
@@ -957,7 +957,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_3732814b-66ab-4d0a-bee7-9c7aa7443632" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_7ff3b00a-a9c4-4f63-b574-ab53ea33829e" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000010">
@@ -965,7 +965,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_3732814b-66ab-4d0a-bee7-9c7aa7443632">
+ <rdf:Description rdf:about="#_7ff3b00a-a9c4-4f63-b574-ab53ea33829e">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P63092" />
@@ -990,7 +990,7 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="plasma_membrane" metaid="fde88748-436d-4a2d-a3b4-7e2cf9cde7a7" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane" metaid="_7183af62-3250-411c-8cea-37189b03a537" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000003">
@@ -998,7 +998,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#fde88748-436d-4a2d-a3b4-7e2cf9cde7a7">
+ <rdf:Description rdf:about="#_7183af62-3250-411c-8cea-37189b03a537">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/14734786" />
@@ -1031,7 +1031,7 @@
</listOfCompartments>
<listOfSpecies>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id914752420_adenylate_cyclase"
- initialAmount="1" metaid="_5531cce9-806b-4dcf-8897-ce95f7d5f3c9" name="adenylate cyclase" sboTerm="SBO:0000252">
+ initialAmount="1" metaid="aa729223-cf37-4ea5-a774-d77dad5affc8" name="adenylate cyclase" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="IMR_0000313">
@@ -1051,7 +1051,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_5531cce9-806b-4dcf-8897-ce95f7d5f3c9">
+ <rdf:Description rdf:about="#aa729223-cf37-4ea5-a774-d77dad5affc8">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P97490" />
@@ -1212,7 +1212,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane" constant="false" hasOnlySubstanceUnits="true" id="id1767261917_G_alpha_s_GTP" initialAmount="1"
- metaid="_64bf33d8-3f52-4721-847d-ab9d1f9480ea" name="G alpha s_GTP" sboTerm="SBO:0000253">
+ metaid="_43da80f7-c352-4d99-b57a-dac9f6e0f7ba" name="G alpha s_GTP" sboTerm="SBO:0000253">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0012388">
@@ -1229,7 +1229,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_64bf33d8-3f52-4721-847d-ab9d1f9480ea">
+ <rdf:Description rdf:about="#_43da80f7-c352-4d99-b57a-dac9f6e0f7ba">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0012388" />
@@ -1270,7 +1270,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane" constant="false" hasOnlySubstanceUnits="true" id="id561447739_adenylate_cyclase_G_alpha_s_GTP" initialAmount="1"
- metaid="_90bacbf5-eb40-4214-b7a8-f6298c314da6" name="adenylate cyclase:G alpha s_GTP" sboTerm="SBO:0000253">
+ metaid="_0ba7160a-7e1c-4539-bb7d-64c854d92bd1" name="adenylate cyclase:G alpha s_GTP" sboTerm="SBO:0000253">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="M1632">
@@ -1287,7 +1287,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_90bacbf5-eb40-4214-b7a8-f6298c314da6">
+ <rdf:Description rdf:about="#_0ba7160a-7e1c-4539-bb7d-64c854d92bd1">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="M1632" />
@@ -1319,7 +1319,7 @@
</species>
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="id684626400_Binding" metaid="_2b12ca4f-7ac9-4ebe-8dfb-784af7b72237" name="http://www.inoh.org/biopax/id684626400_Binding" reversible="false" sboTerm="SBO:0000177">
+ <reaction fast="false" id="id684626400_Binding" metaid="aefaf717-7122-4532-baf3-cd2115594ad6" name="http://www.inoh.org/biopax/id684626400_Binding" reversible="false" sboTerm="SBO:0000177">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="Inhibit">
@@ -1350,7 +1350,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_2b12ca4f-7ac9-4ebe-8dfb-784af7b72237">
+ <rdf:Description rdf:about="#aefaf717-7122-4532-baf3-cd2115594ad6">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="Inhibit" />
@@ -1414,7 +1414,7 @@
</reaction>
</listOfReactions>
</comp:modelDefinition>
- <comp:modelDefinition id="id1656077294_Negative_regulation_of__Binding_of_G_alpha_i_GTP_and_adenylate_cyclase_" metaid="_9f7717d6-2c6c-45ed-a5b2-ac182ff59146"
+ <comp:modelDefinition id="id1656077294_Negative_regulation_of__Binding_of_G_alpha_i_GTP_and_adenylate_cyclase_" metaid="ef3b429c-52db-4af6-bd76-7d9527499e2b"
name="Negative regulation of (Binding of G alpha i-GTP and adenylate cyclase) ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -1435,7 +1435,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_9f7717d6-2c6c-45ed-a5b2-ac182ff59146">
+ <rdf:Description rdf:about="#ef3b429c-52db-4af6-bd76-7d9527499e2b">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="IEV_0002020" />
@@ -1465,7 +1465,7 @@
</rdf:RDF>
</annotation>
</comp:modelDefinition>
- <comp:modelDefinition id="id823066982_Negative_regulation_of__Binding_of_GPCR_ligand_and_GPCR_" metaid="c379f0e8-1915-4efc-a804-32d52d31543d"
+ <comp:modelDefinition id="id823066982_Negative_regulation_of__Binding_of_GPCR_ligand_and_GPCR_" metaid="_600a3676-d93a-4bce-a3fc-ecc175f91634"
name="Negative regulation of (Binding of GPCR ligand and GPCR) ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -1486,7 +1486,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#c379f0e8-1915-4efc-a804-32d52d31543d">
+ <rdf:Description rdf:about="#_600a3676-d93a-4bce-a3fc-ecc175f91634">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="P104" />
@@ -1516,7 +1516,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="cytoplasm" metaid="_3c8fcbda-9e77-493e-b665-ea6d417bf9f8" sboTerm="SBO:0000290">
+ <compartment constant="true" id="cytoplasm" metaid="cc0b776f-6906-4ea6-a744-3e24704b84ed" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000036">
@@ -1524,7 +1524,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_3c8fcbda-9e77-493e-b665-ea6d417bf9f8">
+ <rdf:Description rdf:about="#cc0b776f-6906-4ea6-a744-3e24704b84ed">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="http://www.inoh.org/biopax/IC_NO_XREF" />
@@ -1544,7 +1544,7 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_7fe351b6-380c-4485-9ac5-cbc952be3ec8" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_0ada46e5-4089-4720-b858-bb73060a4d27" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000010">
@@ -1552,7 +1552,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_7fe351b6-380c-4485-9ac5-cbc952be3ec8">
+ <rdf:Description rdf:about="#_0ada46e5-4089-4720-b858-bb73060a4d27">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P63092" />
@@ -1580,7 +1580,7 @@
</listOfCompartments>
<listOfSpecies>
<species boundaryCondition="false" compartment="cytoplasm" constant="false" hasOnlySubstanceUnits="true" id="id141699547_pertussis_toxin" initialAmount="1"
- metaid="_6de9aec3-3a81-4edd-9f58-0a5b4c8193b3" name="pertussis toxin" sboTerm="SBO:0000252">
+ metaid="e7c462dd-2864-4096-a707-7a85ee06f9d1" name="pertussis toxin" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="IMR_0100469">
@@ -1600,7 +1600,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_6de9aec3-3a81-4edd-9f58-0a5b4c8193b3">
+ <rdf:Description rdf:about="#e7c462dd-2864-4096-a707-7a85ee06f9d1">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="IMR_0100469" />
@@ -1661,7 +1661,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id428834256_G_alpha_i" initialAmount="1"
- metaid="_12ec94b9-3aaa-48f3-b830-580ca0a1a10d" name="G alpha i" sboTerm="SBO:0000252">
+ metaid="_03ee5533-6a9b-489e-b1c4-873bd50d9243" name="G alpha i" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0025360">
@@ -1681,7 +1681,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_12ec94b9-3aaa-48f3-b830-580ca0a1a10d">
+ <rdf:Description rdf:about="#_03ee5533-6a9b-489e-b1c4-873bd50d9243">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P08752" />
@@ -1747,7 +1747,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id1339337698_G_alpha_i_ADP" initialAmount="1"
- metaid="_39ed22f3-c409-43df-80ad-21f89ee2d1ca" name="G alpha i_ADP" sboTerm="SBO:0000252">
+ metaid="_7a8c6d6b-3f2a-44d2-b518-03dd91c582a1" name="G alpha i_ADP" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0025361">
@@ -1767,7 +1767,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_39ed22f3-c409-43df-80ad-21f89ee2d1ca">
+ <rdf:Description rdf:about="#_7a8c6d6b-3f2a-44d2-b518-03dd91c582a1">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025361" />
@@ -1844,7 +1844,7 @@
</species>
</listOfSpecies>
<listOfReactions>
- <reaction fast="false" id="id2122690064_ADP_ribosylation" metaid="_27df78eb-c453-42ef-b7e5-25b2f38b5fa4" name="http://www.inoh.org/biopax/id2122690064_ADP_ribosylation" reversible="false"
+ <reaction fast="false" id="id2122690064_ADP_ribosylation" metaid="_70e0b063-8b68-4854-a947-ceee0720454a" name="http://www.inoh.org/biopax/id2122690064_ADP_ribosylation" reversible="false"
sboTerm="SBO:0000176">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -1869,7 +1869,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_27df78eb-c453-42ef-b7e5-25b2f38b5fa4">
+ <rdf:Description rdf:about="#_70e0b063-8b68-4854-a947-ceee0720454a">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025358" />
@@ -1920,7 +1920,7 @@
<speciesReference constant="true" species="id1339337698_G_alpha_i_ADP" />
</listOfProducts>
<listOfModifiers>
- <modifierSpeciesReference id="id1688410553_Catalyze" metaid="aa1ee0d5-9861-407d-a93a-c69e3fcabcd5" name="http://www.inoh.org/biopax/id1688410553_Catalyze" sboTerm="SBO:0000013"
+ <modifierSpeciesReference id="id1688410553_Catalyze" metaid="f354aa69-08f8-44d2-a55b-dacc70299ff0" name="http://www.inoh.org/biopax/id1688410553_Catalyze" sboTerm="SBO:0000013"
species="id141699547_pertussis_toxin">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -1945,7 +1945,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#aa1ee0d5-9861-407d-a93a-c69e3fcabcd5">
+ <rdf:Description rdf:about="#f354aa69-08f8-44d2-a55b-dacc70299ff0">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/9032437" />
@@ -1994,7 +1994,7 @@
</reaction>
</listOfReactions>
</comp:modelDefinition>
- <comp:modelDefinition id="id753278671_Heterotrimeric_GPCR_signaling_pathway__through_G_alpha_i_and_pertussis_toxin_" metaid="_8370f4b1-e34b-4c5c-ba7e-3e591be49696"
+ <comp:modelDefinition id="id753278671_Heterotrimeric_GPCR_signaling_pathway__through_G_alpha_i_and_pertussis_toxin_" metaid="_0eda5285-e6cf-42fe-9a4a-79b547501bdc"
name="Heterotrimeric GPCR signaling pathway (through G alpha i and pertussis toxin) ( GPCR signaling (pertussis toxin) ) ">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
@@ -2015,7 +2015,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_8370f4b1-e34b-4c5c-ba7e-3e591be49696">
+ <rdf:Description rdf:about="#_0eda5285-e6cf-42fe-9a4a-79b547501bdc">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="IEV_0000692" />
@@ -2045,7 +2045,7 @@
</rdf:RDF>
</annotation>
<listOfCompartments>
- <compartment constant="true" id="plasma_membrane" metaid="_7da590cf-53b0-4a21-94b0-cbd6db4e6ad0" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane" metaid="_9e3b44bf-8345-413f-8a0a-3ef36184022d" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000003">
@@ -2053,7 +2053,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_7da590cf-53b0-4a21-94b0-cbd6db4e6ad0">
+ <rdf:Description rdf:about="#_9e3b44bf-8345-413f-8a0a-3ef36184022d">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/14734786" />
@@ -2083,7 +2083,7 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_6a5326d1-0ee2-455f-bf2e-d087f7b348bd" sboTerm="SBO:0000290">
+ <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_384df003-47a2-4584-a8a2-408b28dd66c4" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000010">
@@ -2091,7 +2091,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_6a5326d1-0ee2-455f-bf2e-d087f7b348bd">
+ <rdf:Description rdf:about="#_384df003-47a2-4584-a8a2-408b28dd66c4">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P63092" />
@@ -2116,7 +2116,7 @@
</rdf:RDF>
</annotation>
</compartment>
- <compartment constant="true" id="extracellular" metaid="b7f6f5e0-88cd-4884-9b94-6c5cdef04938" sboTerm="SBO:0000290">
+ <compartment constant="true" id="extracellular" metaid="_0abca097-39f5-4cd9-98b3-e14673ab038e" sboTerm="SBO:0000290">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="ILC_0000002">
@@ -2124,7 +2124,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#b7f6f5e0-88cd-4884-9b94-6c5cdef04938">
+ <rdf:Description rdf:about="#_0abca097-39f5-4cd9-98b3-e14673ab038e">
<bqbiol:isDescribedBy>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/pubmed/14734786" />
@@ -2152,7 +2152,7 @@
</listOfCompartments>
<listOfSpecies>
<species boundaryCondition="false" compartment="plasma_membrane" constant="false" hasOnlySubstanceUnits="true" id="id1492250336_GPCR_G_proteins" initialAmount="1"
- metaid="_03285720-77b3-4832-a690-31fc877fb203" name="GPCR:G proteins" sboTerm="SBO:0000253">
+ metaid="_7c34d914-80a0-4036-8012-a6b83c583da4" name="GPCR:G proteins" sboTerm="SBO:0000253">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="M1615">
@@ -2169,7 +2169,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_03285720-77b3-4832-a690-31fc877fb203">
+ <rdf:Description rdf:about="#_7c34d914-80a0-4036-8012-a6b83c583da4">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="M1615" />
@@ -2210,7 +2210,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id1362156068_GPCR" initialAmount="1"
- metaid="_79e189c6-ae24-4f4b-8b7c-c60a0c629e67" name="GPCR" sboTerm="SBO:0000252">
+ metaid="_5ddf0384-1f22-4e5f-93e7-cea87d660837" name="GPCR" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0025195">
@@ -2230,7 +2230,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_79e189c6-ae24-4f4b-8b7c-c60a0c629e67">
+ <rdf:Description rdf:about="#_5ddf0384-1f22-4e5f-93e7-cea87d660837">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P35349" />
@@ -2741,7 +2741,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane" constant="false" hasOnlySubstanceUnits="true" id="id1589712309_G_alpha_i_GTP" initialAmount="1"
- metaid="a376b0c8-45cd-454b-80e6-5532c10d21aa" name="G alpha i_GTP" sboTerm="SBO:0000253">
+ metaid="eaaf4a7c-5663-483a-9582-47499f2df9e6" name="G alpha i_GTP" sboTerm="SBO:0000253">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0025174">
@@ -2758,7 +2758,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#a376b0c8-45cd-454b-80e6-5532c10d21aa">
+ <rdf:Description rdf:about="#eaaf4a7c-5663-483a-9582-47499f2df9e6">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025174" />
@@ -2799,7 +2799,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane" constant="false" hasOnlySubstanceUnits="true" id="id1308109848_G_beta_G_gamma" initialAmount="1"
- metaid="d71ac96c-c38b-491d-8442-5b39aa95b7c1" name="G beta:G gamma" sboTerm="SBO:0000253">
+ metaid="f1b1f003-9e97-4d20-ac88-0b0ebcf97438" name="G beta:G gamma" sboTerm="SBO:0000253">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="IMR_0100018">
@@ -2819,7 +2819,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#d71ac96c-c38b-491d-8442-5b39aa95b7c1">
+ <rdf:Description rdf:about="#f1b1f003-9e97-4d20-ac88-0b0ebcf97438">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="IMR_0100018" />
@@ -2930,7 +2930,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id2146509961_adenylate_cyclase"
- initialAmount="1" metaid="b8a1c486-4e27-481e-a008-8358c149f99f" name="adenylate cyclase" sboTerm="SBO:0000252">
+ initialAmount="1" metaid="_41639a92-8953-4b08-890f-3b0e37da2ce8" name="adenylate cyclase" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="M1598">
@@ -2950,7 +2950,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#b8a1c486-4e27-481e-a008-8358c149f99f">
+ <rdf:Description rdf:about="#_41639a92-8953-4b08-890f-3b0e37da2ce8">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P97490" />
@@ -3111,7 +3111,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane" constant="false" hasOnlySubstanceUnits="true" id="id1582094574_G_alpha_i_GTP" initialAmount="1"
- metaid="_589fa12b-0069-4914-85d8-0dd7f2964341" name="G alpha i_GTP" sboTerm="SBO:0000253">
+ metaid="_63954fdc-42dc-4201-bfca-8e61cbfff7da" name="G alpha i_GTP" sboTerm="SBO:0000253">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0025174">
@@ -3128,7 +3128,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_589fa12b-0069-4914-85d8-0dd7f2964341">
+ <rdf:Description rdf:about="#_63954fdc-42dc-4201-bfca-8e61cbfff7da">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025174" />
@@ -3169,7 +3169,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane" constant="false" hasOnlySubstanceUnits="true" id="id600911154_adenylate_cyclase_G_alpha_i_GTP" initialAmount="1"
- metaid="_6188e4cf-651d-485b-b909-4ed5b35efaa2" name="adenylate cyclase:G alpha i_GTP" sboTerm="SBO:0000253">
+ metaid="_15d5ab49-5d0f-4cb7-ad88-5b2976381a2d" name="adenylate cyclase:G alpha i_GTP" sboTerm="SBO:0000253">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="MI0025193">
@@ -3186,7 +3186,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_6188e4cf-651d-485b-b909-4ed5b35efaa2">
+ <rdf:Description rdf:about="#_15d5ab49-5d0f-4cb7-ad88-5b2976381a2d">
<bqbiol:unknownQualifier>
<rdf:Bag>
<rdf:li rdf:resource="MI0025193" />
@@ -3217,7 +3217,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id15346966_GPCR" initialAmount="1"
- metaid="_9cfdc7b1-d687-4f29-ab52-4442a132d810" name="GPCR" sboTerm="SBO:0000252">
+ metaid="_60e49d65-2bad-4979-a89f-ea0d57eb74b9" name="GPCR" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="M1588">
@@ -3237,7 +3237,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_9cfdc7b1-d687-4f29-ab52-4442a132d810">
+ <rdf:Description rdf:about="#_60e49d65-2bad-4979-a89f-ea0d57eb74b9">
<bqbiol:is>
<rdf:Bag>
<rdf:li rdf:resource="http://identifiers.org/uniprot/P35349" />
@@ -3748,7 +3748,7 @@
</annotation>
</species>
<species boundaryCondition="false" compartment="extracellular" constant="false" hasOnlySubstanceUnits="true" id="id1886772407_GPCR_ligand" initialAmount="1"
- metaid="_792d8635-e0da-470a-9128-a636e5dc7db4" name="GPCR ligand" sboTerm="SBO:0000252">
+ metaid="_9eb6fbaf-1c6a-4558-9ca6-b0527f47bdec" name="GPCR ligand" sboTerm="SBO:0000252">
<annotation>
<biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
<Xref uri="M1589">
@@ -3768,7 +3768,7 @@
</Xref>
</biopax2sbml>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
- <rdf:Description rdf:about="#_792d8635-e0da-470a-9128-a636e5dc7db4">
+ ...
[truncated message content] |
|
From: <tra...@us...> - 2016-08-02 04:07:35
|
Revision: 687
http://sourceforge.net/p/sbfc/code/687
Author: tramy-nguyen
Date: 2016-08-02 04:07:31 +0000 (Tue, 02 Aug 2016)
Log Message:
-----------
- Modified parsing of multiple pathways to so that SBML Comp replacement and replacedby are connecting to the correct species and reactions within a modelDefinition.
- Modified parsing of pathwayComponent so that the reactants and species are safely added to the working pathway model.
- Modified implementation of pathwayStep to now include parsing of biochemicalPathwayStep
- Reactants generated from conversion were not displaying correct modifiers, reactants, and products due to storing the sbml reaction in mappedEntities before modifiers, reactants, and products were created. Now parsing of physicalInteractions and conversionInteractions will parse all modifiers, reactants, and products before adding its reaction to mappedEntities table.
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java
trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
Added Paths:
-----------
trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-01 06:39:50 UTC (rev 686)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-02 04:07:31 UTC (rev 687)
@@ -37,6 +37,7 @@
import org.biopax.paxtools.model.BioPAXElement;
import org.biopax.paxtools.model.Model;
+import org.biopax.paxtools.model.level3.BiochemicalPathwayStep;
import org.biopax.paxtools.model.level3.BiochemicalReaction;
import org.biopax.paxtools.model.level3.Catalysis;
import org.biopax.paxtools.model.level3.CatalysisDirectionType;
@@ -339,10 +340,42 @@
//Create a comp model to attach all sbml submodel to the sbml document
CompModelPlugin compModel= (CompModelPlugin) sbmlDoc.getModel().getPlugin(CompConstants.shortLabel);
-
+ CompSBMLDocumentPlugin compSBMLDocPlugin = (CompSBMLDocumentPlugin) sbmlDoc.getPlugin(CompConstants.shortLabel);
for(Pathway pathway : pathways)
{
org.sbml.jsbml.Model subModel = parsePathway(pathway, sbmlDoc);
+ //Loop over all interaction within the biomodel and see if there are any interactions that contain a control this pathway
+ for(Control pathwayControl : bioModel.getObjects(Control.class))
+ {
+ boolean isControlledPathway = false;
+ for(org.biopax.paxtools.model.level3.Process controlledEntity : pathwayControl.getControlled())
+ {
+ if(controlledEntity.getRDFId().equals(pathway.getRDFId()))
+ {
+ isControlledPathway = true;
+ break;
+ }
+ }
+ if(isControlledPathway)
+ {
+ for(Controller controller : pathwayControl.getController())
+ {
+ if(controller instanceof PhysicalEntity)
+ {
+ Species controllerSpecies = (Species) mappedEntities.get(controller.getRDFId());
+ addSpecies(controllerSpecies.getId(), subModel);
+ }
+ }
+ }
+ //TODO:
+ /*
+ * First look for examples for this example
+ * Loop over all controller and check if each controller has a the same id as the pathway id
+ * If so, then loop over all the controlled within the biomodel and add reaction to this pathway
+ *
+ */
+ }
+
Submodel s = compModel.createSubmodel("submodel__" + subModel.getId());
s.setModelRef(subModel.getId());
}
@@ -352,9 +385,9 @@
Species species = (Species) mappedEntities.get(physicalEntity.getRDFId());
//Keep track of how many times this species occur in each submodel
int count = 0;
- for(Submodel modelDef : compModel.getListOfSubmodels())
+ for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
{
- if(modelDef.getModel().getSpecies(species.getId()) != null)
+ if(modelDef.getSpecies(species.getId()) != null)
{
count++;
}
@@ -366,8 +399,7 @@
* This physicalEntity did not occur anywhere in all submodels.
* Add this converted species to the top level sbml model
*/
- topModel.addSpecies(species);
- topModel.addCompartment((Compartment) getSBaseFromSBMLId(species.getCompartment()));
+ addSpecies(species.getId(), topModel);
}
else if(count == 1)
{
@@ -381,17 +413,16 @@
}
else
{
- topModel.addSpecies(species);
- topModel.addCompartment((Compartment) getSBaseFromSBMLId(species.getCompartment()));
- for(Submodel modelDef : compModel.getListOfSubmodels())
+ addSpecies(species.getId(), topModel);
+ for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
{
- Species submodel_species = modelDef.getModel().getSpecies(species.getId());
+ Species submodel_species = modelDef.getSpecies(species.getId());
if(submodel_species != null)
{
- CompSBasePlugin replacementPlugin = (CompSBasePlugin) species.getPlugin(CompConstants.shortLabel);
+ CompSBasePlugin replacementPlugin = (CompSBasePlugin) topModel.getSpecies(species.getId()).getPlugin(CompConstants.shortLabel);
ReplacedElement replacement = replacementPlugin.createReplacedElement();
replacement.setIdRef(submodel_species.getId());
- replacement.setSubmodelRef(modelDef.getId());
+ replacement.setSubmodelRef("submodel__" + modelDef.getId());
}
}
}
@@ -405,9 +436,9 @@
Reaction reaction = (Reaction) mappedEntities.get(interactionEntity.getRDFId());
//Keep track of how many times this reaction occur in the each submodel
int count = 0;
- for(Submodel modelDef : compModel.getListOfSubmodels())
+ for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
{
- if(modelDef.getModel().getReaction(reaction.getId()) != null)
+ if(modelDef.getReaction(reaction.getId()) != null)
{
count++;
}
@@ -419,7 +450,7 @@
* This interactionEntity did not occur anywhere in all submodels.
* Add this converted reaction to the top level sbml model
*/
- topModel.addReaction(reaction);
+ addReaction(reaction.getId(), topModel);
}
else if(count == 1)
@@ -434,16 +465,16 @@
}
else
{
- topModel.addReaction(reaction);
- for(Submodel modelDef : compModel.getListOfSubmodels())
+ addReaction(reaction.getId(), topModel);
+ for(ModelDefinition modelDef : compSBMLDocPlugin.getListOfModelDefinitions())
{
Reaction submodel_reaction = modelDef.getModel().getReaction(reaction.getId());
if(submodel_reaction != null)
{
- CompSBasePlugin replacementPlugin = (CompSBasePlugin) reaction.getPlugin(CompConstants.shortLabel);
+ CompSBasePlugin replacementPlugin = (CompSBasePlugin) topModel.getReaction(reaction.getId()).getPlugin(CompConstants.shortLabel);
ReplacedElement replacement = replacementPlugin.createReplacedElement();
replacement.setIdRef(submodel_reaction.getId());
- replacement.setSubmodelRef(modelDef.getId());
+ replacement.setSubmodelRef("submodel__"+modelDef.getId());
}
}
}
@@ -452,6 +483,29 @@
return sbmlDoc.getModel();
}
+ private void addSpecies(String speciesId, org.sbml.jsbml.Model sbmlModel) throws ConversionException
+ {
+ Species species = (Species) getSBaseFromSBMLId(speciesId);
+ if(sbmlModel.getSpecies(species.getId()) == null)
+ {
+ sbmlModel.addSpecies(species.clone());
+ Compartment compartment = (Compartment) getSBaseFromSBMLId(species.getCompartment());
+ if(sbmlModel.getCompartment(compartment.getId()) == null)
+ {
+ sbmlModel.addCompartment(compartment.clone());
+ }
+ }
+ }
+
+ private void addReaction(String reactionId, org.sbml.jsbml.Model sbmlModel) throws ConversionException
+ {
+ Reaction reaction = (Reaction) getSBaseFromSBMLId(reactionId);
+ if(sbmlModel.getReaction(reaction.getId()) == null)
+ {
+ sbmlModel.addReaction(reaction.clone());
+ }
+ }
+
/**
* Convert a biopax pathway to its equivalent SBML Model
*
@@ -470,12 +524,13 @@
if(pathway.getPathwayComponent() != null && pathway.getPathwayComponent().size() > 0)
{
//Parse all entities related to this pathway
- parsePathwayComponent(pathway.getPathwayComponent(), sbmlModel);
+ parsePathwayComponents(pathway.getPathwayComponent(), sbmlModel);
}
if(pathway.getPathwayOrder() != null && pathway.getPathwayOrder().size() > 0)
{
parsePathwayStep(pathway.getPathwayOrder(), sbmlModel);
}
+
//Add SBML annotation for biopax pathway
if(pathway.getXref() != null && !pathway.getXref().isEmpty())
@@ -506,87 +561,73 @@
return sbmlModel;
}
- private void parsePathwayComponent(Set<org.biopax.paxtools.model.level3.Process> entityList, org.sbml.jsbml.Model sbmlModel) throws ConversionException
+ private void parsePathwayComponents(Set<org.biopax.paxtools.model.level3.Process> entityList, org.sbml.jsbml.Model sbmlModel) throws ConversionException
{
for(Entity entity : entityList)
{
- if(entity instanceof Interaction)
+ parsePathwayComponent(entity, sbmlModel);
+ }
+ }
+
+ private void parsePathwayComponent(Entity entity, org.sbml.jsbml.Model sbmlModel) throws ConversionException
+ {
+ if(entity instanceof Interaction)
+ {
+ /*
+ * Note:
+ * Since all Control are translated into modifiers, reactants, and products that are attached to a reaction,
+ * no need to parse control entities but rather only the interactions since control entities will already be parsed
+ * when parsing interactions.
+ */
+ if(entity instanceof Control)
{
- /*
- * Note:
- * Since all Control are translated into modifiers, reactants, and products that are attached to a reaction,
- * no need to parse control entities but rather only the interactions since control entities will already be parsed
- * when parsing interactions.
- */
- if(entity instanceof Control)
+ return;
+ }
+ if(mappedEntities.get(entity.getRDFId()) != null)
+ {
+ Reaction pathwayComponent = (Reaction) mappedEntities.get(entity.getRDFId());
+
+ for(ModifierSpeciesReference modifier : pathwayComponent.getListOfModifiers())
{
- continue;
+ addSpecies(modifier.getSpecies(), sbmlModel);
+
}
- if(mappedEntities.get(entity.getRDFId()) != null)
+ for(SpeciesReference reactant : pathwayComponent.getListOfReactants())
{
- Reaction pathwayComponent = (Reaction) mappedEntities.get(entity.getRDFId());
-
- for(ModifierSpeciesReference modifier : pathwayComponent.getListOfModifiers())
- {
- Species species = (Species) getSBaseFromSBMLId(modifier.getSpecies());
- if(sbmlModel.getSpecies(species.getId()) == null)
- {
- sbmlModel.addSpecies(species.clone());
- Compartment compartment = (Compartment) getSBaseFromSBMLId(species.getCompartment());
- if(sbmlModel.getCompartment(compartment.getId()) == null)
- {
- sbmlModel.addCompartment(compartment);
- }
- }
-
- }
- for(SpeciesReference reactant : pathwayComponent.getListOfReactants())
- {
- Species species = (Species) getSBaseFromSBMLId(reactant.getSpecies());
- if(sbmlModel.getSpecies(species.getId()) == null)
- {
- sbmlModel.addSpecies(species.clone());
- Compartment compartment = (Compartment) getSBaseFromSBMLId(species.getCompartment());
- if(sbmlModel.getCompartment(compartment.getId()) == null)
- {
- sbmlModel.addCompartment(compartment);
- }
- }
- }
- for(SpeciesReference product : pathwayComponent.getListOfProducts())
- {
- Species species = (Species) getSBaseFromSBMLId(product.getSpecies());
- if(sbmlModel.getSpecies(species.getId()) == null)
- {
- sbmlModel.addSpecies(species.clone());
- Compartment compartment = (Compartment) getSBaseFromSBMLId(species.getCompartment());
- if(sbmlModel.getCompartment(compartment.getId()) == null)
- {
- sbmlModel.addCompartment(compartment);
- }
- }
- }
- sbmlModel.addReaction(pathwayComponent.clone());
+ addSpecies(reactant.getSpecies(), sbmlModel);
}
- else
+ for(SpeciesReference product : pathwayComponent.getListOfProducts())
{
- throw new ConversionException("Unable to locate entity: " + entity.getRDFId() + " from the provided biopax file");
+ addSpecies(product.getSpecies(), sbmlModel);
}
+ addReaction(pathwayComponent.getId(), sbmlModel);
}
- else if(entity instanceof Pathway)
+ else
{
- //TODO: how to handle this?
+ throw new ConversionException("Unable to locate entity: " + entity.getRDFId() + " from the provided biopax file");
}
}
+ else if(entity instanceof Pathway)
+ {
+ //TODO: how to handle this?
+ }
}
private void parsePathwayStep(Set<PathwayStep> pathwayStepList, org.sbml.jsbml.Model sbmlModel) throws ConversionException
{
for(PathwayStep pathwayStep : pathwayStepList)
{
+ if(pathwayStep instanceof BiochemicalPathwayStep)
+ {
+ BiochemicalPathwayStep biochemPathwayStep = (BiochemicalPathwayStep) pathwayStep;
+ if(biochemPathwayStep.getStepConversion() != null )
+ {
+ parsePathwayComponent(biochemPathwayStep.getStepConversion(), sbmlModel);
+ }
+ }
if(pathwayStep.getStepProcess() != null && pathwayStep.getStepProcess().size() > 0)
{
- parsePathwayComponent(pathwayStep.getStepProcess(), sbmlModel);
+ parsePathwayComponents(pathwayStep.getStepProcess(), sbmlModel);
}
if(pathwayStep.getNextStep() != null && pathwayStep.getNextStep().size() > 0)
@@ -838,7 +879,19 @@
private Species parseEntity(Entity entity)
{
Species sbmlSpecies = createSpecies(entity);
-
+ if(entity instanceof Complex)
+ {
+ Complex complex = (Complex) entity;
+ if(complex.getComponent().size() > 0)
+ {
+ //TODO
+ complex.getComponentStoichiometry(); //stoichiometry for reactants
+ //complex; //product of complexAssembly reaction
+ //complexAssembly sbo term becomes this new reaction complex Assembly SBO term
+ //complex.getComponent() becomes reatants of this complex Assembly
+ }
+ }
+
//Add SBO terms to species
if (entity instanceof PhysicalEntity)
{
@@ -1324,7 +1377,8 @@
}
setInteraction_SBO(entity, reaction);
-
+ sbmlId2biopaxId.put(reaction.getId(), entity.getRDFId());
+ mappedEntities.put(entity.getRDFId(), reaction);
}
private void parseTemplateReaction(TemplateReaction templateReaction, Reaction reaction) throws ConversionException
@@ -1436,9 +1490,20 @@
reaction.setFast(false);
}
- if( conversion.getConversionDirection() != null && (conversion.getConversionDirection().equals(ConversionDirectionType.LEFT_TO_RIGHT) ||
- conversion.getConversionDirection().equals(ConversionDirectionType.REVERSIBLE)))
+ if( conversion.getConversionDirection() != null && (conversion.getConversionDirection().equals(ConversionDirectionType.LEFT_TO_RIGHT)))
{
+ reaction.setReversible(false);
+
+ //Parse for reactant/substrate
+ ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
+ reaction.setListOfReactants(reactants);
+
+ //Parse for product
+ ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
+ reaction.setListOfProducts(products);
+ }
+ else if(conversion.getConversionDirection() != null && conversion.getConversionDirection().equals(ConversionDirectionType.REVERSIBLE))
+ {
reaction.setReversible(true);
//Parse for reactant/substrate
@@ -1477,6 +1542,9 @@
}
setConversion_SBO(conversion, reaction);
+
+ sbmlId2biopaxId.put(reaction.getId(), conversion.getRDFId());
+ mappedEntities.put(conversion.getRDFId(), reaction);
}
private void parseControlInteraction(Control control) throws ConversionException
@@ -1545,60 +1613,61 @@
* Split the Reversible reaction for this interaction into two irreversible reactions
* and the Catalyst would appear as a Modifier in only the reaction that matches the CatalysisDirection."
*/
- if(controlled.getConversionDirection() == ConversionDirectionType.LEFT_TO_RIGHT &&
- catalysis.getCatalysisDirection() != CatalysisDirectionType.LEFT_TO_RIGHT)
- {
- //TODO:
- String reaction_prefixId = controlledReaction.getId();
- List<SBase> splitReactions = new ArrayList<SBase>();
-
- Reaction forwardReaction = controlledReaction.clone();
- forwardReaction.setId(reaction_prefixId + "_forwardReaction");
- forwardReaction.setReversible(false);
- splitReactions.add(forwardReaction);
-
- Reaction reverseReaction = controlledReaction.clone();
- reverseReaction.setId(reaction_prefixId + "_reverseReaction");
- reverseReaction.setReversible(false);
- reverseReaction.addModifier(modifierSpecies);
- splitReactions.add(reverseReaction);
-
- mappedSplitReactions.put(catalysis.getRDFId(), splitReactions);
-
- ListOf<SpeciesReference> reactants = controlledReaction.getListOfProducts();
- ListOf<SpeciesReference> products = controlledReaction.getListOfReactants();
-
- for(int index = 0; index < controlledReaction.getNumReactants(); index++)
- {
- controlledReaction.removeReactant(index);
- }
- for(int index = 0; index < controlledReaction.getNumProducts(); index++)
- {
- controlledReaction.removeProduct(index);
- }
-
- for(SpeciesReference r : reactants)
- {
- controlledReaction.addReactant(r);
- }
- for(SpeciesReference p : products)
- {
- controlledReaction.addProduct(p);
- }
- }
- else if(controlled.getConversionDirection() == ConversionDirectionType.RIGHT_TO_LEFT &&
- catalysis.getCatalysisDirection() != CatalysisDirectionType.RIGHT_TO_LEFT)
- {
- //TODO:
- }
- else if(controlled.getConversionDirection() == ConversionDirectionType.REVERSIBLE &&
- catalysis.getCatalysisDirection() == CatalysisDirectionType.RIGHT_TO_LEFT)
- {
- //TODO:
- }
+// if(controlled.getConversionDirection() == ConversionDirectionType.LEFT_TO_RIGHT &&
+// catalysis.getCatalysisDirection() != CatalysisDirectionType.LEFT_TO_RIGHT)
+// {
+// //TODO:
+// String reaction_prefixId = controlledReaction.getId();
+// List<SBase> splitReactions = new ArrayList<SBase>();
+//
+// Reaction forwardReaction = controlledReaction.clone();
+// forwardReaction.setId(reaction_prefixId + "_forwardReaction");
+// forwardReaction.setReversible(false);
+// splitReactions.add(forwardReaction);
+//
+// Reaction reverseReaction = controlledReaction.clone();
+// reverseReaction.setId(reaction_prefixId + "_reverseReaction");
+// reverseReaction.setReversible(false);
+// reverseReaction.addModifier(modifierSpecies);
+// splitReactions.add(reverseReaction);
+//
+// mappedSplitReactions.put(catalysis.getRDFId(), splitReactions);
+//
+// ListOf<SpeciesReference> reactants = controlledReaction.getListOfProducts();
+// ListOf<SpeciesReference> products = controlledReaction.getListOfReactants();
+//
+// for(int index = 0; index < controlledReaction.getNumReactants(); index++)
+// {
+// controlledReaction.removeReactant(index);
+// }
+// for(int index = 0; index < controlledReaction.getNumProducts(); index++)
+// {
+// controlledReaction.removeProduct(index);
+// }
+//
+// for(SpeciesReference r : reactants)
+// {
+// controlledReaction.addReactant(r);
+// }
+// for(SpeciesReference p : products)
+// {
+// controlledReaction.addProduct(p);
+// }
+// }
+// else if(controlled.getConversionDirection() == ConversionDirectionType.RIGHT_TO_LEFT &&
+// catalysis.getCatalysisDirection() != CatalysisDirectionType.RIGHT_TO_LEFT)
+// {
+// //TODO:
+// }
+// else if(controlled.getConversionDirection() == ConversionDirectionType.REVERSIBLE &&
+// catalysis.getCatalysisDirection() == CatalysisDirectionType.RIGHT_TO_LEFT)
+// {
+// //TODO:
+// }
}
catalysis.getCatalysisDirection(); //TODO: need to find real file cases on how this works
+
}
setControl_SBO(control, modifierSpecies);
@@ -1910,9 +1979,6 @@
parseEvidence(entity.getEvidence(), reaction);
}
- sbmlId2biopaxId.put(reaction.getId(), entity.getRDFId());
- mappedEntities.put(entity.getRDFId(), reaction);
-
return reaction;
}
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-01 06:39:50 UTC (rev 686)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-02 04:07:31 UTC (rev 687)
@@ -138,6 +138,11 @@
log.debug("Let's iterate over reactions and convert them one by one.");
parseReactions(sbmlModel.getListOfReactions(), sbmlModel, bpModel, pathway);
+ //TODO:
+ /*
+ * take the sbmlModel (which is the sbml toplevel model) and get all ModelDefinitions
+ * to parse all of their species and reactions.
+ */
// // The process above leaves some of the complexes empty. We need to fix this.
// sbml2BioPAXUtilities.fillComplexes(bpModel, sbmlModel);
//
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-01 06:39:50 UTC (rev 686)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-02 04:07:31 UTC (rev 687)
@@ -354,6 +354,7 @@
Control control = null;
//Check what type of control is this modifier
+ //TODO: modulation and templateReactionRegulation has no sbo terms.
String controlName = modifierSpeciesReference.getName();
if(controlName != null && !controlName.isEmpty())
{
@@ -400,7 +401,7 @@
case 639:
control.setControlType(ControlType.INHIBITION_ALLOSTERIC);
break;
- // case 20:
+ // case 20: //TODO: same SBO terms
// control.setControlType(ControlType.INHIBITION_OTHER);
// break;
case 640:
Modified: trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java 2016-08-01 06:39:50 UTC (rev 686)
+++ trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java 2016-08-02 04:07:31 UTC (rev 687)
@@ -276,6 +276,7 @@
// TODO Auto-generated catch block
e.printStackTrace();
}
+
return biopax2sbmlModel;
}
Modified: trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java 2016-08-01 06:39:50 UTC (rev 686)
+++ trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java 2016-08-02 04:07:31 UTC (rev 687)
@@ -26,6 +26,7 @@
import org.sbfc.converter.biopax2sbml.BioPAX2SBML;
import org.sbfc.converter.exceptions.ConversionException;
import org.sbfc.converter.exceptions.ReadModelException;
+import org.sbfc.converter.exceptions.WriteModelException;
import org.sbfc.converter.models.BioPAXModel;
import org.sbfc.converter.models.SBMLModel;
import org.sbml.jsbml.Compartment;
@@ -889,11 +890,30 @@
@Test
- public void testFile()
+ public void test_AKT_File()
{
String owlFile = InteractionTests.fileDirectory + "AKT_Signaling_Pathway.owl";
SBMLModel sbfcSBMLModel = InteractionTests.read_biopaxFile(owlFile);
// InteractionTests.printSBMLModel(sbfcSBMLModel);
}
+ @Test
+ public void test_INOH_File()
+ {
+ //contains pathwayOrder
+ String owlFile = InteractionTests.fileDirectory + "INOH_GPCR_signaling-pertussis_toxin-.owl";
+ SBMLModel sbfcSBMLModel = InteractionTests.read_biopaxFile(owlFile);
+ try
+ {
+ sbfcSBMLModel.modelToFile(InteractionTests.fileDirectory + "INOH_GPCR_signaling-pertussis_toxin-.xml");
+ }
+ catch (WriteModelException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+// InteractionTests.printSBMLModel(sbfcSBMLModel);
+ System.out.println("Conversion completed");
+ }
+
}
Added: trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml
===================================================================
--- trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml (rev 0)
+++ trunk/test/org/sbfc/test/resources/INOH_GPCR_signaling-pertussis_toxin-.xml 2016-08-02 04:07:31 UTC (rev 687)
@@ -0,0 +1,24627 @@
+<?xml version='1.0' encoding='utf-8' standalone='no'?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" comp:required="true" level="3" version="1" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:listOfModelDefinitions xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1">
+ <comp:modelDefinition id="id1345359130_Negative_regulation_of__G_alpha_i_GDP_GTP_exchange_signaling_" metaid="_222b4f69-c54f-4682-b169-501c9fa19f47"
+ name="Negative regulation of (G alpha i GDP-GTP exchange signaling) ( GPCR signaling (pertussis toxin) ) ">
+ <annotation>
+ <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ <Xref uri="MI0025356">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0025356MatID:MI0025356</comments>
+ </Xref>
+ <Xref uri="IEV_0000694">
+ <comments>Negative regulation of (G alpha i GDP-GTP exchange signaling)</comments>
+ </Xref>
+ <Xref uri="MI0025356">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0025356MatID:MI0025356</comments>
+ </Xref>
+ <Xref uri="MI0019649">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0019649MatID:MI0019649</comments>
+ </Xref>
+ <Xref uri="P103">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=P103</comments>
+ </Xref>
+ </biopax2sbml>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+ <rdf:Description rdf:about="#_222b4f69-c54f-4682-b169-501c9fa19f47">
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0025356" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="IEV_0000694" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0025356" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0019649" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="P103" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ <listOfCompartments>
+ <compartment constant="true" id="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" metaid="_1c21e592-ed53-443b-80f8-dec24c4a3e97" sboTerm="SBO:0000290">
+ <annotation>
+ <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ <Xref uri="ILC_0000007">
+ <comments>plasma membrane (extrinsic to internal side of plasma membrane)</comments>
+ </Xref>
+ </biopax2sbml>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+ <rdf:Description rdf:about="#_1c21e592-ed53-443b-80f8-dec24c4a3e97">
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.inoh.org/biopax/IC_NO_XREF" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="0031234" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="ILC_0000007" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ </compartment>
+ <compartment constant="true" id="plasma_membrane__integral_to_plasma_membrane_" metaid="_1a9fb09d-8307-4384-8bca-9c0bdd1b0105" sboTerm="SBO:0000290">
+ <annotation>
+ <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ <Xref uri="ILC_0000010">
+ <comments>plasma membrane (integral to plasma membrane)</comments>
+ </Xref>
+ </biopax2sbml>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+ <rdf:Description rdf:about="#_1a9fb09d-8307-4384-8bca-9c0bdd1b0105">
+ <bqbiol:isDescribedBy>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P63092" />
+ </rdf:Bag>
+ </bqbiol:isDescribedBy>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.inoh.org/biopax/IC_UniProt_P63092" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="ILC_0000010" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="0005887" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ </compartment>
+ </listOfCompartments>
+ <listOfSpecies>
+ <species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id830922164_RGS"
+ initialAmount="1" metaid="dfa0aae1-67f4-44d0-9d66-61d30c8a8a66" name="RGS" sboTerm="SBO:0000252">
+ <annotation>
+ <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ <Xref uri="IMR_0000431">
+ <comments>RGS</comments>
+ </Xref>
+ <Xref uri="M1659">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=M1659</comments>
+ </Xref>
+ <Xref uri="MI0025196">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0025196MatID:MI0025196</comments>
+ </Xref>
+ <Xref uri="MI0025196">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0025196MatID:MI0025196</comments>
+ </Xref>
+ <Xref uri="MI0012633">
+ <comments>MatID:MI0012633http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0012633</comments>
+ </Xref>
+ </biopax2sbml>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+ <rdf:Description rdf:about="#dfa0aae1-67f4-44d0-9d66-61d30c8a8a66">
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q8K443" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q9QZB1" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q9QZB0" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O75916" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O43566" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="0016299" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P57771" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q9JL25" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q9CQE5" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O76081" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P41220" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q9CX84" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q9Z2H1" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P97428" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49799" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q9Z2H2" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49758" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49795" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49796" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49797" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49798" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q9JHX0" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P56700" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P97492" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O43665" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O08899" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q99PG4" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O08773" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O08850" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49807" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q9DC04" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O08774" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q8BXT1" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="IMR_0000431" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49803" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49804" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49805" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49806" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49800" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49801" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P49802" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q9UGC6" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O94810" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="M1659" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0025196" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0025196" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O70521" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O08849" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O54829" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O54828" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P97844" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O14924" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O15539" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O14921" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q9NS28" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0012633" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/O15492" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/Q08116" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.inoh.org/biopax/IC_NO_XREF" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="plasma_membrane__integral_to_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id1167711338_G_alpha_i" initialAmount="1"
+ metaid="eac7eb42-3021-4a6c-9d07-83a632640fb0" name="G alpha i" sboTerm="SBO:0000252">
+ <annotation>
+ <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ <Xref uri="MI0025194">
+ <comments>MatID:MI0025194http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0025194</comments>
+ </Xref>
+ <Xref uri="MI0025194">
+ <comments>MatID:MI0025194http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0025194</comments>
+ </Xref>
+ <Xref uri="M1658">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=M1658</comments>
+ </Xref>
+ <Xref uri="MI0012631">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0012631MatID:MI0012631</comments>
+ </Xref>
+ <Xref uri="IMR_0000319">
+ <comments>G-alpha-i</comments>
+ </Xref>
+ </biopax2sbml>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+ <rdf:Description rdf:about="#eac7eb42-3021-4a6c-9d07-83a632640fb0">
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0025194" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P08752" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0025194" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P63096" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P04899" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="M1658" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P04897" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0012631" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="IMR_0000319" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:is>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P10824" />
+ </rdf:Bag>
+ </bqbiol:is>
+ <bqbiol:isDescribedBy>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/uniprot/P41776" />
+ </rdf:Bag>
+ </bqbiol:isDescribedBy>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.inoh.org/biopax/IC_UniProt_P41776" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id2142488298_GTP"
+ initialAmount="1" metaid="_2505c075-43fb-4498-adc2-9254e72ff973" name="GTP" sboTerm="SBO:0000247">
+ <annotation>
+ <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ <Xref uri="MI0021541">
+ <comments>MatID:MI0021541http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0021541</comments>
+ </Xref>
+ <Xref uri="MI0010956">
+ <comments>MatID:MI0010956http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0010956</comments>
+ </Xref>
+ <Xref uri="IMR_0001354">
+ <comments>GTP</comments>
+ </Xref>
+ <Xref uri="MI0021541">
+ <comments>MatID:MI0021541http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0021541</comments>
+ </Xref>
+ <Xref uri="M1657">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=M1657</comments>
+ </Xref>
+ </biopax2sbml>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+ <rdf:Description rdf:about="#_2505c075-43fb-4498-adc2-9254e72ff973">
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="C00044" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0021541" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0010956" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="IMR_0001354" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0021541" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="M1657" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.inoh.org/biopax/IC_NO_XREF" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ </species>
+ <species boundaryCondition="false" compartment="plasma_membrane__extrinsic_to_internal_side_of_plasma_membrane_" constant="false" hasOnlySubstanceUnits="true" id="id790431118_GDP"
+ initialAmount="1" metaid="f4703605-a8e7-4837-9419-3bfc09bf79d6" name="GDP" sboTerm="SBO:0000247">
+ <annotation>
+ <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ <Xref uri="M1660">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=M1660</comments>
+ </Xref>
+ <Xref uri="MI0021543">
+ <comments>MatID:MI0021543http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0021543</comments>
+ </Xref>
+ <Xref uri="MI0021543">
+ <comments>MatID:MI0021543http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0021543</comments>
+ </Xref>
+ <Xref uri="IMR_0001357">
+ <comments>GDP</comments>
+ </Xref>
+ <Xref uri="MI0010958">
+ <comments>MatID:MI0010958http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0010958</comments>
+ </Xref>
+ </biopax2sbml>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+ <rdf:Description rdf:about="#f4703605-a8e7-4837-9419-3bfc09bf79d6">
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="C00035" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="M1660" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0021543" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0021543" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="IMR_0001357" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0010958" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.inoh.org/biopax/IC_NO_XREF" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ </species>
+ </listOfSpecies>
+ <listOfReactions>
+ <reaction fast="false" id="id537126859_Hydrolysis" metaid="_6e937028-5315-470f-9155-5fa8d263707a" name="http://www.inoh.org/biopax/id537126859_Hydrolysis" reversible="false"
+ sboTerm="SBO:0000176">
+ <annotation>
+ <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ <Xref uri="Inhibit">
+ <comments>DisplayName: InhibitType:Generic, Evidence_Code:IC, Citation:PubMed:11604548from: id1603476109_Hydrolysis_of_GTP_by_G_alpha_i_GTP_and_RGS0 to:
+ id1865253301_GDP_GTP_exchange_of_G_alpha_i0GID:II0000056, LID:id2120186648</comments>
+ </Xref>
+ <Xref uri="MI0025183">
+ <comments>MatID:MI0025183http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0025183</comments>
+ </Xref>
+ <Xref uri="MI0025183">
+ <comments>MatID:MI0025183http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0025183</comments>
+ </Xref>
+ <Xref uri="IEV_0000698">
+ <comments>Hydrolysis of GTP by G alpha i-GTP and RGS in cytosol</comments>
+ </Xref>
+ <Xref uri="MI0019551">
+ <comments>MatID:MI0019551http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0019551</comments>
+ </Xref>
+ <Xref uri="Inhibit">
+ <comments>from: id1865253301_GDP_GTP_exchange_of_G_alpha_i0 to: id1603476109_Hydrolysis_of_GTP_by_G_alpha_i_GTP_and_RGS0DisplayName: InhibitGID:II0000056,
+ LID:id2037539184Type:Generic, Evidence_Code:IC, Citation:PubMed:11604548</comments>
+ </Xref>
+ <Xref uri="I452">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=I452</comments>
+ </Xref>
+ <Xref uri="MI0001122">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0001122MatID:MI0001122</comments>
+ </Xref>
+ </biopax2sbml>
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+ <rdf:Description rdf:about="#_6e937028-5315-470f-9155-5fa8d263707a">
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="Inhibit" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0025183" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0025183" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="IEV_0000698" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0019551" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="Inhibit" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="I452" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="MI0001122" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ <bqbiol:isDescribedBy>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://identifiers.org/pubmed/8774883" />
+ </rdf:Bag>
+ </bqbiol:isDescribedBy>
+ <bqbiol:unknownQualifier>
+ <rdf:Bag>
+ <rdf:li rdf:resource="http://www.inoh.org/biopax/TAS_PubMed_8774883" />
+ </rdf:Bag>
+ </bqbiol:unknownQualifier>
+ </rdf:Description>
+ </rdf:RDF>
+ </annotation>
+ <listOfReactants>
+ <speciesReference constant="true" species="id2142488298_GTP" />
+ </listOfReactants>
+ <listOfProducts>
+ <speciesReference constant="true" species="id790431118_GDP" />
+ </listOfProducts>
+ <listOfModifiers>
+ <modifierSpeciesReference id="id1345090438_Control" metaid="_32bddd7e-d912-4714-9a42-65d213b41a6e" name="http://www.inoh.org/biopax/id1345090438_Control" sboTerm="SBO:0000596"
+ species="id830922164_RGS">
+ <annotation>
+ <biopax2sbml xmlns="http://sbfc.sf.net/biopax2sbml">
+ <Xref uri="MI0019565">
+ <comments>http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0019565MatID:MI0019565</comments>
+ </Xref>
+ <Xref uri="Inhibit">
+ <comments>DisplayName: InhibitType:Generic, Evidence_Code:IC, Citation:PubMed:11604548from: id1603476109_Hydrolysis_of_GTP_by_G_alpha_i_GTP_and_RGS0 to:
+ id1865253301_GDP_GTP_exchange_of_G_alpha_i0GID:II0000056, LID:id2120186648</comments>
+ </Xref>
+ <Xref uri="MI0025206">
+ <comments>MatID:MI0025206http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0025206</comments>
+ </Xref>
+ <Xref uri="MI0025206">
+ <comments>MatID:MI0025206http://www.inoh.org/inohviewer/inohclient.jnlp?id=MI0025206</comments>
+ </X...
[truncated message content] |
|
From: <tra...@us...> - 2016-08-01 06:39:52
|
Revision: 686
http://sourceforge.net/p/sbfc/code/686
Author: tramy-nguyen
Date: 2016-08-01 06:39:50 +0000 (Mon, 01 Aug 2016)
Log Message:
-----------
- generated new jsbml jar to use sbo terms for enthalpy change, entropy change, Gibbs free energy change, and equilibrium constant.
- modified parsing of templateReaction in BioPAX2SBML to reaction.setReversible() based on templateReactions.getTemplateReaction().
- Inserted reaction.setFast() from conversion.getSpontaneous() when parsing conversion interaction in BioPAX2SBML.
- Initiated implementation of converting Catalysis Interactions if the catalysisDirection conflicts with the catalysis controlled reactions conversionDirection
- implemented conversion of DeltaG, DeltaS, DeltaH, and KEQ for BiochemicalReaction and TransportWithBiochemicalReaction in BioPAX2SBML and SBML2BioPAX.
- Modified parsing of SBML modifiers to take in Modulation and TemplateReaction
- expanded createSpecies() in SBML2BioPAX to create Entities, PhysicalEntities, and SimplePhysicalEntities
- Expanded convertReaction() in SBML2BioPAX to convert TemplateReaction with its properties
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
trunk/test/org/sbfc/test/sbml2biopax/ReadingSBMLFileTests.java
Added Paths:
-----------
trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies.jar
Removed Paths:
-------------
trunk/lib/jsbml-1.2-SNAPSHOT-20160726-with-dependencies.jar
Deleted: trunk/lib/jsbml-1.2-SNAPSHOT-20160726-with-dependencies.jar
===================================================================
(Binary files differ)
Added: trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies.jar
===================================================================
(Binary files differ)
Index: trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies.jar
===================================================================
--- trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies.jar 2016-07-29 06:43:50 UTC (rev 685)
+++ trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies.jar 2016-08-01 06:39:50 UTC (rev 686)
Property changes on: trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-07-29 06:43:50 UTC (rev 685)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-08-01 06:39:50 UTC (rev 686)
@@ -77,6 +77,7 @@
import org.biopax.paxtools.model.level3.SimplePhysicalEntity;
import org.biopax.paxtools.model.level3.SmallMolecule;
import org.biopax.paxtools.model.level3.Stoichiometry;
+import org.biopax.paxtools.model.level3.TemplateDirectionType;
import org.biopax.paxtools.model.level3.TemplateReaction;
import org.biopax.paxtools.model.level3.Transport;
import org.biopax.paxtools.model.level3.TransportWithBiochemicalReaction;
@@ -150,10 +151,11 @@
private Map<String, String> biopaxId2sbmlId;
private Map<String, String> sbmlId2biopaxId;
- /**
- * map biopax entity RDFId to the sbml sbase object
- */
+ /** Map biopax entity RDFId to the sbml sbase object */
private Map<String, SBase> mappedEntities;
+
+ /** Map the biopax RDFId to the list of Reactions that were split (i.e. A catalysis direction that did not match its controlled interaction direction)*/
+ private Map<String, List<SBase>> mappedSplitReactions;
//Counter for creating new SBML id
private int globalSBMLId;
@@ -211,7 +213,8 @@
//Store the mapping between biopax enties rdfId to the sbml object created for the corresponding biopax entity
mappedEntities = new HashMap<String, SBase>();
-
+ mappedSplitReactions = new HashMap<String, List<SBase>>();
+
SBMLDocument sbmlDoc = new SBMLDocument(sbmlLevel, sbmlVer);
SBMLModel biopaxSBMLModel = new SBMLModel(sbmlDoc);
@@ -223,6 +226,7 @@
org.biopax.paxtools.model.Model bioModel = biopaxModelLv3.getModel();
biopaxPrefixID = bioModel.getXmlBase(); //The URL prefix for biopax RDFId
+ //Create sbml objects for all biopax entities found in the given biomodel
mappAllEntities(bioModel);
/*
@@ -233,6 +237,7 @@
* first before parsing other biopax entities.
*/
org.sbml.jsbml.Model sbmlModel = parsePathways(bioModel, sbmlDoc);
+
addSBMLHistory(sbmlModel, sbmlOrganization);
addSBMLNotes(sbmlModel, "This model has been automatically generated by BioPAX2SBML");
@@ -298,7 +303,6 @@
* This will ensure that species are created first from PhysicalEntities and any Entites that
* are not of type Interaction.
*/
-
Set<Conversion> listOfConversions = bioModel.getObjects(Conversion.class);
Set<Control> listOfControls = bioModel.getObjects(Control.class);
@@ -346,7 +350,7 @@
for(PhysicalEntity physicalEntity : bioModel.getObjects(PhysicalEntity.class))
{
Species species = (Species) mappedEntities.get(physicalEntity.getRDFId());
- //Keep track of how many times this species occur in the each submodel
+ //Keep track of how many times this species occur in each submodel
int count = 0;
for(Submodel modelDef : compModel.getListOfSubmodels())
{
@@ -369,9 +373,9 @@
{
/*
* Note:
- * This physicalEntity occured in one submodel.
+ * This physicalEntity occurred in one submodel.
* This indicates that it is a "floating" species in that one submodel.
- * Don't add this converted species to the top level sbml model
+ * Therefore, don't add this converted species to the top level sbml model
*/
continue;
}
@@ -424,7 +428,7 @@
* Note:
* This interactionEntity occurred in one submodel.
* This indicates that it is a "floating" reaction in that one submodel.
- * Don't add this converted reaction to the top level sbml model
+ * Therefore, don't add this converted reaction to the top level sbml model
*/
continue;
}
@@ -1306,7 +1310,7 @@
if (entity instanceof TemplateReaction)
{
parseTemplateReaction((TemplateReaction) entity, reaction);
- reaction.setReversible(false);
+
}
else if (entity instanceof MolecularInteraction)
{
@@ -1326,8 +1330,21 @@
private void parseTemplateReaction(TemplateReaction templateReaction, Reaction reaction) throws ConversionException
{
boolean hasModifier = false;
- boolean hasProduct = false;
-
+ boolean hasProduct = false; templateReaction.getTemplateDirection();
+
+ if(templateReaction.getTemplateDirection() == TemplateDirectionType.FORWARD)
+ {
+ reaction.setReversible(false);
+ }
+ else if (templateReaction.getTemplateDirection() == TemplateDirectionType.REVERSE)
+ {
+ reaction.setReversible(true);
+ }
+ else
+ {
+ reaction.setReversible(false);
+ }
+
if(templateReaction.getTemplate() != null)
{
ModifierSpeciesReference modifierSpeciesRef = createModifierSpeciesReference(templateReaction.getTemplate());
@@ -1410,7 +1427,14 @@
private void parseConversionInteraction(Conversion conversion) throws ConversionException
{
Reaction reaction = createReaction(conversion);
- reaction.setFast(conversion.getSpontaneous());
+ if(conversion.getSpontaneous() != null)
+ {
+ reaction.setFast(conversion.getSpontaneous());
+ }
+ else
+ {
+ reaction.setFast(false);
+ }
if( conversion.getConversionDirection() != null && (conversion.getConversionDirection().equals(ConversionDirectionType.LEFT_TO_RIGHT) ||
conversion.getConversionDirection().equals(ConversionDirectionType.REVERSIBLE)))
@@ -1512,10 +1536,55 @@
for(org.biopax.paxtools.model.level3.Process catalysisControlled : catalysis.getControlled())
{
Conversion controlled = (Conversion) catalysisControlled;
+
+ /*
+ * Note:
+ * Special case when the catalysisDirection and the controlledReaction is not the same, perform the following:
+ * Quoted from Chris Myers,
+ * "In this case, the Catalyst modifier should only be put in the forward reaction and not the reverse reaction.
+ * Split the Reversible reaction for this interaction into two irreversible reactions
+ * and the Catalyst would appear as a Modifier in only the reaction that matches the CatalysisDirection."
+ */
if(controlled.getConversionDirection() == ConversionDirectionType.LEFT_TO_RIGHT &&
catalysis.getCatalysisDirection() != CatalysisDirectionType.LEFT_TO_RIGHT)
{
- //TODO:
+ //TODO:
+ String reaction_prefixId = controlledReaction.getId();
+ List<SBase> splitReactions = new ArrayList<SBase>();
+
+ Reaction forwardReaction = controlledReaction.clone();
+ forwardReaction.setId(reaction_prefixId + "_forwardReaction");
+ forwardReaction.setReversible(false);
+ splitReactions.add(forwardReaction);
+
+ Reaction reverseReaction = controlledReaction.clone();
+ reverseReaction.setId(reaction_prefixId + "_reverseReaction");
+ reverseReaction.setReversible(false);
+ reverseReaction.addModifier(modifierSpecies);
+ splitReactions.add(reverseReaction);
+
+ mappedSplitReactions.put(catalysis.getRDFId(), splitReactions);
+
+ ListOf<SpeciesReference> reactants = controlledReaction.getListOfProducts();
+ ListOf<SpeciesReference> products = controlledReaction.getListOfReactants();
+
+ for(int index = 0; index < controlledReaction.getNumReactants(); index++)
+ {
+ controlledReaction.removeReactant(index);
+ }
+ for(int index = 0; index < controlledReaction.getNumProducts(); index++)
+ {
+ controlledReaction.removeProduct(index);
+ }
+
+ for(SpeciesReference r : reactants)
+ {
+ controlledReaction.addReactant(r);
+ }
+ for(SpeciesReference p : products)
+ {
+ controlledReaction.addProduct(p);
+ }
}
else if(controlled.getConversionDirection() == ConversionDirectionType.RIGHT_TO_LEFT &&
catalysis.getCatalysisDirection() != CatalysisDirectionType.RIGHT_TO_LEFT)
@@ -1529,7 +1598,7 @@
}
}
- catalysis.getCatalysisDirection();
+ catalysis.getCatalysisDirection(); //TODO: need to find real file cases on how this works
}
setControl_SBO(control, modifierSpecies);
@@ -1553,39 +1622,49 @@
private void parseBiochemicalReaction(BiochemicalReaction biochemReaction, Reaction controlledReaction)
{
KineticLaw kineticLaw = controlledReaction.createKineticLaw();
+ kineticLaw.setMath(new ASTNode(Double.NaN));
int count = 0;
for(DeltaG deltaG : biochemReaction.getDeltaG())
{
String prefix = getValidSBMLId(deltaG) + "_";
- addLocalParameter(prefix + "deltaGPrime0", kineticLaw, deltaG.getDeltaGPrime0());
- addLocalParameter(prefix + "deltaGIonicStrength", kineticLaw, deltaG.getIonicStrength());
- addLocalParameter(prefix + "deltaGPh", kineticLaw, deltaG.getPh());
- addLocalParameter(prefix + "deltaGPMg", kineticLaw, deltaG.getPMg());
- addLocalParameter(prefix + "deltaGTemperature", kineticLaw, deltaG.getTemperature());
+ addLocalParameter(prefix + "deltaGPrime0", kineticLaw, deltaG.getDeltaGPrime0(), SBO.getGibbsFreeEnergyChange());
+ addLocalParameter(prefix + "deltaGIonicStrength", kineticLaw, deltaG.getIonicStrength(), SBO.getGibbsFreeEnergyChange());
+ addLocalParameter(prefix + "deltaGPh", kineticLaw, deltaG.getPh(), SBO.getGibbsFreeEnergyChange());
+ addLocalParameter(prefix + "deltaGPMg", kineticLaw, deltaG.getPMg(), SBO.getGibbsFreeEnergyChange());
+ addLocalParameter(prefix + "deltaGTemperature", kineticLaw, deltaG.getTemperature(), SBO.getGibbsFreeEnergyChange());
}
for(Float deltaH : biochemReaction.getDeltaH())
{
- addLocalParameter("deltaH_" + count++, kineticLaw, deltaH);
+ addLocalParameter("deltaH_" + count++, kineticLaw, deltaH, SBO.getEnthalpyChange());
}
for(Float deltaS : biochemReaction.getDeltaS())
{
- addLocalParameter("deltaS_" + count++, kineticLaw, deltaS);
+ addLocalParameter("deltaS_" + count++, kineticLaw, deltaS, SBO.getEntropyChange());
}
for(KPrime kprime : biochemReaction.getKEQ())
{
String prefix = getValidSBMLId(kprime) + "_";
- addLocalParameter(prefix + "KPrime", kineticLaw, kprime.getKPrime());
- addLocalParameter(prefix + "KPrimeIonicStrength", kineticLaw, kprime.getIonicStrength());
- addLocalParameter(prefix + "KPrimePh", kineticLaw, kprime.getPh());
- addLocalParameter(prefix + "KPrimeMg", kineticLaw, kprime.getPMg());
- addLocalParameter(prefix + "KPrimeTemperature", kineticLaw, kprime.getTemperature());
+ addLocalParameter(prefix + "KPrime", kineticLaw, kprime.getKPrime(), SBO.getEquilibriumConstant());
+ addLocalParameter(prefix + "KPrimeIonicStrength", kineticLaw, kprime.getIonicStrength(), SBO.getEquilibriumConstant());
+ addLocalParameter(prefix + "KPrimePh", kineticLaw, kprime.getPh(), SBO.getEquilibriumConstant());
+ addLocalParameter(prefix + "KPrimeMg", kineticLaw, kprime.getPMg(), SBO.getEquilibriumConstant());
+ addLocalParameter(prefix + "KPrimeTemperature", kineticLaw, kprime.getTemperature(), SBO.getEquilibriumConstant());
}
}
- private LocalParameter addLocalParameter(String id, KineticLaw kineticLaw, double value)
+ /**
+ * Creates a LocalParameter to attach to a KineticLaw
+ *
+ * @param id - The id of the LocalParameter
+ * @param kineticLaw - The KineticLaw that the LocalParameter will be added on
+ * @param value - The value to set the LocalParameter to
+ * @param SBOvalue - The SBO value the LocalParameter should be set to
+ * @return
+ */
+ private LocalParameter addLocalParameter(String id, KineticLaw kineticLaw, double value, int SBOvalue)
{
LocalParameter localParam = kineticLaw.createLocalParameter(id);
- localParam.setSBOTerm("SBO:xxxxxxx"); //TODO: TBD
+ localParam.setSBOTerm(SBOvalue);
localParam.setValue(value);
return localParam;
}
@@ -1778,7 +1857,6 @@
if(isValidStoichiometry(stoichiometry.getStoichiometricCoefficient()))
{
speciesReference.setStoichiometry(stoichiometry.getStoichiometricCoefficient());
-
}
speciesReference.setId(getValidSBMLId(stoichiometry));
String speciesRefName = getValidSBMLName(stoichiometry);
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-07-29 06:43:50 UTC (rev 685)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-08-01 06:39:50 UTC (rev 686)
@@ -3,9 +3,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.biopax.paxtools.impl.level3.StoichiometryImpl;
import org.biopax.paxtools.model.Model;
+import org.biopax.paxtools.model.level3.Catalysis;
import org.biopax.paxtools.model.level3.Complex;
import org.biopax.paxtools.model.level3.Control;
+import org.biopax.paxtools.model.level3.ControlType;
import org.biopax.paxtools.model.level3.Controller;
import org.biopax.paxtools.model.level3.Conversion;
import org.biopax.paxtools.model.level3.Dna;
@@ -15,13 +18,18 @@
import org.biopax.paxtools.model.level3.GeneticInteraction;
import org.biopax.paxtools.model.level3.Interaction;
import org.biopax.paxtools.model.level3.MolecularInteraction;
+import org.biopax.paxtools.model.level3.NucleicAcid;
import org.biopax.paxtools.model.level3.Pathway;
import org.biopax.paxtools.model.level3.PhysicalEntity;
import org.biopax.paxtools.model.level3.Protein;
import org.biopax.paxtools.model.level3.Rna;
import org.biopax.paxtools.model.level3.RnaRegion;
+import org.biopax.paxtools.model.level3.SimplePhysicalEntity;
import org.biopax.paxtools.model.level3.SmallMolecule;
+import org.biopax.paxtools.model.level3.Stoichiometry;
+import org.biopax.paxtools.model.level3.TemplateDirectionType;
import org.biopax.paxtools.model.level3.TemplateReaction;
+import org.biopax.paxtools.model.level3.UnificationXref;
import org.sbml.jsbml.ListOf;
import org.sbml.jsbml.ModifierSpeciesReference;
import org.sbml.jsbml.Reaction;
@@ -157,7 +165,7 @@
log.trace("Working on reaction conversion: " + reaction.getName());
Interaction interaction = sbml2BioPAXUtilities.convertReaction(bpModel, reaction);
pathway.addPathwayComponent(interaction);
-
+
// Modifiers -> Control reactions [start]
log.trace(
"- There are " + reaction.getNumModifiers() + " modifiers to this reaction. " +
@@ -168,13 +176,14 @@
// Reactants -> Left Participants [start]
log.trace("- There are " + reaction.getNumReactants() + " reactants to this reaction. " +
"Adding them to the reaction as left participants.");
- parseSpeciesReference(sbmlModel, reaction.getListOfReactants(), bpModel, interaction, false);
+
+ parseSpeciesReference(sbmlModel, reaction.getListOfReactants(), bpModel, interaction, reaction);
// Reactants -> Left Participants [end]
// Products -> Right Participants [start]
log.trace("- There are " + reaction.getNumProducts() + " products to this reaction. " +
"Adding them to the reaction as right participants.");
- parseSpeciesReference(sbmlModel, reaction.getListOfProducts(), bpModel, interaction, true);
+ parseSpeciesReference(sbmlModel, reaction.getListOfProducts(), bpModel, interaction, reaction);
// Products -> Right Participants [end]
}
// Reactions -> Conversions [end]
@@ -189,19 +198,36 @@
if(interaction instanceof GeneticInteraction)
{
Species species = sbmlModel.getSpecies(modifier.getSpecies());
- Gene gene = sbml2BioPAXUtilities.convertGeneFromSpecies(bpModel, species);
+ Gene gene = sbml2BioPAXUtilities.convertSpeciesToE(bpModel, Gene.class, UnificationXref.class, species);
interaction.addParticipant(gene);
}
else if(interaction instanceof TemplateReaction)
{
+ TemplateReaction templateReaction = (TemplateReaction) interaction;
Species species = sbmlModel.getSpecies(modifier.getSpecies());
- PhysicalEntity physicalEntity = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
- if(physicalEntity instanceof Dna || physicalEntity instanceof Rna || physicalEntity instanceof Protein)
+ Entity entity = (Entity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ if(entity instanceof Dna || entity instanceof DnaRegion
+ || entity instanceof Rna || entity instanceof RnaRegion)
{
- interaction.addParticipant(physicalEntity);
+ NucleicAcid templateEntity = (NucleicAcid) entity;
+ templateReaction.setTemplate(templateEntity);
}
}
- else {
+ else if(interaction instanceof Catalysis)
+ {
+ Catalysis catalysis = (Catalysis) interaction;
+ if(modifier.getSBOTerm() == SBO.getCatalyticActivator())
+ {
+ Species species = sbmlModel.getSpecies(modifier.getSpecies());
+ PhysicalEntity cofactorEntity = (PhysicalEntity) sbml2BioPAXUtilities.convertSpecies(bpModel, species);
+ catalysis.addCofactor(cofactorEntity);
+ }
+ else if(modifier.getSBOTerm() == SBO.getCatalyst())
+ {
+ catalysis.setControlType(ControlType.ACTIVATION);
+ }
+ }
+ else {//This could be Modulation, TemplateReactionRegulation, or any other Control Interaction
Control control = sbml2BioPAXUtilities.convertModifier(bpModel, modifier);
pathway.addPathwayComponent(control);
control.addControlled(interaction);
@@ -214,7 +240,7 @@
}
private void parseSpeciesReference(org.sbml.jsbml.Model sbmlModel, ListOf<SpeciesReference> listOfSpeciesReferences,
- Model bpModel, Interaction interaction, boolean isProduct)
+ Model bpModel, Interaction interaction, Reaction reaction)
{
// Reactants -> Left Participants [start]
@@ -223,15 +249,25 @@
Entity entity = sbml2BioPAXUtilities.convertSpecies(bpModel, species);
if(interaction instanceof Conversion){
Conversion conversion = (Conversion) interaction;
- if(isProduct)
+ if(reaction.getReversible())
{
- conversion.addRight((PhysicalEntity) entity);
- }
+ conversion.addLeft((PhysicalEntity) entity);
+ }
else
{
- conversion.addLeft((PhysicalEntity) entity);
+ conversion.addRight((PhysicalEntity) entity);
}
+ if(!Double.isNaN(speciesRef.getStoichiometry()))
+ {
+ Stoichiometry conversionStoich = new StoichiometryImpl();
+ conversionStoich.setStoichiometricCoefficient((float) speciesRef.getStoichiometry());
+ conversion.addParticipantStoichiometry(conversionStoich);
+ }
}
+ else if(interaction instanceof TemplateReaction)
+ {
+ ((TemplateReaction) interaction).addProduct((PhysicalEntity) entity);
+ }
else if(interaction instanceof GeneticInteraction || interaction instanceof MolecularInteraction){
interaction.addParticipant(entity);
}
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-07-29 06:43:50 UTC (rev 685)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-08-01 06:39:50 UTC (rev 686)
@@ -11,7 +11,9 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.biopax.paxtools.impl.level3.DeltaGImpl;
import org.biopax.paxtools.impl.level3.EntityReferenceImpl;
+import org.biopax.paxtools.impl.level3.KPrimeImpl;
import org.biopax.paxtools.model.BioPAXElement;
import org.biopax.paxtools.model.BioPAXFactory;
import org.biopax.paxtools.model.BioPAXLevel;
@@ -26,6 +28,7 @@
import org.biopax.paxtools.model.level3.Conversion;
import org.biopax.paxtools.model.level3.ConversionDirectionType;
import org.biopax.paxtools.model.level3.Degradation;
+import org.biopax.paxtools.model.level3.DeltaG;
import org.biopax.paxtools.model.level3.Dna;
import org.biopax.paxtools.model.level3.DnaReference;
import org.biopax.paxtools.model.level3.DnaRegion;
@@ -35,6 +38,8 @@
import org.biopax.paxtools.model.level3.Gene;
import org.biopax.paxtools.model.level3.GeneticInteraction;
import org.biopax.paxtools.model.level3.Interaction;
+import org.biopax.paxtools.model.level3.KPrime;
+import org.biopax.paxtools.model.level3.Modulation;
import org.biopax.paxtools.model.level3.MolecularInteraction;
import org.biopax.paxtools.model.level3.Named;
import org.biopax.paxtools.model.level3.Pathway;
@@ -50,7 +55,9 @@
import org.biopax.paxtools.model.level3.SimplePhysicalEntity;
import org.biopax.paxtools.model.level3.SmallMolecule;
import org.biopax.paxtools.model.level3.SmallMoleculeReference;
+import org.biopax.paxtools.model.level3.TemplateDirectionType;
import org.biopax.paxtools.model.level3.TemplateReaction;
+import org.biopax.paxtools.model.level3.TemplateReactionRegulation;
import org.biopax.paxtools.model.level3.Transport;
import org.biopax.paxtools.model.level3.TransportWithBiochemicalReaction;
import org.biopax.paxtools.model.level3.UnificationXref;
@@ -65,556 +72,719 @@
import org.sbml.jsbml.Annotation;
import org.sbml.jsbml.CVTerm;
import org.sbml.jsbml.Compartment;
+import org.sbml.jsbml.KineticLaw;
+import org.sbml.jsbml.LocalParameter;
import org.sbml.jsbml.ModifierSpeciesReference;
import org.sbml.jsbml.Reaction;
import org.sbml.jsbml.SBO;
import org.sbml.jsbml.Species;
+import org.sbml.jsbml.CVTerm.Qualifier;
public class SBML2BioPAXUtilities {
- private static Log log = LogFactory.getLog(SBML2BioPAXUtilities.class);
+ private static Log log = LogFactory.getLog(SBML2BioPAXUtilities.class);
- private BioPAXFactory bioPAXFactory = BioPAXLevel.L3.getDefaultFactory();
+ private BioPAXFactory bioPAXFactory = BioPAXLevel.L3.getDefaultFactory();
- public BioPAXFactory getBioPAXFactory() {
- return bioPAXFactory;
- }
+ public BioPAXFactory getBioPAXFactory() {
+ return bioPAXFactory;
+ }
- public void setBioPAXFactory(BioPAXFactory bioPAXFactory) {
- this.bioPAXFactory = bioPAXFactory;
- }
+ public void setBioPAXFactory(BioPAXFactory bioPAXFactory) {
+ this.bioPAXFactory = bioPAXFactory;
+ }
- private String XMLBase = "http://www.humanmetabolism.org/#";
+ private String XMLBase = "http://www.humanmetabolism.org/#";
- public String getXMLBase() {
- return XMLBase;
- }
+ public String getXMLBase() {
+ return XMLBase;
+ }
- public void setXMLBase(String XMLBase) {
- this.XMLBase = XMLBase;
- }
+ public void setXMLBase(String XMLBase) {
+ this.XMLBase = XMLBase;
+ }
- public String completeId(String partialId) {
- return getXMLBase() + partialId;
- }
+ public String completeId(String partialId) {
+ return getXMLBase() + partialId;
+ }
- /**
- * Convert an SBML model to a biopax pathway.
- *
- * @param bpModel - The biopax model to store the Pathway that was converted from the given SBML Model.
- * @param sbmlModel - The SBML Model to be converted to a BioPAX Interaction
- * @return
- */
- public Pathway convertPathway(Model bpModel, org.sbml.jsbml.Model sbmlModel) {
- Pathway pathway = createBPEfromSBMLE(bpModel, Pathway.class, sbmlModel);
- for (Xref xref : generateXrefsForSBase(bpModel, RelationshipXref.class, sbmlModel)) {
- pathway.addXref(xref);
- }
- return pathway;
- }
+ /**
+ * Convert an SBML model to a biopax pathway.
+ *
+ * @param bpModel - The biopax model to store the Pathway that was converted from the given SBML Model.
+ * @param sbmlModel - The SBML Model to be converted to a BioPAX Interaction
+ * @return
+ */
+ public Pathway convertPathway(Model bpModel, org.sbml.jsbml.Model sbmlModel) {
+ Pathway pathway = createBPEfromSBMLE(bpModel, Pathway.class, sbmlModel);
+ for (Xref xref : generateXrefsForSBase(bpModel, RelationshipXref.class, sbmlModel)) {
+ pathway.addXref(xref);
+ }
+ return pathway;
+ }
- public Model createModel() {
- Model model = bioPAXFactory.createModel();
- // This could change, would be great to make this configurable
- model.setXmlBase(getXMLBase());
- return model;
- }
+ public Model createModel() {
+ Model model = bioPAXFactory.createModel();
+ // This could change, would be great to make this configurable
+ model.setXmlBase(getXMLBase());
+ return model;
+ }
- /**
- * Convert a SBML reaction to a BioPAX interaction.
- *
- * @param bpModel - The BioPAX Model to store the Interaction that was converted from the given SBML Reaction.
- * @param reaction - The SBML Reaction to be converted to a BioPAX Interaction
- * @return The converted BioPAX Interaction
- */
- public Interaction convertReaction(Model bpModel, Reaction reaction) {
- Class<? extends Conversion> rxnClass = null;
-
- Class<? extends Interaction> reactionClass = null;
-
- boolean isConversionSet = false;
-
- // Extend this switch with further SBO terms as needed
- switch (reaction.getSBOTerm()) {
- case 589:
- reactionClass = TemplateReaction.class;
- break;
- case 343:
- reactionClass = GeneticInteraction.class;
- break;
- case 344:
- reactionClass = MolecularInteraction.class;
- break;
- case 231:
- reactionClass = Interaction.class;
- break;
- case 177: //Complex Assembly
- rxnClass = ComplexAssembly.class;
- isConversionSet = true;
- break;
- case 176: // Biochemical reaction
- rxnClass = BiochemicalReaction.class;
- isConversionSet = true;
- break;
- case 167: // Transport With Biochemical Reaction
- rxnClass = TransportWithBiochemicalReaction.class;
- isConversionSet = true;
- break;
- case 185: // Transport reaction
- rxnClass = Transport.class;
- isConversionSet = true;
- break;
- case 179: // Degradation
- rxnClass = Degradation.class;
- isConversionSet = true;
- break;
- case 182: // Conversion
- rxnClass = Conversion.class;
- isConversionSet = true;
- break;
- default:
- reactionClass = Interaction.class;
- break;
- }
+ /**
+ * Convert a SBML reaction to a BioPAX interaction.
+ *
+ * @param bpModel - The BioPAX Model to store the Interaction that was converted from the given SBML Reaction.
+ * @param reaction - The SBML Reaction to be converted to a BioPAX Interaction
+ * @return The converted BioPAX Interaction
+ */
+ public Interaction convertReaction(Model bpModel, Reaction reaction) {
+ Class<? extends Conversion> rxnClass = null;
- if(isConversionSet)
- {
- Conversion conversion = createBPEfromSBMLE(bpModel, rxnClass, reaction);
- conversion.setConversionDirection(
- reaction.getReversible()
- ? ConversionDirectionType.REVERSIBLE
- : ConversionDirectionType.LEFT_TO_RIGHT
- );
- return setXref(bpModel, reaction, conversion);
- }
+ Class<? extends Interaction> reactionClass = null;
- Interaction interaction = createBPEfromSBMLE(bpModel, reactionClass, reaction);
- return setXref(bpModel, reaction, interaction);
- }
+ boolean isConversionSet = false;
- /**
- * Set xref to the BioPAX Interaction in the BioPAX Model based on the SBML Reaction.
- *
- * @param bpModel - The BioPAX Model to set the xref information
- * @param reaction - The SBML reaction to retrieve xref information
- * @param interaction - The BioPAX Interaction to add the xref information to
- * @return The BioPAX Interaction that xref was added to
- */
- public Interaction setXref(Model bpModel, Reaction reaction, Interaction interaction)
- {
- for (Xref xref : generateXrefsForSBase(bpModel, RelationshipXref.class, reaction)) {
- interaction.addXref(xref);
- }
- return interaction;
- }
-
- /**
- * Provide the SBML SBase element with a given name
- *
- * @param namedSBase - The SBML SBase element to get the name
- * @param named - The biopax object to set entity name
- */
- public void setNames(AbstractNamedSBase namedSBase, Named named) {
- String name = namedSBase.getName();
- if(name == null || name.toLowerCase().equals("null")) {
- name = "N/A";
- }
- /*
- * TODO: modify standardName and once SBML files finds the location where this value is stored
- */
-// named.setStandardName(name);
- named.setDisplayName(name);
- named.getName().add(name);
- }
+ // Extend this switch with further SBO terms as needed
+ switch (reaction.getSBOTerm()) {
+ case 589:
+ reactionClass = TemplateReaction.class;
+ break;
+ case 343:
+ reactionClass = GeneticInteraction.class;
+ break;
+ case 344:
+ reactionClass = MolecularInteraction.class;
+ break;
+ case 231:
+ reactionClass = Interaction.class;
+ break;
+ case 177: //Complex Assembly
+ rxnClass = ComplexAssembly.class;
+ isConversionSet = true;
+ break;
+ case 176: // Biochemical reaction
+ rxnClass = BiochemicalReaction.class;
+ isConversionSet = true;
+ break;
+ case 167: // Transport With Biochemical Reaction
+ rxnClass = TransportWithBiochemicalReaction.class;
+ isConversionSet = true;
+ break;
+ case 185: // Transport reaction
+ rxnClass = Transport.class;
+ isConversionSet = true;
+ break;
+ case 179: // Degradation
+ rxnClass = Degradation.class;
+ isConversionSet = true;
+ break;
+ case 182: // Conversion
+ rxnClass = Conversion.class;
+ isConversionSet = true;
+ break;
+ default:
+ reactionClass = Interaction.class;
+ break;
+ }
- /**
- * Convert a SBML ModifierSpeciesReference to a BioPAX Control Interaction.
- *
- * @param bpModel - The BioPAX Model to store the Control Interaction that was converted from the given SBML ModifierSpeciesReference.
- * @param modifierSpeciesReference - The SBML ModifierSpeciesReference to be converted to a BioPAX Control Interaction
- * @return The converted BioPAX Control Interaction
- */
- public Control convertModifier(Model bpModel, ModifierSpeciesReference modifierSpeciesReference) {
- // Interesting enough, these reference objects don't have an ID associated with them
- // That is why we are using hashcodes to generate unique BioPAX ID.
- String id = completeId("control_" + modifierSpeciesReference.getId());
- Control control = createBPEfromSBMLE(bpModel, Control.class, modifierSpeciesReference, id);
-
- //TODO: add terms for Inhibition irreversible, Inhibition allosteric
- switch (modifierSpeciesReference.getSBOTerm()) {
- case 21:
- control.setControlType(ControlType.ACTIVATION);
- break;
- case 636:
- control.setControlType(ControlType.ACTIVATION_ALLOSTERIC);
- break;
- case 637:
- control.setControlType(ControlType.ACTIVATION_NONALLOSTERIC);
- break;
- case 20:
- control.setControlType(ControlType.INHIBITION);
- break;
- case 207:
- control.setControlType(ControlType.INHIBITION_NONCOMPETITIVE);
- break;
- case 206:
- control.setControlType(ControlType.INHIBITION_COMPETITIVE);
- break;
- case 638:
- control.setControlType(ControlType.INHIBITION_IRREVERSIBLE);
- break;
- case 639:
- control.setControlType(ControlType.INHIBITION_ALLOSTERIC);
- break;
-// case 20:
-// control.setControlType(ControlType.INHIBITION_OTHER);
-// break;
- case 640:
- control.setControlType(ControlType.INHIBITION_UNCOMPETITIVE);
- break;
- default:
- control.setControlType(ControlType.ACTIVATION);
- break;
- }
-
- return control;
- }
+ if(isConversionSet)
+ {
+ Conversion conversion = createBPEfromSBMLE(bpModel, rxnClass, reaction);
+ conversion.setConversionDirection(
+ reaction.getReversible()
+ ? ConversionDirectionType.REVERSIBLE
+ : ConversionDirectionType.RIGHT_TO_LEFT
+ );
- public <T extends SimplePhysicalEntity, S extends EntityReference> T convertSpeciesToSPE(Model bpModel, Class<T> entityClass, Class<S> refClass, Species species) {
- Set<Xref> xrefs = generateXrefsForSBase(bpModel, UnificationXref.class, species);
- HashSet<XReferrable> ers = new HashSet<XReferrable>();
- for (Xref xref : xrefs) {
- for (XReferrable xReferrable : xref.getXrefOf()) {
- // Only add the entity references
- if(xReferrable instanceof EntityReference) {
- ers.add(xReferrable);
- }
- }
- }
+ conversion.setSpontaneous(reaction.getFast() ? true : false);
- S reference;
- if(ers.isEmpty()) {
- reference = createBPEfromSBMLE(bpModel, refClass, species, completeId("ref_" + species.getId()));
- for (Xref xref : xrefs) {
- reference.addXref(xref);
- }
- } else if(ers.size() == 1) { // There shouldn't be more than one
- reference = (S) ers.iterator().next();
- } else {
- log.warn(
- "There are more than one EntityReferences that match with the same unification xref for species: "
- + species.getName()
- + ". Picking the first one: "
- + ers.iterator().next().getRDFId()
- );
+ if(rxnClass.equals(TransportWithBiochemicalReaction.class) || rxnClass.equals(BiochemicalReaction.class))
+ {
+ BiochemicalReaction biochemicalReaction = (BiochemicalReaction) conversion;
+ parseKineticLaw(reaction, biochemicalReaction);
+ }
- reference = (S) ers.iterator().next();
- }
+ return setXref(bpModel, reaction, conversion);
+ }
+ if(reactionClass.equals(TemplateReaction.class))
+ {
+ TemplateReaction templateReaction = (TemplateReaction) createBPEfromSBMLE(bpModel, reactionClass, reaction);
+ templateReaction.setTemplateDirection(
+ reaction.getReversible()
+ ? TemplateDirectionType.FORWARD
+ : TemplateDirectionType.REVERSE
+ );
+ return setXref(bpModel, reaction, templateReaction);
+ }
+ Interaction interaction = createBPEfromSBMLE(bpModel, reactionClass, reaction);
+ return setXref(bpModel, reaction, interaction);
+ }
- T entity = createBPEfromSBMLE(bpModel, entityClass, species);
- entity.setEntityReference(reference);
+ private void parseKineticLaw(Reaction reaction, BiochemicalReaction biochemicalReaction)
+ {
+ KineticLaw reactionKL = reaction.getKineticLaw();
+ if(reactionKL != null)
+ {
+ for(LocalParameter localParam : reactionKL.getListOfLocalParameters())
+ {
+ String localParamId = localParam.getId();
- // Clean-up non-used xrefs
- for (Xref xref : xrefs) {
- if(xref.getXrefOf().isEmpty()) {
- bpModel.remove(xref);
- }
- }
+ if(localParam.getSBOTerm() == SBO.getGibbsFreeEnergyChange())
+ {
+ //Create deltaG
+ DeltaG deltaG = new DeltaGImpl();
- return entity;
- }
+ //TODO: how to set rdfId for deltaG?
+ String suffix = "";
+ int index = localParamId.length() - 1;
+ while(localParamId.charAt(index) != '_')
+ {
+ suffix = localParamId.charAt(index--) + suffix ;
+ }
+ String rdfId = localParamId.substring(0, index);
- private <T extends Xref> T resourceToXref(Class<T> xrefClass, String xrefId, String resource) {
- // using the miriam common library to get the id and database String regardless of the form of the URI.
-
- T xref = bioPAXFactory.create(xrefClass, xrefId);
- String idToken = RegistryUtilities.getElementPart(resource);
- String dataBase = RegistryUtilities.getDataPart(resource);
- DataType datatype = RegistryUtilities.getDataType(dataBase);
-
- if (datatype != null) {
- dataBase = datatype.getName();
- } else {
- log.warn("Cannnot get Datatype for: " + resource);
- }
- xref.setDb(dataBase);
- xref.setId(idToken);
+ if(localParamId.endsWith("_deltaGPrime0"))
+ {
+ deltaG.setDeltaGPrime0((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_deltaGIonicStrength"))
+ {
+ deltaG.setIonicStrength((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_deltaGPh"))
+ {
+ deltaG.setPh((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_deltaGPMg"))
+ {
+ deltaG.setPMg((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_deltaGTemperature"))
+ {
+ deltaG.setTemperature((float) localParam.getValue());
+ }
+ biochemicalReaction.addDeltaG(deltaG);
+ }
+ else if(localParam.getSBOTerm() == SBO.getEnthalpyChange())
+ {
+ //deltaH
+ biochemicalReaction.addDeltaH((float) localParam.getValue());
+ }
+ else if(localParam.getSBOTerm() == SBO.getEntropyChange())
+ {
+ //deltaS
+ biochemicalReaction.addDeltaS((float) localParam.getValue());
+ }
+ else if(localParam.getSBOTerm() == SBO.getEquilibriumConstant())
+ {
+ //KEQ
+ KPrime kprime = new KPrimeImpl();
+ if(localParamId.endsWith("_KPrime"))
+ {
+ kprime.setKPrime((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_KPrimeIonicStrength"))
+ {
+ kprime.setIonicStrength((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_KPrimePh"))
+ {
+ kprime.setPh((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_KPrimeMg"))
+ {
+ kprime.setPMg((float) localParam.getValue());
+ }
+ else if(localParamId.endsWith("_KPrimeTemperature"))
+ {
+ kprime.setTemperature((float) localParam.getValue());
+ }
+ }
+ }
+ }
+ }
- return xref;
- }
+ /**
+ * Set xref to the BioPAX Interaction in the BioPAX Model based on the SBML Reaction.
+ *
+ * @param bpModel - The BioPAX Model to set the xref information
+ * @param reaction - The SBML reaction to retrieve xref information
+ * @param interaction - The BioPAX Interaction to add the xref information to
+ * @return The BioPAX Interaction that xref was added to
+ */
+ public Interaction setXref(Model bpModel, Reaction reaction, Interaction interaction)
+ {
+ for (Xref xref : generateXrefsForSBase(bpModel, RelationshipXref.class, reaction)) {
+ interaction.addXref(xref);
+ }
+ return interaction;
+ }
- public <T extends Named> T createBPEfromSBMLE(Model bpModel, Class<T> aClass, AbstractNamedSBase abstractNamedSBase) {
- return createBPEfromSBMLE(bpModel, aClass, abstractNamedSBase, completeId(abstractNamedSBase.getId()));
- }
+ /**
+ * Provide the SBML SBase element with a given name
+ *
+ * @param namedSBase - The SBML SBase element to get the name
+ * @param named - The biopax object to set entity name
+ */
+ public void setNames(AbstractNamedSBase namedSBase, Named named) {
+ String name = namedSBase.getName();
+ if(name == null || name.isEmpty()) {
+ name = "N/A";
+ }
+ /*
+ * TODO: TBD - modify standardName
+ */
+ // named.setStandardName(name);
+ named.setDisplayName(name);
+ named.getName().add(name);
+ }
+ /**
+ * Convert a SBML ModifierSpeciesReference to a BioPAX Control Interaction.
+ *
+ * @param bpModel - The BioPAX Model to store the Control Interaction that was converted from the given SBML ModifierSpeciesReference.
+ * @param modifierSpeciesReference - The SBML ModifierSpeciesReference to be converted to a BioPAX Control Interaction
+ * @return The converted BioPAX Control Interaction
+ */
+ public Control convertModifier(Model bpModel, ModifierSpeciesReference modifierSpeciesReference) {
+ // Interesting enough, these reference objects don't have an ID associated with them
+ // That is why we are using hashcodes to generate unique BioPAX ID.
+ String id = completeId(modifierSpeciesReference.getId());
+
+ Control control = null;
+
+ //Check what type of control is this modifier
+ String controlName = modifierSpeciesReference.getName();
+ if(controlName != null && !controlName.isEmpty())
+ {
+ if(controlName.contains("Modulation"))
+ {
+ control = createBPEfromSBMLE(bpModel, Modulation.class, modifierSpeciesReference, id);
+ }
+ else if(controlName.contains("TemplateReactionRegulation"))
+ {
+ control = createBPEfromSBMLE(bpModel, TemplateReactionRegulation.class, modifierSpeciesReference, id);
+ }
+ else
+ {
+ control = createBPEfromSBMLE(bpModel, Control.class, modifierSpeciesReference, id);
+ }
+ }
+ else
+ {
+ control = createBPEfromSBMLE(bpModel, Control.class, modifierSpeciesReference, id);
+ }
+
+ switch (modifierSpeciesReference.getSBOTerm()) {
+ case 21:
+ control.setControlType(ControlType.ACTIVATION);
+ break;
+ case 636:
+ control.setControlType(ControlType.ACTIVATION_ALLOSTERIC);
+ break;
+ case 637:
+ control.setControlType(ControlType.ACTIVATION_NONALLOSTERIC);
+ break;
+ case 20:
+ control.setControlType(ControlType.INHIBITION);
+ break;
+ case 207:
+ control.setControlType(ControlType.INHIBITION_NONCOMPETITIVE);
+ break;
+ case 206:
+ control.setControlType(ControlType.INHIBITION_COMPETITIVE);
+ break;
+ case 638:
+ control.setControlType(ControlType.INHIBITION_IRREVERSIBLE);
+ break;
+ case 639:
+ control.setControlType(ControlType.INHIBITION_ALLOSTERIC);
+ break;
+ // case 20:
+ // control.setControlType(ControlType.INHIBITION_OTHER);
+ // break;
+ case 640:
+ control.setControlType(ControlType.INHIBITION_UNCOMPETITIVE);
+ break;
+ default:
+ control.setControlType(ControlType.ACTIVATION);
+ break;
+ }
- public <T extends Named> T createBPEfromSBMLE(Model bpModel, Class<T> aClass, AbstractNamedSBase abstractNamedSBase, String bpId) {
- T entity = (T) bpModel.getByID(bpId);
- if(entity == null) {
- entity = bioPAXFactory.create(aClass, bpId);
- setNames(abstractNamedSBase, entity);
- //TODO: future implementation for setting entity.comment(). Currently not supported in BioPAX2SBML
-// setComments(abstractNamedSBase, entity);
- bpModel.add(entity);
- }
+ return control;
+ }
- return entity;
- }
+ public <T extends SimplePhysicalEntity, S extends EntityReference> T convertSpeciesToSPE(Model bpModel, Class<T> entityClass, Class<S> refClass, Species species) {
+ Set<Xref> xrefs = generateXrefsForSBase(bpModel, UnificationXref.class, species);
+ HashSet<XReferrable> ers = new HashSet<XReferrable>();
+ for (Xref xref : xrefs) {
+ for (XReferrable xReferrable : xref.getXrefOf()) {
+ // Only add the entity references
+ if(xReferrable instanceof EntityReference) {
+ ers.add(xReferrable);
+ }
+ }
+ }
- private <T extends Named> void setComments(AbstractNamedSBase abstractNamedSBase, T entity) {
- try {
- // Strip out html tags
- entity.addComment(abstractNamedSBase.getNotesString().replaceAll("\\<[^>]*>",""));
- } catch (XMLStreamException e) {
- log.warn("Problem parsing the notes XML: " + e.getLocalizedMessage());
- }
- }
+ S reference;
+ if(ers.isEmpty()) {
+ reference = createBPEfromSBMLE(bpModel, refClass, species, completeId("ref_" + species.getId()));
+ for (Xref xref : xrefs) {
+ reference.addXref(xref);
+ }
+ } else if(ers.size() == 1) { // There shouldn't be more than one
+ reference = (S) ers.iterator().next();
+ } else {
+ log.warn(
+ "There are more than one EntityReferences that match with the same unification xref for species: "
+ + species.getName()
+ + ". Picking the first one: "
+ + ers.iterator().next().getRDFId()
+ );
- /**
- * Convert SBML Species to BioPAX Entity
- *
- * @param bpModel - The BioPAX Model to store the Entity that was converted from the given SBML Species.
- * @param species - The SBML Species to be converted to a BioPAX Physical Entities
- * @return The converted BioPAX Physical Entity
- */
- public Entity convertSpecies(Model bpModel, Species species) {
- PhysicalEntity physicalEntity = null;
- Entity entity = null;
- boolean isPhysicalEntity = true;
-
- switch (species.getSBOTerm()) {
- case 243: //Gene
- entity = convertGeneFromSpecies(bpModel, species);
- isPhysicalEntity = false;
- break;
- case 253: // Complex
- physicalEntity = createComplexFromSpecies(bpModel, species);
- break;
- case 252: // Protein
- physicalEntity = convertSpeciesToSPE(bpModel, Protein.class, ProteinReference.class, species);
- break;
- case 251: // DNA
- physicalEntity = convertSpeciesToSPE(bpModel, Dna.class, DnaReference.class, species);
- break;
- case 634: // DNA Region
- physicalEntity = convertSpeciesToSPE(bpModel, DnaRegion.class, DnaRegionReference.class, species);
- break;
- case 250: // RNA
- physicalEntity = convertSpeciesToSPE(bpModel, Rna.class, RnaReference.class, species);
- break;
- case 635: // RNA Region
- physicalEntity = convertSpeciesToSPE(bpModel, Rna.class, RnaReference.class, species);
- break;
- case 247: // Small Molecule
- physicalEntity = convertSpeciesToSPE(bpModel, SmallMolecule.class, SmallMoleculeReference.class, species);
- break;
- default: // Physical Entity TODO: how to default to physical entity?
- physicalEntity = convertSpeciesToSPE(bpModel, SimplePhysicalEntity.class, EntityReference.class, species);
- break;
- }
-
- if(!isPhysicalEntity){
- return entity;
- }
-
- CellularLocationVocabulary cellularLocationVocabulary = createCompartment(bpModel, species.getCompartmentInstance());
- physicalEntity.setCellularLocation(cellularLocationVocabulary);
-
-
- return physicalEntity;
- }
+ reference = (S) ers.iterator().next();
+ }
- /**
- * Convert SBML Compartment to BioPAX CellularLocationVocabulary
- *
- * @param bpModel - The BioPAX Model to store the CellularLocationVocabulary that was converted from the given SBML Compartments.
- * @param compartment - The SBML Compartment to be converted to a BioPAX CellularLocationVocabulary
- * @return The converted BioPAX CellularLocationVocabulary
- */
- public CellularLocationVocabulary createCompartment(Model bpModel, Compartment compartment) {
- String id = completeId(compartment.getId());
- CellularLocationVocabulary cellularLocationVocabulary = (CellularLocationVocabulary) bpModel.getByID(id);
- if(cellularLocationVocabulary == null) {
- cellularLocationVocabulary = bioPAXFactory.create(CellularLocationVocabulary.class, id);
- cellularLocationVocabulary.addTerm(compartment.getName());
- for (Xref xref : generateXrefsForSBase(bpModel, UnificationXref.class, compartment)) {
- cellularLocationVocabulary.addXref(xref);
- }
- bpModel.add(cellularLocationVocabulary);
- }
+ T entity = createBPEfromSBMLE(bpModel, entityClass, species);
+ entity.setEntityReference(reference);
- return cellularLocationVocabulary;
- }
+ // Clean-up non-used xrefs
+ for (Xref xref : xrefs) {
+ if(xref.getXrefOf().isEmpty()) {
+ bpModel.remove(xref);
+ }
+ }
- /**
- * Convert SBML Species to BioPAX Complex Physical Entity
- *
- * @param bpModel - The BioPAX Model to store the Complex Physical Entity that was converted from the given SBML Species.
- * @param species - The SBML Species to be converted to a BioPAX Complex Physical Entities
- * @return The converted BioPAX Complex Physical Entity
- */
- private Complex createComplexFromSpecies(Model bpModel, Species species) {
- Complex complex = createBPEfromSBMLE(bpModel, Complex.class, species);
- for (Xref xref : generateXrefsForSBase(bpModel, RelationshipXref.class, species)) {
- complex.addXref(xref);
- }
+ return entity;
+ }
- return complex;
- }
+ private <T extends Xref> T resourceToXref(Class<T> xrefClass, String xrefId, String resource) {
+ // using the miriam common library to get the id and database String regardless of the form of the URI.
- /**
- * Convert SBML Species to BioPAX Gene Physical Entity
- *
- * @param bpModel - The BioPAX Model to store the Gene that was converted from the given SBML Species.
- * @param species - The SBML Species to be converted to a BioPAX Gene Entity
- * @return The converted BioPAX Gene
- */
- public Gene convertGeneFromSpecies(Model bpModel, Species species) {
- Gene gene = createBPEfromSBMLE(bpModel, Gene.class, species);
- for (Xref xref : generateXrefsForSBase(bpModel, UnificationXref.class, species)) {
- gene.addXref(xref);
- }
+ T xref = bioPAXFactory.create(xrefClass, xrefId);
+ String idToken = RegistryUtilities.getElementPart(resource);
+ String dataBase = RegistryUtilities.getDataPart(resource);
+ DataType datatype = RegistryUtilities.getDataType(dataBase);
- return gene;
- }
-
- private <T extends Xref> Set<Xref> generateXrefsForSBase(Model bpModel, Class<T> xrefClass, AbstractSBase sBase) {
- Annotation annotation = sBase.getAnnotation();
- HashSet<Xref> xrefs = new HashSet<Xref>();
+ if (datatype != null) {
+ dataBase = datatype.getName();
+ } else {
+ log.warn("Cannnot get Datatype for: " + resource);
+ }
- for (CVTerm cvTerm : annotation.getListOfCVTerms()) {
- for (String resource : cvTerm.getResources()) {
- String xrefId = completeId(xrefClass.getSimpleName().toLowerCase() + "_" + cvTerm.hashCode());
- // Let's not replicate xrefs if possible
- Xref xref = (Xref) bpModel.getByID(xrefId);
- if(xref == null) {
- if(resource.toLowerCase().contains("pubmed")) {
- xref = resourceToXref(PublicationXref.class, xrefId, resource);
- } else {
- xref = resourceToXref(xrefClass, xrefId, resource);
- }
- bpModel.add(xref);
- }
- xrefs.add(xref);
- }
- }
+ xref.setDb(dataBase);
+ xref.setId(idToken);
- return xrefs;
- }
+ return xref;
+ }
- public void fillComplexes(Model bpModel, org.sbml.jsbml.Model sbmlModel) {
- HashMap<String, ProteinReference> xrefToProtein = new HashMap<String, ProteinReference>();
- // Now let's use xrefs to find the complex components
- // First, find the proteinrefs and map them with their xrefs
- for (ProteinReference proteinRef : bpModel.getObjects(ProteinReference.class)) {
- for (Xref xref : proteinRef.getXref()) {
- xrefToProtein.put(xref.toString(), proteinRef);
- }
- }
+ public <T extends Named> T createBPEfromSBMLE(Model bpModel, Class<T> aClass, AbstractNamedSBase abstractNamedSBase) {
+ return createBPEfromSBMLE(bpModel, aClass, abstractNamedSBase, completeId(abstractNamedSBase.getId()));
+ }
- // We have to work with a map not to create concurrency problems
- // This will hold all new entities
- HashMap<String, BioPAXElement> newBPEs = new HashMap<String, BioPAXElement>();
- // Now let's go to the complexes and see what xrefs they have
- Set<Complex> complexes = new HashSet<Complex>(bpModel.getObjects(Complex.class));
- for (Complex complex : complexes) {
- HashSet<String> names = new HashSet<String>(Arrays.asList(complex.getDisplayName().split(":")));
+ public <T extends Named> T createBPEfromSBMLE(Model bpModel, Class<T> aClass, AbstractNamedSBase abstractNamedSBase, String bpId) {
+ T entity = (T) bpModel.getByID(bpId);
+ if(entity == null) {
+ entity = bioPAXFactory.create(aClass, bpId);
+ setNames(abstractNamedSBase, entity);
+ //TODO: future implementation for setting entity.comment(). Currently not supported in BioPAX2SBML
+ // setComments(abstractNamedSBase, entity);
+ bpModel.add(entity);
+ }
- // Let's try to capture proteins from the model first
- HashSet<Protein> components = new HashSet<Protein>();
- for (Xref xref : complex.getXref()) {
- ProteinReference proteinRef = xrefToProtein.get(xref.toString());
- if(proteinRef != null) {
- String cProteinId = completeId(complex.getRDFId() + "_" + proteinRef.getRDFId());
- Protein protein = bioPAXFactory.create(Protein.class, cProteinId);
- protein.setDisplayName(proteinRef.getDisplayName());
- protein.setStandardName(proteinRef.getStandardName());
- protein.setEntityReference(proteinRef);
- if(!bpModel.containsID(protein.getRDFId())) {
- components.add(protein);
- bpModel.add(protein);
- }
- names.remove(protein.getDisplayName());
- }
- }
+ return entity;
+ }
- // These are the ones we were not able to capture from the model
- // Let's create proteins for them
- for (String name : names) {
- String nameBasedURI = completeId("protein_" + name);
- Protein protein = bioPAXFactory.create(Protein.class, nameBasedURI);
- protein.setDisplayName(name);
- protein.setStandardName(name);
- newBPEs.put(nameBasedURI, protein);
+ private <T extends Named> void setComments(AbstractNamedSBase abstractNamedSBase, T entity) {
+ try {
+ // Strip out html tags
+ entity.addComment(abstractNamedSBase.getNotesString().replaceAll("\\<[^>]*>",""));
+ } catch (XMLStreamException e) {
+ log.warn("Problem parsing the notes XML: " + e.getLocalizedMessage());
+ }
+ }
- String refId = completeId("ref_" + nameBasedURI);
- ProteinReference proteinReference = (ProteinReference) newBPEs.get(refId);
- if(proteinReference == null) {
- proteinReference = bioPAXFactory.create(ProteinReference.class, refId);
- proteinReference.setDisplayName(name);
- proteinReference.setStandardName(name);
- newBPEs.put(refId, proteinReference);
- }
+ /**
+ * Convert SBML Species to BioPAX Entity
+ *
+ * @param bpModel - The BioPAX Model to store the Entity that was converted from the given SBML Species.
+ * @param species - The SBML Species to be converted to a BioPAX Physical Entities
+ * @return The converted BioPAX Physical Entity
+ */
+ public Entity convertSpecies(Model bpModel, Species species) {
+ PhysicalEntity physicalEntity = null;
+ Entity entity = null;
+ boolean isPhysicalEntity = true;
- String xrefId = completeId("symbol_" + name);
- UnificationXref unificationXref = (UnificationXref) newBPEs.get(xrefId);
- if(unificationXref == null) {
- unificationXref = bioPAXFactory.create(UnificationXref.class, xrefId);
- unificationXref.setDb("HGNC Symbol");
- unificationXref.setId(name);
- newBPEs.put(xrefId, unificationXref);
- }
+ switch (species.getSBOTerm()) {
+ case 243: //Gene
+ entity = convertSpeciesToE(bpModel, Gene.class, UnificationXref.class, species);
+ isPhysicalEntity = false;
+ break;
+ case 253: // Complex
+ physicalEntity = convertSpeciesToPE(bpModel, Complex.class, UnificationXref.class, species);
+ break;
+ case 252: // Protein
+ physicalEntity = convertSpeciesToSPE(bpModel, Protein.class, ProteinReference.class, species);
+ break;
+ case 251: // DNA
+ physicalEntity = convertSpeciesToSPE(bpModel, Dna.class, DnaReference.class, species);
+ break;
+ case 634: // DNA Region
+ physicalEntity = convertSpeciesToSPE(bpModel, DnaRegion.class, DnaRegionReference.class, species);
+ break;
+ case 250: // RNA
+ physicalEntity = convertSpeciesToSPE(bpModel, Rna.class, RnaReference.class, species);
+ break;
+ case 635: // RNA Region
+ physicalEntity = convertSpeciesToSPE(bpModel, Rna.class, RnaReference.class, species);
+ break;
+ case 247: // Small Molecule
+ physicalEntity = convertSpeciesToSPE(bpModel, SmallMolecule.class, SmallMoleculeReference.class, species);
+ break;
+ default: // Physical Entity
+ physicalEntity = convertSpeciesToPE(bpModel, PhysicalEntity.class, UnificationXref.clas...
[truncated message content] |
|
From: <tra...@us...> - 2016-07-29 06:43:53
|
Revision: 685
http://sourceforge.net/p/sbfc/code/685
Author: tramy-nguyen
Date: 2016-07-29 06:43:50 +0000 (Fri, 29 Jul 2016)
Log Message:
-----------
- implemented KineticLaw with LocalParameters on Biochemical and TransportWithBiochemical Reactions.
- Started implementation for catalysisDirection
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-07-27 06:36:54 UTC (rev 684)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-07-29 06:43:50 UTC (rev 685)
@@ -39,6 +39,7 @@
import org.biopax.paxtools.model.Model;
import org.biopax.paxtools.model.level3.BiochemicalReaction;
import org.biopax.paxtools.model.level3.Catalysis;
+import org.biopax.paxtools.model.level3.CatalysisDirectionType;
import org.biopax.paxtools.model.level3.CellularLocationVocabulary;
import org.biopax.paxtools.model.level3.Complex;
import org.biopax.paxtools.model.level3.ComplexAssembly;
@@ -48,6 +49,7 @@
import org.biopax.paxtools.model.level3.Conversion;
import org.biopax.paxtools.model.level3.ConversionDirectionType;
import org.biopax.paxtools.model.level3.Degradation;
+import org.biopax.paxtools.model.level3.DeltaG;
import org.biopax.paxtools.model.level3.Dna;
import org.biopax.paxtools.model.level3.DnaRegion;
import org.biopax.paxtools.model.level3.Entity;
@@ -59,6 +61,7 @@
import org.biopax.paxtools.model.level3.Gene;
import org.biopax.paxtools.model.level3.GeneticInteraction;
import org.biopax.paxtools.model.level3.Interaction;
+import org.biopax.paxtools.model.level3.KPrime;
import org.biopax.paxtools.model.level3.Modulation;
import org.biopax.paxtools.model.level3.MolecularInteraction;
import org.biopax.paxtools.model.level3.Pathway;
@@ -90,10 +93,13 @@
import org.sbfc.ontology.OboOntology;
import org.sbml.jsbml.CVTerm;
import org.sbml.jsbml.CVTerm.Qualifier;
+import org.sbml.jsbml.ASTNode;
import org.sbml.jsbml.Compartment;
import org.sbml.jsbml.Creator;
import org.sbml.jsbml.History;
+import org.sbml.jsbml.KineticLaw;
import org.sbml.jsbml.ListOf;
+import org.sbml.jsbml.LocalParameter;
import org.sbml.jsbml.ModifierSpeciesReference;
import org.sbml.jsbml.Reaction;
import org.sbml.jsbml.SBMLDocument;
@@ -326,10 +332,10 @@
}
org.sbml.jsbml.Model topModel = sbmlDoc.createModel("topLevel_sbmlModel");
-
+
//Create a comp model to attach all sbml submodel to the sbml document
CompModelPlugin compModel= (CompModelPlugin) sbmlDoc.getModel().getPlugin(CompConstants.shortLabel);
-
+
for(Pathway pathway : pathways)
{
org.sbml.jsbml.Model subModel = parsePathway(pathway, sbmlDoc);
@@ -410,7 +416,7 @@
* Add this converted reaction to the top level sbml model
*/
topModel.addReaction(reaction);
-
+
}
else if(count == 1)
{
@@ -438,7 +444,7 @@
}
}
}
-
+
return sbmlDoc.getModel();
}
@@ -495,7 +501,7 @@
return sbmlModel;
}
-
+
private void parsePathwayComponent(Set<org.biopax.paxtools.model.level3.Process> entityList, org.sbml.jsbml.Model sbmlModel) throws ConversionException
{
for(Entity entity : entityList)
@@ -515,7 +521,7 @@
if(mappedEntities.get(entity.getRDFId()) != null)
{
Reaction pathwayComponent = (Reaction) mappedEntities.get(entity.getRDFId());
-
+
for(ModifierSpeciesReference modifier : pathwayComponent.getListOfModifiers())
{
Species species = (Species) getSBaseFromSBMLId(modifier.getSpecies());
@@ -578,7 +584,7 @@
{
parsePathwayComponent(pathwayStep.getStepProcess(), sbmlModel);
}
-
+
if(pathwayStep.getNextStep() != null && pathwayStep.getNextStep().size() > 0)
{
parsePathwayStep(pathwayStep.getNextStep(), sbmlModel);
@@ -1403,8 +1409,8 @@
private void parseConversionInteraction(Conversion conversion) throws ConversionException
{
- Reaction reaction = createReaction(conversion);
- reaction.setFast(false);
+ Reaction reaction = createReaction(conversion);
+ reaction.setFast(conversion.getSpontaneous());
if( conversion.getConversionDirection() != null && (conversion.getConversionDirection().equals(ConversionDirectionType.LEFT_TO_RIGHT) ||
conversion.getConversionDirection().equals(ConversionDirectionType.REVERSIBLE)))
@@ -1485,11 +1491,49 @@
}
modifierSpecies.setId(getValidSBMLId(control));
String modifierSpeciesName = getValidSBMLName(control);
- if(modifierSpecies != null)
+ if(modifierSpeciesName != null)
{
modifierSpecies.setName(modifierSpeciesName);
}
+
+ if(control instanceof TransportWithBiochemicalReaction || control instanceof BiochemicalReaction)
+ {
+ parseBiochemicalReaction((BiochemicalReaction) control, controlledReaction);
+ }
+ else if (control instanceof Catalysis)
+ {
+ Catalysis catalysis = (Catalysis) control;
+ for(PhysicalEntity participant : catalysis.getCofactor())
+ {
+ ModifierSpeciesReference catalysisCofactor = createModifierSpeciesReference(participant);
+ catalysisCofactor.setSBOTerm(SBO.getCatalyticActivator());
+ controlledReaction.addModifier(catalysisCofactor);
+ }
+ for(org.biopax.paxtools.model.level3.Process catalysisControlled : catalysis.getControlled())
+ {
+ Conversion controlled = (Conversion) catalysisControlled;
+ if(controlled.getConversionDirection() == ConversionDirectionType.LEFT_TO_RIGHT &&
+ catalysis.getCatalysisDirection() != CatalysisDirectionType.LEFT_TO_RIGHT)
+ {
+ //TODO:
+ }
+ else if(controlled.getConversionDirection() == ConversionDirectionType.RIGHT_TO_LEFT &&
+ catalysis.getCatalysisDirection() != CatalysisDirectionType.RIGHT_TO_LEFT)
+ {
+ //TODO:
+ }
+ else if(controlled.getConversionDirection() == ConversionDirectionType.REVERSIBLE &&
+ catalysis.getCatalysisDirection() == CatalysisDirectionType.RIGHT_TO_LEFT)
+ {
+ //TODO:
+ }
+ }
+
+ catalysis.getCatalysisDirection();
+ }
+
setControl_SBO(control, modifierSpecies);
+
controlledReaction.addModifier(modifierSpecies);
//Add annotation for ModifierSpeciesReference corresponding to control Interaction
@@ -1506,6 +1550,46 @@
}
}
+ private void parseBiochemicalReaction(BiochemicalReaction biochemReaction, Reaction controlledReaction)
+ {
+ KineticLaw kineticLaw = controlledReaction.createKineticLaw();
+ int count = 0;
+ for(DeltaG deltaG : biochemReaction.getDeltaG())
+ {
+ String prefix = getValidSBMLId(deltaG) + "_";
+ addLocalParameter(prefix + "deltaGPrime0", kineticLaw, deltaG.getDeltaGPrime0());
+ addLocalParameter(prefix + "deltaGIonicStrength", kineticLaw, deltaG.getIonicStrength());
+ addLocalParameter(prefix + "deltaGPh", kineticLaw, deltaG.getPh());
+ addLocalParameter(prefix + "deltaGPMg", kineticLaw, deltaG.getPMg());
+ addLocalParameter(prefix + "deltaGTemperature", kineticLaw, deltaG.getTemperature());
+ }
+ for(Float deltaH : biochemReaction.getDeltaH())
+ {
+ addLocalParameter("deltaH_" + count++, kineticLaw, deltaH);
+ }
+ for(Float deltaS : biochemReaction.getDeltaS())
+ {
+ addLocalParameter("deltaS_" + count++, kineticLaw, deltaS);
+ }
+ for(KPrime kprime : biochemReaction.getKEQ())
+ {
+ String prefix = getValidSBMLId(kprime) + "_";
+ addLocalParameter(prefix + "KPrime", kineticLaw, kprime.getKPrime());
+ addLocalParameter(prefix + "KPrimeIonicStrength", kineticLaw, kprime.getIonicStrength());
+ addLocalParameter(prefix + "KPrimePh", kineticLaw, kprime.getPh());
+ addLocalParameter(prefix + "KPrimeMg", kineticLaw, kprime.getPMg());
+ addLocalParameter(prefix + "KPrimeTemperature", kineticLaw, kprime.getTemperature());
+ }
+ }
+
+ private LocalParameter addLocalParameter(String id, KineticLaw kineticLaw, double value)
+ {
+ LocalParameter localParam = kineticLaw.createLocalParameter(id);
+ localParam.setSBOTerm("SBO:xxxxxxx"); //TODO: TBD
+ localParam.setValue(value);
+ return localParam;
+ }
+
private ModifierSpeciesReference createModifierSpeciesReference(Entity entity) throws ConversionException
{
ModifierSpeciesReference modifierSpecies = new ModifierSpeciesReference(sbmlLevel, sbmlVer);
@@ -1535,8 +1619,9 @@
{
modifierSpecies.setSBOTerm(SBO.getCatalyst()); //"SBO:0000013"
}
- else //This could be Modulation, TemplateReactionRegulation, or any other Control Interaction
+ else
{
+ //This could be Modulation, TemplateReactionRegulation, or any other Control Interaction
if(control.getControlType() != null)
{
setControlType_SBO(control.getControlType(), modifierSpecies);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-07-27 06:36:57
|
Revision: 684
http://sourceforge.net/p/sbfc/code/684
Author: tramy-nguyen
Date: 2016-07-27 06:36:54 +0000 (Wed, 27 Jul 2016)
Log Message:
-----------
- add validation to sbml document to only print errors rather than warnings.
- Implemented replacements from top level sbml model to sbml submodels for all species and reactions.
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-07-26 13:52:08 UTC (rev 683)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-07-27 06:36:54 UTC (rev 684)
@@ -97,6 +97,9 @@
import org.sbml.jsbml.ModifierSpeciesReference;
import org.sbml.jsbml.Reaction;
import org.sbml.jsbml.SBMLDocument;
+import org.sbml.jsbml.SBMLError;
+import org.sbml.jsbml.SBMLError.SEVERITY;
+import org.sbml.jsbml.SBMLErrorLog;
import org.sbml.jsbml.SBMLException;
import org.sbml.jsbml.SBO;
import org.sbml.jsbml.SBase;
@@ -106,8 +109,10 @@
import org.sbml.jsbml.ext.comp.CompConstants;
import org.sbml.jsbml.ext.comp.CompModelPlugin;
import org.sbml.jsbml.ext.comp.CompSBMLDocumentPlugin;
+import org.sbml.jsbml.ext.comp.CompSBasePlugin;
import org.sbml.jsbml.ext.comp.ExternalModelDefinition;
import org.sbml.jsbml.ext.comp.ModelDefinition;
+import org.sbml.jsbml.ext.comp.ReplacedElement;
import org.sbml.jsbml.ext.comp.Submodel;
import org.sbml.jsbml.ext.qual.QualModelPlugin;
import org.sbml.jsbml.xml.XMLAttributes;
@@ -139,7 +144,9 @@
private Map<String, String> biopaxId2sbmlId;
private Map<String, String> sbmlId2biopaxId;
- //map biopax entity RDFId to the sbml sbase object
+ /**
+ * map biopax entity RDFId to the sbml sbase object
+ */
private Map<String, SBase> mappedEntities;
//Counter for creating new SBML id
@@ -223,7 +230,7 @@
addSBMLHistory(sbmlModel, sbmlOrganization);
addSBMLNotes(sbmlModel, "This model has been automatically generated by BioPAX2SBML");
- //parseEntities(bioModel, sbmlModel);
+ //TODO: throw conversionException if invalid sbml file?
validateSBMLFile(sbmlDoc);
return biopaxSBMLModel;
@@ -231,7 +238,6 @@
private void validateSBMLFile(SBMLDocument document)
{
-
String message = "Validation Problems Found by Webservice\n";
document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.GENERAL_CONSISTENCY, true);
document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.IDENTIFIER_CONSISTENCY, true);
@@ -247,7 +253,12 @@
message += i + ":" + error + "\n";
i++;
}
- println(message);
+ SBMLErrorLog errorLogs = document.getErrorLog();
+ List<SBMLError> errors = errorLogs.getErrorsBySeverity(SEVERITY.ERROR);
+ for(SBMLError error : errors)
+ {
+ println(error.getMessage());
+ }
}
private void mappAllEntities(org.biopax.paxtools.model.Model bioModel) throws ConversionException
@@ -263,6 +274,7 @@
if(physicalEntity instanceof SimplePhysicalEntity)
{
/*
+ * Note:
* entityReference is annotated in sbml.
* This field is only found in Protein, Dna, DnaRegion, Rna, RnaRegion, and SmallMolecule
*/
@@ -294,8 +306,8 @@
}
/**
- * Convert a list of biopax pathways to its equivalent SBML Model. Each pathway model that gets created, will be represented in its own SBML file.
- * If there are no pathway found within the biopax model, then a default pathway will be created.
+ * Convert a list of biopax pathways to its equivalent SBML Model. Each pathway model that gets created, will be represented in its own submodel.
+ * If there are no pathway found within the biopax model, then a default pathway will be created and all entities within the biomodel will be parsed into the sbml document.
*
* @param bioModel - The biopax model that contains a set of pathways to convert to sbml models
* @param sbmlDoc - the top level sbml document that will store all the references of the sbml submodels that were converted from each biopax pathways.
@@ -314,17 +326,119 @@
}
org.sbml.jsbml.Model topModel = sbmlDoc.createModel("topLevel_sbmlModel");
-
- //TODO: add all species replacements and replacedby from toplevel_sbmlModel to submodels
-
- CompSBMLDocumentPlugin compDoc = (CompSBMLDocumentPlugin) sbmlDoc.getPlugin(CompConstants.shortLabel);
+
+ //Create a comp model to attach all sbml submodel to the sbml document
CompModelPlugin compModel= (CompModelPlugin) sbmlDoc.getModel().getPlugin(CompConstants.shortLabel);
+
for(Pathway pathway : pathways)
{
org.sbml.jsbml.Model subModel = parsePathway(pathway, sbmlDoc);
- Submodel s = compModel.createSubmodel("submodel__"+subModel.getId());
+ Submodel s = compModel.createSubmodel("submodel__" + subModel.getId());
s.setModelRef(subModel.getId());
}
+ //Add all species replacements and replacedby from submodels to toplevel_sbmlModel
+ for(PhysicalEntity physicalEntity : bioModel.getObjects(PhysicalEntity.class))
+ {
+ Species species = (Species) mappedEntities.get(physicalEntity.getRDFId());
+ //Keep track of how many times this species occur in the each submodel
+ int count = 0;
+ for(Submodel modelDef : compModel.getListOfSubmodels())
+ {
+ if(modelDef.getModel().getSpecies(species.getId()) != null)
+ {
+ count++;
+ }
+ }
+ if(count == 0)
+ {
+ /*
+ * Note:
+ * This physicalEntity did not occur anywhere in all submodels.
+ * Add this converted species to the top level sbml model
+ */
+ topModel.addSpecies(species);
+ topModel.addCompartment((Compartment) getSBaseFromSBMLId(species.getCompartment()));
+ }
+ else if(count == 1)
+ {
+ /*
+ * Note:
+ * This physicalEntity occured in one submodel.
+ * This indicates that it is a "floating" species in that one submodel.
+ * Don't add this converted species to the top level sbml model
+ */
+ continue;
+ }
+ else
+ {
+ topModel.addSpecies(species);
+ topModel.addCompartment((Compartment) getSBaseFromSBMLId(species.getCompartment()));
+ for(Submodel modelDef : compModel.getListOfSubmodels())
+ {
+ Species submodel_species = modelDef.getModel().getSpecies(species.getId());
+ if(submodel_species != null)
+ {
+ CompSBasePlugin replacementPlugin = (CompSBasePlugin) species.getPlugin(CompConstants.shortLabel);
+ ReplacedElement replacement = replacementPlugin.createReplacedElement();
+ replacement.setIdRef(submodel_species.getId());
+ replacement.setSubmodelRef(modelDef.getId());
+ }
+ }
+ }
+ }
+ for(Interaction interactionEntity : bioModel.getObjects(Interaction.class))
+ {
+ if(interactionEntity instanceof Control)
+ {
+ continue;
+ }
+ Reaction reaction = (Reaction) mappedEntities.get(interactionEntity.getRDFId());
+ //Keep track of how many times this reaction occur in the each submodel
+ int count = 0;
+ for(Submodel modelDef : compModel.getListOfSubmodels())
+ {
+ if(modelDef.getModel().getReaction(reaction.getId()) != null)
+ {
+ count++;
+ }
+ }
+ if(count == 0)
+ {
+ /*
+ * Note:
+ * This interactionEntity did not occur anywhere in all submodels.
+ * Add this converted reaction to the top level sbml model
+ */
+ topModel.addReaction(reaction);
+
+ }
+ else if(count == 1)
+ {
+ /*
+ * Note:
+ * This interactionEntity occurred in one submodel.
+ * This indicates that it is a "floating" reaction in that one submodel.
+ * Don't add this converted reaction to the top level sbml model
+ */
+ continue;
+ }
+ else
+ {
+ topModel.addReaction(reaction);
+ for(Submodel modelDef : compModel.getListOfSubmodels())
+ {
+ Reaction submodel_reaction = modelDef.getModel().getReaction(reaction.getId());
+ if(submodel_reaction != null)
+ {
+ CompSBasePlugin replacementPlugin = (CompSBasePlugin) reaction.getPlugin(CompConstants.shortLabel);
+ ReplacedElement replacement = replacementPlugin.createReplacedElement();
+ replacement.setIdRef(submodel_reaction.getId());
+ replacement.setSubmodelRef(modelDef.getId());
+ }
+ }
+ }
+ }
+
return sbmlDoc.getModel();
}
@@ -346,73 +460,12 @@
if(pathway.getPathwayComponent() != null && pathway.getPathwayComponent().size() > 0)
{
//Parse all entities related to this pathway
- Set<org.biopax.paxtools.model.level3.Process> entityList = pathway.getPathwayComponent();
-
- for(Entity entity : entityList)
- {
- if(entity instanceof Interaction)
- {
- if(entity instanceof Control)
- {
- continue;
- }
- if(mappedEntities.get(entity.getRDFId()) != null)
- {
- Reaction pathwayComponent = (Reaction) mappedEntities.get(entity.getRDFId());
- //TODO: How to get species object from mappedEntities for reactant, product, and modifiers?
- for(ModifierSpeciesReference modifier : pathwayComponent.getListOfModifiers())
- {
- Species species = (Species) getSBaseFromId(modifier.getSpecies());
- if(sbmlModel.getSpecies(species.getId()) == null)
- {
- sbmlModel.addSpecies(species.clone());
- Compartment compartment = (Compartment) getSBaseFromId(species.getCompartment());
- if(sbmlModel.getCompartment(compartment.getId()) == null)
- {
- sbmlModel.addCompartment(compartment);
- }
- }
-
- }
- for(SpeciesReference reactant : pathwayComponent.getListOfReactants())
- {
- Species species = (Species) getSBaseFromId(reactant.getSpecies());
- if(sbmlModel.getSpecies(species.getId()) == null)
- {
- sbmlModel.addSpecies(species.clone());
- Compartment compartment = (Compartment) getSBaseFromId(species.getCompartment());
- if(sbmlModel.getCompartment(compartment.getId()) == null)
- {
- sbmlModel.addCompartment(compartment);
- }
- }
- }
- for(SpeciesReference product : pathwayComponent.getListOfProducts())
- {
- Species species = (Species) getSBaseFromId(product.getSpecies());
- if(sbmlModel.getSpecies(species.getId()) == null)
- {
- sbmlModel.addSpecies(species.clone());
- Compartment compartment = (Compartment) getSBaseFromId(species.getCompartment());
- if(sbmlModel.getCompartment(compartment.getId()) == null)
- {
- sbmlModel.addCompartment(compartment);
- }
- }
- }
- sbmlModel.addReaction(pathwayComponent.clone());
- }
- else
- {
- throw new ConversionException("Unable to locate entity: " + entity.getRDFId() + " from the provided biopax file");
- }
- }
- else if(entity instanceof Pathway)
- {
- //TODO: how to handle this?
- }
- }
+ parsePathwayComponent(pathway.getPathwayComponent(), sbmlModel);
}
+ if(pathway.getPathwayOrder() != null && pathway.getPathwayOrder().size() > 0)
+ {
+ parsePathwayStep(pathway.getPathwayOrder(), sbmlModel);
+ }
//Add SBML annotation for biopax pathway
if(pathway.getXref() != null && !pathway.getXref().isEmpty())
@@ -420,8 +473,9 @@
parseXref(pathway.getXref(), sbmlModel);
}
}
- else
+ else
{
+ //Pathway is empty in biopax file. Consider all entities within file as one model
for(SBase sbase : mappedEntities.values())
{
if(sbase instanceof Species)
@@ -441,10 +495,106 @@
return sbmlModel;
}
+
+ private void parsePathwayComponent(Set<org.biopax.paxtools.model.level3.Process> entityList, org.sbml.jsbml.Model sbmlModel) throws ConversionException
+ {
+ for(Entity entity : entityList)
+ {
+ if(entity instanceof Interaction)
+ {
+ /*
+ * Note:
+ * Since all Control are translated into modifiers, reactants, and products that are attached to a reaction,
+ * no need to parse control entities but rather only the interactions since control entities will already be parsed
+ * when parsing interactions.
+ */
+ if(entity instanceof Control)
+ {
+ continue;
+ }
+ if(mappedEntities.get(entity.getRDFId()) != null)
+ {
+ Reaction pathwayComponent = (Reaction) mappedEntities.get(entity.getRDFId());
+
+ for(ModifierSpeciesReference modifier : pathwayComponent.getListOfModifiers())
+ {
+ Species species = (Species) getSBaseFromSBMLId(modifier.getSpecies());
+ if(sbmlModel.getSpecies(species.getId()) == null)
+ {
+ sbmlModel.addSpecies(species.clone());
+ Compartment compartment = (Compartment) getSBaseFromSBMLId(species.getCompartment());
+ if(sbmlModel.getCompartment(compartment.getId()) == null)
+ {
+ sbmlModel.addCompartment(compartment);
+ }
+ }
+ }
+ for(SpeciesReference reactant : pathwayComponent.getListOfReactants())
+ {
+ Species species = (Species) getSBaseFromSBMLId(reactant.getSpecies());
+ if(sbmlModel.getSpecies(species.getId()) == null)
+ {
+ sbmlModel.addSpecies(species.clone());
+ Compartment compartment = (Compartment) getSBaseFromSBMLId(species.getCompartment());
+ if(sbmlModel.getCompartment(compartment.getId()) == null)
+ {
+ sbmlModel.addCompartment(compartment);
+ }
+ }
+ }
+ for(SpeciesReference product : pathwayComponent.getListOfProducts())
+ {
+ Species species = (Species) getSBaseFromSBMLId(product.getSpecies());
+ if(sbmlModel.getSpecies(species.getId()) == null)
+ {
+ sbmlModel.addSpecies(species.clone());
+ Compartment compartment = (Compartment) getSBaseFromSBMLId(species.getCompartment());
+ if(sbmlModel.getCompartment(compartment.getId()) == null)
+ {
+ sbmlModel.addCompartment(compartment);
+ }
+ }
+ }
+ sbmlModel.addReaction(pathwayComponent.clone());
+ }
+ else
+ {
+ throw new ConversionException("Unable to locate entity: " + entity.getRDFId() + " from the provided biopax file");
+ }
+ }
+ else if(entity instanceof Pathway)
+ {
+ //TODO: how to handle this?
+ }
+ }
+ }
+ private void parsePathwayStep(Set<PathwayStep> pathwayStepList, org.sbml.jsbml.Model sbmlModel) throws ConversionException
+ {
+ for(PathwayStep pathwayStep : pathwayStepList)
+ {
+ if(pathwayStep.getStepProcess() != null && pathwayStep.getStepProcess().size() > 0)
+ {
+ parsePathwayComponent(pathwayStep.getStepProcess(), sbmlModel);
+ }
+
+ if(pathwayStep.getNextStep() != null && pathwayStep.getNextStep().size() > 0)
+ {
+ parsePathwayStep(pathwayStep.getNextStep(), sbmlModel);
+ }
+ }
+ }
- private SBase getSBaseFromId(String id) throws ConversionException
+ /**
+ * Returns the SBase object based on the SBML id.
+ * If an SBase object can't be found based from the given id, then this method will throw a ConversionException.
+ *
+ * @param id - The SBase object id
+ * @return The SBase object
+ * @throws ConversionException
+ */
+ private SBase getSBaseFromSBMLId(String id) throws ConversionException
{
if(sbmlId2biopaxId.containsKey(id))
{
@@ -542,57 +692,6 @@
}
}
- /**
- * Takes the provided biomodel and converts all entities within the model to its corresponding SBML elements
- * The SBML elements are stored within the provided SBML model.
- *
- * @param bioModel - The biomodel to get all the entities from
- * @param sbmlModel - the SBML model to store all the SBML elements that are generated from the provided biomodel
- * @throws ConversionException
- */
- private void parseEntities(Model bioModel, org.sbml.jsbml.Model sbmlModel) throws ConversionException
- {
- for (Gene gene : bioModel.getObjects(Gene.class))
- {
- parseEntity(gene, sbmlModel);
- }
- for (PhysicalEntity physicalEntity : bioModel.getObjects(PhysicalEntity.class))
- {
- parseEntity(physicalEntity, sbmlModel);
- if(physicalEntity instanceof SimplePhysicalEntity)
- {
- /*
- * entityReference is annotated in sbml.
- * This field is only found in Protein, Dna, DnaRegion, Rna, RnaRegion, and SmallMolecule
- */
- SimplePhysicalEntity simplePhysicalEntity = (SimplePhysicalEntity) physicalEntity;
- if(simplePhysicalEntity.getEntityReference() != null)
- {
- //TODO: Implement EntityReference as SBML annotations by using SBML group
- //parseEntityReference(simplePhysicalEntity.getEntityReference(), species);
- }
- }
- }
-
- /*
- * Note: Collect all biopax interaction types to parse after iterating through all entities.
- * This will ensure that species are created first from PhysicalEntities and any Entites that
- * are not of type Interaction.
- */
-
- Set<Conversion> listOfConversions = bioModel.getObjects(Conversion.class);
-
- Set<Control> listOfControls = bioModel.getObjects(Control.class);
-
- List<Interaction> listOfInteractions = new ArrayList<Interaction>();
- listOfInteractions.addAll(bioModel.getObjects(GeneticInteraction.class));
- listOfInteractions.addAll(bioModel.getObjects(MolecularInteraction.class));
- listOfInteractions.addAll(bioModel.getObjects(TemplateReaction.class));
-
- parseInteractions(sbmlModel, listOfConversions, listOfControls, listOfInteractions);
- }
-
-
private String parseXref(Set<Xref> xrefList, SBase sbase)
{
List<CVTerm> cvtermList = new ArrayList<CVTerm>();
@@ -726,31 +825,6 @@
return cvterm;
}
- /**
- * Convert the provided Biopax entity to an SBML species.
- * The species generated will be stored in the provided SBML model.
- *
- * @param entity - The biopax entity to be converted to its corresponding species
- * @param sbmlModel - The SBML model to store the generated SBML elements
- * @return
- */
- private Species parseEntity(Entity entity, org.sbml.jsbml.Model sbmlModel)
- {
- Species sbmlSpecies = setSpecies(sbmlModel, entity);
-
- //Add SBO terms to species
- if (entity instanceof PhysicalEntity)
- {
- setPhysicalEntity_SBO((PhysicalEntity) entity, sbmlSpecies);
- }
- else
- {
- setEntity_SBO(entity, sbmlSpecies);
- }
-
- return sbmlSpecies;
- }
-
private Species parseEntity(Entity entity)
{
Species sbmlSpecies = createSpecies(entity);
@@ -934,56 +1008,7 @@
return result;
}
- /**
- * Convert the provided biopax entity into SBML species. The generated SBML species will be
- * stored within the provided SBML model. For the species that was created, it is assigned to its
- * corresponding SBML compartments based on the cellularLocaton retrieved form the given entity.
- *
- * @param sbmlModel - The SBML model to store the generated SBML species
- * @param speciesId - The id for the generated SBML species
- * @param entity - The biopax entity to convert to an SBML species.
- * @return The species created from the given entity
- */
- private Species setSpecies(org.sbml.jsbml.Model sbmlModel, Entity entity)
- {
- String speciesId = getValidSBMLId(entity);
- Species sbmlSpecies = sbmlModel.createSpecies(speciesId, createCompartment(sbmlModel, entity));
- //Since name is optional in SBML, don't set sbml name if getValidSBMLName returns null
- String speciesName = getValidSBMLName(entity);
- if(speciesName != null)
- {
- sbmlSpecies.setName(speciesName);
- }
-
- /* Default settings for sbml species required attributes
- * setHasOnlySubstanceUnits(true) :
- * Specify if species is an amount or a concentration.
- * Consider the species to be amount so true is set.
- * setBoundaryCondition(false) :
- * Specify if species will change depending on result of condition.
- * Assume that the species will never change so false is set
- * setConstant(false) :
- * Specify if species ever change.
- * Assume species is usually never change, true is set
- */
- sbmlSpecies.setHasOnlySubstanceUnits(true);
- sbmlSpecies.setBoundaryCondition(false);
- sbmlSpecies.setConstant(false);
-
- if(entity.getEvidence() != null)
- {
- //parseEvidence(entity.getEvidence(), sbmlSpecies);
- }
- if(entity.getXref() != null)
- {
- parseXref(entity.getXref(), sbmlSpecies);
-
- }
-
- return sbmlSpecies;
- }
-
private Species createSpecies(Entity entity)
{
String speciesId = getValidSBMLId(entity);
@@ -1065,100 +1090,6 @@
return notes;
}
- /**
- * Return an existing compartment from the given SBML model or create a new compartment if the given entity has a valid cellularLocation element.
- * If the entity does not have any cellularLocation or the cellularLocation property is not
- * valid SBML id to use, then a default compartment will be returned.
- *
- * @param sbmlModel - The SBML model to store the SBML compartment to
- * @param entity - the entity to create the SBML compartment
- * @return The compartment created from the given entity
- */
- private Compartment createCompartment(org.sbml.jsbml.Model sbmlModel, Entity entity)
- {
- org.sbml.jsbml.Compartment finalCompartment = null;
- /*
- * Note: Only PhysicalEntity contains cellularLocation.
- * Since Gene is the only Entity type that is not a PhysicalEntity, the compartment for
- * gene will be stored in default compartment
- */
- if (entity instanceof PhysicalEntity)
- {
- PhysicalEntity physicalEntity = (PhysicalEntity) entity;
- CellularLocationVocabulary cellularLocVocab = physicalEntity.getCellularLocation();
- boolean isContainedXref = false;
- // Check if the compartment already exist in the sbml model
- if (cellularLocVocab != null)
- {
- if (org.sbml.jsbml.validator.SyntaxChecker.isValidId(cellularLocVocab.getRDFId(), sbmlLevel, sbmlVer))
- {
- if (sbmlModel.containsCompartment(physicalEntity.getCellularLocation().getRDFId()))
- {
- finalCompartment = sbmlModel.getCompartment(cellularLocVocab.getRDFId());
- }
- else
- {
- org.sbml.jsbml.Compartment compartment = sbmlModel.createCompartment((cellularLocVocab.getRDFId()));
- String compartmentName = getValidSBMLName(cellularLocVocab);
- if(compartmentName != null)
- {
- compartment.setName(compartmentName);
- }
- /*
- * Default settings for sbml compartment required attributes
- * setConstant(true) :
- * Specify if species has a fixed size
- * Since a compartment realistically changes size, for this
- * conversion and based on previous conversion, this is set
- * to true to indicate that the compartment will always stay
- * at the same constant size
- */
- compartment.setSBOTerm(SBO.getPhysicalCompartment());
- compartment.setConstant(true);
- finalCompartment = compartment;
- isContainedXref = true;
- }
- }
- else
- {
-
- //If there exist a cellularLocation but not valid sbml Id, generate new compartment id
- String compartmentId = getValidSBMLId(physicalEntity.getCellularLocation());
-
- org.sbml.jsbml.Compartment compartment = sbmlModel.getCompartment(compartmentId);
- //sbmlModel could not find compartment. Create new compartment
- if(compartment == null)
- {
- compartment = sbmlModel.createCompartment(compartmentId);
-
- compartment.setSBOTerm(SBO.getPhysicalCompartment());
- compartment.setConstant(true);
- isContainedXref = true;
- }
- finalCompartment = compartment;
- }
- if(isContainedXref)
- {
- if(entity.getEvidence() != null)
- {
- parseEvidence(entity.getEvidence(), finalCompartment);
- }
- if(cellularLocVocab.getXref() != null)
- {
- parseXref(cellularLocVocab.getXref(), finalCompartment);
- }
- }
- }
- }
-
- if(finalCompartment == null)
- {
- finalCompartment = getDefaultCompartment(sbmlModel);
- }
-
- return finalCompartment;
- }
-
private Compartment createCompartment(Entity entity)
{
org.sbml.jsbml.Compartment finalCompartment = null;
@@ -1275,20 +1206,6 @@
return compartmentId;
}
- private Compartment getDefaultCompartment(org.sbml.jsbml.Model sbmlModel)
- {
- // Get default compartment if it already exist in sbml model
- if (sbmlModel.getCompartment("defaultCompartment") != null)
- {
- return sbmlModel.getCompartment("defaultCompartment");
- }
-
- org.sbml.jsbml.Compartment defaultCompartment = sbmlModel.createCompartment("defaultCompartment");
- defaultCompartment.setSBOTerm(SBO.getCompartment());
- defaultCompartment.setConstant(true);
- return defaultCompartment;
- }
-
private Compartment getDefaultCompartment()
{
org.sbml.jsbml.Compartment defaultCompartment = new Compartment("defaultCompartment", sbmlLevel, sbmlVer);
@@ -1311,7 +1228,6 @@
}
else if (entity instanceof Protein)
{
- // sbmlSpecies.setSBOTerm(SBO.getProtein()); //252
sbmlSpecies.setSBOTerm(SBO.getGeneric());
}
else if (entity instanceof Dna)
@@ -1355,36 +1271,6 @@
}
}
- /**
- * Converts the provided biopax interactions into SBML reactions, reactant, particpants, SpeciesReference, and ModifierSpeciesReference.
- *
- * @param sbmlModel - The SBML model to store the reactions, reactant, particpants, SpeciesReference, and ModifierSpeciesReference to.
- * @param listOfConversions - Holds the list of all biopax conversion interaction to be converted to SBML reactions
- * @param listOfControls - Holds the list of all biopax control interactoin to be converted to SBLML ModifierSpeciesReference
- * @param listOfInteractions - Holds the list of all biopax interactions that are not of type conversion an control to be converted to SBML reactions
- * @throws ConversionException
- */
- private void parseInteractions(org.sbml.jsbml.Model sbmlModel, Set<Conversion> listOfConversions, Set<Control> listOfControls, List<Interaction> listOfInteractions) throws ConversionException
- {
- /*
- * Note: Interaction must be parsed in this order: Interaction, Conversion, then Control
- * This will ensure all reactions are created first before ModifierSpeciesReference are created.
- */
- for(Interaction interaction : listOfInteractions)
- {
- parsePhysicalInteraction(interaction, sbmlModel);
- }
- for(Conversion conversion : listOfConversions)
- {
- parseConversionInteraction(conversion, sbmlModel);
- }
- for(Control control : listOfControls)
- {
- parseControlInteraction(control, sbmlModel);
- }
-
- }
-
private void parseInteractions(Set<Conversion> listOfConversions, Set<Control> listOfControls, List<Interaction> listOfInteractions) throws ConversionException
{
/*
@@ -1406,30 +1292,6 @@
}
-
- private void parsePhysicalInteraction(Interaction entity, org.sbml.jsbml.Model sbmlModel) throws ConversionException
- {
- Reaction reaction = setReaction(entity, sbmlModel);
- reaction.setReversible(false);
- reaction.setFast(false);
-
- if (entity instanceof TemplateReaction)
- {
- parseTemplateReaction((TemplateReaction) entity, reaction);
- }
- else if (entity instanceof MolecularInteraction)
- {
- parseMolecularInteraction((MolecularInteraction) entity, reaction);
- }
- else if (entity instanceof GeneticInteraction)
- {
- parseGeneticInteraction((GeneticInteraction) entity, reaction);
- }
-
- setInteraction_SBO(entity, reaction);
-
- }
-
private void parsePhysicalInteraction(Interaction entity) throws ConversionException
{
Reaction reaction = createReaction(entity);
@@ -1462,7 +1324,7 @@
if(templateReaction.getTemplate() != null)
{
- ModifierSpeciesReference modifierSpeciesRef = getModifierSpeciesReference(templateReaction.getTemplate());
+ ModifierSpeciesReference modifierSpeciesRef = createModifierSpeciesReference(templateReaction.getTemplate());
reaction.addModifier(modifierSpeciesRef);
hasModifier = true;
}
@@ -1489,7 +1351,7 @@
//Parse for reactant/substrate and product
for(Entity p : participants)
{
- SpeciesReference reactant_product = getSpeciesReferences(p);
+ SpeciesReference reactant_product = createSpeciesReferences(p);
reactant_product.setSBOTerm(SBO.getMolecularInteraction());
reaction.addReactant(reactant_product.clone());
reaction.addProduct(reactant_product.clone());
@@ -1503,10 +1365,10 @@
{
if(p instanceof Gene)
{
- ModifierSpeciesReference modifierSpeciesRef = getModifierSpeciesReference(p);
+ ModifierSpeciesReference modifierSpeciesRef = createModifierSpeciesReference(p);
reaction.addModifier(modifierSpeciesRef);
}
- SpeciesReference reactant_product = getSpeciesReferences(p);
+ SpeciesReference reactant_product = createSpeciesReferences(p);
reactant_product.setSBOTerm(SBO.getGeneticInteraction());
reaction.addReactant(reactant_product.clone());
reaction.addProduct(reactant_product.clone());
@@ -1539,49 +1401,6 @@
}
}
- /**
- * Convert the provided biopax conversion interaction to the corresponding SBML reaction along with its reactants and products.
- * The reaction that is created is assigned with an SBO term corresponding to the given biopax conversion interaction.
- * The SBML reaction will then be stored in the provided SBML model
- *
- * @param conversion - The conversion interaction to be converted to an SBML reaction
- * @param sbmlModel - The SBML model that contains the generated reaction
- * @throws ConversionException
- */
- private void parseConversionInteraction(Conversion conversion, org.sbml.jsbml.Model sbmlModel) throws ConversionException
- {
- Reaction reaction = setReaction(conversion, sbmlModel);
- reaction.setFast(false);
-
- if( conversion.getConversionDirection() != null && (conversion.getConversionDirection().equals(ConversionDirectionType.LEFT_TO_RIGHT) ||
- conversion.getConversionDirection().equals(ConversionDirectionType.REVERSIBLE)))
- {
- reaction.setReversible(true);
-
- //Parse for reactant/substrate
- ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
- reaction.setListOfReactants(reactants);
-
- //Parse for product
- ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
- reaction.setListOfProducts(products);
- }
- else if( conversion.getConversionDirection() != null && (conversion.getConversionDirection().equals(ConversionDirectionType.RIGHT_TO_LEFT)))
- {
- reaction.setReversible(false);
-
- //Parse for reactant/substrate
- ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
- reaction.setListOfReactants(reactants);
-
- //Parse for product
- ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
- reaction.setListOfProducts(products);
- }
-
- setConversion_SBO(conversion, reaction);
- }
-
private void parseConversionInteraction(Conversion conversion) throws ConversionException
{
Reaction reaction = createReaction(conversion);
@@ -1630,22 +1449,6 @@
setConversion_SBO(conversion, reaction);
}
- /**
- * Parses the Controlled and Controller Interaction from the given Control Interaction to generate the corresponding SBML ModifierSpeciesReference
- *
- * @param control - The control interaction to be parsed for SBML ModifierSpeciesReference
- * @param sbmlModel- The SBML model that contains the generated ModifierSpeciesReference
- * @throws ConversionException
- */
- private void parseControlInteraction(Control control, org.sbml.jsbml.Model sbmlModel) throws ConversionException
- {
- //parse controlled to create reactions. There must be 0 or more Controlled
- List<Reaction> controlledReactionList = parseControlledInteraction(control, sbmlModel);
-
- //parse controller to create ModifierSpeciesReference. There must be 0 or 1 Controller
- parseControllerInteraction(control, controlledReactionList);
- }
-
private void parseControlInteraction(Control control) throws ConversionException
{
//parse controlled to create reactions. There must be 0 or more Controlled
@@ -1675,7 +1478,7 @@
{
for(Controller controller : controllerList)
{
- ModifierSpeciesReference modifierSpecies = getModifierSpeciesReference(controller);
+ ModifierSpeciesReference modifierSpecies = createModifierSpeciesReference(controller);
if(modifierSpecies == null)
{
continue;
@@ -1703,7 +1506,7 @@
}
}
- private ModifierSpeciesReference getModifierSpeciesReference(Entity entity) throws ConversionException
+ private ModifierSpeciesReference createModifierSpeciesReference(Entity entity) throws ConversionException
{
ModifierSpeciesReference modifierSpecies = new ModifierSpeciesReference(sbmlLevel, sbmlVer);
@@ -1795,48 +1598,6 @@
}
}
- /**
- * Parse all Controlled Interaction found in the given Control Interaction to get the corresponding SBML controlled reactions
- *
- * @param control- The Control Interaction that holds the controlled interaction
- * @param sbmlModel - The SBML model that contains the controlled reactions
- * @return the list of SBML reactions that corresponds to given controlled interaction
- * @throws ConversionException
- */
- private List<Reaction> parseControlledInteraction(Control control, org.sbml.jsbml.Model sbmlModel) throws ConversionException
- {
- Set<org.biopax.paxtools.model.level3.Process> controlledList = control.getControlled();
- List<Reaction> controlledReactionList = new ArrayList<Reaction>();
- if (controlledList != null && controlledList.size() > 0)
- {
- for (org.biopax.paxtools.model.level3.Process process : controlledList)
- {
- if(process instanceof Control)
- {
- //Modulation
- controlledReactionList.addAll(parseControlledInteraction((Control) process, sbmlModel));
- }
- else
- {
- //Check if this process rdfId is contained within the hashmap table to see if sbml has this reaction id.
- // get that equivalent sbml reaction and add the list of modifier reaction
- if(biopaxId2sbmlId.containsKey(process.getRDFId()))
- {
- Reaction controlledReaction = sbmlModel.getReaction(biopaxId2sbmlId.get(process.getRDFId()));
- controlledReactionList.add(controlledReaction);
- }
- else
- {
- throw new ConversionException("The reaction for " + process.getRDFId() + " must exist in the SBML Document in order to create a ModifierSpeciesReference for the Controlled interaction.");
- }
- }
-
- }
- }
-
- return controlledReactionList;
- }
-
private List<Reaction> parseControlledInteraction(Control control) throws ConversionException
{
Set<org.biopax.paxtools.model.level3.Process> controlledList = control.getControlled();
@@ -1880,7 +1641,7 @@
for(PhysicalEntity p : participants)
{
- SpeciesReference speciesRef = getSpeciesReferences(p);
+ SpeciesReference speciesRef = createSpeciesReferences(p);
if(stoichiometrySet != null)
{
setSpeciesStochiometry(speciesRef, stoichiometrySet, p);
@@ -1891,7 +1652,7 @@
}
- private org.sbml.jsbml.SpeciesReference getSpeciesReferences(Entity participant) throws ConversionException
+ private org.sbml.jsbml.SpeciesReference createSpeciesReferences(Entity participant) throws ConversionException
{
SpeciesReference speciesReference = new SpeciesReference(sbmlLevel, sbmlVer);
@@ -1958,40 +1719,6 @@
return (stoichiometry > 0 && stoichiometry < Double.MAX_VALUE);
}
- /**
- * Create an SBML reaction from the given entity Interaction.
- * The generated SBML reaction will be stored in the given SBML model.
- *
- * @param entity - The Interaction to be converted to the corresponding SBMl reaction
- * @param sbmlModel - The SBML model to store the generated reaction
- * @return The reaction that was created
- */
- private Reaction setReaction(Interaction entity, org.sbml.jsbml.Model sbmlModel)
- {
- Reaction reaction = sbmlModel.createReaction(getValidSBMLId(entity));
- String reactionName = getValidSBMLName(entity);
- if(reactionName != null)
- {
- reaction.setName(reactionName);
- }
- /* Default settings for sbml reaction required attributes
- * setFast(false) :
- * Indicate fast reaction
- * Assume reaction is not fast so set to false
- */
- reaction.setFast(false);
-
- if(entity.getEvidence() != null)
- {
- //parseEvidence(entity.getEvidence(), reaction);
- }
- if(entity.getXref() != null)
- {
- parseXref(entity.getXref(), reaction);
- }
- return reaction;
- }
-
private Reaction createReaction(Interaction entity)
{
Reaction reaction = new Reaction(getValidSBMLId(entity), sbmlLevel, sbmlVer);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nik...@us...> - 2016-07-26 13:52:10
|
Revision: 683
http://sourceforge.net/p/sbfc/code/683
Author: niko-rodrigue
Date: 2016-07-26 13:52:08 +0000 (Tue, 26 Jul 2016)
Log Message:
-----------
updated the jsbml jar file so that it contains the latest SBO changes
Added Paths:
-----------
trunk/lib/jsbml-1.2-SNAPSHOT-20160726-with-dependencies.jar
Removed Paths:
-------------
trunk/lib/jsbml-1.2-SNAPSHOT-20160722-with-dependencies.jar
trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies2129.jar
Deleted: trunk/lib/jsbml-1.2-SNAPSHOT-20160722-with-dependencies.jar
===================================================================
(Binary files differ)
Added: trunk/lib/jsbml-1.2-SNAPSHOT-20160726-with-dependencies.jar
===================================================================
(Binary files differ)
Index: trunk/lib/jsbml-1.2-SNAPSHOT-20160726-with-dependencies.jar
===================================================================
--- trunk/lib/jsbml-1.2-SNAPSHOT-20160726-with-dependencies.jar 2016-07-26 05:32:40 UTC (rev 682)
+++ trunk/lib/jsbml-1.2-SNAPSHOT-20160726-with-dependencies.jar 2016-07-26 13:52:08 UTC (rev 683)
Property changes on: trunk/lib/jsbml-1.2-SNAPSHOT-20160726-with-dependencies.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/zip
\ No newline at end of property
Deleted: trunk/lib/jsbml-1.2-SNAPSHOT-with-dependencies2129.jar
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-07-26 05:32:43
|
Revision: 682
http://sourceforge.net/p/sbfc/code/682
Author: tramy-nguyen
Date: 2016-07-26 05:32:40 +0000 (Tue, 26 Jul 2016)
Log Message:
-----------
modified parsing of each pathway so it will create reactions, species, model, and compartments as valid sbml files.
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java
trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
trunk/test/org/sbfc/test/sbml2biopax/ReadingSBMLFileTests.java
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-07-25 06:08:42 UTC (rev 681)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-07-26 05:32:40 UTC (rev 682)
@@ -104,9 +104,11 @@
import org.sbml.jsbml.SpeciesReference;
import org.sbml.jsbml.UnitDefinition;
import org.sbml.jsbml.ext.comp.CompConstants;
+import org.sbml.jsbml.ext.comp.CompModelPlugin;
import org.sbml.jsbml.ext.comp.CompSBMLDocumentPlugin;
import org.sbml.jsbml.ext.comp.ExternalModelDefinition;
import org.sbml.jsbml.ext.comp.ModelDefinition;
+import org.sbml.jsbml.ext.comp.Submodel;
import org.sbml.jsbml.ext.qual.QualModelPlugin;
import org.sbml.jsbml.xml.XMLAttributes;
import org.sbml.jsbml.xml.XMLNamespaces;
@@ -145,7 +147,7 @@
//GO ontology obo file path
private final static String goOntology_filePath = "src/org/sbfc/ontology/go.obo";
-
+
private final static OboOntology ontology = new OboOntology(goOntology_filePath);
//The URL prefix for biopax RDFId
@@ -185,8 +187,8 @@
* @throws ReadModelException
*/
public SBMLModel sbmlExport(BioPAXModel biopaxmodel) throws SBMLException, ConversionException, ReadModelException {
-
-
+
+
//Keep track of the mapping between biopax RDFId to SBML id;
biopaxId2sbmlId = new HashMap<String, String>();
sbmlId2biopaxId = new HashMap<String, String>();
@@ -218,14 +220,36 @@
* first before parsing other biopax entities.
*/
org.sbml.jsbml.Model sbmlModel = parsePathways(bioModel, sbmlDoc);
- // addSBMLHistory(sbmlModel, sbmlOrganization);
- // addSBMLNotes(sbmlModel, "This model has been automatically generated by BioPAX2SBML");
+ addSBMLHistory(sbmlModel, sbmlOrganization);
+ addSBMLNotes(sbmlModel, "This model has been automatically generated by BioPAX2SBML");
//parseEntities(bioModel, sbmlModel);
+ validateSBMLFile(sbmlDoc);
return biopaxSBMLModel;
}
+ private void validateSBMLFile(SBMLDocument document)
+ {
+
+ String message = "Validation Problems Found by Webservice\n";
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.GENERAL_CONSISTENCY, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.IDENTIFIER_CONSISTENCY, true);
+ // document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.OVERDETERMINED_MODEL, true);
+ // document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.UNITS_CONSISTENCY, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.MATHML_CONSISTENCY, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.SBO_CONSISTENCY, true);
+ // document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.MODELING_PRACTICE, true);
+ long numberOfErrors = document.checkConsistency();
+ for (int i = 0; i < numberOfErrors; i++)
+ {
+ String error = document.getError(i).getMessage();
+ message += i + ":" + error + "\n";
+ i++;
+ }
+ println(message);
+ }
+
private void mappAllEntities(org.biopax.paxtools.model.Model bioModel) throws ConversionException
{
for (Gene gene : bioModel.getObjects(Gene.class))
@@ -290,16 +314,16 @@
}
org.sbml.jsbml.Model topModel = sbmlDoc.createModel("topLevel_sbmlModel");
-
+
//TODO: add all species replacements and replacedby from toplevel_sbmlModel to submodels
CompSBMLDocumentPlugin compDoc = (CompSBMLDocumentPlugin) sbmlDoc.getPlugin(CompConstants.shortLabel);
-
+ CompModelPlugin compModel= (CompModelPlugin) sbmlDoc.getModel().getPlugin(CompConstants.shortLabel);
for(Pathway pathway : pathways)
{
org.sbml.jsbml.Model subModel = parsePathway(pathway, sbmlDoc);
- ModelDefinition modelDef = new ModelDefinition(subModel);
- compDoc.addModelDefinition(modelDef);
+ Submodel s = compModel.createSubmodel("submodel__"+subModel.getId());
+ s.setModelRef(subModel.getId());
}
return sbmlDoc.getModel();
}
@@ -328,6 +352,10 @@
{
if(entity instanceof Interaction)
{
+ if(entity instanceof Control)
+ {
+ continue;
+ }
if(mappedEntities.get(entity.getRDFId()) != null)
{
Reaction pathwayComponent = (Reaction) mappedEntities.get(entity.getRDFId());
@@ -338,7 +366,13 @@
if(sbmlModel.getSpecies(species.getId()) == null)
{
sbmlModel.addSpecies(species.clone());
+ Compartment compartment = (Compartment) getSBaseFromId(species.getCompartment());
+ if(sbmlModel.getCompartment(compartment.getId()) == null)
+ {
+ sbmlModel.addCompartment(compartment);
+ }
}
+
}
for(SpeciesReference reactant : pathwayComponent.getListOfReactants())
{
@@ -346,6 +380,11 @@
if(sbmlModel.getSpecies(species.getId()) == null)
{
sbmlModel.addSpecies(species.clone());
+ Compartment compartment = (Compartment) getSBaseFromId(species.getCompartment());
+ if(sbmlModel.getCompartment(compartment.getId()) == null)
+ {
+ sbmlModel.addCompartment(compartment);
+ }
}
}
for(SpeciesReference product : pathwayComponent.getListOfProducts())
@@ -354,6 +393,11 @@
if(sbmlModel.getSpecies(species.getId()) == null)
{
sbmlModel.addSpecies(species.clone());
+ Compartment compartment = (Compartment) getSBaseFromId(species.getCompartment());
+ if(sbmlModel.getCompartment(compartment.getId()) == null)
+ {
+ sbmlModel.addCompartment(compartment);
+ }
}
}
sbmlModel.addReaction(pathwayComponent.clone());
@@ -455,9 +499,9 @@
sbmlModel.setName(sbmlModelName);
}
- sbmlModel.setTimeUnits(UnitDefinition.TIME);
- sbmlModel.setVolumeUnits(UnitDefinition.VOLUME);
- sbmlModel.setSubstanceUnits(UnitDefinition.SUBSTANCE);
+ // sbmlModel.setTimeUnits(UnitDefinition.TIME);
+ // sbmlModel.setVolumeUnits(UnitDefinition.VOLUME);
+ // sbmlModel.setSubstanceUnits(UnitDefinition.SUBSTANCE);
return sbmlModel;
}
@@ -967,7 +1011,7 @@
sbmlSpecies.setHasOnlySubstanceUnits(true);
sbmlSpecies.setBoundaryCondition(false);
sbmlSpecies.setConstant(false);
-
+ sbmlSpecies.setInitialAmount(1);
if(entity.getXref() != null)
{
parseXref(entity.getXref(), sbmlSpecies);
@@ -1166,7 +1210,8 @@
String compartmentId = null;
if(cellLocId.contains("http://identifiers.org/"))
{
- compartmentId = parseCellularLocationURL(cellularLocVocab);
+ compartmentId = replaceInvalidSBMLcharId(parseCellularLocationURL(cellularLocVocab));
+
}
else
{
@@ -1221,13 +1266,13 @@
compartmentId = (cellLocId.length() > 10) ?
cellLocId.substring(cellLocId.length() - 10) : cellLocId;
- //check to see if cellularLocation is a URL and look up the term in identifiers.org and use its name
- if(cellLocId.contains("http://identifiers.org/go/"))
- {
- compartmentId = ontology.getTerm(compartmentId).getName().replaceAll(" ", "_");
- }
+ //check to see if cellularLocation is a URL and look up the term in identifiers.org and use its name
+ if(cellLocId.contains("http://identifiers.org/go/"))
+ {
+ compartmentId = ontology.getTerm(compartmentId).getName().replaceAll(" ", "_");
+ }
- return compartmentId;
+ return compartmentId;
}
private Compartment getDefaultCompartment(org.sbml.jsbml.Model sbmlModel)
@@ -1388,20 +1433,22 @@
private void parsePhysicalInteraction(Interaction entity) throws ConversionException
{
Reaction reaction = createReaction(entity);
- reaction.setReversible(false);
reaction.setFast(false);
if (entity instanceof TemplateReaction)
{
parseTemplateReaction((TemplateReaction) entity, reaction);
+ reaction.setReversible(false);
}
else if (entity instanceof MolecularInteraction)
{
parseMolecularInteraction((MolecularInteraction) entity, reaction);
+ reaction.setReversible(true);
}
else if (entity instanceof GeneticInteraction)
{
parseGeneticInteraction((GeneticInteraction) entity, reaction);
+ reaction.setReversible(true);
}
setInteraction_SBO(entity, reaction);
@@ -1565,7 +1612,21 @@
ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
reaction.setListOfProducts(products);
}
+ else
+ {
+ //TODO: what happens when no direction is found? Assume reversible?
+ reaction.setReversible(true);
+ //Parse for reactant/substrate
+ ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry());
+ reaction.setListOfReactants(reactants);
+
+ //Parse for product
+ ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry());
+ reaction.setListOfProducts(products);
+
+ }
+
setConversion_SBO(conversion, reaction);
}
@@ -1615,6 +1676,10 @@
for(Controller controller : controllerList)
{
ModifierSpeciesReference modifierSpecies = getModifierSpeciesReference(controller);
+ if(modifierSpecies == null)
+ {
+ continue;
+ }
modifierSpecies.setId(getValidSBMLId(control));
String modifierSpeciesName = getValidSBMLName(control);
if(modifierSpecies != null)
@@ -1648,7 +1713,9 @@
}
else
{
- throw new ConversionException("Unable to create a ModifierSpeciesReference with this entity: " + entity.getRDFId());
+ //throw new ConversionException("Unable to create a ModifierSpeciesReference with this entity: " + entity.getRDFId());
+ //TODO: if the entity is a pathway, TBD how to deal with it. maybe use annotations?
+ return null;
}
return modifierSpecies;
}
@@ -1795,7 +1862,8 @@
}
else
{
- throw new ConversionException("The reaction for " + process.getRDFId() + " must exist in the SBML Document in order to create a ModifierSpeciesReference for the Controlled interaction.");
+ //throw new ConversionException("The reaction for " + process.getRDFId() + " must exist in the SBML Document in order to create a ModifierSpeciesReference for the Controlled interaction.");
+ //TODO: if process is a pathway, then TBD how to determine. Maybe set as annotations?
}
}
Modified: trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java 2016-07-25 06:08:42 UTC (rev 681)
+++ trunk/test/org/sbfc/test/biopax2sbml/InteractionTests.java 2016-07-26 05:32:40 UTC (rev 682)
@@ -320,6 +320,32 @@
Reaction conversion = sbmlModel.getReaction("some_Conversion");
Assert.assertTrue(conversion.getSBOTerm() == SBO.getConversion());
}
+
+ private void validateSBMLFile(SBMLDocument document)
+ {
+
+ String message = "Validation Problems Found by Webservice\n";
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.GENERAL_CONSISTENCY, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.IDENTIFIER_CONSISTENCY, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.OVERDETERMINED_MODEL, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.UNITS_CONSISTENCY, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.MATHML_CONSISTENCY, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.SBO_CONSISTENCY, true);
+ document.setConsistencyChecks(org.sbml.jsbml.validator.SBMLValidator.CHECK_CATEGORY.MODELING_PRACTICE, true);
+ long numberOfErrors = document.checkConsistency();
+ for (int i = 0; i < numberOfErrors; i++)
+ {
+ String error = document.getError(i).getMessage();
+ message += i + ":" + error + "\n";
+ i++;
+ }
+ System.out.println(message);
+ }
+
+ @Test public void test_PathwayInteraction()
+ {
+
+ }
@Test public void test_InteractionReaction()
{
Modified: trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
===================================================================
--- trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java 2016-07-25 06:08:42 UTC (rev 681)
+++ trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java 2016-07-26 05:32:40 UTC (rev 682)
@@ -82,7 +82,8 @@
/**
*
*/
- @BeforeClass public static void initialSetUp()
+ //@BeforeClass
+ public static void initialSetUp()
{
/*Creates the model Factory*/
BioPAXFactory biopaxFactory = BioPAXLevel.L3.getDefaultFactory();
@@ -479,7 +480,7 @@
SBMLModel sbfcSBMLModel = InteractionTests.read_biopaxFile(owlFile);
org.sbml.jsbml.Model sbmlModel = sbfcSBMLModel.getModel();
-
+// InteractionTests.printSBMLModel(sbfcSBMLModel);
Assert.assertTrue(sbmlModel.getNumSpecies() == 5);
Species protein = sbmlModel.getSpecies("Protein_5");
@@ -562,8 +563,6 @@
SBMLModel sbfcSBMLModel = InteractionTests.read_biopaxFile(owlFile);
org.sbml.jsbml.Model sbmlModel = sbfcSBMLModel.getModel();
- InteractionTests.printSBMLModel(sbfcSBMLModel);
-
Species dna = sbmlModel.getSpecies("Dna_a5ec6c1f6963079541d8d9290eb25948");
Assert.assertTrue(dna.getId().equals("Dna_a5ec6c1f6963079541d8d9290eb25948"));
Assert.assertTrue(dna.getName().equals("HMGCS1 gene"));
@@ -888,4 +887,13 @@
}
+
+ @Test
+ public void testFile()
+ {
+ String owlFile = InteractionTests.fileDirectory + "AKT_Signaling_Pathway.owl";
+ SBMLModel sbfcSBMLModel = InteractionTests.read_biopaxFile(owlFile);
+ InteractionTests.printSBMLModel(sbfcSBMLModel);
+ }
+
}
Modified: trunk/test/org/sbfc/test/sbml2biopax/ReadingSBMLFileTests.java
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/ReadingSBMLFileTests.java 2016-07-25 06:08:42 UTC (rev 681)
+++ trunk/test/org/sbfc/test/sbml2biopax/ReadingSBMLFileTests.java 2016-07-26 05:32:40 UTC (rev 682)
@@ -9,6 +9,7 @@
import org.biopax.paxtools.model.level3.Interaction;
import org.biopax.paxtools.model.level3.Pathway;
import org.biopax.paxtools.model.level3.PhysicalEntity;
+import org.biopax.paxtools.model.level3.Protein;
import org.biopax.paxtools.model.level3.PublicationXref;
import org.biopax.paxtools.model.level3.UnificationXref;
import org.biopax.paxtools.model.level3.Xref;
@@ -226,7 +227,29 @@
@Test public void test_ProteinFile()
{
- String xmlFile = fileDirectory + "biopax3-phosphorylation-reaction.xmls";
+ String xmlFile = fileDirectory + "biopax3-phosphorylation-reaction.xml";
+ org.biopax.paxtools.model.Model bioModel = readSBMLFiles(xmlFile);
+ printBioPAXModel(bioModel);
+ Assert.assertTrue(bioModel.getObjects(Protein.class).size() == 3);
+ for (Protein protein : bioModel.getObjects(Protein.class))
+ {
+ if(protein.getRDFId().equals(XMLBase + "Protein_5"))
+ {
+ Assert.assertTrue(protein.getDisplayName().equals("CHK2"));
+ }
+ else if(protein.getRDFId().equals(XMLBase + "Protein_16"))
+ {
+ Assert.assertTrue(protein.getDisplayName().equals("CHK2"));
+ }
+ else if(protein.getRDFId().equals(XMLBase + "Protein_27"))
+ {
+ Assert.assertTrue(protein.getDisplayName().equals("ATM"));
+ }
+ else
+ {
+ Assert.assertTrue(false);
+ }
+ }
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|