Example demonstrating how to convert SBML documents between SBML Levels.
#include <iostream>
using namespace std;
LIBSBML_CPP_NAMESPACE_USE
int
main (int argc, char *argv[])
{
if (argc != 3)
{
cout << "Usage: convertSBML input-filename output-filename" << endl
<< "This program will attempt to convert a model either to" << endl
<< "SBML Level " << latestLevel << " Version " << latestVersion
<< " (if the model is not already) or, if " << endl
<< "the model is already expressed in Level " << latestLevel
<< " Version " << latestVersion << ", this" << endl
<< "program will attempt to convert the model to Level 1 Version 2."
<< endl;
return 1;
}
const char* inputFile = argv[1];
const char* outputFile = argv[2];
if (errors > 0)
{
cerr << "Encountered the following SBML errors:" << endl;
cerr << "Conversion skipped. Please correct the problems above first."
<< endl;
return errors;
}
unsigned int olevel = document->
getLevel();
bool success;
if (olevel < latestLevel || oversion < latestVersion)
{
cout << "Attempting to convert Level " << olevel << " Version " << oversion
<< " model to Level " << latestLevel
<< " Version " << latestVersion << "." << endl;
}
else
{
cout << "Attempting to convert Level " << olevel << " Version " << oversion
<< " model to Level 1 Version 2." << endl;
}
if (!success)
{
cerr << "Unable to perform conversion due to the following:" << endl;
cout << endl;
cout << "Conversion skipped. Either libSBML does not (yet)" << endl
<< "have the ability to convert this model or (automatic)" << endl
<< "conversion is not possible in this case." << endl;
delete document;
return errors;
}
if (errors > 0)
{
cout << "Information may have been lost in conversion; but a valid model ";
cout << "was produced by the conversion.\nThe following information ";
cout << "was provided:\n";
}
else
{
cout << "Conversion completed." << endl;
}
delete document;
return 0;
}
SBMLDocument_t * readSBML(const char *filename)
Reads an SBML document from the given file.
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: SBMLDocument.h:351
unsigned int getNumErrors() const
Returns the number of errors or warnings encountered during parsing, consistency checking,...
Definition: SBMLDocument.cpp:1169
static unsigned int getDefaultVersion()
The default Version of new SBMLDocument objects.
Definition: SBMLDocument.cpp:111
void printErrors(std::ostream &stream=std::cerr) const
Prints all the errors or warnings encountered trying to parse, check, or translate this SBML document...
Definition: SBMLDocument.cpp:1192
static unsigned int getDefaultLevel()
The default SBML Level of new SBMLDocument objects.
Definition: SBMLDocument.cpp:94
bool setLevelAndVersion(unsigned int level, unsigned int version, bool strict=true, bool ignorePackages=false)
Sets the SBML Level and Version of this SBMLDocument instance, attempting to convert the model as nee...
Definition: SBMLDocument.cpp:526
unsigned int getVersion() const
Returns the Version within the SBML Level of the SBMLDocument object containing this object.
Definition: SBase.cpp:3142
unsigned int getLevel() const
Returns the SBML Level of the SBMLDocument object containing this object.
Definition: SBase.cpp:3127