コード例 #1
0
LIBSBML_CPP_NAMESPACE_USE

int main(int argc,char** argv)
{

  if (argc != 2)
  {
    std::cout << "Usage: example1\n";
    return 1;
  }

  //
  // Creates an SBMLNamespaces object with the given SBML level, version
  // package name, package version.
  //
  // (NOTE) By defualt, the name of package (i.e. "qual") will be used
  // if the arugment for the prefix is missing or empty. Thus the argument
  // for the prefix can be added as follows:
  //
  //    SBMLNamespaces sbmlns(3,1,"qual",1,"QUAL");
  //

  SBMLNamespaces sbmlns(3,1,"qual",1);

  //
  // (NOTES) The above code creating an SBMLNamespaces object can be replaced 
  //         with one of the following other styles.
  //
  // (1) Creates an SBMLNamespace object with a SBML core namespace and then
  //     adds a qual package namespace to the object.
  //
  //         SBMLNamespaces sbmlns(3,1);
  //         sbmlns.addPkgNamespace("qual",1);
  //
  //          OR
  //
  //         SBMLNamespaces sbmlns(3,1);
  //         sbmlns.addNamespace(QualExtension::XmlnsL3V1V1,"qual");
  //
  // (2) Creates a QualPkgNamespaces object (SBMLNamespace derived class for
  //     qual package. The class is basically used for createing an SBase
  //     derived objects defined in the qual package) with the given SBML
  //     level, version, and package version
  //
  //        QualPkgNamespaces sbmlns(3,1,1);
  //     


  // create the document

  SBMLDocument *document = new SBMLDocument(&sbmlns);

  // mark qual as required

  document->setPackageRequired("qual", true);


  // create the Model

  Model* model=document->createModel();

  // create the Compartment

  Compartment* compartment = model->createCompartment();
  compartment->setId("c");
  compartment->setConstant(true);

  //
  // Get a QualModelPlugin object plugged in the model object.
  //
  // The type of the returned value of SBase::getPlugin() function is
  // SBasePlugin*, and thus the value needs to be casted for the
  // corresponding derived class.
  //
  QualModelPlugin* mplugin
    = static_cast<QualModelPlugin*>(model->getPlugin("qual"));

  // create the QualitativeSpecies
  QualitativeSpecies* qs = mplugin->createQualitativeSpecies();
  qs->setId("s1");
  qs->setCompartment("c");
  qs->setConstant(false);
  qs->setInitialLevel(1);
  qs->setMaxLevel(4);
  qs->setName("sss");

  // create the Transition
  Transition* t = mplugin->createTransition();
  t->setId("d");
  t->setSBOTerm(1);

  Input* i = t->createInput();
  i->setId("RD");
  i->setQualitativeSpecies("s1");
  i->setTransitionEffect(INPUT_TRANSITION_EFFECT_NONE);
  i->setSign(INPUT_SIGN_NEGATIVE);
  i->setThresholdLevel(2);
  i->setName("aa");

  Output* o = t->createOutput();
  o->setId("wd");
  o->setQualitativeSpecies("s1");
  o->setTransitionEffect(OUTPUT_TRANSITION_EFFECT_PRODUCTION);
  o->setOutputLevel(2);
  o->setName("aa");

  DefaultTerm* dt = t->createDefaultTerm();
  dt->setResultLevel(2) ;

  FunctionTerm* ft = t->createFunctionTerm();
  ASTNode* math = SBML_parseL3Formula("geq(s1, 2)");
  ft->setResultLevel(1);
  ft->setMath(math);
  
  writeSBML(document,"qual_example1.xml");
  delete document;

  return 0;
}
コード例 #2
0
ファイル: example3.cpp プロジェクト: 0u812/roadrunner-backup
LIBSBML_CPP_NAMESPACE_USE

