00001
00002
00004
00005 #include "PC12AlternateMinimizableDirector.h"
00006
00008
00010
00011 CPC12AlternateMinimizableDirector::CPC12AlternateMinimizableDirector()
00012 {
00013
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 = 0.0;
00021
00022
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
00031
00032 _networkList.push_back(new CAlternateErkSubnetwork());
00033 _experimentList.push_back(new Experiment(_networkList[0],"EGF Stimulation 100 ng/ml - Traverse 1994"));
00034
00035 _experimentList[0]->AddDataFileToList("../DataFiles/TimeSeries/ErkMekTraverse2EGF.dat");
00036 _experimentList[0]->AddDataFileToList("../DataFiles/TimeSeries/Raf1LandrethEGF.dat");
00037
00038 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00039
00040
00041
00042
00043 _minimizableList.push_back(new SingleNetworkMinimizable());
00044
00045 _minimizableList[0]->Initialize(_experimentList[0],_moverList[0],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00046 _minimizableList[0]->SetRateConstantsWeight(0.0);
00047
00048
00049
00050
00051
00052 _networkList.push_back(new CAlternateErkSubnetwork());
00053 _experimentList.push_back(new Experiment(_networkList[1],"EGF Stimulation 100 ng/ml - Yao 1995"));
00054
00055 _experimentList[1]->AddDataFileToList("../DataFiles/TimeSeries/Erk1HYaoEGF.dat");
00056
00057 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00058
00059
00060
00061
00062 _minimizableList.push_back(new SingleNetworkMinimizable());
00063
00064 _minimizableList[1]->Initialize(_experimentList[1],_moverList[1],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00065 _minimizableList[1]->SetRateConstantsWeight(0.0);
00066
00067
00068
00069
00070
00071 _networkList.push_back(new CAlternateErkSubnetwork());
00072 _experimentList.push_back(new Experiment(_networkList[2],"NGF Stimulation 50 ng/ml - T 1994"));
00073
00074 _experimentList[2]->AddDataFileToList("../DataFiles/TimeSeries/ErkMekTraverse2NGF.dat");
00075 _experimentList[2]->AddDataFileToList("../DataFiles/TimeSeries/RasGreen1NGF.dat");
00076 _experimentList[2]->AddDataFileToList("../DataFiles/TimeSeries/Rap1YorkNGF.dat");
00077
00078 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00079
00080
00081
00082
00083 _minimizableList.push_back(new SingleNetworkMinimizable());
00084
00085 _minimizableList[2]->Initialize(_experimentList[2],_moverList[2],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00086
00087 _minimizableList[2]->GetConversionFactor(11)->SetFactorFixed(true);
00088 _minimizableList[2]->GetConversionFactor(11)->SetFactorValue(1.0/(0.2*600000*0.1));
00089 _minimizableList[2]->GetConversionFactor(24)->SetFactorFixed(true);
00090 _minimizableList[2]->GetConversionFactor(24)->SetFactorValue(1.0/(0.2*600000*0.1));
00091 _minimizableList[2]->SetRateConstantsWeight(0.0);
00092
00093
00094
00095
00096
00097 _networkList.push_back(new CAlternateErkSubnetwork());
00098 _experimentList.push_back(new Experiment(_networkList[3],"NGF Stimulation 50 ng/ml - Yao 1995"));
00099
00100 _experimentList[3]->AddDataFileToList("../DataFiles/TimeSeries/Erk1HYaoNGF.dat");
00101
00102 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00103
00104
00105
00106
00107 _minimizableList.push_back(new SingleNetworkMinimizable());
00108
00109 _minimizableList[3]->Initialize(_experimentList[3],_moverList[3],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00110
00111 _minimizableList[3]->SetRateConstantsWeight(0.0);
00112
00113
00114
00115
00116
00117 _networkList.push_back(new CAlternateErkSubnetwork());
00118 _experimentList.push_back(new Experiment(_networkList[4],"EGF Stimulation 30 ng/ml"));
00119
00120 _experimentList[4]->AddDataFileToList("../DataFiles/TimeSeries/RasGreen1EGF.dat");
00121
00122 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00123
00124
00125
00126
00127 _minimizableList.push_back(new SingleNetworkMinimizable());
00128
00129 _minimizableList[4]->Initialize(_experimentList[4],_moverList[4],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00130 _minimizableList[4]->GetConversionFactor(11)->SetFactorFixed(true);
00131 _minimizableList[4]->GetConversionFactor(11)->SetFactorValue(1.0/(0.2*600000*0.1));
00132 _minimizableList[4]->SetRateConstantsWeight(0.0);
00133
00134
00135
00136
00137
00138
00139 _networkList.push_back(new CAlternateErkSubnetwork());
00140 _experimentList.push_back(new Experiment(_networkList[5],"NGF Stimulation 100 ng/ml"));
00141
00142 _experimentList[5]->AddDataFileToList("../DataFiles/TimeSeries/Raf1LandrethNGF.dat");
00143 _experimentList[5]->AddDataFileToList("../DataFiles/TimeSeries/BRafLandrethNGF.dat");
00144
00145 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00146
00147
00148
00149
00150 _minimizableList.push_back(new SingleNetworkMinimizable());
00151
00152 _minimizableList[5]->Initialize(_experimentList[5],_moverList[5],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00153
00154 _minimizableList[5]->SetRateConstantsWeight(0.0);
00155
00156
00157
00158
00159
00160 _networkList.push_back(new CAlternateErkSubnetwork());
00161 _experimentList.push_back(new Experiment(_networkList[6],"EGF at 100 ng/ml, 50-fold HER Overexpression"));
00162
00163 _experimentList[6]->AddDataFileToList("../DataFiles/TimeSeries/ErkMekTraverseHERover.dat");
00164 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00165
00166 _minimizableList.push_back(new SingleNetworkMinimizable());
00167
00168 _minimizableList[6]->Initialize(_experimentList[6],_moverList[6],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00169 _minimizableList[6]->SetRateConstantsWeight(0.0);
00170
00171
00172
00173 int masterResidualsSize = 0;
00174 for(int i = 0; i < _minimizableList.size(); i++)
00175 {
00176 masterResidualsSize += _minimizableList[i]->GetNResiduals();
00177 }
00178 if(m_dGammaSquared > 0.0)
00179 {
00180 masterResidualsSize += 1;
00181 }
00182 Allocate(masterResidualsSize);
00183
00184 cout << "Master Residuals size : " << masterResidualsSize << endl;
00185
00186
00187 DefineExperiments();
00188 }
00189
00190 CPC12AlternateMinimizableDirector::~CPC12AlternateMinimizableDirector()
00191 {
00192 for(int i = 0; i < _minimizableList.size(); i++)
00193 {
00194 if(_plotterList.size() > i)
00195 {
00196 _minimizableList[i]->Detach(_plotterList[i]);
00197 }
00198 }
00199 for(i = 0; i < _plotterList.size(); i++)
00200 {
00201 delete _plotterList[i];
00202 }
00203 }
00204
00205 void CPC12AlternateMinimizableDirector::DefineExperiments()
00206 {
00207
00208 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0);
00209 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00210 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00211 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();
00212
00213
00214 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0);
00215 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00216 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00217 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();
00218
00219
00220 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0);
00221 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00222 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(228000.0);
00223 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();
00224
00225
00226 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0);
00227 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00228 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(228000.0);
00229 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();
00230
00231
00232 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(3000600);
00233 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00234 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00235 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();
00236
00237
00238 _minimizableList[5]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0);
00239 _minimizableList[5]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00240 _minimizableList[5]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(456000.0);
00241 _minimizableList[5]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();
00242
00243
00244 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0);
00245 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00246 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00247 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();
00248 double EGFR = _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->GetInitialAmount();
00249 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(50*EGFR);
00250 _minimizableList[6]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->Reset();
00251
00252 }
00253
00254 double CPC12AlternateMinimizableDirector::GetParameter(int parIndex)
00255 {
00256
00257
00258 return _minimizableList[0]->GetParameter(parIndex);
00259 }
00260
00261 int CPC12AlternateMinimizableDirector::GetNParameters()
00262 {
00263
00264 return _minimizableList[0]->GetNParameters();
00265 }