/** @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 “layout”. 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. */