00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _SBMLWRITER_H
00018 #define _SBMLWRITER_H
00019 #ifdef USE_SBML
00020 #include <sbml/SBMLTypes.h>
00021
00022 class SbmlWriter
00023 {
00024
00025 public:
00026 SbmlWriter() {;}
00027 ~SbmlWriter() {;}
00028 int write( string filename, string location );
00029 #ifdef USE_SBML
00030 void createModel( string filename, SBMLDocument& doc ,string target);
00031 bool validateModel(SBMLDocument* sbmlDoc );
00032 bool writeModel( const SBMLDocument* sbmlDoc, const string& filename );
00033
00034 private:
00035 vector < string >nameList_;
00036 Model* cremodel_;
00037 string nameString( string str );
00038 string nameString1( string str );
00039 string changeName( string parent,string child );
00040 string idBeginWith(string name );
00041 string cleanNameId( Id itrid,int index);
00042 string parmUnit( double rct_order );
00043 void getSubPrd(Reaction* rec,string type,string enztype,Id itrRE, int index,ostringstream& rate_law,double &rct_order,bool w, string re_enClass);
00044 void getModifier(ModifierSpeciesReference* mspr,vector < Id> mod, int index,ostringstream& rate_law,double &rct_order,bool w);
00045 void printParameters( KineticLaw* kl,string k,double kvalue,string unit );
00046 string findNotes(Id itr);
00047 string getGroupinfo(Id itr);
00048 #endif
00049 };
00050
00051 #endif //USE_SBML
00052 #endif // _SBMLWRITER_H