13595
Comment: Adjusted size of logos
|
3784
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= Workshop: Metabolic Modelling and its Applications = === 27 - 30 June 2016 === == Tribhuvan University, Kirtipur, Kathmandu, Nepal == . The workshop is organised by Tribhuvan University and the Society for Biological Applications Nepal (SBAN). . . {{http://mudsharkstatic.brookes.ac.uk/Graphics/Tribhuvan University.png|University logo|align="top",height="200",width="192"}} {{http://mudsharkstatic.brookes.ac.uk/Graphics/SBAN.png|SBAN logo|align="top",height="150",width="295"}} |
= Practical ... = == Analysing a genome scale metabolic model of Arabidopsis thaliana == In this practical we (you !) will be replicating some the analysis that was described in the [[http://mudsharkstatic.brookes.ac.uk/C1Net/Wshop1/L10.pdf|previous lecture]] . In order to do this you will need to download the files associated with the model: 1. Download the file [[http://mudsharkstatic.brookes.ac.uk/C1Net/Wshop1/P7.tgz|P7.tgz]] into the area in whch you have been using for your other practicals. |
Line 10: | Line 9: |
. A brief introduction to the workshop is available on the website for the [[http://sbanepal.com/events/|SBAN]]. |
1. This is a compressed archive file and you will need to extract the files before they can be used: {{{ $ tar -zxf P7.tgz }}} |
Line 14: | Line 13: |
==== Tutors ==== . The course is presented by: * Dr Mark Poolman * Prof David Fell * Kailash Adhikari, and * Dipali Singh . all of Oxford Brookes University, Oxford, UK. |
1. This will generate a directory, S.Typhim, containing two sub-directories: Model and Analysis. Model contains the model definition files and an additional python module (in Model/Tools). Analysis contains the python modules you will need for this practical. |
Line 22: | Line 15: |
Examples presented in the workshop will include results from their research, which has been funded by the EU via the !AccliPhot project and the BBSRC (UK). | 1. For the sake of the practical we have made a few simplifications and the model and results will not be identical to those in the lecture. the aim of the practical is to illustrate the techniques used. |
Line 24: | Line 17: |
== Part A: Analysing the response to varying ATP demand. == 1. Change directory to the relevant area: |
|
Line 26: | Line 20: |
{{http://mudsharkstatic.brookes.ac.uk/Graphics/brookes.jpg|brookes logo|align="bottom",height="100",width="243"}} {{http://mudsharkstatic.brookes.ac.uk/Graphics/accliphot-logo.png|accliphot logo|align="bottom",height="90",width="352"}} {{http://mudsharkstatic.brookes.ac.uk/Graphics/bbsrc_new.png|bbsrc logo|height="80",width="319"}} | {{{$ cd S.Typhim/Analysis/ATPScan}}} |
Line 30: | Line 24: |
==== Application ==== . To apply for the workshop, complete the registration form an the [[http://sbanepal.com/events/|SBAN website]]. If the workshop is over-subscribed, successful applicants will be selected and notified. |
1. Start ScrumPy and load the model: . {{{ >>> m = ScrumPy.Model("../../Model/MetaSal.spy") }}} |
Line 35: | Line 31: |
==== Instructions for workshop attendees ==== . You are required to bring a laptop to the workshop. The metabolic modelling package used in the course, [[http://mudshark.brookes.ac.uk/ScrumPy|!ScrumPy]], will be made available to you. The two options for installing !ScrumPy on your computer are to directly install the package on a suitable Linux operating system, or to run a virtual machine under other operating system. Instructions are [[Meetings/Pune2016/ScrumPyVM|here]]. (TO BE UPDATED) |
. (If you wish to avoid a bit of typing, leave the model name blank and use the file selector to find the model file instead.) |
Line 40: | Line 34: |
==== Timetable ==== . To help plan your attendance, the provisional workshop timetable is given below. The precise content and order of topics may be changed - even during the workshop itself! |
1. Examine the files that are now presented - how much can you recognise from previous work in this course? |
Line 43: | Line 36: |
||<tablewidth="870px"width="64px" style="border:none;padding:0cm">'''Day''' ||<width="50px" style="border:none;padding:0cm">'''Time''' ||<width="57px" style="border:none;padding:0cm">'''Room''' ||<width="483px" style="border:none;padding:0cm">'''Activity''' ||<width="92px" style="border:none;padding:0cm">'''Resources''' ||<width="125px" style="border:none;padding:0cm">'''Who''' || ||<width="64px" style="border:none;padding:0cm;text-align:center" |4>Mon 27th, AM ||<width="50px" style="border:none;padding:0cm">10:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">Arrival and registration ||<width="92px" style="border:none;padding:0cm"> ||<width="125px" style="border:none;padding:0cm">SBAN || ||<width="50px" style="border:none;padding:0cm">11:00 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">Welcome talks ||<width="92px" style="border:none;padding:0cm"> ||<width="125px" style="border:none;padding:0cm">MP + TU || ||<width="50px" style="border:none;padding:0cm">11:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Talk:''' Introductory theory ||<width="92px" style="border:none;padding:0cm">[[http://mudsharkstatic.brookes.ac.uk/Pune2016/L1/Slides.pdf|Slides]] ||<width="125px" style="border:none;padding:0cm">MP || ||<width="50px" style="border:none;padding:0cm">12:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">Lunch ||<width="92px" style="border:none;padding:0cm"> ||<width="125px" style="border:none;padding:0cm">All || ||<width="64px" height="44px" style="border:none;padding:0cm;text-align:center" |3>Mon 27th, PM ||<width="50px" style="border:none;padding:0cm">14:00 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Talk:''' Python, object-orientation and models. ||<width="92px" style="border:none;padding:0cm">[[http://mudsharkstatic.brookes.ac.uk/Pune2016/L2/Slides.pdf|Slides]] ||<width="125px" style="border:none;padding:0cm">MP || ||<width="50px" style="border:none;padding:0cm">15:00 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Practical 0:''' Checking !ScrumPy Installation and familiarisation with the Python language. ||<width="92px" style="border:none;padding:0cm">[[http://mudshark.brookes.ac.uk/Meetings/Pune2016/P0|Instructions]] ||<width="125px" style="border:none;padding:0cm">All || ||<width="50px" style="border:none;padding:0cm">17:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">Close ||<width="92px" style="border:none;padding:0cm"> ||<width="125px" style="border:none;padding:0cm"> || ||<width="64px" style="border:none;padding:0cm;text-align:center" |3>Tue 28th, AM ||<width="50px" style="border:none;padding:0cm">09:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Talk:''' Structural analysis of small models. (+ break) ||<width="92px" style="border:none;padding:0cm">[[http://mudsharkstatic.brookes.ac.uk/Pune2016/L3/Slides.pdf|Slides]] ||<width="125px" style="border:none;padding:0cm">DF || ||<width="50px" style="border:none;padding:0cm">11:00 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Talk: '''Introduction to plant metabolism and its modelling ||<width="92px" style="border:none;padding:0cm">Slides ||<width="125px" style="border:none;padding:0cm">DS, KA and MP || ||<width="50px" style="border:none;padding:0cm">12:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">Lunch ||<width="92px" style="border:none;padding:0cm"> ||<width="125px" style="border:none;padding:0cm"> || ||<width="64px" style="border:none;padding:0cm;text-align:center" |2>Tue 28th, PM ||<width="50px" style="border:none;padding:0cm">14:00 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Practical 1''': Structural analysis of small models ||<width="92px" style="border:none;padding:0cm">[[http://mudshark.brookes.ac.uk/Meetings/Pune2016/P1|Instructions]] ||<width="125px" style="border:none;padding:0cm">All || ||<width="50px" style="border:none;padding:0cm">17:00 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">Close ||<width="92px" style="border:none;padding:0cm"> ||<width="125px" style="border:none;padding:0cm"> || ||<width="64px" style="border:none;padding:0cm;text-align:center" |4>Wed 29th, AM ||<width="50px" style="border:none;padding:0cm">09:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Talk:''' Sources of data for metabolic models ||<width="92px" style="border:none;padding:0cm">[[http://mudsharkstatic.brookes.ac.uk/C1Net/Wshop1/L2.pdf|Slides]] ||<width="125px" style="border:none;padding:0cm">DF || ||<width="50px" style="border:none;padding:0cm">10:15 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Talk:''' Construction of Genome-Scale Models ||<width="92px" style="border:none;padding:0cm">[[http://mudsharkstatic.brookes.ac.uk/C1Net/Wshop1/L7.pdf|Slides]] ||<width="125px" style="border:none;padding:0cm">MP || ||<width="50px" style="border:none;padding:0cm">11:15 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Talk:''' Linear Programming and Flux Balance Analysis ||<width="92px" style="border:none;padding:0cm">[[http://mudsharkstatic.brookes.ac.uk/Pune2016/L5/Slides.pdf|Slides]] ||<width="125px" style="border:none;padding:0cm">MP || ||<width="50px" style="border:none;padding:0cm">12:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">Lunch ||<width="92px" style="border:none;padding:0cm"> ||<width="125px" style="border:none;padding:0cm"> || ||<width="64px" style="border:none;padding:0cm;text-align:center" |3>Wed 29th, PM ||<width="50px" style="border:none;padding:0cm">14:00 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Practical 2''''''a:''' Construction of a working !ScrumPy model from databases ||<width="92px" style="border:none;padding:0cm">[[http://mudshark.brookes.ac.uk/Meetings/C1netWork1/Prac5|Instructions]] ||<width="125px" style="border:none;padding:0cm">All || ||<width="50px" style="border:none;padding:0cm">15:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Practical 2''''''a:''' Flux Balance Analysis of a simple model ||<width="92px" style="border:none;padding:0cm">[[http://mudshark.brookes.ac.uk/Meetings/C1netWork1/Prac6|Instructions]] ||<width="125px" style="border:none;padding:0cm">All || ||<width="50px" style="border:none;padding:0cm">17:00 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Close''' ||<width="92px" style="border:none;padding:0cm"> ||<width="125px" style="border:none;padding:0cm"> || ||<width="64px" style="border:none;padding:0cm;text-align:center" |4>Thur 30^th^, AM ||<width="50px" style="border:none;padding:0cm">09:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Talk:''' Biotechnological Applications of Metabolic Network Analysis ||<width="92px" style="border:none;padding:0cm">[[http://mudsharkstatic.brookes.ac.uk/Pune2016/L6/Slides.pdf|Slides]] ||<width="125px" style="border:none;padding:0cm">DF || ||<width="50px" style="border:none;padding:0cm">10:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Talk:''' Genome scale modelling of Arabidopsis ||<width="92px" style="border:none;padding:0cm">tbp ||<width="125px" style="border:none;padding:0cm">KA || ||<width="50px" style="border:none;padding:0cm">11:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Talk:''' Genome scale modelling of a diatom for oil production ||<width="92px" style="border:none;padding:0cm">tbp ||<width="125px" style="border:none;padding:0cm">DS || ||<width="50px" style="border:none;padding:0cm">12:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">Lunch ||<width="92px" style="border:none;padding:0cm"> ||<width="125px" style="border:none;padding:0cm"> || ||<width="64px" style="border:none;padding:0cm;text-align:center" |3>Thur 30^th^, PM ||<width="50px" style="border:none;padding:0cm">14:00 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Practical 3: '''GSM of Arabidopsis – metabolic phenotypes of mutants – metabolic responses to light intensity ||<width="92px" style="border:none;padding:0cm">tbp ||<width="125px" style="border:none;padding:0cm">All || ||<width="50px" style="border:none;padding:0cm">16:30 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">Concluding remarks and presentation of certificates ||<width="92px" style="border:none;padding:0cm"> ||<width="125px" style="border:none;padding:0cm">All || ||<width="50px" style="border:none;padding:0cm">17:00 ||<width="57px" style="border:none;padding:0cm"> ||<width="483px" style="border:none;padding:0cm">'''Close of the Workshop''' ||<width="92px" style="border:none;padding:0cm"> ||<width="125px" style="border:none;padding:0cm"> || |
1. Now import the module called ATPScan . {{{ >>> import ATPScan }}} 1. The module contains a function, also called {{{ATPScan}}} that will generate a data set (as shown in previous lectures) containing the lp solutions over a range of imposed ATP demand values, e.g.: 1. {{{ >>> results = ATPScan.ATPScan(m, 0, 10, 50) }}} 1. Will generate a dataset containing 50 solutions for the model with the imposed ATPase flux varying between 0 and 10 flux units. 1. The ATPScan module also contains three functions to aid in the analysis of results: . {{{ GetChangers(results, tol=1e-6) }}} A list of reactions whose flux value changes by more than tol (default = 1e-6). {{{ GetSwitchers(results) }}} A list of reactions that carry no flux at some point. {{{ GetRanges(results, tol=1e-6) }}} A dictionary mapping reactions to the amount of change in flux over the range of ATP demand. * For example, to plot the reactions that at some point carry no flux: . {{{ results.AddToPlot(ATPScan.GetSwitchers(results)) }}} * Use these functions to identify which fluxes show the greatest response to changes in ATP demand == Part B: Impact of single and double reaction knockouts == 1. cd into Analysis/Knockouts 1. Start ScrumPy and the load the model as before. 1. Import the {{{KnockOutImpacts}}} module. 1. This defines a single function also called {{{KnockOutImpacts}}} that returns a dictionary recording the impact of remove each reaction from the model (relative change in objective value) eg: . {{{ >>> res = KnockOutImpacts.KnockOutImpacts(m)}}} 1. Use this to . a) Identify the lethal knockouts. b) Identify the non lethal knockouts that have the greatest impact. c) From b investigate the impact of dual knockouts, e.g.: . {{{ >>> lp.SetFixedFlux({Reac1:0,Reac2:0}) }}} {{{ >>> lp.Solve() }}} etc. Remember to clear the constraint before proceeding: {{{ >>> lp.ClearFluxConstraint([Reac1,Reac2]) }}} . (Generate lp by: {{{>>> lp = KnockOutImpacts.BuildLP.BuildLP(m) }}} ) |
Practical ...
Analysing a genome scale metabolic model of Arabidopsis thaliana
In this practical we (you !) will be replicating some the analysis that was described in the previous lecture . In order to do this you will need to download the files associated with the model:
Download the file P7.tgz into the area in whch you have been using for your other practicals.
- This is a compressed archive file and you will need to extract the files before they can be used:
$ tar -zxf P7.tgz
- This will generate a directory, S.Typhim, containing two sub-directories: Model and Analysis. Model contains the model definition files and an additional python module (in Model/Tools). Analysis contains the python modules you will need for this practical.
- For the sake of the practical we have made a few simplifications and the model and results will not be identical to those in the lecture. the aim of the practical is to illustrate the techniques used.
Part A: Analysing the response to varying ATP demand.
- Change directory to the relevant area:
$ cd S.Typhim/Analysis/ATPScan
Start ScrumPy and load the model:
>>> m = ScrumPy.Model("../../Model/MetaSal.spy")
- (If you wish to avoid a bit of typing, leave the model name blank and use the file selector to find the model file instead.)
- Examine the files that are now presented - how much can you recognise from previous work in this course?
- Now import the module called ATPScan
>>> import ATPScan
The module contains a function, also called ATPScan that will generate a data set (as shown in previous lectures) containing the lp solutions over a range of imposed ATP demand values, e.g.:
>>> results = ATPScan.ATPScan(m, 0, 10, 50)
- Will generate a dataset containing 50 solutions for the model with the imposed ATPase flux varying between 0 and 10 flux units.
- The ATPScan module also contains three functions to aid in the analysis of results:
GetChangers(results, tol=1e-6) A list of reactions whose flux value changes by more than tol (default = 1e-6).
GetSwitchers(results) A list of reactions that carry no flux at some point.
GetRanges(results, tol=1e-6) A dictionary mapping reactions to the amount of change in flux over the range of ATP demand.
- For example, to plot the reactions that at some point carry no flux:
results.AddToPlot(ATPScan.GetSwitchers(results))
- Use these functions to identify which fluxes show the greatest response to changes in ATP demand
Part B: Impact of single and double reaction knockouts
- cd into Analysis/Knockouts
Start ScrumPy and the load the model as before.
Import the KnockOutImpacts module.
This defines a single function also called KnockOutImpacts that returns a dictionary recording the impact of remove each reaction from the model (relative change in objective value) eg:
>>> res = KnockOutImpacts.KnockOutImpacts(m)
- Use this to
- a) Identify the lethal knockouts. b) Identify the non lethal knockouts that have the greatest impact. c) From b investigate the impact of dual knockouts, e.g.:
>>> lp.SetFixedFlux({Reac1:0,Reac2:0}) >>> lp.Solve() etc. Remember to clear the constraint before proceeding:
>>> lp.ClearFluxConstraint([Reac1,Reac2])
(Generate lp by: >>> lp = KnockOutImpacts.BuildLP.BuildLP(m) )
- a) Identify the lethal knockouts. b) Identify the non lethal knockouts that have the greatest impact. c) From b investigate the impact of dual knockouts, e.g.: