00001 // EGFRTraffickingMinimizableDirector.cpp: implementation of the CEGFRTraffickingMinimizableDirector class. 00002 // 00004 00005 #include "EGFRTraffickingMinimizableDirector.h" 00006 00008 // Construction/Destruction 00010 00011 CEGFRTraffickingMinimizableDirector::CEGFRTraffickingMinimizableDirector() 00012 { 00013 // create networks,experiments,observers,movers,minimizables 00014 double maxSimTime = 241.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-08; 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 /* 00031 // CHO cells 00032 // expt. 0 - CHO cells transfected with ? receptors, treated with EGF at 5 ng/ml 00033 // concentration 00034 _networkList.push_back(new CEGFRTraffickingNetwork()); 00035 _experimentList.push_back(new Experiment(_networkList[0],"EGF at 5 ng/ml, Bao 2000")); 00036 // put data files here 00037 _experimentList[0]->AddDataFileToList("../DataFiles/TimeSeries/InternalizedEGFREGFYarden.dat"); 00038 // mover and plotter 00039 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00040 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00041 // title 00042 _plotterList[0]->SetTitle("EGFR Trafficking Network:EGF at 5 ng/ml (Bao 2000):ODE"); 00043 // minimizable 00044 _minimizableList.push_back(new SingleNetworkMinimizable()); 00045 // parameters 00046 _minimizableList[0]->Initialize(_experimentList[0],_moverList[0],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00047 _minimizableList[0]->SetRateConstantsWeight(0.0); 00048 // attach observer 00049 _minimizableList[0]->Attach(_plotterList[0]); 00050 00051 // expt. 1 - CHO cells transfected with 8.2(7) X 10^4 receptors, treated 00052 // with EGF at 100 nM concentration 00053 _networkList.push_back(new CEGFRTraffickingNetwork()); 00054 _experimentList.push_back(new Experiment(_networkList[1],"EGF at 100 nM, Davis 1992")); 00055 // put data files here 00056 _experimentList[1]->AddDataFileToList("../DataFiles/TimeSeries/SurfaceEGFREGFDavis100nM.dat"); 00057 // mover and plotter 00058 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00059 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00060 // title 00061 _plotterList[1]->SetTitle("EGFR Trafficking Network:EGF at 100 nM (Davis 1992):ODE"); 00062 // minimizable 00063 _minimizableList.push_back(new SingleNetworkMinimizable()); 00064 // parameters 00065 _minimizableList[1]->Initialize(_experimentList[1],_moverList[1],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00066 _minimizableList[1]->GetConversionFactor(4)->SetFactorFixed(true); 00067 _minimizableList[1]->GetConversionFactor(4)->SetFactorValue(100.0/82000.0); 00068 _minimizableList[1]->SetRateConstantsWeight(0.0); 00069 // attach observer 00070 _minimizableList[1]->Attach(_plotterList[1]); 00071 00072 // expt. 2 - CHO cells transfected with 8.2(7) X 10^4 receptors, treated 00073 // with EGF at 10 nM concentration 00074 _networkList.push_back(new CEGFRTraffickingNetwork()); 00075 _experimentList.push_back(new Experiment(_networkList[2],"EGF at 10 nM, Davis 1992")); 00076 // put data files here 00077 _experimentList[2]->AddDataFileToList("../DataFiles/TimeSeries/SurfaceEGFREGFDavis10nM.dat"); 00078 // mover and plotter 00079 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00080 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00081 // title 00082 _plotterList[2]->SetTitle("EGFR Trafficking Network:EGF at 10 nM (Davis 1992):ODE"); 00083 // minimizable 00084 _minimizableList.push_back(new SingleNetworkMinimizable()); 00085 // parameters 00086 _minimizableList[2]->Initialize(_experimentList[2],_moverList[2],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00087 _minimizableList[2]->GetConversionFactor(4)->SetFactorFixed(true); 00088 _minimizableList[2]->GetConversionFactor(4)->SetFactorValue(100.0/82000.0); 00089 _minimizableList[2]->SetRateConstantsWeight(0.0); 00090 // attach observer 00091 _minimizableList[2]->Attach(_plotterList[2]); 00092 00093 // expt. 3 - CHO cells transfected with 8.2(7) X 10^4 receptors, treated 00094 // with EGF at 1 nM concentration 00095 _networkList.push_back(new CEGFRTraffickingNetwork()); 00096 _experimentList.push_back(new Experiment(_networkList[3],"EGF at 1 nM, Davis 1992")); 00097 // put data files here 00098 _experimentList[3]->AddDataFileToList("../DataFiles/TimeSeries/SurfaceEGFREGFDavis1nM.dat"); 00099 // mover and plotter 00100 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00101 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00102 // title 00103 _plotterList[3]->SetTitle("EGFR Trafficking Network:EGF at 1 nM (Davis 1992):ODE"); 00104 // minimizable 00105 _minimizableList.push_back(new SingleNetworkMinimizable()); 00106 // parameters 00107 _minimizableList[3]->Initialize(_experimentList[3],_moverList[3],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00108 _minimizableList[3]->GetConversionFactor(4)->SetFactorFixed(true); 00109 _minimizableList[3]->GetConversionFactor(4)->SetFactorValue(100.0/82000.0); 00110 _minimizableList[3]->SetRateConstantsWeight(0.0); 00111 // attach observer 00112 _minimizableList[3]->Attach(_plotterList[3]); 00113 00114 // expt. 4 - CHO cells transfected with ? EGFR and treated with EGF at 00115 // 100 ng/ml concentration 00116 _networkList.push_back(new CEGFRTraffickingNetwork()); 00117 _experimentList.push_back(new Experiment(_networkList[4],"EGF at 100 ng/ml, Levkowitz 1999")); 00118 // put data files here 00119 _experimentList[4]->AddDataFileToList("../DataFiles/TimeSeries/SurfaceEGFREGFLevkowitz.dat"); 00120 // mover and plotter 00121 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00122 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00123 // title 00124 _plotterList[4]->SetTitle("EGFR Trafficking Network:EGF at 100 ng/ml (Levkowitz 1999):ODE"); 00125 // minimizable 00126 _minimizableList.push_back(new SingleNetworkMinimizable()); 00127 // parameters 00128 _minimizableList[4]->Initialize(_experimentList[4],_moverList[4],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00129 _minimizableList[4]->GetConversionFactor(4)->SetFactorFixed(true); 00130 _minimizableList[4]->GetConversionFactor(4)->SetFactorValue(100.0/80000.0); 00131 _minimizableList[4]->SetRateConstantsWeight(0.0); 00132 // attach observer 00133 _minimizableList[4]->Attach(_plotterList[4]); 00134 */ 00135 00136 // NIH-3T3 cells 00137 // expt. 0 - NIH-3T3 cells transfected with 1.0(5) X 10^5 receptors, treated 00138 // with EGF at 100 nM concentration 00139 _networkList.push_back(new CEGFRTraffickingNetwork()); 00140 _experimentList.push_back(new Experiment(_networkList[0],"EGF at 100 nM, Helin 1991")); 00141 // put data files here 00142 _experimentList[0]->AddDataFileToList("../DataFiles/TimeSeries/SurfaceEGFREGFHelin100nM.dat"); 00143 // mover and plotter 00144 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00145 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00146 // title 00147 _plotterList[0]->SetTitle("EGFR Trafficking Network:EGF at 100 nM (Helin 1991):ODE"); 00148 // minimizable 00149 _minimizableList.push_back(new SingleNetworkMinimizable()); 00150 // parameters 00151 _minimizableList[0]->Initialize(_experimentList[0],_moverList[0],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00152 _minimizableList[0]->GetConversionFactor(4)->SetFactorFixed(true); 00153 _minimizableList[0]->GetConversionFactor(4)->SetFactorValue(100.0/100000.0); 00154 _minimizableList[0]->SetRateConstantsWeight(0.0); 00155 // attach observer 00156 _minimizableList[0]->Attach(_plotterList[0]); 00157 00158 // expt. 1 - NIH-3T3's transfected w/ wild-type EGFR; measurements made 00159 // with 10-30% of receptors initially occupied; cells express 00160 // 1.0(5) X 10^5 receptors 00161 _networkList.push_back(new CEGFRTraffickingNetwork()); 00162 _experimentList.push_back(new Experiment(_networkList[1],"20 Percent Initial Occupancy, Helin 1991")); 00163 // put data files here 00164 _experimentList[1]->AddDataFileToList("../DataFiles/TimeSeries/EGFHelinOccupied.dat"); 00165 // mover and plotter 00166 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00167 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00168 // title 00169 _plotterList[1]->SetTitle("EGFR Trafficking Network:20 Percent Initial EGFR Occupancy (Helin 1991):ODE"); 00170 // minimizable 00171 _minimizableList.push_back(new SingleNetworkMinimizable()); 00172 // parameters 00173 _minimizableList[1]->Initialize(_experimentList[1],_moverList[1],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00174 _minimizableList[1]->GetConversionFactor(3)->SetFactorFixed(true); 00175 _minimizableList[1]->GetConversionFactor(3)->SetFactorValue(100.0/20000.0); 00176 _minimizableList[1]->SetRateConstantsWeight(0.0); 00177 // attach observer 00178 _minimizableList[1]->Attach(_plotterList[1]); 00179 00180 // expt. 2 - NIH-3T3's transfected with wt EGFR; 1 X 10^5 receptors, EGF of 00181 // 100 ng/ml 00182 _networkList.push_back(new CEGFRTraffickingNetwork()); 00183 _experimentList.push_back(new Experiment(_networkList[2],"EGF at 100 ng/ml wt1, Carter 1998")); 00184 // put data files here 00185 _experimentList[2]->AddDataFileToList("../DataFiles/TimeSeries/SurfaceEGFREGFwt1Carter.dat"); 00186 // mover and plotter 00187 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00188 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00189 // title 00190 _plotterList[2]->SetTitle("EGFR Trafficking Network:EGF at 100 ng/ml, wt1 (Carter 1998):ODE"); 00191 // minimizable 00192 _minimizableList.push_back(new SingleNetworkMinimizable()); 00193 // parameters 00194 _minimizableList[2]->Initialize(_experimentList[2],_moverList[2],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00195 _minimizableList[2]->GetConversionFactor(4)->SetFactorFixed(true); 00196 _minimizableList[2]->GetConversionFactor(4)->SetFactorValue(100.0/100000.0); 00197 _minimizableList[2]->SetRateConstantsWeight(0.0); 00198 // attach observer 00199 _minimizableList[2]->Attach(_plotterList[2]); 00200 00201 // expt. 3 - NIH-3T3's transfected with wt EGFR; 2.75 X 10^5 receptors, EGF of 00202 // 100 ng/ml 00203 _networkList.push_back(new CEGFRTraffickingNetwork()); 00204 _experimentList.push_back(new Experiment(_networkList[3],"EGF at 100 ng/ml wt2, Carter 1998")); 00205 // put data files here 00206 _experimentList[3]->AddDataFileToList("../DataFiles/TimeSeries/SurfaceEGFREGFwt2Carter.dat"); 00207 // mover and plotter 00208 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol)); 00209 _plotterList.push_back(new GnuPlotterTimeSeriesObserver()); 00210 // title 00211 _plotterList[3]->SetTitle("EGFR Trafficking Network:EGF at 100 ng/ml, wt2 (Carter 1998):ODE"); 00212 // minimizable 00213 _minimizableList.push_back(new SingleNetworkMinimizable()); 00214 // parameters 00215 _minimizableList[3]->Initialize(_experimentList[3],_moverList[3],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight); 00216 _minimizableList[3]->GetConversionFactor(4)->SetFactorFixed(true); 00217 _minimizableList[3]->GetConversionFactor(4)->SetFactorValue(100.0/275000.0); 00218 _minimizableList[3]->SetRateConstantsWeight(0.0); 00219 // attach observer 00220 _minimizableList[3]->Attach(_plotterList[3]); 00221 00222 // allocate the master residuals list 00223 int masterResidualsSize = 0; 00224 for(int i = 0; i < _minimizableList.size(); i++) 00225 { 00226 int subRes = _minimizableList[i]->GetNResiduals(); 00227 masterResidualsSize += subRes; 00228 cout << subRes << " residuals in minimizable " << i << endl; 00229 } 00230 if(m_dGammaSquared > 0.0) 00231 { 00232 masterResidualsSize += 1; 00233 } 00234 Allocate(masterResidualsSize); 00235 00236 cout << "Master Residuals size : " << masterResidualsSize << endl; 00237 00238 // define the experiments 00239 DefineExperiments(); 00240 } 00241 00242 CEGFRTraffickingMinimizableDirector::~CEGFRTraffickingMinimizableDirector() 00243 { 00244 for(int i = 0; i < _minimizableList.size(); i++) 00245 { 00246 _minimizableList[i]->Detach(_plotterList[i]); 00247 } 00248 for(i = 0; i < _plotterList.size(); i++) 00249 { 00250 delete _plotterList[i]; 00251 } 00252 } 00253 00254 void CEGFRTraffickingMinimizableDirector::DefineExperiments() 00255 { 00256 /* 00257 // CHO cells 00258 // 80,000 receptors assumed, EGF at 5 ng/ml 00259 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(600000.0); 00260 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(80000.0); 00261 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->ChemicalReset(); 00262 00263 // 82,000 receptors, EGF at 100 nM 00264 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(7.2e+007); 00265 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(82000); 00266 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->ChemicalReset(); 00267 00268 // 82,000 receptors, EGF at 10 nM 00269 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(7.2e+006); 00270 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(82000); 00271 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->ChemicalReset(); 00272 00273 // 82,000 receptors, EGF at 1 nM 00274 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(7.2e+005); 00275 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(82000); 00276 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->ChemicalReset(); 00277 00278 // 80,000 receptors assumed, EGF at 100 ng/ml 00279 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(1.2e+007); 00280 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(80000); 00281 _minimizableList[4]->GetExperiment()->GetReactionNetwork()->ChemicalReset(); 00282 */ 00283 00284 // 3T3 cells 00285 // 100,000 receptors, EGF at 100 nM 00286 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(7.2e+007); 00287 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(100000); 00288 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->ChemicalReset(); 00289 00290 // No EGF, 20% of receptors on surface initially occupied 00291 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(80000.0); 00292 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->GetChemical(3)->SetInitialAmount(20000.0); 00293 _minimizableList[1]->GetExperiment()->GetReactionNetwork()->ChemicalReset(); 00294 00295 // 100,000 receptors assumed, EGF at 100 ng/ml 00296 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(1.2e+007); 00297 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(100000); 00298 _minimizableList[2]->GetExperiment()->GetReactionNetwork()->ChemicalReset(); 00299 00300 // 275,000 receptors assumed, EGF at 100 ng/ml 00301 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(1.2e+007); 00302 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(275000); 00303 _minimizableList[3]->GetExperiment()->GetReactionNetwork()->ChemicalReset(); 00304 00305 } 00306 00307 double CEGFRTraffickingMinimizableDirector::GetParameter(int parIndex) 00308 { 00309 // for this director, everyone has the same parameters so any set 00310 // can be returned 00311 return _minimizableList[0]->GetParameter(parIndex); 00312 } 00313 00314 int CEGFRTraffickingMinimizableDirector::GetNParameters() 00315 { 00316 // ditto as for GetParameters() 00317 return _minimizableList[0]->GetNParameters(); 00318 }