Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2018-01-09 15:26:41
Size: 6045
Editor: david
Comment: Copied from W3, P5, but need to change.
Revision 3 as of 2018-01-15 21:50:41
Size: 6010
Editor: david
Comment: Partially constructed.
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
=== Intend to revert this because of BioCyc licensing issues. Substitute a manual pat6hway completion task? ===
== Building a model from MetaCyc
==
Our aim is to construct a model of the Entner-Doudoroff pathway of glycolysis in the natural ethanol-fermenting organism ''Zymomonas mobilis''.    If time permits, we will later use this as a basis to explore whether the substrate range of this organism could be expanded by metabolic engineering. For some background to this, you can find two articles [[http://dx.doi.org/10.1016/j.jbiotec.2013.02.014|here]] and [[http://journal.frontiersin.org/Journal/10.3389/fmicb.2014.00042/full|here]].
== Building a model from databases ==
Our aim is to construct a model of the Entner-Doudoroff pathway of glycolysis in the natural ethanol-fermenting organism ''Zymomonas mobilis''. For examples of how such a model can be exploited, you can find two articles [[http://dx.doi.org/10.1016/j.jbiotec.2013.02.014|here]] and [[http://journal.frontiersin.org/Journal/10.3389/fmicb.2014.00042/full|here]].
Line 6: Line 5:
For this, we will use the !ScrumPy module '''!PyoCyc''' to extract the required reaction equations from a local copy of the [[http://metacyc.org/|MetaCyc]] database, starting from a list of the enzyme EC numbers. We will write the reactions into a !ScrumPy file, which can then be loaded into !ScrumPy and investigated. Of course, this automatically-generated model will not immediately work, for reasons such as different identifiers being used for the same metabolite in different reactions. In addition, the reaction list will contain reactions that will not take place in connection with the Entner-Doudoroff pathway because their substrates are not available in the cell. Within !ScrumPy, there is a module '''!PyoCyc''' that can extract the required reaction equations from a downloaded copy of the [[http://metacyc.org/|MetaCyc]] database, starting from a list of the enzyme EC numbers. However, the !BioCyc set of databases, including !MetaCyc, have moved to a subscription model that makes it more difficult for us to share this with you. Hence you will need to consult the web version of the database and write the reaction equations your self.
Line 8: Line 7:
Your task is to  get the model to work so there is a viable route from glucose to  ethanol, and to condense it so that only relevant reactions are present. Your task is to get the model to work so there is a viable route from glucose to ethanol.
Line 13: Line 12:
 1. Open the model file with !ScrumPy. Note that there are some generic components of the model here that we are giving you as a starting point:
  1. An ''Include'' directive that is currently commented out but which will be needed to incorporate the reactions you are going to find.
 1. Open the model file with !ScrumPy. Two editor windows will open. The one for Zymomonas.spy contains some generic components of the model here that we are giving you as a starting point:
  1. An ''Include'' directive to the file !ZmED.spy which opens as the second, initially empty window into which you are going to write the pathwy reactions.
Line 16: Line 15:
  1. A statement that WATER and PROTONS are regarded as external, freely-available species. Balancing every last PROTON is hard, so we're not going to struggle with that yet.   1. A  statement that WATER and PROTONS are regarded as external,  freely-available species. Balancing every last PROTON is hard, so we're  not going to struggle with t_hat yet.
Line 18: Line 17:
  1. A set of transporter definitions that state that glucose (GLC), ethanol (ETOH) and carbon dioxide can exchange between the metabolism and the  environment.   1. A set of  transporter definitions that state that glucose (GLC), ethanol  (ETOH) and carbon dioxide (CARBON-DIOXIDE) can exchange between the  metabolism  and the environment.
Line 20: Line 19:
  1. Two reaction definitions that cannot be retrieved from their EC numbers in the !MetaCyc data files, even though they are present.   1. A generic ATPase reaction that states that any ATP generated will be hydrolysed by other reactions in the cell.

 1. Note that this means you will need to use the same metabolite names for H,,2,,O, H^+^, etc.
Line 23: Line 24:
 1. Open !PyoCyc and load the !MetaCyc database by typing the following in your !ScrumPy window:
 {{{
from Bioinf import PyoCyc
db = PyoCyc.Organism()
}}}
 Note that though you've loaded the generic !MetaCyc, you could in principal load any [[http://biocyc.org/|BioCyc]] format organism database.
 1. This list of EC numbers covers the Entner-Doudoroff pathway: EC-2.7.1.2, EC-1.1.1.363 ( or EC-1.1.1.388), EC-3.1.1.31, EC-4.2.1.12, 'EC-4.1.2.14','EC-1.1.1.44', 'EC-1.2.1.12', 'EC-2.7.2.3', 'EC-5.4.2.11', 'EC-4.2.1.11', 'EC-2.7.1.40', 'EC-4.1.1.1', 'EC-1.1.1.1']
Line 30: Line 26:
 1. Copy this list of EC numbers for the Entner-Doudoroff pathway:
 {{{
ecs=['EC-2.7.1.2', 'EC-3.1.1.31', 'EC-4.2.1.12', 'EC-4.1.2.14','EC-1.1.1.44', 'EC-1.2.1.12', 'EC-2.7.2.3', 'EC-5.4.2.11', 'EC-4.2.1.11', 'EC-2.7.1.40', 'EC-4.1.1.1', 'EC-1.1.1.1']
}}}
 1. Go to [[http://metacyc.org/|MetaCyc]] and enter the number for the first enzyme in the list: ''EC-2.7.1.2''.
Line 35: Line 28:
 1. You can see the set of reactions associated with each EC number with the following code:
 {{{
for e in ecs:
        for r in db[e]:
                print e, "\n", r.AsScrumPy()
}}}
 Here, each EC number in turn is used as a key, ''e'' into the database, which returns a set of reaction records. The method !AsScrumPy formats the record as required for the input file.
 1. In the result, there is a section ''Reactions''. If you mouse over the reaction specification, the link that shows up in your browser is the !MetaCyc-assigned name fo the reaction (since an enzyme can catalyse more than one reaction, and a reaction can be catalysed by more than one enzyme.
Line 43: Line 30:
 1. You need to generate an input file though, so enter the following:
 {{{
spy=open("ZmED.spy","w")
spy.write('# Entner Duodoroff pathway\n')
for e in ecs:
    str = "# " + e +"\n"
    for r in db[e]:
            spy.write(str)
            spy.write(r.AsScrumPy())
 1. Enter the rection name in the ZmED.spy file followed by a ':'; then copy the relevant reaction specification, followed by ' ~'.
Line 53: Line 32:
spy.close()
}}}
  . After opening the file, ZmED.spy, the first write statement puts an identifying comment in. Then for each EC number, a comment is inserted giving the EC number, since this often doesn't appear in the reaction name.
 1. Consider whether the !MetaCyc metabolite names in the reaction match the names used for the same metabolite in previous or successive reactions. To see how this can arise as a problem, search !MetaCyc for the compound ''D-glucose'', then look at the ''Subclasses and Instances'' subsection of the result. It's partly your choice what name you use as standard, but any one metabolite must have a single, unique name in your model, and some metabolites have already been named for you in Zymomonas.spy.

 1. Searching for the next enzyme, EC-1.1.1.363, returns a reaction specification containing the 'metabolite' NAD(P)+, meaning there are tow reactions possible; one with NAD+ and another with NADP+, and the corresponding products. The principal substrate in ''Z. mobilis'' is actually NAD+ (which is actually the specific reaction of EC-1.1.1.388).

 1. Continue through the list adding the reactions to the !Zm.ED.spy window.

 1. .
Line 63: Line 46:
  . Two windows should now be open, one for Zymomonas.spy and one for ZmED.spy. However, the null space is empty, in other words the system defined by this model cannot support a stead-state flux in any of its reactions.   . Two windows should now be  open, one for Zymomonas.spy and one for ZmED.spy. However, the null  space is empty, in other words the system defined by this model cannot  support a stead-state flux in any of its reactions.
Line 65: Line 48:
 1. The common possibilities for the lack of a viable route where there should be one are either missing reactions, or, when all the reactions are present, inconsistencies in metabolite definitions break the connectivity. Looking for dangling ('''orphan''') metabolites can point to both of these issues:  1. The  common possibilities for the lack of a viable route where there  should be one are either missing reactions, or, when all the reactions  are present, inconsistencies in metabolite definitions break the  connectivity. Looking for dangling ('''orphan''') metabolites can point to both of these issues:
Line 70: Line 53:
 1. If the network connectivity is being broken by inconsistent metabolite naming, edit ZmED.spy, save it, and recompile the model. Then check the null space and orphan metabolites again.  1. If the network connectivity is being broken  by inconsistent metabolite naming, edit ZmED.spy, save it, and  recompile the model. Then check the null space and orphan metabolites  again.
Line 72: Line 55:
 1. Once you get one or more null space vectors, you can compute the elementary modes of the model and the stoichiometry of their overall reaction to check whether you have the exected conversion of glucose to ethanol.  1. Once you get one or more null space  vectors, you can compute the elementary modes of the model and the  stoichiometry of their overall reaction to check whether you have the  exected conversion of glucose to ethanol.
Line 74: Line 57:
 1. The model can now be reduced by removing reactions that will always be dead. Calculate the enzyme subsets of the model; all the dead reactions will be in the "dead" subset. Rather than deleting the reactions immediately, remove them from the model by placing a comment marker, "#", at the start of each line belonging to an unwanted reaction. Recompile the model and check that you have not broken the network.  1. The  model can now be reduced by removing reactions that will always be  dead. Calculate the enzyme subsets of the model; all the dead reactions  will be in the "dead" subset. Rather than deleting the reactions  immediately, remove them from the model by placing a comment marker,  "#", at the start of each line belonging to an unwanted reaction.  Recompile the model and check that you have not broken the network.

Practical 5

Building a model from databases

Our aim is to construct a model of the Entner-Doudoroff pathway of glycolysis in the natural ethanol-fermenting organism Zymomonas mobilis. For examples of how such a model can be exploited, you can find two articles here and here.

Within ScrumPy, there is a module PyoCyc that can extract the required reaction equations from a downloaded copy of the MetaCyc database, starting from a list of the enzyme EC numbers. However, the BioCyc set of databases, including MetaCyc, have moved to a subscription model that makes it more difficult for us to share this with you. Hence you will need to consult the web version of the database and write the reaction equations your self.

Your task is to get the model to work so there is a viable route from glucose to ethanol.

Step 1

  1. Download, by right-clicking on its link, the ScrumPy file Zymomonas.spy and save it in the directory you are going to use for this exercise.

  2. Open the model file with ScrumPy. Two editor windows will open. The one for Zymomonas.spy contains some generic components of the model here that we are giving you as a starting point:

    1. An Include directive to the file !ZmED.spy which opens as the second, initially empty window into which you are going to write the pathwy reactions.

    2. A statement that WATER and PROTONS are regarded as external, freely-available species. Balancing every last PROTON is hard, so we're not going to struggle with t_hat yet.
    3. A set of transporter definitions that state that glucose (GLC), ethanol (ETOH) and carbon dioxide (CARBON-DIOXIDE) can exchange between the metabolism and the environment.
    4. A generic ATPase reaction that states that any ATP generated will be hydrolysed by other reactions in the cell.
  3. Note that this means you will need to use the same metabolite names for H2O, H+, etc.

Step 2

  1. This list of EC numbers covers the Entner-Doudoroff pathway: EC-2.7.1.2, EC-1.1.1.363 ( or EC-1.1.1.388), EC-3.1.1.31, EC-4.2.1.12, 'EC-4.1.2.14','EC-1.1.1.44', 'EC-1.2.1.12', 'EC-2.7.2.3', 'EC-5.4.2.11', 'EC-4.2.1.11', 'EC-2.7.1.40', 'EC-4.1.1.1', 'EC-1.1.1.1']
  2. Go to MetaCyc and enter the number for the first enzyme in the list: EC-2.7.1.2.

  3. In the result, there is a section Reactions. If you mouse over the reaction specification, the link that shows up in your browser is the MetaCyc-assigned name fo the reaction (since an enzyme can catalyse more than one reaction, and a reaction can be catalysed by more than one enzyme.

  4. Enter the rection name in the ZmED.spy file followed by a ':'; then copy the relevant reaction specification, followed by ' ~'.
  5. Consider whether the MetaCyc metabolite names in the reaction match the names used for the same metabolite in previous or successive reactions. To see how this can arise as a problem, search MetaCyc for the compound D-glucose, then look at the Subclasses and Instances subsection of the result. It's partly your choice what name you use as standard, but any one metabolite must have a single, unique name in your model, and some metabolites have already been named for you in Zymomonas.spy.

  6. Searching for the next enzyme, EC-1.1.1.363, returns a reaction specification containing the 'metabolite' NAD(P)+, meaning there are tow reactions possible; one with NAD+ and another with NADP+, and the corresponding products. The principal substrate in Z. mobilis is actually NAD+ (which is actually the specific reaction of EC-1.1.1.388).

  7. Continue through the list adding the reactions to the !Zm.ED.spy window.
  8. .

Step 3

  1. Un-comment the Include directive in the Zymomonas.spy file to load your ZmED.spy and recompile the model using the drop-down ScrumPy menu option. Find out if there is a potential pathway through it by calculating the null space of the stoichiometry matrix:

    ns = m.sm.NullSpace()
    ns
    • Two windows should now be open, one for Zymomonas.spy and one for ZmED.spy. However, the null space is empty, in other words the system defined by this model cannot support a stead-state flux in any of its reactions.
  2. The common possibilities for the lack of a viable route where there should be one are either missing reactions, or, when all the reactions are present, inconsistencies in metabolite definitions break the connectivity. Looking for dangling (orphan) metabolites can point to both of these issues:

    m.sm.OrphanMets()
  3. If the network connectivity is being broken by inconsistent metabolite naming, edit ZmED.spy, save it, and recompile the model. Then check the null space and orphan metabolites again.
  4. Once you get one or more null space vectors, you can compute the elementary modes of the model and the stoichiometry of their overall reaction to check whether you have the exected conversion of glucose to ethanol.
  5. The model can now be reduced by removing reactions that will always be dead. Calculate the enzyme subsets of the model; all the dead reactions will be in the "dead" subset. Rather than deleting the reactions immediately, remove them from the model by placing a comment marker, "#", at the start of each line belonging to an unwanted reaction. Recompile the model and check that you have not broken the network.
  6. How many reactions are left in ZmED.spy when you have inactivated all the dead ones?

Step 4

Time permitting, go to the next part.

None: Meetings/C1netWork4/Prac5 (last edited 2018-01-17 11:26:07 by david)