/** @page libsbml-example-files Additional complete examples
@tableofcontents
The libSBML distribution comes with the following selection of
complete example programs in the top-level file directory
named examples/c++.
@section simple-programs Simple programs
@li @ref echoSBML.cpp "echoSBML.cpp":
Echos (and in the process, pretty prints) an SBML model.
@li @ref readSBML.cpp "readSBML.cpp":
A simple command-line program that reads an SBML file and prints
some statistics about it.
@li @ref printSBML.cpp "printSBML.cpp":
Prints information about the top-level model in the given SBML file.
@li @ref printRegisteredPackages.cpp "printRegisteredPackages.cpp":
Prints the SBML Level 3 packages registered/installed in this copy of libSBML.
@li @ref printSupported.cpp "printSupported.cpp":
Prints the supported SBML Levels and Versions for this copy of libSBML.
@section advanced-programs More advanced programs
@li @ref addCVTerms.cpp "addCVTerms.cpp":
Adds controlled vocabulary terms to a species in a model.
@li @ref addCustomValidator.cpp "addCustomValidator.cpp":
Example of creating a custom validator to be called during validation.
@li @ref addModelHistory.cpp "addModelHistory.cpp":
Adds a model history to a model.
@li @ref addingEvidenceCodes_1.cpp "addingEvidenceCodes_1.cpp":
Adds controlled vocabulary terms to a reaction in a model.
@li @ref addingEvidenceCodes_2.cpp "addingEvidenceCodes_2.cpp":
Adds evidence codes to a species in a model.
@li @ref appendAnnotation.cpp "appendAnnotation.cpp":
Adds annotation strings to a model and a species.
@li @ref callExternalValidator.cpp "callExternalValidator.cpp":
Example that shows how to call an external program for validation.
@li @ref convertSBML.cpp "convertSBML.cpp":
Example demonstrating how to convert SBML documents between SBML Levels.
@li @ref createExampleSBML.cpp "createExampleSBML.cpp":
Lengthy example of creating SBML models presented in the SBML specification.
@li @ref getAllElementsWithNotes.cpp "getAllElementsWithNotes.cpp":
Demonstrates how to use the element filter class to search the model
for elements with specific attributes .
@li @ref inlineFunctionDefintions.cpp "inlineFunctionDefintions.cpp":
Loads an SBML File and inlines all the function definitions found in
the model.
@li @ref printAnnotation.cpp "printAnnotation.cpp":
Prints the annotation strings for each element in a given model.
@li @ref printMath.cpp "printMath.cpp":
Prints the rule, reaction, and event formulas in a given SBML document.
@li @ref printNotes.cpp "printNotes.cpp":
Prints the notes strings for each element in a given model.
@li @ref printRegisteredPackages.cpp "printRegisteredPackages.cpp":
A command-line program that prints the package plug-ins that are
registered with this copy of libSBML.
@li @ref printUnits.cpp "printUnits.cpp":
A command-line program that prints information about the units
of measurement used in a given SBML file.
@li @ref promoteParameters.cpp "promoteParameters.cpp":
Promote all local parameters in the model to global parameters.
@li @ref renameSId.cpp "renameSId.cpp":
Program that renames a specific SId and updates all references to it
in a given model.
@li @ref rngvalidator.cpp "rngvalidator.cpp":
Example of creating a RELAX NG (RNG) validator to be called during validation.
@li @ref setIdFromNames.cpp "setIdFromNames.cpp":
Program that renames all SIds that also have names specified. The new
identifiers will be derived from the name, with all invalid characters removed.
@li @ref setNamesFromIds.cpp "setNamesFromIds.cpp":
Program that changes all objects' "name" attribute values to match
their "id" attribute values.
@li @ref stripPackage.cpp "stripPackage.cpp":
Strips the given SBML Level 3 package from the given SBML file.
@li @ref translateL3Math.cpp "translateL3Math.cpp":
Translates infix formulas into MathML and vice-versa, using the SBML
Level 3 parser instead of the old Level 1 parser.
@li @ref translateMath.cpp "translateMath.cpp":
Translates infix formulas into MathML and vice-versa.
@li @ref unsetAnnotation.cpp "unsetAnnotation.cpp":
Unsets the annotation for each element in the given SBML file.
@li @ref unsetNotes.cpp "unsetNotes.cpp":
Unsets the notes for each element in the given SBML file.
@li @ref validateSBML.cpp "validateSBML.cpp":
Validates one or more SBML files.
@section package-programs Programs using SBML Level 3 packages
The following examples use specific libSBML plug-ins to support SBML
Level 3 packages. The use of these packages requires your copy
of libSBML to have been configured to enable the appropriate plug-in. The
default installation of libSBML comes with the packages below already
enabled, but beware that if you built libSBML from source code and
disabled one or more of these packages, then their features will not
be available.
@subsection package-fbc-examples Package: Flux Balance Constraints
The Flux Balance Constraints package has
the nickname “fbc”. The libSBML classes that implement
this package are marked with the symbol @htmlinclude
pkg-marker-fbc.html@~ in the libSBML documentation.
@li @ref fbc_example1.cpp "fbc_example1.cpp":
Simple example of writing a model that uses the SBML Level 3 Flux
Balance Constraints package.
@li @ref convertCobraToFbc.cpp "convertCobraToFbc.cpp":
Example of converting a COBRA-style SBML Level 2 model to SBML
Level 3 using the Flux Balance Constraints package.
@li @ref convertFbcToCobra.cpp "convertFbcToCobra.cpp":
Example of converting an SBML Level 3 model using the Flux
Balance Constraints package to a COBRA-style SBML Level 2 model.
@subsection package-groups-examples Package: Groups
The Groups
package has the nickname “groups”. The libSBML classes that
implement this package are marked with the symbol @htmlinclude
pkg-marker-groups.html@~ in the libSBML documentation.
@li @ref groups_example1.cpp "groups_example1.cpp":
Simple example of writing a model that uses the SBML Level 3
Groups package.
@li @ref groups_example2.cpp "groups_example2.cpp":
Simple example of writing a model that uses the SBML Level 3
Groups package and also the SBML Level 3 Layout package.
@subsection package-comp-examples Package: Hierarchical Model Composition
The Hierarchical Model Composition
package has the nickname “comp”. The libSBML classes that
implement this package are marked with the symbol @htmlinclude
pkg-marker-comp.html@~ in the libSBML documentation.
@li @ref flattenModel.cpp "flattenModel.cpp": %Model flattening
example.
@li @ref spec_example1.cpp "spec_example1.cpp":
Example #1 from the SBML Level 3 Hierarchical %Model Composition specification.
@li @ref spec_example2.cpp "spec_example2.cpp":
Example #2 from the SBML Level 3 Hierarchical %Model Composition specification.
@li @ref spec_example3.cpp "spec_example3.cpp":
Example #3 from the SBML Level 3 Hierarchical %Model Composition specification.
@li @ref spec_example4.cpp "spec_example4.cpp": Example #4 from the
SBML Level 3 Hierarchical %Model Composition specification.
@li @ref SBMLHttpResolverExample.cpp "SBMLHttpResolverExample.cpp":
Example of the definition and use of an SBMLHttpResolver for working
with SBML “comp” files.
@subsection package-layout-examples Package: Layout
The Layout package has the nickname
“layout”. The libSBML classes that implement this package
are marked with the symbol @htmlinclude pkg-marker-layout.html@~ in the
libSBML documentation.
@li @ref addLayout.cpp "addLayout.cpp":
Simple example of using the SBML graphical layout specification,
in both Level 2 and Level 3.
@li @ref convertLayout.cpp "convertLayout.cpp":
Converts SBML Layout and Render data from SBML Level 2 to
Level 3 and vice versa.
@li @ref example1.cpp "example1.cpp":
An example layout.
@li @ref example1-L3.cpp "example1-L3.cpp":
A version of example1.cpp for SBML Level 3.
@li @ref example2.cpp "example2.cpp":
An example layout.
@li @ref example2-L3.cpp "example2-L3.cpp":
A version of example2.cpp for SBML Level 3.
@li @ref example3.cpp "example3.cpp":
An example layout.
@li @ref example3-L3.cpp "example3-L3.cpp":
A version of example3.cpp for SBML Level 3.
@subsection package-qual-examples Package: Qualitative Models
The Qualitative Models package has the
nickname “qual”. The libSBML classes that implement this
package are marked with the symbol @htmlinclude
pkg-marker-qual.html@~ in the libSBML documentation.
@li @ref qual_example1.cpp "qual_example1.cpp":
An example of creating a model using SBML Level 3 Qualitative Models.
@example addCVTerms.cpp Adds controlled vocabulary terms to a species
in a model.
@example addCustomValidator.cpp Example of creating a custom validator
to be called during validation.
@example addModelHistory.cpp Adds a model history to a model.
@example addingEvidenceCodes_1.cpp Adds controlled vocabulary terms to
a reaction in a model.
@example addingEvidenceCodes_2.cpp Adds evidence codes to a species in
a model.
@example appendAnnotation.cpp Adds annotation strings to a model and a
species.
@example callExternalValidator.cpp Example that shows how to call an
external program for validation.
@example convertSBML.cpp Example demonstrating how to convert SBML
documents between SBML Levels.
@example createExampleSBML.cpp Lengthy example of creating SBML models
presented in the SBML specification.
@example echoSBML.cpp Echos (and in the process, pretty prints) an
SBML model.
@example getAllElementsWithNotes.cpp Demonstrates how to use the
element filter class to search the model for elements with specific
attributes .
@example inlineFunctionDefintions.cpp Loads an SBML File and inlines
all the function definitions found in the model.
@example printAnnotation.cpp Prints the annotation strings for each
element in a given model.
@example printMath.cpp Prints the rule, reaction, and event formulas
in a given SBML document.
@example printNotes.cpp Prints the notes strings for each element in a
given model.
@example printRegisteredPackages.cpp Prints the SBML Level 3 packages
registered/installed in this copy of libSBML.
@example printSBML.cpp Prints information about the top-level model in
the given SBML file.
@example printSupported.cpp Prints the supported SBML Levels and
Versions for this copy of libSBML.
@example printUnits.cpp A command-line program that prints information
about the units of measurement used in a given SBML file.
@example readSBML.cpp A simple command-line program that reads an SBML
file and prints some statistics about it.
@example renameSId.cpp Program that renames a specific SId and updates
all references to it in a given model.
@example rngvalidator.cpp Example of creating a RELAX NG (RNG)
validator to be called during validation.
@example setIdFromNames.cpp Program that renames all SIds that also
have names specified. The new identifiers will be derived from the
name, with all invalid characters removed.
@example stripPackage.cpp Strips the given SBML Level 3 package from
the given SBML file.
@example translateL3Math.cpp Translates infix formulas into MathML and
vice-versa, using the SBML Level 3 parser instead of the old
Level 1 parser.
@example translateMath.cpp Translates infix formulas into MathML and
vice-versa.
@example unsetAnnotation.cpp Unsets the annotation for each element in
the given SBML file.
@example unsetNotes.cpp Unsets the notes for each element in the given
SBML file.
@example validateSBML.cpp Validates one or more SBML files.
@example flattenModel.cpp Model flattening example.
@example spec_example1.cpp
Example #1 from the SBML Level 3 Hierarchical Model Composition specification.
@example spec_example2.cpp
Example #2 from the SBML Level 3 Hierarchical Model Composition specification.
@example spec_example3.cpp
Example #3 from the SBML Level 3 Hierarchical Model Composition specification.
@example spec_example4.cpp
Example #4 from the SBML Level 3 Hierarchical Model Composition specification.
@example fbc_example1.cpp
Simple example of writing a model that uses the SBML Level 3 Flux
Balance Constraints package.
@example convertCobraToFbc.cpp
Example of converting a COBRA-style SBML Level 2 model to SBML
Level 3 using the Flux Balance Constraints package.
@example convertFbcToCobra.cpp
Example of converting an SBML Level 3 model using the Flux
Balance Constraints package to a COBRA-style SBML Level 2 model.
@example groups_example1.cpp
Simple example of writing a model that uses the SBML Level 3
Groups package.
@example groups_example2.cpp
Simple example of writing a model that uses the SBML Level 3
Groups package and also the SBML Level 3 Layout package.
@example SBMLHttpResolverExample.cpp
Example of the definition and use of an SBMLHttpResolver for working
with SBML “comp” files.
@example promoteParameters.cpp
Promote all local parameters in the model to global parameters.
@example setNamesFromIds.cpp
Program that changes all objects' "name" attribute values to match
their "id" attribute values.
@example addLayout.cpp
Simple example of using the SBML graphical layout specification,
in both Level 2 and Level 3.
@example convertLayout.cpp
Converts SBML Layout and Render datra from SBML Level 2 to
Level 3 and vice versa.
@example example1.cpp
An example layout.
@example example1-L3.cpp
A version of example1.cpp for SBML Level 3.
@example example2.cpp
An example layout.
@example example2-L3.cpp
A version of example2.cpp for SBML Level 3.
@example example3.cpp
An example layout.
@example example3-L3.cpp
A version of example3.cpp for SBML Level 3.
@example qual_example1.cpp
An example of creating a model using SBML Level 3 Qualitative Models.
*/