00001
00002
00004
00005 #include "CombinatorialNetworkMinimizableDirector.h"
00006
00008
00010
00011 CCombinatorialNetworkMinimizableDirector::CCombinatorialNetworkMinimizableDirector()
00012 {
00013
00014 int expt = -1;
00015
00016 double maxSimTime = 720.0;
00017 double stepSize = 0.001;
00018 double frequency = 0.1;
00019 int nCells = 1;
00020 double moveTol = 1.0e-06;
00021
00022
00023 m_dGammaSquared = 0.0;
00024
00025
00026 bool rateFlag = true;
00027 bool chemFlag = false;
00028 bool logsFlag = false;
00029 double timeWeight = 1.0;
00030 double rateWeight = 0.0;
00031 double chemWeight = 0.0;
00032
00033
00034 expt++;
00035 _networkList.push_back(new CCombinatorialNetwork());
00036 _experimentList.push_back(new Experiment(_networkList[expt],"D016 no aTc, no IPTG"));
00037
00038 _experimentList[expt]->AddDataFileToList("../DataFiles/Combinatorial/D016_1.dat");
00039
00040 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00041
00042 _minimizableList.push_back(new SingleNetworkMinimizable());
00043
00044 _minimizableList[expt]->Initialize(_experimentList[expt],_moverList[expt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00045
00046
00047 _minimizableList[expt]->SetRateConstantsWeight(0.0);
00048
00049
00050 expt++;
00051 _networkList.push_back(new CCombinatorialNetwork());
00052 _experimentList.push_back(new Experiment(_networkList[expt],"D016 with aTc, no IPTG"));
00053
00054 _experimentList[expt]->AddDataFileToList("../DataFiles/Combinatorial/D016_2.dat");
00055
00056 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00057
00058 _minimizableList.push_back(new SingleNetworkMinimizable());
00059
00060 _minimizableList[expt]->Initialize(_experimentList[expt],_moverList[expt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00061
00062
00063 _minimizableList[expt]->SetRateConstantsWeight(0.0);
00064
00065
00066 expt++;
00067 _networkList.push_back(new CCombinatorialNetwork());
00068 _experimentList.push_back(new Experiment(_networkList[expt],"D016 no aTc, with IPTG"));
00069
00070 _experimentList[expt]->AddDataFileToList("../DataFiles/Combinatorial/D016_3.dat");
00071
00072 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00073
00074 _minimizableList.push_back(new SingleNetworkMinimizable());
00075
00076 _minimizableList[expt]->Initialize(_experimentList[expt],_moverList[expt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00077
00078
00079 _minimizableList[expt]->SetRateConstantsWeight(0.0);
00080
00081
00082 expt++;
00083 _networkList.push_back(new CCombinatorialNetwork());
00084 _experimentList.push_back(new Experiment(_networkList[expt],"D016 with aTc and IPTG"));
00085
00086 _experimentList[expt]->AddDataFileToList("../DataFiles/Combinatorial/D016_4.dat");
00087
00088 _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00089
00090 _minimizableList.push_back(new SingleNetworkMinimizable());
00091
00092 _minimizableList[expt]->Initialize(_experimentList[expt],_moverList[expt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00093
00094
00095 _minimizableList[expt]->SetRateConstantsWeight(0.0);
00096
00097
00098 expt = -1;
00099
00100
00101 expt++;
00102 _plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00103 _plotterList[expt]->SetTitle("D016: No aTc, No IPTG");
00104 _minimizableList[expt]->Attach(_plotterList[expt]);
00105
00106
00107 expt++;
00108 _plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00109 _plotterList[expt]->SetTitle("D016: With aTc, No IPTG");
00110 _minimizableList[expt]->Attach(_plotterList[expt]);
00111
00112
00113 expt++;
00114 _plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00115 _plotterList[expt]->SetTitle("D016: No aTc, with IPTG");
00116 _minimizableList[expt]->Attach(_plotterList[expt]);
00117
00118
00119 expt++;
00120 _plotterList.push_back(new GnuPlotterTimeSeriesObserver());
00121 _plotterList[expt]->SetTitle("D016: with aTc and IPTG");
00122 _minimizableList[expt]->Attach(_plotterList[expt]);
00123
00124
00125 int masterResidualsSize = 0;
00126 for(int i = 0; i < _minimizableList.size(); i++)
00127 {
00128 int subRes = _minimizableList[i]->GetNResiduals();
00129 masterResidualsSize += subRes;
00130 cout << subRes << " residuals in minimizable " << i << endl;
00131 }
00132 if(m_dGammaSquared > 0.0)
00133 {
00134 masterResidualsSize += 1;
00135 }
00136 Allocate(masterResidualsSize);
00137
00138 cout << "Master Residuals size : " << masterResidualsSize << endl;
00139
00140
00141 DefineExperiments();
00142
00143 }
00144
00145 CCombinatorialNetworkMinimizableDirector::~CCombinatorialNetworkMinimizableDirector()
00146 {
00147 for(int i = 0; i < _plotterList.size(); i++)
00148 {
00149 _minimizableList[i]->Detach(_plotterList[i]);
00150 delete _plotterList[i];
00151 }
00152 }
00153
00154 void CCombinatorialNetworkMinimizableDirector::DefineExperiments()
00155 {
00156 int expt = -1;
00157
00158
00159 for (expt = 0; expt < 4; expt++) {
00160 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(44);
00161 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(43);
00162 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(42);
00163 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(41);
00164 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(40);
00165 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(39);
00166 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(38);
00167 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(37);
00168 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(36);
00169 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(35);
00170 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(34);
00171 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(33);
00172 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(30);
00173 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(29);
00174 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(28);
00175 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(27);
00176 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(26);
00177 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(25);
00178 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(22);
00179 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(21);
00180 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(20);
00181 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(19);
00182 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(18);
00183 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(17);
00184 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(16);
00185 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(14);
00186 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->RemoveReaction(12);
00187 }
00188
00189 expt = -1;
00190
00191 expt++;
00192 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0);
00193 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00194 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->ChemicalReset();
00195
00196
00197 expt++;
00198 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(500.0);
00199 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(0.0);
00200 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->ChemicalReset();
00201
00202
00203 expt++;
00204 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(0.0);
00205 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(500.0);
00206 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->ChemicalReset();
00207
00208
00209 expt++;
00210 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->GetChemical(0)->SetInitialAmount(500.0);
00211 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->GetChemical(1)->SetInitialAmount(500.0);
00212 _minimizableList[expt]->GetExperiment()->GetReactionNetwork()->ChemicalReset();
00213
00214 }
00215
00216 double CCombinatorialNetworkMinimizableDirector::GetParameter(int parIndex)
00217 {
00218
00219
00220 return _minimizableList[0]->GetParameter(parIndex);
00221 }
00222
00223 int CCombinatorialNetworkMinimizableDirector::GetNParameters()
00224 {
00225
00226 return _minimizableList[0]->GetNParameters();
00227 }