|
Size: 4139
Comment: Start of new practical
|
Size: 4131
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 9: | Line 9: |
1. Download the archive containing the [[http://mudsharkstatic.brookes.ac.uk/Download/Models/C1net/EcoliCCMforC1net.zip|model]] and extract the files. Start ScrumPy in the folder containing the .spy files and load the top-level model file EcoliCCM.spy to create a model object. Note that the model is created in a modular fashion, and the top-level file will laod the different components of the model and open a window for each. Examine how the model is created. Note that the reactions that you need to manipulate for this practical are those contained in Transport.spy. |
1. Download the archive containing the [[http://mudsharkstatic.brookes.ac.uk/Download/Models/C1net/EcoliCCMforC1net.zip|model]] and extract the files. Start !ScrumPy in the folder containing the .spy files and load the top-level model file EcoliCCM.spy to create a model object. Note that the model is created in a modular fashion, and the top-level file will laod the different components of the model and open a window for each. Examine how the model is created. Note that the reactions that you need to manipulate for this practical are those contained in Transport.spy. |
| Line 14: | Line 13: |
| a. Constrain the flux of the palmitate reaction to 1.0 using the SetFixedFlux function of the LP object.<<BR>> | a. Constrain the flux of the palmitate reaction to 1.0 using the !SetFixedFlux function of the LP object.<<BR>> |
| Line 17: | Line 16: |
| a. As can be seen from Transport.spy, the model can allow both uptake and production of a number of carbon compounds. To make sure that glucose is used as the only substrate, the import of the other carbon substrates must be constrained to zero, though their export can be allowed so that we can determine whether production of palmitate requires the frmaton of any co-products. This can be done with the SetFluxBounds function, which constrains fluxes within a specified range. For example, to prevent uptake of ethanol and acetate, whilst allowing their production, we could write this: | a. As can be seen from Transport.spy, the model can allow both uptake and production of a number of carbon compounds. To make sure that glucose is used as the only substrate, the import of the other carbon substrates must be constrained to zero, though their export can be allowed so that we can determine whether production of palmitate requires the frmaton of any co-products. This can be done with the !SetFluxBounds function, which constrains fluxes within a specified range. For example, to prevent uptake of ethanol and acetate, whilst allowing their production, we could write this: |
| Line 19: | Line 18: |
| a. Since the optimisation direction is minimisation, and this is set by default, you don't need to change the direction. | {{{#!highlight python |
| Line 21: | Line 20: |
| a. Next, identify the reaction that should be minimised and enter this as an argument to the suitable method of the LP object (note that the argument must be a list of reaction(s), i.e. your argument should be a list with one reaction). . [[http://mudshark.brookes.ac.uk/AccliPhot/WorkshopOne/prac3/hint_3|Hint]] |
lp = m.GetLP() |
| Line 24: | Line 22: |
| a. Solve the LP problem using a suitable method. | Bounds = { "eth_tx":(None, 0), "ACE_tx":(None, 0) } |
| Line 26: | Line 27: |
| a. To obtain the solution use the LP method {{{GetPrimSol()}}}. This method returns a dictionary object of reactions in the solution as keys and flux values as values, so for convenience assign a name to this solution. | lp.SetFluxBounds(Bounds) }}} a. Since the optimisation direction is minimisation, and this is set by default, you don't need to change the direction. <<BR>> a. Next, identify the name of the glucose uptake reaction that should be minimised and enter this as an argument to the objective function method described in the documentation. (Note that the argument must be a list of reaction(s), i.e. your argument should be a list with one reaction).<<BR>> a. Solve the LP. The message 'Optimal solution' should appear. To obtain the solution use the LP method {{{GetPrimSol()}}}. This method returns a dictionary object of reactions in the solution as keys and flux values as values, so for convenience assign a name to this solution. Examine the solution as follows: |
| Line 28: | Line 33: |
| 1. What is the objective value, i.e. the flux of the glucose uptake reaction, representing the minimum amount of glucose to make 1 triglyceride? How does this compare to the results in the paper? 1. The effective yield of ATP from oxidative phosphorylation is very uncertain. At the time of the paper, the textbook values of 3 ATP from NADH and 2 from FADH2. Try changing R27 and R28 in ''adipose.spy'' to match the paper. (The paper and model also reproduce the textbook error of using FAD as a metabolic intermediate; FAD and FADH2 should really be CoQ and CoQH2.) from |
{{{#!highlight python for k in sol.keys(): print k, sol[k] }}} a. What is the objective value, i.e. the flux of the glucose uptake reaction, representing the minimum amount of glucose to make 1 palmitate? What fraction of the glucose carbon is converted to palmitate? What are the relative fluxes of glucose through glycolysis (e.g. 6PFRUCTPHOS-RXN) and the pentose phosphate pathway (e.g. GLU6PDEHYDROG-RXN)? |
Practical 3
Linear Programming and Flux Balance Analysis with ScrumPy
In current research into biofuels, there is interest in investigating the feasibility of using microorganisms to produce alkanes for biodiesel from renewable carbon sources. The starting points for alkane formation are fatty acids, which are formed by the fatty acid biosynthesis pathway. Here we will investigate the feasibility and efficiency of making a representative fatty acid - C16 palmitate - in E. coli from various carbon substrates, starting with glucose.
We will use a small model of about 70 reactions that represents the central carbon metabolism of E. coli. It is a derivative of a model developed in Srienc's group (Trinh, C. T., Unrean, P., Srienc, F., 2008. Applied and environmental microbiology.74, 3634-3643) for designing metabolic engineering strategies.
Before you start, read the documentation of the ScrumPy LP module, here. It would be a good idea to open this page in a separate tab so that you can refer to it as you work on the practical.
Download the archive containing the model and extract the files. Start ScrumPy in the folder containing the .spy files and load the top-level model file EcoliCCM.spy to create a model object. Note that the model is created in a modular fashion, and the top-level file will laod the different components of the model and open a window for each. Examine how the model is created. Note that the reactions that you need to manipulate for this practical are those contained in Transport.spy.
- Your first task is to set up and solve an LP problem where the objective is to minimise glucose consumption, as sole carbon source, while producing 1 flux unit of palmitate.
- Create the LP object with the E coli model as argument as shown in the first steps of the documentation.
Constrain the flux of the palmitate reaction to 1.0 using the SetFixedFlux function of the LP object.
As can be seen from Transport.spy, the model can allow both uptake and production of a number of carbon compounds. To make sure that glucose is used as the only substrate, the import of the other carbon substrates must be constrained to zero, though their export can be allowed so that we can determine whether production of palmitate requires the frmaton of any co-products. This can be done with the SetFluxBounds function, which constrains fluxes within a specified range. For example, to prevent uptake of ethanol and acetate, whilst allowing their production, we could write this:
Since the optimisation direction is minimisation, and this is set by default, you don't need to change the direction.
Next, identify the name of the glucose uptake reaction that should be minimised and enter this as an argument to the objective function method described in the documentation. (Note that the argument must be a list of reaction(s), i.e. your argument should be a list with one reaction).
Solve the LP. The message 'Optimal solution' should appear. To obtain the solution use the LP method GetPrimSol(). This method returns a dictionary object of reactions in the solution as keys and flux values as values, so for convenience assign a name to this solution. Examine the solution as follows:
- What is the objective value, i.e. the flux of the glucose uptake reaction, representing the minimum amount of glucose to make 1 palmitate? What fraction of the glucose carbon is converted to palmitate? What are the relative fluxes of glucose through glycolysis (e.g. 6PFRUCTPHOS-RXN) and the pentose phosphate pathway (e.g. GLU6PDEHYDROG-RXN)?