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

CombinatorialNetworkMinimizableDirector.cpp

Go to the documentation of this file.
00001 // CombinatorialNetworkMinimizableDirector.cpp: implementation of the CCombinatorialNetworkMinimizableDirector class.
00002 //
00004 
00005 #include "CombinatorialNetworkMinimizableDirector.h"
00006 
00008 // Construction/Destruction
00010 
00011 CCombinatorialNetworkMinimizableDirector::CCombinatorialNetworkMinimizableDirector()
00012 {
00013         // counter for experimet number
00014         int expt = -1;
00015         // create networks,experiments,observers,movers,minimizables
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         //computer time cost
00023         m_dGammaSquared = 0.0;
00024         
00025         // flags for all minimizables
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         // expt. 1 - D016 no aTc, no IPTG
00034         expt++;
00035         _networkList.push_back(new CCombinatorialNetwork());
00036         _experimentList.push_back(new Experiment(_networkList[expt],"D016 no aTc, no IPTG"));
00037         // put data files here
00038         _experimentList[expt]->AddDataFileToList("../DataFiles/Combinatorial/D016_1.dat");
00039         // mover
00040         _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00041         // minimizable
00042         _minimizableList.push_back(new SingleNetworkMinimizable());
00043         // parameters
00044         _minimizableList[expt]->Initialize(_experimentList[expt],_moverList[expt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00045         //_minimizableList[0]->GetConversionFactor(7)->SetFactorFixed(true);
00046         //_minimizableList[0]->GetConversionFactor(7)->SetFactorValue(100.0/100000.0);
00047         _minimizableList[expt]->SetRateConstantsWeight(0.0);
00048 
00049         // expt. 2 - D016  aTc, no IPTG
00050         expt++;
00051         _networkList.push_back(new CCombinatorialNetwork());
00052         _experimentList.push_back(new Experiment(_networkList[expt],"D016 with aTc, no IPTG"));
00053         // put data files here
00054         _experimentList[expt]->AddDataFileToList("../DataFiles/Combinatorial/D016_2.dat");
00055         // mover
00056         _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00057         // minimizable
00058         _minimizableList.push_back(new SingleNetworkMinimizable());
00059         // parameters
00060         _minimizableList[expt]->Initialize(_experimentList[expt],_moverList[expt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00061         //_minimizableList[0]->GetConversionFactor(7)->SetFactorFixed(true);
00062         //_minimizableList[0]->GetConversionFactor(7)->SetFactorValue(100.0/100000.0);
00063         _minimizableList[expt]->SetRateConstantsWeight(0.0);
00064 
00065         // expt. 3 - D016 no aTc, with IPTG
00066         expt++;
00067         _networkList.push_back(new CCombinatorialNetwork());
00068         _experimentList.push_back(new Experiment(_networkList[expt],"D016 no aTc, with IPTG"));
00069         // put data files here
00070         _experimentList[expt]->AddDataFileToList("../DataFiles/Combinatorial/D016_3.dat");
00071         // mover
00072         _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00073         // minimizable
00074         _minimizableList.push_back(new SingleNetworkMinimizable());
00075         // parameters
00076         _minimizableList[expt]->Initialize(_experimentList[expt],_moverList[expt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00077         //_minimizableList[0]->GetConversionFactor(7)->SetFactorFixed(true);
00078         //_minimizableList[0]->GetConversionFactor(7)->SetFactorValue(100.0/100000.0);
00079         _minimizableList[expt]->SetRateConstantsWeight(0.0);
00080 
00081         // expt. 4 - D016 with aTc and IPTG
00082         expt++;
00083         _networkList.push_back(new CCombinatorialNetwork());
00084         _experimentList.push_back(new Experiment(_networkList[expt],"D016 with aTc and IPTG"));
00085         // put data files here
00086         _experimentList[expt]->AddDataFileToList("../DataFiles/Combinatorial/D016_4.dat");
00087         // mover
00088         _moverList.push_back(new CQualityControlCashKarpMover(frequency,stepSize,moveTol));
00089         // minimizable
00090         _minimizableList.push_back(new SingleNetworkMinimizable());
00091         // parameters
00092         _minimizableList[expt]->Initialize(_experimentList[expt],_moverList[expt],nCells,rateFlag,chemFlag,logsFlag,timeWeight,rateWeight,chemWeight);
00093         //_minimizableList[0]->GetConversionFactor(7)->SetFactorFixed(true);
00094         //_minimizableList[0]->GetConversionFactor(7)->SetFactorValue(100.0/100000.0);
00095         _minimizableList[expt]->SetRateConstantsWeight(0.0);
00096 
00097 //Plot Commands
00098         expt = -1;
00099 
00100         //expt D016 no aTc, no IPTG
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         //expt D016 with aTc, no IPTG
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         //expt D016 no aTc, with IPTG
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         //expt D016 with aTc and IPTG
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         // allocate the master residuals list
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         // define the experiments
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         // strain D016 general settings
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         //no aTc, no IPTG
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         //with aTc, no IPTG
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         //no aTc, with IPTG
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         //with aTc and IPTG
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         // for this director, everyone has the same parameters so any set 
00219         // can be returned
00220         return _minimizableList[0]->GetParameter(parIndex);
00221 }
00222 
00223 int CCombinatorialNetworkMinimizableDirector::GetNParameters()
00224 {
00225         // ditto as for GetParameters()
00226         return _minimizableList[0]->GetNParameters();
00227 }

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