libSBML C++ API  5.20.2
groups_example1.cpp

Simple example of writing a model that uses the SBML Level 3 Groups package.

/**
* @file example1.cpp
* @brief SBML Groups example
* @author Akiya Jouraku
*
* $Id: example1.cpp 13540 2011-04-08 22:12:58Z fbergmann $
* $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/examples/groups/example1.cpp $
*
* This file is part of libSBML. Please visit http://sbml.org for more
* information about SBML, and the latest version of libSBML.
*/
#include "sbml/SBMLTypes.h"
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);
document->setPackageRequired("groups", false);
// 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->setHasOnlySubstanceUnits(false);
species->setBoundaryCondition(false);
species->setConstant(false);
species = model->createSpecies();
species->setId("ATPm");
species->setCompartment("mitochon");
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->setSBOTerm("SBO:0000252");
Member* member = group->createMember();
member->setIdRef("ATPc");
member = group->createMember();
member->setIdRef("ATPm");
writeSBML(document,"groups_example1.xml");
delete document;
}
@ GROUP_KIND_CLASSIFICATION
Definition: GroupsExtension.h:405
Definition of GroupsExtensionTypes.
Include all SBML types in a single header file.
int writeSBML(const SBMLDocument_t *d, const char *filename)
Writes the given SBML document d to the file named by filename.
Definition: Compartment.h:490
int setConstant(bool value)
Sets the value of the "constant" attribute of this Compartment object.
Definition: Compartment.cpp:661
virtual int setId(const std::string &sid)
Sets the value of the "id" attribute of this Compartment object.
Definition: Compartment.cpp:479
Definition: Group.h:177
Member * createMember()
Creates a new Member object, adds it to this Group object and returns the Member object created.
Definition: Group.cpp:448
int setKind(const GroupKind_t kind)
Sets the value of the "kind" attribute of this Group.
Definition: Group.cpp:234
virtual int setId(const std::string &id)
Sets the value of the "id" attribute of this Group.
Definition: Group.cpp:213
Definition: GroupsModelPlugin.h:66
Group * createGroup()
Creates a new Group object, adds it to this GroupsModelPlugin object and returns the Group object cre...
Definition: GroupsModelPlugin.cpp:232
Definition: Member.h:85
int setIdRef(const std::string &idRef)
Sets the value of the "idRef" attribute of this Member.
Definition: Member.cpp:239
Definition: Model.h:485
Species * createSpecies()
Creates a new Species inside this Model and returns it.
Definition: Model.cpp:1586
Compartment * createCompartment()
Creates a new Compartment inside this Model and returns it.
Definition: Model.cpp:1558
Definition: SBMLDocument.h:349
int setPackageRequired(const std::string &package, bool flag)
Sets the required attribute value of the given package extension.
Definition: SBMLDocument.cpp:1414
Model * createModel(const std::string sid="")
Creates a new Model inside this SBMLDocument, and returns a pointer to it.
Definition: SBMLDocument.cpp:627
Definition: SBMLNamespaces.h:145
virtual int setSBOTerm(int value)
Sets the value of the "sboTerm" attribute.
Definition: SBase.cpp:2515
SBasePlugin * getPlugin(const std::string &package)
Returns a plug-in object (extension interface) for an SBML Level&#160;3 package extension with the given p...
Definition: SBase.cpp:3530
Definition: Species.h:429
int setCompartment(const std::string &sid)
Sets the "compartment" attribute of this Species object.
Definition: Species.cpp:661
int setConstant(bool value)
Sets the "constant" attribute of this Species object.
Definition: Species.cpp:820
int setBoundaryCondition(bool value)
Sets the "boundaryCondition" attribute of this Species object.
Definition: Species.cpp:787
int setInitialConcentration(double value)
Sets the "initialConcentration" attribute of this Species and marks the field as set.
Definition: Species.cpp:695
virtual int setId(const std::string &sid)
Sets the value of the "id" attribute of this Species.
Definition: Species.cpp:591
int setHasOnlySubstanceUnits(bool value)
Sets the "hasOnlySubstanceUnits" attribute of this Species object.
Definition: Species.cpp:767