int main(int argc, char** argv)
{
    //
    // Creates an SBMLNamespaces object with the given SBML level, version
    // package name.
    //

    SBMLNamespaces sbmlns(2, 3);
    sbmlns.addNamespace(LayoutExtension::getXmlnsL2(), "layout");

    // (NOTES) The above code creating an SBMLNamespaces object can be replaced
    //         with the following other style.
    //
    // (2) Creates a LayoutPkgNamespaces object (SBMLNamespace derived class
    //     for layout package. The class is basically used for createing an
    //     SBase derived objects belonging to the layout package) with the
    //     given SBML level, version.  (Package version is not required by
    //     Layout extension of SBML Level 2)
    //
    //        LayoutPkgNamespaces sbmlns(2, 3);
    //

    // create the document

    SBMLDocument *document = new SBMLDocument(&sbmlns);
    // create the Model

    Model* model = document->createModel();
    model->setId("TestModel_with_modifiers");
    document->setModel(model);

    // create the Layout

    LayoutPkgNamespaces layoutns(2, 3);

    LayoutModelPlugin* mplugin
        = static_cast<LayoutModelPlugin*>(model->getPlugin("layout"));
    Layout* layout = mplugin->createLayout();

    layout->setId("Layout_1");
    Dimensions dim(&layoutns, 400.0, 230.0);
    layout->setDimensions(&dim);


    // create the Compartment

    Compartment* compartment = model->createCompartment();
    compartment->setId("Yeast");

    // create the CompartmentGlyph

    CompartmentGlyph* compartmentGlyph = layout->createCompartmentGlyph();
    compartmentGlyph->setId("CompartmentGlyph_1");
    compartmentGlyph->setCompartmentId(compartment->getId());
    BoundingBox bb(&layoutns, "bb1", 5, 5, 390, 220);
    compartmentGlyph->setBoundingBox(&bb);

    // create the Species, SpeciesGlyphs and associated TextGlyphs

    // Glucose

    Species* species_Gluc = model->createSpecies();
    species_Gluc->setId("Glucose");
    species_Gluc->setCompartment(compartment->getId());

    SpeciesGlyph* glyph_Gluc = layout->createSpeciesGlyph();
    glyph_Gluc->setId("SpeciesGlyph_Glucose");
    glyph_Gluc->setSpeciesId(species_Gluc->getId());
    bb = BoundingBox(&layoutns, "bb2", 105, 20, 130, 20);
    glyph_Gluc->setBoundingBox(&bb);

    TextGlyph* tGlyph = layout->createTextGlyph();
    tGlyph->setId("TextGlyph_Glucose");
    bb = BoundingBox(&layoutns, "bbA", 115, 20, 110, 20);
    tGlyph->setBoundingBox(&bb);
    tGlyph->setOriginOfTextId(species_Gluc->getId());
    tGlyph->setGraphicalObjectId(glyph_Gluc->getId());

    // Glucose-6-phosphate

    Species* species_G6P = model->createSpecies();
    species_G6P->setId("Glucose_hyphen_6_hyphen_phosphate");
    species_G6P->setCompartment(compartment->getId());

    SpeciesGlyph* glyph_G6P = layout->createSpeciesGlyph();
    glyph_G6P->setId("SpeciesGlyph_G6P");
    glyph_G6P->setSpeciesId(species_G6P->getId());
    bb = BoundingBox(&layoutns, "bb5", 50, 190, 270, 20);
    glyph_G6P->setBoundingBox(&bb);

    tGlyph = layout->createTextGlyph();
    tGlyph->setId("TextGlyph_G6P");
    bb = BoundingBox(&layoutns, "bbD", 60, 190, 250, 20);
    tGlyph->setBoundingBox(&bb);
    tGlyph->setOriginOfTextId(species_G6P->getId());
    tGlyph->setGraphicalObjectId(glyph_G6P->getId());

    // ATP

    Species* species_ATP = model->createSpecies();
    species_ATP->setId("ATP");
    species_ATP->setCompartment(compartment->getId());

    SpeciesGlyph* glyph_ATP = layout->createSpeciesGlyph();
    glyph_ATP->setId("SpeciesGlyph_ATP");
    glyph_ATP->setSpeciesId(species_ATP->getId());
    bb = BoundingBox(&layoutns, "bb3", 270, 70, 80, 20);
    glyph_ATP->setBoundingBox(&bb);

    tGlyph = layout->createTextGlyph();
    tGlyph->setId("TextGlyph_ATP");
    bb = BoundingBox(&layoutns, "bbB", 280, 70, 60, 20);
    tGlyph->setBoundingBox(&bb);
    tGlyph->setOriginOfTextId(species_ATP->getId());
    tGlyph->setGraphicalObjectId(glyph_ATP->getId());

    // ADP

    Species* species_ADP = model->createSpecies();
    species_ADP->setId("ADP");
    species_ADP->setCompartment(compartment->getId());

    SpeciesGlyph* glyph_ADP = layout->createSpeciesGlyph();
    glyph_ADP->setId("glyph_ADP");
    glyph_ADP->setSpeciesId(species_ADP->getId());
    bb = BoundingBox(&layoutns, "bb4", 270, 140, 80, 20);
    glyph_ADP->setBoundingBox(&bb);

    tGlyph = layout->createTextGlyph();
    tGlyph->setId("TextGlyph_ADP");
    bb = BoundingBox(&layoutns, "bbC", 280, 140, 60, 20);
    tGlyph->setBoundingBox(&bb);
    tGlyph->setOriginOfTextId(species_ADP->getId());
    tGlyph->setGraphicalObjectId(glyph_ADP->getId());

    // Phosphate

    Species* species_Pi = model->createSpecies();
    species_Pi->setId("Pi");
    species_Pi->setCompartment(compartment->getId());

    SpeciesGlyph* glyph_Pi = layout->createSpeciesGlyph();
    glyph_Pi->setId("SpeciesGlyph_Pi");
    glyph_Pi->setSpeciesId(species_Pi->getId());
    bb = BoundingBox(&layoutns, "bb6", 50, 100, 60, 20);
    glyph_Pi->setBoundingBox(&bb);

    tGlyph = layout->createTextGlyph();
    tGlyph->setId("TextGlyph_PI");
    bb = BoundingBox(&layoutns, "bbE", 60, 100, 40, 20);
    tGlyph->setBoundingBox(&bb);
    tGlyph->setOriginOfTextId(species_Pi->getId());
    tGlyph->setGraphicalObjectId(glyph_Pi->getId());

    // create the Reaction

    Reaction* reaction_Hexokinase = model->createReaction();
    reaction_Hexokinase->setId("Hexokinase");
    reaction_Hexokinase->setReversible(false);

    ReactionGlyph* glyph_Hexokinase = layout->createReactionGlyph();
    glyph_Hexokinase->setId("glyph_Hexokinase");
    glyph_Hexokinase->setReactionId(reaction_Hexokinase->getId());

    Curve* curve_Hexokinase = glyph_Hexokinase->getCurve();
    LineSegment* ls = curve_Hexokinase->createLineSegment();
    Point p(&layoutns, 170, 100);
    ls->setStart(&p);
    p = Point(&layoutns, 170, 130);
    ls->setEnd(&p);

    // create the species reference for glucose

    SpeciesReference* reference_Gluc = reaction_Hexokinase->createReactant();
    reference_Gluc->setSpecies(species_Gluc->getId());
    reference_Gluc->setId("SpeciesReference_Glucose");

    // create species reference glyph for glucose

    SpeciesReferenceGlyph* speciesReferenceGlyph
        = glyph_Hexokinase->createSpeciesReferenceGlyph();
    speciesReferenceGlyph->setId("SpeciesReferenceGlyph_Glucose");
    speciesReferenceGlyph->setSpeciesGlyphId(glyph_Gluc->getId());
    speciesReferenceGlyph->setSpeciesReferenceId(reference_Gluc->getId());
    speciesReferenceGlyph->setRole(SPECIES_ROLE_SUBSTRATE);

    ls = speciesReferenceGlyph->createLineSegment();
    p = Point(&layoutns, 170, 100);
    ls->setStart(&p);
    p = Point(&layoutns, 170, 50);
    ls->setEnd(&p);

    // create species reference for ATP

    SpeciesReference* reference_ATP
        = reaction_Hexokinase->createReactant();
    reference_ATP->setSpecies(species_ATP->getId());
    reference_ATP->setId("SpeciesReference_ATP");

    // create the species reference glyph for ATP

    speciesReferenceGlyph = glyph_Hexokinase->createSpeciesReferenceGlyph();
    speciesReferenceGlyph->setId("SpeciesReferenceGlyph_ATP");
    speciesReferenceGlyph->setSpeciesGlyphId(glyph_ATP->getId());
    speciesReferenceGlyph->setSpeciesReferenceId(reference_ATP->getId());
    speciesReferenceGlyph->setRole(SPECIES_ROLE_SIDESUBSTRATE);

    CubicBezier* cb = speciesReferenceGlyph->createCubicBezier();
    p = Point(&layoutns, 170, 100);
    cb->setStart(&p);
    p = Point(&layoutns, 170, 80);
    cb->setBasePoint1(&p);
    p = Point(&layoutns, 170, 80);
    cb->setBasePoint2(&p);
    p = Point(&layoutns, 260, 80);
    cb->setEnd(&p);

    // create species reference for G6P

    SpeciesReference* reference_G6P = reaction_Hexokinase->createProduct();
    reference_G6P->setSpecies(species_G6P->getId());
    reference_G6P->setId("SpeciesReference_G6P");

    // create species reference for G6P as product

    speciesReferenceGlyph = glyph_Hexokinase->createSpeciesReferenceGlyph();
    speciesReferenceGlyph->setId("SpeciesReferenceGlyph_G6P_1");
    speciesReferenceGlyph->setSpeciesGlyphId(glyph_G6P->getId());
    speciesReferenceGlyph->setSpeciesReferenceId(reference_G6P->getId());
    speciesReferenceGlyph->setRole(SPECIES_ROLE_PRODUCT);

    ls = speciesReferenceGlyph->createLineSegment();
    p = Point(&layoutns, 170, 130);
    ls->setStart(&p);
    p = Point(&layoutns, 170, 180);
    ls->setEnd(&p);

    // create species reference for ADP

    SpeciesReference* reference_ADP = reaction_Hexokinase->createProduct();
    reference_ADP->setSpecies(species_ADP->getId());
    reference_ADP->setId("SpeciesReference_ADP");

    // create the species reference glyph for ADP

    speciesReferenceGlyph = glyph_Hexokinase->createSpeciesReferenceGlyph();
    speciesReferenceGlyph->setId("SpeciesReferenceGlyph_ADP");
    speciesReferenceGlyph->setSpeciesGlyphId(glyph_ADP->getId());
    speciesReferenceGlyph->setSpeciesReferenceId(reference_ADP->getId());
    speciesReferenceGlyph->setRole(SPECIES_ROLE_SIDEPRODUCT);

    cb = speciesReferenceGlyph->createCubicBezier();
    p = Point(&layoutns, 170, 130);
    cb->setStart(&p);
    p = Point(&layoutns, 170, 150);
    cb->setBasePoint1(&p);
    p = Point(&layoutns, 170, 150);
    cb->setBasePoint2(&p);
    p = Point(&layoutns, 260, 150);
    cb->setEnd(&p);

    // create modifier species reference for glucose-6-phosphate

    ModifierSpeciesReference* reference_G6P_2
        = reaction_Hexokinase->createModifier();
    reference_G6P_2->setSpecies(species_G6P->getId());
    reference_G6P_2->setId("ModifierSpeciesReference_G6P");

    reaction_Hexokinase->addModifier(reference_G6P_2);

    // create species reference glyph for G6P as a modifier

    speciesReferenceGlyph = glyph_Hexokinase->createSpeciesReferenceGlyph();
    speciesReferenceGlyph->setId("SpeciesReferenceGlyph_G6P_2");
    speciesReferenceGlyph->setSpeciesReferenceId(reference_G6P_2->getId());
    speciesReferenceGlyph->setSpeciesGlyphId(glyph_G6P->getId());
    speciesReferenceGlyph->setRole(SPECIES_ROLE_INHIBITOR);

    cb = speciesReferenceGlyph->createCubicBezier();
    p = Point(&layoutns, 45, 200);
    cb->setStart(&p);
    p = Point(&layoutns, 0, 200);
    cb->setBasePoint1(&p);
    p = Point(&layoutns, 0, 120);
    cb->setBasePoint2(&p);
    p = Point(&layoutns, 165, 120);
    cb->setEnd(&p);

    // create modifier species reference for phosphate

    ModifierSpeciesReference* reference_Pi = reaction_Hexokinase->createModifier();
    reference_Pi->setSpecies(species_Pi->getId());
    reference_Pi->setId("ModifierSpeciesReference_Pi");

    reaction_Hexokinase->addModifier(reference_Pi);

    // create the species reference glyph for Phosphate

    speciesReferenceGlyph = glyph_Hexokinase->createSpeciesReferenceGlyph();
    speciesReferenceGlyph->setId("SpeciesReferenceGlyph_PI");
    speciesReferenceGlyph->setSpeciesReferenceId(reference_Pi->getId());
    speciesReferenceGlyph->setSpeciesGlyphId(glyph_Pi->getId());
    speciesReferenceGlyph->setRole(SPECIES_ROLE_ACTIVATOR);

    cb = speciesReferenceGlyph->createCubicBezier();
    p = Point(&layoutns, 115, 110);
    cb->setStart(&p);
    p = Point(&layoutns, 140, 110);
    cb->setBasePoint1(&p);
    p = Point(&layoutns, 140, 110);
    cb->setBasePoint2(&p);
    p = Point(&layoutns, 165, 110);
    cb->setEnd(&p);

    // write model to file

    writeSBML(document, "layout_example3_L2.xml");
    delete document;

}
コード例 #3
0
LIBSBML_CPP_NAMESPACE_USE

