= 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. . ''' ''' <
> == 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!