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

OneGeneStochasticNetworkMinimizableDirector.cpp

Go to the documentation of this file.
00001 // OneGeneStochasticNetworkMinimizableDirector.cpp: implementation of the COneGeneStochasticNetworkMinimizableDirector class.
00002 //
00004 
00005 #include "OneGeneStochasticNetworkMinimizableDirector.h"
00006 
00008 // Construction/Destruction
00010 
00011 COneGeneStochasticNetworkMinimizableDirector::COneGeneStochasticNetworkMinimizableDirector()
00012 {
00013         double maxSimTime = 91.0;
00014         double stepSize = 0.0001;
00015         double frequency = 1.0;
00016         int nCells = 32;
00017         double moveTol = 1.0e-06;
00018         int seed = 298989;
00019 
00020         bool rateFlag = true;
00021         bool chemFlag = false;
00022         bool logsFlag = false;
00023         double timeWeight = 1.0;
00024         double rateWeight = 0.0;
00025         double chemWeight = 0.0;
00026 
00027         m_dGammaSquared = 0.0;
00028 
00029         // fake experiment 1 - 1 free promoter, no mRNA or protein
00030         _networkList.push_back(new OneGeneInhibitoryNetwork());
00031         _experimentList.push_back(new Experiment(_networkList[0],"OGN : 1 Free Promoter"));
00032         // data files
00033 //      _experimentList[0]->AddDataFileToList("OneGeneData1.dat");
00034         _experimentList[0]->AddDataFileToList("smallOneGeneDS.dat");
00035         // mover and plotter
00036         _moverList.push_back(new CContinuousTimeMonteCarloMover(seed,frequency));
00037         m_vpPlotterList.push_back(new GnuPlotterTimeSeriesObserver());
00038         // title
00039         m_vpPlotterList[0]->SetTitle("Small OGN:1 Free Promoter:CTMC");
00040         // minimizable
00041         _minimizableList.push_back(new SingleNetworkMinimizable());
00042         // parameters
00043         _minimizableList[0]->Initialize(_experimentList[0],_moverList[0],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00044         _minimizableList[0]->SetRateConstantsWeight(0.0);
00045         // attach observer
00046         _minimizableList[0]->Attach(m_vpPlotterList[0]);
00047 
00048         // allocate the master residuals list
00049         int masterResidualsSize = 0;
00050         for(int i = 0; i < _minimizableList.size(); i++)
00051         {
00052                 masterResidualsSize += _minimizableList[i]->GetNResiduals();
00053         }
00054         if(m_dGammaSquared > 0.0)
00055         {
00056                 masterResidualsSize += 1;
00057         }
00058         Allocate(masterResidualsSize);
00059 
00060         cout << "Master Residuals size : " << masterResidualsSize << endl;
00061 
00062         // define the experiments
00063         DefineExperiments();
00064 }
00065 
00066 COneGeneStochasticNetworkMinimizableDirector::~COneGeneStochasticNetworkMinimizableDirector()
00067 {
00068         for(int i = 0; i < _minimizableList.size(); i++)
00069         {
00070                 _minimizableList[i]->Detach(m_vpPlotterList[i]);
00071         }
00072         for(int i = 0; i < m_vpPlotterList.size(); i++)
00073         {
00074                 delete m_vpPlotterList[i];
00075         }
00076 }
00077         
00078 void COneGeneStochasticNetworkMinimizableDirector::DefineExperiments()
00079 {
00080         // 1 free promoter region, no bound, no mRNA, no protein
00081         _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(1.0);
00082         _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00083         _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00084         _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->Reset();
00085 }
00086 
00087 double COneGeneStochasticNetworkMinimizableDirector::GetParameter(int parIndex)
00088 {
00089         // Just return the first set (they are all the same)
00090         return _minimizableList[0]->GetParameter(parIndex);
00091 }
00092 
00093 int COneGeneStochasticNetworkMinimizableDirector::GetNParameters()
00094 {
00095         // Return the size of the first set (all have the same size)
00096         return _minimizableList[0]->GetNParameters();
00097 }
00098 

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