int main(int argc,char** argv)
{
  SBMLNamespaces sbmlns(3,1,"fbc",1);

  // create the document

  SBMLDocument *document = new SBMLDocument(&sbmlns);
  document->setPackageRequired("fbc", false);

  // create the Model

  Model* model=document->createModel();

  // create the Compartment

  Compartment* compartment = model->createCompartment();
  compartment->setId("compartment");
  compartment->setConstant(true);
  compartment->setSize(1);

  // create the Species

  Species* species = model->createSpecies();
  species->setId("Node1");
  species->setCompartment("compartment");
  species->setBoundaryCondition(false);
  species->setConstant(false);
  species->setHasOnlySubstanceUnits(false);

  species = model->createSpecies();
  species->setId("Node2");
  species->setCompartment("compartment");
  species->setBoundaryCondition(false);
  species->setConstant(false);
  species->setHasOnlySubstanceUnits(false);

  species = model->createSpecies();
  species->setId("Node3");
  species->setCompartment("compartment");
  species->setBoundaryCondition(false);
  species->setConstant(false);
  species->setHasOnlySubstanceUnits(false);

  species = model->createSpecies();
  species->setId("Node4");
  species->setCompartment("compartment");
  species->setBoundaryCondition(false);
  species->setConstant(false);
  species->setHasOnlySubstanceUnits(false);

  species = model->createSpecies();
  species->setId("Node5");
  species->setCompartment("compartment");
  species->setBoundaryCondition(false);
  species->setConstant(false);
  species->setHasOnlySubstanceUnits(false);

  species = model->createSpecies();
  species->setId("Node6");
  species->setCompartment("compartment");
  species->setBoundaryCondition(false);
  species->setConstant(false);
  species->setHasOnlySubstanceUnits(false);

  species = model->createSpecies();
  species->setId("Node7");
  species->setCompartment("compartment");
  species->setBoundaryCondition(false);
  species->setConstant(false);
  species->setHasOnlySubstanceUnits(false);

  species = model->createSpecies();
  species->setId("Node8");
  species->setCompartment("compartment");
  species->setBoundaryCondition(false);
  species->setConstant(false);
  species->setHasOnlySubstanceUnits(false);

  species = model->createSpecies();
  species->setId("Node0");
  species->setCompartment("compartment");
  species->setBoundaryCondition(true);
  species->setConstant(false);
  species->setHasOnlySubstanceUnits(false);

  species = model->createSpecies();
  species->setId("Node9");
  species->setCompartment("compartment");
  species->setBoundaryCondition(true);
  species->setConstant(false);
  species->setHasOnlySubstanceUnits(false);

  Reaction* reaction = model->createReaction();
  reaction->setId("J0");
  reaction->setReversible(false);
  reaction->setFast(false);
  SpeciesReference* reactant = reaction->createReactant();
  reactant->setSpecies("Node0");
  reactant->setStoichiometry(1);
  reactant->setConstant(true);
  SpeciesReference* product = reaction->createProduct();
  product->setSpecies("Node1");
  product->setStoichiometry(1);
  product->setConstant(true);

  reaction = model->createReaction();
  reaction->setId("J1");
  reaction->setReversible(false);
  reaction->setFast(false);
  reactant = reaction->createReactant();
  reactant->setSpecies("Node1");
  reactant->setStoichiometry(1);
  reactant->setConstant(true);
  product = reaction->createProduct();
  product->setSpecies("Node2");
  product->setStoichiometry(1);
  product->setConstant(true);

  reaction = model->createReaction();
  reaction->setId("J2");
  reaction->setReversible(false);
  reaction->setFast(false);
  reactant = reaction->createReactant();
  reactant->setSpecies("Node2");
  reactant->setStoichiometry(1);
  reactant->setConstant(true);
  product = reaction->createProduct();
  product->setSpecies("Node3");
  product->setStoichiometry(1);
  product->setConstant(true);

  reaction = model->createReaction();
  reaction->setId("J3");
  reaction->setReversible(false);
  reaction->setFast(false);
  reactant = reaction->createReactant();
  reactant->setSpecies("Node1");
  reactant->setStoichiometry(1);
  reactant->setConstant(true);
  product = reaction->createProduct();
  product->setSpecies("Node4");
  product->setStoichiometry(1);
  product->setConstant(true);

  reaction = model->createReaction();
  reaction->setId("J4");
  reaction->setReversible(false);
  reaction->setFast(false);
  reactant = reaction->createReactant();
  reactant->setSpecies("Node4");
  reactant->setStoichiometry(1);
  reactant->setConstant(true);
  product = reaction->createProduct();
  product->setSpecies("Node3");
  product->setStoichiometry(1);
  product->setConstant(true);

  reaction = model->createReaction();
  reaction->setId("J5");
  reaction->setReversible(false);
  reaction->setFast(false);
  reactant = reaction->createReactant();
  reactant->setSpecies("Node3");
  reactant->setStoichiometry(1);
  reactant->setConstant(true);
  product = reaction->createProduct();
  product->setSpecies("Node5");
  product->setStoichiometry(1);
  product->setConstant(true);

  reaction = model->createReaction();
  reaction->setId("J6");
  reaction->setReversible(false);
  reaction->setFast(false);
  reactant = reaction->createReactant();
  reactant->setSpecies("Node5");
  reactant->setStoichiometry(1);
  reactant->setConstant(true);
  product = reaction->createProduct();
  product->setSpecies("Node6");
  product->setStoichiometry(1);
  product->setConstant(true);

  reaction = model->createReaction();
  reaction->setId("J7");
  reaction->setReversible(false);
  reaction->setFast(false);
  reactant = reaction->createReactant();
  reactant->setSpecies("Node6");
  reactant->setStoichiometry(1);
  reactant->setConstant(true);
  product = reaction->createProduct();
  product->setSpecies("Node7");
  product->setStoichiometry(1);
  product->setConstant(true);

  reaction = model->createReaction();
  reaction->setId("J8");
  reaction->setReversible(false);
  reaction->setFast(false);
  reactant = reaction->createReactant();
  reactant->setSpecies("Node5");
  reactant->setStoichiometry(1);
  reactant->setConstant(true);
  product = reaction->createProduct();
  product->setSpecies("Node8");
  product->setStoichiometry(1);
  product->setConstant(true);

  reaction = model->createReaction();
  reaction->setId("J9");
  reaction->setReversible(false);
  reaction->setFast(false);
  reactant = reaction->createReactant();
  reactant->setSpecies("Node8");
  reactant->setStoichiometry(1);
  reactant->setConstant(true);
  product = reaction->createProduct();
  product->setSpecies("Node7");
  product->setStoichiometry(1);
  product->setConstant(true);

  reaction = model->createReaction();
  reaction->setId("J10");
  reaction->setReversible(false);
  reaction->setFast(false);
  reactant = reaction->createReactant();
  reactant->setSpecies("Node7");
  reactant->setStoichiometry(1);
  reactant->setConstant(true);
  product = reaction->createProduct();
  product->setSpecies("Node9");
  product->setStoichiometry(1);
  product->setConstant(true);

  //
  // Get a FbcModelPlugin object plugged in the model object.
  //
  // The type of the returned value of SBase::getPlugin() function is
  // SBasePlugin*, and thus the value needs to be casted for the
  // corresponding derived class.
  //
  FbcModelPlugin* mplugin
      = static_cast<FbcModelPlugin*>(model->getPlugin("fbc"));

  FluxBound* bound= mplugin->createFluxBound();

  bound->setId("bound1");
  bound->setReaction("J0");
  bound->setOperation("equal");
  bound->setValue(10);

  Objective* objective = mplugin->createObjective();
  objective->setId("obj1");
  objective->setType("maximize");

  // mark obj1 as active objective
  mplugin->setActiveObjectiveId("obj1");

  FluxObjective* fluxObjective = objective->createFluxObjective();
  fluxObjective->setReaction("J8");
  fluxObjective->setCoefficient(1);

  writeSBML(document,"fbc_example1.xml");
  delete document;
}
コード例 #4
0
ファイル: example1.cpp プロジェクト: kirichoi/roadrunner
LIBSBML_CPP_NAMESPACE_USE

