Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

EGFRTraffickingMinimizableDirector.cpp

Go to the documentation of this file.
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 }

Generated on Mon Nov 3 09:37:47 2003 by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002