Size: 57
Comment:
|
← Revision 42 as of 2024-12-12 09:03:16 ⇥
Size: 2900
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
https://mudsharkstatic.brookes.ac.uk/Nottingham2022/P6/ | = Practical 5: Identifying pathways for TAG synthesis in Phaeodactylum tricornutum = == Part 1 == Here, we will investigate the genome-scale metabolic model of ''P. tricornutum'' to identify pathways for TAG synthesis''. ''See'' Villanova et al (2021). Front. Plant Sci. 12:642199. doi: 10.3389/fpls.2021.642199'' 1. Download the archive containing the model from [[http://mudsharkstatic.brookes.ac.uk/Nottingham2024/P5.zip|here]] and extract the files.This will generate a new directory,"srcs", containing two sub-directories: "Model" and "Analysis". Start !ScrumPy. 1. Load the Model: 1. m = !ScrumPy.Model("../Model/Phaeo.spy") 1. We can now generate a linear programming object: 1. lp = m.GetLP() 1. And specify minimising total flux as the objective: 1. lp.!SetObjective(m.sm.cnames) 1. With the constraint that we must generate 1 mole of TAG: 1. lp.!SetFixedFlux({"TAG_Exp_tx":-1}) 1. We can now solve the lp: 1. lp.Solve() 1. And obtain the solution: 1. sol = lp.!GetPrimSol() Sol is a dictionary, mapping reactions to fluxes, satisfying our constraints and objectives. Examine its properties. e.g. what transport processes are involved? . for r in sol: . if "_tx" in r: . print(r, sol[r]) Reaction and metabolite names are derived from [[https://metacyc.org|MetaCyc]] so you can use thses to find out more about individual reactions in the solution. NB: the `_Cyto suffix` is added to differentiate compartmentalisation in the model and is not part of !MetaCyc identifier, and should be removed before searching on !MetaCyc. . ''' ''' <<BR>> == Part 2 - Constraint Scanning == Part 1 describes how to examine a single lp solution. Now we can move on to exploring multiple solutions and examine how Phaeo can rearange its metabolism in response to increasing TAG demand. The "Analysis" directory contains a simple Python module, LipidScan.py, to facilitate this. Having started !ScrumPy and loaded the model as in Part 1, we import the !LipidScan module: . >>> import !LipidScan (The model must be loaded first) We can now generate some results: . >>> res = [[LipidScan|!LipidScan]].LipidScan(m) "res" is a !DataSet, (matrix-like) object that contains 100 lp solutions, for the model, subject to a varying demand for TAG and satisfyng demand for biomass precursors. We are only interested in the reactions that change: . >>> chs = !LipidScan.Changers(res) Commonly, we start by examining the transport processes, which can be conveniently plotted: . >>> res.!SetPlotX("TAG_Exp_tx") >>> for ch in chs: . if "_tx" in ch: . res.!AddToPlot(ch) This more than is immediately convenient, so we can remove the plasted transporters, to leave only the cytosolic transporters: . >>> res.!RemoveMatchesFromPlot("_Plas") At which point an interpretable pattern starts to emerge. Over to you! |
Practical 5: Identifying pathways for TAG synthesis in Phaeodactylum tricornutum
Part 1
Here, we will investigate the genome-scale metabolic model of P. tricornutum to identify pathways for TAG synthesis. See Villanova et al (2021). Front. Plant Sci. 12:642199. doi: 10.3389/fpls.2021.642199
Download the archive containing the model from here and extract the files.This will generate a new directory,"srcs", containing two sub-directories: "Model" and "Analysis". Start ScrumPy.
- Load the Model:
m = ScrumPy.Model("../Model/Phaeo.spy")
- We can now generate a linear programming object:
- lp = m.GetLP()
- And specify minimising total flux as the objective:
lp.SetObjective(m.sm.cnames)
- With the constraint that we must generate 1 mole of TAG:
lp.SetFixedFlux({"TAG_Exp_tx":-1})
- We can now solve the lp:
- lp.Solve()
- And obtain the solution:
sol = lp.GetPrimSol()
Sol is a dictionary, mapping reactions to fluxes, satisfying our constraints and objectives. Examine its properties. e.g. what transport processes are involved?
- for r in sol:
- if "_tx" in r:
- print(r, sol[r])
Reaction and metabolite names are derived from MetaCyc so you can use thses to find out more about individual reactions in the solution. NB: the _Cyto suffix is added to differentiate compartmentalisation in the model and is not part of MetaCyc identifier, and should be removed before searching on MetaCyc.
Part 2 - Constraint Scanning
Part 1 describes how to examine a single lp solution. Now we can move on to exploring multiple solutions and examine how Phaeo can rearange its metabolism in response to increasing TAG demand. The "Analysis" directory contains a simple Python module, LipidScan.py, to facilitate this.
Having started ScrumPy and loaded the model as in Part 1, we import the LipidScan module:
>>> import LipidScan
(The model must be loaded first)
We can now generate some results:
>>> res = !LipidScan.LipidScan(m)
"res" is a DataSet, (matrix-like) object that contains 100 lp solutions, for the model, subject to a varying demand for TAG and satisfyng demand for biomass precursors. We are only interested in the reactions that change:
>>> chs = LipidScan.Changers(res)
Commonly, we start by examining the transport processes, which can be conveniently plotted:
>>> res.!SetPlotX("TAG_Exp_tx") >>> for ch in chs:
- if "_tx" in ch:
res.AddToPlot(ch)
- if "_tx" in ch:
This more than is immediately convenient, so we can remove the plasted transporters, to leave only the cytosolic transporters:
>>> res.RemoveMatchesFromPlot("_Plas")
At which point an interpretable pattern starts to emerge.
Over to you!