int main(int argc,char** argv){

//
// Creates an SBMLNamespaces object with the given SBML level, version
// package name, package version.
//
// (NOTE) By defualt, the name of package (i.e. "groups") will be used
// if the arugment for the prefix is missing or empty. Thus the argument
// for the prefix can be added as follows:
//
//    SBMLNamespaces sbmlns(3,1,"groups",1,"GROUP");
//

SBMLNamespaces sbmlns(3,1,"groups",1);

//
// (NOTES) The above code creating an SBMLNamespaces object can be replaced 
//         with one of the following other styles.
//
// (1) Creates an SBMLNamespace object with a SBML core namespace and then
//     adds a groups package namespace to the object. 
//
//         SBMLNamespaces sbmlns(3,1);
//         sbmlns.addPkgNamespace("groups",1);
//
//          OR
//
//         SBMLNamespaces sbmlns(3,1);
//         sbmlns.addNamespace(GroupsExtension::XmlnsL3V1V1,"groups");
//
// (2) Creates a GroupsPkgNamespaces object (SBMLNamespace derived class for
//     groups package. The class is basically used for createing an SBase derived
//     objects defined in the groups package) with the given SBML level, version, 
//     and package version
//
//        GroupsPkgNamespaces sbmlns(3,1,1);
//     


// create the document

SBMLDocument *document = new SBMLDocument(&sbmlns);

// create the Model

Model* model=document->createModel();

// create the Compartment

Compartment* compartment = model->createCompartment();
compartment->setId("cytosol");
compartment->setConstant(true);

compartment=model->createCompartment();
compartment->setId("mitochon");
compartment->setConstant(true);

// create the Species

Species* species = model->createSpecies();
species->setId("ATPc");
species->setCompartment("cytosol");
species->setInitialConcentration(1);
species->setHasOnlySubstanceUnits(false);
species->setBoundaryCondition(false);
species->setConstant(false);

species = model->createSpecies();
species->setId("ATPm");
species->setCompartment("mitochon");
species->setInitialConcentration(2);
species->setHasOnlySubstanceUnits(false);
species->setBoundaryCondition(false);
species->setConstant(false);

// create the Groups

//
// Get a GroupsModelPlugin object plugged in the model object.
//
// The type of the returned value of SBase::getPlugin() function is SBasePlugin*, and
// thus the value needs to be casted for the corresponding derived class. 
//
GroupsModelPlugin* mplugin = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));

//
// Creates a Group object via GroupsModelPlugin object.
//
Group* group = mplugin->createGroup();

group->setId("ATP");
group->setKind(GROUP_KIND_CLASSIFICATION);
group->setSBOTerm("SBO:0000252");

Member* member = group->createMember();
member->setIdRef("ATPc");

member = group->createMember();
member->setIdRef("ATPm");

writeSBML(document,"groups_example1.xml");
delete document;

}