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: <tra...@us...> - 2016-06-23 05:01:25
|
Revision: 656
http://sourceforge.net/p/sbfc/code/656
Author: tramy-nguyen
Date: 2016-06-23 05:01:22 +0000 (Thu, 23 Jun 2016)
Log Message:
-----------
- Added parsing for multiple pathways in a biopax model.
- Need to replace SBML exceptions with ConversionException for conversion.
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-06-22 18:54:54 UTC (rev 655)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-23 05:01:22 UTC (rev 656)
@@ -33,6 +33,7 @@
import javax.xml.stream.XMLStreamException;
import org.biopax.paxtools.model.BioPAXElement;
+import org.biopax.paxtools.model.BioPAXLevel;
import org.biopax.paxtools.model.Model;
import org.biopax.paxtools.model.level3.BiochemicalReaction;
import org.biopax.paxtools.model.level3.Catalysis;
@@ -129,21 +130,48 @@
// Create the SBML document to convert Biopax information to
SBMLDocument sbmlDoc = new SBMLDocument(sbmlLevel, sbmlVer);
-
- // Convert biopax pathway to sbml model
SBMLModel model = new SBMLModel(sbmlDoc);
- org.sbml.jsbml.Model sbmlModel = sbmlDoc.createModel();
-
+ //Get biopax model for conversion
org.biopax.paxtools.model.Model bioModel = biopaxmodel.getModel();
biopaxPrefixID = bioModel.getXmlBase(); //The URL prefix for biopax RDFId
- if(bioModel == null) {
- throw new ReadModelException("BioPAX2SBML: The provided biopax file is invalid.");
+
+ //Check that the biomodel can only be level 3
+ if (bioModel.getLevel().equals(BioPAXLevel.L3))
+ {
+ Set<Pathway> pathways = bioModel.getObjects(Pathway.class);
+ //Check if biopax file contains any pathways to parse
+ if (pathways!=null && pathways.size()>0)
+ {
+ for(Pathway pathway : pathways)
+ {
+ org.sbml.jsbml.Model sbmlModel = addSBMLModel(pathway, sbmlDoc);
+ addSBMLHistory(sbmlModel);
+ addSBMLNotes(sbmlModel);
+
+ //TODO: How to get gene ontologies and pubmed? ANSWER: Use miriam and xref
+
+ parseEntities(bioModel, sbmlModel);
+ }
+
+ }
+ //TODO: Throw exception for no pathway or ignore?
+// else
+// throw new ConversionException("There are no Level 3 Pathways to convert into an SBML Model");
}
+ //TODO: Throw conversionException?
+// else
+// throw new ConversionException("BioPAX2SBML currently supports BioPAX Level 3 to SBML Level "
+// + sbmlLevel +" Version " + sbmlVer + " Conversion");
- // TODO: Currently assume each input biopax file contains one pathway and pathway is lvl 3.1.
- org.biopax.paxtools.model.level3.Pathway pathway = bioModel.getObjects(Pathway.class).iterator().next();
+ return model;
+ }
+
+ private org.sbml.jsbml.Model addSBMLModel( Pathway pathway, SBMLDocument sbmlDoc)
+ {
+ // Convert biopax pathway to sbml model
+ org.sbml.jsbml.Model sbmlModel = sbmlDoc.createModel();
sbmlModel.setId(pathway.toString());
//TODO: a metaId must be used if MIRIAM annotation is used for annotation
@@ -153,14 +181,25 @@
sbmlModel.setSubstanceUnits(UnitDefinition.SUBSTANCE);
sbmlModel.setName(pathway.getDisplayName());
+ return sbmlModel;
+ }
+
+ private void addSBMLHistory(org.sbml.jsbml.Model sbmlModel)
+ {
History hist = new History();
Creator creator = new Creator();
creator.setOrganisation("GSoC 2016, National Resource for Network Biology");
hist.addCreator(creator);
+
+ //TODO: create a seperate method for setting sbml annotation
Annotation annot = new Annotation();
sbmlModel.setAnnotation(annot);
+
sbmlModel.setHistory(hist);
-
+ }
+
+ private void addSBMLNotes(org.sbml.jsbml.Model sbmlModel)
+ {
StringBuffer notes = new StringBuffer(notesStartString);
notes.append(String.format("<p>This model has been automatically generated by BioPAX2SBML</p>"));
notes.append(notesEndString);
@@ -173,12 +212,6 @@
// TODO Unable to set SBML notes. Find how to set up warning message?
e.printStackTrace();
}
-
- //TODO: How to get gene ontologies and pubmed? ANSWER: Use miriam and xref
-
- parseEntities(bioModel, sbmlModel);
-
- return model;
}
private void parseEntities(Model bioModel, org.sbml.jsbml.Model sbmlModel)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-06-22 18:54:57
|
Revision: 655
http://sourceforge.net/p/sbfc/code/655
Author: tramy-nguyen
Date: 2016-06-22 18:54:54 +0000 (Wed, 22 Jun 2016)
Log Message:
-----------
- added parser for PhysicalInteraction and sbo terms for GeneticInteraction and MolecularInteraction. Currently left TemplateReaction as "SBO:xxxxxxx"
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-06-22 05:15:40 UTC (rev 654)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-22 18:54:54 UTC (rev 655)
@@ -48,8 +48,10 @@
import org.biopax.paxtools.model.level3.DnaRegion;
import org.biopax.paxtools.model.level3.Entity;
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.Pathway;
import org.biopax.paxtools.model.level3.PhysicalEntity;
import org.biopax.paxtools.model.level3.Protein;
@@ -381,12 +383,38 @@
{
parseConversionInteraction((Conversion) entity, sbmlModel);
}
- if (Control.class.isAssignableFrom(entity.getClass()))
+ else if (Control.class.isAssignableFrom(entity.getClass()))
{
parseControlInteraction((Control) entity, sbmlModel);
}
+ else //TODO: TemplateReaction, GeneticInteraction, and MolecularInteraction
+ parsePhysicalInteraction(entity, sbmlModel);
+
}
+
+ private void parsePhysicalInteraction(Interaction entity, org.sbml.jsbml.Model sbmlModel)
+ {
+ Reaction reaction = setReaction(entity, sbmlModel);
+ setPhysicalInteractionSBO(entity, reaction);
+ }
+
+ private void setPhysicalInteractionSBO(Interaction entity, Reaction reaction)
+ {
+ if (TemplateReaction.class.isAssignableFrom(entity.getClass()))
+ {
+ reaction.setSBOTerm("SBO:xxxxxxx"); //TODO: ask
+ }
+ else if (GeneticInteraction.class.isAssignableFrom(entity.getClass()))
+ {
+ reaction.setSBOTerm(SBO.getGeneticInteraction());
+ }
+ else if (MolecularInteraction.class.isAssignableFrom(entity.getClass()))
+ {
+ reaction.setSBOTerm(SBO.getMolecularInteraction());
+ }
+ }
+
private void parseConversionInteraction(Conversion conversion, org.sbml.jsbml.Model sbmlModel)
{
Reaction reaction = setReaction(conversion, sbmlModel);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-06-22 05:15:44
|
Revision: 654
http://sourceforge.net/p/sbfc/code/654
Author: tramy-nguyen
Date: 2016-06-22 05:15:40 +0000 (Wed, 22 Jun 2016)
Log Message:
-----------
Added SBO terms for Biopax2SBML conversion by calling the jsbml get() for the following terms:
- TemplateReactionRegulation
- ComplexAssembly
- BiochemicalReaction
- TransportWithBiochemicalReaction
- Degradation
- Conversion
- Dna
- SmallMolecule
I have not yet added the remaining SBO terms for ModifierSpeciesReference since I am not sure what SBO values these terms should be.
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-06-21 22:51:20 UTC (rev 653)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-22 05:15:40 UTC (rev 654)
@@ -360,9 +360,9 @@
else if (Complex.class.isAssignableFrom(entity.getClass()))
sbmlSpecies.setSBOTerm(SBO.getComplex());
else if (Protein.class.isAssignableFrom(entity.getClass()))
- sbmlSpecies.setSBOTerm("SBO:0000297");
+ sbmlSpecies.setSBOTerm(SBO.getProtein());
else if (Dna.class.isAssignableFrom(entity.getClass()))
- sbmlSpecies.setSBOTerm("SBO:0000251");
+ sbmlSpecies.setSBOTerm(SBO.getDNA()); //"SBO:0000251"
else if (DnaRegion.class.isAssignableFrom(entity.getClass()))
sbmlSpecies.setSBOTerm("SBO:0000251"); //TODO: DNARegion ?
else if (Rna.class.isAssignableFrom(entity.getClass()))
@@ -370,7 +370,7 @@
else if (RnaRegion.class.isAssignableFrom(entity.getClass()))
sbmlSpecies.setSBOTerm("SBO:0000250"); //TODO: RNARegion ?
else if (SmallMolecule.class.isAssignableFrom(entity.getClass()))
- sbmlSpecies.setSBOTerm("SBO:0000247");
+ sbmlSpecies.setSBOTerm(SBO.getSmallMolecule()); //"SBO:0000247"
return;
}
@@ -423,10 +423,14 @@
private void parseControlInteraction(Control control, org.sbml.jsbml.Model sbmlModel)
{
//parse controlled
- List<Reaction> modifierReactionList = parseControlledInteraction(control.getControlled(), sbmlModel);
+ List<Reaction> controlledReactionList = parseControlledInteraction(control.getControlled(), sbmlModel);
+ //TODO: check if modifierReaction list is empty. If empty, throw exception?
+ if(controlledReactionList.isEmpty())
+ throw new SBMLException("Unable to create any SBML Reactions from biopax Controlled Reactions");
+
//parse controller
- parseControllerInteraction(control.getController(), control.getControlType(), modifierReactionList);
+ parseControllerInteraction(control.getController(), control.getControlType(), controlledReactionList);
}
private void parseControllerInteraction(Set<Controller> controllerList, ControlType controlType,
@@ -500,10 +504,7 @@
}
}
-
- //TODO: check if modifierReaction list is empty. If empty, throw exception?
-
-
+
return modifierReactionList;
}
@@ -594,7 +595,7 @@
else if (Modulation.class.isAssignableFrom(entity.getClass()))
reaction.setSBOTerm(SBO.getModulation());
else if(TemplateReactionRegulation.class.isAssignableFrom(entity.getClass()))
- reaction.setSBOTerm("SBO:0000343");
+ reaction.setSBOTerm(SBO.getTemplateReactionRegulation()); //"SBO:0000343"
return;
}
@@ -603,19 +604,18 @@
private void setConversionSBO(Conversion entity, Reaction reaction)
{
if (ComplexAssembly.class.isAssignableFrom(entity.getClass()))
- reaction.setSBOTerm("SBO:0000177");
+ reaction.setSBOTerm(SBO.getComplexAssembly()); //"SBO:0000177"
else if (BiochemicalReaction.class.isAssignableFrom(entity.getClass()))
- reaction.setSBOTerm("SBO:0000176");
+ reaction.setSBOTerm(SBO.getBiochemicalReaction()); //"SBO:0000176"
else if (TransportWithBiochemicalReaction.class.isAssignableFrom(entity.getClass()))
- reaction.setSBOTerm("SBO:0000167");
+ reaction.setSBOTerm(SBO.getTransportWithBiochemicalReaction()); //"SBO:0000167"
else if (Transport.class.isAssignableFrom(entity.getClass()))
reaction.setSBOTerm(SBO.getTransport());
else if (Degradation.class.isAssignableFrom(entity.getClass()))
- reaction.setSBOTerm("SBO:0000179");
+ reaction.setSBOTerm(SBO.getDegradation()); //"SBO:0000179"
else if (Conversion.class.isAssignableFrom(entity.getClass()))
- reaction.setSBOTerm("SBO:0000182");
+ reaction.setSBOTerm(SBO.getConversion()); //"SBO:0000182"
- return;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-06-21 22:51:22
|
Revision: 653
http://sourceforge.net/p/sbfc/code/653
Author: tramy-nguyen
Date: 2016-06-21 22:51:20 +0000 (Tue, 21 Jun 2016)
Log Message:
-----------
- Finished implementing method to set SBO values for ModifierSpeciesReference for biopax Control Interaction. However, not all SBO values were set correctly. These incorrect SBO values are marked as TODOs and are currently set to SBO:xxxxxxx
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-06-21 07:13:56 UTC (rev 652)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-21 22:51:20 UTC (rev 653)
@@ -24,7 +24,9 @@
*/
package org.sbfc.converter.biopax2sbml;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -37,6 +39,7 @@
import org.biopax.paxtools.model.level3.Complex;
import org.biopax.paxtools.model.level3.ComplexAssembly;
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.ConversionDirectionType;
@@ -381,22 +384,18 @@
if (Control.class.isAssignableFrom(entity.getClass()))
{
parseControlInteraction((Control) entity, sbmlModel);
- //TODO: Should I attach sbo term for control level vs. attaching sbo term on controlled level for the sbml modifier reactions?
-// setControlSBO((Control) entity, r);
}
}
private void parseConversionInteraction(Conversion conversion, org.sbml.jsbml.Model sbmlModel)
{
- //TODO: Check biopax interaction for direction and set sbml reaction direction
- // reversible should set reaction.setReversible to true
- // all other should be set to false
Reaction reaction = setReaction(conversion, sbmlModel);
- //TODO: not all conversionInteraction is conversionDirection?
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(), sbmlModel);
reaction.setListOfReactants(reactants);
@@ -407,6 +406,8 @@
}
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(), sbmlModel);
reaction.setListOfReactants(reactants);
@@ -421,62 +422,89 @@
private void parseControlInteraction(Control control, org.sbml.jsbml.Model sbmlModel)
{
- control.getControlType();
+ //parse controlled
+ List<Reaction> modifierReactionList = parseControlledInteraction(control.getControlled(), sbmlModel);
//parse controller
- ListOf<ModifierSpeciesReference> modifierList = parseControllerInteraction(control.getController());
-
- //parse controlled
- parseControlledInteraction(control.getControlled(), modifierList, sbmlModel);
-
+ parseControllerInteraction(control.getController(), control.getControlType(), modifierReactionList);
}
- private ListOf<ModifierSpeciesReference> parseControllerInteraction(Set<Controller> controllerList)
+ private void parseControllerInteraction(Set<Controller> controllerList, ControlType controlType,
+ List<Reaction> controlledReactionList)
{
ListOf<ModifierSpeciesReference> modifierSpeciesReferencesList = new ListOf<ModifierSpeciesReference>();
- if (controllerList.size() >= 1)
- {
- for (Controller controller : controllerList)
- {
- ModifierSpeciesReference modifierSpecies = new ModifierSpeciesReference();
- if (PhysicalEntity.class.isAssignableFrom(controller.getClass()))
- {
- if(biopax2sbmlId.containsKey(controller.getRDFId()))
- {
- //Get list of modifiers from these controllers that get converted to sbml species
- modifierSpecies.setSpecies(biopax2sbmlId.get(controller.getRDFId()));
- }
- modifierSpeciesReferencesList.add(modifierSpecies);
- }
- }
- }
-
- return modifierSpeciesReferencesList;
+ for(Reaction controlledReaction : controlledReactionList)
+ {
+ if(controllerList.size() >= 1)
+ {
+ for(Controller controller : controllerList)
+ {
+ if(biopax2sbmlId.containsKey(controller.getRDFId()))
+ {
+ ModifierSpeciesReference modifierSpecies = new ModifierSpeciesReference();
+ modifierSpecies.setSpecies(biopax2sbmlId.get(controller.getRDFId()));
+ modifierSpeciesReferencesList.add(modifierSpecies);
+
+ setModifierSpeciesRefSBO(controlType, modifierSpecies);
+ controlledReaction.addModifier(modifierSpecies);
+ }
+ else
+ throw new SBMLException("The species for " + controller.getRDFId() + " must exist in the SBML Document in order to create a ModifierSpeciesReference for the controller interaction.");
+ }
+ }
+ }
}
- private void parseControlledInteraction(Set<org.biopax.paxtools.model.level3.Process> controlledList,
- ListOf<ModifierSpeciesReference> modifierList,
+ private void setModifierSpeciesRefSBO(ControlType controlType, ModifierSpeciesReference modifierSpecies)
+ {
+ if(controlType.equals(ControlType.ACTIVATION))
+ modifierSpecies.setSBOTerm(SBO.getStimulator()); //TODO: verify
+ else if(controlType.equals(ControlType.ACTIVATION_ALLOSTERIC))
+ modifierSpecies.setSBOTerm(SBO.getEssentialActivator()); //TODO: verify
+ else if(controlType.equals(ControlType.ACTIVATION_NONALLOSTERIC))
+ modifierSpecies.setSBOTerm(SBO.getNonEssentialActivator()); //TODO: verify
+ else if(controlType.equals(ControlType.INHIBITION))
+ modifierSpecies.setSBOTerm(SBO.getInhibition());
+ else if(controlType.equals(ControlType.INHIBITION_ALLOSTERIC))
+ modifierSpecies.setSBOTerm("SBO:xxxxxxx"); //TODO: ASK
+ else if(controlType.equals(ControlType.INHIBITION_COMPETITIVE))
+ modifierSpecies.setSBOTerm("SBO:0000206"); //TODO: verify
+ else if(controlType.equals(ControlType.INHIBITION_IRREVERSIBLE))
+ modifierSpecies.setSBOTerm("SBO:xxxxxxx"); //TODO: ASK
+ else if(controlType.equals(ControlType.INHIBITION_NONCOMPETITIVE))
+ modifierSpecies.setSBOTerm("SBO:0000207"); //TODO: verify
+ else if(controlType.equals(ControlType.INHIBITION_OTHER))
+ modifierSpecies.setSBOTerm("SBO:xxxxxxx"); //TODO: ASK
+ else if(controlType.equals(ControlType.INHIBITION_UNCOMPETITIVE))
+ modifierSpecies.setSBOTerm("SBO:0000207"); //TODO: verify
+ }
+
+ private List<Reaction> parseControlledInteraction(Set<org.biopax.paxtools.model.level3.Process> controlledList,
org.sbml.jsbml.Model sbmlModel)
{
+ List<Reaction> modifierReactionList = new ArrayList<Reaction>();
if (controlledList.size() > 0)
{
for (org.biopax.paxtools.model.level3.Process process : controlledList)
{
- //Check if this process rdfId contains in the hashmap table to see if sbml has this reaction id.
- // get that equivalent sbml reaction and add the set modifierSpeciesReference
+ //Check if this process rdfId contains in the hashmap table to see if sbml has this reaction id.
+ // get that equivalent sbml reaction and add the list of modifier reaction
if(biopax2sbmlId.containsKey(process.getRDFId()))
{
Reaction modifierReaction = sbmlModel.getReaction(biopax2sbmlId.get(process.getRDFId()));
- for(ModifierSpeciesReference modifier : modifierList)
- {
- modifierReaction.addModifier(modifier);
- }
- //TODO: add SBO terms for modifier reactions
+ modifierReactionList.add(modifierReaction);
}
-
+ else
+ throw new SBMLException("The reaction for " + process.getRDFId() + " must exist in the SBML Document in order to create a ModifierSpeciesReference for the Controlled interaction.");
+
}
}
+
+ //TODO: check if modifierReaction list is empty. If empty, throw exception?
+
+
+ return modifierReactionList;
}
@@ -496,7 +524,7 @@
speciesRef.setSpecies(biopax2sbmlId.get(p.getRDFId()));
}
else
- throw new SBMLException("Could not get corresponding species for " + p.getRDFId());
+ throw new SBMLException("Could not find corresponding species for " + p.getRDFId() + "to construct reacion reactant or product");
/* Default settings for sbml SpeciesReference required attributes
* setConstant(true) :
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-06-21 07:13:59
|
Revision: 652
http://sourceforge.net/p/sbfc/code/652
Author: tramy-nguyen
Date: 2016-06-21 07:13:56 +0000 (Tue, 21 Jun 2016)
Log Message:
-----------
- Forgot to check that when getting biopax id, it sometimes but not always return a URL version of the rdfId(). When this happens, make sure that the flag that indicates there is an available xmlBase is not null before retrieving the rdfId. This check is not fixed and getValidSBMlId() is working when running the conversion.
- Implemented controlled and controller for control Interaction. Still need to add in the corresponding SBO terms for the modifiers when parsing the controlled interaction
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-06-20 07:32:39 UTC (rev 651)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-21 07:13:56 UTC (rev 652)
@@ -220,7 +220,7 @@
private String getValidSBMLId(BioPAXElement entity)
{
String RDFId = entity.getRDFId();
- if(RDFId.startsWith(biopaxPrefixID))
+ if(biopaxPrefixID != null && RDFId.startsWith(biopaxPrefixID))
RDFId = RDFId.replaceFirst(biopaxPrefixID, "");
if(biopax2sbmlId.containsKey(entity.getRDFId()))
@@ -374,26 +374,28 @@
private void parseInteractions(Interaction entity, org.sbml.jsbml.Model sbmlModel)
{
- Reaction r = setReaction(entity, sbmlModel);
-
if (Conversion.class.isAssignableFrom(entity.getClass()))
{
parseConversionInteraction((Conversion) entity, sbmlModel);
}
if (Control.class.isAssignableFrom(entity.getClass()))
{
- //TODO: Check if control has Controller and Controlled object to create a reaction out of
parseControlInteraction((Control) entity, sbmlModel);
- setControlSBO((Control) entity, r);
+ //TODO: Should I attach sbo term for control level vs. attaching sbo term on controlled level for the sbml modifier reactions?
+// setControlSBO((Control) entity, r);
}
}
private void parseConversionInteraction(Conversion conversion, org.sbml.jsbml.Model sbmlModel)
{
+ //TODO: Check biopax interaction for direction and set sbml reaction direction
+ // reversible should set reaction.setReversible to true
+ // all other should be set to false
Reaction reaction = setReaction(conversion, sbmlModel);
- if(conversion.getConversionDirection().equals(ConversionDirectionType.LEFT_TO_RIGHT) ||
- conversion.getConversionDirection().equals(ConversionDirectionType.REVERSIBLE))
+ //TODO: not all conversionInteraction is conversionDirection?
+ if( conversion.getConversionDirection() != null && (conversion.getConversionDirection().equals(ConversionDirectionType.LEFT_TO_RIGHT) ||
+ conversion.getConversionDirection().equals(ConversionDirectionType.REVERSIBLE)))
{
//Parse for reactant/substrate
ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry(), sbmlModel);
@@ -403,7 +405,7 @@
ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry(), sbmlModel);
reaction.setListOfProducts(products);
}
- else if(conversion.getConversionDirection().equals(ConversionDirectionType.RIGHT_TO_LEFT))
+ else if( conversion.getConversionDirection() != null && (conversion.getConversionDirection().equals(ConversionDirectionType.RIGHT_TO_LEFT)))
{
//Parse for reactant/substrate
ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry(), sbmlModel);
@@ -419,67 +421,62 @@
private void parseControlInteraction(Control control, org.sbml.jsbml.Model sbmlModel)
{
- //TODO:
- Set<Controller> controllerList = control.getController();
- Set<org.biopax.paxtools.model.level3.Process> controlledList = control.getControlled();
control.getControlType();
//parse controller
- if (controllerList.size() >= 1)
+ ListOf<ModifierSpeciesReference> modifierList = parseControllerInteraction(control.getController());
+
+ //parse controlled
+ parseControlledInteraction(control.getControlled(), modifierList, sbmlModel);
+
+ }
+
+ private ListOf<ModifierSpeciesReference> parseControllerInteraction(Set<Controller> controllerList)
+ {
+ ListOf<ModifierSpeciesReference> modifierSpeciesReferencesList = new ListOf<ModifierSpeciesReference>();
+
+ if (controllerList.size() >= 1)
{
for (Controller controller : controllerList)
{
+ ModifierSpeciesReference modifierSpecies = new ModifierSpeciesReference();
if (PhysicalEntity.class.isAssignableFrom(controller.getClass()))
{
-
+ if(biopax2sbmlId.containsKey(controller.getRDFId()))
+ {
+ //Get list of modifiers from these controllers that get converted to sbml species
+ modifierSpecies.setSpecies(biopax2sbmlId.get(controller.getRDFId()));
+ }
+ modifierSpeciesReferencesList.add(modifierSpecies);
}
- else if (Pathway.class.isAssignableFrom(controller.getClass()))
- {
-
- }
}
}
-
- //parse controlled
- if (controlledList.size() > 0)
+
+ return modifierSpeciesReferencesList;
+ }
+
+ private void parseControlledInteraction(Set<org.biopax.paxtools.model.level3.Process> controlledList,
+ ListOf<ModifierSpeciesReference> modifierList,
+ org.sbml.jsbml.Model sbmlModel)
+ {
+ if (controlledList.size() > 0)
{
for (org.biopax.paxtools.model.level3.Process process : controlledList)
{
- if (BiochemicalReaction.class.isAssignableFrom(process.getClass()))
+ //Check if this process rdfId contains in the hashmap table to see if sbml has this reaction id.
+ // get that equivalent sbml reaction and add the set modifierSpeciesReference
+ if(biopax2sbmlId.containsKey(process.getRDFId()))
{
- BiochemicalReaction br = (BiochemicalReaction) process;
+ Reaction modifierReaction = sbmlModel.getReaction(biopax2sbmlId.get(process.getRDFId()));
+ for(ModifierSpeciesReference modifier : modifierList)
+ {
+ modifierReaction.addModifier(modifier);
+ }
+ //TODO: add SBO terms for modifier reactions
}
- else if (ComplexAssembly.class.isAssignableFrom(process.getClass()))
- {
- ComplexAssembly ca = (ComplexAssembly) process;
- }
- else if (Conversion.class.isAssignableFrom(process.getClass()))
- {
- Conversion conversion = (Conversion) process;
- }
- else if (Degradation.class.isAssignableFrom(process.getClass()))
- {
- Degradation d = (Degradation) process;
- }
- else if (Transport.class.isAssignableFrom(process.getClass()))
- {
- Transport t = (Transport) process;
- }
- else if (TransportWithBiochemicalReaction.class.isAssignableFrom(process.getClass()))
- {
- TransportWithBiochemicalReaction tbr = (TransportWithBiochemicalReaction) process;
- }
- else if (Pathway.class.isAssignableFrom(process.getClass()))
- {
- Pathway p = (Pathway) process;
- }
- else if (TemplateReaction.class.isAssignableFrom(process.getClass()))
- {
- TemplateReaction tr = (TemplateReaction) process;
- }
+
}
}
-
}
@@ -558,7 +555,7 @@
* Assume reaction can't go reverse direction so set to false
*/
reaction.setFast(false);
- reaction.setReversible(false);
+ reaction.setReversible(false); // TODO: set base on biopax direction
return reaction;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-06-20 07:32:42
|
Revision: 651
http://sourceforge.net/p/sbfc/code/651
Author: tramy-nguyen
Date: 2016-06-20 07:32:39 +0000 (Mon, 20 Jun 2016)
Log Message:
-----------
The following changes were made:
- Resolved all SBO terms set with TODOs to verify validity of SBO values with its corresponding sbo value. For now, DNA region and RNA region will be set to the sbo terms for DNA and RNA.
- Altered code to make use of jsbml syntax checker rather than own syntax checker
- Have implemented a method to get valid sbml id
- Have implemented a method to get valid sbml name
- Wrote implementation to convert biopax Conversion Interaction to sbml reactions that attaches reactants and products to the reaction with its corresponding stoichiometry value
- Went through sbml compartments, model, species, and reactions to add in required fields for sbml.
- Modified setCompartment() to make use of RDFId rather than converting cellularLocation to a String when setting sbml compartment to a valid id
- Started working on converting biopax control interaction to sbml reaction that will contain sbml modifiers.
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-06-17 09:51:52 UTC (rev 650)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-20 07:32:39 UTC (rev 651)
@@ -24,19 +24,20 @@
*/
package org.sbfc.converter.biopax2sbml;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Set;
import javax.xml.stream.XMLStreamException;
+import org.biopax.paxtools.model.BioPAXElement;
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.CellularLocationVocabulary;
import org.biopax.paxtools.model.level3.Complex;
import org.biopax.paxtools.model.level3.ComplexAssembly;
import org.biopax.paxtools.model.level3.Control;
+import org.biopax.paxtools.model.level3.Controller;
import org.biopax.paxtools.model.level3.Conversion;
import org.biopax.paxtools.model.level3.ConversionDirectionType;
import org.biopax.paxtools.model.level3.Degradation;
@@ -53,6 +54,7 @@
import org.biopax.paxtools.model.level3.RnaRegion;
import org.biopax.paxtools.model.level3.SmallMolecule;
import org.biopax.paxtools.model.level3.Stoichiometry;
+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;
@@ -68,6 +70,8 @@
import org.sbml.jsbml.Compartment;
import org.sbml.jsbml.Creator;
import org.sbml.jsbml.History;
+import org.sbml.jsbml.ListOf;
+import org.sbml.jsbml.ModifierSpeciesReference;
import org.sbml.jsbml.Reaction;
import org.sbml.jsbml.SBMLDocument;
import org.sbml.jsbml.SBMLException;
@@ -85,8 +89,19 @@
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)); }
- public static boolean isDelimiter(char c) { return ((c != 65534) && (c != 65535)); }
+ protected final static int sbmlLevel = 3;
+ protected final static int sbmlVer = 1;
+
+ //Keep track of the mapping between biopax RDFId and SBML id.
+ private Map<String, String> biopax2sbmlId;
+
+ //Counter for creating new SBML id
+ private int globalSBMLId;
+
+ //The URL prefix for biopax RDFId
+ private String biopaxPrefixID;
+
// creation of the link to the web services
public static RegistryLocalProvider link;
@@ -101,9 +116,13 @@
}
public SBMLModel sbmlExport(BioPAXModel biopaxmodel) throws SBMLException, ConversionException, ReadModelException {
+ //Keep track of the mapping between biopax RDFId to SBML id;
+ biopax2sbmlId = new HashMap<String, String>();
+
+ //Counter for creating new SBML id
+ globalSBMLId = 0;
+
// Create the SBML document to convert Biopax information to
- int sbmlLevel = 3;
- int sbmlVer = 1;
SBMLDocument sbmlDoc = new SBMLDocument(sbmlLevel, sbmlVer);
// Convert biopax pathway to sbml model
@@ -112,6 +131,8 @@
org.biopax.paxtools.model.Model bioModel = biopaxmodel.getModel();
+ biopaxPrefixID = bioModel.getXmlBase(); //The URL prefix for biopax RDFId
+
if(bioModel == null) {
throw new ReadModelException("BioPAX2SBML: The provided biopax file is invalid.");
}
@@ -120,7 +141,7 @@
org.biopax.paxtools.model.level3.Pathway pathway = bioModel.getObjects(Pathway.class).iterator().next();
sbmlModel.setId(pathway.toString());
- //TODO: Should I set metaId to rdfId and should I check for valid MetaId?
+ //TODO: a metaId must be used if MIRIAM annotation is used for annotation
sbmlModel.setMetaId("meta_" + pathway.toString());
sbmlModel.setTimeUnits(UnitDefinition.TIME);
sbmlModel.setVolumeUnits(UnitDefinition.VOLUME);
@@ -166,42 +187,82 @@
}
}
- private String parsePhysicalEntity(PhysicalEntity entity, org.sbml.jsbml.Model sbmlModel)
+ private void parsePhysicalEntity(PhysicalEntity entity, org.sbml.jsbml.Model sbmlModel)
{
String speciesId = getValidSBMLId(entity);
- if(!sbmlModel.containsSpecies(speciesId))
- {
- Species sbmlSpecies = setSpecies(sbmlModel, speciesId, entity);
- setPhysicalEntitySBO(entity, sbmlSpecies);
- }
-
- return speciesId;
+ Species sbmlSpecies = setSpecies(sbmlModel, speciesId, entity);
+ setPhysicalEntitySBO(entity, sbmlSpecies);
}
- private String getValidSBMLName(PhysicalEntity entity)
+ private String getValidSBMLName(BioPAXElement entity)
{
- // Assume that the biopax displayName and RDFId given is valid strings. Expect biopax input file to be valid.
- if(entity.getDisplayName() != null && entity.getDisplayName().length() > 0 && isValidSBMLname(entity.getDisplayName()))
- return entity.getDisplayName();
- else if(entity.getRDFId() != null && entity.getRDFId().length() > 0 && isValidSBMLname(entity.getRDFId()))
+ if(entity instanceof org.biopax.paxtools.model.level3.Named)
+ {
+ org.biopax.paxtools.model.level3.Named entityName = (org.biopax.paxtools.model.level3.Named) entity;
+ if(entityName.getDisplayName() != null)
+ {
+ return entityName.getDisplayName();
+ }
+ else if(entityName.getName().size() > 0)
+ {
+ return entityName.getName().iterator().next();
+ }
+ }
+
+ if(entity.getRDFId() != null)
+ {
return entity.getRDFId();
+ }
- //Since name is optional in SBML, don't set sbml name if getValidSBMLName returns null
return null;
}
- private String getValidSBMLId(Entity entity)
+ private String getValidSBMLId(BioPAXElement entity)
{
- if(entity.getRDFId() != null && entity.getRDFId().length() > 0
- && isValidSBMLId(entity.getRDFId()))
- return entity.getRDFId();
+ String RDFId = entity.getRDFId();
+ if(RDFId.startsWith(biopaxPrefixID))
+ RDFId = RDFId.replaceFirst(biopaxPrefixID, "");
- //TODO: Need to come up with better secure conventional id...
- String conventionId = "";
- return conventionId;
+ if(biopax2sbmlId.containsKey(entity.getRDFId()))
+ return biopax2sbmlId.get(entity.getRDFId());
+ else if(org.sbml.jsbml.validator.SyntaxChecker.isValidId(RDFId, sbmlLevel, sbmlVer))
+ {
+ biopax2sbmlId.put(entity.getRDFId(), RDFId);
+ return RDFId;
+ }
+
+ //Convention for an SBML Id if the entity returns an invalid RDFId.
+ String newSBMLId = replaceInvalidSBMLcharId(RDFId);
+ biopax2sbmlId.put(entity.getRDFId(), newSBMLId);
+
+ return newSBMLId;
}
+ private String replaceInvalidSBMLcharId(String id)
+ {
+ String result = id;
+
+ if(id.charAt(0) != '_' && !isLetter(id.charAt(0)))
+ result = result.replace(id.charAt(0), '_');
+
+ for (int i = 1; i < id.length(); i++)
+ {
+ if(!isLetter(id.charAt(i)) && !isDigit(id.charAt(i)) && id.charAt(i) != '_')
+ result = result.replace(id.charAt(i), '_');
+ }
+
+ //Check if new valid sbml id contains in mapping of biopax2sbmlId.
+ //If new valid sbml id already exist in mapping, then continue generating new characters until becomes new valid sbml id to add to map
+ String temp = result;
+ while(biopax2sbmlId.containsKey(temp))
+ temp = result + '_' + ++globalSBMLId;
+
+ result = temp;
+
+ return result;
+ }
+
private Species setSpecies(org.sbml.jsbml.Model sbmlModel, String speciesId, PhysicalEntity entity)
{
Species sbmlSpecies = sbmlModel.createSpecies(speciesId, setCompartment(sbmlModel, entity));
@@ -211,26 +272,23 @@
if(speciesName != null)
sbmlSpecies.setName(speciesName);
- //TODO: verify if the following are set correctly since sbml requires these members to be set
+ /* 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);
return sbmlSpecies;
}
- private boolean isValidSBMLId(String id)
- {
- if(id.charAt(0) != '_' && !isLetter(id.charAt(0)))
- return false;
-
- for (int i = 1; i < id.length(); i++)
- {
- if(!isLetter(id.charAt(i)) && !isDigit(id.charAt(i)) && id.charAt(i) != '_')
- return false;
- }
- return true;
- }
-
private boolean isValidSBMLmetaId(String metaId)
{
if(!isLetter(metaId.charAt(0)) && metaId.charAt(0) != '_' && metaId.charAt(0) != ':' )
@@ -245,42 +303,46 @@
return true;
}
- private boolean isValidSBMLname(String name)
+ private Compartment setCompartment(org.sbml.jsbml.Model sbmlModel,
+ PhysicalEntity entity)
{
- for(int i = 0; i < name.length(); i++)
+ // Check if the compartment already exist in the sbml model
+ if (entity.getCellularLocation() != null)
{
- if(isDelimiter(name.charAt(i)))
- return false;
- }
- return true;
- }
-
- private Compartment setCompartment(org.sbml.jsbml.Model sbmlModel, PhysicalEntity entity)
- {
- //Check if the compartment already exist in the sbml model
- if(entity.getCellularLocation() != null)
- {
- if( isValidSBMLId(entity.getCellularLocation().toString()) && sbmlModel.containsCompartment(entity.getCellularLocation().toString()))
+ //Assume biopax RDFId is never empty
+ if (org.sbml.jsbml.validator.SyntaxChecker.isValidId(entity.getCellularLocation().getRDFId(), sbmlLevel, sbmlVer))
{
- return sbmlModel.getCompartment(entity.getCellularLocation().toString());
+ if (sbmlModel.containsCompartment(entity.getCellularLocation()
+ .getRDFId()))
+ {
+ return sbmlModel.getCompartment(entity
+ .getCellularLocation().getRDFId());
+ }
+ else
+ {
+ org.sbml.jsbml.Compartment compartment = sbmlModel.createCompartment((entity.getCellularLocation().getRDFId()));
+
+ /*
+ * 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.getCompartment());
+ compartment.setConstant(true);
+ return compartment;
+ }
}
- else
- {
- //TODO: how to deal with a cellularlocation that exist but the name of the cellularLocation is not valid sbml name to set id of sbml compartment?
- // I can't call getValidSBMLId for this class because cellularLocation does not contain an RDFId.
- org.sbml.jsbml.Compartment compartment = sbmlModel.createCompartment((entity.getCellularLocation().toString()));
- compartment.setSBOTerm(SBO.getCompartment()); //TODO: can there be more than one type of compartment?
- compartment.setConstant(true); //TODO: verify if constant should be set to true
- return compartment;
- }
}
-
- //Get default compartment if it doesn't already exist in sbml model
- if(sbmlModel.getCompartment("default") != null)
+
+ // Get default compartment if it doesn't already exist in sbml model
+ if (sbmlModel.getCompartment("default") != null)
{
return sbmlModel.getCompartment("default");
}
-
+
org.sbml.jsbml.Compartment defaultCompartment = sbmlModel.createCompartment("default");
defaultCompartment.setSBOTerm(SBO.getCompartment());
defaultCompartment.setConstant(true);
@@ -293,9 +355,9 @@
if (Gene.class.isAssignableFrom(entity.getClass()))
sbmlSpecies.setSBOTerm(SBO.getGene());
else if (Complex.class.isAssignableFrom(entity.getClass()))
- sbmlSpecies.setSBOTerm(SBO.getComplex()); //SBO:0000253
+ sbmlSpecies.setSBOTerm(SBO.getComplex());
else if (Protein.class.isAssignableFrom(entity.getClass()))
- sbmlSpecies.setSBOTerm("SBO:0000297"); //TODO: verify
+ sbmlSpecies.setSBOTerm("SBO:0000297");
else if (Dna.class.isAssignableFrom(entity.getClass()))
sbmlSpecies.setSBOTerm("SBO:0000251");
else if (DnaRegion.class.isAssignableFrom(entity.getClass()))
@@ -305,7 +367,7 @@
else if (RnaRegion.class.isAssignableFrom(entity.getClass()))
sbmlSpecies.setSBOTerm("SBO:0000250"); //TODO: RNARegion ?
else if (SmallMolecule.class.isAssignableFrom(entity.getClass()))
- sbmlSpecies.setSBOTerm("SBO:0000247"); //TODO: smallMolecule? verify
+ sbmlSpecies.setSBOTerm("SBO:0000247");
return;
}
@@ -316,86 +378,145 @@
if (Conversion.class.isAssignableFrom(entity.getClass()))
{
- parseConversionInteraction(entity, sbmlModel);
- setConversionSBO((Conversion) entity, r);
+ parseConversionInteraction((Conversion) entity, sbmlModel);
}
if (Control.class.isAssignableFrom(entity.getClass()))
{
//TODO: Check if control has Controller and Controlled object to create a reaction out of
+ parseControlInteraction((Control) entity, sbmlModel);
setControlSBO((Control) entity, r);
}
}
- private void parseConversionInteraction(Interaction entity, org.sbml.jsbml.Model sbmlModel)
+ private void parseConversionInteraction(Conversion conversion, org.sbml.jsbml.Model sbmlModel)
{
- if (ComplexAssembly.class.isAssignableFrom(entity.getClass()))
- {
- parseComplexAssembly((ComplexAssembly) entity, sbmlModel);
+ Reaction reaction = setReaction(conversion, sbmlModel);
- }
- else if (BiochemicalReaction.class.isAssignableFrom(entity.getClass()))
+ if(conversion.getConversionDirection().equals(ConversionDirectionType.LEFT_TO_RIGHT) ||
+ conversion.getConversionDirection().equals(ConversionDirectionType.REVERSIBLE))
{
- BiochemicalReaction br = (BiochemicalReaction) entity;
+ //Parse for reactant/substrate
+ ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry(), sbmlModel);
+ reaction.setListOfReactants(reactants);
+
+ //Parse for product
+ ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry(), sbmlModel);
+ reaction.setListOfProducts(products);
}
- else if (TransportWithBiochemicalReaction.class.isAssignableFrom(entity.getClass()))
+ else if(conversion.getConversionDirection().equals(ConversionDirectionType.RIGHT_TO_LEFT))
{
- TransportWithBiochemicalReaction tbr = (TransportWithBiochemicalReaction) entity;
+ //Parse for reactant/substrate
+ ListOf<SpeciesReference> reactants = getSpeciesReferences(conversion.getRight(), conversion.getParticipantStoichiometry(), sbmlModel);
+ reaction.setListOfReactants(reactants);
+
+ //Parse for product
+ ListOf<SpeciesReference> products = getSpeciesReferences(conversion.getLeft(), conversion.getParticipantStoichiometry(), sbmlModel);
+ reaction.setListOfProducts(products);
}
- else if (Transport.class.isAssignableFrom(entity.getClass()))
- {
- Transport t = (Transport) entity;
- }
- else if (Degradation.class.isAssignableFrom(entity.getClass()))
- {
- Degradation d = (Degradation) entity;
- }
- else
- //TODO: a default conversion class
-
- return;
+
+ setConversionSBO(conversion, reaction);
}
- private void parseComplexAssembly(ComplexAssembly ca, org.sbml.jsbml.Model sbmlModel)
+ private void parseControlInteraction(Control control, org.sbml.jsbml.Model sbmlModel)
{
- ConversionDirectionType conDirType = ca.getConversionDirection();
- Set<PhysicalEntity> leftParticipants = ca.getLeft();
- Set<PhysicalEntity> rightParticipants = ca.getRight();
- Set<Stoichiometry> stoichiometrySet = ca.getParticipantStoichiometry();
- Set<Xref> xref = ca.getXref();
+ //TODO:
+ Set<Controller> controllerList = control.getController();
+ Set<org.biopax.paxtools.model.level3.Process> controlledList = control.getControlled();
+ control.getControlType();
-// List<> reactantList;
- Reaction reaction = setReaction(ca, sbmlModel);
+ //parse controller
+ if (controllerList.size() >= 1)
+ {
+ for (Controller controller : controllerList)
+ {
+ if (PhysicalEntity.class.isAssignableFrom(controller.getClass()))
+ {
+
+ }
+ else if (Pathway.class.isAssignableFrom(controller.getClass()))
+ {
+
+ }
+ }
+ }
+
+ //parse controlled
+ if (controlledList.size() > 0)
+ {
+ for (org.biopax.paxtools.model.level3.Process process : controlledList)
+ {
+ if (BiochemicalReaction.class.isAssignableFrom(process.getClass()))
+ {
+ BiochemicalReaction br = (BiochemicalReaction) process;
+ }
+ else if (ComplexAssembly.class.isAssignableFrom(process.getClass()))
+ {
+ ComplexAssembly ca = (ComplexAssembly) process;
+ }
+ else if (Conversion.class.isAssignableFrom(process.getClass()))
+ {
+ Conversion conversion = (Conversion) process;
+ }
+ else if (Degradation.class.isAssignableFrom(process.getClass()))
+ {
+ Degradation d = (Degradation) process;
+ }
+ else if (Transport.class.isAssignableFrom(process.getClass()))
+ {
+ Transport t = (Transport) process;
+ }
+ else if (TransportWithBiochemicalReaction.class.isAssignableFrom(process.getClass()))
+ {
+ TransportWithBiochemicalReaction tbr = (TransportWithBiochemicalReaction) process;
+ }
+ else if (Pathway.class.isAssignableFrom(process.getClass()))
+ {
+ Pathway p = (Pathway) process;
+ }
+ else if (TemplateReaction.class.isAssignableFrom(process.getClass()))
+ {
+ TemplateReaction tr = (TemplateReaction) process;
+ }
+ }
+ }
- //Parse for reactant/substrate
- getReactants(leftParticipants, stoichiometrySet, sbmlModel);
-
- //TODO: Parse for product
}
- private List<org.sbml.jsbml.SpeciesReference> getReactants(Set<PhysicalEntity> participants,
+
+ private ListOf<org.sbml.jsbml.SpeciesReference> getSpeciesReferences(Set<PhysicalEntity> participants,
Set<Stoichiometry> stoichiometrySet, org.sbml.jsbml.Model sbmlModel)
{
- List<SpeciesReference> reactantList = new ArrayList<SpeciesReference>();
+ ListOf<SpeciesReference> speciesReferencesList = new ListOf<SpeciesReference>();
for(PhysicalEntity p : participants)
{
- //TODO: set reactant id and name?
- SpeciesReference reactant = new SpeciesReference();
+ //TODO: Determine if we want to add name and id to SpeciesReference. This is an optional field in SBML
+ SpeciesReference speciesRef = new SpeciesReference();
- //Check if participant species already exist in sbml model. If not, add to sbml model
- String speciesId = parsePhysicalEntity(p, sbmlModel);
- reactant.setSpecies(speciesId);
- reactant.setConstant(true); //TODO: verify
+ //Check if participant species already exist in sbml model.
+ if(biopax2sbmlId.containsKey(p.getRDFId()))
+ {
+ speciesRef.setSpecies(biopax2sbmlId.get(p.getRDFId()));
+ }
+ else
+ throw new SBMLException("Could not get corresponding species for " + p.getRDFId());
+ /* Default settings for sbml SpeciesReference required attributes
+ * setConstant(true) :
+ * Specify if SpeciesReference ever change stoichiometry.
+ * Assume stoichiometry is constant, true is set.
+ */
+ speciesRef.setConstant(true);
+
double speciesStoic = getSpeciesStochiometry(stoichiometrySet, p);
if( speciesStoic != 0)
{
- reactant.setStoichiometry(speciesStoic);
+ speciesRef.setStoichiometry(speciesStoic);
}
- reactantList.add(reactant);
+ speciesReferencesList.add(speciesRef);
}
- return reactantList;
+ return speciesReferencesList;
}
private double getSpeciesStochiometry(Set<Stoichiometry> stoichiometrySet, PhysicalEntity entity)
@@ -409,6 +530,7 @@
}
}
+ //Return 0 for species stoichiometry to indicate no stoichiometry value for this species should be set
return 0;
}
@@ -418,34 +540,25 @@
}
- private void parseControlInteraction(Interaction entity, org.sbml.jsbml.Model sbmlModel)
- {
- if (Catalysis.class.isAssignableFrom(entity.getClass()))
- {
-
- }
- else if (Modulation.class.isAssignableFrom(entity.getClass()))
- {
-
- }
- else if (TemplateReactionRegulation.class.isAssignableFrom(entity.getClass()))
- {
-
- }
- else
- //TODO: a default control class
- return;
- }
-
private Reaction setReaction(Interaction entity, org.sbml.jsbml.Model sbmlModel)
{
- //TODO: assume RDFId and displayName is always given
Reaction reaction = sbmlModel.createReaction(getValidSBMLId(entity));
- reaction.setName(entity.getDisplayName());
+ String reactionName = getValidSBMLName(entity);
+ if(reactionName != null)
+ reaction.setName(reactionName);
//TODO: Should I check for valid MetaId?
reaction.setMetaId("meta_" + entity.getRDFId());
- reaction.setFast(false); //TODO: check if this are set to false
- reaction.setReversible(false); //TODO: check if this are set to false
+
+ /* Default settings for sbml reaction required attributes
+ * setFast(false) :
+ * Indicate fast reaction
+ * Assume reaction is not fast so set to false
+ * setReversible(false) :
+ * Indicate if reaction can go both ways
+ * Assume reaction can't go reverse direction so set to false
+ */
+ reaction.setFast(false);
+ reaction.setReversible(false);
return reaction;
}
@@ -456,7 +569,7 @@
else if (Modulation.class.isAssignableFrom(entity.getClass()))
reaction.setSBOTerm(SBO.getModulation());
else if(TemplateReactionRegulation.class.isAssignableFrom(entity.getClass()))
- reaction.setSBOTerm(SBO.getInteraction()); //TODO: what SBO is set for this? Is this TemplateReactionRegulation a reaction?
+ reaction.setSBOTerm("SBO:0000343");
return;
}
@@ -465,11 +578,11 @@
private void setConversionSBO(Conversion entity, Reaction reaction)
{
if (ComplexAssembly.class.isAssignableFrom(entity.getClass()))
- reaction.setSBOTerm("SBO:0000526"); //TODO: IS Complex SBO equiv. to ComplexAssembly?
+ reaction.setSBOTerm("SBO:0000177");
else if (BiochemicalReaction.class.isAssignableFrom(entity.getClass()))
reaction.setSBOTerm("SBO:0000176");
else if (TransportWithBiochemicalReaction.class.isAssignableFrom(entity.getClass()))
- reaction.setSBOTerm("SBO:0000167"); //TODO: verify
+ reaction.setSBOTerm("SBO:0000167");
else if (Transport.class.isAssignableFrom(entity.getClass()))
reaction.setSBOTerm(SBO.getTransport());
else if (Degradation.class.isAssignableFrom(entity.getClass()))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nik...@us...> - 2016-06-17 09:51:55
|
Revision: 650
http://sourceforge.net/p/sbfc/code/650
Author: niko-rodrigue
Date: 2016-06-17 09:51:52 +0000 (Fri, 17 Jun 2016)
Log Message:
-----------
removed the file sbml2dot.sh.r90
Revision Links:
--------------
http://sourceforge.net/p/sbfc/code/90
Removed Paths:
-------------
trunk/sbml2dot.sh.r90
Deleted: trunk/sbml2dot.sh.r90
===================================================================
--- trunk/sbml2dot.sh.r90 2016-06-16 21:32:15 UTC (rev 649)
+++ trunk/sbml2dot.sh.r90 2016-06-17 09:51:52 UTC (rev 650)
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-RESOLVE_LINK=`readlink -f $0`
-
-SBF_CONVERTER_HOME=`dirname ${RESOLVE_LINK}`
-
-
-${SBF_CONVERTER_HOME}/sbfConverter.sh SBMLModel SBML2Dot $1
-
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-06-16 21:32:18
|
Revision: 649
http://sourceforge.net/p/sbfc/code/649
Author: tramy-nguyen
Date: 2016-06-16 21:32:15 +0000 (Thu, 16 Jun 2016)
Log Message:
-----------
recommitting sbml2dot.sh with correct name without revision number attach to .sh file.
Modified Paths:
--------------
trunk/sbml2dot.sh
Modified: trunk/sbml2dot.sh
===================================================================
--- trunk/sbml2dot.sh 2016-06-16 12:37:34 UTC (rev 648)
+++ trunk/sbml2dot.sh 2016-06-16 21:32:15 UTC (rev 649)
@@ -5,6 +5,6 @@
SBF_CONVERTER_HOME=`dirname ${RESOLVE_LINK}`
-${SBF_CONVERTER_HOME}/sbfConverter.sh SBMLModel BioPAX2SBML $1
+${SBF_CONVERTER_HOME}/sbfConverter.sh SBMLModel SBML2Dot $1
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nik...@us...> - 2016-06-16 12:37:37
|
Revision: 648
http://sourceforge.net/p/sbfc/code/648
Author: niko-rodrigue
Date: 2016-06-16 12:37:34 +0000 (Thu, 16 Jun 2016)
Log Message:
-----------
added a small output to see one value returned by getRDFId()
Modified Paths:
--------------
trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java
Modified: trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java 2016-06-16 07:04:37 UTC (rev 647)
+++ trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java 2016-06-16 12:37:34 UTC (rev 648)
@@ -196,6 +196,7 @@
System.out.println("BioPAX Model contains an element with id 'S1' = " + biopaxModel.containsID(idBase + "S1") + ", "
+ (elem != null ? elem.getClass().getSimpleName() : " element 'S1' not found!"));
+ System.out.println("BioPAX element with RDF:ID 'S1' = '" + elem.getRDFId() + "'");
assertTrue("The SBO ID 247 should be a biopax SmallMolecule", elem instanceof SmallMolecule);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-06-16 07:04:40
|
Revision: 647
http://sourceforge.net/p/sbfc/code/647
Author: tramy-nguyen
Date: 2016-06-16 07:04:37 +0000 (Thu, 16 Jun 2016)
Log Message:
-----------
- wrote methods to check for valid sbml id, valid sbml name, and valid sbml meta id;
- Started adding reactants and stoichiometry when parsing conversion interaction. Need to finish up getting product for this interaction. Then I can make use of the getReactant(), getStoichiometry(), and getProduct() to create interactions for the rest of conversion Interaction.
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-06-15 17:12:37 UTC (rev 646)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-16 07:04:37 UTC (rev 647)
@@ -24,6 +24,10 @@
*/
package org.sbfc.converter.biopax2sbml;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
import javax.xml.stream.XMLStreamException;
import org.biopax.paxtools.model.Model;
@@ -34,6 +38,8 @@
import org.biopax.paxtools.model.level3.ComplexAssembly;
import org.biopax.paxtools.model.level3.Control;
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.Dna;
import org.biopax.paxtools.model.level3.DnaRegion;
import org.biopax.paxtools.model.level3.Entity;
@@ -46,8 +52,11 @@
import org.biopax.paxtools.model.level3.Rna;
import org.biopax.paxtools.model.level3.RnaRegion;
import org.biopax.paxtools.model.level3.SmallMolecule;
+import org.biopax.paxtools.model.level3.Stoichiometry;
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.Xref;
import org.identifiers.registry.RegistryLocalProvider;
import org.sbfc.converter.exceptions.ConversionException;
import org.sbfc.converter.exceptions.ReadModelException;
@@ -64,14 +73,19 @@
import org.sbml.jsbml.SBMLException;
import org.sbml.jsbml.SBO;
import org.sbml.jsbml.Species;
+import org.sbml.jsbml.SpeciesReference;
import org.sbml.jsbml.UnitDefinition;
+import org.sbml.jsbml.ext.qual.QualModelPlugin;
+
public class BioPAX2SBML extends GeneralConverter {
protected final static String notesStartString = "<notes><body xmlns=\"http://www.w3.org/1999/xhtml\">";
protected final static String notesEndString = "</body></notes>";
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)); }
+ public static boolean isDelimiter(char c) { return ((c != 65534) && (c != 65535)); }
// creation of the link to the web services
public static RegistryLocalProvider link;
@@ -106,17 +120,13 @@
org.biopax.paxtools.model.level3.Pathway pathway = bioModel.getObjects(Pathway.class).iterator().next();
sbmlModel.setId(pathway.toString());
+ //TODO: Should I set metaId to rdfId and should I check for valid MetaId?
sbmlModel.setMetaId("meta_" + pathway.toString());
sbmlModel.setTimeUnits(UnitDefinition.TIME);
sbmlModel.setVolumeUnits(UnitDefinition.VOLUME);
sbmlModel.setSubstanceUnits(UnitDefinition.SUBSTANCE);
- sbmlModel.setName(pathway.toString());
+ sbmlModel.setName(pathway.getDisplayName());
-// org.sbml.jsbml.Compartment defaultCompartment = sbmlModel.createCompartment("default");
-// defaultCompartment.setName("default");
-// defaultCompartment.setSBOTerm(SBO.getCompartment());
-// defaultCompartment.setConstant(true);
-
History hist = new History();
Creator creator = new Creator();
creator.setOrganisation("GSoC 2016, National Resource for Network Biology");
@@ -156,46 +166,52 @@
}
}
- private void parsePhysicalEntity(PhysicalEntity entity, org.sbml.jsbml.Model sbmlModel)
+ private String parsePhysicalEntity(PhysicalEntity entity, org.sbml.jsbml.Model sbmlModel)
{
- // TODO: Assume biopax file always provide RDFId and displayName
- // TODO: Check if RDFId is valid
- String speciesId = entity.getRDFId();
- String speciesName = getValidSBMLId(entity);
- Species sbmlSpecies = setSpecies(sbmlModel, speciesId, speciesName, entity.getCellularLocation());
- setPhysicalEntitySBO(entity, sbmlSpecies);
+ String speciesId = getValidSBMLId(entity);
+ if(!sbmlModel.containsSpecies(speciesId))
+ {
+ Species sbmlSpecies = setSpecies(sbmlModel, speciesId, entity);
+ setPhysicalEntitySBO(entity, sbmlSpecies);
+ }
- return;
+ return speciesId;
}
- private String getValidSBMLId(PhysicalEntity entity)
+ private String getValidSBMLName(PhysicalEntity entity)
{
- if(entity.getDisplayName() != null && entity.getDisplayName().length() > 0
- && isValidSBMLId(entity.getDisplayName()))
+ // Assume that the biopax displayName and RDFId given is valid strings. Expect biopax input file to be valid.
+ if(entity.getDisplayName() != null && entity.getDisplayName().length() > 0 && isValidSBMLname(entity.getDisplayName()))
return entity.getDisplayName();
- else if(entity.getName() != null && !entity.getName().isEmpty()
- && isValidSBMLId(entity.getName().toString()))
- return entity.getName().toString();
- else if(entity.getRDFId() != null && entity.getRDFId().length() > 0
+ else if(entity.getRDFId() != null && entity.getRDFId().length() > 0 && isValidSBMLname(entity.getRDFId()))
+ return entity.getRDFId();
+
+ //Since name is optional in SBML, don't set sbml name if getValidSBMLName returns null
+ return null;
+ }
+
+ private String getValidSBMLId(Entity entity)
+ {
+ if(entity.getRDFId() != null && entity.getRDFId().length() > 0
&& isValidSBMLId(entity.getRDFId()))
return entity.getRDFId();
//TODO: Need to come up with better secure conventional id...
- String conventionId = "sbml_" + removeInvalidSBMLcharId(entity.getRDFId()) + "_" + removeInvalidSBMLcharId(entity.getDisplayName());
+ String conventionId = "";
return conventionId;
}
- private String removeInvalidSBMLcharId(String id)
- {
- String result = id.replaceAll("[^a-zA-Z0-9]", "");
- return result;
- }
- private Species setSpecies(org.sbml.jsbml.Model sbmlModel, String speciesId, String speciesName, CellularLocationVocabulary cellularLocation)
+ private Species setSpecies(org.sbml.jsbml.Model sbmlModel, String speciesId, PhysicalEntity entity)
{
- Species sbmlSpecies = sbmlModel.createSpecies(speciesId, speciesName, setCompartment(sbmlModel, cellularLocation));
+ Species sbmlSpecies = sbmlModel.createSpecies(speciesId, setCompartment(sbmlModel, entity));
- //TODO: verify if the following are set correctly
+ //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);
+
+ //TODO: verify if the following are set correctly since sbml requires these members to be set
sbmlSpecies.setHasOnlySubstanceUnits(true);
sbmlSpecies.setBoundaryCondition(false);
sbmlSpecies.setConstant(false);
@@ -204,27 +220,55 @@
private boolean isValidSBMLId(String id)
{
- for (int i = 0; i < id.length(); i++)
+ if(id.charAt(0) != '_' && !isLetter(id.charAt(0)))
+ return false;
+
+ for (int i = 1; i < id.length(); i++)
{
- if(!isLetter(id.charAt(i)))
+ if(!isLetter(id.charAt(i)) && !isDigit(id.charAt(i)) && id.charAt(i) != '_')
return false;
}
return true;
}
- private Compartment setCompartment(org.sbml.jsbml.Model sbmlModel, CellularLocationVocabulary cellularLocation)
+ private boolean isValidSBMLmetaId(String metaId)
{
+ if(!isLetter(metaId.charAt(0)) && metaId.charAt(0) != '_' && metaId.charAt(0) != ':' )
+ return false;
+ for (int i = 1; i < metaId.length(); i++)
+ {
+ //TODO: finish up this check for combining char and extender
+ if(!isLetter(metaId.charAt(i)) && !isDigit(metaId.charAt(i)) &&
+ metaId.charAt(i) != '.' && metaId.charAt(i) != '-' && metaId.charAt(i) != '_' && metaId.charAt(i) != ':')
+ return false;
+ }
+ return true;
+ }
+
+ private boolean isValidSBMLname(String name)
+ {
+ for(int i = 0; i < name.length(); i++)
+ {
+ if(isDelimiter(name.charAt(i)))
+ return false;
+ }
+ return true;
+ }
+
+ private Compartment setCompartment(org.sbml.jsbml.Model sbmlModel, PhysicalEntity entity)
+ {
//Check if the compartment already exist in the sbml model
- //TODO: does all CellularLocation return alphanumeric id?
- if(cellularLocation != null)
+ if(entity.getCellularLocation() != null)
{
- if(sbmlModel.containsCompartment(cellularLocation.toString()))
+ if( isValidSBMLId(entity.getCellularLocation().toString()) && sbmlModel.containsCompartment(entity.getCellularLocation().toString()))
{
- return sbmlModel.getCompartment(cellularLocation.toString());
+ return sbmlModel.getCompartment(entity.getCellularLocation().toString());
}
else
{
- org.sbml.jsbml.Compartment compartment = sbmlModel.createCompartment(cellularLocation.toString());
+ //TODO: how to deal with a cellularlocation that exist but the name of the cellularLocation is not valid sbml name to set id of sbml compartment?
+ // I can't call getValidSBMLId for this class because cellularLocation does not contain an RDFId.
+ org.sbml.jsbml.Compartment compartment = sbmlModel.createCompartment((entity.getCellularLocation().toString()));
compartment.setSBOTerm(SBO.getCompartment()); //TODO: can there be more than one type of compartment?
compartment.setConstant(true); //TODO: verify if constant should be set to true
return compartment;
@@ -238,7 +282,6 @@
}
org.sbml.jsbml.Compartment defaultCompartment = sbmlModel.createCompartment("default");
- defaultCompartment.setName("default");
defaultCompartment.setSBOTerm(SBO.getCompartment());
defaultCompartment.setConstant(true);
return defaultCompartment;
@@ -250,21 +293,19 @@
if (Gene.class.isAssignableFrom(entity.getClass()))
sbmlSpecies.setSBOTerm(SBO.getGene());
else if (Complex.class.isAssignableFrom(entity.getClass()))
- sbmlSpecies.setSBOTerm(SBO.getComplex());
+ sbmlSpecies.setSBOTerm(SBO.getComplex()); //SBO:0000253
else if (Protein.class.isAssignableFrom(entity.getClass()))
- sbmlSpecies.setSBOTerm(SBO.getProtein());
+ sbmlSpecies.setSBOTerm("SBO:0000297"); //TODO: verify
else if (Dna.class.isAssignableFrom(entity.getClass()))
sbmlSpecies.setSBOTerm("SBO:0000251");
else if (DnaRegion.class.isAssignableFrom(entity.getClass()))
- sbmlSpecies.setSBOTerm("SBO:0000251"); //TODO: DNARegion equivalent to DNA?
+ sbmlSpecies.setSBOTerm("SBO:0000251"); //TODO: DNARegion ?
else if (Rna.class.isAssignableFrom(entity.getClass()))
sbmlSpecies.setSBOTerm(SBO.getRNA());
else if (RnaRegion.class.isAssignableFrom(entity.getClass()))
- sbmlSpecies.setSBOTerm("SBO:0000250");
+ sbmlSpecies.setSBOTerm("SBO:0000250"); //TODO: RNARegion ?
else if (SmallMolecule.class.isAssignableFrom(entity.getClass()))
- sbmlSpecies.setSBOTerm(SBO.getSimpleMolecule()); //TODO: simpleMolecule is equiv. to smallMolecule?
- else
- sbmlSpecies.setSBOTerm(SBO.getUnknownMolecule()); //TODO: Unknown SBO
+ sbmlSpecies.setSBOTerm("SBO:0000247"); //TODO: smallMolecule? verify
return;
}
@@ -273,21 +314,135 @@
{
Reaction r = setReaction(entity, sbmlModel);
+ if (Conversion.class.isAssignableFrom(entity.getClass()))
+ {
+ parseConversionInteraction(entity, sbmlModel);
+ setConversionSBO((Conversion) entity, r);
+ }
if (Control.class.isAssignableFrom(entity.getClass()))
{
+ //TODO: Check if control has Controller and Controlled object to create a reaction out of
setControlSBO((Control) entity, r);
}
- if (Conversion.class.isAssignableFrom(entity.getClass()))
+ }
+
+ private void parseConversionInteraction(Interaction entity, org.sbml.jsbml.Model sbmlModel)
+ {
+ if (ComplexAssembly.class.isAssignableFrom(entity.getClass()))
{
- setConversionSBO((Conversion) entity, r);
+ parseComplexAssembly((ComplexAssembly) entity, sbmlModel);
+
}
+ else if (BiochemicalReaction.class.isAssignableFrom(entity.getClass()))
+ {
+ BiochemicalReaction br = (BiochemicalReaction) entity;
+ }
+ else if (TransportWithBiochemicalReaction.class.isAssignableFrom(entity.getClass()))
+ {
+ TransportWithBiochemicalReaction tbr = (TransportWithBiochemicalReaction) entity;
+ }
+ else if (Transport.class.isAssignableFrom(entity.getClass()))
+ {
+ Transport t = (Transport) entity;
+ }
+ else if (Degradation.class.isAssignableFrom(entity.getClass()))
+ {
+ Degradation d = (Degradation) entity;
+ }
+ else
+ //TODO: a default conversion class
+
+ return;
}
+ private void parseComplexAssembly(ComplexAssembly ca, org.sbml.jsbml.Model sbmlModel)
+ {
+ ConversionDirectionType conDirType = ca.getConversionDirection();
+ Set<PhysicalEntity> leftParticipants = ca.getLeft();
+ Set<PhysicalEntity> rightParticipants = ca.getRight();
+ Set<Stoichiometry> stoichiometrySet = ca.getParticipantStoichiometry();
+ Set<Xref> xref = ca.getXref();
+
+// List<> reactantList;
+ Reaction reaction = setReaction(ca, sbmlModel);
+
+ //Parse for reactant/substrate
+ getReactants(leftParticipants, stoichiometrySet, sbmlModel);
+
+ //TODO: Parse for product
+ }
+
+ private List<org.sbml.jsbml.SpeciesReference> getReactants(Set<PhysicalEntity> participants,
+ Set<Stoichiometry> stoichiometrySet, org.sbml.jsbml.Model sbmlModel)
+ {
+ List<SpeciesReference> reactantList = new ArrayList<SpeciesReference>();
+
+ for(PhysicalEntity p : participants)
+ {
+ //TODO: set reactant id and name?
+ SpeciesReference reactant = new SpeciesReference();
+
+ //Check if participant species already exist in sbml model. If not, add to sbml model
+ String speciesId = parsePhysicalEntity(p, sbmlModel);
+ reactant.setSpecies(speciesId);
+ reactant.setConstant(true); //TODO: verify
+
+ double speciesStoic = getSpeciesStochiometry(stoichiometrySet, p);
+ if( speciesStoic != 0)
+ {
+ reactant.setStoichiometry(speciesStoic);
+ }
+
+ reactantList.add(reactant);
+ }
+ return reactantList;
+ }
+
+ private double getSpeciesStochiometry(Set<Stoichiometry> stoichiometrySet, PhysicalEntity entity)
+ {
+ for (Stoichiometry stoichiometry : stoichiometrySet)
+ {
+ if(stoichiometry.getPhysicalEntity().equals(entity))
+ {
+ if(isValidStoichiometry(stoichiometry.getStoichiometricCoefficient()))
+ return stoichiometry.getStoichiometricCoefficient();
+ }
+ }
+
+ return 0;
+ }
+
+ private boolean isValidStoichiometry(double stoichiometry)
+ {
+ return (stoichiometry > 0 && stoichiometry < Double.MAX_VALUE);
+ }
+
+
+ private void parseControlInteraction(Interaction entity, org.sbml.jsbml.Model sbmlModel)
+ {
+ if (Catalysis.class.isAssignableFrom(entity.getClass()))
+ {
+
+ }
+ else if (Modulation.class.isAssignableFrom(entity.getClass()))
+ {
+
+ }
+ else if (TemplateReactionRegulation.class.isAssignableFrom(entity.getClass()))
+ {
+
+ }
+ else
+ //TODO: a default control class
+ return;
+ }
+
private Reaction setReaction(Interaction entity, org.sbml.jsbml.Model sbmlModel)
{
//TODO: assume RDFId and displayName is always given
- Reaction reaction = sbmlModel.createReaction(entity.getRDFId());
+ Reaction reaction = sbmlModel.createReaction(getValidSBMLId(entity));
reaction.setName(entity.getDisplayName());
+ //TODO: Should I check for valid MetaId?
reaction.setMetaId("meta_" + entity.getRDFId());
reaction.setFast(false); //TODO: check if this are set to false
reaction.setReversible(false); //TODO: check if this are set to false
@@ -310,11 +465,17 @@
private void setConversionSBO(Conversion entity, Reaction reaction)
{
if (ComplexAssembly.class.isAssignableFrom(entity.getClass()))
- reaction.setSBOTerm(SBO.getComplex()); //TODO: IS Complex SBO equiv. to ComplexAssembly?
+ reaction.setSBOTerm("SBO:0000526"); //TODO: IS Complex SBO equiv. to ComplexAssembly?
else if (BiochemicalReaction.class.isAssignableFrom(entity.getClass()))
- reaction.setSBOTerm(SBO.getInteraction()); //TODO: what SBO is set for this?
+ reaction.setSBOTerm("SBO:0000176");
+ else if (TransportWithBiochemicalReaction.class.isAssignableFrom(entity.getClass()))
+ reaction.setSBOTerm("SBO:0000167"); //TODO: verify
else if (Transport.class.isAssignableFrom(entity.getClass()))
reaction.setSBOTerm(SBO.getTransport());
+ else if (Degradation.class.isAssignableFrom(entity.getClass()))
+ reaction.setSBOTerm("SBO:0000179");
+ else if (Conversion.class.isAssignableFrom(entity.getClass()))
+ reaction.setSBOTerm("SBO:0000182");
return;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-06-15 17:12:39
|
Revision: 646
http://sourceforge.net/p/sbfc/code/646
Author: tramy-nguyen
Date: 2016-06-15 17:12:37 +0000 (Wed, 15 Jun 2016)
Log Message:
-----------
recommiting a revert version 90 for sbml2dot.sh
Added Paths:
-----------
trunk/sbml2dot.sh.r90
Added: trunk/sbml2dot.sh.r90
===================================================================
--- trunk/sbml2dot.sh.r90 (rev 0)
+++ trunk/sbml2dot.sh.r90 2016-06-15 17:12:37 UTC (rev 646)
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+RESOLVE_LINK=`readlink -f $0`
+
+SBF_CONVERTER_HOME=`dirname ${RESOLVE_LINK}`
+
+
+${SBF_CONVERTER_HOME}/sbfConverter.sh SBMLModel SBML2Dot $1
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-06-15 06:12:55
|
Revision: 645
http://sourceforge.net/p/sbfc/code/645
Author: tramy-nguyen
Date: 2016-06-15 06:12:53 +0000 (Wed, 15 Jun 2016)
Log Message:
-----------
- Clean up duplicate code for creating compartment and creating species
- Have added support to check for valid sbml id when setting species name. However, the conventional name that is currently being used will need to be revised. As of right now, conventional id to set sbml name is set to "sbml_" + physicalEntity.RDFId + "_" + "physicalEntity.displayName if owl file does not already provide a valid displayName, name, or RDFId to set sbml name.
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-06-13 16:43:37 UTC (rev 644)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-15 06:12:53 UTC (rev 645)
@@ -24,13 +24,12 @@
*/
package org.sbfc.converter.biopax2sbml;
-import java.util.HashMap;
-
import javax.xml.stream.XMLStreamException;
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.CellularLocationVocabulary;
import org.biopax.paxtools.model.level3.Complex;
import org.biopax.paxtools.model.level3.ComplexAssembly;
import org.biopax.paxtools.model.level3.Control;
@@ -64,6 +63,7 @@
import org.sbml.jsbml.SBMLDocument;
import org.sbml.jsbml.SBMLException;
import org.sbml.jsbml.SBO;
+import org.sbml.jsbml.Species;
import org.sbml.jsbml.UnitDefinition;
public class BioPAX2SBML extends GeneralConverter {
@@ -71,19 +71,16 @@
protected final static String notesStartString = "<notes><body xmlns=\"http://www.w3.org/1999/xhtml\">";
protected final static String notesEndString = "</body></notes>";
+ public static boolean isLetter(char c) { return ((c >= 97) && (c <= 122)) || ((c >= 65) && (c <= 90)); }
+
// creation of the link to the web services
public static RegistryLocalProvider link;
-
- public static HashMap<String, String> officialURIs = new HashMap<String, String>();
- public static HashMap<String, String> officialNames = new HashMap<String, String>();
static {
link = new RegistryLocalProvider();
// link.setAddress(MIRIAM_WS_URL);
}
- protected int biopaxLevel = 3;
-
public BioPAX2SBML(){
super();
@@ -109,16 +106,16 @@
org.biopax.paxtools.model.level3.Pathway pathway = bioModel.getObjects(Pathway.class).iterator().next();
sbmlModel.setId(pathway.toString());
- sbmlModel.setMetaId("meta_"+pathway.toString());
+ sbmlModel.setMetaId("meta_" + pathway.toString());
sbmlModel.setTimeUnits(UnitDefinition.TIME);
sbmlModel.setVolumeUnits(UnitDefinition.VOLUME);
sbmlModel.setSubstanceUnits(UnitDefinition.SUBSTANCE);
sbmlModel.setName(pathway.toString());
- org.sbml.jsbml.Compartment defaultCompartment = sbmlModel.createCompartment("default");
- defaultCompartment.setName("default");
- defaultCompartment.setSBOTerm(SBO.getCompartment());
- defaultCompartment.setConstant(true);
+// org.sbml.jsbml.Compartment defaultCompartment = sbmlModel.createCompartment("default");
+// defaultCompartment.setName("default");
+// defaultCompartment.setSBOTerm(SBO.getCompartment());
+// defaultCompartment.setConstant(true);
History hist = new History();
Creator creator = new Creator();
@@ -143,61 +140,108 @@
//TODO: How to get gene ontologies and pubmed? ANSWER: Use miriam and xref
- parseEntities(bioModel, sbmlModel, defaultCompartment);
+ parseEntities(bioModel, sbmlModel);
return model;
}
- private void parseEntities(Model bioModel, org.sbml.jsbml.Model sbmlModel, Compartment defaultCompartment)
+ private void parseEntities(Model bioModel, org.sbml.jsbml.Model sbmlModel)
{
for (Entity entity : bioModel.getObjects(Entity.class))
{
if (PhysicalEntity.class.isAssignableFrom(entity.getClass()))
- parsePhysicalEntity((PhysicalEntity) entity, sbmlModel, defaultCompartment);
+ parsePhysicalEntity((PhysicalEntity) entity, sbmlModel);
if (Interaction.class.isAssignableFrom(entity.getClass()))
parseInteractions((Interaction) entity, sbmlModel);
}
}
- private void parsePhysicalEntity(PhysicalEntity entity,
- org.sbml.jsbml.Model sbmlModel, Compartment defaultCompartment)
+ private void parsePhysicalEntity(PhysicalEntity entity, org.sbml.jsbml.Model sbmlModel)
{
// TODO: Assume biopax file always provide RDFId and displayName
+ // TODO: Check if RDFId is valid
String speciesId = entity.getRDFId();
- String speciesName = entity.getDisplayName();
+ String speciesName = getValidSBMLId(entity);
+ Species sbmlSpecies = setSpecies(sbmlModel, speciesId, speciesName, entity.getCellularLocation());
+ setPhysicalEntitySBO(entity, sbmlSpecies);
- org.sbml.jsbml.Species sbmlSpecies = null;
+ return;
+ }
+
+ private String getValidSBMLId(PhysicalEntity entity)
+ {
+ if(entity.getDisplayName() != null && entity.getDisplayName().length() > 0
+ && isValidSBMLId(entity.getDisplayName()))
+ return entity.getDisplayName();
+ else if(entity.getName() != null && !entity.getName().isEmpty()
+ && isValidSBMLId(entity.getName().toString()))
+ return entity.getName().toString();
+ else if(entity.getRDFId() != null && entity.getRDFId().length() > 0
+ && isValidSBMLId(entity.getRDFId()))
+ return entity.getRDFId();
+ //TODO: Need to come up with better secure conventional id...
+ String conventionId = "sbml_" + removeInvalidSBMLcharId(entity.getRDFId()) + "_" + removeInvalidSBMLcharId(entity.getDisplayName());
+ return conventionId;
+ }
+
+ private String removeInvalidSBMLcharId(String id)
+ {
+ String result = id.replaceAll("[^a-zA-Z0-9]", "");
+ return result;
+ }
+
+ private Species setSpecies(org.sbml.jsbml.Model sbmlModel, String speciesId, String speciesName, CellularLocationVocabulary cellularLocation)
+ {
+ Species sbmlSpecies = sbmlModel.createSpecies(speciesId, speciesName, setCompartment(sbmlModel, cellularLocation));
+
+ //TODO: verify if the following are set correctly
+ sbmlSpecies.setHasOnlySubstanceUnits(true);
+ sbmlSpecies.setBoundaryCondition(false);
+ sbmlSpecies.setConstant(false);
+ return sbmlSpecies;
+ }
+
+ private boolean isValidSBMLId(String id)
+ {
+ for (int i = 0; i < id.length(); i++)
+ {
+ if(!isLetter(id.charAt(i)))
+ return false;
+ }
+ return true;
+ }
+
+ private Compartment setCompartment(org.sbml.jsbml.Model sbmlModel, CellularLocationVocabulary cellularLocation)
+ {
//Check if the compartment already exist in the sbml model
- //TODO: why doesn't all biopax physicalEntity have a compartment?
//TODO: does all CellularLocation return alphanumeric id?
- if(entity.getCellularLocation() != null)
+ if(cellularLocation != null)
{
- if(sbmlModel.containsCompartment(entity.getCellularLocation().toString()))
+ if(sbmlModel.containsCompartment(cellularLocation.toString()))
{
- sbmlSpecies = sbmlModel.createSpecies(speciesId, speciesName, sbmlModel.getCompartment(entity.getCellularLocation().toString()));
+ return sbmlModel.getCompartment(cellularLocation.toString());
}
else
{
- org.sbml.jsbml.Compartment compartment = sbmlModel.createCompartment(entity.getCellularLocation().toString());
+ org.sbml.jsbml.Compartment compartment = sbmlModel.createCompartment(cellularLocation.toString());
compartment.setSBOTerm(SBO.getCompartment()); //TODO: can there be more than one type of compartment?
compartment.setConstant(true); //TODO: verify if constant should be set to true
- sbmlSpecies = sbmlModel.createSpecies(speciesId, speciesName,compartment);
+ return compartment;
}
}
- else
- sbmlSpecies = sbmlModel.createSpecies(speciesId, speciesName, defaultCompartment);
-// if(sbmlSpecies == null)
-// //TODO: ERR: sbml species should not be null at this point.
-
- //TODO: verify if the following are set correctly
- sbmlSpecies.setHasOnlySubstanceUnits(true);
- sbmlSpecies.setBoundaryCondition(false);
- sbmlSpecies.setConstant(false);
- setPhysicalEntitySBO(entity, sbmlSpecies);
+ //Get default compartment if it doesn't already exist in sbml model
+ if(sbmlModel.getCompartment("default") != null)
+ {
+ return sbmlModel.getCompartment("default");
+ }
- return;
+ org.sbml.jsbml.Compartment defaultCompartment = sbmlModel.createCompartment("default");
+ defaultCompartment.setName("default");
+ defaultCompartment.setSBOTerm(SBO.getCompartment());
+ defaultCompartment.setConstant(true);
+ return defaultCompartment;
}
@@ -227,14 +271,14 @@
private void parseInteractions(Interaction entity, org.sbml.jsbml.Model sbmlModel)
{
+ Reaction r = setReaction(entity, sbmlModel);
+
if (Control.class.isAssignableFrom(entity.getClass()))
{
- Reaction r = setReaction(entity, sbmlModel);
setControlSBO((Control) entity, r);
}
if (Conversion.class.isAssignableFrom(entity.getClass()))
{
- Reaction r = setReaction(entity, sbmlModel);
setConversionSBO((Conversion) entity, r);
}
}
@@ -244,23 +288,20 @@
//TODO: assume RDFId and displayName is always given
Reaction reaction = sbmlModel.createReaction(entity.getRDFId());
reaction.setName(entity.getDisplayName());
+ reaction.setMetaId("meta_" + entity.getRDFId());
+ reaction.setFast(false); //TODO: check if this are set to false
+ reaction.setReversible(false); //TODO: check if this are set to false
return reaction;
}
private void setControlSBO(Control entity, Reaction reaction)
{
if (Catalysis.class.isAssignableFrom(entity.getClass()))
- {
reaction.setSBOTerm(SBO.getCatalysis());
- }
else if (Modulation.class.isAssignableFrom(entity.getClass()))
- {
reaction.setSBOTerm(SBO.getModulation());
- }
else if(TemplateReactionRegulation.class.isAssignableFrom(entity.getClass()))
- {
reaction.setSBOTerm(SBO.getInteraction()); //TODO: what SBO is set for this? Is this TemplateReactionRegulation a reaction?
- }
return;
}
@@ -269,20 +310,17 @@
private void setConversionSBO(Conversion entity, Reaction reaction)
{
if (ComplexAssembly.class.isAssignableFrom(entity.getClass()))
- {
reaction.setSBOTerm(SBO.getComplex()); //TODO: IS Complex SBO equiv. to ComplexAssembly?
- }
else if (BiochemicalReaction.class.isAssignableFrom(entity.getClass()))
- {
reaction.setSBOTerm(SBO.getInteraction()); //TODO: what SBO is set for this?
- }
else if (Transport.class.isAssignableFrom(entity.getClass()))
- {
reaction.setSBOTerm(SBO.getTransport());
- }
+
return;
}
+
+
private String getDatatypeName(String uri)
{
return link.getName(uri);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-06-13 16:43:40
|
Revision: 644
http://sourceforge.net/p/sbfc/code/644
Author: tramy-nguyen
Date: 2016-06-13 16:43:37 +0000 (Mon, 13 Jun 2016)
Log Message:
-----------
The following changes were made.
- sbml2dot.sh was reverted back to rev90
- removed entire directory stored in trunk/src/test.
- sbmlModel.setName() in BioPAX2SBML.java now set to pathway name rather than the inputted file name.
Revision Links:
--------------
http://sourceforge.net/p/sbfc/code/90
Modified Paths:
--------------
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
Removed Paths:
-------------
trunk/src/test/
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-13 09:13:32 UTC (rev 643)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-13 16:43:37 UTC (rev 644)
@@ -113,7 +113,7 @@
sbmlModel.setTimeUnits(UnitDefinition.TIME);
sbmlModel.setVolumeUnits(UnitDefinition.VOLUME);
sbmlModel.setSubstanceUnits(UnitDefinition.SUBSTANCE);
- sbmlModel.setName("NAME of FILE SHOULD BE HERE"); //TODO: How to get file name?
+ sbmlModel.setName(pathway.toString());
org.sbml.jsbml.Compartment defaultCompartment = sbmlModel.createCompartment("default");
defaultCompartment.setName("default");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <tra...@us...> - 2016-06-13 09:13:35
|
Revision: 643
http://sourceforge.net/p/sbfc/code/643
Author: tramy-nguyen
Date: 2016-06-13 09:13:32 +0000 (Mon, 13 Jun 2016)
Log Message:
-----------
Setup BioPax2SBML conversion. Currently, conversion can convert direct one to one mapping: Interactions to reactions, physicalEntities to species, cellularlocation to compartments, and model to model. However, conversion will throw invalid sbml file when interactions are being converted from interactions to reactions.
Modified Paths:
--------------
trunk/sbml2dot.sh
trunk/src/org/sbfc/converter/Converter.java
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/sbml2sbml/SBML2SBML.java
trunk/src/org/util/classlist/ConverterSearcher.java
trunk/test/org/sbfc/test/BioPAX2SBMLTests.java
trunk/test/org/sbfc/test/SBML2BioPAXTests.java
Added Paths:
-----------
trunk/src/test/
trunk/src/test/org/
trunk/src/test/org/sbfc/
trunk/src/test/org/sbfc/test/
trunk/src/test/org/sbfc/test/BioPAX2SBMLTests.java
trunk/src/test/org/sbfc/test/SBFCTests.java
trunk/src/test/org/sbfc/test/SBML2BioPAXTests.java
trunk/src/test/org/sbfc/test/biopax2sbml/
trunk/src/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
trunk/src/test/org/sbfc/test/sbml2biopax/
trunk/src/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java
trunk/src/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java
Modified: trunk/sbml2dot.sh
===================================================================
--- trunk/sbml2dot.sh 2016-06-09 13:59:14 UTC (rev 642)
+++ trunk/sbml2dot.sh 2016-06-13 09:13:32 UTC (rev 643)
@@ -5,6 +5,6 @@
SBF_CONVERTER_HOME=`dirname ${RESOLVE_LINK}`
-${SBF_CONVERTER_HOME}/sbfConverter.sh SBMLModel SBML2Dot $1
+${SBF_CONVERTER_HOME}/sbfConverter.sh SBMLModel BioPAX2SBML $1
Modified: trunk/src/org/sbfc/converter/Converter.java
===================================================================
--- trunk/src/org/sbfc/converter/Converter.java 2016-06-09 13:59:14 UTC (rev 642)
+++ trunk/src/org/sbfc/converter/Converter.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -295,6 +295,9 @@
}
else {
convertFromFile(args[0], args[1], args[2]);
+// convertFromFile("SBMLModel",
+// "SBML2BioPAX_l3",
+// "/Users/tramynguyen/Documents/GSoC_2016/BioPAX2SBML/KEGGtranslator/files/KEGGtrans_hsa00010jSBML.sbml.xml");
System.exit(0);
}
}
Modified: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-09 13:59:14 UTC (rev 642)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -1,6 +1,6 @@
/*
- * $Id: SBML2BioPAX.java 598 2016-01-28 11:27:47Z pdp10 $
- * $URL: https://svn.code.sf.net/p/sbfc/code/trunk/src/org/sbfc/converter/sbml2biopax/SBML2BioPAX.java $
+ * $Id: BioPAX2SBML.java 598 2016-01-28 11:27:47Z pdp10 $
+ * $URL: https://svn.code.sf.net/p/sbfc/code/trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java $
*
* ==========================================================================
* This file is part of The System Biology Format Converter (SBFC).
@@ -22,41 +22,272 @@
* ==========================================================================
*
*/
-
package org.sbfc.converter.biopax2sbml;
+import java.util.HashMap;
+
+import javax.xml.stream.XMLStreamException;
+
+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.Complex;
+import org.biopax.paxtools.model.level3.ComplexAssembly;
+import org.biopax.paxtools.model.level3.Control;
+import org.biopax.paxtools.model.level3.Conversion;
+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.Gene;
+import org.biopax.paxtools.model.level3.Interaction;
+import org.biopax.paxtools.model.level3.Modulation;
+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.SmallMolecule;
+import org.biopax.paxtools.model.level3.TemplateReactionRegulation;
+import org.biopax.paxtools.model.level3.Transport;
+import org.identifiers.registry.RegistryLocalProvider;
import org.sbfc.converter.exceptions.ConversionException;
import org.sbfc.converter.exceptions.ReadModelException;
import org.sbfc.converter.GeneralConverter;
import org.sbfc.converter.models.BioPAXModel;
import org.sbfc.converter.models.GeneralModel;
import org.sbfc.converter.models.SBMLModel;
+import org.sbml.jsbml.Annotation;
+import org.sbml.jsbml.Compartment;
+import org.sbml.jsbml.Creator;
+import org.sbml.jsbml.History;
+import org.sbml.jsbml.Reaction;
+import org.sbml.jsbml.SBMLDocument;
import org.sbml.jsbml.SBMLException;
+import org.sbml.jsbml.SBO;
+import org.sbml.jsbml.UnitDefinition;
-
-
public class BioPAX2SBML extends GeneralConverter {
+ protected final static String notesStartString = "<notes><body xmlns=\"http://www.w3.org/1999/xhtml\">";
+ protected final static String notesEndString = "</body></notes>";
+
+ // creation of the link to the web services
+ public static RegistryLocalProvider link;
- public static String VERSION = "3.1";
-
-
+ public static HashMap<String, String> officialURIs = new HashMap<String, String>();
+ public static HashMap<String, String> officialNames = new HashMap<String, String>();
+
+ static {
+ link = new RegistryLocalProvider();
+ // link.setAddress(MIRIAM_WS_URL);
+ }
+
protected int biopaxLevel = 3;
public BioPAX2SBML(){
super();
}
+
+ public SBMLModel sbmlExport(BioPAXModel biopaxmodel) throws SBMLException, ConversionException, ReadModelException {
+ // Create the SBML document to convert Biopax information to
+ int sbmlLevel = 3;
+ int sbmlVer = 1;
+ SBMLDocument sbmlDoc = new SBMLDocument(sbmlLevel, sbmlVer);
+
+ // Convert biopax pathway to sbml model
+ SBMLModel model = new SBMLModel(sbmlDoc);
+ org.sbml.jsbml.Model sbmlModel = sbmlDoc.createModel();
+
+
+ org.biopax.paxtools.model.Model bioModel = biopaxmodel.getModel();
+ if(bioModel == null) {
+ throw new ReadModelException("BioPAX2SBML: The provided biopax file is invalid.");
+ }
+
+ // TODO: Currently assume each input biopax file contains one pathway and pathway is lvl 3.1.
+ org.biopax.paxtools.model.level3.Pathway pathway = bioModel.getObjects(Pathway.class).iterator().next();
+
+ sbmlModel.setId(pathway.toString());
+ sbmlModel.setMetaId("meta_"+pathway.toString());
+ sbmlModel.setTimeUnits(UnitDefinition.TIME);
+ sbmlModel.setVolumeUnits(UnitDefinition.VOLUME);
+ sbmlModel.setSubstanceUnits(UnitDefinition.SUBSTANCE);
+ sbmlModel.setName("NAME of FILE SHOULD BE HERE"); //TODO: How to get file name?
+
+ org.sbml.jsbml.Compartment defaultCompartment = sbmlModel.createCompartment("default");
+ defaultCompartment.setName("default");
+ defaultCompartment.setSBOTerm(SBO.getCompartment());
+ defaultCompartment.setConstant(true);
+
+ History hist = new History();
+ Creator creator = new Creator();
+ creator.setOrganisation("GSoC 2016, National Resource for Network Biology");
+ hist.addCreator(creator);
+ Annotation annot = new Annotation();
+ sbmlModel.setAnnotation(annot);
+ sbmlModel.setHistory(hist);
+
+ StringBuffer notes = new StringBuffer(notesStartString);
+ notes.append(String.format("<p>This model has been automatically generated by BioPAX2SBML</p>"));
+ notes.append(notesEndString);
+ try
+ {
+ sbmlModel.setNotes(notes.toString());
+ }
+ catch (XMLStreamException e)
+ {
+ // TODO Unable to set SBML notes. Find how to set up warning message?
+ e.printStackTrace();
+ }
+
+ //TODO: How to get gene ontologies and pubmed? ANSWER: Use miriam and xref
+
+ parseEntities(bioModel, sbmlModel, defaultCompartment);
+
+ return model;
+ }
+
+ private void parseEntities(Model bioModel, org.sbml.jsbml.Model sbmlModel, Compartment defaultCompartment)
+ {
+ for (Entity entity : bioModel.getObjects(Entity.class))
+ {
+ if (PhysicalEntity.class.isAssignableFrom(entity.getClass()))
+ parsePhysicalEntity((PhysicalEntity) entity, sbmlModel, defaultCompartment);
+ if (Interaction.class.isAssignableFrom(entity.getClass()))
+ parseInteractions((Interaction) entity, sbmlModel);
+ }
+ }
- public SBMLModel sbmlexport(BioPAXModel biopaxModel) throws SBMLException
+ private void parsePhysicalEntity(PhysicalEntity entity,
+ org.sbml.jsbml.Model sbmlModel, Compartment defaultCompartment)
{
- return null;
+ // TODO: Assume biopax file always provide RDFId and displayName
+ String speciesId = entity.getRDFId();
+ String speciesName = entity.getDisplayName();
+
+ org.sbml.jsbml.Species sbmlSpecies = null;
+
+ //Check if the compartment already exist in the sbml model
+ //TODO: why doesn't all biopax physicalEntity have a compartment?
+ //TODO: does all CellularLocation return alphanumeric id?
+ if(entity.getCellularLocation() != null)
+ {
+ if(sbmlModel.containsCompartment(entity.getCellularLocation().toString()))
+ {
+ sbmlSpecies = sbmlModel.createSpecies(speciesId, speciesName, sbmlModel.getCompartment(entity.getCellularLocation().toString()));
+ }
+ else
+ {
+ org.sbml.jsbml.Compartment compartment = sbmlModel.createCompartment(entity.getCellularLocation().toString());
+ compartment.setSBOTerm(SBO.getCompartment()); //TODO: can there be more than one type of compartment?
+ compartment.setConstant(true); //TODO: verify if constant should be set to true
+ sbmlSpecies = sbmlModel.createSpecies(speciesId, speciesName,compartment);
+ }
+ }
+ else
+ sbmlSpecies = sbmlModel.createSpecies(speciesId, speciesName, defaultCompartment);
+
+// if(sbmlSpecies == null)
+// //TODO: ERR: sbml species should not be null at this point.
+
+ //TODO: verify if the following are set correctly
+ sbmlSpecies.setHasOnlySubstanceUnits(true);
+ sbmlSpecies.setBoundaryCondition(false);
+ sbmlSpecies.setConstant(false);
+ setPhysicalEntitySBO(entity, sbmlSpecies);
+
+ return;
}
-
+
+ private void setPhysicalEntitySBO(PhysicalEntity entity, org.sbml.jsbml.Species sbmlSpecies)
+ {
+ if (Gene.class.isAssignableFrom(entity.getClass()))
+ sbmlSpecies.setSBOTerm(SBO.getGene());
+ else if (Complex.class.isAssignableFrom(entity.getClass()))
+ sbmlSpecies.setSBOTerm(SBO.getComplex());
+ else if (Protein.class.isAssignableFrom(entity.getClass()))
+ sbmlSpecies.setSBOTerm(SBO.getProtein());
+ else if (Dna.class.isAssignableFrom(entity.getClass()))
+ sbmlSpecies.setSBOTerm("SBO:0000251");
+ else if (DnaRegion.class.isAssignableFrom(entity.getClass()))
+ sbmlSpecies.setSBOTerm("SBO:0000251"); //TODO: DNARegion equivalent to DNA?
+ else if (Rna.class.isAssignableFrom(entity.getClass()))
+ sbmlSpecies.setSBOTerm(SBO.getRNA());
+ else if (RnaRegion.class.isAssignableFrom(entity.getClass()))
+ sbmlSpecies.setSBOTerm("SBO:0000250");
+ else if (SmallMolecule.class.isAssignableFrom(entity.getClass()))
+ sbmlSpecies.setSBOTerm(SBO.getSimpleMolecule()); //TODO: simpleMolecule is equiv. to smallMolecule?
+ else
+ sbmlSpecies.setSBOTerm(SBO.getUnknownMolecule()); //TODO: Unknown SBO
+
+ return;
+ }
+
+ private void parseInteractions(Interaction entity, org.sbml.jsbml.Model sbmlModel)
+ {
+ if (Control.class.isAssignableFrom(entity.getClass()))
+ {
+ Reaction r = setReaction(entity, sbmlModel);
+ setControlSBO((Control) entity, r);
+ }
+ if (Conversion.class.isAssignableFrom(entity.getClass()))
+ {
+ Reaction r = setReaction(entity, sbmlModel);
+ setConversionSBO((Conversion) entity, r);
+ }
+ }
+
+ private Reaction setReaction(Interaction entity, org.sbml.jsbml.Model sbmlModel)
+ {
+ //TODO: assume RDFId and displayName is always given
+ Reaction reaction = sbmlModel.createReaction(entity.getRDFId());
+ reaction.setName(entity.getDisplayName());
+ return reaction;
+ }
+
+ private void setControlSBO(Control entity, Reaction reaction)
+ {
+ if (Catalysis.class.isAssignableFrom(entity.getClass()))
+ {
+ reaction.setSBOTerm(SBO.getCatalysis());
+ }
+ else if (Modulation.class.isAssignableFrom(entity.getClass()))
+ {
+ reaction.setSBOTerm(SBO.getModulation());
+ }
+ else if(TemplateReactionRegulation.class.isAssignableFrom(entity.getClass()))
+ {
+ reaction.setSBOTerm(SBO.getInteraction()); //TODO: what SBO is set for this? Is this TemplateReactionRegulation a reaction?
+ }
+
+ return;
+ }
+
+
+ private void setConversionSBO(Conversion entity, Reaction reaction)
+ {
+ if (ComplexAssembly.class.isAssignableFrom(entity.getClass()))
+ {
+ reaction.setSBOTerm(SBO.getComplex()); //TODO: IS Complex SBO equiv. to ComplexAssembly?
+ }
+ else if (BiochemicalReaction.class.isAssignableFrom(entity.getClass()))
+ {
+ reaction.setSBOTerm(SBO.getInteraction()); //TODO: what SBO is set for this?
+ }
+ else if (Transport.class.isAssignableFrom(entity.getClass()))
+ {
+ reaction.setSBOTerm(SBO.getTransport());
+ }
+ return;
+ }
+
+ private String getDatatypeName(String uri)
+ {
+ return link.getName(uri);
+ }
-
-
/**
* Control the validity of the identifier RDF<br/>
* The rdf:ID mustn't accept the characters: space, '/', ':'<br/>
@@ -70,20 +301,43 @@
return db;
}
+ static void println(String msg){
+ System.out.println(msg);
+ }
+ static void println(boolean msg){
+ System.out.println(msg);
+ }
+ static void println(int msg){
+ System.out.println(msg);
+ }
+ static void println(double msg){
+ System.out.println(msg);
+ }
+
+ static void debug(String mesg)
+ {
+ System.out.println("DEBUG : " + mesg);
+ }
+
@Override
public GeneralModel convert(GeneralModel model) throws ConversionException, ReadModelException {
try {
inputModel = model;
- return sbmlexport((BioPAXModel)model);
- } catch (SBMLException e) {
- throw new ReadModelException(e);
+ return sbmlExport((BioPAXModel)model);
+ } catch (ReadModelException e) {
+ throw e;
+ } catch (ConversionException e) {
+ throw e;
}
}
+ public String getResultExtension() {
+ return "-sbml" + ".xml";
+ }
@Override
public String getName() {
- return "SBML2BioPAX";
+ return "BioPAX2SBML";
}
@Override
@@ -95,11 +349,6 @@
public String getHtmlDescription() {
return "It converts a model format from BioPAX to SBML";
}
-
- @Override
- public String getResultExtension() {
- return ".xml";
- }
}
Modified: trunk/src/org/sbfc/converter/sbml2sbml/SBML2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2sbml/SBML2SBML.java 2016-06-09 13:59:14 UTC (rev 642)
+++ trunk/src/org/sbfc/converter/sbml2sbml/SBML2SBML.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -53,6 +53,11 @@
private static boolean isLibSBMLAvailable = false;
+ public SBML2SBML()
+ {
+ super();
+ }
+
static {
try {
System.loadLibrary("sbmlj");
Modified: trunk/src/org/util/classlist/ConverterSearcher.java
===================================================================
--- trunk/src/org/util/classlist/ConverterSearcher.java 2016-06-09 13:59:14 UTC (rev 642)
+++ trunk/src/org/util/classlist/ConverterSearcher.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -101,6 +101,7 @@
ArrayList<String> classPackages = new ArrayList<String>();
for(int i=0; i<classes.size(); i++) {
String cls = classes.get(i);
+
if(isConverter(cls)) {
classPackages.add(cls);
}
Added: trunk/src/test/org/sbfc/test/BioPAX2SBMLTests.java
===================================================================
--- trunk/src/test/org/sbfc/test/BioPAX2SBMLTests.java (rev 0)
+++ trunk/src/test/org/sbfc/test/BioPAX2SBMLTests.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -0,0 +1,20 @@
+package test.org.sbfc.test;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+import test.org.sbfc.test.biopax2sbml.PhysicalEntityTests;
+
+/**
+ * JUnit suite of tests, including all test classes for the converter BioPAX2SBML.
+ *
+ * @author rodrigue
+ *
+ */
+@RunWith(value=Suite.class)
+@SuiteClasses(value={PhysicalEntityTests.class})
+public class BioPAX2SBMLTests {
+
+
+
+}
Added: trunk/src/test/org/sbfc/test/SBFCTests.java
===================================================================
--- trunk/src/test/org/sbfc/test/SBFCTests.java (rev 0)
+++ trunk/src/test/org/sbfc/test/SBFCTests.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -0,0 +1,18 @@
+package test.org.sbfc.test;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+
+/**
+ * JUnit suite of tests, including all test classes for <a href="http://sbfc.sf.net/">SBFC</a>.
+ *
+ * @author rodrigue
+ *
+ */
+@RunWith(value=Suite.class)
+@SuiteClasses(value={SBML2BioPAXTests.class, BioPAX2SBMLTests.class})
+public class SBFCTests {
+
+}
Added: trunk/src/test/org/sbfc/test/SBML2BioPAXTests.java
===================================================================
--- trunk/src/test/org/sbfc/test/SBML2BioPAXTests.java (rev 0)
+++ trunk/src/test/org/sbfc/test/SBML2BioPAXTests.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -0,0 +1,22 @@
+package test.org.sbfc.test;
+
+import java.io.IOException;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+import test.org.sbfc.test.sbml2biopax.SBMLSpeciesTests;
+
+/**
+ * JUnit suite of tests, including all test classes for the converter SBML2PioPAX.
+ *
+ * @author rodrigue
+ *
+ */
+@RunWith(Suite.class)
+@SuiteClasses({SBMLSpeciesTests.class})
+
+public class SBML2BioPAXTests {
+
+}
Added: trunk/src/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
===================================================================
--- trunk/src/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java (rev 0)
+++ trunk/src/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -0,0 +1,106 @@
+package test.org.sbfc.test.biopax2sbml;
+
+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.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.sbfc.converter.biopax2sbml.BioPAX2SBML;
+import org.sbfc.converter.exceptions.ConversionException;
+import org.sbfc.converter.exceptions.ReadModelException;
+import org.sbfc.converter.models.BioPAXModel;
+import org.sbfc.converter.models.SBMLModel;
+import org.sbml.jsbml.SBMLDocument;
+import org.sbml.jsbml.SBMLException;
+
+
+/**
+ * Tests to check the conversion of a BioPAX PhysicalEntityinto an SBML species, making sure that any information
+ * that is possible to keep is kept properly.
+ *
+ * @author rodrigue
+ *
+ */
+public class PhysicalEntityTests {
+
+ /**
+ * SBMLDocument holding the result of the conversion
+ */
+ static private SBMLDocument doc;
+
+ /**
+ * BioPAX Model used as a starting point in the tests
+ */
+ static private Model biopaxModel;
+
+ /**
+ *
+ */
+ @BeforeClass public static void initialSetUp()
+ {
+ /*Creates the model Factory*/
+ BioPAXFactory biopaxFactory = BioPAXLevel.L3.getDefaultFactory();
+
+ /*Creates the new BioPAX Model*/
+ BioPAXModel bioPaxModelGen = new BioPAXModel(biopaxFactory.createModel());
+
+ biopaxModel = bioPaxModelGen.getModel();
+
+ // TODO - create a biopax Model containing all sort of PhysicalEntity
+
+ BioPAXElement physicalEntity = biopaxFactory.create("Protein", "myrdfAbout");
+ biopaxModel.add(physicalEntity);
+
+
+ BioPAXModel sbfcBiopaxModel = new BioPAXModel(biopaxModel);
+ BioPAX2SBML sbml2biopax = new BioPAX2SBML();
+ try
+ {
+ SBMLModel sbfcSBMLModel = sbml2biopax.sbmlExport(sbfcBiopaxModel);
+ }
+ catch (SBMLException e1)
+ {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ catch (ConversionException e1)
+ {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ catch (ReadModelException e1)
+ {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+
+ biopaxModel = sbfcBiopaxModel.getModel();
+
+ // Uncomment to see the content of the SBML and the BioPAX file as XML
+ try {
+ System.out.println("BioPAX model encoded as OWL/XML:\n " + sbfcBiopaxModel.modelToString() + "\n\n");
+ // System.out.println("SBML model encoded as XML:\n " + sbfcSBMLModel.modelToString() + "\n\n");
+ } catch (Exception e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+
+ }
+
+ /**
+ *
+ */
+ @Before public void setUp() {}
+
+ /**
+ *
+ */
+ @Test public void smallMoleculeTest()
+ {
+ // TODO - test that the SBML species contain all the appropriate information, compartment, sboTerm and RDF annotation in particular.
+
+ }
+}
Added: trunk/src/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java
===================================================================
--- trunk/src/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java (rev 0)
+++ trunk/src/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -0,0 +1,268 @@
+package test.org.sbfc.test.sbml2biopax;
+
+import static org.junit.Assert.assertTrue;
+
+import javax.xml.stream.XMLStreamException;
+
+import junit.framework.Assert;
+
+import org.biopax.paxtools.model.BioPAXElement;
+import org.biopax.paxtools.model.level3.Complex;
+import org.biopax.paxtools.model.level3.PhysicalEntity;
+import org.biopax.paxtools.model.level3.SmallMolecule;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+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.sbfc.converter.sbml2biopax.SBML2BioPAX_Arman;
+import org.sbml.jsbml.CVTerm;
+import org.sbml.jsbml.Model;
+import org.sbml.jsbml.Reaction;
+import org.sbml.jsbml.SBMLDocument;
+import org.sbml.jsbml.Species;
+
+/**
+ * Tests to check the conversion of an SBML species into a BioPAX PhysicalEntity, making sure that any information
+ * that is possible to keep is kept properly.
+ *
+ * @author rodrigue
+ *
+ */
+public class SBMLSpeciesArmanTests {
+
+ /**
+ * SBMLDocument used as a starting point in the tests
+ */
+ static private SBMLDocument doc;
+
+ /**
+ * BioPAX Model holding the result of the conversion
+ */
+ static private org.biopax.paxtools.model.Model biopaxModel;
+
+ /**
+ *
+ */
+ @BeforeClass public static void initialSetUp()
+ {
+ doc = new SBMLDocument(3, 1);
+
+ Model m = doc.createModel("sbml2physicalEntitytest");
+ m.setName("sbml2physicalEntity test");
+
+ m.createCompartment("cell");
+ m.createCompartment("extra_cellular");
+
+ // SmallMolecule => child of SBO 247 (327) or has a chebi or a kegg.compound annotation
+ Species s1 = m.createSpecies("S1");
+ s1.setSBOTerm(247);
+ s1.setName("SmallMolecule");
+ s1.setCompartment("cell"); // All other SBML species attributes are ignored at the moment.
+
+ Species s2 = m.createSpecies("S2");
+ s2.setSBOTerm(327);
+ s2.setName("SmallMolecule");
+ s2.setCompartment("extra_cellular");
+
+ Species s3 = m.createSpecies("S3");
+ s3.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/chebi/CHEBI:15377"));
+ s3.setName("SmallMolecule");
+ s3.setCompartment("cell");
+ try {
+ s3.appendNotes("Adding a small notes to this species"); // The SBML Notes should be somehow stored in the BioPAX comment element.
+ s3.appendNotes("Chebi: CHEBI:15377");
+ s3.appendNotes("Definition: An oxygen hydride consisting of an oxygen atom that is covalently bonded to two hydrogen atoms.");
+ } catch (XMLStreamException e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+
+ // no need to always test different deprecated URI but we should at least test a few.
+ Species s4 = m.createSpecies("S4");
+ s4.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "urn:miriam:obo.chebi:CHEBI%3A23436"));
+ s4.setName("SmallMolecule");
+ s4.setCompartment("cell");
+
+ Species s5 = m.createSpecies("S5");
+ s5.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://purl.obolibrary.org/obo/CHEBI#CHEBI:8116"));
+ s5.setName("SmallMolecule");
+ s5.setCompartment("cell");
+
+ Species s6 = m.createSpecies("S6");
+ s6.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/kegg.compound/C00001"));
+ s6.setName("SmallMolecule");
+ s6.setCompartment("cell");
+
+
+ // Complex => has an intact annotation or child of SBO 253 (296, 286)
+ Species s7 = m.createSpecies("S7");
+ s7.setName("Complex");
+ s7.setSBOTerm(253);
+ s7.setCompartment("cell");
+
+ Species s8 = m.createSpecies("S8");
+ s8.setName("Complex");
+ s8.setSBOTerm(296);
+ s8.setCompartment("cell");
+
+ Species s9 = m.createSpecies("S9");
+ s9.setName("Complex");
+ s9.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/intact/EBI-9691559"));
+ s9.setCompartment("cell");
+
+
+ // TODO - Protein child of SBO 297 or has annotation to uniprot, urn:miriam:kegg.compound:C00173, interpro, ensembl:ENSRNOP*, ensembl:ENSP*
+ Species s10 = m.createSpecies("S10");
+ s10.setName("Protein");
+ s10.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/uniprot/P04156"));
+ s10.setCompartment("cell");
+
+
+
+ // TODO - DNA chebi:CHEBI%3A9160, ensembl:ENSG*, ensembl:ENSRNOG*, kegg.compound:C00039, child of SBO 251?
+
+
+
+ // TODO - RNA chebi:CHEBI%3A33699, chebi:CHEBI%3A17843, ensembl:ENSRNOT*, ensembl:ENST*, kegg.compound:C00731, RNA=SBO 250 (also child of SBO 404?)
+
+
+
+ // TODO - test (DnaRegion?, RnaRegion?)
+
+
+
+ // Gene=243
+
+ // Reactions
+ Reaction r1 = m.createReaction("R1");
+ r1.createReactant(s1);
+ r1.createReactant(s2);
+ r1.createReactant(s3);
+ r1.createReactant(s4);
+ r1.createReactant(s5);
+ r1.createReactant(s6);
+
+ r1.createProduct(s7);
+ r1.createProduct(s8);
+ r1.createProduct(s9);
+ r1.createProduct(s10);
+
+ try {
+
+ SBMLModel sbfcSBMLModel = new SBMLModel(doc);
+ SBML2BioPAX_Arman sbml2biopax = new SBML2BioPAX_Arman();
+ BioPAXModel sbfcBiopaxModel = (BioPAXModel) sbml2biopax.convert(sbfcSBMLModel);
+
+ biopaxModel = sbfcBiopaxModel.getModel();
+
+ // Uncomment to see the content of the SBML and the BioPAX file as XML
+ System.out.println("SBML model encoded as XML:\n " + sbfcSBMLModel.modelToString() + "\n\n");
+ System.out.println("BioPAX model encoded as OWL/XML:\n " + sbfcBiopaxModel.modelToString() + "\n\n");
+ } catch (WriteModelException e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ } catch (ConversionException e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ } catch (ReadModelException e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+
+ }
+
+ /**
+ *
+ */
+ @Before public void setUp() {
+
+
+ }
+
+ /**
+ *
+ */
+ @Test public void smallMoleculeTest()
+ {
+ // Because 'xml:base="http://www.humanmetabolism.org/#' is added to the Biopax file, on the top level RDF element,
+ // all RDF:ID need to have this string as base.
+ String idBase = "http://www.humanmetabolism.org/#";
+
+ BioPAXElement elem = biopaxModel.getByID(idBase + "S1");
+
+ System.out.println("BioPAX Model contains an element with id 'S1' = " + biopaxModel.containsID(idBase + "S1") + ", "
+ + (elem != null ? elem.getClass().getSimpleName() : " element 'S1' not found!"));
+
+ assertTrue("The SBO ID 247 should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ PhysicalEntity pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID(idBase + "S7");
+
+ assertTrue("SBO ID 253 should be a biopax Complex", elem instanceof Complex);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "Complex");
+
+ elem = biopaxModel.getByID(idBase + "S2");
+
+ assertTrue("Any child of the SBO ID 247 should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID(idBase + "S8");
+
+ assertTrue("Any child of the SBO ID 253 should be a biopax Complex", elem instanceof Complex);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "Complex");
+
+
+ // putting those tests at the end as we know that the current converter does not make use of SBO at the moment // TODO - remove this comment when the tests pass !
+
+
+ elem = biopaxModel.getByID(idBase + "S3");
+
+ assertTrue("Most Chebi annotations should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ // TODO - Once it is implemented test that the proper EntityReference are created and that the annotation are attached there
+ // For example, here we should have a SmallMoleculeReference element where a UnificationXRef is attached
+
+ elem = biopaxModel.getByID(idBase + "S4");
+
+ assertTrue("Most Chebi annotations should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID(idBase + "S5");
+
+ assertTrue("Most Chebi annotations should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID(idBase + "S9");
+
+ assertTrue("Intact annotations should be a biopax Complex", elem instanceof Complex);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "Complex");
+
+
+
+
+
+
+ }
+
+}
Added: trunk/src/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java
===================================================================
--- trunk/src/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java (rev 0)
+++ trunk/src/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -0,0 +1,249 @@
+package test.org.sbfc.test.sbml2biopax;
+
+import static org.junit.Assert.assertTrue;
+
+import javax.xml.stream.XMLStreamException;
+
+import junit.framework.Assert;
+
+import org.biopax.paxtools.model.BioPAXElement;
+import org.biopax.paxtools.model.level3.Complex;
+import org.biopax.paxtools.model.level3.PhysicalEntity;
+import org.biopax.paxtools.model.level3.SmallMolecule;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.sbfc.converter.exceptions.WriteModelException;
+import org.sbfc.converter.models.BioPAXModel;
+import org.sbfc.converter.models.SBMLModel;
+import org.sbfc.converter.sbml2biopax.SBML2BioPAX;
+import org.sbfc.converter.sbml2biopax.SBML2BioPAX_l3;
+import org.sbml.jsbml.CVTerm;
+import org.sbml.jsbml.Model;
+import org.sbml.jsbml.Reaction;
+import org.sbml.jsbml.SBMLDocument;
+import org.sbml.jsbml.Species;
+
+/**
+ * Tests to check the conversion of an SBML species into a BioPAX PhysicalEntity, making sure that any information
+ * that is possible to keep is kept properly.
+ *
+ * @author rodrigue
+ *
+ */
+public class SBMLSpeciesTests {
+
+ /**
+ * SBMLDocument used as a starting point in the tests
+ */
+ static private SBMLDocument doc;
+
+ /**
+ * BioPAX Model holding the result of the conversion
+ */
+ static private org.biopax.paxtools.model.Model biopaxModel;
+
+ /**
+ *
+ */
+ @BeforeClass public static void initialSetUp()
+ {
+ doc = new SBMLDocument(3, 1);
+
+ Model m = doc.createModel("sbml2physicalEntitytest");
+ m.setName("sbml2physicalEntity test");
+
+ m.createCompartment("cell");
+ m.createCompartment("extra_cellular");
+
+ // SmallMolecule => child of SBO 247 (327) or has a chebi or a kegg.compound annotation
+ Species s1 = m.createSpecies("S1");
+ s1.setSBOTerm(247);
+ s1.setName("SmallMolecule");
+ s1.setCompartment("cell"); // All other SBML species attributes are ignored at the moment.
+
+ Species s2 = m.createSpecies("S2");
+ s2.setSBOTerm(327);
+ s2.setName("SmallMolecule");
+ s2.setCompartment("extra_cellular");
+
+ Species s3 = m.createSpecies("S3");
+ s3.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/chebi/CHEBI:15377"));
+ s3.setName("SmallMolecule");
+ s3.setCompartment("cell");
+ try {
+ s3.appendNotes("Adding a small notes to this species"); // The SBML Notes should be somehow stored in the BioPAX comment element.
+ s3.appendNotes("Chebi: CHEBI:15377");
+ s3.appendNotes("Definition: An oxygen hydride consisting of an oxygen atom that is covalently bonded to two hydrogen atoms.");
+ } catch (XMLStreamException e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+
+ // no need to always test different deprecated URI but we should at least test a few.
+ Species s4 = m.createSpecies("S4");
+ s4.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "urn:miriam:obo.chebi:CHEBI%3A23436"));
+ s4.setName("SmallMolecule");
+ s4.setCompartment("cell");
+
+ Species s5 = m.createSpecies("S5");
+ s5.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://purl.obolibrary.org/obo/CHEBI#CHEBI:8116"));
+ s5.setName("SmallMolecule");
+ s5.setCompartment("cell");
+
+ Species s6 = m.createSpecies("S6");
+ s6.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/kegg.compound/C00001"));
+ s6.setName("SmallMolecule");
+ s6.setCompartment("cell");
+
+ // Complex => has an intact annotation or child of SBO 253 (296, 286)
+ Species s7 = m.createSpecies("S7");
+ s7.setName("Complex");
+ s7.setSBOTerm(253);
+ s7.setCompartment("cell");
+
+ Species s8 = m.createSpecies("S8");
+ s8.setName("Complex");
+ s8.setSBOTerm(296);
+ s8.setCompartment("cell");
+
+ Species s9 = m.createSpecies("S9");
+ s9.setName("Complex");
+ s9.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/intact/EBI-9691559"));
+ s9.setCompartment("cell");
+
+ // TODO - Protein child of SBO 297 or has annotation to uniprot, urn:miriam:kegg.compound:C00173, interpro, ensembl:ENSRNOP*, ensembl:ENSP*
+ Species s10 = m.createSpecies("S10");
+ s10.setName("Protein");
+ s10.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/uniprot/P04156"));
+ s10.setCompartment("cell");
+
+
+ // TODO - DNA chebi:CHEBI%3A9160, ensembl:ENSG*, ensembl:ENSRNOG*, kegg.compound:C00039, child of SBO 251?
+
+
+
+ // TODO - RNA chebi:CHEBI%3A33699, chebi:CHEBI%3A17843, ensembl:ENSRNOT*, ensembl:ENST*, kegg.compound:C00731, RNA=SBO 250 (also child of SBO 404?)
+
+
+
+ // TODO - test (DnaRegion?, RnaRegion?)
+
+
+
+ // Gene=243
+
+ // Reactions
+ Reaction r1 = m.createReaction("R1");
+ r1.createReactant(s1);
+ r1.createReactant(s2);
+ r1.createReactant(s3);
+ r1.createReactant(s4);
+ r1.createReactant(s5);
+ r1.createReactant(s6);
+
+ r1.createProduct(s7);
+ r1.createProduct(s8);
+ r1.createProduct(s9);
+ r1.createProduct(s10);
+
+
+ SBMLModel sbfcSBMLModel = new SBMLModel(doc);
+ SBML2BioPAX sbml2biopax = new SBML2BioPAX_l3();
+ BioPAXModel sbfcBiopaxModel = sbml2biopax.biopaxexport(sbfcSBMLModel);
+
+ biopaxModel = sbfcBiopaxModel.getModel();
+
+ // Uncomment to see the content of the SBML and the BioPAX file as XML
+ try {
+ System.out.println("SBML model encoded as XML:\n " + sbfcSBMLModel.modelToString() + "\n\n");
+ System.out.println("BioPAX model encoded as OWL/XML:\n " + sbfcBiopaxModel.modelToString() + "\n\n");
+ } catch (WriteModelException e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+
+ }
+
+ /**
+ *
+ */
+ @Before public void setUp() {
+
+
+ }
+
+ /**
+ *
+ */
+ @Test public void smallMoleculeTest()
+ {
+ BioPAXElement elem = biopaxModel.getByID("S3");
+
+ assertTrue("Most Chebi annotations should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ PhysicalEntity pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ // TODO - Once it is implemented test that the proper EntityReference are created and that the annotation are attached there
+ // For example, here we should have a SmallMoleculeReference element where a UnificationXRef is attached
+ // And the SmallMoleculeReference need to have as RDF:ID, the identifiers.org URI is available
+
+ elem = biopaxModel.getByID("S4");
+
+ assertTrue("Most Chebi annotations should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID("S5");
+
+ assertTrue("Most Chebi annotations should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID("S9");
+
+ assertTrue("Intact annotations should be a biopax Complex", elem instanceof Complex);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "Complex");
+
+
+
+ // putting those tests at the end as we know that the current converter does not make use of SBO at the moment // TODO - remove this comment when the tests pass !
+
+
+ elem = biopaxModel.getByID("S1");
+
+ assertTrue("The SBO ID 247 should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID("S2");
+
+ assertTrue("Any child of the SBO ID 247 should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID("S7");
+
+ assertTrue("The SBO ID 253 should be a biopax Complex", elem instanceof Complex);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "Complex");
+
+ elem = biopaxModel.getByID("S8");
+
+ assertTrue("Any child of the SBO ID 253 should be a biopax Complex", elem instanceof Complex);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "Complex");
+
+
+ }
+
+}
Modified: trunk/test/org/sbfc/test/BioPAX2SBMLTests.java
===================================================================
--- trunk/test/org/sbfc/test/BioPAX2SBMLTests.java 2016-06-09 13:59:14 UTC (rev 642)
+++ trunk/test/org/sbfc/test/BioPAX2SBMLTests.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -15,4 +15,6 @@
@SuiteClasses(value={PhysicalEntityTests.class})
public class BioPAX2SBMLTests {
+
+
}
Modified: trunk/test/org/sbfc/test/SBML2BioPAXTests.java
===================================================================
--- trunk/test/org/sbfc/test/SBML2BioPAXTests.java 2016-06-09 13:59:14 UTC (rev 642)
+++ trunk/test/org/sbfc/test/SBML2BioPAXTests.java 2016-06-13 09:13:32 UTC (rev 643)
@@ -1,5 +1,8 @@
package org.sbfc.test;
+import java.io.IOException;
+
+import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@@ -11,8 +14,9 @@
* @author rodrigue
*
*/
-@RunWith(value=Suite.class)
-@SuiteClasses(value={SBMLSpeciesTests.class})
+@RunWith(Suite.class)
+@SuiteClasses({SBMLSpeciesTests.class})
+
public class SBML2BioPAXTests {
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nik...@us...> - 2016-06-09 13:59:16
|
Revision: 642
http://sourceforge.net/p/sbfc/code/642
Author: niko-rodrigue
Date: 2016-06-09 13:59:14 +0000 (Thu, 09 Jun 2016)
Log Message:
-----------
added an id to the reaction in the tests
Modified Paths:
--------------
trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java
trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java
Modified: trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java 2016-06-09 13:48:53 UTC (rev 641)
+++ trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java 2016-06-09 13:59:14 UTC (rev 642)
@@ -138,7 +138,7 @@
// Gene=243
// Reactions
- Reaction r1 = m.createReaction();
+ Reaction r1 = m.createReaction("R1");
r1.createReactant(s1);
r1.createReactant(s2);
r1.createReactant(s3);
Modified: trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java 2016-06-09 13:48:53 UTC (rev 641)
+++ trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java 2016-06-09 13:59:14 UTC (rev 642)
@@ -134,7 +134,7 @@
// Gene=243
// Reactions
- Reaction r1 = m.createReaction();
+ Reaction r1 = m.createReaction("R1");
r1.createReactant(s1);
r1.createReactant(s2);
r1.createReactant(s3);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nik...@us...> - 2016-06-09 13:48:55
|
Revision: 641
http://sourceforge.net/p/sbfc/code/641
Author: niko-rodrigue
Date: 2016-06-09 13:48:53 +0000 (Thu, 09 Jun 2016)
Log Message:
-----------
added a basic reaction in SBMLSpeciesTests
Modified Paths:
--------------
trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java
Modified: trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java 2016-06-09 13:14:12 UTC (rev 640)
+++ trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java 2016-06-09 13:48:53 UTC (rev 641)
@@ -20,6 +20,7 @@
import org.sbfc.converter.sbml2biopax.SBML2BioPAX_l3;
import org.sbml.jsbml.CVTerm;
import org.sbml.jsbml.Model;
+import org.sbml.jsbml.Reaction;
import org.sbml.jsbml.SBMLDocument;
import org.sbml.jsbml.Species;
@@ -69,6 +70,7 @@
Species s3 = m.createSpecies("S3");
s3.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/chebi/CHEBI:15377"));
s3.setName("SmallMolecule");
+ s3.setCompartment("cell");
try {
s3.appendNotes("Adding a small notes to this species"); // The SBML Notes should be somehow stored in the BioPAX comment element.
s3.appendNotes("Chebi: CHEBI:15377");
@@ -82,37 +84,41 @@
Species s4 = m.createSpecies("S4");
s4.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "urn:miriam:obo.chebi:CHEBI%3A23436"));
s4.setName("SmallMolecule");
-
+ s4.setCompartment("cell");
+
Species s5 = m.createSpecies("S5");
s5.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://purl.obolibrary.org/obo/CHEBI#CHEBI:8116"));
s5.setName("SmallMolecule");
+ s5.setCompartment("cell");
Species s6 = m.createSpecies("S6");
s6.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/kegg.compound/C00001"));
s6.setName("SmallMolecule");
+ s6.setCompartment("cell");
-
// Complex => has an intact annotation or child of SBO 253 (296, 286)
Species s7 = m.createSpecies("S7");
s7.setName("Complex");
s7.setSBOTerm(253);
+ s7.setCompartment("cell");
Species s8 = m.createSpecies("S8");
s8.setName("Complex");
s8.setSBOTerm(296);
+ s8.setCompartment("cell");
Species s9 = m.createSpecies("S9");
s9.setName("Complex");
s9.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/intact/EBI-9691559"));
+ s9.setCompartment("cell");
-
// TODO - Protein child of SBO 297 or has annotation to uniprot, urn:miriam:kegg.compound:C00173, interpro, ensembl:ENSRNOP*, ensembl:ENSP*
Species s10 = m.createSpecies("S10");
s10.setName("Protein");
s10.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/uniprot/P04156"));
+ s10.setCompartment("cell");
-
// TODO - DNA chebi:CHEBI%3A9160, ensembl:ENSG*, ensembl:ENSRNOG*, kegg.compound:C00039, child of SBO 251?
@@ -127,6 +133,20 @@
// Gene=243
+ // Reactions
+ Reaction r1 = m.createReaction();
+ r1.createReactant(s1);
+ r1.createReactant(s2);
+ r1.createReactant(s3);
+ r1.createReactant(s4);
+ r1.createReactant(s5);
+ r1.createReactant(s6);
+
+ r1.createProduct(s7);
+ r1.createProduct(s8);
+ r1.createProduct(s9);
+ r1.createProduct(s10);
+
SBMLModel sbfcSBMLModel = new SBMLModel(doc);
SBML2BioPAX sbml2biopax = new SBML2BioPAX_l3();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nik...@us...> - 2016-06-09 13:14:15
|
Revision: 640
http://sourceforge.net/p/sbfc/code/640
Author: niko-rodrigue
Date: 2016-06-09 13:14:12 +0000 (Thu, 09 Jun 2016)
Log Message:
-----------
Added a test class for Arman SBML2BioPAX code, mainly to see how the generated BioPAX look like.
Modified Paths:
--------------
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java
Added Paths:
-----------
trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java
Modified: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-06-07 14:56:42 UTC (rev 639)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-06-09 13:14:12 UTC (rev 640)
@@ -38,6 +38,10 @@
import org.biopax.paxtools.model.level3.UnificationXref;
import org.biopax.paxtools.model.level3.XReferrable;
import org.biopax.paxtools.model.level3.Xref;
+import org.identifiers.registry.RegistryDatabase;
+import org.identifiers.registry.RegistryLocalProvider;
+import org.identifiers.registry.RegistryUtilities;
+import org.identifiers.registry.data.DataType;
import org.sbml.jsbml.AbstractNamedSBase;
import org.sbml.jsbml.AbstractSBase;
import org.sbml.jsbml.Annotation;
@@ -180,29 +184,22 @@
}
private <T extends Xref> T resourceToXref(Class<T> xrefClass, String xrefId, String resource) {
- // Sample miriam resource: urn:miriam:chebi:CHEBI%3A15589
+ // using the miriam common library to get the id and database String regardless of the form of the URI.
- // TODO - the miriam common library could be used to get the id and database String regardless of the form of the URI.
-
- String[] tokens = resource.split(":");
T xref = bioPAXFactory.create(xrefClass, xrefId);
- // biomodels.db -> biomodels; ec-code -> ec code
- String dataBase = tokens[2]
- .replace(".", " ")
- .replace("-", " ")
- .replace(" db", " database")
- .replace("obo ", "")
- ;
- xref.setDb(dataBase);
- String idToken = tokens[3];
- try {
- URI uri = new URI(idToken);
- xref.setId(uri.getPath());
- } catch (URISyntaxException e) {
- log.warn("Problem parsing the URI, " + idToken + ":" + e.getLocalizedMessage());
- xref.setId(idToken);
+ 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);
+
return xref;
}
Added: trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java (rev 0)
+++ trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java 2016-06-09 13:14:12 UTC (rev 640)
@@ -0,0 +1,268 @@
+package org.sbfc.test.sbml2biopax;
+
+import static org.junit.Assert.assertTrue;
+
+import javax.xml.stream.XMLStreamException;
+
+import junit.framework.Assert;
+
+import org.biopax.paxtools.model.BioPAXElement;
+import org.biopax.paxtools.model.level3.Complex;
+import org.biopax.paxtools.model.level3.PhysicalEntity;
+import org.biopax.paxtools.model.level3.SmallMolecule;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+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.sbfc.converter.sbml2biopax.SBML2BioPAX_Arman;
+import org.sbml.jsbml.CVTerm;
+import org.sbml.jsbml.Model;
+import org.sbml.jsbml.Reaction;
+import org.sbml.jsbml.SBMLDocument;
+import org.sbml.jsbml.Species;
+
+/**
+ * Tests to check the conversion of an SBML species into a BioPAX PhysicalEntity, making sure that any information
+ * that is possible to keep is kept properly.
+ *
+ * @author rodrigue
+ *
+ */
+public class SBMLSpeciesArmanTests {
+
+ /**
+ * SBMLDocument used as a starting point in the tests
+ */
+ static private SBMLDocument doc;
+
+ /**
+ * BioPAX Model holding the result of the conversion
+ */
+ static private org.biopax.paxtools.model.Model biopaxModel;
+
+ /**
+ *
+ */
+ @BeforeClass public static void initialSetUp()
+ {
+ doc = new SBMLDocument(3, 1);
+
+ Model m = doc.createModel("sbml2physicalEntitytest");
+ m.setName("sbml2physicalEntity test");
+
+ m.createCompartment("cell");
+ m.createCompartment("extra_cellular");
+
+ // SmallMolecule => child of SBO 247 (327) or has a chebi or a kegg.compound annotation
+ Species s1 = m.createSpecies("S1");
+ s1.setSBOTerm(247);
+ s1.setName("SmallMolecule");
+ s1.setCompartment("cell"); // All other SBML species attributes are ignored at the moment.
+
+ Species s2 = m.createSpecies("S2");
+ s2.setSBOTerm(327);
+ s2.setName("SmallMolecule");
+ s2.setCompartment("extra_cellular");
+
+ Species s3 = m.createSpecies("S3");
+ s3.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/chebi/CHEBI:15377"));
+ s3.setName("SmallMolecule");
+ s3.setCompartment("cell");
+ try {
+ s3.appendNotes("Adding a small notes to this species"); // The SBML Notes should be somehow stored in the BioPAX comment element.
+ s3.appendNotes("Chebi: CHEBI:15377");
+ s3.appendNotes("Definition: An oxygen hydride consisting of an oxygen atom that is covalently bonded to two hydrogen atoms.");
+ } catch (XMLStreamException e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+
+ // no need to always test different deprecated URI but we should at least test a few.
+ Species s4 = m.createSpecies("S4");
+ s4.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "urn:miriam:obo.chebi:CHEBI%3A23436"));
+ s4.setName("SmallMolecule");
+ s4.setCompartment("cell");
+
+ Species s5 = m.createSpecies("S5");
+ s5.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://purl.obolibrary.org/obo/CHEBI#CHEBI:8116"));
+ s5.setName("SmallMolecule");
+ s5.setCompartment("cell");
+
+ Species s6 = m.createSpecies("S6");
+ s6.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/kegg.compound/C00001"));
+ s6.setName("SmallMolecule");
+ s6.setCompartment("cell");
+
+
+ // Complex => has an intact annotation or child of SBO 253 (296, 286)
+ Species s7 = m.createSpecies("S7");
+ s7.setName("Complex");
+ s7.setSBOTerm(253);
+ s7.setCompartment("cell");
+
+ Species s8 = m.createSpecies("S8");
+ s8.setName("Complex");
+ s8.setSBOTerm(296);
+ s8.setCompartment("cell");
+
+ Species s9 = m.createSpecies("S9");
+ s9.setName("Complex");
+ s9.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/intact/EBI-9691559"));
+ s9.setCompartment("cell");
+
+
+ // TODO - Protein child of SBO 297 or has annotation to uniprot, urn:miriam:kegg.compound:C00173, interpro, ensembl:ENSRNOP*, ensembl:ENSP*
+ Species s10 = m.createSpecies("S10");
+ s10.setName("Protein");
+ s10.addCVTerm(new CVTerm(CVTerm.Qualifier.BQB_IS, "http://identifiers.org/uniprot/P04156"));
+ s10.setCompartment("cell");
+
+
+
+ // TODO - DNA chebi:CHEBI%3A9160, ensembl:ENSG*, ensembl:ENSRNOG*, kegg.compound:C00039, child of SBO 251?
+
+
+
+ // TODO - RNA chebi:CHEBI%3A33699, chebi:CHEBI%3A17843, ensembl:ENSRNOT*, ensembl:ENST*, kegg.compound:C00731, RNA=SBO 250 (also child of SBO 404?)
+
+
+
+ // TODO - test (DnaRegion?, RnaRegion?)
+
+
+
+ // Gene=243
+
+ // Reactions
+ Reaction r1 = m.createReaction();
+ r1.createReactant(s1);
+ r1.createReactant(s2);
+ r1.createReactant(s3);
+ r1.createReactant(s4);
+ r1.createReactant(s5);
+ r1.createReactant(s6);
+
+ r1.createProduct(s7);
+ r1.createProduct(s8);
+ r1.createProduct(s9);
+ r1.createProduct(s10);
+
+ try {
+
+ SBMLModel sbfcSBMLModel = new SBMLModel(doc);
+ SBML2BioPAX_Arman sbml2biopax = new SBML2BioPAX_Arman();
+ BioPAXModel sbfcBiopaxModel = (BioPAXModel) sbml2biopax.convert(sbfcSBMLModel);
+
+ biopaxModel = sbfcBiopaxModel.getModel();
+
+ // Uncomment to see the content of the SBML and the BioPAX file as XML
+ System.out.println("SBML model encoded as XML:\n " + sbfcSBMLModel.modelToString() + "\n\n");
+ System.out.println("BioPAX model encoded as OWL/XML:\n " + sbfcBiopaxModel.modelToString() + "\n\n");
+ } catch (WriteModelException e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ } catch (ConversionException e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ } catch (ReadModelException e) {
+ e.printStackTrace();
+ Assert.fail(e.getMessage());
+ }
+
+ }
+
+ /**
+ *
+ */
+ @Before public void setUp() {
+
+
+ }
+
+ /**
+ *
+ */
+ @Test public void smallMoleculeTest()
+ {
+ // Because 'xml:base="http://www.humanmetabolism.org/#' is added to the Biopax file, on the top level RDF element,
+ // all RDF:ID need to have this string as base.
+ String idBase = "http://www.humanmetabolism.org/#";
+
+ BioPAXElement elem = biopaxModel.getByID(idBase + "S1");
+
+ System.out.println("BioPAX Model contains an element with id 'S1' = " + biopaxModel.containsID(idBase + "S1") + ", "
+ + (elem != null ? elem.getClass().getSimpleName() : " element 'S1' not found!"));
+
+ assertTrue("The SBO ID 247 should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ PhysicalEntity pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID(idBase + "S7");
+
+ assertTrue("SBO ID 253 should be a biopax Complex", elem instanceof Complex);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "Complex");
+
+ elem = biopaxModel.getByID(idBase + "S2");
+
+ assertTrue("Any child of the SBO ID 247 should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID(idBase + "S8");
+
+ assertTrue("Any child of the SBO ID 253 should be a biopax Complex", elem instanceof Complex);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "Complex");
+
+
+ // putting those tests at the end as we know that the current converter does not make use of SBO at the moment // TODO - remove this comment when the tests pass !
+
+
+ elem = biopaxModel.getByID(idBase + "S3");
+
+ assertTrue("Most Chebi annotations should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ // TODO - Once it is implemented test that the proper EntityReference are created and that the annotation are attached there
+ // For example, here we should have a SmallMoleculeReference element where a UnificationXRef is attached
+
+ elem = biopaxModel.getByID(idBase + "S4");
+
+ assertTrue("Most Chebi annotations should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID(idBase + "S5");
+
+ assertTrue("Most Chebi annotations should be a biopax SmallMolecule", elem instanceof SmallMolecule);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "SmallMolecule");
+
+ elem = biopaxModel.getByID(idBase + "S9");
+
+ assertTrue("Intact annotations should be a biopax Complex", elem instanceof Complex);
+
+ pEntity = (PhysicalEntity) elem;
+ assertTrue(pEntity.getDisplayName() == "Complex");
+
+
+
+
+
+
+ }
+
+}
Property changes on: trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesArmanTests.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev URL
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java
===================================================================
--- trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java 2016-06-07 14:56:42 UTC (rev 639)
+++ trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java 2016-06-09 13:14:12 UTC (rev 640)
@@ -99,7 +99,7 @@
Species s8 = m.createSpecies("S8");
s8.setName("Complex");
- s7.setSBOTerm(296);
+ s8.setSBOTerm(296);
Species s9 = m.createSpecies("S9");
s9.setName("Complex");
@@ -166,7 +166,8 @@
assertTrue(pEntity.getDisplayName() == "SmallMolecule");
// TODO - Once it is implemented test that the proper EntityReference are created and that the annotation are attached there
- // For example, here we should have an SmallMoleculeReference element where a UnificationXRef is attached
+ // For example, here we should have a SmallMoleculeReference element where a UnificationXRef is attached
+ // And the SmallMoleculeReference need to have as RDF:ID, the identifiers.org URI is available
elem = biopaxModel.getByID("S4");
@@ -210,14 +211,14 @@
elem = biopaxModel.getByID("S7");
- assertTrue("Intact annotations should be a biopax Complex", elem instanceof Complex);
+ assertTrue("The SBO ID 253 should be a biopax Complex", elem instanceof Complex);
pEntity = (PhysicalEntity) elem;
assertTrue(pEntity.getDisplayName() == "Complex");
elem = biopaxModel.getByID("S8");
- assertTrue("Intact annotations should be a biopax Complex", elem instanceof Complex);
+ assertTrue("Any child of the SBO ID 253 should be a biopax Complex", elem instanceof Complex);
pEntity = (PhysicalEntity) elem;
assertTrue(pEntity.getDisplayName() == "Complex");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nik...@us...> - 2016-06-07 14:56:44
|
Revision: 639
http://sourceforge.net/p/sbfc/code/639
Author: niko-rodrigue
Date: 2016-06-07 14:56:42 +0000 (Tue, 07 Jun 2016)
Log Message:
-----------
added the beginning of some junit tests for sbml2biopax and biopax2sbml + corrected the BioPAXModel.modelToString method + updated the miriam registry dump
Modified Paths:
--------------
trunk/miriam.xml
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
trunk/src/org/sbfc/converter/models/BioPAXModel.java
Added Paths:
-----------
trunk/lib/junit-4.8.jar
trunk/test/
trunk/test/org/
trunk/test/org/sbfc/
trunk/test/org/sbfc/test/
trunk/test/org/sbfc/test/BioPAX2SBMLTests.java
trunk/test/org/sbfc/test/SBFCTests.java
trunk/test/org/sbfc/test/SBML2BioPAXTests.java
trunk/test/org/sbfc/test/biopax2sbml/
trunk/test/org/sbfc/test/biopax2sbml/PhysicalEntityTests.java
trunk/test/org/sbfc/test/sbml2biopax/
trunk/test/org/sbfc/test/sbml2biopax/SBMLSpeciesTests.java
Added: trunk/lib/junit-4.8.jar
===================================================================
(Binary files differ)
Index: trunk/lib/junit-4.8.jar
===================================================================
--- trunk/lib/junit-4.8.jar 2016-06-02 10:37:11 UTC (rev 638)
+++ trunk/lib/junit-4.8.jar 2016-06-07 14:56:42 UTC (rev 639)
Property changes on: trunk/lib/junit-4.8.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/miriam.xml
===================================================================
--- trunk/miriam.xml 2016-06-02 10:37:11 UTC (rev 638)
+++ trunk/miriam.xml 2016-06-07 14:56:42 UTC (rev 639)
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Export of Identifiers.org's Registry (full) -->
-<!-- Generated: Thu May 05 16:02:00 BST 2016 -->
+<!-- Generated: Tue Jun 07 14:47:16 BST 2016 -->
<!-- http://identifiers.org/registry/ -->
-<miriam xmlns="http://www.biomodels.net/MIRIAM/" date="2016-05-05T16:02:00+01:00" data-version="2016-04-19T17:26:22+01:00">
+<miriam xmlns="http://www.biomodels.net/MIRIAM/" date="2016-06-07T14:47:16+01:00" data-version="2016-05-31T18:03:14+01:00">
<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>
@@ -57,9 +57,9 @@
<uri type="URN">urn:miriam:chebi</uri>
<uri type="URL">http://identifiers.org/chebi/</uri>
<uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/CHEBI</uri>
+ <uri type="URL" deprecated="true">http://identifiers.org/obo.chebi/</uri>
<uri type="URL" deprecated="true">http://www.ebi.ac.uk/chebi/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.chebi</uri>
- <uri type="URL" deprecated="true">http://identifiers.org/obo.chebi/</uri>
</uris>
<namespace>chebi</namespace>
<documentations>
@@ -79,9 +79,9 @@
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100158" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/chebi</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/chebi</dataResource>
<dataEntityExample>CHEBI:36927</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/chebi/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/chebi/terms?obo_id=$id</dataEntry>
<dataInfo>ChEBI through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -402,7 +402,7 @@
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100507" state="up" reliability="77">
+ <resource id="MIR:00100507" state="up" reliability="78">
<dataResource>http://bioportal.bioontology.org/ontologies/NCBITAXON</dataResource>
<dataEntityExample>9606</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/NCBITAXON/$id</dataEntry>
@@ -462,7 +462,7 @@
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
- <resource id="MIR:00100107" state="down" reliability="79">
+ <resource id="MIR:00100107" state="up" reliability="79">
<dataResource>http://biomodels.caltech.edu/</dataResource>
<dataEntityExample>BIOMD0000000048</dataEntityExample>
<dataEntry>http://biomodels.caltech.edu/$id</dataEntry>
@@ -470,7 +470,7 @@
<dataInstitution>California Institute of Technology</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100674" state="down" reliability="63">
+ <resource id="MIR:00100674" state="down" reliability="61">
<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>
@@ -622,7 +622,7 @@
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
- <resource id="MIR:00100697" state="down" reliability="54">
+ <resource id="MIR:00100697" state="down" reliability="51">
<dataResource>http://interpro.bio2rdf.org/fct/</dataResource>
<dataEntityExample>IPR000100</dataEntityExample>
<dataEntry>http://interpro.bio2rdf.org/describe/?url=http://bio2rdf.org/interpro:$id</dataEntry>
@@ -647,6 +647,9 @@
<datatype id="MIR:00000012" pattern="^\w{2,4}\d{5}$">
<name>KEGG Pathway</name>
+ <synonyms>
+ <synonym>KEGG</synonym>
+ </synonyms>
<definition>KEGG PATHWAY is a collection of manually drawn pathway maps representing our knowledge on the molecular interaction and reaction networks.</definition>
<uris>
<uri type="URN">urn:miriam:kegg.pathway</uri>
@@ -724,6 +727,9 @@
<datatype id="MIR:00000014" pattern="^R\d+$">
<name>KEGG Reaction</name>
+ <synonyms>
+ <synonym>KEGG</synonym>
+ </synonyms>
<definition>KEGG reaction contains our knowledge on the universe of reactions that are relevant to life.</definition>
<uris>
<uri type="URN">urn:miriam:kegg.reaction</uri>
@@ -782,7 +788,7 @@
<dataInstitution>National Center for Biotechnology Information</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100064" state="up" reliability="97">
+ <resource id="MIR:00100064" state="up" reliability="98">
<dataResource>http://www.hubmed.org/</dataResource>
<dataEntityExample>16333295</dataEntityExample>
<dataEntry>http://www.hubmed.org/display.cgi?uids=$id</dataEntry>
@@ -798,7 +804,7 @@
<dataInstitution>Europe PubMed Central partners</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100702" state="down" reliability="30">
+ <resource id="MIR:00100702" state="down" reliability="28">
<dataResource>http://pubmed.bio2rdf.org/fct</dataResource>
<dataEntityExample>23735196</dataEntityExample>
<dataEntry>http://pubmed.bio2rdf.org/describe/?url=http://bio2rdf.org/pubmed:$id</dataEntry>
@@ -1174,11 +1180,11 @@
<uris>
<uri type="URN">urn:miriam:go</uri>
<uri type="URL">http://identifiers.org/go/</uri>
+ <uri type="URL" deprecated="true">http://bio2rdf.org/go</uri>
<uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/GO</uri>
- <uri type="URL" deprecated="true">http://bio2rdf.org/go</uri>
+ <uri type="URL" deprecated="true">http://www.geneontology.org/</uri>
<uri type="URL" deprecated="true">http://identifiers.org/obo.go/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.go</uri>
- <uri type="URL" deprecated="true">http://www.geneontology.org/</uri>
</uris>
<namespace>go</namespace>
<documentations>
@@ -1227,9 +1233,9 @@
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100675" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/go</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/go</dataResource>
<dataEntityExample>GO:0006915</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/go/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/go/terms?obo_id=$id</dataEntry>
<dataInfo>GO through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -1351,9 +1357,9 @@
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100176" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/sbo</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/sbo</dataResource>
<dataEntityExample>SBO:0000262</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/sbo/terms?obo_id=$id</dataEntry>
+ <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>
@@ -1388,6 +1394,9 @@
<datatype id="MIR:00000025" pattern="^D\d+$">
<name>KEGG Drug</name>
+ <synonyms>
+ <synonym>KEGG</synonym>
+ </synonyms>
<definition>KEGG DRUG contains chemical structures of drugs and additional information such as therapeutic categories and target molecules.</definition>
<uris>
<uri type="URN">urn:miriam:kegg.drug</uri>
@@ -1423,6 +1432,9 @@
<datatype id="MIR:00000026" pattern="^G\d+$">
<name>KEGG Glycan</name>
+ <synonyms>
+ <synonym>KEGG</synonym>
+ </synonyms>
<definition>KEGG GLYCAN, a part of the KEGG LIGAND database, is a collection of experimentally determined glycan structures. It contains all unique structures taken from CarbBank, structures entered from recent publications, and structures present in KEGG pathways.</definition>
<uris>
<uri type="URN">urn:miriam:kegg.glycan</uri>
@@ -1680,7 +1692,7 @@
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
- <resource id="MIR:00100490" state="up" reliability="100">
+ <resource id="MIR:00100490" state="up" reliability="99">
<dataResource>http://www.ncbi.nlm.nih.gov/nuccore/</dataResource>
<dataEntityExample>X58356</dataEntityExample>
<dataEntry>http://www.ncbi.nlm.nih.gov/nuccore/$id</dataEntry>
@@ -2173,7 +2185,7 @@
<documentation type="PMID">urn:miriam:pubmed:14681372</documentation>
</documentations>
<resources>
- <resource id="MIR:00100069" state="down" reliability="93">
+ <resource id="MIR:00100069" state="down" reliability="92">
<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>
@@ -2521,7 +2533,7 @@
<documentation type="PMID">urn:miriam:pubmed:12444417</documentation>
</documentations>
<resources>
- <resource id="MIR:00100078" state="up" reliability="82">
+ <resource id="MIR:00100078" state="up" reliability="83">
<dataResource>http://arabidopsis.org/index.jsp</dataResource>
<dataEntityExample>AT1G01030</dataEntityExample>
<dataEntry>http://arabidopsis.org/servlets/TairObject?type=locus&name=$id</dataEntry>
@@ -2697,8 +2709,8 @@
<uris>
<uri type="URN">urn:miriam:eco</uri>
<uri type="URL">http://identifiers.org/eco/</uri>
+ <uri type="URN" deprecated="true">urn:miriam:obo.eco</uri>
<uri type="URL" deprecated="true">http://identifiers.org/obo.eco/</uri>
- <uri type="URN" deprecated="true">urn:miriam:obo.eco</uri>
</uris>
<namespace>eco</namespace>
<documentations>
@@ -2706,14 +2718,14 @@
</documentations>
<resources>
<resource id="MIR:00100083" state="up" reliability="98">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/eco</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/eco</dataResource>
<dataEntityExample>ECO:0000006</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/eco/terms?obo_id=$id</dataEntry>
+ <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>
</resource>
- <resource id="MIR:00100235" state="up" reliability="95">
+ <resource id="MIR:00100235" state="up" reliability="94">
<dataResource>http://bioportal.bioontology.org/ontologies/ECO</dataResource>
<dataEntityExample>ECO:0000006</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/ECO/$id</dataEntry>
@@ -2746,14 +2758,14 @@
</documentations>
<resources>
<resource id="MIR:00100084" state="up" reliability="98">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/mod</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/mod</dataResource>
<dataEntityExample>MOD:00001</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/mod/terms?obo_id=$id</dataEntry>
+ <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>
</resource>
- <resource id="MIR:00100239" state="down" reliability="97">
+ <resource id="MIR:00100239" state="up" reliability="97">
<dataResource>http://bioportal.bioontology.org/ontologies/PSIMOD</dataResource>
<dataEntityExample>MOD:00001</dataEntityExample>
<dataEntry>http://bioportal.bioontology.org/ontologies/1041?p=terms&conceptid=$id</dataEntry>
@@ -2930,7 +2942,7 @@
<documentation type="PMID">urn:miriam:pubmed:10592232</documentation>
</documentations>
<resources>
- <resource id="MIR:00100089" state="down" reliability="98">
+ <resource id="MIR:00100089" state="up" reliability="98">
<dataResource>http://www.bioinf.manchester.ac.uk/dbbrowser/sprint/</dataResource>
<dataEntityExample>PR00001</dataEntityExample>
<dataEntry>http://www.bioinf.manchester.ac.uk/cgi-bin/dbbrowser/sprint/searchprintss.cgi?prints_accn=$id&display_opts=Prints&category=None&queryform=false&regexpr=off</dataEntry>
@@ -3165,9 +3177,9 @@
</documentations>
<resources>
<resource id="MIR:00100097" state="up" reliability="98">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/fma/</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/fma/</dataResource>
<dataEntityExample>FMA:67112</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/fma/terms?obo_id=$id</dataEntry>
+ <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>
@@ -3282,6 +3294,9 @@
<datatype id="MIR:00000070" pattern="^\w+:[\w\d\.-]*$">
<name>KEGG Genes</name>
+ <synonyms>
+ <synonym>KEGG</synonym>
+ </synonyms>
<definition>KEGG GENES is a collection of gene catalogs for all complete genomes and some partial genomes, generated from publicly available resources.</definition>
<uris>
<uri type="URN">urn:miriam:kegg.genes</uri>
@@ -3663,7 +3678,7 @@
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100698" state="up" reliability="93">
+ <resource id="MIR:00100698" state="up" reliability="94">
<dataResource>http://hgnc.bio2rdf.org/fct</dataResource>
<dataEntityExample>hgnc:2674</dataEntityExample>
<dataEntry>http://hgnc.bio2rdf.org/describe/?url=http://bio2rdf.org/$id</dataEntry>
@@ -3695,8 +3710,8 @@
<uris>
<uri type="URN">urn:miriam:so</uri>
<uri type="URL">http://identifiers.org/so/</uri>
+ <uri type="URN" deprecated="true">urn:miriam:obo.so</uri>
<uri type="URL" deprecated="true">http://identifiers.org/obo.so/</uri>
- <uri type="URN" deprecated="true">urn:miriam:obo.so</uri>
</uris>
<namespace>so</namespace>
<documentations>
@@ -3720,9 +3735,9 @@
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100628" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/so</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/so</dataResource>
<dataEntityExample>SO:0000704</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/so/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/so/terms?obo_id=$id</dataEntry>
<dataInfo>Sequence Ontology through Ontology Lookup Service (OLS)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -3787,7 +3802,7 @@
<documentation type="URL">http://precedings.nature.com/documents/3214/version/1</documentation>
</documentations>
<resources>
- <resource id="MIR:00100114" state="down" reliability="96">
+ <resource id="MIR:00100114" state="down" reliability="95">
<dataResource>http://www.grenoble.prabi.fr/obiwarehouse/unipathway</dataResource>
<dataEntityExample>UPA00206</dataEntityExample>
<dataEntry>http://www.grenoble.prabi.fr/obiwarehouse/unipathway/upa?upid=$id</dataEntry>
@@ -3839,7 +3854,7 @@
<dataInstitution>Maastricht University</dataInstitution>
<dataLocation>The Netherlands</dataLocation>
</resource>
- <resource id="MIR:00100744" state="probably up" reliability="89">
+ <resource id="MIR:00100744" state="probably up" reliability="91">
<dataResource>https://www.ebi.ac.uk/rdf/services/chembl/</dataResource>
<dataEntityExample>CHEMBL308052</dataEntityExample>
<dataEntry>http://rdf.ebi.ac.uk/resource/chembl/molecule/$id</dataEntry>
@@ -3891,7 +3906,7 @@
<dataInstitution>Maastricht University</dataInstitution>
<dataLocation>The Netherlands</dataLocation>
</resource>
- <resource id="MIR:00100743" state="probably up" reliability="89">
+ <resource id="MIR:00100743" state="probably up" reliability="91">
<dataResource>http://rdf.ebi.ac.uk/resource/chembl/</dataResource>
<dataEntityExample>CHEMBL3467</dataEntityExample>
<dataEntry>http://rdf.ebi.ac.uk/resource/chembl/target/$id</dataEntry>
@@ -4116,7 +4131,7 @@
<documentation type="PMID">urn:miriam:pubmed:22103613</documentation>
</documentations>
<resources>
- <resource id="MIR:00100122" state="up" reliability="82">
+ <resource id="MIR:00100122" state="up" reliability="83">
<dataResource>http://www.pharmgkb.org/</dataResource>
<dataEntityExample>PA448710</dataEntityExample>
<dataEntry>http://www.pharmgkb.org/drug/$id</dataEntry>
@@ -4695,10 +4710,10 @@
<dataInstitution>National Center for Biomedical Ontology, Stanford</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100761" state="up" reliability="100">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/teddy</dataResource>
+ <resource id="MIR:00100761" state="up" reliability="96">
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/teddy</dataResource>
<dataEntityExample>TEDDY_0000066</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/teddy/terms?short_form=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/teddy/terms?short_form=$id</dataEntry>
<dataInfo>TEDDY though OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -4732,10 +4747,10 @@
<dataInstitution>National Center for Biomedical Ontology, Stanford</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100757" state="up" reliability="100">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/kisao</dataResource>
+ <resource id="MIR:00100757" state="up" reliability="96">
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/kisao</dataResource>
<dataEntityExample>KISAO_0000057</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/kisao/terms?short_form=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/kisao/terms?short_form=$id</dataEntry>
<dataInfo>KiSAO through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -4752,8 +4767,8 @@
<uris>
<uri type="URN">urn:miriam:psimi</uri>
<uri type="URL">http://identifiers.org/psimi/</uri>
+ <uri type="URL" deprecated="true">http://identifiers.org/obo.mi/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.mi</uri>
- <uri type="URL" deprecated="true">http://identifiers.org/obo.mi/</uri>
</uris>
<namespace>psimi</namespace>
<documentations>
@@ -4761,9 +4776,9 @@
</documentations>
<resources>
<resource id="MIR:00100142" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/mi</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/mi</dataResource>
<dataEntityExample>MI:0308</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/mi/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/mi/terms?obo_id=$id</dataEntry>
<dataInfo>Molecular Interactions Ontology through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -4817,14 +4832,14 @@
</documentations>
<resources>
<resource id="MIR:00100143" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/cl</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/cl</dataResource>
<dataEntityExample>CL:0000232</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/cl/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/cl/terms?obo_id=$id</dataEntry>
<dataInfo>Cell Type Ontology through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100234" state="up" reliability="94">
+ <resource id="MIR:00100234" state="up" reliability="95">
<dataResource>http://bioportal.bioontology.org/ontologies/CL</dataResource>
<dataEntityExample>CL:0000232</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/CL/$id</dataEntry>
@@ -4856,8 +4871,8 @@
<uri type="URN">urn:miriam:bto</uri>
<uri type="URL">http://identifiers.org/bto/</uri>
<uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/BTO</uri>
+ <uri type="URL" deprecated="true">http://identifiers.org/obo.bto/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.bto</uri>
- <uri type="URL" deprecated="true">http://identifiers.org/obo.bto/</uri>
</uris>
<namespace>bto</namespace>
<documentations>
@@ -4865,9 +4880,9 @@
</documentations>
<resources>
<resource id="MIR:00100144" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/bto</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/bto</dataResource>
<dataEntityExample>BTO:0000146</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/bto/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/bto/terms?obo_id=$id</dataEntry>
<dataInfo>Brenda Tissue Ontology through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -4901,8 +4916,8 @@
<uris>
<uri type="URN">urn:miriam:pato</uri>
<uri type="URL">http://identifiers.org/pato/</uri>
+ <uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/PATO</uri>
<uri type="URL" deprecated="true">http://purl.org/obo/owl/PATO</uri>
- <uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/PATO</uri>
<uri type="URL" deprecated="true">http://identifiers.org/obo.pato/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.pato</uri>
</uris>
@@ -4912,9 +4927,9 @@
</documentations>
<resources>
<resource id="MIR:00100145" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/pato</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/pato</dataResource>
<dataEntityExample>PATO:0001998</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/pato/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/pato/terms?obo_id=$id</dataEntry>
<dataInfo>PATO through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -5050,6 +5065,9 @@
<datatype id="MIR:00000116" pattern="^K\d+$">
<name>KEGG Orthology</name>
+ <synonyms>
+ <synonym>KEGG</synonym>
+ </synonyms>
<definition>KEGG Orthology (KO) consists of manually defined, generalised ortholog groups that correspond to KEGG pathway nodes and BRITE hierarchy nodes in all organisms.</definition>
<uris>
<uri type="URN">urn:miriam:kegg.orthology</uri>
@@ -5210,10 +5228,10 @@
<dataInstitution>University of Michigan Medical School (MI), awrence Berkeley National Laboratory (CA) and Science Commons (MA)</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100767" state="up" reliability="100">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/ro</dataResource>
+ <resource id="MIR:00100767" state="up" reliability="96">
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/ro</dataResource>
<dataEntityExample>RO_0002533</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/ro/terms?short_form=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/ro/terms?short_form=$id</dataEntry>
<dataInfo>OBO Relation Ontology through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -5482,7 +5500,7 @@
<documentation type="URL">http://purl.obolibrary.org/obo/obi</documentation>
</documentations>
<resources>
- <resource id="MIR:00100162" state="up" reliability="89" primary="true">
+ <resource id="MIR:00100162" state="up" reliability="90" primary="true">
<dataResource>http://www.ontobee.org/</dataResource>
<dataEntityExample>OBI_0000070</dataEntityExample>
<dataEntry>http://purl.obolibrary.org/obo/$id</dataEntry>
@@ -5498,10 +5516,10 @@
<dataInstitution>National Center for Biomedical Ontology, Stanford</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100760" state="up" reliability="100">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/obi</dataResource>
+ <resource id="MIR:00100760" state="up" reliability="96">
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/obi</dataResource>
<dataEntityExample>OBI_0000070</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/obi/terms?short_form=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/obi/terms?short_form=$id</dataEntry>
<dataInfo>OBI through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -5636,7 +5654,7 @@
<dataInstitution>University of Amsterdam</dataInstitution>
<dataLocation>Netherlands</dataLocation>
</resource>
- <resource id="MIR:00100170" state="down" reliability="74">
+ <resource id="MIR:00100170" state="down" reliability="73">
<dataResource>http://jjj.mib.ac.uk/index.html</dataResource>
<dataEntityExample>curien</dataEntityExample>
<dataEntry>http://jjj.mib.ac.uk/webMathematica/DataBaseSelection/processModelSelection.jsp?keytype=authors&keyword=$id</dataEntry>
@@ -5749,7 +5767,7 @@
<documentation type="PMID">urn:miriam:pubmed:18832364</documentation>
</documentations>
<resources>
- <resource id="MIR:00100173" state="down" reliability="94">
+ <resource id="MIR:00100173" state="down" reliability="92">
<dataResource>http://pid.nci.nih.gov/</dataResource>
<dataEntityExample>pi3kcipathway</dataEntityExample>
<dataEntry>http://pid.nci.nih.gov/search/pathway_landing.shtml?what=graphic&jpg=on&pathway_id=$id</dataEntry>
@@ -5853,9 +5871,9 @@
<namespace>unit</namespace>
<resources>
<resource id="MIR:00100178" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/uo</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/uo</dataResource>
<dataEntityExample>UO:0000080</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/uo/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/uo/terms?obo_id=$id</dataEntry>
<dataInfo>Unit Ontology via Ontology Lookup Service</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
@@ -5966,7 +5984,7 @@
<documentation type="URL">http://ncit.nci.nih.gov/ncitbrowser/pages/help.jsf</documentation>
</documentations>
<resources>
- <resource id="MIR:00100181" state="down" reliability="78">
+ <resource id="MIR:00100181" state="down" reliability="77">
<dataResource>http://ncit.nci.nih.gov/</dataResource>
<dataEntityExample>C80519</dataEntityExample>
<dataEntry>http://ncit.nci.nih.gov/ncitbrowser/ConceptReport.jsp?dictionary=NCI%20Thesaurus&code=$id</dataEntry>
@@ -6023,8 +6041,8 @@
<uris>
<uri type="URN">urn:miriam:pr</uri>
<uri type="URL">http://identifiers.org/pr/</uri>
+ <uri type="URN" deprecated="true">urn:miriam:obo.pr</uri>
<uri type="URL" deprecated="true">http://identifiers.org/obo.pr/</uri>
- <uri type="URN" deprecated="true">urn:miriam:obo.pr</uri>
</uris>
<namespace>pr</namespace>
<documentations>
@@ -6048,10 +6066,10 @@
<dataInstitution>National Center for Biomedical Ontology, Stanford</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100755" state="up" reliability="100">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/pr</dataResource>
+ <resource id="MIR:00100755" state="up" reliability="98">
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/pr</dataResource>
<dataEntityExample>PR:000000024</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/pr/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/pr/terms?obo_id=$id</dataEntry>
<dataInfo>Protein Ontology through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -6293,7 +6311,7 @@
<dataInstitution>Europe PubMed Central partners</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100747" state="up" reliability="92">
+ <resource id="MIR:00100747" state="up" reliability="93">
<dataResource>http://pubmedcentralcanada.ca/pmcc</dataResource>
<dataEntityExample>PMC3084216</dataEntityExample>
<dataEntry>http://pubmedcentralcanada.ca/pmcc/articles/$id</dataEntry>
@@ -6831,7 +6849,7 @@
<documentation type="URL">http://www.ncbi.nlm.nih.gov/sites/entrez?db=unists</documentation>
</documentations>
<resources>
- <resource id="MIR:00100207" state="up" reliability="99">
+ <resource id="MIR:00100207" state="down" reliability="99">
<dataResource>http://www.ncbi.nlm.nih.gov/sites/entrez?db=unists</dataResource>
<dataEntityExample>456789</dataEntityExample>
<dataEntry>http://www.ncbi.nlm.nih.gov/genome/sts/sts.cgi?uid=$id</dataEntry>
@@ -6866,7 +6884,7 @@
<documentation type="PMID">urn:miriam:pubmed:23197660</documentation>
</documentations>
<resources>
- <resource id="MIR:00100208" state="up" reliability="97" primary="true">
+ <resource id="MIR:00100208" state="up" reliability="98" primary="true">
<dataResource>http://ecogene.org/</dataResource>
<dataEntityExample>EG10173</dataEntityExample>
<dataEntry>http://www.ecogene.org/gene/$id</dataEntry>
@@ -6911,7 +6929,7 @@
<documentation type="PMID">urn:miriam:pubmed:18812395</documentation>
</documentations>
<resources>
- <resource id="MIR:00100210" state="up" reliability="88" primary="true">
+ <resource id="MIR:00100210" state="up" reliability="89" primary="true">
<dataResource>http://www.gabipd.org/</dataResource>
<dataEntityExample>2679240</dataEntityExample>
<dataEntry>http://www.gabipd.org/database/cgi-bin/GreenCards.pl.cgi?BioObjectId=$id&Mode=ShowBioObject</dataEntry>
@@ -7364,7 +7382,7 @@
<documentation type="PMID">urn:miriam:pubmed:18769488</documentation>
</documentations>
<resources>
- <resource id="MIR:00100223" state="probably up" reliability="79">
+ <resource id="MIR:00100223" state="probably up" reliability="80">
<dataResource>http://www.maizegdb.org/</dataResource>
<dataEntityExample>25011</dataEntityExample>
<dataEntry>http://www.maizegdb.org/cgi-bin/displaylocusrecord.cgi?id=$id</dataEntry>
@@ -7434,7 +7452,7 @@
<documentation type="URL">http://www.bio.nite.go.jp/pamphlet/e/nbrc-e.html</documentation>
</documentations>
<resources>
- <resource id="MIR:00100225" state="down" reliability="98">
+ <resource id="MIR:00100225" state="up" reliability="98">
<dataResource>http://www.nbrc.nite.go.jp/e/index.html</dataResource>
<dataEntityExample>00001234</dataEntityExample>
<dataEntry>http://www.nbrc.nite.go.jp/NBRC2/NBRCCatalogueDetailServlet?ID=NBRC&CAT=$id</dataEntry>
@@ -7472,7 +7490,7 @@
<documentation type="PMID">urn:miriam:pubmed:18978025</documentation>
</documentations>
<resources>
- <resource id="MIR:00100226" state="down" reliability="90">
+ <resource id="MIR:00100226" state="down" reliability="88">
<dataResource>http://www.pseudomonas.com/</dataResource>
<dataEntityExample>PSEEN0001</dataEntityExample>
<dataEntry>http://v2.pseudomonas.com/getAnnotation.do?locusID=$id</dataEntry>
@@ -7637,7 +7655,7 @@
<documentation type="PMID">urn:miriam:pubmed:20935049</documentation>
</documentations>
<resources>
- <resource id="MIR:00100231" state="down" reliability="86">
+ <resource id="MIR:00100231" state="down" reliability="84">
<dataResource>http://solgenomics.net/</dataResource>
<dataEntityExample>0001</dataEntityExample>
<dataEntry>http://solgenomics.net/phenome/locus_display.pl?locus_id=$id</dataEntry>
@@ -7770,10 +7788,10 @@
<dataInstitution>National Center for Biomedical Ontology, Stanford</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100762" state="up" reliability="100">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/edam</dataResource>
+ <resource id="MIR:00100762" state="up" reliability="96">
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/edam</dataResource>
<dataEntityExample>data_1664</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/edam/terms?short_form=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/edam/terms?short_form=$id</dataEntry>
<dataInfo>EDAM through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -7807,7 +7825,7 @@
<documentation type="DOI">urn:miriam:doi:10.1093%2Fnar%2Fgkj105</documentation>
</documentations>
<resources>
- <resource id="MIR:00100247" state="up" reliability="77">
+ <resource id="MIR:00100247" state="down" reliability="77">
<dataResource>https://bioinformatics.cineca.it/PMDB/</dataResource>
<dataEntityExample>PM0012345</dataEntityExample>
<dataEntry>https://bioinformatics.cineca.it/PMDB/user//search.php?idsearch=$id</dataEntry>
@@ -7957,7 +7975,7 @@
<documentation type="PMID">urn:miriam:pubmed:16246909</documentation>
</documentations>
<resources>
- <resource id="MIR:00100251" state="up" reliability="75">
+ <resource id="MIR:00100251" state="up" reliability="76">
<dataResource>http://biocyc.org</dataResource>
<dataEntityExample>ECOLI:CYT-D-UBIOX-CPLX</dataEntityExample>
<dataEntry>http://biocyc.org/getid?id=$id</dataEntry>
@@ -8455,7 +8473,7 @@
<documentation type="PMID">urn:miriam:pubmed:17142229</documentation>
</documentations>
<resources>
- <resource id="MIR:00100266" state="up" reliability="67">
+ <resource id="MIR:00100266" state="up" reliability="68">
<dataResource>http://euhcvdb.ibcp.fr/euHCVdb/</dataResource>
<dataEntityExample>M58335</dataEntityExample>
<dataEntry>https://euhcvdb.ibcp.fr/euHCVdb/do/displayHCVEntry?primaryAC=$id</dataEntry>
@@ -8594,7 +8612,7 @@
<documentation type="PMID">urn:miriam:pubmed:15608279</documentation>
</documentations>
<resources>
- <resource id="MIR:00100270" state="down" reliability="81">
+ <resource id="MIR:00100270" state="down" reliability="79">
<dataResource>http://urgi.versailles.inra.fr/Genefarm/</dataResource>
<dataEntityExample>4892</dataEntityExample>
<dataEntry>https://urgi.versailles.inra.fr/Genefarm/Gene/display_gene.htpl?GENE_ID=$id</dataEntry>
@@ -8633,7 +8651,7 @@
<documentation type="PMID">urn:miriam:pubmed:21045054</documentation>
</documentations>
<resources>
- <resource id="MIR:00100271" state="down" reliability="91">
+ <resource id="MIR:00100271" state="down" reliability="89">
<dataResource>http://www.gpcr.org/7tm/</dataResource>
<dataEntityExample>RL3R1_HUMAN</dataEntityExample>
<dataEntry>http://www.gpcr.org/7tm/proteins/$id</dataEntry>
@@ -8944,7 +8962,7 @@
<dataInstitution>Inserm, Hôpital Broussais, Paris</dataInstitution>
<dataLocation>France</dataLocation>
</resource>
- <resource id="MIR:00100701" state="up" reliability="74">
+ <resource id="MIR:00100701" state="up" reliability="75">
<dataResource>http://orphanet.bio2rdf.org/fct</dataResource>
<dataEntityExample>85163</dataEntityExample>
<dataEntry>http://orphanet.bio2rdf.org/describe/?url=http://bio2rdf.org/orphanet:$id</dataEntry>
@@ -9379,7 +9397,7 @@
<documentation type="PMID">urn:miriam:pubmed:19028744</documentation>
</documentations>
<resources>
- <resource id="MIR:00100291" state="up" reliability="63" primary="true">
+ <resource id="MIR:00100291" state="down" reliability="61" primary="true">
<dataResource>http://www.vectorbase.org/</dataResource>
<dataEntityExample>ISCW007415</dataEntityExample>
<dataEntry>https://www.vectorbase.org/search/site/$id?&site="Genome"</dataEntry>
@@ -9411,8 +9429,8 @@
<uris>
<uri type="URN">urn:miriam:doid</uri>
<uri type="URL">http://identifiers.org/doid/</uri>
+ <uri type="URN" deprecated="true">urn:miriam:obo.do</uri>
<uri type="URL" deprecated="true">http://identifiers.org/obo.do/</uri>
- <uri type="URN" deprecated="true">urn:miriam:obo.do</uri>
</uris>
<namespace>doid</namespace>
<documentations>
@@ -9429,9 +9447,9 @@
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100293" state="up" reliability="98">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/doid</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/doid</dataResource>
<dataEntityExample>DOID:11337</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/doid/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/doid/terms?obo_id=$id</dataEntry>
<dataInfo>Human Disease Ontology through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -9622,6 +9640,7 @@
<name>KEGG Genome</name>
<synonyms>
<synonym>KEGG Organism</synonym>
+ <synonym>KEGG</synonym>
</synonyms>
<definition>KEGG Genome is a collection of organisms whose genomes have been completely sequenced.</definition>
<uris>
@@ -9656,6 +9675,9 @@
<datatype id="MIR:00000239" pattern="^T3\d+$">
<name>KEGG Metagenome</name>
+ <synonyms>
+ <synonym>KEGG</synonym>
+ </synonyms>
<definition>The KEGG Metagenome Database collection information on environmental samples (ecosystems) of genome sequences for multiple species.</definition>
<uris>
<uri type="URN">urn:miriam:kegg.metagenome</uri>
@@ -9743,7 +9765,7 @@
<documentation type="URL">http://nikkajiweb.jst.go.jp/nikkaji_web/pages/top_e.jsp</documentation>
</documentations>
<resources>
- <resource id="MIR:00100307" state="down" reliability="96">
+ <resource id="MIR:00100307" state="down" reliability="94">
<dataResource>http://nikkajiweb.jst.go.jp/nikkaji_web/pages/top_e.jsp</dataResource>
<dataEntityExample>J55.713G</dataEntityExample>
<dataEntry>http://nikkajiweb.jst.go.jp/nikkaji_web/pages/top_e.jsp?CONTENT=syosai&SN=$id</dataEntry>
@@ -9771,8 +9793,8 @@
<uris>
<uri type="URN">urn:miriam:pw</uri>
<uri type="URL">http://identifiers.org/pw/</uri>
+ <uri type="URL" deprecated="true">http://identifiers.org/obo.pw/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.pw</uri>
- <uri type="URL" deprecated="true">http://identifiers.org/obo.pw/</uri>
</uris>
<namespace>pw</namespace>
<documentations>
@@ -9788,9 +9810,9 @@
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100310" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/pw</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/pw</dataResource>
<dataEntityExample>PW:0000208</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/pw/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/pw/terms?obo_id=$id</dataEntry>
<dataInfo>Pathway Ontology through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -10025,7 +10047,7 @@
<documentation type="PMID">urn:miriam:pubmed:22135294</documentation>
</documentations>
<resources>
- <resource id="MIR:00100319" state="down" reliability="83">
+ <resource id="MIR:00100319" state="down" reliability="81">
<dataResource>http://www.noncode.org/</dataResource>
<dataEntityExample>377550</dataEntityExample>
<dataEntry>http://www.noncode.org/NONCODERv3/ncrna.php?ncid=$id</dataEntry>
@@ -10063,7 +10085,7 @@
<documentation type="PMID">urn:miriam:pubmed:22139916</documentation>
</documentations>
<resources>
- <resource id="MIR:00100320" state="up" reliability="97">
+ <resource id="MIR:00100320" state="down" reliability="97">
<dataResource>http://crdd.osdd.net/servers/virsirnadb</dataResource>
<dataEntityExample>virsi1909</dataEntityExample>
<dataEntry>http://crdd.osdd.net/servers/virsirnadb/record.php?details=$id</dataEntry>
@@ -10213,7 +10235,7 @@
<documentation type="PMID">urn:miriam:pubmed:22080550</documentation>
</documentations>
<resources>
- <resource id="MIR:00100324" state="up" reliability="60">
+ <resource id="MIR:00100324" state="up" reliability="61">
<dataResource>http://bykdb.ibcp.fr/BYKdb/</dataResource>
<dataEntityExample>A0A010GJI9</dataEntityExample>
<dataEntry>https://bykdb.ibcp.fr/data/html/annotated/$id.html</dataEntry>
@@ -10249,7 +10271,7 @@
<documentation type="PMID">urn:miriam:pubmed:22058133</documentation>
</documentations>
<resources>
- <resource id="MIR:00100325" state="up" reliability="98">
+ <resource id="MIR:00100325" state="up" reliability="99">
<dataResource>http://www.conoserver.org/</dataResource>
<dataEntityExample>2639</dataEntityExample>
<dataEntry>http://www.conoserver.org/?page=card&table=protein&id=$id</dataEntry>
@@ -10486,7 +10508,7 @@
<documentation type="URL">http://www.cabri.org/guidelines.html</documentation>
</documentations>
<resources>
- <resource id="MIR:00100334" state="up" reliability="96" primary="true">
+ <resource id="MIR:00100334" state="up" reliability="95" primary="true">
<dataResource>http://www.cabri.org/</dataResource>
<dataEntityExample>dsmz_mutz-id:ACC 291</dataEntityExample>
<dataEntry>http://www.cabri.org/CABRI/srs-bin/wgetz?-e+-page+EntryPage+[$id]</dataEntry>
@@ -10782,7 +10804,7 @@
<documentation type="DOI">urn:miriam:doi:10.1093%2Fdatabase%2Fbap024</documentation>
</documentations>
<resources>
- <resource id="MIR:00100345" state="up" reliability="96">
+ <resource id="MIR:00100345" state="up" reliability="97">
<dataResource>http://www.phenol-explorer.eu/foods/</dataResource>
<dataEntityExample>75</dataEntityExample>
<dataEntry>http://phenol-explorer.eu/foods/$id</dataEntry>
@@ -10972,7 +10994,7 @@
<documentation type="PMID">urn:miriam:pubmed:20623627</documentation>
</documentations>
<resources>
- <resource id="MIR:00100353" state="down" reliability="94" primary="true">
+ <resource id="MIR:00100353" state="up" reliability="92" primary="true">
<dataResource>http://www.massbank.jp</dataResource>
<dataEntityExample>PB000166</dataEntityExample>
<dataEntry>http://www.massbank.jp/jsp/FwdRecord.jsp?id=$id</dataEntry>
@@ -10980,7 +11002,7 @@
<dataInstitution>The MassBank Consortium</dataInstitution>
<dataLocation>Japan</dataLocation>
</resource>
- <resource id="MIR:00100666" state="up" reliability="98">
+ <resource id="MIR:00100666" state="up" reliability="97">
<dataResource>http://www.massbank.eu/</dataResource>
<dataEntityExample>PB000166</dataEntityExample>
<dataEntry>http://www.massbank.eu/MassBank/jsp/FwdRecord.jsp?id=$id</dataEntry>
@@ -12200,7 +12222,7 @@
<documentation type="URL">http://lgsun.grc.nia.nih.gov/cDNA/</documentation>
</documentations>
<resources>
- <resource id="MIR:00100387" state="down" reliability="75">
+ <resource id="MIR:00100387" state="down" reliability="73">
<dataResource>http://lgsun.grc.nia.nih.gov/cDNA/</dataResource>
<dataEntityExample>J0705A10</dataEntityExample>
<dataEntry>http://lgsun.grc.nia.nih.gov/cgi-bin/pro3?sname1=$id</dataEntry>
@@ -12271,8 +12293,8 @@
<uri type="URN">urn:miriam:po</uri>
<uri type="URL">http://identifiers.org/po/</uri>
<uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/PO</uri>
+ <uri type="URN" deprecated="true">urn:miriam:obo.po</uri>
<uri type="URL" deprecated="true">http://identifiers.org/obo.po/</uri>
- <uri type="URN" deprecated="true">urn:miriam:obo.po</uri>
</uris>
<namespace>po</namespace>
<documentations>
@@ -12296,9 +12318,9 @@
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100676" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/po</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/po</dataResource>
<dataEntityExample>PO:0009089</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/po/terms?obo_id=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/po/terms?obo_id=$id</dataEntry>
<dataInfo>Plant Ontology through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -12489,7 +12511,7 @@
<documentation type="PMID">urn:miriam:pubmed:12801879</documentation>
</documentations>
<resources>
- <resource id="MIR:00100395" state="down" reliability="88">
+ <resource id="MIR:00100395" state="down" reliability="86">
<dataResource>http://treebase.org/</dataResource>
<dataEntityExample>TB2:S1000</dataEntityExample>
<dataEntry>http://purl.org/phylo/treebase/phylows/study/$id?format=html</dataEntry>
@@ -12886,7 +12908,7 @@
<documentation type="PMID">urn:miriam:pubmed:16404815</documentation>
</documentations>
<resources>
- <resource id="MIR:00100406" state="down" reliability="76">
+ <resource id="MIR:00100406" state="down" reliability="74">
<dataResource>http://masspec.scripps.edu/</dataResource>
<dataEntityExample>1455</dataEntityExample>
<dataEntry>http://metlin.scripps.edu/metabo_info.php?molid=$id</dataEntry>
@@ -12919,7 +12941,7 @@
<documentation type="PMID">urn:miriam:pubmed:20689021</documentation>
</documentations>
<resources>
- <resource id="MIR:00100407" state="down" reliability="78" primary="true">
+ <resource id="MIR:00100407" state="down" reliability="76" primary="true">
<dataResource>http://www.genecards.org/</dataResource>
<dataEntityExample>ABL1</dataEntityExample>
<dataEntry>http://www.genecards.org/cgi-bin/carddisp.pl?gene=$id</dataEntry>
@@ -13557,7 +13579,7 @@
<documentation type="PMID">urn:miriam:pubmed:16861205</documentation>
</documentations>
<resources>
- <resource id="MIR:00100433" state="up" reliability="87">
+ <resource id="MIR:00100433" state="up" reliability="88">
<dataResource>http://www.ubio.org</dataResource>
<dataEntityExample>2555646</dataEntityExample>
<dataEntry>http://www.ubio.org/browser/details.php?namebankID=$id</dataEntry>
@@ -13896,7 +13918,7 @@
<documentation type="PMID">urn:miriam:pubmed:21940398</documentation>
</documentations>
<resources>
- <resource id="MIR:00100442" state="up" reliability="84">
+ <resource id="MIR:00100442" state="up" reliability="85">
<dataResource>http://bitterdb.agri.huji.ac.il/dbbitter.php</dataResource>
<dataEntityExample>1</dataEntityExample>
<dataEntry>http://bitterdb.agri.huji.ac.il/Receptor.php?id=$id</dataEntry>
@@ -13931,7 +13953,7 @@
<documentation type="PMID">urn:miriam:pubmed:21940398</documentation>
</documentations>
<resources>
- <resource id="MIR:00100443" state="up" reliability="85">
+ <resource id="MIR:00100443" state="up" reliability="86">
<dataResource>http://bitterdb.agri.huji.ac.il/dbbitter.php</dataResource>
<dataEntityExample>46</dataEntityExample>
<dataEntry>http://bitterdb.agri.huji.ac.il/bitterdb/compound.php?id=$id</dataEntry>
@@ -14019,10 +14041,10 @@
<documentation type="PMID">urn:miriam:pubmed:22096232</documentation>
</documentations>
<resources>
- <resource id="MIR:00100447" state="probably up" reliability="98">
+ <resource id="MIR:00100447" state="probably up" reliability="98" primary="true">
<dataResource>http://www.ebi.ac.uk/biosamples/</dataResource>
- <dataEntityExample>SAMEG70402</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/biosamples/browse.html?keywords=$id</dataEntry>
+ <dataEntityExample>SAMEA2397676</dataEntityExample>
+ <dataEntry>http://www.ebi.ac.uk/biosamples/sample/$id</dataEntry>
<dataInfo>BioSample Database at EBI</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -14035,7 +14057,7 @@
<dataInstitution>National Center for Biotechnology Information (NCBI), NIH, Maryland</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100707" state="up" reliability="94">
+ <resource id="MIR:00100707" state="up" reliability="95">
<dataResource>http://trace.ddbj.nig.ac.jp/biosample/</dataResource>
<dataEntityExample>SAMD00005257</dataEntityExample>
<dataEntry>http://trace.ddbj.nig.ac.jp/BSSearch/biosample?acc=$id</dataEntry>
@@ -14140,7 +14162,7 @@
<documentation type="URL">http://ncim.nci.nih.gov/ncimbrowser/pages/help.jsf</documentation>
</documentations>
<resources>
- <resource id="MIR:00100450" state="down" reliability="76">
+ <resource id="MIR:00100450" state="down" reliability="74">
<dataResource>http://ncim.nci.nih.gov/</dataResource>
<dataEntityExample>C0026339</dataEntityExample>
<dataEntry>http://ncim.nci.nih.gov/ncimbrowser/ConceptReport.jsp?dictionary=NCI%20MetaThesaurus&code=$id</dataEntry>
@@ -14216,7 +14238,7 @@
<documentation type="PMID">urn:miriam:pubmed:21993301</documentation>
</documentations>
<resources>
- <resource id="MIR:00100452" state="up" reliability="65">
+ <resource id="MIR:00100452" state="up" reliability="66">
<dataResource>http://polbase.neb.com/</dataResource>
<dataEntityExample>19-T4</dataEntityExample>
<dataEntry>https://polbase.neb.com/polymerases/$id#sequences</dataEntry>
@@ -14250,7 +14272,7 @@
<documentation type="PMID">urn:miriam:pubmed:22064856</documentation>
</documentations>
<resources>
- <resource id="MIR:00100453" state="down" reliability="91">
+ <resource id="MIR:00100453" state="down" reliability="89">
<dataResource>http://www.receptors.org/nucleardb/</dataResource>
<dataEntityExample>prgr_human</dataEntityExample>
<dataEntry>http://www.receptors.org/nucleardb/proteins/$id</dataEntry>
@@ -14611,7 +14633,7 @@
<documentation type="PMID">urn:miriam:pubmed:22009674</documentation>
</documentations>
<resources>
- <resource id="MIR:00100465" state="down" reliability="80">
+ <resource id="MIR:00100465" state="down" reliability="78">
<dataResource>http://darcsite.genzentrum.lmu.de/darc/index.php</dataResource>
<dataEntityExample>1250</dataEntityExample>
<dataEntry>http://darcsite.genzentrum.lmu.de/darc/view.php?id=$id</dataEntry>
@@ -15005,7 +15027,7 @@
<dataInstitution></dataInstitution>
<dataLocation>Singapore</dataLocation>
</resource>
- <resource id="MIR:00100630" state="up" reliability="88">
+ <resource id="MIR:00100630" state="up" reliability="89">
<dataResource>http://uswest.ensembl.org/</dataResource>
<dataEntityExample>LRG_1</dataEntityExample>
<dataEntry>http://uswest.ensembl.org/Homo_sapiens/LRG/Summary?lrg=$id</dataEntry>
@@ -15052,7 +15074,7 @@
<documentation type="PMID">urn:miriam:pubmed:18988627</documentation>
</documentations>
<resources>
- <resource id="MIR:00100479" state="down" reliability="94">
+ <resource id="MIR:00100479" state="up" reliability="94">
<dataResource>http://www.hprd.org/</dataResource>
<dataEntityExample>00001</dataEntityExample>
<dataEntry>http://www.hprd.org/protein/$id</dataEntry>
@@ -15095,7 +15117,7 @@
<documentation type="PMID">urn:miriam:pubmed:22064864</documentation>
</documentations>
<resources>
- <resource id="MIR:00100482" state="up" reliability="82">
+ <resource id="MIR:00100482" state="up" reliability="83">
<dataResource>http://www.ebi.ac.uk/gxa/</dataResource>
<dataEntityExample>AT4G01080</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/gxa/genes/$id</dataEntry>
@@ -15209,7 +15231,7 @@
<documentation type="URL">http://www.dnb.de/EN/Service/DigitaleDienste/URNService/urnservice_node.html</documentation>
</documentations>
<resources>
- <resource id="MIR:00100488" state="down" reliability="98">
+ <resource id="MIR:00100488" state="up" reliability="98">
<dataResource>http://nbn-resolving.org/resolve_urn.htm</dataResource>
<dataEntityExample>urn:nbn:fi:tkk-004781</dataEntityExample>
<dataEntry>http://nbn-resolving.org/resolver?identifier=$id&verb=full</dataEntry>
@@ -15285,7 +15307,7 @@
<documentation type="URL">http://www.inchi-trust.org/</documentation>
</documentations>
<resources>
- <resource id="MIR:00100491" state="up" reliability="79">
+ <resource id="MIR:00100491" state="up" reliability="80">
<dataResource>http://rdf.openmolecules.net/</dataResource>
<dataEntityExample>InChI=1S/C2H6O/c1-2-3/h3H,2H2,1H3</dataEntityExample>
<dataEntry>http://rdf.openmolecules.net/?$id</dataEntry>
@@ -15394,7 +15416,7 @@
<documentation type="PMID">urn:miriam:pubmed:18689816</documentation>
</documentations>
<resources>
- <resource id="MIR:00100499" state="down" reliability="50">
+ <resource id="MIR:00100499" state="down" reliability="49">
<dataResource>http://kinase.bioinformatics.tw/</dataResource>
<dataEntityExample>AURKA</dataEntityExample>
<dataEntry>http://kinase.bioinformatics.tw/showall.jsp?type=Kinase&info=Gene&name=$id&drawing=0&sorting=0&kinome=1</dataEntry>
@@ -15429,7 +15451,7 @@
<documentation type="PMID">urn:miriam:pubmed:18689816</documentation>
</documentations>
<resources>
- <resource id="MIR:00100500" state="down" reliability="50">
+ <resource id="MIR:00100500" state="down" reliability="49">
<dataResource>http://kinase.bioinformatics.tw/</dataResource>
<dataEntityExample>AURKA</dataEntityExample>
<dataEntry>http://kinase.bioinformatics.tw/showall.jsp?type=PhosphoProtein&info=Gene&name=$id&drawing=0&sorting=0&kinome=0</dataEntry>
@@ -15468,7 +15490,7 @@
<documentation type="URL">http://www.inchi-trust.org/technical-faq/</documentation>
</documentations>
<resources>
- <resource id="MIR:00100501" state="up" reliability="80">
+ <resource id="MIR:00100501" state="up" reliability="81">
<dataResource>http://www.chemspider.com/</dataResource>
<dataEntityExample>RYYVLZVUVIJVGH-UHFFFAOYSA-N</dataEntityExample>
<dataEntry>http://www.chemspider.com/inchikey=$id</dataEntry>
@@ -15570,6 +15592,9 @@
<datatype id="MIR:00000389" pattern="^ev\:E\d+$">
<name>KEGG Environ</name>
+ <synonyms>
+ <synonym>KEGG</synonym>
+ </synonyms>
<definition>KEGG ENVIRON (renamed from EDRUG) is a collection of crude drugs, essential oils, and other health-promoting substances, which are mostly natural products of plants. It will contain environmental substances and other health-damagine substances as well. Each KEGG ENVIRON entry is identified by the E number and is associated with the chemical component, efficacy information, and source species information whenever applicable.</definition>
<uris>
<uri type="URN">urn:miriam:kegg.environ</uri>
@@ -15656,9 +15681,9 @@
</documentations>
<resources>
<resource id="MIR:00100509" state="up" reliability="95">
- <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/efo</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/ontologies/efo</dataResource>
<dataEntityExample>0004859</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/efo/terms?obo_id=EFO:$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/ontologies/efo/terms?obo_id=EFO:$id</dataEntry>
<dataInfo>EFO through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -16053,7 +16078,7 @@
<documentation type="PMID">urn:miriam:pubmed:22135293</documentation>
</documentations>
<resources>
- <resource id="MIR:00100521" state="up" reliability="62">
+ <resource id="MIR:00100521" state="up" reliability="63">
<dataResource>http://www.genomesonline.org/cgi-bin/GOLD/index.cgi</dataResource>
<dataEntityExample>Gi07796</dataEntityExample>
<dataEntry>http://www.genomesonline.or...
[truncated message content] |
|
From: <nik...@us...> - 2016-06-02 10:37:14
|
Revision: 638
http://sourceforge.net/p/sbfc/code/638
Author: niko-rodrigue
Date: 2016-06-02 10:37:11 +0000 (Thu, 02 Jun 2016)
Log Message:
-----------
commented the debug print of the first 150 characters of the input SBML file in SBML2SBML + trying to write the libsbml errors in the log when the conversion is not successful.
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 2016-06-02 10:30:56 UTC (rev 637)
+++ trunk/src/org/sbfc/converter/sbml2sbml/SBML2SBML.java 2016-06-02 10:37:11 UTC (rev 638)
@@ -111,10 +111,12 @@
try {
currentSBML = sbmlModel.modelToString();
- if (currentSBML != null && currentSBML.length() > 151) {
- System.out.println("SBML2SBML : converted model : \n" + currentSBML.substring(0, 150));
- }
- System.out.println();
+ System.out.println("SBML2SBML : current model size = " + currentSBML.length());
+
+// if (currentSBML != null && currentSBML.length() > 151) {
+// System.out.println("SBML2SBML : current model : \n" + currentSBML.substring(0, 150));
+// }
+// System.out.println();
} catch (WriteModelException e1) {
e1.printStackTrace();
return null;
@@ -138,9 +140,10 @@
// TODO : if setLevelAndVersion returned false, the conversion is not possible
// and we need to return the list of errors found by libSBML
- // Could be written in the notes of the empty sbml element
+ // Could be written in the notes of an empty sbml element
if (!isSetLVSuccesfull) {
+ System.out.println("SBML2SBML - Conversion was not possible, here are the errors returned by libSBML:");
libSBMLdoc.printErrors();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nik...@us...> - 2016-06-02 10:30:57
|
Revision: 637
http://sourceforge.net/p/sbfc/code/637
Author: niko-rodrigue
Date: 2016-06-02 10:30:56 +0000 (Thu, 02 Jun 2016)
Log Message:
-----------
added an additional SBML2Biopax converter to have Arman 2014 code at the same place as the SBML converter to make it easier to compare/merge both codebase
Added Paths:
-----------
trunk/src/org/sbfc/converter/sbml2biopax/SBML2BioPAX_Arman.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
Added: trunk/src/org/sbfc/converter/sbml2biopax/SBML2BioPAX_Arman.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/SBML2BioPAX_Arman.java (rev 0)
+++ trunk/src/org/sbfc/converter/sbml2biopax/SBML2BioPAX_Arman.java 2016-06-02 10:30:56 UTC (rev 637)
@@ -0,0 +1,118 @@
+package org.sbfc.converter.sbml2biopax;
+
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.biopax.paxtools.io.SimpleIOHandler;
+import org.biopax.paxtools.model.BioPAXLevel;
+import org.biopax.paxtools.model.Model;
+import org.sbfc.converter.GeneralConverter;
+import org.sbfc.converter.exceptions.ConversionException;
+import org.sbfc.converter.exceptions.ReadModelException;
+import org.sbfc.converter.models.BioPAXModel;
+import org.sbfc.converter.models.GeneralModel;
+import org.sbfc.converter.models.SBMLModel;
+import org.sbfc.converter.sbml2biopax.arman.SBML2BioPAXConverter;
+import org.sbml.jsbml.SBMLDocument;
+import org.sbml.jsbml.SBMLReader;
+
+/**
+ * Converts an SBML model into a BioPAX L3 model, code done during GSOC 2014 by Bülent Arman Aksoy (http://arman.aksoy.org/).
+ *
+ * <p>Note: works only with SBML files that contain annotation or the URN form: urn:miriam:chebi:CHEBI%3A15589
+ *
+ * <p>Imported from https://bitbucket.org/armish/gsoc14/overview
+ *
+ * @author rodrigue
+ * @author armish
+ *
+ */
+public class SBML2BioPAX_Arman extends GeneralConverter {
+
+
+ /**
+ * logger
+ */
+ private static Log log = LogFactory.getLog(SBML2BioPAX_Arman.class);
+
+ /**
+ * Converts an input SBML file into a BioPAX L3 model and save it in the given output owl file.
+ *
+ * @param args arguments to the class, expect two files as input
+ * @throws IOException - if an I/O error occurs.
+ * @throws XMLStreamException - if there is an error reading the XML file.
+ */
+ public static void main(String[] args) throws IOException, XMLStreamException {
+ if(args.length < 2) {
+ System.err.println("Usage: SBML2BioPAX input.sbml output.owl");
+ System.exit(-1);
+ }
+
+ String sbmlFile = args[0],
+ bpFile = args[1];
+
+ log.info("Reading SBML file: " + sbmlFile);
+ SBMLDocument sbmlDocument = SBMLReader.read(new File(sbmlFile));
+ log.info("SBML model loaded: " + sbmlDocument.getModel().getNumReactions() + " reactions in it.");
+
+ log.info("Converting SBML model to BioPAX...");
+ SBML2BioPAXConverter sbml2BioPAXConverter = new SBML2BioPAXConverter();
+ Model bpModel = sbml2BioPAXConverter.convert(sbmlDocument);
+
+ log.info("Saving BioPAX model to " + bpFile);
+ SimpleIOHandler bpHandler = new SimpleIOHandler(BioPAXLevel.L3);
+ bpHandler.convertToOWL(bpModel, new FileOutputStream(bpFile));
+ log.info("Conversion completed.");
+ }
+
+ @Override
+ public GeneralModel convert(GeneralModel model)
+ throws ConversionException, ReadModelException
+ {
+ // using the code that was on the main method to implement the convert method
+ // this way we can easily add any converter into SBFC
+ if (! (model instanceof SBMLModel)) {
+
+ // TODO - check is GenereModel URI look like an SBML one. If yes, try to convert the model to an SBMLModel
+
+ throw new ReadModelException("Expecting an SBMLModel as input ! Got '" + model.getClass().getSimpleName() + "'");
+ }
+ SBMLDocument sbmlDocument = ((SBMLModel) model).getSBMLDocument();
+ log.info("SBML model loaded: " + sbmlDocument.getModel().getNumReactions() + " reactions in it.");
+
+ log.info("Converting SBML model to BioPAX...");
+ SBML2BioPAXConverter sbml2BioPAXConverter = new SBML2BioPAXConverter();
+ Model bpModel = sbml2BioPAXConverter.convert(sbmlDocument);
+
+ BioPAXModel biopaxModel = new BioPAXModel(bpModel);
+
+ return biopaxModel;
+ }
+
+ @Override
+ public String getResultExtension() {
+ return ".owl";
+ }
+
+ @Override
+ public String getName() {
+ return "SBML2BioPAX_Arman2014";
+ }
+
+ @Override
+ public String getDescription() {
+ return "It converts a model format from SBML to BioPAX L3 and produce a mostly valib BioPAX L3";
+ }
+
+ @Override
+ public String getHtmlDescription() {
+ return "It converts a model format from SBML to BioPAX L3 and produce a mostly valib BioPAX L3";
+ }
+
+}
Property changes on: trunk/src/org/sbfc/converter/sbml2biopax/SBML2BioPAX_Arman.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev URL
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java (rev 0)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java 2016-06-02 10:30:56 UTC (rev 637)
@@ -0,0 +1,98 @@
+package org.sbfc.converter.sbml2biopax.arman;
+
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.biopax.paxtools.model.Model;
+import org.biopax.paxtools.model.level3.Control;
+import org.biopax.paxtools.model.level3.Controller;
+import org.biopax.paxtools.model.level3.Conversion;
+import org.biopax.paxtools.model.level3.Pathway;
+import org.biopax.paxtools.model.level3.PhysicalEntity;
+import org.sbml.jsbml.ListOf;
+import org.sbml.jsbml.ModifierSpeciesReference;
+import org.sbml.jsbml.Reaction;
+import org.sbml.jsbml.SBMLDocument;
+import org.sbml.jsbml.Species;
+import org.sbml.jsbml.SpeciesReference;
+
+public class SBML2BioPAXConverter {
+ private static Log log = LogFactory.getLog(SBML2BioPAXConverter.class);
+ private SBML2BioPAXUtilities sbml2BioPAXUtilities = new SBML2BioPAXUtilities();
+
+ public Model convert(SBMLDocument sbmlDocument) {
+ return convert(sbmlDocument.getModel());
+ }
+
+ 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;
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXConverter.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev URL
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
===================================================================
--- trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java (rev 0)
+++ trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java 2016-06-02 10:30:56 UTC (rev 637)
@@ -0,0 +1,420 @@
+package org.sbfc.converter.sbml2biopax.arman;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+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.BioSource;
+import org.biopax.paxtools.model.level3.BiochemicalReaction;
+import org.biopax.paxtools.model.level3.CellularLocationVocabulary;
+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.Conversion;
+import org.biopax.paxtools.model.level3.ConversionDirectionType;
+import org.biopax.paxtools.model.level3.EntityReference;
+import org.biopax.paxtools.model.level3.Named;
+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.ProteinReference;
+import org.biopax.paxtools.model.level3.PublicationXref;
+import org.biopax.paxtools.model.level3.RelationshipXref;
+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.Transport;
+import org.biopax.paxtools.model.level3.UnificationXref;
+import org.biopax.paxtools.model.level3.XReferrable;
+import org.biopax.paxtools.model.level3.Xref;
+import org.sbml.jsbml.AbstractNamedSBase;
+import org.sbml.jsbml.AbstractSBase;
+import org.sbml.jsbml.Annotation;
+import org.sbml.jsbml.CVTerm;
+import org.sbml.jsbml.Compartment;
+import org.sbml.jsbml.ModifierSpeciesReference;
+import org.sbml.jsbml.Reaction;
+import org.sbml.jsbml.Species;
+
+public class SBML2BioPAXUtilities {
+ private static Log log = LogFactory.getLog(SBML2BioPAXUtilities.class);
+
+ private BioPAXFactory bioPAXFactory = BioPAXLevel.L3.getDefaultFactory();
+
+ public BioPAXFactory getBioPAXFactory() {
+ return bioPAXFactory;
+ }
+
+ public void setBioPAXFactory(BioPAXFactory bioPAXFactory) {
+ this.bioPAXFactory = bioPAXFactory;
+ }
+
+ private String XMLBase = "http://www.humanmetabolism.org/#";
+
+ public String getXMLBase() {
+ return XMLBase;
+ }
+
+ public void setXMLBase(String XMLBase) {
+ this.XMLBase = XMLBase;
+ }
+
+ public String completeId(String partialId) {
+ return getXMLBase() + partialId;
+ }
+
+ 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 Conversion convertReaction(Model bpModel, Reaction reaction) {
+ Class<? extends Conversion> rxnClass;
+ // Extend this switch with further SBO terms as needed
+ switch (reaction.getSBOTerm()) {
+ case 185: // Transport reaction
+ rxnClass = Transport.class;
+ break;
+ case 176: // Biochemical reaction
+ default:
+ rxnClass = BiochemicalReaction.class;
+ break;
+ }
+
+ Conversion conversion = createBPEfromSBMLE(bpModel, rxnClass, reaction);
+ conversion.setConversionDirection(
+ reaction.getReversible()
+ ? ConversionDirectionType.REVERSIBLE
+ : ConversionDirectionType.LEFT_TO_RIGHT
+ );
+
+ for (Xref xref : generateXrefsForSBase(bpModel, RelationshipXref.class, reaction)) {
+ conversion.addXref(xref);
+ }
+
+ return conversion;
+ }
+
+ public void setNames(AbstractNamedSBase namedSBase, Named named) {
+ String name = namedSBase.getName();
+ if(name == null || name.toLowerCase().equals("null")) {
+ name = "N/A";
+ }
+ named.setStandardName(name);
+ named.setDisplayName(name);
+ named.getName().add(name);
+ }
+
+ 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.hashCode());
+ Control control = createBPEfromSBMLE(bpModel, Control.class, modifierSpeciesReference, id);
+ control.setControlType(ControlType.ACTIVATION);
+ return control;
+ }
+
+ 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);
+ }
+ }
+ }
+
+ 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);
+ }
+ }
+
+ return entity;
+ }
+
+ private <T extends Xref> T resourceToXref(Class<T> xrefClass, String xrefId, String resource) {
+ // Sample miriam resource: urn:miriam:chebi:CHEBI%3A15589
+
+ // TODO - the miriam common library could be used to get the id and database String regardless of the form of the URI.
+
+ String[] tokens = resource.split(":");
+ T xref = bioPAXFactory.create(xrefClass, xrefId);
+ // biomodels.db -> biomodels; ec-code -> ec code
+ String dataBase = tokens[2]
+ .replace(".", " ")
+ .replace("-", " ")
+ .replace(" db", " database")
+ .replace("obo ", "")
+ ;
+ xref.setDb(dataBase);
+ String idToken = tokens[3];
+ try {
+ URI uri = new URI(idToken);
+ xref.setId(uri.getPath());
+ } catch (URISyntaxException e) {
+ log.warn("Problem parsing the URI, " + idToken + ":" + e.getLocalizedMessage());
+ xref.setId(idToken);
+ }
+
+ return xref;
+ }
+
+ public <T extends Named> T createBPEfromSBMLE(Model bpModel, Class<T> aClass, AbstractNamedSBase abstractNamedSBase) {
+ return createBPEfromSBMLE(bpModel, aClass, abstractNamedSBase, completeId(abstractNamedSBase.getId()));
+ }
+
+
+ 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);
+ setComments(abstractNamedSBase, entity);
+ bpModel.add(entity);
+ }
+
+ return entity;
+ }
+
+ 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());
+ }
+ }
+
+ public PhysicalEntity convertSpecies(Model bpModel, Species species) {
+ PhysicalEntity physicalEntity;
+
+ switch (species.getSBOTerm()) {
+ case 297: // Complex
+ physicalEntity = createComplexFromSpecies(bpModel, species);
+ break;
+ case 247: // Simple chemical
+ physicalEntity = convertSpeciesToSPE(bpModel, SmallMolecule.class, SmallMoleculeReference.class, species);
+ break;
+ case 252: // Polypeptide chain ~ Protein
+ default:
+ physicalEntity = convertSpeciesToSPE(bpModel, Protein.class, ProteinReference.class, species);
+ break;
+ }
+
+ CellularLocationVocabulary cellularLocationVocabulary = createCompartment(bpModel, species.getCompartmentInstance());
+ physicalEntity.setCellularLocation(cellularLocationVocabulary);
+
+ return physicalEntity;
+ }
+
+ 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);
+ }
+
+ return cellularLocationVocabulary;
+ }
+
+ 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 complex;
+ }
+
+ private <T extends Xref> Set<Xref> generateXrefsForSBase(Model bpModel, Class<T> xrefClass, AbstractSBase sBase) {
+ Annotation annotation = sBase.getAnnotation();
+ HashSet<Xref> xrefs = new HashSet<Xref>();
+
+ 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);
+ }
+ }
+
+ return xrefs;
+ }
+
+ 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);
+ }
+ }
+
+ // 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(":")));
+
+ // 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());
+ }
+ }
+
+ // 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);
+
+ 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);
+ }
+
+ 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);
+ }
+
+ proteinReference.addXref(unificationXref);
+ protein.setEntityReference(proteinReference);
+ components.add(protein);
+ }
+
+ // Now, add all these proteins as components
+ for (Protein component : components) {
+ complex.addComponent(component);
+ component.setCellularLocation(complex.getCellularLocation());
+ }
+ }
+
+ // Finally add all these new BPEs to the model
+ for (BioPAXElement bioPAXElement : newBPEs.values()) {
+ bpModel.add(bioPAXElement);
+ }
+
+ log.trace("Fixed " + complexes.size() + " complexes in the model.");
+
+ }
+
+ public void assignOrganism(Model bpModel) {
+ // Since this is RECON2, everything is human
+ BioSource bioSource = bioPAXFactory.create(BioSource.class, completeId("source_human"));
+ bioSource.setDisplayName("Homo sapiens");
+ bioSource.setStandardName("Homo sapiens");
+ UnificationXref unificationXref = bioPAXFactory.create(UnificationXref.class, completeId("xref_human_tax"));
+ unificationXref.setDb("taxonomy");
+ unificationXref.setId("9606");
+ bpModel.add(unificationXref);
+ bioSource.addXref(unificationXref);
+ bpModel.add(bioSource);
+
+ for (ProteinReference proteinReference : bpModel.getObjects(ProteinReference.class)) {
+ proteinReference.setOrganism(bioSource);
+ }
+ }
+
+ public void assignRelationXrefs(Model bpModel) {
+ RelationshipXref xref = bioPAXFactory.create(RelationshipXref.class, completeId("relxref_biomodels"));
+ xref.setDb("BioModels");
+ xref.setId("MODEL1109130000");
+ bpModel.add(xref);
+
+ for (EntityReference entityReference : bpModel.getObjects(EntityReference.class)) {
+ if(entityReference.getXref().isEmpty()) {
+ entityReference.addXref(xref);
+ }
+ }
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/src/org/sbfc/converter/sbml2biopax/arman/SBML2BioPAXUtilities.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev URL
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ 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-05-25 17:04:40
|
Revision: 636
http://sourceforge.net/p/sbfc/code/636
Author: tramy-nguyen
Date: 2016-05-25 17:04:39 +0000 (Wed, 25 May 2016)
Log Message:
-----------
First commit to sbfc-code source code to initialize BioPAX2SBML
Added Paths:
-----------
trunk/src/org/sbfc/converter/biopax2sbml/
trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
Added: trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java
===================================================================
--- trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java (rev 0)
+++ trunk/src/org/sbfc/converter/biopax2sbml/BioPAX2SBML.java 2016-05-25 17:04:39 UTC (rev 636)
@@ -0,0 +1,100 @@
+/*
+ * $Id: SBML2BioPAX.java 598 2016-01-28 11:27:47Z pdp10 $
+ * $URL: https://svn.code.sf.net/p/sbfc/code/trunk/src/org/sbfc/converter/sbml2biopax/SBML2BioPAX.java $
+ *
+ * ==========================================================================
+ * This file is part of The System Biology Format Converter (SBFC).
+ * Please visit <http://sbfc.sf.net> to have more information about
+ * SBFC.
+ *
+ * Copyright (c) 2010-2015 jointly by the following organizations:
+ * 1. EMBL European Bioinformatics Institute (EBML-EBI), Hinxton, UK
+ * 2. The Babraham Institute, Cambridge, UK
+ * 3. Department of Bioinformatics, BiGCaT, Maastricht University
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation. A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as
+ * <http://sbfc.sf.net/mediawiki/index.php/License>.
+ *
+ * ==========================================================================
+ *
+ */
+
+package org.sbfc.converter.biopax2sbml;
+
+import org.sbfc.converter.exceptions.ConversionException;
+import org.sbfc.converter.exceptions.ReadModelException;
+import org.sbfc.converter.GeneralConverter;
+import org.sbfc.converter.models.BioPAXModel;
+import org.sbfc.converter.models.GeneralModel;
+import org.sbfc.converter.models.SBMLModel;
+import org.sbml.jsbml.SBMLException;
+
+
+
+public abstract class BioPAX2SBML extends GeneralConverter {
+
+
+ public static String VERSION = "3.1";
+
+
+ protected int biopaxLevel = 3;
+
+
+ public BioPAX2SBML(){
+ super();
+ }
+
+ public BioPAXModel sbmlexport(BioPAXModel biopaxModel) throws SBMLException
+ {
+ return null;
+ }
+
+
+
+
+
+ /**
+ * Control the validity of the identifier RDF<br/>
+ * The rdf:ID mustn't accept the characters: space, '/', ':'<br/>
+ * ex: "Gene Ontology/GO:0019236" give "Gene_Ontology_GO_0019236"
+ * @param db String to be check
+ * @return Corrected string
+ */
+ @SuppressWarnings("unused")
+ private String checkDBname(String db){
+ db = db.replace(" ", "_").replace(":", "_").replace("/", "_").replace("(", "_").replace(")", "_");
+ return db;
+ }
+
+ @Override
+ public GeneralModel convert(GeneralModel model) throws ConversionException, ReadModelException {
+ try {
+ inputModel = model;
+ return sbmlexport((BioPAXModel)model);
+ } catch (SBMLException e) {
+ throw new ReadModelException(e);
+ }
+ }
+
+
+ @Override
+ public String getName() {
+ return "SBML2BioPAX";
+ }
+
+ @Override
+ public String getDescription() {
+ return "It converts a model format from BioPAX to SBML";
+ }
+
+ @Override
+ public String getHtmlDescription() {
+ return "It converts a model format from BioPAX to SBML";
+ }
+
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nik...@us...> - 2016-05-19 13:29:44
|
Revision: 635
http://sourceforge.net/p/sbfc/code/635
Author: niko-rodrigue
Date: 2016-05-19 13:29:41 +0000 (Thu, 19 May 2016)
Log Message:
-----------
updated the BioPAX L3 converter class name in the converters.xml file
Modified Paths:
--------------
sbfcOnline/WebContent/config/converters.xml
Modified: sbfcOnline/WebContent/config/converters.xml
===================================================================
--- sbfcOnline/WebContent/config/converters.xml 2016-05-19 12:46:21 UTC (rev 634)
+++ sbfcOnline/WebContent/config/converters.xml 2016-05-19 13:29:41 UTC (rev 635)
@@ -149,7 +149,7 @@
<tooltip>Convert to GPML.</tooltip>
<description>Convert to GPML. Support only for BioPAX Level 3 as input.</description>
</convertor>
- <convertor id="BioPAXL3Converter">
+ <convertor id="BioPAX2BioPAXL3">
<display>BioPAX Level 3</display>
<inputRef>BioPAXModel</inputRef>
<outputRef>BioPAXModel</outputRef>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nik...@us...> - 2016-05-19 12:46:24
|
Revision: 634
http://sourceforge.net/p/sbfc/code/634
Author: niko-rodrigue
Date: 2016-05-19 12:46:21 +0000 (Thu, 19 May 2016)
Log Message:
-----------
added an option in identifiersUtil.sh to be able, in the future, to decide to use the cluster or not without to have to modify the script
Modified Paths:
--------------
trunk/identifiersUtil.sh
Modified: trunk/identifiersUtil.sh
===================================================================
--- trunk/identifiersUtil.sh 2016-05-19 12:37:42 UTC (rev 633)
+++ trunk/identifiersUtil.sh 2016-05-19 12:46:21 UTC (rev 634)
@@ -38,14 +38,16 @@
COMMAND="bsub $BSUB_OPTIONS -o $LOG_FILE java -Dmiriam.xml.export=${SBF_CONVERTER_HOME}/miriam.xml "
USE_BSUB="yes"
+echo "host = $HOSTNAME, use bsub = $USE_BSUB"
+
#
-# TODO : add an option to enable or not the use of the cluster, the default being not enabled so that biomodels does not need to change anything.
-#
-#if [ "`which bsub 2> /dev/null`" == "" ] ; then
+if [ "`which bsub 2> /dev/null`" == "" ] ; then
COMMAND="java -Dmiriam.xml.export=${SBF_CONVERTER_HOME}/miriam.xml "
USE_BSUB="no"
-#fi
+fi
+echo "After which. host = $HOSTNAME, use bsub = $USE_BSUB"
+
export CLASSPATH=
for jarFile in $LIB_PATH/*.jar
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <nik...@us...> - 2016-05-19 12:37:45
|
Revision: 633
http://sourceforge.net/p/sbfc/code/633
Author: niko-rodrigue
Date: 2016-05-19 12:37:42 +0000 (Thu, 19 May 2016)
Log Message:
-----------
corrected an error in sbfConverter.sh that made it fail all the time when run in a cluster environment + updated the miriam registry export file
Modified Paths:
--------------
trunk/miriam.xml
trunk/sbfConverter.sh
Modified: trunk/miriam.xml
===================================================================
--- trunk/miriam.xml 2016-03-17 17:11:28 UTC (rev 632)
+++ trunk/miriam.xml 2016-05-19 12:37:42 UTC (rev 633)
@@ -1,10 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<!-- Export of Identifiers.org's Registry (full) -->
-<!-- Generated: Mon Jul 20 15:29:04 BST 2015 -->
+<!-- Generated: Thu May 05 16:02:00 BST 2016 -->
<!-- http://identifiers.org/registry/ -->
-<miriam xmlns="http://www.biomodels.net/MIRIAM/" date="2015-07-20T15:29:04+01:00" data-version="2015-07-02T10:21:08+01:00">
+
+<miriam xmlns="http://www.biomodels.net/MIRIAM/" date="2016-05-05T16:02:00+01:00" data-version="2016-04-19T17:26:22+01:00">
<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>
+ <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>
<synonyms>
<synonym>Biomolecular Interaction Network Database</synonym>
@@ -50,14 +52,14 @@
<datatype id="MIR:00000002" pattern="^CHEBI:\d+$">
<name>ChEBI</name>
- <definition>Chemical Entities of Biological Interest (ChEBI) is a freely available dictionary of molecular entities focused on 'small' chemical compounds.</definition>
+ <definition>Chemical Entities of Biological Interest (ChEBI) is a freely available dictionary of molecular entities focused on 'small' chemical compounds.</definition>
<uris>
<uri type="URN">urn:miriam:chebi</uri>
<uri type="URL">http://identifiers.org/chebi/</uri>
<uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/CHEBI</uri>
+ <uri type="URL" deprecated="true">http://www.ebi.ac.uk/chebi/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.chebi</uri>
<uri type="URL" deprecated="true">http://identifiers.org/obo.chebi/</uri>
- <uri type="URL" deprecated="true">http://www.ebi.ac.uk/chebi/</uri>
</uris>
<namespace>chebi</namespace>
<documentations>
@@ -68,23 +70,23 @@
<documentation type="PMID">urn:miriam:pubmed:23180789</documentation>
</documentations>
<resources>
- <resource id="MIR:00100009" state="up" reliability="96" primary="true">
+ <resource id="MIR:00100009" state="up" reliability="97" primary="true">
<dataResource>http://www.ebi.ac.uk/chebi/</dataResource>
<dataEntityExample>CHEBI:36927</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/chebi/searchId.do?chebiId=$id</dataEntry>
<dataInfo>ChEBI (Chemical Entities of Biological Interest)</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100158" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ontology-lookup/browse.do?ontName=CHEBI</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/chebi</dataResource>
<dataEntityExample>CHEBI:36927</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ontology-lookup/?termId=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/chebi/terms?obo_id=$id</dataEntry>
<dataInfo>ChEBI through OLS</dataInfo>
- <dataInstitution>European Bioinformatics Institute, Cambridge</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100565" state="up" reliability="91">
+ <resource id="MIR:00100565" state="up" reliability="92">
<dataResource>http://bioportal.bioontology.org/ontologies/CHEBI</dataResource>
<dataEntityExample>CHEBI:36927</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/CHEBI/$id</dataEntry>
@@ -121,7 +123,7 @@
<documentation type="PMID">urn:miriam:pubmed:16381931</documentation>
</documentations>
<resources>
- <resource id="MIR:00100011" state="up" reliability="98" primary="true">
+ <resource id="MIR:00100011" state="up" reliability="99" primary="true">
<dataResource>http://www.ensembl.org/</dataResource>
<dataEntityExample>ENSG00000139618</dataEntityExample>
<dataEntry>http://www.ensembl.org/id/$id</dataEntry>
@@ -129,12 +131,12 @@
<dataInstitution>Sanger Institute and European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
- <resource id="MIR:00100561" state="up" reliability="99">
+ <resource id="MIR:00100561" state="up" reliability="98">
<dataResource>http://uswest.ensembl.org/</dataResource>
<dataEntityExample>ENSG00000139618</dataEntityExample>
<dataEntry>http://uswest.ensembl.org/id/$id</dataEntry>
<dataInfo>Ensembl US West mirror</dataInfo>
- <dataInstitution/>
+ <dataInstitution></dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100562" state="up" reliability="99">
@@ -142,7 +144,7 @@
<dataEntityExample>ENSG00000139618</dataEntityExample>
<dataEntry>http://useast.ensembl.org/id/$id</dataEntry>
<dataInfo>Ensembl US East mirror</dataInfo>
- <dataInstitution/>
+ <dataInstitution></dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100563" state="up" reliability="99">
@@ -150,7 +152,7 @@
<dataEntityExample>ENSG00000139618</dataEntityExample>
<dataEntry>http://asia.ensembl.org/id/$id</dataEntry>
<dataInfo>Ensembl Asia mirror</dataInfo>
- <dataInstitution/>
+ <dataInstitution></dataInstitution>
<dataLocation>Singapore</dataLocation>
</resource>
</resources>
@@ -160,7 +162,7 @@
<link desc="Ensembl overlap">http://www.ensemblgenomes.org/info/data_access</link>
</restriction>
<restriction type="9" desc="Identifier multiplicity">
- <statement>This data collection uses some 'outlier' organisms, to normalise its dataset, which are not intended to be referenced directly in this collection. In addition, those outlier organisms may be referenced using non-standard identifiers. We recommend that human data be accessed using identifiers beginning with 'ENS', and outlier organisms be referenced through the appropriate collection: WormBase (http://identifiers.org/wormbase/), SGD (http://identifiers.org/sgd/) or FlyBase (http://identifiers.org/flybase/).</statement>
+ <statement>This data collection uses some 'outlier' organisms, to normalise its dataset, which are not intended to be referenced directly in this collection. In addition, those outlier organisms may be referenced using non-standard identifiers. We recommend that human data be accessed using identifiers beginning with 'ENS', and outlier organisms be referenced through the appropriate collection: WormBase (http://identifiers.org/wormbase/), SGD (http://identifiers.org/sgd/) or FlyBase (http://identifiers.org/flybase/).</statement>
</restriction>
</restrictions>
<tags>
@@ -205,10 +207,10 @@
<dataEntityExample>1.1.1.1</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/intenz/query?cmd=SearchEC&ec=$id</dataEntry>
<dataInfo>IntEnZ (Integrated relational Enzyme database)</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
- <resource id="MIR:00100002" state="up" reliability="100">
+ <resource id="MIR:00100002" state="up" reliability="99">
<dataResource>http://www.genome.jp/dbget-bin/www_bfind?enzyme</dataResource>
<dataEntityExample>1.1.1.1</dataEntityExample>
<dataEntry>http://www.genome.jp/dbget-bin/www_bget?ec:$id</dataEntry>
@@ -268,14 +270,17 @@
<synonym>UniProtKB</synonym>
<synonym>UniProt</synonym>
<synonym>Protein Knowledgebase</synonym>
+ <synonym>UniProt-TrEMBL</synonym>
+ <synonym>UniProt/TrEMBL</synonym>
+ <synonym>UniProtKB/Swiss-Prot</synonym>
</synonyms>
<definition>The UniProt Knowledgebase (UniProtKB) is a comprehensive resource for protein sequence and functional information with extensive cross-references to more than 120 external databases. Besides amino acid sequence and a description, it also provides taxonomic data and citation information.</definition>
<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>
@@ -297,7 +302,7 @@
<dataEntry>http://purl.uniprot.org/uniprot/$id</dataEntry>
<dataInfo>Universal Protein Resource using Persistent URL system</dataInfo>
<dataInstitution>UniProt Consortium</dataInstitution>
- <dataLocation/>
+ <dataLocation></dataLocation>
</resource>
<resource id="MIR:00100330" state="up" reliability="100">
<dataResource>http://www.ncbi.nlm.nih.gov/protein/</dataResource>
@@ -312,7 +317,7 @@
<dataEntityExample>P62158</dataEntityExample>
<dataEntry>http://www.ebi.uniprot.org/entry/$id</dataEntry>
<dataInfo>Universal Protein Resource</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100027" obsolete="true">
@@ -362,10 +367,11 @@
<uris>
<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://www.uniprot.org/taxonomy/</uri>
<uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/NCBITaxon</uri>
- <uri type="URL" deprecated="true">http://bio2rdf.org/taxonomy</uri>
+ <uri type="URL" deprecated="true">http://www.ncbi.nlm.nih.gov/Taxonomy/</uri>
<uri type="URL" deprecated="true">http://www.taxonomy.org/</uri>
- <uri type="URL" deprecated="true">http://www.ncbi.nlm.nih.gov/Taxonomy/</uri>
</uris>
<namespace>taxonomy</namespace>
<documentations>
@@ -383,8 +389,8 @@
<resource id="MIR:00100019" state="up" reliability="100">
<dataResource>http://www.uniprot.org/taxonomy/</dataResource>
<dataEntityExample>9606</dataEntityExample>
- <dataEntry>http://www.uniprot.org/taxonomy/$id</dataEntry>
- <dataInfo>UniProt</dataInfo>
+ <dataEntry>http://purl.uniprot.org/taxonomy/$id</dataEntry>
+ <dataInfo>Taxonomy through UniProt PURL</dataInfo>
<dataInstitution>UniProt Consortium</dataInstitution>
<dataLocation>USA, UK and Switzerland</dataLocation>
</resource>
@@ -396,7 +402,7 @@
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100507" state="up" reliability="70">
+ <resource id="MIR:00100507" state="up" reliability="77">
<dataResource>http://bioportal.bioontology.org/ontologies/NCBITAXON</dataResource>
<dataEntityExample>9606</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/NCBITAXON/$id</dataEntry>
@@ -404,13 +410,13 @@
<dataInstitution>National Center for Biomedical Ontology, Stanford</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100695" state="up" reliability="95">
+ <resource id="MIR:00100695" state="up" reliability="93">
<dataResource>http://taxonomy.bio2rdf.org/fct/</dataResource>
<dataEntityExample>9606</dataEntityExample>
<dataEntry>http://taxonomy.bio2rdf.org/describe/?url=http://bio2rdf.org/taxonomy:$id</dataEntry>
<dataInfo>Bio2RDF</dataInfo>
<dataInstitution>Bio2RDF.org</dataInstitution>
- <dataLocation/>
+ <dataLocation></dataLocation>
</resource>
</resources>
<tags>
@@ -453,10 +459,10 @@
<dataEntityExample>BIOMD0000000048</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/biomodels-main/$id</dataEntry>
<dataInfo>BioModels Database</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
- <resource id="MIR:00100107" state="up" reliability="87">
+ <resource id="MIR:00100107" state="down" reliability="79">
<dataResource>http://biomodels.caltech.edu/</dataResource>
<dataEntityExample>BIOMD0000000048</dataEntityExample>
<dataEntry>http://biomodels.caltech.edu/$id</dataEntry>
@@ -464,13 +470,13 @@
<dataInstitution>California Institute of Technology</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100674" state="up" reliability="93">
+ <resource id="MIR:00100674" state="down" reliability="63">
<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>
<dataInfo>Bio2RDF</dataInfo>
<dataInstitution>Bio2RDF.org</dataInstitution>
- <dataLocation/>
+ <dataLocation></dataLocation>
</resource>
</resources>
<tags>
@@ -511,7 +517,7 @@
<dataEntityExample>MIR:00000008</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/miriam/main/$id</dataEntry>
<dataInfo>MIRIAM Resources (data collection)</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
</resources>
@@ -613,16 +619,16 @@
<dataEntityExample>IPR000100</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/interpro/entry/$id</dataEntry>
<dataInfo>InterPro</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
- <resource id="MIR:00100697" state="up" reliability="98">
+ <resource id="MIR:00100697" state="down" reliability="54">
<dataResource>http://interpro.bio2rdf.org/fct/</dataResource>
<dataEntityExample>IPR000100</dataEntityExample>
<dataEntry>http://interpro.bio2rdf.org/describe/?url=http://bio2rdf.org/interpro:$id</dataEntry>
<dataInfo>Bio2RDF</dataInfo>
<dataInstitution>Bio2RDF.org</dataInstitution>
- <dataLocation/>
+ <dataLocation></dataLocation>
</resource>
</resources>
<tags>
@@ -678,6 +684,9 @@
<datatype id="MIR:00000013" pattern="^C\d+$">
<name>KEGG Compound</name>
+ <synonyms>
+ <synonym>KEGG</synonym>
+ </synonyms>
<definition>KEGG compound contains our knowledge on the universe of chemical substances that are relevant to life.</definition>
<uris>
<uri type="URN">urn:miriam:kegg.compound</uri>
@@ -689,7 +698,7 @@
<documentation type="PMID">urn:miriam:pubmed:22700311</documentation>
</documentations>
<resources>
- <resource id="MIR:00100021" state="up" reliability="100">
+ <resource id="MIR:00100021" state="up" reliability="99">
<dataResource>http://www.genome.jp/kegg/ligand.html</dataResource>
<dataEntityExample>C12345</dataEntityExample>
<dataEntry>http://www.kegg.jp/entry/$id</dataEntry>
@@ -726,7 +735,7 @@
<documentation type="PMID">urn:miriam:pubmed:22700311</documentation>
</documentations>
<resources>
- <resource id="MIR:00100022" state="up" reliability="100">
+ <resource id="MIR:00100022" state="up" reliability="99">
<dataResource>http://www.genome.jp/kegg/reaction/</dataResource>
<dataEntityExample>R00100</dataEntityExample>
<dataEntry>http://www.kegg.jp/entry/$id</dataEntry>
@@ -756,6 +765,7 @@
<uri type="URN">urn:miriam:pubmed</uri>
<uri type="URL">http://identifiers.org/pubmed/</uri>
<uri type="URL" deprecated="true">http://bio2rdf.org/pubmed</uri>
+ <uri type="URL" deprecated="true">http://linkedlifedata.com/resource/pubmed/id/</uri>
<uri type="URL" deprecated="true">http://www.ncbi.nlm.nih.gov/PubMed/</uri>
<uri type="URL" deprecated="true">http://www.pubmed.gov/</uri>
</uris>
@@ -788,20 +798,28 @@
<dataInstitution>Europe PubMed Central partners</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100702" state="down" reliability="62">
+ <resource id="MIR:00100702" state="down" reliability="30">
<dataResource>http://pubmed.bio2rdf.org/fct</dataResource>
<dataEntityExample>23735196</dataEntityExample>
<dataEntry>http://pubmed.bio2rdf.org/describe/?url=http://bio2rdf.org/pubmed:$id</dataEntry>
<dataInfo>Bio2RDF</dataInfo>
<dataInstitution>Bio2RDF.org</dataInstitution>
- <dataLocation/>
+ <dataLocation></dataLocation>
</resource>
+ <resource id="MIR:00100745" state="up" reliability="100">
+ <dataResource>http://linkedlifedata.com/</dataResource>
+ <dataEntityExample>23735196</dataEntityExample>
+ <dataEntry>http://linkedlifedata.com/resource/pubmed/id/$id</dataEntry>
+ <dataInfo>PubMed through Linkedlife data</dataInfo>
+ <dataInstitution>Linkedlifedata, Ontotext, Sofia</dataInstitution>
+ <dataLocation>Bulgaria</dataLocation>
+ </resource>
<resource id="MIR:00100028" obsolete="true">
<dataResource>http://www.ebi.ac.uk/Databases/MEDLINE/medline.html</dataResource>
<dataEntityExample>16333295</dataEntityExample>
<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</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100032" obsolete="true">
@@ -809,7 +827,7 @@
<dataEntityExample>16333295</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/citexplore/citationDetails.do?dataSource=MED&externalId=$id</dataEntry>
<dataInfo>CiteXplore</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100462" obsolete="true">
@@ -879,13 +897,13 @@
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100694" state="up" reliability="97">
+ <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></dataLocation>
</resource>
</resources>
<tags>
@@ -943,7 +961,7 @@
</annotation>
</datatype>
- <datatype id="MIR:00000018" pattern="^REACT_\d+(\.\d+)?$">
+ <datatype id="MIR:00000018" pattern="(^(REACTOME:)?R-[A-Z]{3}-[0-9]+(-[0-9]+)?$)|(^REACT_\d+$)">
<name>Reactome</name>
<synonyms>
<synonym>Reactome Stable ID</synonym>
@@ -956,15 +974,15 @@
</uris>
<namespace>reactome</namespace>
<documentations>
- <documentation type="PMID">urn:miriam:pubmed:15608231</documentation>
+ <documentation type="PMID">urn:miriam:pubmed:24243840</documentation>
</documentations>
<resources>
<resource id="MIR:00100026" state="probably up" reliability="96">
<dataResource>http://www.reactome.org/</dataResource>
- <dataEntityExample>REACT_1590</dataEntityExample>
+ <dataEntityExample>R-HSA-201451</dataEntityExample>
<dataEntry>http://www.reactome.org/PathwayBrowser/#$id</dataEntry>
<dataInfo>Reactome, a curated knowledgebase of biological pathways</dataInfo>
- <dataInstitution>Ontario Institute for Cancer Research, Cold Spring Harbor Laboratory and European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>Ontario Institute for Cancer Research, NYU Medical School, Cold Spring Harbor Laboratory and European Bioinformatics Institute</dataInstitution>
<dataLocation>Canada / USA / United Kingdom</dataLocation>
</resource>
</resources>
@@ -1015,6 +1033,14 @@
<dataInstitution>Corporation for National Research Initiatives</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
+ <resource id="MIR:00100751" state="up" reliability="100">
+ <dataResource>http://doai.io/</dataResource>
+ <dataEntityExample>10.1038/nbt1156</dataEntityExample>
+ <dataEntry>http://doai.io/$id</dataEntry>
+ <dataInfo>DOAI (Digital Open Access Identifier) at CAPSH</dataInfo>
+ <dataInstitution>CAPSH (Committee for the Accessibility of Publications in Sciences and Humanities), Paris</dataInstitution>
+ <dataLocation>France</dataLocation>
+ </resource>
</resources>
<tags>
<tag>bibliography</tag>
@@ -1061,7 +1087,7 @@
<dataEntityExample>2gc4</dataEntityExample>
<dataEntry>http://www.pdbe.org/$id</dataEntry>
<dataInfo>Protein Databank in Europe (PDBe)</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100096" state="up" reliability="99">
@@ -1085,7 +1111,7 @@
<dataEntityExample>2gc4</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/pdbsum/$id</dataEntry>
<dataInfo>Protein Databank through PDBsum</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
</resources>
@@ -1122,7 +1148,7 @@
<dataEntityExample>HUMAN:55140:308.6</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/clustr-srv/CCluster?interpro=yes&cluster_varid=$id</dataEntry>
<dataInfo>CluSTr Database</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
</resources>
@@ -1148,10 +1174,10 @@
<uris>
<uri type="URN">urn:miriam:go</uri>
<uri type="URL">http://identifiers.org/go/</uri>
+ <uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/GO</uri>
<uri type="URL" deprecated="true">http://bio2rdf.org/go</uri>
- <uri type="URL" deprecated="true">http://purl.obolibrary.org/obo/GO</uri>
+ <uri type="URL" deprecated="true">http://identifiers.org/obo.go/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.go</uri>
- <uri type="URL" deprecated="true">http://identifiers.org/obo.go/</uri>
<uri type="URL" deprecated="true">http://www.geneontology.org/</uri>
</uris>
<namespace>go</namespace>
@@ -1160,12 +1186,12 @@
<documentation type="PMID">urn:miriam:pubmed:10802651</documentation>
</documentations>
<resources>
- <resource id="MIR:00100012" state="up" reliability="100">
+ <resource id="MIR:00100012" state="up" reliability="99">
<dataResource>http://www.ebi.ac.uk/QuickGO/</dataResource>
<dataEntityExample>GO:0006915</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/QuickGO/GTerm?id=$id</dataEntry>
<dataInfo>QuickGO (Gene Ontology browser)</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100013" state="up" reliability="99" primary="true">
@@ -1201,9 +1227,9 @@
<dataLocation>USA</dataLocation>
</resource>
<resource id="MIR:00100675" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ontology-lookup/browse.do?ontName=GO</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/go</dataResource>
<dataEntityExample>GO:0006915</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ontology-lookup/?termId=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/go/terms?obo_id=$id</dataEntry>
<dataInfo>GO through OLS</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -1213,7 +1239,7 @@
<dataEntityExample>GO:0006915</dataEntityExample>
<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</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100659" obsolete="true">
@@ -1268,18 +1294,18 @@
<dataInstitution>Stanford University</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100703" state="up" reliability="97">
+ <resource id="MIR:00100703" state="up" reliability="93">
<dataResource>http://sgd.bio2rdf.org/fct</dataResource>
<dataEntityExample>S000006169</dataEntityExample>
<dataEntry>http://sgd.bio2rdf.org/describe/?url=http://bio2rdf.org/sgd:$id</dataEntry>
<dataInfo>Bio2RDF</dataInfo>
<dataInstitution>Bio2RDF.org</dataInstitution>
- <dataLocation/>
+ <dataLocation></dataLocation>
</resource>
</resources>
<restrictions>
<restriction type="9" desc="Identifier multiplicity">
- <statement>This data collection can be referenced through two different identifier patterns. We recommend the use of identifiers of the form 'S\d+'.</statement>
+ <statement>This data collection can be referenced through two different identifier patterns. We recommend the use of identifiers of the form 'S\d+'.</statement>
<link desc="SGD identifiers nomenclature">http://www.yeastgenome.org/help/community/nomenclature-conventions</link>
</restriction>
</restrictions>
@@ -1307,9 +1333,9 @@
<uris>
<uri type="URN">urn:miriam:biomodels.sbo</uri>
<uri type="URL">http://identifiers.org/biomodels.sbo/</uri>
- <uri type="URL" deprecated="true">http://biomodels.net/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>
<documentations>
@@ -1321,18 +1347,18 @@
<dataEntityExample>SBO:0000262</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/sbo/main/$id</dataEntry>
<dataInfo>SBO</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100176" state="up" reliability="99">
- <dataResource>http://www.ebi.ac.uk/ontology-lookup/browse.do?ontName=SBO</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/sbo</dataResource>
<dataEntityExample>SBO:0000262</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ontology-lookup/?termId=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/sbo/terms?obo_id=$id</dataEntry>
<dataInfo>SBO through OLS</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
- <resource id="MIR:00100242" state="up" reliability="97">
+ <resource id="MIR:00100242" state="up" reliability="96">
<dataResource>http://bioportal.bioontology.org/ontologies/SBO</dataResource>
<dataEntityExample>SBO:0000262</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/SBO/$id</dataEntry>
@@ -1373,7 +1399,7 @@
<documentation type="PMID">urn:miriam:pubmed:16381885</documentation>
</documentations>
<resources>
- <resource id="MIR:00100035" state="up" reliability="100">
+ <resource id="MIR:00100035" state="up" reliability="99">
<dataResource>http://www.genome.jp/kegg/drug/</dataResource>
<dataEntityExample>D00123</dataEntityExample>
<dataEntry>http://www.kegg.jp/entry/$id</dataEntry>
@@ -1408,7 +1434,7 @@
<documentation type="PMID">urn:miriam:pubmed:16014746</documentation>
</documentations>
<resources>
- <resource id="MIR:00100036" state="up" reliability="100">
+ <resource id="MIR:00100036" state="up" reliability="99">
<dataResource>http://www.genome.jp/kegg/glycan/</dataResource>
<dataEntityExample>G00123</dataEntityExample>
<dataEntry>http://www.kegg.jp/entry/$id</dataEntry>
@@ -1453,7 +1479,7 @@
<documentation type="PMID">urn:miriam:pubmed:12519966</documentation>
</documentations>
<resources>
- <resource id="MIR:00100038" state="up" reliability="98" primary="true">
+ <resource id="MIR:00100038" state="up" reliability="99" primary="true">
<dataResource>http://www.wormbase.org/</dataResource>
<dataEntityExample>WBGene00000001</dataEntityExample>
<dataEntry>http://www.wormbase.org/db/gene/gene?name=$id;class=Gene</dataEntry>
@@ -1461,13 +1487,13 @@
<dataInstitution>Cold Spring Harbor Laboratory</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100704" state="up" reliability="98">
+ <resource id="MIR:00100704" state="up" reliability="95">
<dataResource>http://wormbase.bio2rdf.org/fct</dataResource>
<dataEntityExample>WBGene00000001</dataEntityExample>
<dataEntry>http://wormbase.bio2rdf.org/describe/?url=http://bio2rdf.org/wormbase:$id</dataEntry>
<dataInfo>Bio2RDF</dataInfo>
<dataInstitution>Bio2RDF.org</dataInstitution>
- <dataLocation/>
+ <dataLocation></dataLocation>
</resource>
<resource id="MIR:00100039" obsolete="true">
<dataResource>http://wormbase.sanger.ac.uk/</dataResource>
@@ -1504,7 +1530,7 @@
</resources>
<restrictions>
<restriction type="9" desc="Identifier multiplicity">
- <statement>This data collection's records can be referenced through two different identifier patterns. We recommend the use of identifiers of the form 'WBGene\d{8}'.</statement>
+ <statement>This data collection's records can be referenced through two different identifier patterns. We recommend the use of identifiers of the form 'WBGene\d{8}'.</statement>
<link desc="WormBase nomenclature">http://www.wormbase.org/about/userguide/nomenclature</link>
</restriction>
</restrictions>
@@ -1549,7 +1575,7 @@
<dataEntityExample>PF01234</dataEntityExample>
<dataEntry>http://pfam.xfam.org/family/$id</dataEntry>
<dataInfo>Pfam at EMBL-EBI</dataInfo>
- <dataInstitution>EMBL-EBI, Wellcome Trust Genome Campus, Hinxton</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
<resource id="MIR:00100043" obsolete="true">
@@ -1611,6 +1637,7 @@
<synonyms>
<synonym>International Nucleotide Sequence Database Collaboration</synonym>
<synonym>INSDC</synonym>
+ <synonym>NCBI nucleotide</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>
@@ -1645,12 +1672,12 @@
<dataInstitution>DNA Data Bank of Japan, Mishima, Shizuoka</dataInstitution>
<dataLocation>Japan</dataLocation>
</resource>
- <resource id="MIR:00100487" state="probably up" reliability="98">
+ <resource id="MIR:00100487" state="probably up" reliability="99">
<dataResource>http://www.ebi.ac.uk/ena/</dataResource>
<dataEntityExample>X58356</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/ena/data/view/$id</dataEntry>
<dataInfo>INSDC through European Nucleotide Archive (ENA)</dataInfo>
- <dataInstitution>European Molecular Biology Laboratory (EMBL-EBI)</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100490" state="up" reliability="100">
@@ -1666,7 +1693,7 @@
<dataEntityExample>X58356</dataEntityExample>
<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 Molecular Biology Laboratory (EBI)</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
</resources>
@@ -1835,7 +1862,7 @@
<synonym>PubChem Substance</synonym>
<synonym>PubChem SID</synonym>
</synonyms>
- <definition>PubChem provides information on the biological activities of small molecules. It is a component of NIH's Molecular Libraries Roadmap Initiative. PubChem Substance archives chemical substance records.</definition>
+ <definition>PubChem provides information on the biological activities of small molecules. It is a component of NIH's Molecular Libraries Roadmap Initiative. PubChem Substance archives chemical substance records.</definition>
<uris>
<uri type="URN">urn:miriam:pubchem.substance</uri>
<uri type="URL">http://identifiers.org/pubchem.substance/</uri>
@@ -1874,7 +1901,7 @@
<synonym>PubChem Compound</synonym>
<synonym>PubChem CID</synonym>
</synonyms>
- <definition>PubChem provides information on the biological activities of small molecules. It is a component of NIH's Molecular Libraries Roadmap Initiative. PubChem Compound archives chemical structures and records.</definition>
+ <definition>PubChem provides information on the biological activities of small molecules. It is a component of NIH's Molecular Libraries Roadmap Initiative. PubChem Compound archives chemical structures and records.</definition>
<uris>
<uri type="URN">urn:miriam:pubchem.compound</uri>
<uri type="URL">http://identifiers.org/pubchem.compound/</uri>
@@ -1959,7 +1986,7 @@
<dataEntityExample>E-MEXP-1712</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/arrayexpress/experiments/$id</dataEntry>
<dataInfo>ArrayExpress</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
</resources>
@@ -1990,7 +2017,7 @@
<documentation type="URL">http://www.informatics.jax.org/mgihome/projects/overview.shtml#aboutMGD</documentation>
</documentations>
<resources>
- <resource id="MIR:00100062" state="up" reliability="98">
+ <resource id="MIR:00100062" state="up" reliability="99">
<dataResource>http://www.informatics.jax.org/</dataResource>
<dataEntityExample>MGI:2442292</dataEntityExample>
<dataEntry>http://www.informatics.jax.org/accession/$id</dataEntry>
@@ -2004,7 +2031,7 @@
<dataEntry>http://mgi.bio2rdf.org/describe/?url=http://bio2rdf.org/mgi:$id</dataEntry>
<dataInfo>Bio2RDF</dataInfo>
<dataInstitution>Bio2RDF.org</dataInstitution>
- <dataLocation/>
+ <dataLocation></dataLocation>
</resource>
</resources>
<tags>
@@ -2146,12 +2173,12 @@
<documentation type="PMID">urn:miriam:pubmed:14681372</documentation>
</documentations>
<resources>
- <resource id="MIR:00100069" state="up" reliability="97">
+ <resource id="MIR:00100069" state="down" reliability="93">
<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</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100476" state="up" reliability="100">
@@ -2187,7 +2214,7 @@
<documentation type="PMID">urn:miriam:pubmed:17135203</documentation>
</documentations>
<resources>
- <resource id="MIR:00100070" state="up" reliability="96">
+ <resource id="MIR:00100070" state="up" reliability="95">
<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>
@@ -2195,7 +2222,7 @@
<dataInstitution>University of Rome Tor Vergata, Rome</dataInstitution>
<dataLocation>Italy</dataLocation>
</resource>
- <resource id="MIR:00100654" state="down" reliability="93">
+ <resource id="MIR:00100654" state="up" reliability="87">
<dataResource>http://www.ebi.ac.uk/intact/</dataResource>
<dataEntityExample>MINT-7905142</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/intact/query/interaction_id:$id</dataEntry>
@@ -2231,7 +2258,7 @@
<dataEntityExample>IPI00000001</dataEntityExample>
<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</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
</resources>
@@ -2334,7 +2361,7 @@
<documentation type="DOI">urn:miriam:doi:10.1093%2Fnar%2Fgkg038</documentation>
</documentations>
<resources>
- <resource id="MIR:00100653" state="up" reliability="98" primary="true">
+ <resource id="MIR:00100653" state="up" reliability="99" primary="true">
<dataResource>http://pir0.georgetown.edu/resid/</dataResource>
<dataEntityExample>AA0001</dataEntityExample>
<dataEntry>http://pir0.georgetown.edu/cgi-bin/resid?id=$id</dataEntry>
@@ -2345,9 +2372,9 @@
<resource id="MIR:00100074" obsolete="true">
<dataResource>http://www.ebi.ac.uk/RESID/</dataResource>
<dataEntityExample>AA0001</dataEntityExample>
- <dataEntry>http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-id+6JSUg1NA6u4+-e+[RESID:'$id']</dataEntry>
+ <dataEntry>http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-id+6JSUg1NA6u4+-e+[RESID:'$id']</dataEntry>
<dataInfo>RESID</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
</resources>
@@ -2421,7 +2448,7 @@
<documentation type="PMID">urn:miriam:pubmed:12444417</documentation>
</documentations>
<resources>
- <resource id="MIR:00100076" state="up" reliability="99">
+ <resource id="MIR:00100076" state="up" reliability="98">
<dataResource>http://arabidopsis.org/index.jsp</dataResource>
<dataEntityExample>AASequence:1009107926</dataEntityExample>
<dataEntry>http://arabidopsis.org/servlets/TairObject?accession=$id</dataEntry>
@@ -2457,7 +2484,7 @@
<documentation type="PMID">urn:miriam:pubmed:12444417</documentation>
</documentations>
<resources>
- <resource id="MIR:00100077" state="up" reliability="99">
+ <resource id="MIR:00100077" state="up" reliability="98">
<dataResource>http://arabidopsis.org/index.jsp</dataResource>
<dataEntityExample>Gene:2200934</dataEntityExample>
<dataEntry>http://arabidopsis.org/servlets/TairObject?accession=$id</dataEntry>
@@ -2494,7 +2521,7 @@
<documentation type="PMID">urn:miriam:pubmed:12444417</documentation>
</documentations>
<resources>
- <resource id="MIR:00100078" state="up" reliability="81">
+ <resource id="MIR:00100078" state="up" reliability="82">
<dataResource>http://arabidopsis.org/index.jsp</dataResource>
<dataEntityExample>AT1G01030</dataEntityExample>
<dataEntry>http://arabidopsis.org/servlets/TairObject?type=locus&name=$id</dataEntry>
@@ -2562,7 +2589,7 @@
<synonyms>
<synonym>LMSD</synonym>
</synonyms>
- <definition>The LIPID MAPS Lipid Classification System is comprised of eight lipid categories, each with its own subclassification hierarchy. All lipids in the LIPID MAPS Structure Database (LMSD) have been classified using this system and have been assigned LIPID MAPS ID's which reflects their position in the classification hierarchy.</definition>
+ <definition>The LIPID MAPS Lipid Classification System is comprised of eight lipid categories, each with its own subclassification hierarchy. All lipids in the LIPID MAPS Structure Database (LMSD) have been classified using this system and have been assigned LIPID MAPS ID's which reflects their position in the classification hierarchy.</definition>
<uris>
<uri type="URN">urn:miriam:lipidmaps</uri>
<uri type="URL">http://identifiers.org/lipidmaps/</uri>
@@ -2666,27 +2693,27 @@
<synonyms>
<synonym>ECO</synonym>
</synonyms>
- <definition>Evidence codes can be used to specify the type of supporting evidence for a piece of knowledge. This allows inference of a 'level of support' between an entity and an annotation made to an entity.</definition>
+ <definition>Evidence codes can be used to specify the type of supporting evidence for a piece of knowledge. This allows inference of a 'level of support' between an entity and an annotation made to an entity.</definition>
<uris>
<uri type="URN">urn:miriam:eco</uri>
<uri type="URL">http://identifiers.org/eco/</uri>
+ <uri type="URL" deprecated="true">http://identifiers.org/obo.eco/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.eco</uri>
- <uri type="URL" deprecated="true">http://identifiers.org/obo.eco/</uri>
</uris>
<namespace>eco</namespace>
<documentations>
<documentation type="URL">http://www.geneontology.org/GO.evidence.shtml</documentation>
</documentations>
<resources>
- <resource id="MIR:00100083" state="up" reliability="97">
- <dataResource>http://www.ebi.ac.uk/ontology-lookup/browse.do?ontName=ECO&termId=ECO:0000000</dataResource>
+ <resource id="MIR:00100083" state="up" reliability="98">
+ <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/eco</dataResource>
<dataEntityExample>ECO:0000006</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ontology-lookup/?termId=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/eco/terms?obo_id=$id</dataEntry>
<dataInfo>Evidence Codes via the Ontology Lookup Service (OLS)</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
- <resource id="MIR:00100235" state="up" reliability="94">
+ <resource id="MIR:00100235" state="up" reliability="95">
<dataResource>http://bioportal.bioontology.org/ontologies/ECO</dataResource>
<dataEntityExample>ECO:0000006</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/ECO/$id</dataEntry>
@@ -2710,8 +2737,8 @@
<uris>
<uri type="URN">urn:miriam:psimod</uri>
<uri type="URL">http://identifiers.org/psimod/</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="URL" deprecated="true">http://identifiers.org/obo.psi-mod/</uri>
</uris>
<namespace>psimod</namespace>
<documentations>
@@ -2719,14 +2746,14 @@
</documentations>
<resources>
<resource id="MIR:00100084" state="up" reliability="98">
- <dataResource>http://www.ebi.ac.uk/ontology-lookup/browse.do?ontName=MOD</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/mod</dataResource>
<dataEntityExample>MOD:00001</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ontology-lookup/?termId=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/mod/terms?obo_id=$id</dataEntry>
<dataInfo>Protein modifications ontology via the Ontology Lookup Service (OLS)</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
- <resource id="MIR:00100239" state="up" reliability="98">
+ <resource id="MIR:00100239" state="down" reliability="97">
<dataResource>http://bioportal.bioontology.org/ontologies/PSIMOD</dataResource>
<dataEntityExample>MOD:00001</dataEntityExample>
<dataEntry>http://bioportal.bioontology.org/ontologies/1041?p=terms&conceptid=$id</dataEntry>
@@ -2889,8 +2916,11 @@
</datatype>
<datatype id="MIR:00000061" pattern="^PR\d{5}$">
- <name>SPRINT</name>
- <definition>SPRINT provides search access to the data bank of protein family fingerprints (PRINTS).</definition>
+ <name>PRINTS</name>
+ <synonyms>
+ <synonym>SPRINT</synonym>
+ </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>
@@ -2900,11 +2930,11 @@
<documentation type="PMID">urn:miriam:pubmed:10592232</documentation>
</documentations>
<resources>
- <resource id="MIR:00100089" state="up" reliability="98">
+ <resource id="MIR:00100089" state="down" reliability="98">
<dataResource>http://www.bioinf.manchester.ac.uk/dbbrowser/sprint/</dataResource>
<dataEntityExample>PR00001</dataEntityExample>
<dataEntry>http://www.bioinf.manchester.ac.uk/cgi-bin/dbbrowser/sprint/searchprintss.cgi?prints_accn=$id&display_opts=Prints&category=None&queryform=false&regexpr=off</dataEntry>
- <dataInfo>SPRINT</dataInfo>
+ <dataInfo>PRINTS through SPRINT</dataInfo>
<dataInstitution>University of Manchester</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
@@ -2937,7 +2967,7 @@
<documentation type="PMID">urn:miriam:pubmed:15059838</documentation>
</documentations>
<resources>
- <resource id="MIR:00100090" state="up" reliability="97">
+ <resource id="MIR:00100090" state="up" reliability="98">
<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>
@@ -2979,7 +3009,7 @@
<documentation type="PMID">urn:miriam:pubmed:14681355</documentation>
</documentations>
<resources>
- <resource id="MIR:00100091" state="up" reliability="94">
+ <resource id="MIR:00100091" state="up" reliability="95">
<dataResource>http://aclame.ulb.ac.be/</dataResource>
<dataEntityExample>mge:2</dataEntityExample>
<dataEntry>http://aclame.ulb.ac.be/perl/Aclame/Genomes/mge_view.cgi?view=info&id=$id</dataEntry>
@@ -3064,7 +3094,7 @@
<dataEntityExample>1</dataEntityExample>
<dataEntry>http://www.ebi.ac.uk/pride/archive/assays/$id</dataEntry>
<dataInfo>PRIDE at EBI</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
</resources>
@@ -3126,8 +3156,8 @@
<uris>
<uri type="URN">urn:miriam:fma</uri>
<uri type="URL">http://identifiers.org/fma/</uri>
+ <uri type="URL" deprecated="true">http://identifiers.org/obo.fma/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.fma</uri>
- <uri type="URL" deprecated="true">http://identifiers.org/obo.fma/</uri>
</uris>
<namespace>fma</namespace>
<documentations>
@@ -3135,11 +3165,11 @@
</documentations>
<resources>
<resource id="MIR:00100097" state="up" reliability="98">
- <dataResource>http://www.ebi.ac.uk/ontology-lookup/browse.do?ontName=FMA</dataResource>
+ <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/fma/</dataResource>
<dataEntityExample>FMA:67112</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ontology-lookup/?termId=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/fma/terms?obo_id=$id</dataEntry>
<dataInfo>Foundational Model of Anatomy via Ontology Lookup Service (OLS)</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
<resource id="MIR:00100236" state="up" reliability="94">
@@ -3206,7 +3236,7 @@
<synonyms>
<synonym>Entrez Gene</synonym>
</synonyms>
- <definition>Entrez Gene is the NCBI's database for gene-specific information, focusing on completely sequenced genomes, those with an active research community to contribute gene-specific information, or those that are scheduled for intense sequence analysis.</definition>
+ <definition>Entrez Gene is the NCBI's database for gene-specific information, focusing on completely sequenced genomes, those with an active research community to contribute gene-specific information, or those that are scheduled for intense sequence analysis.</definition>
<uris>
<uri type="URN">urn:miriam:ncbigene</uri>
<uri type="URL">http://identifiers.org/ncbigene/</uri>
@@ -3227,13 +3257,13 @@
<dataInstitution>National Center for Biotechnology Information</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100693" state="up" reliability="95">
+ <resource id="MIR:00100693" state="up" reliability="93">
<dataResource>http://ncbigene.bio2rdf.org/fct</dataResource>
<dataEntityExample>100010</dataEntityExample>
<dataEntry>http://ncbigene.bio2rdf.org/describe/?url=http://bio2rdf.org/ncbigene:$id</dataEntry>
<dataInfo>Bio2RDF</dataInfo>
<dataInstitution>Bio2RDF.org</dataInstitution>
- <dataLocation/>
+ <dataLocation></dataLocation>
</resource>
</resources>
<tags>
@@ -3263,7 +3293,7 @@
<documentation type="PMID">urn:miriam:pubmed:16381885</documentation>
</documentations>
<resources>
- <resource id="MIR:00100100" state="up" reliability="100">
+ <resource id="MIR:00100100" state="up" reliability="99">
<dataResource>http://www.genome.jp/kegg/genes.html</dataResource>
<dataEntityExample>syn:ssr3451</dataEntityExample>
<dataEntry>http://www.kegg.jp/entry/$id</dataEntry>
@@ -3320,7 +3350,7 @@
<datatype id="MIR:00000072" pattern="^\d+$">
<name>PubChem-bioassay</name>
- <definition>PubChem provides information on the biological activities of small molecules. It is a component of NIH's Molecular Libraries Roadmap Initiative. PubChem bioassay archives active compounds and bioassay results.</definition>
+ <definition>PubChem provides information on the biological activities of small molecules. It is a component of NIH's Molecular Libraries Roadmap Initiative. PubChem bioassay archives active compounds and bioassay results.</definition>
<uris>
<uri type="URN">urn:miriam:pubchem.bioassay</uri>
<uri type="URL">http://identifiers.org/pubchem.bioassay/</uri>
@@ -3364,7 +3394,7 @@
<documentation type="URL">http://www.pathwaycommons.org/pc/</documentation>
</documentations>
<resources>
- <resource id="MIR:00100103" state="up" reliability="94">
+ <resource id="MIR:00100103" state="up" reliability="95">
<dataResource>http://www.pathwaycommons.org/pc/</dataResource>
<dataEntityExample>485991</dataEntityExample>
<dataEntry>http://www.pathwaycommons.org/pc/record2.do?id=$id</dataEntry>
@@ -3403,7 +3433,7 @@
<documentation type="PMID">urn:miriam:pubmed:15713731</documentation>
</documentations>
<resources>
- <resource id="MIR:00100104" state="up" reliability="95">
+ <resource id="MIR:00100104" state="up" reliability="96">
<dataResource>http://pbil.univ-lyon1.fr/databases/hovergen.php</dataResource>
<dataEntityExample>HBG004341</dataEntityExample>
<dataEntry>http://pbil.univ-lyon1.fr/cgi-bin/view-tree.pl?query=$id&db=HOVERGEN</dataEntry>
@@ -3445,7 +3475,7 @@
<dataEntry>http://www.mmmp.org/MMMP/public/biomap/viewBiomap.mmmp?id=$id</dataEntry>
<dataInfo>main webpage</dataInfo>
<dataInstitution>Melanoma Molecular Map Project</dataInstitution>
- <dataLocation/>
+ <dataLocation></dataLocation>
</resource>
</resources>
<tags>
@@ -3463,7 +3493,7 @@
<datatype id="MIR:00000076" pattern="WP\d{1,5}(\_r\d+)?$">
<name>WikiPathways</name>
- <definition>WikiPathways is a resource providing an open and public collection of pathway maps created and curated by the community in a Wiki like style.
+ <definition>WikiPathways is a resource providing an open and public collection of pathway maps created and curated by the community in a Wiki like style.
All content is under the Creative Commons Attribution 3.0 Unported license.</definition>
<uris>
<uri type="URN">urn:miriam:wikipathways</uri>
@@ -3513,7 +3543,7 @@
<dataEntityExample>M0001</dataEntityExample>
<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 Molecular Biology Laboratory (EBI), Cambridge</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>United Kingdom</dataLocation>
</resource>
</resources>
@@ -3589,7 +3619,7 @@
<resource id="MIR:00100110" state="up" reliability="96">
<dataResource>http://zfin.org</dataResource>
<dataEntityExample>ZDB-GENE-041118-11</dataEntityExample>
- <dataEntry>http://zfin.org/action/marker/view/$id</dataEntry>
+ <dataEntry>http://zfin.org/$id</dataEntry>
<dataInfo>ZFIN Expression at University of Oregon</dataInfo>
<dataInstitution>Zebrafish Information Network, University of Oregon</dataInstitution>
<dataLocation>USA</dataLocation>
@@ -3625,21 +3655,21 @@
<documentation type="PMID">urn:miriam:pubmed:23161694</documentation>
</documentations>
<resources>
- <resource id="MIR:00100111" state="up" reliability="96" primary="true">
+ <resource id="MIR:00100111" state="up" reliability="97" primary="true">
<dataResource>http://www.genenames.org</dataResource>
<dataEntityExample>2674</dataEntityExample>
<dataEntry>http://www.genenames.org/cgi-bin/gene_symbol_report?hgnc_id=$id</dataEntry>
<dataInfo>HUGO Genome Nomenclature Committee</dataInfo>
- <dataInstitution>European Bioinformatics Institute</dataInstitution>
+ <dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
</resource>
- <resource id="MIR:00100698" state="up" reliability="97">
+ <resource id="MIR:00100698" state="up" reliability="93">
<dataResource>http://hgnc.bio2rdf.org/fct</dataResource>
- <dataEntityExample>hgnc:7</dataEntityExample>
+ <dataEntityExample>hgnc:2674</dataEntityExample>
<dataEntry>http://hgnc.bio2rdf.org/describe/?url=http://bio2rdf.org/$id</dataEntry>
<dataInfo>Bio2RDF</dataInfo>
<dataInstitution>Bio2RDF.org</dataInstitution>
- <dataLocation/>
+ <dataLocation></dataLocation>
</resource>
</resources>
<tags>
@@ -3665,8 +3695,8 @@
<uris>
<uri type="URN">urn:miriam:so</uri>
<uri type="URL">http://identifiers.org/so/</uri>
+ <uri type="URL" deprecated="true">http://identifiers.org/obo.so/</uri>
<uri type="URN" deprecated="true">urn:miriam:obo.so</uri>
- <uri type="URL" deprecated="true">http://identifiers.org/obo.so/</uri>
</uris>
<namespace>so</namespace>
<documentations>
@@ -3681,7 +3711,7 @@
<dataInstitution>Department of Molecular and Cellular Biology, University of California, Berkeley</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100241" state="up" reliability="91">
+ <resource id="MIR:00100241" state="up" reliability="92">
<dataResource>http://bioportal.bioontology.org/ontologies/SO</dataResource>
<dataEntityExample>SO:0000704</dataEntityExample>
<dataEntry>http://purl.bioontology.org/ontology/SO/$id</dataEntry>
@@ -3689,10 +3719,10 @@
<dataInstitution>National Center for Biomedical Ontology, Stanford</dataInstitution>
<dataLocation>USA</dataLocation>
</resource>
- <resource id="MIR:00100628" state="up" reliability="100">
- <dataResource>http://www.ebi.ac.uk/ontology-lookup/browse.do?ontName=SO</dataResource>
+ <resource id="MIR:00100628" state="up" reliability="99">
+ <dataResource>http://www.ebi.ac.uk/ols/beta/ontologies/so</dataResource>
<dataEntityExample>SO:0000704</dataEntityExample>
- <dataEntry>http://www.ebi.ac.uk/ontology-lookup/?termId=$id</dataEntry>
+ <dataEntry>http://www.ebi.ac.uk/ols/beta/ontologies/so/terms?obo_id=$id</dataEntry>
<dataInfo>Sequence Ontology through Ontology Lookup Service (OLS)</dataInfo>
<dataInstitution>European Bioinformatics Institute, Hinxton, Cambridge</dataInstitution>
<dataLocation>UK</dataLocation>
@@ -3713,20 +3743,21 @@
<datatype id="MIR:00000082" pattern="^\d{5}$">
<name>Rhea</name>
- <definition>Rhea is a manually annotated reaction database, where all reaction participants (reactants and products) are linked to the ChEBI database (Chemical Entities of Biological Interest), providing detailed information about structure, formulae and cha...
[truncated message content] |
|
From: <nik...@us...> - 2016-03-17 17:11:29
|
Revision: 632
http://sourceforge.net/p/sbfc/code/632
Author: niko-rodrigue
Date: 2016-03-17 17:11:28 +0000 (Thu, 17 Mar 2016)
Log Message:
-----------
updated the jsbml jar file + remove the jtidy and jsbml-tidy jars as they are now included in the jsbml big jar
Added Paths:
-----------
trunk/lib/jsbml-1.2-SNAPSHOT-20160317-with-dependencies.jar
Removed Paths:
-------------
trunk/lib/jsbml-1.2-SNAPSHOT-20160204-with-dependencies.jar
trunk/lib/jsbml-tidy-1.2.jar
trunk/lib/jtidy-r938.jar
Deleted: trunk/lib/jsbml-1.2-SNAPSHOT-20160204-with-dependencies.jar
===================================================================
(Binary files differ)
Added: trunk/lib/jsbml-1.2-SNAPSHOT-20160317-with-dependencies.jar
===================================================================
(Binary files differ)
Index: trunk/lib/jsbml-1.2-SNAPSHOT-20160317-with-dependencies.jar
===================================================================
--- trunk/lib/jsbml-1.2-SNAPSHOT-20160317-with-dependencies.jar 2016-03-09 11:52:19 UTC (rev 631)
+++ trunk/lib/jsbml-1.2-SNAPSHOT-20160317-with-dependencies.jar 2016-03-17 17:11:28 UTC (rev 632)
Property changes on: trunk/lib/jsbml-1.2-SNAPSHOT-20160317-with-dependencies.jar
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/zip
\ No newline at end of property
Deleted: trunk/lib/jsbml-tidy-1.2.jar
===================================================================
(Binary files differ)
Deleted: trunk/lib/jtidy-r938.jar
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|