00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _READCSPACE_H
00011 #define _READCSPACE_H
00012
00013 class CspaceMolInfo
00014 {
00015 public:
00016 CspaceMolInfo( char name, double conc )
00017 : name_( name ), conc_( conc )
00018 {
00019 ;
00020 }
00021 CspaceMolInfo( )
00022 : name_( 'a' ), conc_( 0.0 )
00023 {
00024 ;
00025 }
00026
00027 bool operator<( const CspaceMolInfo& other ) const
00028 {
00029 return ( name_ < other.name_ );
00030 }
00031
00032 double conc() {
00033 return conc_;
00034 }
00035 private:
00036 char name_;
00037 double conc_;
00038 };
00039
00040 class CspaceReacInfo
00041 {
00042 public:
00043 CspaceReacInfo( const string& name, double r1, double r2 )
00044 : name_( name ), r1_( r1 ), r2_( r2 )
00045 {
00046 ;
00047 }
00048 CspaceReacInfo( )
00049 : name_( "" ), r1_( 0.1 ), r2_( 0.1 )
00050 {
00051 ;
00052 }
00053
00054 bool operator<( const CspaceReacInfo& other ) const
00055 {
00056 return ( name_ < other.name_ );
00057 }
00058
00059 string name() {
00060 return name_;
00061 }
00062 double r1() {
00063 return r1_;
00064 }
00065 double r2() {
00066 return r2_;
00067 }
00068 private:
00069 string name_;
00070 double r1_;
00071 double r2_;
00072 };
00073
00074 class ReadCspace
00075 {
00076 public:
00077 ReadCspace();
00078
00079 void printHeader();
00080 void printFooter();
00081
00082
00083 void printMol(Id id, double conc, double concinit, double vol);
00084
00085 void printReac( Id id, double kf, double kb);
00086
00087 void printEnz( Id id, Id cplx, double k1, double k2, double k3);
00088
00089 Id readModelString( const string& model,
00090 const string& modelname, Id pa, const string& solverClass );
00091
00092 void makePlots( double plotdt );
00093
00094 void build( const char* name );
00095 void expandEnzyme(
00096 const char* name, int e, int s, int p, int p2 = 0);
00097 void expandReaction( const char* name, int nm1 );
00098
00099 void deployParameters();
00100 void testReadModel( );
00101
00102 void makeMolecule( char name );
00103
00104 private:
00105 static const double SCALE;
00106 static const double DEFAULT_CONC;
00107 static const double DEFAULT_RATE;
00108 static const double DEFAULT_KM;
00109 static const bool USE_PIPE;
00110
00111 Id base_;
00112 Id compt_;
00113 Id mesh_;
00114 ostream* fout_;
00115
00116
00117 vector< Id > mol_;
00118 vector< unsigned int > molseq_;
00119
00120 vector< Id > reac_;
00121
00122 vector< double > parms_;
00123
00124 vector< double > molparms_;
00125
00126 vector< CspaceMolInfo > mollist_;
00127 vector< CspaceReacInfo > reaclist_;
00128 };
00129
00130 #endif // _READCSPACE_H