Differences between revisions 6 and 7
Revision 6 as of 2016-06-10 11:55:22
Size: 13595
Editor: david
Comment: Adjusted size of logos
Revision 7 as of 2016-06-16 12:56:24
Size: 3784
Editor: kailash
Comment:
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:

  1. Download the file P7.tgz into the area in whch you have been using for your other practicals.

  2. This is a compressed archive file and you will need to extract the files before they can be used:

     $ tar -zxf P7.tgz 

  3. 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.
  4. 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.

  1. Change directory to the relevant area:
    • $ cd S.Typhim/Analysis/ATPScan

  2. 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.)
  3. Examine the files that are now presented - how much can you recognise from previous work in this course?
  4. Now import the module called ATPScan
    •  >>> import ATPScan 

  5. 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.:

  6.  >>> results = ATPScan.ATPScan(m, 0, 10, 50) 

  7. Will generate a dataset containing 50 solutions for the model with the imposed ATPase flux varying between 0 and 10 flux units.
  8. 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
  2. Start ScrumPy and the load the model as before.

  3. Import the KnockOutImpacts module.

  4. 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)

  5. 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)  )

None: Meetings/Nepal2016 (last edited 2016-09-16 13:21:02 by mark)