00001
00002
00004
00005 #include "OneGeneEnsembleRunDirector.h"
00006
00008
00010
00011 COneGeneEnsembleRunDirector::COneGeneEnsembleRunDirector(int ensembleSize)
00012 :CEnsembleRunDirector(ensembleSize)
00013 {
00014 double maxSimTime = 90.0;
00015 int intTime = (int) maxSimTime + 2;
00016 double stepSize = 0.0001;
00017 double frequency = 1.0;
00018 double moveTol = 1.0e-6;
00019
00020 m_vpRxnNetworks.push_back(new OneGeneInhibitoryNetwork());
00021 m_vpRxnMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00022 int nChemicals = m_vpRxnNetworks[0]->GetNumberOfChemicals();
00023 m_vpCellObservers.push_back(new CellAverageObserver(nChemicals,intTime,1));
00024 m_vpRunnables.push_back(new CRunnable());
00025 m_vpRunnables[0]->SetComponents(m_vpRxnNetworks[0],m_vpRxnMovers[0],m_vpCellObservers[0]);
00026 m_vpEnsemblePlotters.push_back(new GnuPlotterEnsembleRunDirectorObserver());
00027 m_vpEnsemblePlotters[0]->SetTitle("OGN : 1 Free Promoter, No Protein : ODE");
00028 m_vpEnsemblePlotters[0]->FixRunnable(0);
00029 m_vpEnsemblePlotters[0]->AddChemicalToList(2);
00030 m_vpEnsemblePlotters[0]->AddChemicalToList(3);
00031 this->Attach(m_vpEnsemblePlotters[0]);
00032
00033 m_vpRxnNetworks.push_back(new OneGeneInhibitoryNetwork());
00034 m_vpRxnMovers.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00035 nChemicals = m_vpRxnNetworks[1]->GetNumberOfChemicals();
00036 m_vpCellObservers.push_back(new CellAverageObserver(nChemicals,intTime,1));
00037 m_vpRunnables.push_back(new CRunnable());
00038 m_vpRunnables[1]->SetComponents(m_vpRxnNetworks[1],m_vpRxnMovers[1],m_vpCellObservers[1]);
00039 m_vpEnsemblePlotters.push_back(new GnuPlotterEnsembleRunDirectorObserver());
00040 m_vpEnsemblePlotters[1]->SetTitle("OGN : 1 Bound Promoter, No Protein : ODE");
00041 m_vpEnsemblePlotters[1]->FixRunnable(1);
00042 m_vpEnsemblePlotters[1]->AddChemicalToList(2);
00043 m_vpEnsemblePlotters[1]->AddChemicalToList(3);
00044 this->Attach(m_vpEnsemblePlotters[1]);
00045
00046
00047 SumAllocate();
00048
00049
00050 DefineRuns();
00051
00052
00053 LoadEnsembleInfo("ensemble_200.par");
00054 }
00055
00056 COneGeneEnsembleRunDirector::~COneGeneEnsembleRunDirector()
00057 {
00058
00059 }
00060
00061 void COneGeneEnsembleRunDirector::DefineRuns()
00062 {
00063
00064
00065
00066 m_vpRunnables[0]->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(1.0);
00067 m_vpRunnables[0]->GetReactionNetwork()->GetChemical(0)->Reset();
00068 m_vpRunnables[0]->GetReactionNetwork()->GetChemical(3)->SetInitialAmount(0.0);
00069 m_vpRunnables[0]->GetReactionNetwork()->GetChemical(3)->Reset();
00070
00071
00072 m_vpRunnables[1]->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0);
00073 m_vpRunnables[1]->GetReactionNetwork()->GetChemical(0)->Reset();
00074 m_vpRunnables[1]->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(1.0);
00075 m_vpRunnables[1]->GetReactionNetwork()->GetChemical(1)->Reset();
00076 m_vpRunnables[1]->GetReactionNetwork()->GetChemical(3)->SetInitialAmount(0.0);
00077 m_vpRunnables[1]->GetReactionNetwork()->GetChemical(3)->Reset();
00078
00079 }