Team:WashU/FBA

From 2012.igem.org

(Difference between revisions)
 
(6 intermediate revisions not shown)
Line 4: Line 4:
<html>
<html>
-
<div id = "zconstructchar">
+
<div id = "growth">
<h1>Flux Balance Analysis</h1>
<h1>Flux Balance Analysis</h1>
<p>
<p>
-
Rather than constructing our model from the ground up, we built off the work of Knoop et al. and their flux balance analysis model created for Synechocystis sp. PCC6803.2 In addition, we incorporated the work of Nogales et al. and their more recent model, which highlights the photosynthetic pathways in Synechocystis.3 Finally, we used the KEGG online reaction database to supplement our model.  
+
Rather than constructing our model from the ground up, we built off the work of Knoop et al. and their flux balance analysis model created for <i>Synechocystis</i> sp. PCC 6803.<sup><a href= "http://dl.dropbox.com/u/88390549/knoop%20model.pdf">2</a></sup> In addition, we incorporated the work of Nogales et al. and their more recent model, which highlights the photosynthetic pathways in <i>Synechocystis</i>.<sup><a href="http://dl.dropbox.com/u/88390549/6803%20model.pdf">3</a></sup> Finally, we used the KEGG online reaction database to supplement our model.
 +
<br>
 +
<br>
 +
The COBRA Toolbox (Constraints Based Reconstruction and Analysis)<sup><a href="http://dl.dropbox.com/u/88390549/genome-scale%20model%20protocol.pdf">4</a></sup> and MATLAB were used to read and modify the model. The Knoop model lacked the terpenoid backbone biosynthesis, carotenoid biosynthesis, and the saffron biosynthesis pathway. We added a condensed version of these pathways to the existing model using the ‘addReaction’ command in the COBRA Toolbox. An excerpt of the code can be found below.  
<br>
<br>
-
The COBRA Toolbox (Constraints Based Reconstruction and Analysis)4 and MATLAB were used to read and modify the model. The Knoop model lacked the terpenoid backbone biosynthesis, carotenoid biosynthesis, and the saffron biosynthesis pathway. We added a condensed version of these pathways to the existing model using the ‘addReaction’ command in the COBRA Toolbox. An excerpt of the code can be found below.
 
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R381',{'C00022','C00118','C00005','C00002','h2mb4p','C00006','C00008','C00013','C00020','C00011'},[-1,-1,-2,-2,1,2,1,1,1,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R381',{'C00022','C00118','C00005','C00002','h2mb4p','C00006','C00008','C00013','C00020','C00011'},[-1,-1,-2,-2,1,2,1,1,1,1],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R382',{'h2mb4p','C00005','ipdp','C00006'},[-1,-1,1,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R382',{'h2mb4p','C00005','ipdp','C00006'},[-1,-1,1,1],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R383',{'h2mb4p','C00005','dmpp','C00006'},[-1,-1,1,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R383',{'h2mb4p','C00005','dmpp','C00006'},[-1,-1,1,1],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R384',{'ipdp','dmpp'},[-1,1],true,-1000,1000);
modelKnoop=addReaction(modelKnoop,'R384',{'ipdp','dmpp'},[-1,1],true,-1000,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R385',{'ipdp','dmpp','grpp','C00013'},[-1,-1,1,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R385',{'ipdp','dmpp','grpp','C00013'},[-1,-1,1,1],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R386',{'ipdp','grpp','fpp','C00013'},[-1,-1,1,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R386',{'ipdp','grpp','fpp','C00013'},[-1,-1,1,1],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R387',{'fpp','C00005','squa','C00006','C00013'},[-2,-1,1,1,2],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R387',{'fpp','C00005','squa','C00006','C00013'},[-2,-1,1,1,2],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R388',{'fpp','ipdp','C00013','dpp'},[-1,-7,7,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R388',{'fpp','ipdp','C00013','dpp'},[-1,-7,7,1],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R389',{'ggpp','C00005','ppp','C00006'},[-1,-3,1,3],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R389',{'ggpp','C00005','ppp','C00006'},[-1,-3,1,3],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R390',{'fpp','ipdp','C00013','ggpp'},[-1,-1,1,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R390',{'fpp','ipdp','C00013','ggpp'},[-1,-1,1,1],false,0,1000);
 +
