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

PC12AlternateMinimizableDirector.cpp

Go to the documentation of this file.
00001 // PC12AlternateMinimizableDirector.cpp: implementation of the CPC12AlternateMinimizableDirector class.
00002 //
00004 
00005 #include "PC12AlternateMinimizableDirector.h"
00006 
00008 // Construction/Destruction
00010 
00011 CPC12AlternateMinimizableDirector::CPC12AlternateMinimizableDirector()
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 = 0.0;
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         // expt. 1 - EGF at 100 ng/ml, Traverse 1994 data
00031         // networks and data
00032         _networkList.push_back(new CAlternateErkSubnetwork());
00033         _experimentList.push_back(new Experiment(_networkList[0],"EGF Stimulation 100 ng/ml - Traverse 1994"));
00034         // put data files here
00035         _experimentList[0]->AddDataFileToList("../DataFiles/TimeSeries/ErkMekTraverse2EGF.dat");
00036         _experimentList[0]->AddDataFileToList("../DataFiles/TimeSeries/Raf1LandrethEGF.dat");
00037         // mover and plotter
00038         _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00039         //_plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00040         // title
00041         //_plotterList[0]->SetTitle("Small Erk Subnetwork:EGF Stimulation (100 ng/ml, T 1994):ODE");
00042         // minimizable
00043         _minimizableList.push_back(new SingleNetworkMinimizable());
00044         // parameters
00045         _minimizableList[0]->Initialize(_experimentList[0],_moverList[0],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00046         _minimizableList[0]->SetRateConstantsWeight(0.0);
00047         // attach observer
00048         //_minimizableList[0]->Attach(_plotterList[0]);
00049 
00050         // expt. 2 - EGF at 100 ng/ml, Yao 1995 data
00051         // networks and data
00052         _networkList.push_back(new CAlternateErkSubnetwork());
00053         _experimentList.push_back(new Experiment(_networkList[1],"EGF Stimulation 100 ng/ml - Yao 1995"));
00054         // put data files here
00055         _experimentList[1]->AddDataFileToList("../DataFiles/TimeSeries/Erk1HYaoEGF.dat");
00056         // mover and plotter
00057         _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00058         //_plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00059         // title
00060         //_plotterList[1]->SetTitle("Small Erk Subnetwork:EGF Stimulation (100 ng/ml, Y 1995):ODE");
00061         // minimizable
00062         _minimizableList.push_back(new SingleNetworkMinimizable());
00063         // parameters
00064         _minimizableList[1]->Initialize(_experimentList[1],_moverList[1],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00065         _minimizableList[1]->SetRateConstantsWeight(0.0);
00066         // attach observer
00067         //_minimizableList[1]->Attach(_plotterList[1]);
00068 
00069         // expt. 3 - NGF at 50 ng/ml, Traverse 1994 data
00070         // networks and data
00071         _networkList.push_back(new CAlternateErkSubnetwork());
00072         _experimentList.push_back(new Experiment(_networkList[2],"NGF Stimulation 50 ng/ml - T 1994"));
00073         // data
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         // mover and plotter
00078         _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00079         //_plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00080         // title
00081         //_plotterList[2]->SetTitle("Small Erk Subnetwork:NGF Stimulation (50 ng/ml, T 1994):ODE");
00082         // minimizable
00083         _minimizableList.push_back(new SingleNetworkMinimizable());
00084         // parameters
00085         _minimizableList[2]->Initialize(_experimentList[2],_moverList[2],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00086         // one scaling factor is fixed
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         // attach observer
00093         //_minimizableList[2]->Attach(_plotterList[2]);
00094         
00095         // expt. 4 - NGF at 50 ng/ml, Yao 1995 data
00096         // networks and data
00097         _networkList.push_back(new CAlternateErkSubnetwork());
00098         _experimentList.push_back(new Experiment(_networkList[3],"NGF Stimulation 50 ng/ml - Yao 1995"));
00099         // data
00100         _experimentList[3]->AddDataFileToList("../DataFiles/TimeSeries/Erk1HYaoNGF.dat");
00101         // mover and plotter
00102         _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00103         //_plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00104         // title
00105         //_plotterList[3]->SetTitle("Small Erk Subnetwork:NGF Stimulation (50 ng/ml, Y 1995):ODE");
00106         // minimizable
00107         _minimizableList.push_back(new SingleNetworkMinimizable());
00108         // parameters
00109         _minimizableList[3]->Initialize(_experimentList[3],_moverList[3],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00110         // one scaling factor is fixed
00111         _minimizableList[3]->SetRateConstantsWeight(0.0);
00112         // attach observer
00113         //_minimizableList[3]->Attach(_plotterList[3]);
00114 
00115         // expt. 3 - EGF at 30 ng/ml
00116         // networks and data
00117         _networkList.push_back(new CAlternateErkSubnetwork());
00118         _experimentList.push_back(new Experiment(_networkList[4],"EGF Stimulation 30 ng/ml"));
00119         // put data files here
00120         _experimentList[4]->AddDataFileToList("../DataFiles/TimeSeries/RasGreen1EGF.dat");
00121         // mover and plotter
00122         _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00123         //_plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00124         // title
00125         //_plotterList[4]->SetTitle("Small Erk Subnetwork:EGF Stimulation (30 ng/ml):ODE");
00126         // minimizable
00127         _minimizableList.push_back(new SingleNetworkMinimizable());
00128         // parameters
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         // attach observer
00134         //_minimizableList[4]->Attach(_plotterList[4]);
00135         
00136         
00137         // expt. 4 - NGF at 100 ng/ml
00138         // networks and data
00139         _networkList.push_back(new CAlternateErkSubnetwork());
00140         _experimentList.push_back(new Experiment(_networkList[5],"NGF Stimulation 100 ng/ml"));
00141         // data
00142         _experimentList[5]->AddDataFileToList("../DataFiles/TimeSeries/Raf1LandrethNGF.dat");
00143         _experimentList[5]->AddDataFileToList("../DataFiles/TimeSeries/BRafLandrethNGF.dat");
00144         // mover and plotter
00145         _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00146         //_plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00147         // title
00148         //_plotterList[5]->SetTitle("Small Erk Subnetwork:NGF Stimulation (100 ng/ml):ODE");
00149         // minimizable
00150         _minimizableList.push_back(new SingleNetworkMinimizable());
00151         // parameters
00152         _minimizableList[5]->Initialize(_experimentList[5],_moverList[5],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00153         // one scaling factor is fixed
00154         _minimizableList[5]->SetRateConstantsWeight(0.0);
00155         // attach observer
00156         //_minimizableList[5]->Attach(_plotterList[5]);
00157         
00158         // expt. 5 - EGF at 100 ng/ml + 50-fold overexpression of HER
00159         // networks and data
00160         _networkList.push_back(new CAlternateErkSubnetwork());
00161         _experimentList.push_back(new Experiment(_networkList[6],"EGF at 100 ng/ml, 50-fold HER Overexpression"));
00162         // data
00163         _experimentList[6]->AddDataFileToList("../DataFiles/TimeSeries/ErkMekTraverseHERover.dat");
00164         _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00165         // minimizable
00166         _minimizableList.push_back(new SingleNetworkMinimizable());
00167         // parameters
00168         _minimizableList[6]->Initialize(_experimentList[6],_moverList[6],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00169         _minimizableList[6]->SetRateConstantsWeight(0.0);
00170 
00171 
00172         // allocate the master residuals list
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         // define the experiments
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         // 100 ng/ml EGF, 0 NGF
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         // 100 ng/ml EGF, 0 NGF
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         // 0 EGF, 50 ng/ml NGF
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         // 0 EGF, 50 ng/ml NGF
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         // 30 ng/ml EGF, 0 NGF
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         // 0 EGF, 100 ng/ml NGF
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         // 100 ng/ml EGF, 0 ng/ml NGF, 50-fold HER overexpression
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         // for this director, everyone has the same parameters so any set 
00257         // can be returned
00258         return _minimizableList[0]->GetParameter(parIndex);
00259 }
00260 
00261 int CPC12AlternateMinimizableDirector::GetNParameters()
00262 {
00263         // ditto as for GetParameters()
00264         return _minimizableList[0]->GetNParameters();
00265 }

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