1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
# Copyright 2001 by Tarjei Mikkelsen. All rights reserved.
# Copyright 2007 by Michiel de Hoon. All rights reserved.
# This code is part of the Biopython distribution and governed by its
# license. Please see the LICENSE file that should have been included
# as part of this package.
"""
This module provides code to import KEGG Pathway maps for use with
the Biopython Pathway module.
The pathway maps are in the format:
RXXXXX:[X.X.X.X:] A + 2 B <=> C
RXXXXX:[X.X.X.X:] 3C <=> 2 D + E
...
where RXXXXX is a five-digit reaction id, and X.X.X.X is the optional
EC number of the enzyme that catalyze the reaction.
"""
from Bio.Pathway import Reaction
def parse(handle):
for line in handle:
data, catalysts, reaction = line.split(":")
catalysts = [(catalysts,)]
reactants = {}
before, after = reaction.split("<=>")
compounds = before.split(" + ")
for compound in compounds:
compound = compound.strip()
try:
number, compound = compound.split()
number = -int(number)
except ValueError:
number = -1
reactants[compound] = number
compounds = after.split(" + ")
for compound in compounds:
compound = compound.strip()
try:
number, compound = compound.split()
number = int(number)
except ValueError:
number = +1
reactants[compound] = number
yield Reaction(reactants, catalysts, True, data)
|