Package org.sbml.jsbml

Examples of org.sbml.jsbml.Model


  @Test public void read1() throws XMLStreamException, InvalidPropertiesFormatException, IOException, ClassNotFoundException {
    // URL fileUrl = this.getClass().getResource("./data/BIOMD0000000025.xml");
    String fileName = DATA_FOLDER + "/l2v1/BIOMD0000000025.xml";
   
    SBMLDocument doc = new SBMLReader().readSBMLFile(fileName);
    Model model = doc.getModel();
   
    assertTrue(doc.getLevel() == 2 && doc.getVersion() == 1);
   
    // TODO: assertTrue(model.getLevel() == 2 && model.getVersion() == 1);
   
    assertTrue(model.getId().equals("Smolen2002"));
    assertTrue(model.getName().equals("Smolen2002_CircClock"));
   
    /*
     * <dcterms:created rdf:parseType="Resource">
          <dcterms:W3CDTF>2005-06-29T11:01:49Z</dcterms:W3CDTF>
        </dcterms:created>
        <dcterms:modified rdf:parseType="Resource">
          <dcterms:W3CDTF>2008-08-21T11:47:14Z</dcterms:W3CDTF>
        </dcterms:modified>
     *
     */
    // System.out.println("Created on : " + model.getHistory().getCreatedDate());
    // System.out.println("Modified on: " + model.getHistory().getModifiedDate());
   
    // asserTrue(model.getHistory().getCreatedDate());
   
    assertTrue(model.getUnitDefinition("substance").getName().equals("nanomole (new default)"));
   
    Species dClk = model.getSpecies("dClk");
   
    assertTrue(dClk.getCompartment().equals("CELL"));
    dClk.unsetCompartment();
    assertTrue(dClk.getCompartment().length() == 0);
   
    assertTrue(dClk != null);
   
    assertTrue(dClk.getName().length() == 0);
    assertTrue(dClk.getCVTermCount() == 1);
   
    assertTrue(dClk.getInitialAmount() == Double.parseDouble("1e-16"));
   
    Species dClkF = model.getSpecies("dClkF");
   
    assertTrue(dClkF != null);
   
    assertTrue(dClkF.getName().equals("free dClk"));
   
    Reaction rdClk = model.getReaction("rdClk");
   
    assertTrue(rdClk != null);
   
    assertTrue(rdClk.getName().equals("dClk production"));
    assertTrue(rdClk.getMetaId().equals("metaid_0000012"));
    assertTrue(rdClk.getListOfReactants().size() == 1);
    assertTrue(rdClk.getListOfProducts().size() == 1);
    assertTrue(rdClk.getListOfModifiers().size() == 1);
   
    assertTrue(rdClk.getListOfReactants().get(0).getSpecies().equals("EmptySet"));
    assertTrue(rdClk.getListOfProducts().get(0).getSpecies().equals("dClk"));
    assertTrue(rdClk.getListOfModifiers().get(0).getSpecies().equals("dClkF"));
   
    KineticLaw rdClkKL = rdClk.getKineticLaw();
   
    assertTrue(rdClkKL.getListOfParameters().size() == 3);
    assertTrue(rdClkKL.getListOfParameters().get(2).getId().equals("parameter_0000009"));
    assertTrue(rdClkKL.getListOfParameters().get(2).getName().equals("tau2"));
    assertTrue(rdClkKL.getListOfParameters().get(2).getValue() == 10);
   
    Event event = model.getEvent(0);
   
    assertTrue(event.getMetaId().equals("metaid_0000015"));
    assertTrue(event.getEventAssignmentCount() == 1);
    assertTrue(event.getEventAssignment(0).getVariable().equals("dClkF"));
   
View Full Code Here


   */
  @Test public void read3() throws XMLStreamException, InvalidPropertiesFormatException, IOException, ClassNotFoundException {
    String fileName = DATA_FOLDER + "/l2v4/BIOMD0000000228.xml"; // l2v4
   
    SBMLDocument doc = new SBMLReader().readSBMLFile(fileName);
    Model model = doc.getModel();
   
    assertTrue(doc.getLevel() == 2 && doc.getVersion() == 4);
   
    assertTrue(model.getId().equals(""));
    assertTrue(model.getName().equals("Swat2004_Mammalian_G1_S_Transition"));

    Compartment cell = model.getCompartment(0);
   
    assertTrue(cell.getSize() == 1);
   
    assertTrue(model.getListOfUnitDefinitions().size() == 3);   
    assertTrue(model.getListOfUnitDefinitions().get(1).getMetaId().equals("metaid_0000004"));
   
    Species pRBp = model.getSpecies("pRBp");
    pRBp.setHasOnlySubstanceUnits(false);
   
    assertTrue(pRBp != null);
    System.out.println("pRBp notes: " + pRBp.getNotesString()); // namespace lost, should probably here.

    // TODO: add more complex test for Notes !! assertTrue(pRBp.getNotesString().contains(JSBML.URI_XHTML_DEFINITION));

    System.out.println("pRBp annotation: " + pRBp.getAnnotation().getNonRDFannotation());
    System.out.println("pRBp annotation: " + pRBp.getCVTerm(0).toString());
   
    assertTrue(model.getListOfParameters().size() == 40);
   
    //org.sbml.libsbml.SBMLReader libSBMlReader = new org.sbml.libsbml.SBMLReader();
    //org.sbml.libsbml.SBMLDocument libsbmlDoc = libSBMlReader.readSBML(fileName);
    //org.sbml.jsbml.xml.libsbml.SBMLReader libSBMLAdapterReader = new  org.sbml.jsbml.xml.libsbml.LibSBMLReader();
   
    //Model libsbmlAdapterModel = libSBMLAdapterReader.readModel(libsbmlDoc.getModel());
   
    // System.out.println("nb global parameters = " + libsbmlDoc.getModel().getParameters());
   
    Parameter J18 = model.getParameter("J18");
   
    assertTrue(J18 != null);
    assertTrue(J18.getValue() == 0.6);
   
    Reaction pRB_synthesis = model.getReaction("pRB_synthesis");
   
    assertTrue(pRB_synthesis != null);
    System.out.println("pRB_synthesis additional annotation: " + pRB_synthesis.getAnnotation().getNonRDFannotation());

    assertTrue(pRB_synthesis.getAnnotation().getNonRDFannotation().trim().startsWith("<jigcell:ratelaw jigcell:name=\"Local\""));
View Full Code Here

   */
  @Test public void read4() throws XMLStreamException, InvalidPropertiesFormatException, IOException, ClassNotFoundException {
    String fileName = DATA_FOLDER + "/l2v4/BIOMD0000000229.xml"; // l2v4
   
    SBMLDocument doc = new SBMLReader().readSBMLFile(fileName);
    Model model = doc.getModel();
   
    assertTrue(doc.getLevel() == 2 && doc.getVersion() == 4);
   
    assertTrue(model.getId().equals("Ma2002_cAMP_oscillations"));
    assertTrue(model.getName().equals("Ma2202_cAMP_oscillations"));
   
    System.out.println(" Create date, read: " + model.getHistory().getCreatedDate() + ", from file: 2009-08-18T15:45:28Z");
    System.out.println(" Create date, read: " + model.getHistory().getModifiedDate() + ", from file: 2009-08-25T14:48:18Z");
   
    assertTrue(model.getHistory().getCreator(0).getGivenName().equals("Vijayalakshmi"));
    assertTrue(model.getHistory().getCreator(1).getGivenName().equals("Lan"));
    assertTrue(model.getHistory().getCreator(1).getEmail().equals("lma@jhu.edu"));
    assertTrue(model.getHistory().getCreator(0).getOrganisation().equals("EMBL-EBI"));
    assertTrue(model.getCVTermCount() == 5);
   
    Species erk2 = model.getSpecies("ERK2");
   
    assertTrue(erk2 != null);
    assertTrue(erk2.getSBOTermID().equals("SBO:0000014"));
    assertTrue(erk2.getSBOTerm() == 14);
    assertTrue(erk2.isSetInitialAmount() == false);
View Full Code Here

   */
  @Test
  public void idTest() {
    int level = 2, version = 4;
    SBMLDocument doc = new SBMLDocument(level, version);
    Model model = doc.createModel("myModel");
    Reaction r1 = model.createReaction("r1");
   
    /*
     * Local Parameters
     */
    logger.debug("==== LocalParameters ====");
    KineticLaw kl = r1.createKineticLaw();
    LocalParameter parameter = kl.createLocalParameter("lp1");
    parameter.setValue(2d);
    kl.getListOfLocalParameters().add(new LocalParameter("lp2"));
    try {
      kl.createLocalParameter("lp1");
      fail();
    } catch (IllegalArgumentException exc) {
      logger.debug(exc.getLocalizedMessage());
      assertTrue(kl.getListOfLocalParameters()
                   .filterList(new NameFilter(parameter.getId())).size() == 1);
    }
    kl.removeLocalParameter(parameter);
    assertTrue(kl.getListOfLocalParameters()
               .filterList(new NameFilter(parameter.getId())).size() == 0);
    assertTrue(kl.getLocalParameter(parameter.getId()) == null);
    // remove ListOfLocalParameters
    ListOf<LocalParameter> listOfLP = kl.getListOfLocalParameters();
    kl.unsetListOfLocalParameters();
    assertTrue(!listOfLP.contains(parameter));
    assertTrue(kl.getLocalParameter("lp2") == null);
    // add ListOfLocalParameters
    listOfLP.add(parameter);
    kl.setListOfLocalParameters(listOfLP);
    assertTrue(kl.getLocalParameter(parameter.getId()) != null);
   
    /*
     * Compartments
     */
    logger.debug("==== Compartments ====");
    Compartment c1 = model.createCompartment("c1");
    c1.setSize(2d);
    Compartment c2 = model.createCompartment("c2");
    try {
      c2.setId(c1.getId());
      fail();
    } catch (IllegalArgumentException exc) {
      System.err.println(exc.getLocalizedMessage());
      assertTrue(!c2.getId().equals(c1.getId()));
    }
    // remove ListOfCompartments
    ListOf<Compartment> listOfC = model.getListOfCompartments();
    model.unsetListOfCompartments();
    // add ListOfCompartments
    model.setListOfCompartments(listOfC);
    Compartment c3 = new Compartment(level, version);
    c3.setId("c3");
    model.addCompartment(c3);
    c3.setId("c4");
   
    /*
     * Species and Species References
     */
    logger.debug("==== Species ====");
    Species s1 = model.createSpecies("s1", c1);
    Species p1 = model.createSpecies("p1", c1);
    r1.createReactant(s1);
    r1.createProduct(p1);
    r1.getProduct(0).setId("p1ref");
   
    /*
     * Reactions
     */
    logger.debug("==== Reactions ====");
    Reaction r2 = new Reaction(level, version);
    SpeciesReference sr1 = r2.createReactant(s1);
    sr1.setId("sr1");
    r2.createModifier(p1);
    r2.setId("r2");
    model.addReaction(r2);
   
    /*
     * Function Definitions
     */
    logger.debug("==== FunctionDefinitions ====");
    FunctionDefinition f1 = model.createFunctionDefinition("f1");
    model.removeFunctionDefinition(f1.getId());
   
    try {
      SBMLWriter.write(doc, System.out, ' ', (short) 2);
    } catch (Exception exc) {
      exc.printStackTrace();
View Full Code Here

public class TestLocalParameterIdentification {

  public static void main(String[] args) throws IOException, XMLStreamException {
   
    SBMLDocument doc = new SBMLDocument(2, 4);
    Model model = doc.createModel("model_test");
    Compartment c1 = model.createCompartment("c1");
    Species s1 = model.createSpecies("s1", c1);
    s1.setMetaId("meta_" + s1.getId());
   
    Species s2 = model.createSpecies("s2", c1);
    s2.setMetaId("meta_" + s2.getId());
   
    Reaction r = model.createReaction("r1");
    r.createReactant(s1);
    r.createProduct(s2);
   
    model.createParameter("k");
   
    KineticLaw kl = r.createKineticLaw();
    kl.createLocalParameter("k");
    ASTNode node = ASTNode.readMathMLFromString("<math xmlns=\"http://www.w3.org/1998/Math/MathML\"> <apply><times/><ci> k </ci><ci> S1 </ci></apply></math>");
    kl.setMath(node);
View Full Code Here

    if (!sbmlDocument.hasValidAnnotation()) {
      logger.warn("The SBMLDocument element has an invalid rdf:about inside his annotation.");
      setRDFAbout(sbmlDocument);
    }

    Model model = sbmlDocument.getModel();

    if (!model.hasValidAnnotation()) {
      logger.warn(MessageFormat.format("The model element with metaid = \"{0}\" has an invalid rdf:about = \"{1}\" inside his annotation.", model.getMetaId(), model.getAnnotation().getAbout()))
      setRDFAbout(model);
    }

    if (model.isSetListOfFunctionDefinitions()) {
      for (FunctionDefinition functionDefinition : model.getListOfFunctionDefinitions()) {
        if (!functionDefinition.hasValidAnnotation()) {
          logger.warn("The functionDefinition element '" + functionDefinition.getMetaId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(functionDefinition);
        }
      }
    }
   
    if (model.isSetListOfCompartments()) {
      for (Compartment compartment : model.getListOfCompartments()) {
        if (!compartment.hasValidAnnotation()) {
          logger.warn("The compartment '" + compartment.getId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(compartment);
        }
      }
    }
   
    if (model.isSetListOfCompartmentTypes()) {
      for (CompartmentType compartmentType : model.getListOfCompartmentTypes()) {
        if (!compartmentType.hasValidAnnotation()) {
          logger.warn("The compartmentType '" + compartmentType.getId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(compartmentType);
        }
      }
    }
   
    logger.debug("compartments checked");
   
   
    if (model.isSetListOfConstraints()) {
      for (Constraint constraint : model.getListOfConstraints()) {
        if (!constraint.hasValidAnnotation()) {
          logger.warn("The constraint element '" + constraint.getMetaId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(constraint);
        }
      }
    }
   
    if (model.isSetListOfEvents()) {
      for (Event event : model.getListOfEvents()) {
        if (!event.hasValidAnnotation()) {
          logger.warn("The event element '" + event.getMetaId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(event);
        }
        if (event.isSetDelay()) {
          if (! event.getDelay().hasValidAnnotation()) {
            logger.warn("The delay element '" + event.getDelay().getMetaId() + "' has an invalid rdf:about inside his annotation.");
            setRDFAbout(event.getDelay());
          }
        }
        if (event.isSetListOfEventAssignments()) {
          for (EventAssignment eventAssignment : event.getListOfEventAssignments()) {
            if (!eventAssignment.hasValidAnnotation()) {
              logger.warn("The eventAssignment element '" + eventAssignment.getMetaId() + "' has an invalid rdf:about inside his annotation.");
              setRDFAbout(eventAssignment);
            }
          }
        }
        if (event.isSetTrigger()) {
          if (! event.getTrigger().hasValidAnnotation()) {
            logger.warn("The trigger element '" + event.getTrigger().getMetaId() + "' has an invalid rdf:about inside his annotation.");
            setRDFAbout(event.getTrigger());
          }
        }
      }     
    }
   
    logger.debug("events checked");
   
    if (model.isSetListOfInitialAssignments()) {
      for (InitialAssignment initAssgnt : model.getListOfInitialAssignments()) {
        if (!initAssgnt.hasValidAnnotation()) {
          logger.warn("The initialAssignment element '" + initAssgnt.getMetaId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(initAssgnt);
        }
      }
    }
   
    if (model.isSetListOfParameters()) {
      for (Parameter parameter : model.getListOfParameters()) {
        if (!parameter.hasValidAnnotation()) {
          logger.warn("The parameter element '" + parameter.getId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(parameter);
        }
      }
    }
   
    logger.debug("parameters checked");
   
    if (model.isSetListOfReactions()) {
      for (Reaction reaction : model.getListOfReactions()) {

        if (!reaction.hasValidAnnotation()) {
          logger.warn("The reaction element '" + reaction.getId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(reaction);
        }

        if (reaction.isSetKineticLaw()) {
          KineticLaw kineticLaw = reaction.getKineticLaw();

          if (!kineticLaw.hasValidAnnotation()) {
            logger.warn("The kineticLaw element '" + kineticLaw.getMetaId() + "' has an invalid rdf:about inside his annotation.");
            setRDFAbout(kineticLaw);
          }

          if (kineticLaw.isSetListOfLocalParameters()) {
            for (LocalParameter parameter : kineticLaw.getListOfLocalParameters()) {
              if (!parameter.hasValidAnnotation()) {
                logger.warn("The local parameter element '" + parameter.getId() + "' has an invalid rdf:about inside his annotation.");
                setRDFAbout(parameter);
              }
            }
          }         
        }

        if (reaction.isSetListOfReactants()) {
          for (SpeciesReference reactant : reaction.getListOfReactants()) {
            if (!reactant.hasValidAnnotation()) {
              logger.warn("The reactant element '" + reactant.getMetaId() + "' has an invalid rdf:about inside his annotation.");
              setRDFAbout(reactant);
            }
          }
        }
        if (reaction.isSetListOfProducts()) {
          for (SpeciesReference product : reaction.getListOfProducts()) {
            if (!product.hasValidAnnotation()) {
              logger.warn("The product element '" + product.getMetaId() + "' has an invalid rdf:about inside his annotation.");
              setRDFAbout(product);
            }
          }
        }
        if (reaction.isSetListOfModifiers()) {
          for (ModifierSpeciesReference modifier : reaction.getListOfModifiers()) {
            if (!modifier.hasValidAnnotation()) {
              logger.warn("The modifier element '" + modifier.getMetaId() + "' has an invalid rdf:about inside his annotation.");
              setRDFAbout(modifier);
            }
          }
        }
      }     
    }

    logger.debug("reactions checked");
   
    if (model.isSetListOfRules()) {
      for (Rule rule : model.getListOfRules()) {
        if (!rule.hasValidAnnotation()) {
          logger.warn("The rule element '" + rule.getMetaId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(rule);
        }
      }
    }
    if (model.isSetListOfSpecies()) {
      for (Species species : model.getListOfSpecies()) {
        if (!species.hasValidAnnotation()) {
          logger.warn("The species element '" + species.getId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(species);
        }
      }
    }
    if (model.isSetListOfSpeciesTypes()) {
      for (Species speciesType : model.getListOfSpecies()) {
        if (!speciesType.hasValidAnnotation()) {
          logger.warn("The speciesType element '" + speciesType.getId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(speciesType);
        }
      }
    }
   
    logger.debug("species checked");

    if (model.isSetListOfUnitDefinitions()) {
      for (UnitDefinition unitDefinition : model.getListOfUnitDefinitions()) {     

        if (!unitDefinition.hasValidAnnotation()) {
          logger.warn("The unitDefinition element '" + unitDefinition.getId() + "' has an invalid rdf:about inside his annotation.");
          setRDFAbout(unitDefinition);
        }
View Full Code Here

   */
  @Before
  public void init() {
    int level = 3, version = 1;
    SBMLDocument doc = new SBMLDocument(level, version);
    Model model = doc.createModel("test_model");
    sbase = model.createParameter("test_param");
    kind = Unit.Kind.AMPERE;
    assertTrue(!sbase.isSetUnits());
  }
View Full Code Here

  @SuppressWarnings("deprecation")
  @Test public void readL1V2Branch() throws XMLStreamException, InvalidPropertiesFormatException, IOException, ClassNotFoundException {
    String fileName = DATA_FOLDER + "/libsbml-test-data/l1v2-branch.xml";
   
    SBMLDocument doc = new SBMLReader().readSBMLFile(fileName);
    Model model = doc.getModel();
   
    assertTrue(doc.getLevel() == 1 && doc.getVersion() == 2);
   
    assertTrue(model.getLevel() == 1 && model.getVersion() == 2);
   
    // assertTrue(model.getId().equals("")); // TODO: document. Different behavior than libsbml, we set the id as the name for SBML level 1 models.
    assertTrue(model.getId().equals("Branch"));
    assertTrue(model.getName().equals("Branch"));
   
    Species s1 = model.getSpecies("S1");
   
    assertTrue(s1 != null);
   
    assertTrue(s1.getName().equals("S1"));
    assertTrue(s1.getId().equals("S1")); // changed, was assertTrue(s1.getId().equals("")); cf comment above.
    assertTrue(s1.getCVTermCount() == 0);
   
    assertTrue(s1.getInitialAmount() == 0);
    assertTrue(s1.getBoundaryCondition() == false);
   
    Species x1 = model.getSpecies("X1");
   
    assertTrue(x1 != null);
   
    assertTrue(x1.getName().equals("X1"));
    assertTrue(x1.getInitialAmount() == 0);
    assertTrue(x1.getBoundaryCondition() == true);
   
   
    Reaction r1 = model.getReaction(0);
   
    assertTrue(r1 != null);
   
    assertTrue(r1.getName().equals("reaction_1"));
    assertTrue(r1.getListOfReactants().size() == 1);
View Full Code Here

   */
  @Test public void readL1V1Units() throws XMLStreamException, InvalidPropertiesFormatException, IOException, ClassNotFoundException {
    String fileName = DATA_FOLDER + "/libsbml-test-data/l1v1-units.xml";
   
    SBMLDocument doc = new SBMLReader().readSBMLFile(fileName);
    Model model = doc.getModel();
   
    assertTrue(doc.getLevel() == 1 && doc.getVersion() == 1);
   
    assertTrue(model.getLevel() == 1 && model.getVersion() == 1);
   
    assertTrue(model.getId().equals(""));
    assertTrue(model.getName().equals(""));
   
    Species s1 = model.getSpecies("s1");
   
    assertTrue(s1 != null);
   
    assertTrue(s1.getName().equals("s1"));
    assertTrue(s1.getId().equals("s1")); // changed, was:  assertTrue(s1.getId().equals(""));
    assertTrue(s1.getCVTermCount() == 0);
   
    assertTrue(s1.getInitialAmount() == 1);
   
   
    UnitDefinition mls = model.getUnitDefinition(1);
   
    assertTrue(mls != null);
    assertTrue(mls.getUnitCount() == 3);
    assertTrue(mls.getName().equals("mls"));
    assertTrue(mls.getUnit(0).getScale() == -3);
    assertTrue(mls.getUnit(0).getKind().getName().equals("mole"));
   
    assertTrue(mls.getUnit(2).getExponent() == -1);
    assertTrue(mls.getUnit(2).getKind().getName().equals("second"));
    assertTrue(mls.getUnit(2).getKind().equals(Kind.SECOND));

    Parameter vm = model.getParameter(0);
   
    assertTrue(vm != null);
    assertTrue(vm.getUnits().equals("mls"));

  }
View Full Code Here

  @Test public void readL1V1Rules() throws XMLStreamException, InvalidPropertiesFormatException, IOException, ClassNotFoundException {

    String fileName = DATA_FOLDER + "/libsbml-test-data/l1v1-rules.xml";
   
    SBMLDocument doc = new SBMLReader().readSBMLFile(fileName);
    Model model = doc.getModel();
   
    assertTrue(doc.getLevel() == 1 && doc.getVersion() == 1);
   
    assertTrue(model.getLevel() == 1 && model.getVersion() == 1);
   
    assertTrue(model.getId().equals(""));
    assertTrue(model.getName().equals(""));
   
    int nbRateRules = model.getListOfRules().filterList(new Filter() {
     
      /*
       * (non-Javadoc)
       * @see org.sbml.jsbml.util.filters.Filter#accepts(java.lang.Object)
       */
      public boolean accepts(Object o) {
        if (o instanceof RateRule) {
          return true;
        }
       
        return false;
      }
    }).size();

    int nbAssignmentRules = model.getListOfRules().filterList(new Filter() {
     
      /*
       * (non-Javadoc)
       * @see org.sbml.jsbml.util.filters.Filter#accepts(java.lang.Object)
       */
      public boolean accepts(Object o) {
        if (o instanceof AssignmentRule) {
          return true;
        }
       
        return false;
      }
    }).size();
   
    assertTrue(model.getListOfRules().size() == 4);
    assertTrue(nbRateRules == 1);
    assertTrue(nbAssignmentRules == 3);
  }
View Full Code Here

TOP

Related Classes of org.sbml.jsbml.Model

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.