Practical 7

The effect of varying oxygen availabilty on Geobacillus

In this practical we will be investigating the the potential effects of limiting oxygen availability to a model of the organism Geobacillus thermoglucosidasius described here. In order to do this, we will be using the constraint scanning approach described in lecture 7. Geobacillus is a facultative aerobe; this has been demonstrated experimentally and in the paper linked above we investigated aerobic and anaerobic metabolism. What we did not investigate is the situation in which oxygen is reduced but not completely absent, so, as well as being a new practical, this is also a new investigation - results generated here will be genuinely new - no-one will ever have seen them before!

In order to perform the analysis we will be introducing a new class of object from ScrumPy, the DataSet. As the name implies, its purpose is to store and maniplulate data either generated from models, from external source, or from both. It has many of the same properties as a matrix, but in addition is capable of simple graph plotting and statistical analysis. In this exercise it will be used to store a set of lp solutions generated over a range of constraints imposed on the oxygen uptake rate.

Preliminaries

  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 create a new directory called "P7", containing two sub-directories: "Model" and "Analysis". Note the strict separation of the model definition components and the analysis components. This ensures (amongst other things) that an identical analysis could be performed on any other model, as long as naming conventions for the trans port steps are mainitained.
  4. Change directory to the Analysis directory: $ cd P7/Analysis

  5. Start ScrumPy and load the model "MetaGeo.spy" located in the Model directory.

  6. Briefly familiarise yourself with the contents of the model, and make sure you can identify the various transport steps. Note that some of these are commented out reflecting what we may or may not expect to be imported from, or exported to, the medium.
  7. Having several windows open for one model can be inconvenient, the "m.Hide()" menu option will minimise all except for the top level module window.

Having done all this we are now in a position to start analysing the model. The python code you need can be found in the "O2LimScan" module in the Analysis directory. You can open this from the "File/Open" menu item. All the work is done with the "O2Scan" function, by now you should be able to interpret what this function is doing (don't worry about how it does it). Note that the module cannot be imported until the model is loaded (steps 1--7) above. Ask a demonstrator if you want to know why this should be the case.

Analysis

  1. Import the "O2LimScan" module:  >>> import O2LimScan

  2. Get the results for a default scan:  >>> res = O2LimScan.O2Scan(m)

  3. res is an instance of the DataSet class described above. We can see the effect of the changing limitation on oxygen availability by adding it to a plot:  >>> res.AddToPlot("ObjVal") Note that the objective value is much higher with limited oxygen.

  4. Now let's examine the effect of oxygen limitation on transport processes:
    1. The function O2LimScan.GetNonBiomass_tx(m) returns a list of tranporters involved with media components.

    2. We can then add these to the plot:  >>> res.AddToPlot(O2LimScan.GetNonBiomass_tx(m))

    3. At this point the plot will be dominated by the curve for the objective value, so remove it:
    4. >>> res.RemoveFromPlot("ObjVal")

  5. Note that not all transporters vary - why should this be? You can remove them from the plot as described above.
  6. What is the relationship between the limiting value for oxygen transport and the actual value?
  7. At the moment Glucose is assumed to be the sole carbon source and CO_2 and acetate, the only metabolic by-products. Explore the effect of allowing the transport of other compounds by editing the "Transporters.spy" module (remember to compile the model after editing).

None: Meetings/C1NetWork4/Prac7 (last edited 2018-01-19 08:43:26 by noah)