00001
00002
00004
00005 #include "CombinatorialNetwork.h"
00006 #include <iostream>
00007
00009
00011
00012 CCombinatorialNetwork::CCombinatorialNetwork()
00013 {
00014
00015
00016 Chemical *IPTG = new Chemical(chemicals.size(), 0.0, "IPTG");
00017 chemicals.push_back(IPTG);
00018
00019 Chemical *aTc = new Chemical(chemicals.size(), 0.0, "aTc");
00020 chemicals.push_back(aTc);
00021
00022
00023 Chemical *GFP = new Chemical(chemicals.size(),0.0,"GFP");
00024 chemicals.push_back(GFP);
00025
00026 Chemical *cI = new Chemical(chemicals.size(),0.0,"cI");
00027 chemicals.push_back(cI);
00028
00029 Chemical *FreeTetR = new Chemical(chemicals.size(),0.0,"FreeTetR");
00030 chemicals.push_back(FreeTetR);
00031
00032 Chemical *BoundTetR = new Chemical(chemicals.size(),0.0,"BoundTetR");
00033 chemicals.push_back(BoundTetR);
00034
00035 Chemical *FreeLacI = new Chemical(chemicals.size(),0.0,"FreeLacI");
00036 chemicals.push_back(FreeLacI);
00037
00038 Chemical *BoundLacI = new Chemical(chemicals.size(),0.0,"BoundLacI");
00039 chemicals.push_back(BoundLacI);
00040
00041
00042
00043 Chemical *lacIBoundPromoter = new Chemical(chemicals.size(),0.0,"lacIBoundPromoter");
00044 chemicals.push_back(lacIBoundPromoter);
00045
00046 Chemical *lacIFreePromoter = new Chemical(chemicals.size(),4.0,"lacIFreePromoter");
00047 chemicals.push_back(lacIFreePromoter);
00048
00049
00050 Chemical *cIBoundPromoter = new Chemical(chemicals.size(),0.0,"cIBoundPromoter");
00051 chemicals.push_back(cIBoundPromoter);
00052
00053 Chemical *cIFreePromoter = new Chemical(chemicals.size(),4.0,"cIFreePromoter");
00054 chemicals.push_back(cIFreePromoter);
00055
00056
00057 Chemical *tetRBoundPromoter = new Chemical(chemicals.size(),0.0,"tetRBoundPromoter");
00058 chemicals.push_back(tetRBoundPromoter);
00059
00060 Chemical *tetRFreePromoter = new Chemical(chemicals.size(),4.0,"tetRFreePromoter");
00061 chemicals.push_back(tetRFreePromoter);
00062
00063
00064 Chemical *GFPBoundPromoter = new Chemical(chemicals.size(),0.0,"GFPBoundPromoter");
00065 chemicals.push_back(GFPBoundPromoter);
00066
00067 Chemical *GFPFreePromoter = new Chemical(chemicals.size(),4.0,"GFPFreePromoter");
00068 chemicals.push_back(GFPFreePromoter);
00069
00070
00071
00072
00073
00074 RateConstant *kbPcIr = new RateConstant(0.005,"kbPcIr");
00075 rateConstants.push_back(kbPcIr);
00076
00077
00078 RateConstant *kuPcIr = new RateConstant(0.5,"kuPcIr");
00079 rateConstants.push_back(kuPcIr);
00080
00081
00082 RateConstant *kbPcIi = new RateConstant(0.005,"kbPcIi");
00083 rateConstants.push_back(kbPcIi);
00084
00085
00086 RateConstant *kuPcIi = new RateConstant(0.5,"kuPcIi");
00087 rateConstants.push_back(kuPcIi);
00088
00089
00090 RateConstant *kbPtetRr = new RateConstant(0.005,"kbPtetRr");
00091 rateConstants.push_back(kbPtetRr);
00092
00093
00094 RateConstant *kuPtetRr = new RateConstant(0.5,"kuPtetRr");
00095 rateConstants.push_back(kuPtetRr);
00096
00097
00098 RateConstant *kbPlacIr1 = new RateConstant(0.005,"kbPlacIr1");
00099 rateConstants.push_back(kbPlacIr1);
00100
00101
00102 RateConstant *kuPlacIr1 = new RateConstant(0.5,"kuPlacIr1");
00103 rateConstants.push_back(kuPlacIr1);
00104
00105
00106 RateConstant *kbPlacIr2 = new RateConstant(0.005,"kbPlacIr2");
00107 rateConstants.push_back(kbPlacIr2);
00108
00109
00110 RateConstant *kuPlacIr2 = new RateConstant(0.5,"kuPlacIr2");
00111 rateConstants.push_back(kuPlacIr2);
00112
00113
00114 RateConstant *kbaTcTetR = new RateConstant(0.005, "kbaTcTetR");
00115 rateConstants.push_back(kbaTcTetR);
00116
00117
00118 RateConstant *kuaTcTetR = new RateConstant(0.5, "kuaTcTetR");
00119 rateConstants.push_back(kuaTcTetR);
00120
00121
00122 RateConstant *kbIPTGLacI = new RateConstant(0.005,"kbIPTGLacI");
00123 rateConstants.push_back(kbIPTGLacI);
00124
00125
00126 RateConstant *kuIPTGLacI = new RateConstant(0.5,"kuIPTGLacI");
00127 rateConstants.push_back(kuIPTGLacI);
00128
00129
00130 RateConstant *kdcI = new RateConstant(0.5, "kdcI");
00131 rateConstants.push_back(kdcI);
00132
00133
00134 RateConstant *kdTetR = new RateConstant(0.5, "kdTetR");
00135 rateConstants.push_back(kdTetR);
00136
00137
00138 RateConstant *kdLacI = new RateConstant(0.5, "kdLacI");
00139 rateConstants.push_back(kdLacI);
00140
00141
00142 RateConstant *kdGFP = new RateConstant(0.1,"kdGFP");
00143 rateConstants.push_back(kdGFP);
00144
00145
00146
00147
00148 RateConstant *ktcI = new RateConstant(0.5, "ktcI");
00149 rateConstants.push_back(ktcI);
00150
00151
00152 RateConstant *ktTetR = new RateConstant(0.5, "ktTetR");
00153 rateConstants.push_back(ktTetR);
00154
00155
00156 RateConstant *ktLacI = new RateConstant(0.5, "ktLacI");
00157 rateConstants.push_back(ktLacI);
00158
00159
00160 RateConstant *ktGFP = new RateConstant(0.5,"ktGFP");
00161 rateConstants.push_back(ktGFP);
00162
00163
00164
00165 TranscriptionReaction *GFPTranscription = new TranscriptionReaction(GFPFreePromoter, GFP, ktGFP, "GFPTranscription");
00166 reactions.push_back(GFPTranscription);
00167
00168 UnstableProteinDegradationReaction *GFPDegradation = new UnstableProteinDegradationReaction(GFP,kdGFP,"GFPDegradation");
00169 reactions.push_back(GFPDegradation);
00170
00171 HeterodimerizationReaction *GFPPromoterBinding = new HeterodimerizationReaction(GFPFreePromoter,cI,GFPBoundPromoter,kbPcIr,"GFPPromoterBinding");
00172 reactions.push_back(GFPPromoterBinding);
00173
00174 HeterodimerDissociationReaction *GFPPromoterUnbinding = new HeterodimerDissociationReaction(GFPBoundPromoter,GFPFreePromoter,cI,kuPcIr,"GFPPromoterUnbinding");
00175 reactions.push_back(GFPPromoterUnbinding);
00176
00177 UnstableProteinDegradationReaction *cIDegradation = new UnstableProteinDegradationReaction(cI,kdcI,"cIDegradation");
00178 reactions.push_back(cIDegradation);
00179
00180 UnstableProteinDegradationReaction *FreeLacIDegradation = new UnstableProteinDegradationReaction(FreeLacI,kdLacI,"FreeLacIDegradation");
00181 reactions.push_back(FreeLacIDegradation);
00182
00183 UnstableProteinDegradationReaction *FreeTetRDegradation = new UnstableProteinDegradationReaction(FreeTetR,kdTetR,"FreeTetRDegradation");
00184 reactions.push_back(FreeTetRDegradation);
00185
00186 HeterodimerizationReaction *IPTGLacIBinding = new HeterodimerizationReaction(IPTG,FreeLacI,BoundLacI,kbIPTGLacI,"IPTGLacIBinding");
00187 reactions.push_back(IPTGLacIBinding);
00188
00189 HeterodimerDissociationReaction *IPTGLacIUnbinding = new HeterodimerDissociationReaction(BoundLacI,FreeLacI,IPTG,kuIPTGLacI,"IPTGLacIUnbinding");
00190 reactions.push_back(IPTGLacIUnbinding);
00191
00192 HeterodimerizationReaction *aTcTetRBinding = new HeterodimerizationReaction(aTc,FreeTetR,BoundTetR,kbaTcTetR,"aTcTetRBinding");
00193 reactions.push_back(aTcTetRBinding);
00194
00195 HeterodimerDissociationReaction *aTcTetRUnbinding = new HeterodimerDissociationReaction(BoundTetR,FreeTetR,aTc,kuaTcTetR,"aTcTetRUnbinding");
00196 reactions.push_back(aTcTetRUnbinding);
00197
00198
00199
00200 TranscriptionReaction *cITranscriptionFromFreePromoter = new TranscriptionReaction(cIFreePromoter, cI, ktcI, "cITranscriptionFromFreePromoter");
00201 reactions.push_back(cITranscriptionFromFreePromoter);
00202
00203
00204 TranscriptionReaction *cITranscriptionFromBoundPromoter = new TranscriptionReaction(cIBoundPromoter, cI, ktcI, "cITranscriptionFromBoundPromoter");
00205 reactions.push_back(cITranscriptionFromBoundPromoter);
00206
00207
00208 TranscriptionReaction *TetRTranscriptionFromFreePromoter = new TranscriptionReaction(tetRFreePromoter, FreeTetR, ktTetR, "TetRTranscriptionFromFreePromoter");
00209 reactions.push_back(TetRTranscriptionFromFreePromoter);
00210
00211
00212 TranscriptionReaction *TetRTranscriptionFromBoundPromoter = new TranscriptionReaction(tetRBoundPromoter, FreeTetR, ktTetR, "TetRTranscriptionFromBoundPromoter");
00213 reactions.push_back(TetRTranscriptionFromBoundPromoter);
00214
00215
00216 TranscriptionReaction *LacITranscriptionFromFreePromoter = new TranscriptionReaction(lacIFreePromoter, FreeLacI, ktLacI, "LacITranscriptionFromFreePromoter");
00217 reactions.push_back(LacITranscriptionFromFreePromoter);
00218
00219
00220 TranscriptionReaction *LacITranscriptionFromBoundPromoter = new TranscriptionReaction(lacIBoundPromoter, FreeLacI, ktLacI, "LacITranscriptionFromBoundPromoter");
00221 reactions.push_back(LacITranscriptionFromBoundPromoter);
00222
00223
00224
00225 HeterodimerizationReaction *BindingcIRepressibleLacIPromoter = new HeterodimerizationReaction(cI, lacIFreePromoter, lacIBoundPromoter, kbPcIr, "BindingcIRepressibleLacIPromoter");
00226 reactions.push_back(BindingcIRepressibleLacIPromoter);
00227
00228 HeterodimerDissociationReaction *UnbindingcIRepressibleLacIPromoter = new HeterodimerDissociationReaction(lacIBoundPromoter, lacIFreePromoter, cI, kuPcIr, "UnbindingcIRepressibleLacIPromoter");
00229 reactions.push_back(UnbindingcIRepressibleLacIPromoter);
00230
00231
00232 HeterodimerizationReaction *BindingcIInducibleLacIPromoter = new HeterodimerizationReaction(cI, lacIFreePromoter, lacIBoundPromoter, kbPcIi, "BindingcIInducibleLacIPromoter");
00233 reactions.push_back(BindingcIInducibleLacIPromoter);
00234
00235 HeterodimerDissociationReaction *UnbindingcIInducibleLacIPromoter = new HeterodimerDissociationReaction(lacIBoundPromoter, lacIFreePromoter, cI, kuPcIi, "UnbindingcIInducibleLacIPromoter");
00236 reactions.push_back(UnbindingcIInducibleLacIPromoter);
00237
00238
00239 HeterodimerizationReaction *BindingTetRRepressibleLacIPromoter = new HeterodimerizationReaction(FreeTetR, lacIFreePromoter, lacIBoundPromoter, kbPtetRr, "BindingTetRRepressibleLacIPromoter");
00240 reactions.push_back(BindingTetRRepressibleLacIPromoter);
00241
00242 HeterodimerDissociationReaction *UnbindingTetRRepressibleLacIPromoter = new HeterodimerDissociationReaction(lacIBoundPromoter, lacIFreePromoter, FreeTetR, kuPcIi, "UnbindingTetRRepressibleLacIPromoter");
00243 reactions.push_back(UnbindingTetRRepressibleLacIPromoter);
00244
00245
00246 HeterodimerizationReaction *BindingLacIRepressible1LacIPromoter = new HeterodimerizationReaction(FreeLacI, lacIFreePromoter, lacIBoundPromoter, kbPlacIr1, "BindingLacIRepressible1LacIPromoter");
00247 reactions.push_back(BindingLacIRepressible1LacIPromoter);
00248
00249 HeterodimerDissociationReaction *UnbindingLacIRepressible1LacIPromoter = new HeterodimerDissociationReaction(lacIBoundPromoter, lacIFreePromoter, FreeLacI, kuPlacIr1, "UnbindingLacIRepressible1LacIPromoter");
00250 reactions.push_back(UnbindingLacIRepressible1LacIPromoter);
00251
00252
00253 HeterodimerizationReaction *BindingLacIRepressible2LacIPromoter = new HeterodimerizationReaction(FreeLacI, lacIFreePromoter, lacIBoundPromoter, kbPlacIr2, "BindingLacIRepressible2LacIPromoter");
00254 reactions.push_back(BindingLacIRepressible2LacIPromoter);
00255
00256 HeterodimerDissociationReaction *UnbindingLacIRepressible2LacIPromoter = new HeterodimerDissociationReaction(lacIBoundPromoter, lacIFreePromoter, FreeLacI, kuPlacIr2, "UnbindingLacIRepressible2LacIPromoter");
00257 reactions.push_back(UnbindingLacIRepressible2LacIPromoter);
00258
00259
00260
00261 HeterodimerizationReaction *BindingcIRepressibleTetRPromoter = new HeterodimerizationReaction(cI, tetRFreePromoter, tetRBoundPromoter, kbPcIr, "BindingcIRepressibleTetRPromoter");
00262 reactions.push_back(BindingcIRepressibleTetRPromoter);
00263
00264 HeterodimerDissociationReaction *UnbindingcIRepressibleTetRPromoter = new HeterodimerDissociationReaction(tetRBoundPromoter, tetRFreePromoter, cI, kuPcIr, "UnbindingcIRepressibleTetRPromoter");
00265 reactions.push_back(UnbindingcIRepressibleTetRPromoter);
00266
00267
00268 HeterodimerizationReaction *BindingcIInducibleTetRPromoter = new HeterodimerizationReaction(cI, tetRFreePromoter, tetRBoundPromoter, kbPcIi, "BindingcIInducibleTetRPromoter");
00269 reactions.push_back(BindingcIInducibleTetRPromoter);
00270
00271 HeterodimerDissociationReaction *UnbindingcIInducibleTetRPromoter = new HeterodimerDissociationReaction(tetRBoundPromoter, tetRFreePromoter, cI, kuPcIi, "UnbindingcIInducibleTetRPromoter");
00272 reactions.push_back(UnbindingcIInducibleTetRPromoter);
00273
00274
00275 HeterodimerizationReaction *BindingTetRRepressibleTetRPromoter = new HeterodimerizationReaction(FreeTetR, tetRFreePromoter, tetRBoundPromoter, kbPtetRr, "BindingTetRRepressibleTetRPromoter");
00276 reactions.push_back(BindingTetRRepressibleTetRPromoter);
00277
00278 HeterodimerDissociationReaction *UnbindingTetRRepressibleTetRPromoter = new HeterodimerDissociationReaction(tetRBoundPromoter, tetRFreePromoter, FreeTetR, kuPcIi, "UnbindingTetRRepressibleTetRPromoter");
00279 reactions.push_back(UnbindingTetRRepressibleTetRPromoter);
00280
00281
00282 HeterodimerizationReaction *BindingLacIRepressible1TetRPromoter = new HeterodimerizationReaction(FreeLacI, tetRFreePromoter, tetRBoundPromoter, kbPlacIr1, "BindingLacIRepressible1TetRPromoter");
00283 reactions.push_back(BindingLacIRepressible1TetRPromoter);
00284
00285 HeterodimerDissociationReaction *UnbindingLacIRepressible1TetRPromoter = new HeterodimerDissociationReaction(tetRBoundPromoter, tetRFreePromoter, FreeLacI, kuPlacIr1, "UnbindingLacIRepressible1TetRPromoter");
00286 reactions.push_back(UnbindingLacIRepressible1TetRPromoter);
00287
00288
00289 HeterodimerizationReaction *BindingLacIRepressible2TetRPromoter = new HeterodimerizationReaction(FreeLacI, tetRFreePromoter, tetRBoundPromoter, kbPlacIr2, "BindingLacIRepressible2TetRPromoter");
00290 reactions.push_back(BindingLacIRepressible2TetRPromoter);
00291
00292 HeterodimerDissociationReaction *UnbindingLacIRepressible2TetRPromoter = new HeterodimerDissociationReaction(tetRBoundPromoter, tetRFreePromoter, FreeLacI, kuPlacIr2, "UnbindingLacIRepressible2TetRPromoter");
00293 reactions.push_back(UnbindingLacIRepressible2TetRPromoter);
00294
00295
00296
00297 HeterodimerizationReaction *BindingcIRepressiblecIPromoter = new HeterodimerizationReaction(cI, cIFreePromoter, cIBoundPromoter, kbPcIr, "BindingcIRepressiblecIPromoter");
00298 reactions.push_back(BindingcIRepressiblecIPromoter);
00299
00300 HeterodimerDissociationReaction *UnbindingcIRepressiblecIPromoter = new HeterodimerDissociationReaction(cIBoundPromoter, cIFreePromoter, cI, kuPcIr, "UnbindingcIRepressiblecIPromoter");
00301 reactions.push_back(UnbindingcIRepressiblecIPromoter);
00302
00303
00304 HeterodimerizationReaction *BindingcIInduciblecIPromoter = new HeterodimerizationReaction(cI, cIFreePromoter, cIBoundPromoter, kbPcIi, "BindingcIInduciblecIPromoter");
00305 reactions.push_back(BindingcIInduciblecIPromoter);
00306
00307 HeterodimerDissociationReaction *UnbindingcIInduciblecIPromoter = new HeterodimerDissociationReaction(cIBoundPromoter, cIFreePromoter, cI, kuPcIi, "UnbindingcIInduciblecIPromoter");
00308 reactions.push_back(UnbindingcIInduciblecIPromoter);
00309
00310
00311 HeterodimerizationReaction *BindingTetRRepressiblecIPromoter = new HeterodimerizationReaction(FreeTetR, cIFreePromoter, cIBoundPromoter, kbPtetRr, "BindingTetRRepressiblecIPromoter");
00312 reactions.push_back(BindingTetRRepressiblecIPromoter);
00313
00314 HeterodimerDissociationReaction *UnbindingTetRRepressiblecIPromoter = new HeterodimerDissociationReaction(cIBoundPromoter, cIFreePromoter, FreeTetR, kuPcIi, "UnbindingTetRRepressiblecIPromoter");
00315 reactions.push_back(UnbindingTetRRepressiblecIPromoter);
00316
00317
00318 HeterodimerizationReaction *BindingLacIRepressible1cIPromoter = new HeterodimerizationReaction(FreeLacI, cIFreePromoter, cIBoundPromoter, kbPlacIr1, "BindingLacIRepressible1cIPromoter");
00319 reactions.push_back(BindingLacIRepressible1cIPromoter);
00320
00321 HeterodimerDissociationReaction *UnbindingLacIRepressible1cIPromoter = new HeterodimerDissociationReaction(cIBoundPromoter, cIFreePromoter, FreeLacI, kuPlacIr1, "UnbindingLacIRepressible1cIPromoter");
00322 reactions.push_back(UnbindingLacIRepressible1cIPromoter);
00323
00324
00325 HeterodimerizationReaction *BindingLacIRepressible2cIPromoter = new HeterodimerizationReaction(FreeLacI, cIFreePromoter, cIBoundPromoter, kbPlacIr2, "BindingLacIRepressible2cIPromoter");
00326 reactions.push_back(BindingLacIRepressible2cIPromoter);
00327
00328 HeterodimerDissociationReaction *UnbindingLacIRepressible2cIPromoter = new HeterodimerDissociationReaction(cIBoundPromoter, cIFreePromoter, FreeLacI, kuPlacIr2, "UnbindingLacIRepressible2cIPromoter");
00329 reactions.push_back(UnbindingLacIRepressible2cIPromoter);
00330
00331 }
00332
00333 CCombinatorialNetwork::~CCombinatorialNetwork()
00334 {
00335
00336 }