|
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.
|