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

PC12AlternateEnsembleDirector.cpp

Go to the documentation of this file.
00001 // PC12AlternateEnsembleDirector.cpp: implementation of the CPC12AlternateEnsembleDirector class.
00002 //
00004 
00005 #include "PC12AlternateEnsembleDirector.h"
00006 
00008 // Construction/Destruction
00010 
00011 CPC12AlternateEnsembleDirector::CPC12AlternateEnsembleDirector(int ensembleSize)
00012 :CEnsembleCombinationDirector(ensembleSize)
00013 {
00014         double maxSimTime = 91.0;
00015         int intTime = (int) (maxSimTime + 2);
00016         double stepSize = 0.0001;
00017         double frequency = 1.0;
00018         double moveTol = 1.0e-6;
00019         bool rateFlag = true;
00020         bool chemFlag = false;
00021         bool logsFlag = false;
00022         double timeWeight = 1.0;
00023         double rateWeight = 0.0;
00024         double chemWeight = 0.0;
00025         int nCells = 1;
00026 
00027         // expt. 1 - EGF at 100 ng/ml, Traverse 1994 data
00028         m_vpNetworks.push_back(new CAlternateErkSubnetwork());
00029         m_vpExperiments.push_back(new Experiment(m_vpNetworks[0],"EGF Stimulation 100 ng/ml - Traverse 1994"));
00030         // data files
00031         m_vpExperiments[0]->AddDataFileToList("../DataFiles/TimeSeries/ErkMekTraverse2EGF.dat");
00032         m_vpExperiments[0]->AddDataFileToList("../DataFiles/TimeSeries/Raf1LandrethEGF.dat");
00033         //m_vpExperiments[0]->AddDataFileToList("../DataFiles/TimeSeries/PIP2PIP3DownwardEGF.dat");
00034         m_vpMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00035         // minimizable
00036         m_vpMinimizables.push_back(new SingleNetworkMinimizable());
00037         // parameters
00038         m_vpMinimizables[0]->Initialize(m_vpExperiments[0],m_vpMovers[0],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00039         m_vpMinimizables[0]->SetRateConstantsWeight(0.0);
00040         // attach observer
00041         //m_vpEnsembleDataPlotters.push_back(new GnuPlotterEnsembleDataDirectorObserver());
00042         //m_vpEnsembleDataPlotters[0]->SetTitle("MAPK Cascade : EGF at 100 ng/ml, T 94 : ODE");
00043         //m_vpEnsembleDataPlotters[0]->FixMinimizable(0);
00044         //this->Attach(m_vpEnsembleDataPlotters[0]);
00045         
00046         // expt. 2 - EGF at 100 ng/ml, Yao 1995 data
00047         m_vpNetworks.push_back(new CAlternateErkSubnetwork());
00048         m_vpExperiments.push_back(new Experiment(m_vpNetworks[1],"EGF Stimulation 100 ng/ml - Yao 1995"));
00049         // data files
00050         m_vpExperiments[1]->AddDataFileToList("../DataFiles/TimeSeries/Erk1HYaoEGF.dat");
00051         //m_vpExperiments[0]->AddDataFileToList("../DataFiles/TimeSeries/PIP2PIP3DownwardEGF.dat");
00052         m_vpMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00053         // minimizable
00054         m_vpMinimizables.push_back(new SingleNetworkMinimizable());
00055         // parameters
00056         m_vpMinimizables[1]->Initialize(m_vpExperiments[1],m_vpMovers[1],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00057         m_vpMinimizables[1]->SetRateConstantsWeight(0.0);
00058         // attach observer
00059         //m_vpEnsembleDataPlotters.push_back(new GnuPlotterEnsembleDataDirectorObserver());
00060         //m_vpEnsembleDataPlotters[1]->SetTitle("MAPK Cascade : EGF at 100 ng/ml, Yao 95 : ODE");
00061         //m_vpEnsembleDataPlotters[1]->FixMinimizable(1);
00062         //this->Attach(m_vpEnsembleDataPlotters[1]);
00063 
00064 
00065         // expt. 3 - NGF at 50 ng/ml, Traverse 1994 Data
00066         // networks and data
00067         m_vpNetworks.push_back(new CAlternateErkSubnetwork());
00068         m_vpExperiments.push_back(new Experiment(m_vpNetworks[2],"NGF Stimulation 50 ng/ml - Traverse 1994"));
00069         // data
00070         m_vpExperiments[2]->AddDataFileToList("../DataFiles/TimeSeries/ErkMekTraverse2NGF.dat");
00071         m_vpExperiments[2]->AddDataFileToList("../DataFiles/TimeSeries/RasGreen1NGF.dat");
00072         m_vpExperiments[2]->AddDataFileToList("../DataFiles/TimeSeries/Rap1YorkNGF.dat");
00073         //m_vpExperiments[1]->AddDataFileToList("../DataFiles/TimeSeries/PIP2PIP3DownwardNGF.dat");
00074         m_vpMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00075         // minimizable
00076         m_vpMinimizables.push_back(new SingleNetworkMinimizable());
00077         // parameters
00078         m_vpMinimizables[2]->Initialize(m_vpExperiments[2],m_vpMovers[2],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00079         // one scaling factor is fixed
00080         m_vpMinimizables[2]->GetConversionFactor(11)->SetFactorFixed(true);
00081         m_vpMinimizables[2]->GetConversionFactor(11)->SetFactorValue(1.0/(0.2*600000*0.1));
00082         // THESE TWO LINES FOR PI3K-
00083         m_vpMinimizables[1]->GetConversionFactor(24)->SetFactorFixed(true);
00084         m_vpMinimizables[1]->GetConversionFactor(24)->SetFactorValue(1.0/(0.2*600000*0.1));
00085         m_vpMinimizables[2]->SetRateConstantsWeight(0.0);
00086         // attach observer
00087         //m_vpEnsembleDataPlotters.push_back(new GnuPlotterEnsembleDataDirectorObserver());
00088         //m_vpEnsembleDataPlotters[2]->SetTitle("MAPK Cascade : NGF at 50 ng/ml, T 94: ODE");
00089         //m_vpEnsembleDataPlotters[2]->FixMinimizable(2);
00090         //this->Attach(m_vpEnsembleDataPlotters[2]);
00091 
00092         // expt. 4 - NGF at 50 ng/ml, Yao 1994 Data
00093         // networks and data
00094         m_vpNetworks.push_back(new CAlternateErkSubnetwork());
00095         m_vpExperiments.push_back(new Experiment(m_vpNetworks[3],"NGF Stimulation 50 ng/ml - Yao 1994"));
00096         // data
00097         m_vpExperiments[3]->AddDataFileToList("../DataFiles/TimeSeries/Erk1HYaoNGF.dat");
00098         //m_vpExperiments[1]->AddDataFileToList("../DataFiles/TimeSeries/PIP2PIP3DownwardNGF.dat");
00099         m_vpMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00100         // minimizable
00101         m_vpMinimizables.push_back(new SingleNetworkMinimizable());
00102         // parameters
00103         m_vpMinimizables[3]->Initialize(m_vpExperiments[3],m_vpMovers[3],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00104         // one scaling factor is fixed
00105         m_vpMinimizables[3]->GetConversionFactor(11)->SetFactorFixed(true);
00106         m_vpMinimizables[3]->GetConversionFactor(11)->SetFactorValue(1.0/(0.2*600000*0.1));
00107         // THESE TWO LINES FOR PI3K-
00108         m_vpMinimizables[1]->GetConversionFactor(24)->SetFactorFixed(true);
00109         m_vpMinimizables[1]->GetConversionFactor(24)->SetFactorValue(1.0/(0.2*600000*0.1));
00110         m_vpMinimizables[3]->SetRateConstantsWeight(0.0);
00111         // attach observer
00112         //m_vpEnsembleDataPlotters.push_back(new GnuPlotterEnsembleDataDirectorObserver());
00113         //m_vpEnsembleDataPlotters[3]->SetTitle("MAPK Cascade : NGF at 50 ng/ml, Yao 95: ODE");
00114         //m_vpEnsembleDataPlotters[3]->FixMinimizable(3);
00115         //this->Attach(m_vpEnsembleDataPlotters[3]);
00116 
00117         // expt. 5 - EGF at 30 ng/ml
00118         // networks and data
00119         m_vpNetworks.push_back(new CAlternateErkSubnetwork());
00120         m_vpExperiments.push_back(new Experiment(m_vpNetworks[4],"EGF Stimulation 30 ng/ml"));
00121         // put data files here
00122         m_vpExperiments[4]->AddDataFileToList("../DataFiles/TimeSeries/RasGreen1EGF.dat");
00123         // m_vpExperiments[1]->AddDataFileToList("../DataFiles/TimeSeries/BRafJohnson1EGF.dat");
00124         // mover and plotter
00125         m_vpMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00126         // minimizable
00127         m_vpMinimizables.push_back(new SingleNetworkMinimizable());
00128         // parameters
00129         m_vpMinimizables[4]->Initialize(m_vpExperiments[4],m_vpMovers[4],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00130         m_vpMinimizables[4]->GetConversionFactor(11)->SetFactorFixed(true);
00131         m_vpMinimizables[4]->GetConversionFactor(11)->SetFactorValue(1.0/(0.2*600000*0.1));
00132         m_vpMinimizables[4]->SetRateConstantsWeight(0.0);
00133         // attach observer
00134         //m_vpEnsembleDataPlotters.push_back(new GnuPlotterEnsembleDataDirectorObserver());
00135         //m_vpEnsembleDataPlotters[4]->SetTitle("MAPK Cascade : EGF at 30 ng/ml : ODE");
00136         //m_vpEnsembleDataPlotters[4]->FixMinimizable(4);
00137         //this->Attach(m_vpEnsembleDataPlotters[4]);
00138         
00139         // expt. 6 - NGF at 100 ng/ml
00140         // networks and data
00141         m_vpNetworks.push_back(new CAlternateErkSubnetwork());
00142         m_vpExperiments.push_back(new Experiment(m_vpNetworks[5],"NGF Stimulation 100 ng/ml"));
00143         // data
00144         m_vpExperiments[5]->AddDataFileToList("../DataFiles/TimeSeries/Raf1LandrethNGF.dat");
00145         m_vpExperiments[5]->AddDataFileToList("../DataFiles/TimeSeries/BRafLandrethNGF.dat");
00146         // mover and plotter
00147         m_vpMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00148         // minimizable
00149         m_vpMinimizables.push_back(new SingleNetworkMinimizable());
00150         // parameters
00151         m_vpMinimizables[5]->Initialize(m_vpExperiments[5],m_vpMovers[5],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00152         m_vpMinimizables[5]->SetRateConstantsWeight(0.0);
00153         // attach observer
00154         //m_vpEnsembleDataPlotters.push_back(new GnuPlotterEnsembleDataDirectorObserver());
00155         //m_vpEnsembleDataPlotters[5]->SetTitle("MAPK Cascade : NGF at 100 ng/ml : ODE");
00156         //m_vpEnsembleDataPlotters[5]->FixMinimizable(5);
00157         //this->Attach(m_vpEnsembleDataPlotters[5]);
00158         
00159         // expt. 7 - EGF at 100 ng/ml + 50-fold overexpression of HER
00160         // networks and data
00161         m_vpNetworks.push_back(new CAlternateErkSubnetwork());
00162         m_vpExperiments.push_back(new Experiment(m_vpNetworks[6],"EGF at 100 ng/ml, 50-fold HER Overexpression"));
00163         // data
00164         m_vpExperiments[6]->AddDataFileToList("../DataFiles/TimeSeries/ErkMekTraverseHERover.dat");
00165         m_vpMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00166         // minimizable
00167         m_vpMinimizables.push_back(new SingleNetworkMinimizable());
00168         // parameters
00169         m_vpMinimizables[6]->Initialize(m_vpExperiments[6],m_vpMovers[6],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00170         m_vpMinimizables[6]->SetRateConstantsWeight(0.0);
00171         // attach observer
00172         //m_vpEnsembleDataPlotters.push_back(new GnuPlotterEnsembleDataDirectorObserver());
00173         //m_vpEnsembleDataPlotters[6]->SetTitle("MAPK Cascade : EGF at 100 ng/ml, 50-fold HER Overexpression : ODE");
00174         //m_vpEnsembleDataPlotters[6]->FixMinimizable(6);
00175         //this->Attach(m_vpEnsembleDataPlotters[6]);
00176 
00177         // runnable 0 - 50 ng/ml NGF + DN Rap1
00178         m_vpNetworks.push_back(new CAlternateErkSubnetwork());
00179         m_vpMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00180         int nChemicals = m_vpNetworks[7]->GetNumberOfChemicals();
00181         m_vpCellObservers.push_back(new CellAverageObserver(nChemicals,61,1));
00182         m_vpRunnables.push_back(new CRunnable());
00183         m_vpRunnables[0]->SetComponents(m_vpNetworks[7],m_vpMovers[7],m_vpCellObservers[0]);
00184         //m_vpEnsembleRunPlotters.push_back(new GnuPlotterEnsembleRunDirectorObserver());
00185         //m_vpEnsembleRunPlotters[0]->SetTitle("MAPK Cascade : 50 ng/ml NGF + DN Rap1 : ODE");
00186         //m_vpEnsembleRunPlotters[0]->FixRunnable(0);
00187         //m_vpEnsembleRunPlotters[0]->AddChemicalToList(20);
00188         //this->Attach(m_vpEnsembleRunPlotters[0]);
00189 
00190         // runnable 1 - 50 ng/ml NGF + DN Ras 
00191         m_vpNetworks.push_back(new CAlternateErkSubnetwork());
00192         m_vpMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00193         nChemicals = m_vpNetworks[8]->GetNumberOfChemicals();
00194         m_vpCellObservers.push_back(new CellAverageObserver(nChemicals,61,1));
00195         m_vpRunnables.push_back(new CRunnable());
00196         m_vpRunnables[1]->SetComponents(m_vpNetworks[8],m_vpMovers[8],m_vpCellObservers[1]);
00197         //m_vpEnsembleRunPlotters.push_back(new GnuPlotterEnsembleRunDirectorObserver());
00198         //m_vpEnsembleRunPlotters[1]->SetTitle("MAPK Cascade : 50 ng/ml NGF + DN Ras : ODE");
00199         //m_vpEnsembleRunPlotters[1]->FixRunnable(1);
00200         //m_vpEnsembleRunPlotters[1]->AddChemicalToList(20);
00201         //this->Attach(m_vpEnsembleRunPlotters[1]);
00202 
00203         // runnable 2 - 100 ng/ml EGF alone
00204         m_vpNetworks.push_back(new CAlternateErkSubnetwork());
00205         m_vpMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00206         nChemicals = m_vpNetworks[9]->GetNumberOfChemicals();
00207         m_vpCellObservers.push_back(new CellAverageObserver(nChemicals,121,1));
00208         m_vpRunnables.push_back(new CRunnable());
00209         m_vpRunnables[2]->SetComponents(m_vpNetworks[9],m_vpMovers[9],m_vpCellObservers[2]);
00210         //m_vpEnsembleRunPlotters.push_back(new GnuPlotterEnsembleRunDirectorObserver());
00211         //m_vpEnsembleRunPlotters[2]->SetTitle("MAPK Cascade : 100 ng/ml EGF : ODE");
00212         //m_vpEnsembleRunPlotters[2]->FixRunnable(2);
00213         //m_vpEnsembleRunPlotters[2]->AddChemicalToList(20);
00214         //this->Attach(m_vpEnsembleRunPlotters[2]);
00215 
00216         // allocate space to accumulate statistics
00217         SumAllocate();
00218 
00219         // Define runs
00220         DefineRuns();
00221 
00222         // Define experiments
00223         DefineExperiments();
00224 
00225         // Load in the ensemble info
00226         LoadEnsembleInfo("ensemble.par");
00227 
00228 }
00229 
00230 CPC12AlternateEnsembleDirector::~CPC12AlternateEnsembleDirector()
00231 {
00232         for(int i = 0; i < m_vpEnsembleRunPlotters.size(); i++)
00233         {
00234                 this->Detach(m_vpEnsembleRunPlotters[i]);
00235         }
00236         for(i = 0; i < m_vpEnsembleDataPlotters.size(); i++)
00237         {
00238                 this->Detach(m_vpEnsembleDataPlotters[i]);
00239         }
00240 
00241 
00242 }
00243 
00244 void CPC12AlternateEnsembleDirector::DefineRuns()
00245 {       
00246         // NGF, 50 ng/ml + DN Rap1
00247         m_vpRunnables[0]->GetReactionNetwork()->RemoveReaction(18);
00248         m_vpRunnables[0]->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(228000.0);
00249         m_vpRunnables[0]->GetReactionNetwork()->GetChemical(1)->Reset();
00250 
00251         // NGF, 50 ng/ml + DN Ras
00252         m_vpRunnables[1]->GetReactionNetwork()->RemoveReaction(7);
00253         m_vpRunnables[1]->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0);
00254         m_vpRunnables[1]->GetReactionNetwork()->GetChemical(0)->Reset();
00255         m_vpRunnables[1]->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(228000.0);
00256         m_vpRunnables[1]->GetReactionNetwork()->GetChemical(1)->Reset();
00257 
00258         // EGF, 100 ng/ml
00259         m_vpRunnables[2]->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0);
00260         m_vpRunnables[2]->GetReactionNetwork()->GetChemical(0)->Reset();
00261         m_vpRunnables[2]->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00262         m_vpRunnables[2]->GetReactionNetwork()->GetChemical(1)->Reset();
00263         
00264         return;
00265 }
00266 
00267 void CPC12AlternateEnsembleDirector::DefineExperiments()
00268 {
00269         // 100 ng/ml EGF, 0 NGF
00270         m_vpMinimizables[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0);
00271         m_vpMinimizables[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00272         m_vpMinimizables[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00273         m_vpMinimizables[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();    
00274         
00275         // 100 ng/ml EGF, 0 NGF
00276         m_vpMinimizables[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0);
00277         m_vpMinimizables[1]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00278         m_vpMinimizables[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00279         m_vpMinimizables[1]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();    
00280 
00281         // 0 EGF, 50 ng/ml NGF
00282         m_vpMinimizables[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0);
00283         m_vpMinimizables[2]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00284         m_vpMinimizables[2]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(228000.0);
00285         m_vpMinimizables[2]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();    
00286 
00287         // 0 EGF, 50 ng/ml NGF
00288         m_vpMinimizables[3]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0);
00289         m_vpMinimizables[3]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00290         m_vpMinimizables[3]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(228000.0);
00291         m_vpMinimizables[3]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();    
00292         
00293         // 30 ng/ml EGF, 0 NGF
00294         m_vpMinimizables[4]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(3000600);
00295         m_vpMinimizables[4]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00296         m_vpMinimizables[4]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00297         m_vpMinimizables[4]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();    
00298         
00299         // 0 EGF, 100 ng/ml NGF
00300         m_vpMinimizables[5]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0);
00301         m_vpMinimizables[5]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00302         m_vpMinimizables[5]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(456000.0);
00303         m_vpMinimizables[5]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();    
00304         
00305         // 100 ng/ml EGF, 0 ng/ml NGF, 50-fold HER overexpression
00306         m_vpMinimizables[6]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(10002000.0);
00307         m_vpMinimizables[6]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00308         m_vpMinimizables[6]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00309         m_vpMinimizables[6]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();    
00310         double EGFR = m_vpMinimizables[6]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->GetInitialAmount();
00311         m_vpMinimizables[6]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->SetInitialAmount(50*EGFR);
00312         m_vpMinimizables[6]->GetExperiment()->GetReactionNetwork()->GetChemical(2)->Reset();
00313 
00314 }
00315 

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