|
Size: 4139
Comment: Start of new practical
|
Size: 5105
Comment: Explained how to follow up reaction identifiers.
|
| 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. a. 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. a. Examine how the model is created. Note that the reactions that you need to manipulate for this practical are those contained in Transport.spy. a. If you want to check the details of any of the reactions or metabolites in the database-derived component of the model - !AutoColi.spy - you can paste the reaction or metabolite identifier into the search box at [[http://www.metacyc.org|MetaCyc]]. |
| Line 14: | Line 16: |
| 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 19: |
| 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 formation 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 the following. Check that you understand what the range specifiers below specify :<<BR>> . {{{#!highlight python |
| Line 19: | Line 22: |
| a. Since the optimisation direction is minimisation, and this is set by default, you don't need to change the direction. | lp = m.GetLP() |
| Line 21: | Line 24: |
| 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]] |
Bounds = { "eth_tx":(None, 0), "ACE_tx":(None, 0) } |
| Line 24: | Line 29: |
| a. Solve the LP problem using a suitable method. 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. 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 |
lp.SetFluxBounds(Bounds) }}} a. Since the optimisation direction is minimisation, and this is set by default, you don't need to change the direction, though the documentation explains how to do this. <<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, e.g. ''sol''. Examine the solution as follows:<<BR>> . {{{#!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)? <<BR>> 1. Now determine which of the other carbon metabolites listed in Transport.spy can function as substrates for fatty acid production. To do this a. Remove your existing constraints on the LP object with the {{{ClearFluxConstraints()}}} function; a. Reset the flux constraint on palmitate transport, and set appropriate flux bounds on the other carbon metabolites; a. Set uptake of your target substrate as the minimisation objective. a. For those that can be used, what is the carbon conversion efficiency to palmitate? |
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.
If you want to check the details of any of the reactions or metabolites in the database-derived component of the model - AutoColi.spy - you can paste the reaction or metabolite identifier into the search box at MetaCyc.
- 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 formation 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 the following. Check that you understand what the range specifiers below specify :
Since the optimisation direction is minimisation, and this is set by default, you don't need to change the direction, though the documentation explains how to do this.
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, e.g. sol. 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)?
- Now determine which of the other carbon metabolites listed in Transport.spy can function as substrates for fatty acid production. To do this
Remove your existing constraints on the LP object with the ClearFluxConstraints() function;
- Reset the flux constraint on palmitate transport, and set appropriate flux bounds on the other carbon metabolites;
- Set uptake of your target substrate as the minimisation objective.
- For those that can be used, what is the carbon conversion efficiency to palmitate?