Differences between revisions 1 and 42 (spanning 41 versions)
Revision 1 as of 2024-12-04 16:15:42
Size: 57
Editor: mark
Comment:
Revision 42 as of 2024-12-12 09:03:16
Size: 2900
Editor: mark
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

  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)