00001 // PC12EGFNGFMinimizableDirector.cpp: implementation of the PC12EGFNGFMinimizableDirector class. 00002 // 00004 00005 #include "PC12EGFNGFMinimizableDirector.h" 00006 00008 // Construction/Destruction 00010 00011 PC12EGFNGFMinimizableDirector::PC12EGFNGFMinimizableDirector() 00012 { 00013 // create networks,experiments,observers,movers,minimizables 00014 double maxSimTime = 91.0; 00015 double stepSize = 0.0001; 00016 double frequency = 1.0; 00017 int nCells = 1; 00018 double moveTol = 1.0e-06; 00019 00020 m_dGammaSquared = 1.0e-07; 00021 00022 // flags for all minimizables 00023 bool rateFlag = true; 00024 bool chemFlag = false; 00025 bool logsFlag = false; 00026 double timeWeight = 1.0; 00027 double rateWeight = 0.0; 00028 double chemWeight = 0.0; 00029 00030 int cnt = 0; 00031 00032 /* 00033 // expt. 1 - EGF at 100 ng/ml, Traverse 1994 data 00034 // networks and data 00035 _networkList.push_back(new SmallErkSubnetwork()); 00036 _experimentList.push_back(new Experiment(_networkList[0],"EGF Stimulation 100 ng/ml - Traverse 1994")); 00037 // put data files here 00038 _experimentList[0]->AddDataFileToList("PerfectEGF100.dat"); 00039 // mover and plotter 00040 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00041 //_plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00042 // title 00043 //_plotterList[0]->SetTitle("Small Erk Subnetwork:EGF Stimulation 100 ng/ml:ODE"); 00044 // minimizable 00045 _minimizableList.push_back(new SingleNetworkMinimizable()); 00046 // parameters 00047 _minimizableList[0]->Initialize(_experimentList[0],_moverList[0],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00048 _minimizableList[0]->SetRateConstantsWeight(0.0); 00049 // attach observer 00050 //_minimizableList[0]->Attach(_plotterList[0]); 00051 00052 00053 // expt. 1 - NGF at 50 ng/ml, Traverse 1994 data 00054 // networks and data 00055 _networkList.push_back(new SmallErkSubnetwork()); 00056 _experimentList.push_back(new Experiment(_networkList[1],"NGF Stimulation 50 ng/ml")); 00057 // data 00058 _experimentList[1]->AddDataFileToList("PerfectNGF50.dat"); 00059 // mover and plotter 00060 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00061 //_plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00062 // title 00063 //_plotterList[1]->SetTitle("Small Erk Subnetwork:NGF Stimulation 50 ng/ml:ODE"); 00064 // minimizable 00065 _minimizableList.push_back(new SingleNetworkMinimizable()); 00066 // parameters 00067 _minimizableList[1]->Initialize(_experimentList[1],_moverList[1],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00068 _minimizableList[1]->SetRateConstantsWeight(0.0); 00069 // attach observer 00070 //_minimizableList[1]->Attach(_plotterList[1]); 00071 */ 00072 /* 00073 // expt. 1 - EGF at 100 ng/ml, Traverse 1994 data 00074 // networks and data 00075 _networkList.push_back(new SmallErkSubnetwork()); 00076 _experimentList.push_back(new Experiment(_networkList[0],"EGF Stimulation 100 ng/ml - Traverse 1994")); 00077 // put data files here 00078 _experimentList[0]->AddDataFileToList("MockExpEGF100.dat"); 00079 // mover and plotter 00080 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00081 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00082 // title 00083 _plotterList[0]->SetTitle("Small Erk Subnetwork:EGF Stimulation 100 ng/ml:ODE"); 00084 // minimizable 00085 _minimizableList.push_back(new SingleNetworkMinimizable()); 00086 // parameters 00087 _minimizableList[0]->Initialize(_experimentList[0],_moverList[0],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00088 _minimizableList[0]->SetRateConstantsWeight(0.0); 00089 // attach observer 00090 _minimizableList[0]->Attach(_plotterList[0]); 00091 00092 00093 // expt. 1 - NGF at 50 ng/ml, Traverse 1994 data 00094 // networks and data 00095 _networkList.push_back(new SmallErkSubnetwork()); 00096 _experimentList.push_back(new Experiment(_networkList[1],"NGF Stimulation 50 ng/ml")); 00097 // data 00098 _experimentList[1]->AddDataFileToList("MockExpNGF50.dat"); 00099 // mover and plotter 00100 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00101 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00102 // title 00103 _plotterList[1]->SetTitle("Small Erk Subnetwork:NGF Stimulation 50 ng/ml:ODE"); 00104 // minimizable 00105 _minimizableList.push_back(new SingleNetworkMinimizable()); 00106 // parameters 00107 _minimizableList[1]->Initialize(_experimentList[1],_moverList[1],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00108 _minimizableList[1]->SetRateConstantsWeight(0.0); 00109 // attach observer 00110 _minimizableList[1]->Attach(_plotterList[1]); 00111 00112 // expt. 3 - EGF at 30 ng/ml 00113 // networks and data 00114 _networkList.push_back(new SmallErkSubnetwork()); 00115 _experimentList.push_back(new Experiment(_networkList[2],"EGF Stimulation 30 ng/ml")); 00116 // put data files here 00117 _experimentList[2]->AddDataFileToList("MockExpEGF30.dat"); 00118 // mover and plotter 00119 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00120 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00121 // title 00122 _plotterList[2]->SetTitle("Small Erk Subnetwork:EGF Stimulation 30 ng/ml:ODE"); 00123 // minimizable 00124 _minimizableList.push_back(new SingleNetworkMinimizable()); 00125 // parameters 00126 _minimizableList[2]->Initialize(_experimentList[2],_moverList[2],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00127 _minimizableList[2]->SetRateConstantsWeight(0.0); 00128 // attach observer 00129 _minimizableList[2]->Attach(_plotterList[2]); 00130 00131 // expt. 4 - NGF at 100 ng/ml 00132 // networks and data 00133 _networkList.push_back(new SmallErkSubnetwork()); 00134 _experimentList.push_back(new Experiment(_networkList[3],"NGF Stimulation 100 ng/ml")); 00135 // data 00136 _experimentList[3]->AddDataFileToList("MockExpNGF100.dat"); 00137 // mover and plotter 00138 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00139 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00140 // title 00141 _plotterList[3]->SetTitle("Small Erk Subnetwork:NGF Stimulation 100 ng/ml:ODE"); 00142 // minimizable 00143 _minimizableList.push_back(new SingleNetworkMinimizable()); 00144 // parameters 00145 _minimizableList[3]->Initialize(_experimentList[3],_moverList[3],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00146 _minimizableList[3]->SetRateConstantsWeight(0.0); 00147 // attach observer 00148 _minimizableList[3]->Attach(_plotterList[3]); 00149 00150 // expt. 5 - EGF at 100 ng/ml + 50-fold overexpression of HER 00151 // networks and data 00152 _networkList.push_back(new SmallErkSubnetwork()); 00153 _experimentList.push_back(new Experiment(_networkList[4],"EGF at 100 ng/ml, 50-fold HER Overexpression")); 00154 // data 00155 _experimentList[4]->AddDataFileToList("MockExpEGF100HEROver.dat"); 00156 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00157 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00158 // title 00159 _plotterList[4]->SetTitle("Small Erk Subnetwork:EGF Stimulation 100 ng/ml + 50-fold HER:ODE"); 00160 // minimizable 00161 _minimizableList.push_back(new SingleNetworkMinimizable()); 00162 // parameters 00163 _minimizableList[4]->Initialize(_experimentList[4],_moverList[4],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00164 _minimizableList[4]->SetRateConstantsWeight(0.0); 00165 // attach observer 00166 _minimizableList[4]->Attach(_plotterList[4]); 00167 */ 00168 00169 // expt. 1 - EGF at 100 ng/ml, Traverse 1994 data 00170 // networks and data 00171 _networkList.push_back(new SmallErkSubnetwork()); 00172 _experimentList.push_back(new Experiment(_networkList[cnt],"EGF Stimulation 100 ng/ml - Traverse 1994")); 00173 // put data files here 00174 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/ErkMekTraverse2EGF.dat"); 00175 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/Raf1LandrethEGF.dat"); 00176 //_experimentList[0]->AddDataFileToList("../DataFiles/TimeSeries/PIP2PIP3DownwardEGF.dat"); 00177 // mover and plotter 00178 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00179 // minimizable 00180 _minimizableList.push_back(new SingleNetworkMinimizable()); 00181 // parameters 00182 _minimizableList[cnt]->Initialize(_experimentList[cnt],_moverList[cnt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00183 _minimizableList[cnt]->SetRateConstantsWeight(0.0); 00184 // attach observer 00185 //_plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00186 //_plotterList[0]->SetTitle("Small Erk Subnetwork:EGF Stimulation (100 ng/ml, T 1994):ODE"); 00187 //_minimizableList[0]->Attach(_plotterList[0]); 00188 cnt++; 00189 00190 // expt. 2 - EGF at 100 ng/ml, Yao 1995 data 00191 // networks and data 00192 _networkList.push_back(new SmallErkSubnetwork()); 00193 _experimentList.push_back(new Experiment(_networkList[cnt],"EGF Stimulation 100 ng/ml - Yao 1995")); 00194 // put data files here 00195 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/Erk1HYaoEGF.dat"); 00196 // mover and plotter 00197 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00198 // minimizable 00199 _minimizableList.push_back(new SingleNetworkMinimizable()); 00200 // parameters 00201 _minimizableList[cnt]->Initialize(_experimentList[cnt],_moverList[cnt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00202 _minimizableList[cnt]->SetRateConstantsWeight(0.0); 00203 // attach observer 00204 //_plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00205 //_plotterList[1]->SetTitle("Small Erk Subnetwork:EGF Stimulation (100 ng/ml, Y 1995):ODE"); 00206 //_minimizableList[1]->Attach(_plotterList[1]); 00207 cnt++; 00208 00209 // expt. 3 - NGF at 50 ng/ml, Traverse 1994 data 00210 // networks and data 00211 _networkList.push_back(new SmallErkSubnetwork()); 00212 _experimentList.push_back(new Experiment(_networkList[cnt],"NGF Stimulation 50 ng/ml - T 1994")); 00213 // data 00214 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/ErkMekTraverse2NGF.dat"); 00215 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/RasGreen1NGF.dat"); 00216 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/Rap1YorkNGF.dat"); 00217 //_experimentList[1]->AddDataFileToList("../DataFiles/TimeSeries/PIP2PIP3DownwardNGF.dat"); 00218 // mover and plotter 00219 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00220 // minimizable 00221 _minimizableList.push_back(new SingleNetworkMinimizable()); 00222 // parameters 00223 _minimizableList[cnt]->Initialize(_experimentList[cnt],_moverList[cnt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00224 // one scaling factor is fixed 00225 _minimizableList[cnt]->GetConversionFactor(11)->SetFactorFixed(true); 00226 _minimizableList[cnt]->GetConversionFactor(11)->SetFactorValue(1.0/(0.2*600000*0.1)); 00227 // THESE TWO LINES FOR PI3K+ 00228 _minimizableList[cnt]->GetConversionFactor(28)->SetFactorFixed(true); 00229 _minimizableList[cnt]->GetConversionFactor(28)->SetFactorValue(1.0/(0.2*600000*0.1)); 00230 _minimizableList[cnt]->SetRateConstantsWeight(0.0); 00231 // attach observer 00232 //_plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00233 //_plotterList[2]->SetTitle("Small Erk Subnetwork:NGF Stimulation (50 ng/ml, T 1994):ODE"); 00234 //_minimizableList[2]->Attach(_plotterList[2]); 00235 cnt++; 00236 00237 // expt. 4 - NGF at 50 ng/ml, Yao 1995 data 00238 // networks and data 00239 _networkList.push_back(new SmallErkSubnetwork()); 00240 _experimentList.push_back(new Experiment(_networkList[cnt],"NGF Stimulation 50 ng/ml - Yao 1995")); 00241 // data 00242 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/Erk1HYaoNGF.dat"); 00243 //_experimentList[1]->AddDataFileToList("../DataFiles/TimeSeries/PIP2PIP3DownwardNGF.dat"); 00244 // mover and plotter 00245 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00246 // minimizable 00247 _minimizableList.push_back(new SingleNetworkMinimizable()); 00248 // parameters 00249 _minimizableList[cnt]->Initialize(_experimentList[cnt],_moverList[cnt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00250 // one scaling factor is fixed 00251 _minimizableList[cnt]->GetConversionFactor(11)->SetFactorFixed(true); 00252 _minimizableList[cnt]->GetConversionFactor(11)->SetFactorValue(1.0/(0.2*600000*0.1)); 00253 // THESE TWO LINES FOR PI3K+ 00254 _minimizableList[cnt]->GetConversionFactor(28)->SetFactorFixed(true); 00255 _minimizableList[cnt]->GetConversionFactor(28)->SetFactorValue(1.0/(0.2*600000*0.1)); 00256 _minimizableList[cnt]->SetRateConstantsWeight(0.0); 00257 // attach observer 00258 //_plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00259 //_plotterList[3]->SetTitle("Small Erk Subnetwork:NGF Stimulation (50 ng/ml, Y 1995):ODE"); 00260 //_minimizableList[3]->Attach(_plotterList[3]); 00261 cnt++; 00262 00263 // expt. 3 - EGF at 30 ng/ml 00264 // networks and data 00265 _networkList.push_back(new SmallErkSubnetwork()); 00266 _experimentList.push_back(new Experiment(_networkList[cnt],"EGF Stimulation 30 ng/ml")); 00267 // put data files here 00268 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/RasGreen1EGF.dat"); 00269 // _experimentList[1]->AddDataFileToList("../DataFiles/TimeSeries/BRafJohnson1EGF.dat"); 00270 // mover and plotter 00271 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00272 // minimizable 00273 _minimizableList.push_back(new SingleNetworkMinimizable()); 00274 // parameters 00275 _minimizableList[cnt]->Initialize(_experimentList[cnt],_moverList[cnt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00276 _minimizableList[cnt]->GetConversionFactor(11)->SetFactorFixed(true); 00277 _minimizableList[cnt]->GetConversionFactor(11)->SetFactorValue(1.0/(0.2*600000*0.1)); 00278 _minimizableList[cnt]->SetRateConstantsWeight(0.0); 00279 // attach observer 00280 //_plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00281 //_plotterList[4]->SetTitle("Small Erk Subnetwork:EGF Stimulation (30 ng/ml):ODE"); 00282 //_minimizableList[4]->Attach(_plotterList[4]); 00283 cnt++; 00284 00285 // expt. 4 - NGF at 100 ng/ml 00286 // networks and data 00287 _networkList.push_back(new SmallErkSubnetwork()); 00288 _experimentList.push_back(new Experiment(_networkList[cnt],"NGF Stimulation 100 ng/ml")); 00289 // data 00290 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/Raf1LandrethNGF.dat"); 00291 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/BRafLandrethNGF.dat"); 00292 // mover and plotter 00293 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00294 // minimizable 00295 _minimizableList.push_back(new SingleNetworkMinimizable()); 00296 // parameters 00297 _minimizableList[cnt]->Initialize(_experimentList[cnt],_moverList[cnt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00298 // one scaling factor is fixed 00299 _minimizableList[cnt]->SetRateConstantsWeight(0.0); 00300 // attach observer 00301 //_plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00302 //_plotterList[5]->SetTitle("Small Erk Subnetwork:NGF Stimulation (100 ng/ml):ODE"); 00303 //_minimizableList[5]->Attach(_plotterList[5]); 00304 cnt++; 00305 00306 // expt. 5 - EGF at 100 ng/ml + 50-fold overexpression of HER 00307 // networks and data 00308 _networkList.push_back(new SmallErkSubnetwork()); 00309 _experimentList.push_back(new Experiment(_networkList[cnt],"EGF at 100 ng/ml, 50-fold HER Overexpression")); 00310 // data 00311 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/ErkMekTraverseHERover.dat"); 00312 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00313 // minimizable 00314 _minimizableList.push_back(new SingleNetworkMinimizable()); 00315 // parameters 00316 _minimizableList[cnt]->Initialize(_experimentList[cnt],_moverList[cnt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00317 _minimizableList[cnt]->SetRateConstantsWeight(0.0); 00318 cnt++; 00319 00320 /* 00321 // FOR SLOPPY EVOLUTION 00322 // Erk in response to EGF, Yao 1995 data 00323 // networks and data 00324 _networkList.push_back(new SmallErkSubnetwork()); 00325 _experimentList.push_back(new Experiment(_networkList[cnt],"EGF Stimulation 100 ng/ml")); 00326 // put data files here 00327 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/Erk1HYaoEGF.dat"); 00328 // mover and plotter 00329 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00330 // minimizable 00331 _minimizableList.push_back(new SingleNetworkMinimizable()); 00332 // parameters 00333 _minimizableList[cnt]->Initialize(_experimentList[cnt],_moverList[cnt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00334 _minimizableList[cnt]->SetRateConstantsWeight(0.0); 00335 // plotting 00336 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00337 // title 00338 _plotterList[cnt]->SetTitle("Small Erk Subnetwork:EGF Stimulation (100 ng/ml):ODE"); 00339 // attach observer 00340 _minimizableList[cnt]->Attach(_plotterList[cnt]); 00341 cnt++; 00342 00343 // Erk and Ras (mutable) in response to NGF, Yao 1995 data and based on Green 00344 // networks and data 00345 _networkList.push_back(new SmallErkSubnetwork()); 00346 _experimentList.push_back(new Experiment(_networkList[cnt],"NGF Stimulation 50 ng/ml")); 00347 // data 00348 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/Erk1HYaoNGF.dat"); 00349 _experimentList[cnt]->AddDataFileToList("MutableRas.dat"); 00350 // mover and plotter 00351 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00352 // minimizable 00353 _minimizableList.push_back(new SingleNetworkMinimizable()); 00354 // parameters 00355 _minimizableList[cnt]->Initialize(_experimentList[cnt],_moverList[cnt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00356 // one scaling factor is fixed 00357 _minimizableList[cnt]->GetConversionFactor(11)->SetFactorFixed(true); 00358 _minimizableList[cnt]->GetConversionFactor(11)->SetFactorValue(1.0/(0.2*600000*0.1)); 00359 // THESE TWO LINES FOR PI3K+ 00360 _minimizableList[cnt]->GetConversionFactor(28)->SetFactorFixed(true); 00361 _minimizableList[cnt]->GetConversionFactor(28)->SetFactorValue(1.0/(0.2*600000*0.1)); 00362 _minimizableList[cnt]->SetRateConstantsWeight(0.0); 00363 // plotting 00364 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00365 // title 00366 _plotterList[cnt]->SetTitle("Small Erk Subnetwork:NGF Stimulation (50 ng/ml):ODE"); 00367 // attach observer 00368 _minimizableList[cnt]->Attach(_plotterList[cnt]); 00369 // attach observer 00370 cnt++; 00371 00372 // Ras in response to EGF, Green's data 00373 // networks and data 00374 _networkList.push_back(new SmallErkSubnetwork()); 00375 _experimentList.push_back(new Experiment(_networkList[cnt],"EGF Stimulation 30 ng/ml")); 00376 // put data files here 00377 _experimentList[cnt]->AddDataFileToList("../DataFiles/TimeSeries/RasGreen1EGF.dat"); 00378 // mover and plotter 00379 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00380 // minimizable 00381 _minimizableList.push_back(new SingleNetworkMinimizable()); 00382 // parameters 00383 _minimizableList[cnt]->Initialize(_experimentList[cnt],_moverList[cnt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00384 _minimizableList[cnt]->GetConversionFactor(11)->SetFactorFixed(true); 00385 _minimizableList[cnt]->GetConversionFactor(11)->SetFactorValue(1.0/(0.2*600000*0.1)); 00386 _minimizableList[cnt]->SetRateConstantsWeight(0.0); 00387 // plotting 00388 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00389 // title 00390 _plotterList[cnt]->SetTitle("Small Erk Subnetwork:EGF Stimulation (30 ng/ml):ODE"); 00391 // attach observer 00392 _minimizableList[cnt]->Attach(_plotterList[cnt]); 00393 // attach observer 00394 cnt++; 00395 */ 00396 // allocate the master residuals list 00397 int masterResidualsSize = 0; 00398 for(int i = 0; i < _minimizableList.size(); i++) 00399 { 00400 int subRes = _minimizableList[i]->GetNResiduals(); 00401 masterResidualsSize += subRes; 00402 cout << subRes << " residuals in minimizable " << i << endl; 00403 } 00404 if(m_dGammaSquared > 0.0) 00405 { 00406 masterResidualsSize += 1; 00407 } 00408 Allocate(masterResidualsSize); 00409 00410 cout << "Master Residuals size : " << masterResidualsSize << endl; 00411 00412 // define the experiments 00413 DefineExperiments(); 00414 00415 // dump info about residuals 00416 DumpResidualInfo(); 00417 } 00418 00419 PC12EGFNGFMinimizableDirector::~PC12EGFNGFMinimizableDirector() 00420 { 00421 for(int i = 0; i < _minimizableList.size(); i++) 00422 { 00423 if(_plotterList.size() > i) 00424 { 00425 _minimizableList[i]->Detach(_plotterList[i]); 00426 } 00427 } 00428 for(i = 0; i < _plotterList.size(); i++) 00429 { 00430 delete _plotterList[i]; 00431 } 00432 } 00433 00434 void PC12EGFNGFMinimizableDirector::DefineExperiments() 00435 { 00436 /* 00437 // 100 ng/ml EGF, 0 NGF 00438 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0); 00439 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00440 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0); 00441 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00442 00443 // 0 EGF, 50 ng/ml NGF 00444 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0); 00445 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00446 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(228000.0); 00447 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00448 */ 00449 /* 00450 // 100 ng/ml EGF, 0 NGF 00451 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0); 00452 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00453 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0); 00454 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00455 00456 // 0 EGF, 50 ng/ml NGF 00457 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0); 00458 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00459 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(228000.0); 00460 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00461 00462 // 30 ng/ml EGF, 0 NGF 00463 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(3000600); 00464 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00465 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0); 00466 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00467 00468 // 0 EGF, 100 ng/ml NGF 00469 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0); 00470 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00471 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(456000.0); 00472 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00473 00474 // 100 ng/ml EGF, 0 ng/ml NGF, 50-fold HER overexpression 00475 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0); 00476 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00477 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0); 00478 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00479 double EGFR = _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->GetInitialAmount(); 00480 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(50*EGFR); 00481 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->Reset(); 00482 */ 00483 00484 // 100 ng/ml EGF, 0 NGF 00485 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0); 00486 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00487 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0); 00488 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00489 00490 // 0 EGF, 50 ng/ml NGF 00491 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0); 00492 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00493 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(228000.0); 00494 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00495 00496 // 0 EGF, 50 ng/ml NGF 00497 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0); 00498 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00499 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(228000.0); 00500 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00501 00502 // 30 ng/ml EGF, 0 NGF 00503 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(3000600); 00504 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00505 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0); 00506 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00507 00508 // 0 EGF, 100 ng/ml NGF 00509 _minimizableList[5]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0); 00510 _minimizableList[5]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00511 _minimizableList[5]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(456000.0); 00512 _minimizableList[5]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00513 00514 // 100 ng/ml EGF, 0 ng/ml NGF, 50-fold HER overexpression 00515 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0); 00516 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00517 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0); 00518 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00519 double EGFR = _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->GetInitialAmount(); 00520 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(50*EGFR); 00521 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->Reset(); 00522 00523 /* 00524 // SLOPPY EVOLUTION PIECE 00525 // 100 ng/ml EGF, 0 NGF 00526 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0); 00527 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00528 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0); 00529 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00530 00531 // 0 EGF, 50 ng/ml NGF 00532 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0); 00533 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00534 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(228000.0); 00535 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00536 00537 // 30 ng/ml EGF, 0 NGF 00538 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(3000600); 00539 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset(); 00540 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0); 00541 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset(); 00542 */ 00543 } 00544 00545 double PC12EGFNGFMinimizableDirector::GetParameter(int parIndex) 00546 { 00547 // for this director, everyone has the same parameters so any set 00548 // can be returned 00549 return _minimizableList[0]->GetParameter(parIndex); 00550 } 00551 00552 int PC12EGFNGFMinimizableDirector::GetNParameters() 00553 { 00554 // ditto as for GetParameters() 00555 return _minimizableList[0]->GetNParameters(); 00556 }