public void test_Reaction_ancestor_create() { Model m = new Model(2,4); Reaction r = m.createReaction(); ListOf lo = m.getListOfReactions(); assertTrue( r.getAncestorOfType(libsbml.SBML_MODEL) == m ); assertTrue( r.getAncestorOfType(libsbml.SBML_LIST_OF) == lo ); assertTrue( r.getAncestorOfType(libsbml.SBML_DOCUMENT) == null ); assertTrue( r.getAncestorOfType(libsbml.SBML_EVENT) == null ); Reaction obj = m.getReaction(0); assertTrue( obj.getAncestorOfType(libsbml.SBML_MODEL) == m ); assertTrue( obj.getAncestorOfType(libsbml.SBML_LIST_OF) == lo ); assertTrue( obj.getAncestorOfType(libsbml.SBML_DOCUMENT) == null ); assertTrue( obj.getAncestorOfType(libsbml.SBML_EVENT) == null ); }
public void test_Reaction_parent_add() { Reaction ia = new Reaction(2,4); Model m = new Model(2,4); ia.setId("k"); m.addReaction(ia); ia = null; ListOf lo = m.getListOfReactions(); assertTrue( lo == m.getReaction(0).getParentSBMLObject() ); assertTrue( m == lo.getParentSBMLObject() ); }
public void test_ReadSBML_notes() { Reaction r; KineticLaw kl; string s = wrapSBML_L2v3("<listOfReactions>" + "<reaction name='J1'>" + " <kineticLaw formula='k1*X0'>" + " <notes>This is a test note.</notes>" + " <listOfParameters>" + " <parameter name='k1' value='0'/>" + " </listOfParameters>" + " </kineticLaw>" + "</reaction>" + "</listOfReactions>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); r = M.getReaction(0); kl = r.getKineticLaw(); assertTrue( kl.getNotes() != null ); string notes = kl.getNotes().getChild(0).getCharacters(); assertTrue( ( "This is a test note." != notes ) == false ); }
public void test_Reaction_ancestor_add() { Reaction ia = new Reaction(2,4); Model m = new Model(2,4); ia.setId("k"); m.addReaction(ia); ia = null; ListOf lo = m.getListOfReactions(); Reaction obj = m.getReaction(0); assertTrue( obj.getAncestorOfType(libsbml.SBML_MODEL) == m ); assertTrue( obj.getAncestorOfType(libsbml.SBML_LIST_OF) == lo ); assertTrue( obj.getAncestorOfType(libsbml.SBML_DOCUMENT) == null ); assertTrue( obj.getAncestorOfType(libsbml.SBML_EVENT) == null ); }
public void test_ReadSBML_metaid() { SBase sb; string s = wrapSBML_L2v1("<listOfFunctionDefinitions>" + " <functionDefinition metaid='fd'/>" + "</listOfFunctionDefinitions>" + "<listOfUnitDefinitions>" + " <unitDefinition metaid='ud'/>" + "</listOfUnitDefinitions>" + "<listOfCompartments>" + " <compartment metaid='c'/>" + "</listOfCompartments>" + "<listOfSpecies>" + " <species metaid='s'/>" + "</listOfSpecies>" + "<listOfParameters>" + " <parameter metaid='p'/>" + "</listOfParameters>" + "<listOfRules>" + " <rateRule metaid='rr'/>" + "</listOfRules>" + "<listOfReactions>" + " <reaction metaid='rx'/>" + "</listOfReactions>" + "<listOfEvents>" + " <event metaid='e'/>" + "</listOfEvents>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M != null ); sb = M.getFunctionDefinition(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "fd" == sb.getMetaId() )); sb = M.getUnitDefinition(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "ud" == sb.getMetaId() )); sb = M.getCompartment(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "c" == sb.getMetaId() )); sb = M.getSpecies(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "s" == sb.getMetaId() )); sb = M.getParameter(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "p" == sb.getMetaId() )); sb = M.getRule(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "rr" == sb.getMetaId() )); sb = M.getReaction(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "rx" == sb.getMetaId() )); sb = M.getEvent(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "e" == sb.getMetaId() )); }
public void test_ReadSBML_metaid_Reaction() { SBase sb; Reaction r; string s = wrapSBML_L2v1("<listOfReactions>" + " <reaction metaid='r'>" + " <listOfReactants metaid='lor'>" + " <speciesReference metaid='sr1'/>" + " </listOfReactants>" + " <listOfProducts metaid='lop'>" + " <speciesReference metaid='sr2'/>" + " </listOfProducts>" + " <listOfModifiers metaid='lom'>" + " <modifierSpeciesReference metaid='msr'/>" + " </listOfModifiers>" + " <kineticLaw metaid='kl'/>" + " </reaction>" + "</listOfReactions>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M != null ); r = M.getReaction(0); sb = r; assertEquals( true, sb.isSetMetaId() ); assertTrue(( "r" == sb.getMetaId() )); sb = r.getListOfReactants(); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "lor" == sb.getMetaId() )); sb = r.getReactant(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "sr1" == sb.getMetaId() )); sb = r.getListOfProducts(); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "lop" == sb.getMetaId() )); sb = r.getProduct(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "sr2" == sb.getMetaId() )); sb = r.getListOfModifiers(); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "lom" == sb.getMetaId() )); sb = r.getModifier(0); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "msr" == sb.getMetaId() )); sb = r.getKineticLaw(); assertEquals( true, sb.isSetMetaId() ); assertTrue(( "kl" == sb.getMetaId() )); }
public void test_ReadSBML_KineticLaw_Parameter() { Reaction r; KineticLaw kl; Parameter p; string s = wrapSBML_L1v2("<listOfReactions>" + " <reaction name='J1'>" + " <kineticLaw formula='k1*X0'>" + " <listOfParameters>" + " <parameter name='k1' value='0'/>" + " </listOfParameters>" + " </kineticLaw>" + " </reaction>" + "</listOfReactions>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumReactions() == 1 ); r = M.getReaction(0); kl = r.getKineticLaw(); assertTrue(( "k1*X0" == kl.getFormula() )); assertTrue( kl.getNumParameters() == 1 ); p = kl.getParameter(0); assertTrue(( "k1" == p.getId() )); assertTrue( p.getValue() == 0 ); }
public void test_ReadSBML_Reaction_L2_defaults() { Reaction r; string s = wrapSBML_L2v1("<listOfReactions> <reaction id='r1'/> </listOfReactions>" ); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumReactions() == 1 ); r = M.getReaction(0); assertEquals( true, r.isSetId() ); assertEquals( false, r.isSetName() ); assertEquals( false, r.isSetFast() ); assertTrue(( "r1" == r.getId() )); assertTrue( r.getReversible() == true ); }
public void test_ReadSBML_KineticLaw() { Reaction r; KineticLaw kl; string s = wrapSBML_L1v2("<listOfReactions>" + " <reaction name='J1'>" + " <kineticLaw formula='k1*X0'/>" + " </reaction>" + "</listOfReactions>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumReactions() == 1 ); r = M.getReaction(0); kl = r.getKineticLaw(); assertTrue(( "k1*X0" == kl.getFormula() )); }
public void test_ReadSBML_KineticLaw_L2() { Reaction r; KineticLaw kl; ASTNode math; string formula; string s = wrapSBML_L2v1("<listOfReactions>" + " <reaction id='J1'>" + " <kineticLaw>" + " <math>" + " <apply>" + " <times/>" + " <ci> k </ci>" + " <ci> S2 </ci>" + " <ci> X0 </ci>" + " </apply>" + " </math>" + " </kineticLaw>" + " </reaction>" + "</listOfReactions>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumReactions() == 1 ); r = M.getReaction(0); assertTrue( r != null ); kl = r.getKineticLaw(); assertTrue( kl != null ); assertEquals( true, kl.isSetMath() ); math = kl.getMath(); formula = kl.getFormula(); assertTrue( formula != null ); assertTrue(( "k * S2 * X0" == formula )); }
public void test_ReadSBML_SpeciesReference_StoichiometryMath_2() { Reaction r; SpeciesReference sr; string s = wrapSBML_L2v1("<listOfReactions>" + " <reaction name='r1'>" + " <listOfReactants>" + " <speciesReference species='X0'>" + " <stoichiometryMath>" + " <math> <cn type='rational'> 3 <sep/> 2 </cn> </math>" + " </stoichiometryMath>" + " </speciesReference>" + " </listOfReactants>" + " </reaction>" + "</listOfReactions>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumReactions() == 1 ); r = M.getReaction(0); assertTrue( r != null ); assertTrue( r.getNumReactants() == 1 ); sr = r.getReactant(0); assertTrue( sr != null ); assertEquals( false, sr.isSetStoichiometryMath() ); assertTrue( sr.getStoichiometry() == 3 ); assertTrue( sr.getDenominator() == 2 ); }
public void test_ReadSBML_SpeciesReference_StoichiometryMath_1() { Reaction r; SpeciesReference sr; StoichiometryMath math; string formula; string s = wrapSBML_L2v1("<listOfReactions>" + " <reaction name='r1'>" + " <listOfReactants>" + " <speciesReference species='X0'>" + " <stoichiometryMath>" + " <math> <ci> x </ci> </math>" + " </stoichiometryMath>" + " </speciesReference>" + " </listOfReactants>" + " </reaction>" + "</listOfReactions>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumReactions() == 1 ); r = M.getReaction(0); assertTrue( r != null ); assertTrue( r.getNumReactants() == 1 ); sr = r.getReactant(0); assertTrue( sr != null ); assertEquals( true, sr.isSetStoichiometryMath() ); math = sr.getStoichiometryMath(); formula = libsbml.formulaToString(math.getMath()); assertTrue( formula != null ); assertTrue(( "x" == formula )); }
public void test_ReadSBML_SpeciesReference_defaults() { Reaction r; SpeciesReference sr; string s = wrapSBML_L1v2("<listOfReactions>" + " <reaction name='reaction_1' reversible='false'>" + " <listOfReactants>" + " <speciesReference species='X0'/>" + " </listOfReactants>" + " </reaction>" + "</listOfReactions>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumReactions() == 1 ); r = M.getReaction(0); assertTrue(( "reaction_1" == r.getId() )); assertTrue( r.getReversible() == false ); assertTrue( r.getNumReactants() == 1 ); sr = r.getReactant(0); assertTrue(( "X0" == sr.getSpecies() )); assertTrue( sr.getStoichiometry() == 1 ); assertTrue( sr.getDenominator() == 1 ); }
public void test_Reaction_parent_create() { Model m = new Model(2,4); Reaction r = m.createReaction(); ListOf lo = m.getListOfReactions(); assertTrue( lo == m.getReaction(0).getParentSBMLObject() ); assertTrue( lo == r.getParentSBMLObject() ); assertTrue( m == lo.getParentSBMLObject() ); }
public void test_ReadSBML_line_col_numbers() { //setXMLParser(); SBase sb; string s = "<?xml version='1.0' encoding='UTF-8'?>\n" + "<sbml xmlns='http://www.sbml.org/sbml/level2' level='2' version='1'>\n" + " <model id='testModel' name='testModel'>\n" + " <listOfReactions> <reaction/> </listOfReactions>\n" + " </model>\n" + "</sbml>\n"; D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M != null ); sb = M; sb = M.getListOfReactions(); sb = M.getReaction(0); }
/// <summary> /// [ ReactionStruct ] /// [[ Id , Name , [ KineticLawStruct ] , Reversible , Fast , [ ReactantStruct ] , [ ProductStruct ] , [ ModifierSpecies ] ]] /// </summary> /// <param name="aSBMLmodel"></param> /// <returns></returns> public static List<ReactionStruct> getReaction(Model aSBMLmodel) { List<ReactionStruct> list = new List<ReactionStruct>(); ListOfReactions reactions = aSBMLmodel.getListOfReactions(); for (int i = 0; i < reactions.size(); i++ ) { Reaction aReaction = aSBMLmodel.getReaction(i); string anId = aReaction.getId(); string aName =aReaction.getName(); //----------KineticLaw---------------------------------- List<KineticLawStruct> ListOfKineticLaw = new List<KineticLawStruct>(); if( aReaction.isSetKineticLaw()) { KineticLaw aKineticLaw = aReaction.getKineticLaw(); if( aKineticLaw != null) { string aFormula_KL; if( aKineticLaw.isSetFormula()) aFormula_KL = aKineticLaw.getFormula(); else aFormula_KL = ""; List<string> aString_KL = new List<string>(); if (aSBMLmodel.getLevel() == 1) { aString_KL.Add( "" ); } else { if (aKineticLaw.isSetMath()) { ASTNode anASTNode_KL = aKineticLaw.getMath(); aString_KL.Add( libsbml.libsbml.formulaToString( anASTNode_KL ) ); } else aString_KL.Add( "" ); } string aTimeUnit_KL = aKineticLaw.getTimeUnits(); string aSubstanceUnit_KL = aKineticLaw.getSubstanceUnits(); List<ParameterStruct> listOfParameters = new List<ParameterStruct>(); ListOfParameters parameters = aKineticLaw.getListOfParameters(); for (int j = 0; j < parameters.size(); j++ ) { Parameter aParameter = aKineticLaw.getParameter(j); if (aParameter == null) continue; string anId_KL_P = aParameter.getId(); string aName_KL_P = aParameter.getName(); double aValue_KL_P = aParameter.getValue(); string aUnit_KL_P = aParameter.getUnits(); bool aConstant_KL_P = aParameter.getConstant(); ParameterStruct parameter = new ParameterStruct( anId_KL_P, aName_KL_P, aValue_KL_P, aUnit_KL_P, aConstant_KL_P); listOfParameters.Add( parameter ); } XMLNode anExpressionAnnotation = aKineticLaw.getAnnotation(); KineticLawStruct kineticLaw = new KineticLawStruct( aFormula_KL, aString_KL, aTimeUnit_KL, aSubstanceUnit_KL, listOfParameters, anExpressionAnnotation ); ListOfKineticLaw.Add(kineticLaw); } } bool aReversible = aReaction.getReversible(); bool aFast = aReaction.getFast(); //----------Reactants---------------------------------- List<ReactantStruct> ListOfReactants = new List<ReactantStruct>(); ListOfSpeciesReferences reactants = aReaction.getListOfReactants(); for (int k = 0; k < reactants.size(); k++ ) { SpeciesReference aSpeciesReference = aReaction.getReactant(k); string aSpecies_R = aSpeciesReference.getSpecies(); int aStoichiometry_R = (int)aSpeciesReference.getStoichiometry(); string aString_R = GetStoichiometryMath(aSpeciesReference); int aDenominator_R = aSpeciesReference.getDenominator(); ReactantStruct reactant = new ReactantStruct( aSpecies_R, aStoichiometry_R, aString_R, aDenominator_R); ListOfReactants.Add( reactant ); } //----------Products---------------------------------- List<ProductStruct> ListOfProducts = new List<ProductStruct>(); ListOfSpeciesReferences products = aReaction.getListOfProducts(); long max = products.size(); for (int l = 0; l < max; l++) { SpeciesReference aSpeciesReference = aReaction.getProduct(l); string aSpecies_P = aSpeciesReference.getSpecies(); double aStoichiometry_P = aSpeciesReference.getStoichiometry(); string aString_P = GetStoichiometryMath(aSpeciesReference); int aDenominator_P = aSpeciesReference.getDenominator(); ProductStruct product = new ProductStruct( aSpecies_P, aStoichiometry_P, aString_P, aDenominator_P); ListOfProducts.Add( product ); } //----------Modifiers---------------------------------- List<string> ListOfModifiers = new List<string>(); ListOfSpeciesReferences modifiers = aReaction.getListOfModifiers(); for (long l = 0; l < modifiers.size(); l++ ) { ModifierSpeciesReference aSpeciesReference = aReaction.getModifier(l); string aSpecies_M = aSpeciesReference.getSpecies(); ListOfModifiers.Add( aSpecies_M ); } ReactionStruct reaction = new ReactionStruct( anId, aName, ListOfKineticLaw, aReversible, aFast, ListOfReactants, ListOfProducts, ListOfModifiers ); list.Add(reaction); } return list; }
public void test_ReadSBML_Reaction_defaults() { Reaction r; string s = wrapSBML_L1v2("<listOfReactions>" + " <reaction name='reaction_1'/>" + "</listOfReactions>"); D = libsbml.readSBMLFromString(s); M = D.getModel(); assertTrue( M.getNumReactions() == 1 ); r = M.getReaction(0); assertTrue(( "reaction_1" == r.getId() )); assertTrue( r.getReversible() != false ); assertTrue( r.getFast() == false ); }