|
Size: 5536
Comment:
|
Size: 5094
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| = Practical 4 Structural Analysis of the Woods_Ljungdahl Pathway = | = Practical 4 Structural Analysis of the Woods-Ljungdahl Pathway = == Introduction == The goal of this practical is to use what we have learned so far about structural analysis to extend the analysis of this pathway in ''Acetobacter woodii'' that was briefly described in Lecture 5. |
| Line 3: | Line 5: |
| == Introduction == The goal of this practical is to use what we have learned so far about structural analysis to extend the analysis of this pathway in ''Acetobacter woodii'' that was briefly described in Lecture 5. |
The organism is capable of assimilating CO,,2,,, CO and H,,2 ,,in various combinations, but each of these gases can also potentially appear as a product under different circumstances as many of the reactions are potentially reversible. The biotechnological interest is the extent to which this organism (and others that contain this pathway) can be used to capture CO,,2,, and CO emissions. The major product of ''A woodii'' is acetate, though ethanol can be formed, and ethanol can be a major product of some WLP organisms. |
| Line 6: | Line 7: |
| The organism is capable of assimilating CO,,2,,, CO and H,,2 ,,in various combinations, but each of these gases can also potentially appear as a product under different circumstances as many of the reactions are potentially reversible. The biotechnological interest is the extent to which this organism (and others that contain this pathway) can be used to capture CO,,2,, and CO emissions. The major product of ''A woodii'' is acetate, though ethanol can be formed, and ethanol can be a major product of some WLP organisms. ATP synthesis is linked to unusual electron-bifurcating redox reactions, and the yield is low as the energy available in the gas-assimilating reactions is low, so the organism survives close to the threshold of life. Calculating the potential pathways and ATP yield is challenging by inspection of the network diagram, so elementary modes is a useful tool in this context. |
ATP synthesis is linked to unusual electron-bifurcating redox reactions, and the yield is low as the energy available in the gas-assimilating reactions is low, so the organism survives close to the threshold of life. Calculating the potential pathways and ATP yield is challenging by inspection of the network diagram, so elementary modes is a useful tool in this context. |
| Line 18: | Line 17: |
| '''(a)''' Create and load the [[https://mudsharkstatic.brookes.ac.uk/Nottingham2022/P4/WLP_1.spy|WLP model]] as you learned in the previous practical. | '''(a)''' Create and load the [[https://mudsharkstatic.brookes.ac.uk/Nottingham2024/WLP_1.spy|WLP model]] as you learned in the previous practical. |
| Line 20: | Line 19: |
| '''(b)''' Make sure that you can relate the reactions and metabolites in the model to those in the diagrams and reaction key in lecture 4. | '''(b)''' Make sure that you can relate the reactions and metabolites in the model to those in the diagrams and reaction key in lecture 4. |
| Line 26: | Line 25: |
| '''Note:''' m.[[https://mudshark.brookes.ac.uk/EnzSubset|!EnzSubset]]() returns a dictionary. It is convenient to view each item in the dictionary using a for loop: | '''Note:''' m.!EnzSubset() returns a dictionary. It is convenient to view each item in the dictionary using a for loop: |
| Line 28: | Line 27: |
| [[https://mudshark.brookes.ac.uk/Meetings/Nottingham2022/Prac4#|Toggle line numbers]] {{{ | {{{#!python >>> essdict = m.EnzSubsets() >>> for subset in essdict: >>> print(subset, essdict[subset]) |
| Line 32: | Line 34: |
| '''(d) '''Determine the sets of conserved moieties in the scheme using m.ConsMoieties(). Why do you think that, in the Pi-related conserved set, ATP only has a coefficient of 1 and ADP does not appear at all? | '''(d) '''Determine the sets of conserved moieties. |
| Line 34: | Line 36: |
| '''Note: '''m.ConsMoieties() returns a matrix of rational number (aka fractions). This is not very convenient to view, and we can do two things to make it easier to interpret: | Not covered in this workshop, but ask an instructor if you are interested. |
| Line 36: | Line 38: |
| [[https://mudshark.brookes.ac.uk/Meetings/Nottingham2022/Prac4#|Toggle line numbers]] {{{ }}} Although the keys here are also the names of metabolites in teh conserved set, this is only relevant in kinetic models. The whole relationship is encapsulated in in the values of the dictionary. |
'''(e) '''Calculate the elementary modes of the model using ems = m.!ElModes(). |
| Line 40: | Line 40: |
| '''(e) '''Calculate the elementary modes of the model using ems = m.ElModes(). | '''Note:''' m.!ElModes() returns a new class of object, with a variety of methods for analysing the elementary modes that we have generated. |
| Line 42: | Line 42: |
| '''Note:''' m.ElModes() returns a new class of object, with a variety of methods for analysing the elementary modes that we have generated. | '''Note2: '''As with subsets, elementary modes are calculate using rational number. It is generally more convenient to convert everything to integer equivalents one the calculation is done: |
| Line 44: | Line 44: |
| '''Note2: '''As with subsets, elementary modes are calculate using rational number. It is generally more convenient to convert everything to integer equivalents one the calculation is done: [[https://mudshark.brookes.ac.uk/Meetings/Nottingham2022/Prac4#|Toggle line numbers]] {{{ |
{{{#!python >>> >>> ems = m.ElModes() >>> ems.Integise() |
| Line 50: | Line 51: |
| [[https://mudshark.brookes.ac.uk/Meetings/Nottingham2022/Prac4#|Toggle line numbers]] {{{ | {{{#!python >>> print(ems.Stos()) |
| Line 52: | Line 54: |
| The output from print(ems.Stos()) will not be conveniently ordered as in the table in the lecture though it should show all the corresponding conversions. The modes can be classified and counted as follows: | The output from print(ems.Stos()) will not be conveniently ordered as in the table in the lecture though it should show all the corresponding conversions. The modes can be classified and counted as follows: |
| Line 54: | Line 56: |
| '''(f) '''Extract the set of modes that consume CO2 by emco2 = ems.Consumes(“x_co2”). The number of these modes is given by len(emco2), and their reactions by the Stos() method as above. | '''(f) '''Extract the set of modes that consume CO2 by emco2 = ems.Consumes(“x_co2”). The number of these modes is given by len(emco2), and their reactions by the Stos() method as above. |
| Line 56: | Line 58: |
| '''Note:''' ems.!Consumes(metabolite) generates another instance of the ElModes class, this means that searches can be chained together: | '''Note:''' ems.!Consumes(metabolite) generates another instance of the !ElModes class, this means that searches can be chained together: |
| Line 58: | Line 60: |
| [[https://mudshark.brookes.ac.uk/Meetings/Nottingham2022/Prac4#|Toggle line numbers]] {{{ | {{{#!python >>> foo2bar = ems.Consumes("foo").Produces("bar") # not with this model though, obvs! |
| Line 62: | Line 65: |
| '''(g) ''' Partition the modes as in the table (found in pg 13 of the lecture slides) by the gas mixture consumed (for example, elmo2 = ems.Consumes('x_co2').Consumes('x_h2')). Similarly, categorise the modes by different products (method ‘Produces()') | '''(g) ''' Partition the modes as in the table (found in pg 13 of the lecture slides) by the gas mixture consumed (for example, elmo2 = ems.Consumes('x_co2').Consumes('x_h2')). Similarly, categorise the modes by different products (method ‘Produces()') |
| Line 64: | Line 67: |
| '''(h)''' Calculation of ATP stoichiometry for each mode. The ATP formed per C atom assimilated is the rate of the 'ADENOSINETRIPHOSPHATASE-RXN' divided by the net C incorporated, which is the sum of the CO2 and CO transport rates ('CO2_sf_tx' and 'CO_sf_tx'). | '''(h)''' Calculation of ATP stoichiometry for each mode. The ATP formed per C atom assimilated is the rate of the 'ADENOSINETRIPHOSPHATASE-RXN' divided by the net C incorporated, which is the sum of the CO2 and CO transport rates ('CO2_sf_tx' and 'CO_sf_tx'). |
| Line 66: | Line 69: |
| [[https://mudshark.brookes.ac.uk/Meetings/Nottingham2022/Prac4#|Toggle line numbers]] {{{ | {{{#!python >>> ATPase ='ADENOSINETRIPHOSPHATASE-RXN' # save some typing! >>> ATPEMs = ems.PosFlux(ATPase) >>> for em in ATPEMs: reacs = ATPEMs.ReacsOf(em)#the ReacsOf() method returns a dictionary of reactions and their associated weightings if "CO2_sf_tx" in reacs: print(em, reacs[ATPase]/reacs["CO2_sf_tx"]) |
| Line 68: | Line 77: |
| Note: Because CO2 can be produced or consumed, some of these yields will be negative. These can be either be discounted, or eliminated by modifying the above code (left as an excerise). | Note: Because CO2 can be produced or consumed, some of these yields will be negative. These can be either be discounted, or eliminated by modifying the above code (left as an excerise). |
Practical 4 Structural Analysis of the Woods-Ljungdahl Pathway
Introduction
The goal of this practical is to use what we have learned so far about structural analysis to extend the analysis of this pathway in Acetobacter woodii that was briefly described in Lecture 5.
The organism is capable of assimilating CO2, CO and H2 in various combinations, but each of these gases can also potentially appear as a product under different circumstances as many of the reactions are potentially reversible. The biotechnological interest is the extent to which this organism (and others that contain this pathway) can be used to capture CO2 and CO emissions. The major product of A woodii is acetate, though ethanol can be formed, and ethanol can be a major product of some WLP organisms.
ATP synthesis is linked to unusual electron-bifurcating redox reactions, and the yield is low as the energy available in the gas-assimilating reactions is low, so the organism survives close to the threshold of life. Calculating the potential pathways and ATP yield is challenging by inspection of the network diagram, so elementary modes is a useful tool in this context.
The questions we therefore want to answer are:
- What are the potential routes of gas uptake?
- Which of these produces ATP?
- What fraction of the gaseous carbon taken up is conserved in acetate or ethanol?
- How does the utilisation of hydrogen affect ATP production?
Instructions
(a) Create and load the WLP model as you learned in the previous practical.
(b) Make sure that you can relate the reactions and metabolites in the model to those in the diagrams and reaction key in lecture 4.
Note: Reaction and metabolite names are actually metacyc IDs. This give us the means for maping reactions->enzymes->genes, although this isn't covered in this workshop.
(c) Calculate the enzyme subsets. Check your result against the diagram in the lecture.
Note: m.EnzSubset() returns a dictionary. It is convenient to view each item in the dictionary using a for loop:
Note 2: Reactions not in subsets with any other reaction are considered to be in a subset of size 1
(d) Determine the sets of conserved moieties.
Not covered in this workshop, but ask an instructor if you are interested.
(e) Calculate the elementary modes of the model using ems = m.ElModes().
Note: m.ElModes() returns a new class of object, with a variety of methods for analysing the elementary modes that we have generated.
Note2: As with subsets, elementary modes are calculate using rational number. It is generally more convenient to convert everything to integer equivalents one the calculation is done:
We can now view the net stoichiometry of each elementary mode:
1 >>> print(ems.Stos())
The output from print(ems.Stos()) will not be conveniently ordered as in the table in the lecture though it should show all the corresponding conversions. The modes can be classified and counted as follows:
(f) Extract the set of modes that consume CO2 by emco2 = ems.Consumes(“x_co2”). The number of these modes is given by len(emco2), and their reactions by the Stos() method as above.
Note: ems.!Consumes(metabolite) generates another instance of the ElModes class, this means that searches can be chained together:
1 >>> foo2bar = ems.Consumes("foo").Produces("bar") # not with this model though, obvs!
There are a number of other search attributes that should be identifiable using dir()
(g) Partition the modes as in the table (found in pg 13 of the lecture slides) by the gas mixture consumed (for example, elmo2 = ems.Consumes('x_co2').Consumes('x_h2')). Similarly, categorise the modes by different products (method ‘Produces()')
(h) Calculation of ATP stoichiometry for each mode. The ATP formed per C atom assimilated is the rate of the 'ADENOSINETRIPHOSPHATASE-RXN' divided by the net C incorporated, which is the sum of the CO2 and CO transport rates ('CO2_sf_tx' and 'CO_sf_tx').
1 >>> ATPase ='ADENOSINETRIPHOSPHATASE-RXN' # save some typing!
2 >>> ATPEMs = ems.PosFlux(ATPase)
3 >>> for em in ATPEMs:
4 reacs = ATPEMs.ReacsOf(em)#the ReacsOf() method returns a dictionary of reactions and their associated weightings
5 if "CO2_sf_tx" in reacs:
6 print(em, reacs[ATPase]/reacs["CO2_sf_tx"])
Note: Because CO2 can be produced or consumed, some of these yields will be negative. These can be either be discounted, or eliminated by modifying the above code (left as an excerise).
For modes that consume H2, the amount of ATP per H2 can be found in a similar way ('H2_sf_tx').