00001
00002
00004
00005 #include "ExampleNetworkMinimizableDirector.h"
00006
00008
00010
00011 CExampleNetworkMinimizableDirector::CExampleNetworkMinimizableDirector()
00012 {
00013
00014 double maxSimTime = 91.0;
00015 double stepSize = 0.001;
00016 double frequency = 1.0;
00017 int nCells = 1;
00018 double moveTol = 0.0001;
00019
00020
00021 bool rateFlag = true;
00022 bool chemFlag = false;
00023 bool logsFlag = false;
00024 double timeWeight = 1.0;
00025 double rateWeight = 0.0;
00026 double chemWeight = 0.0;
00027
00028
00029
00030 _networkList.push_back(new CExampleNetwork());
00031 _experimentList.push_back(new Experiment(_networkList[0],"Ligand Stimulation"));
00032
00033 _experimentList[0]->AddDataFileToList("ExampleNetwork.dat");
00034
00035 _moverList.push_back(new CQualityControlRungeKuttaMover(frequency,stepSize,moveTol));
00036 _plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00037
00038 _plotterList[0]->SetTitle("G Protein Activation by RTK");
00039
00040 _minimizableList.push_back(new SingleNetworkMinimizable());
00041
00042 _minimizableList[0]->Initialize(_experimentList[0],_moverList[0],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00043 _minimizableList[0]->SetRateConstantsWeight(0.0);
00044
00045 _minimizableList[0]->Attach(_plotterList[0]);
00046
00047
00048 int masterResidualsSize = 0;
00049 for(int i = 0; i < _minimizableList.size(); i++)
00050 {
00051 masterResidualsSize += _minimizableList[i]->GetNResiduals();
00052 }
00053 Allocate(masterResidualsSize);
00054
00055 cout << "Master Residuals size : " << masterResidualsSize << endl;
00056
00057
00058 DefineExperiments();
00059 }
00060
00061 CExampleNetworkMinimizableDirector::~CExampleNetworkMinimizableDirector()
00062 {
00063 int i;
00064 for(i = 0; i < _minimizableList.size(); i++)
00065 {
00066 _minimizableList[i]->Detach(_plotterList[i]);
00067 }
00068 for(i = 0; i < _plotterList.size(); i++)
00069 {
00070 delete _plotterList[i];
00071 }
00072 }
00073
00074 void CExampleNetworkMinimizableDirector::DefineExperiments()
00075 {
00076 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(1000.0);
00077 _minimizableList[0]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->Reset();
00078
00079 }
00080
00081 double CExampleNetworkMinimizableDirector::GetParameter(int parIndex)
00082 {
00083
00084
00085 return _minimizableList[0]->GetParameter(parIndex);
00086 }
00087
00088 int CExampleNetworkMinimizableDirector::GetNParameters()
00089 {
00090
00091 return _minimizableList[0]->GetNParameters();
00092 }
00093