<br>
 +
<br>
modelKnoop=addReaction(modelKnoop,'R391',{'ggpp','C00007','b-caro','C00013'},[-2,-2,1,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R391',{'ggpp','C00007','b-caro','C00013'},[-2,-2,1,1],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R392',{'b-caro','C00007','ech'},[-1,-1,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R392',{'b-caro','C00007','ech'},[-1,-1,1],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R393',{'b-caro','C00005','C00007','zeax','C00006'},[-1,-2,-2,1,2],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R393',{'b-caro','C00005','C00007','zeax','C00006'},[-1,-2,-2,1,2],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R394',{'zeax','C00007','crocDia','hydCycCitral'},[-1,-1,1,2],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R394',{'zeax','C00007','crocDia','hydCycCitral'},[-1,-1,1,2],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R395',{'C00029','hydCycCitral','picr','C00015'},[-1,-1,1,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R395',{'C00029','hydCycCitral','picr','C00015'},[-1,-1,1,1],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R396',{'crocDia','C00006','crocet','C00005'},[-1,-1,1,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R396',{'crocDia','C00006','crocet','C00005'},[-1,-1,1,1],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R397',{'crocet','C00029','glucCrocet','C00015'},[-1,-1,1,1],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R397',{'crocet','C00029','glucCrocet','C00015'},[-1,-1,1,1],false,0,1000);
 +
<br>
<br>
<br>
modelKnoop=addReaction(modelKnoop,'R398',{'glucCrocet','C00029','croc','C00015'},[-1,-3,1,3],false,0,1000);
modelKnoop=addReaction(modelKnoop,'R398',{'glucCrocet','C00029','croc','C00015'},[-1,-3,1,3],false,0,1000);
Line 49: Line 69:
<br><br>
<br><br>
modelKnoop=changeRxnBounds(modelKnoop,'R203',7,'b');
modelKnoop=changeRxnBounds(modelKnoop,'R203',7,'b');
-
<br>
+
<br><br>
modelKnoop=changeRxnBounds(modelKnoop,'R344',.45,'b');
modelKnoop=changeRxnBounds(modelKnoop,'R344',.45,'b');
<br><br>
<br><br>
Line 55: Line 75:
<br><br>
<br><br>
modelKnoop=changeObjective(modelKnoop,'R351');
modelKnoop=changeObjective(modelKnoop,'R351');
-
<br>
+
<br><Br>
optimizeCbModel(modelKnoop);
optimizeCbModel(modelKnoop);
<br><br>
<br><br>
In addition, we generated a phenotypic phase plane of the growth rate versus bicarbonate and photon flux:
In addition, we generated a phenotypic phase plane of the growth rate versus bicarbonate and photon flux:
-
<img src = "http://dl.dropbox.com/u/88390549/growth%20rate%20copy.png" width = 765>  
+
<img src = "http://dl.dropbox.com/u/88390549/growth%20rate.png" width = 765>  
</p>
</p>
<h1>Analysis</h1>
<h1>Analysis</h1>
<p>
<p>
-
When the table of fluxes obtained from the optimization of the model was examined for the fluxes of picrocrocin and crocin, it was noticed that all the fluxes in the saffron biosynthesis pathway were zero. In order to try and fix this, the biomass reaction was again altered to include picrocrocin and crocin. However, optimizing for the growth rate under this modified biomass reaction resulted in zero growth. This data from our model suggests that either further work needs to be done on the model to produce a result for picrocrocin and crocin, or that the metabolic network of Synechocystis as it currently stands is unfit for the production of picrocrocin and crocin.  
+
When the table of fluxes obtained from the optimization of the model was examined for the fluxes of picrocrocin and crocin, it was noticed that all the fluxes in the saffron biosynthesis pathway were zero. In order to try and fix this, the biomass reaction was again altered to include picrocrocin and crocin. However, optimizing for the growth rate under this modified biomass reaction resulted in zero growth. This data from our model suggests that either further work needs to be done on the model to produce a result for picrocrocin and crocin, or that the metabolic network of <i>Synechocystis</i> as it currently stands is unfit for the production of picrocrocin and crocin.  
</p>
</p>
</div>
</div>
</html>
</html>

Latest revision as of 03:42, 4 October 2012




Flux Balance Analysis

Rather than constructing our model from the ground up, we built off the work of Knoop et al. and their flux balance analysis model created for Synechocystis sp. PCC 6803.2 In addition, we incorporated the work of Nogales et al. and their more recent model, which highlights the photosynthetic pathways in Synechocystis.3 Finally, we used the KEGG online reaction database to supplement our model.

The COBRA Toolbox (Constraints Based Reconstruction and Analysis)4 and MATLAB were used to read and modify the model. The Knoop model lacked the terpenoid backbone biosynthesis, carotenoid biosynthesis, and the saffron biosynthesis pathway. We added a condensed version of these pathways to the existing model using the ‘addReaction’ command in the COBRA Toolbox. An excerpt of the code can be found below.

modelKnoop=addReaction(modelKnoop,'R381',{'C00022','C00118','C00005','C00002','h2mb4p','C00006','C00008','C00013','C00020','C00011'},[-1,-1,-2,-2,1,2,1,1,1,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R382',{'h2mb4p','C00005','ipdp','C00006'},[-1,-1,1,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R383',{'h2mb4p','C00005','dmpp','C00006'},[-1,-1,1,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R384',{'ipdp','dmpp'},[-1,1],true,-1000,1000);

modelKnoop=addReaction(modelKnoop,'R385',{'ipdp','dmpp','grpp','C00013'},[-1,-1,1,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R386',{'ipdp','grpp','fpp','C00013'},[-1,-1,1,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R387',{'fpp','C00005','squa','C00006','C00013'},[-2,-1,1,1,2],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R388',{'fpp','ipdp','C00013','dpp'},[-1,-7,7,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R389',{'ggpp','C00005','ppp','C00006'},[-1,-3,1,3],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R390',{'fpp','ipdp','C00013','ggpp'},[-1,-1,1,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R391',{'ggpp','C00007','b-caro','C00013'},[-2,-2,1,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R392',{'b-caro','C00007','ech'},[-1,-1,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R393',{'b-caro','C00005','C00007','zeax','C00006'},[-1,-2,-2,1,2],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R394',{'zeax','C00007','crocDia','hydCycCitral'},[-1,-1,1,2],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R395',{'C00029','hydCycCitral','picr','C00015'},[-1,-1,1,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R396',{'crocDia','C00006','crocet','C00005'},[-1,-1,1,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R397',{'crocet','C00029','glucCrocet','C00015'},[-1,-1,1,1],false,0,1000);

modelKnoop=addReaction(modelKnoop,'R398',{'glucCrocet','C00029','croc','C00015'},[-1,-3,1,3],false,0,1000);

The biomass reaction of the model was modified to include the carotenoids. We used the bounds suggested by Knoop as constraints for our model, setting the flux for bicarbonate equal to 0.45 mmol g-1 DW-1 and the flux for photons equal to 7 photons g-1 DW-1 using the ‘changeRxnBounds’ command.

modelKnoop=changeRxnBounds(modelKnoop,'R203',7,'b');

modelKnoop=changeRxnBounds(modelKnoop,'R344',.45,'b');

Setting the objective to the biomass formula and optimizing the model, we determined that the growth rate of our organism was .0887 hr-1, a near identical result to the growth rate of .09 hr-1 calculated by Knoop.

modelKnoop=changeObjective(modelKnoop,'R351');

optimizeCbModel(modelKnoop);

In addition, we generated a phenotypic phase plane of the growth rate versus bicarbonate and photon flux:

Analysis

When the table of fluxes obtained from the optimization of the model was examined for the fluxes of picrocrocin and crocin, it was noticed that all the fluxes in the saffron biosynthesis pathway were zero. In order to try and fix this, the biomass reaction was again altered to include picrocrocin and crocin. However, optimizing for the growth rate under this modified biomass reaction resulted in zero growth. This data from our model suggests that either further work needs to be done on the model to produce a result for picrocrocin and crocin, or that the metabolic network of Synechocystis as it currently stands is unfit for the production of picrocrocin and crocin.