Differences between revisions 38 and 41 (spanning 3 versions)
Revision 38 as of 2024-12-11 13:47:38
Size: 1671
Editor: mark
Comment:
Revision 41 as of 2024-12-12 09:01:43
Size: 2903
Editor: mark
Comment:
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
 1. We can now solve te lp:  1. We can now solve the lp:
Line 19: Line 19:
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: 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:
Line 26: Line 28:
 . ''' '''
<<BR>>
 . ''' ''' <<BR>>
Line 30: Line 31:
=== See Demo and Tomorrow === 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

  1. 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.

  2. Load the Model:
    1. m = ScrumPy.Model("../Model/Phaeo.spy")

  3. We can now generate a linear programming object:
    1. lp = m.GetLP()
  4. And specify minimising total flux as the objective:
    1. lp.SetObjective(m.sm.cnames)

  5. With the constraint that we must generate 1 mole of TAG:
    1. lp.SetFixedFlux({"TAG_Exp_tx":-1})

  6. We can now solve the lp:
    1. lp.Solve()
  7. 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 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" 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!

None: Meetings/Nottingham2024/Prac5 (last edited 2024-12-12 09:03:16 by mark)