00001
00002
00004
00005 #include "OneGeneStochasticNetworkMinimizableDirector.h"
00006
00008
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
00030 _networkList.push_back(new OneGeneInhibitoryNetwork());
00031 _experimentList.push_back(new Experiment(_networkList[0],"OGN : 1 Free Promoter"));
00032
00033
00034 _experimentList[0]->AddDataFileToList("smallOneGeneDS.dat");
00035
00036 _moverList.push_back(new CContinuousTimeMonteCarloMover(seed,frequency));
00037 m_vpPlotterList.push_back(new GnuPlotterTimeSeriesObserver());
00038
00039 m_vpPlotterList[0]->SetTitle("Small OGN:1 Free Promoter:CTMC");
00040
00041 _minimizableList.push_back(new SingleNetworkMinimizable());
00042
00043 _minimizableList[0]->Initialize(_experimentList[0],_moverList[0],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00044 _minimizableList[0]->SetRateConstantsWeight(0.0);
00045
00046 _minimizableList[0]->Attach(m_vpPlotterList[0]);
00047
00048
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
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
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
00090 return _minimizableList[0]->GetParameter(parIndex);
00091 }
00092
00093 int COneGeneStochasticNetworkMinimizableDirector::GetNParameters()
00094 {
00095
00096 return _minimizableList[0]->GetNParameters();
00097 }
00098