def __construct_reaction(self, rname, ko, reac, arrow, prod, mname):
        """ Code to parse and construct a reaction"""
        # Step 1. split reactants.
        rname = str(rname)
        mname = str(mname)

        r = Reaction(rname)
        left_coef,  left_comp = self.__get_coef_and_name(reac)
        right_coef, right_comp = self.__get_coef_and_name(prod)

        r.substrates.extend(left_comp)
        r.products.extend(right_comp)

        for i in xrange(len(left_coef)):
            r.stoichiometry[left_comp[i]] = left_coef[i]

        for i in xrange(len(right_coef)):
            r.stoichiometry[right_comp[i]] = right_coef[i]
        r.reversible = arrow
        r.arrow = arrow
        if ko == True:
            r.ko = True
        elif ko == False:
            r.ko = False
        elif 'false' in ko:
        # elif type(ko) == type("") and ko.lower() == "false":
            r.ko = False
        else:
            r.ko = True
        r.metabolism = mname
        r.active = True
        return r
예제 #2
0
    def __construct_reaction_from_reactionlst(self, reaction, rid, reversible):
        substrates = []
        products = []
        stoichiometry = {}
        longname_map  = {}

        r = Reaction(rid)
        substrates = self.reactiondb.get_stoichiometry(rid, "_substrates_")
        products   = self.reactiondb.get_stoichiometry(rid, "_products_")
        if substrates == "None":
            return None
        for sub in substrates:
            stoichiometry[ sub ] = self.reactiondb.get_stoichiometry(rid, sub)
            longname_map[ sub ] = self.reactiondb.get_long_name(sub)

        for prod in products:
            stoichiometry[ prod ] = self.reactiondb.get_stoichiometry(rid, prod)
            longname_map[ prod ] = self.reactiondb.get_long_name( prod )

        r.substrates = substrates
        r.products = products
        r.stoichiometry = stoichiometry
        r.reversible = reversible
        r.longname_map = longname_map
        return r
예제 #3
0
    def __construct_reaction_from_reactionlst(self, reaction, rid, reversible):
        substrates = []
        products = []
        stoichiometry = {}
        longname_map = {}

        r = Reaction(rid)
        substrates = self.reactiondb.get_stoichiometry(rid, "_substrates_")
        products = self.reactiondb.get_stoichiometry(rid, "_products_")
        # print "Get RID", rid
        # print "sub is", substrates
        if substrates == "None":
            return None
        for sub in substrates:
            stoichiometry[sub] = self.reactiondb.get_stoichiometry(rid, sub)
            longname_map[sub] = self.reactiondb.get_long_name(sub)
            # print sub, self.reactiondb.get_long_name(sub)

        # print
        for prod in products:
            # print '"' + prod + '"', '"'+ self.reactiondb.get_long_name(prod)+'"'
            stoichiometry[prod] = self.reactiondb.get_stoichiometry(rid, prod)
            longname_map[prod] = self.reactiondb.get_long_name(prod)

        # print
        # print "===="
        r.substrates = substrates
        r.products = products
        r.stoichiometry = stoichiometry
        r.reversible = reversible
        r.longname_map = longname_map
        return r
예제 #4
0
 def __construct_reaction(self, rname, ko, reac, arrow, prod, mname):
     """ Code to parse and construct a reaction"""
     # Step 1. split reactants.
     rname = str(rname)
     mname = str(mname)
      
     r = Reaction(rname)
     left_coef,  left_comp = self.__get_coef_and_name(reac)
     right_coef, right_comp = self.__get_coef_and_name(prod)
     
     r.substrates.extend(left_comp)
     r.products.extend(right_comp)
     print "[Add pathway] The substrates are ", r.substrates
     print "[Add pathway] The products are ", r.products
     
     for i in xrange(len(left_coef)):
         r.stoichiometry[left_comp[i]] = left_coef[i]
     
     for i in xrange(len(right_coef)):
         r.stoichiometry[right_comp[i]] = right_coef[i]
     print "[Add pathway] r.stoichiometry is ", r.stoichiometry
     print "Get external arrow is ", arrow
     r.reversible = arrow
     r.arrow = arrow
     if ko == "false":
         r.ko = False
     else:
         r.ko = True
     r.metabolism = mname
     r.active = True
     return r
예제 #5
0
    def __construct_reaction(self, rname, ko, reac, arrow, prod, mname):
        """ Code to parse and construct a reaction"""
        # Step 1. split reactants.
        rname = str(rname)
        mname = str(mname)

        r = Reaction(rname)
        left_coef, left_comp = self.__get_coef_and_name(reac)
        right_coef, right_comp = self.__get_coef_and_name(prod)

        r.substrates.extend(left_comp)
        r.products.extend(right_comp)
        print "[Add pathway] The substrates are ", r.substrates
        print "[Add pathway] The products are ", r.products

        for i in xrange(len(left_coef)):
            r.stoichiometry[left_comp[i]] = left_coef[i]

        for i in xrange(len(right_coef)):
            r.stoichiometry[right_comp[i]] = right_coef[i]
        print "[Add pathway] r.stoichiometry is ", r.stoichiometry
        print "Get external arrow is ", arrow
        r.reversible = arrow
        r.arrow = arrow
        if ko == "false":
            r.ko = False
        else:
            r.ko = True
        r.metabolism = mname
        r.active = True
        return r
예제 #6
0
 def __construct_reaction_from_reactionlst(self, reaction, rid, reversible):
     substrates = []
     products = []
     stoichiometry = {}
     longname_map  = {}
     
     r = Reaction(rid)
     substrates = self.reactiondb.get_stoichiometry(rid, "_substrates_")
     products   = self.reactiondb.get_stoichiometry(rid, "_products_")
     # print "Get RID", rid
     # print "sub is", substrates
     if substrates == "None":
         return None
     for sub in substrates:
         stoichiometry[ sub ] = self.reactiondb.get_stoichiometry(rid, sub)
         longname_map[ sub ] = self.reactiondb.get_long_name(sub)
         # print sub, self.reactiondb.get_long_name(sub)
         
     # print 
     for prod in products:
         # print '"' + prod + '"', '"'+ self.reactiondb.get_long_name(prod)+'"'
         stoichiometry[ prod ] = self.reactiondb.get_stoichiometry(rid, prod)
         longname_map[ prod ] = self.reactiondb.get_long_name( prod )
         
     # print
     # print "===="
     r.substrates = substrates
     r.products = products
     r.stoichiometry = stoichiometry
     r.reversible = reversible
     r.longname_map = longname_map
     return r
예제 #7
0
    def __construct_reaction_from_kgml(self, reaction, rid, reversible):
        substrates = []
        products = []
        stoichiometry = {}

        for sub in reaction.getiterator('substrate'):
            name = remove_comma(sub.get('name'))
            substrates.append(name)
            stoichiometry[ name ] = self.reactiondb.get_stoichiometry(rid, name)

        for prod in reaction.getiterator('product'):
            name = remove_comma(prod.get('name'))
            products.append(name)
            stoichiometry[ name ] = self.reactiondb.get_stoichiometry(rid, name)

        r = Reaction(rid)
        r.substrates = substrates
        r.products = products
        r.stoichiometry = stoichiometry
        r.reversible = reversible
        return r
예제 #8
0
    def __construct_reaction_from_kgml(self, reaction, rid, reversible):
        substrates = []
        products = []
        stoichiometry = {}

        for sub in reaction.getiterator('substrate'):
            name = remove_comma(sub.get('name'))
            substrates.append(name)
            stoichiometry[name] = self.reactiondb.get_stoichiometry(rid, name)

        for prod in reaction.getiterator('product'):
            name = remove_comma(prod.get('name'))
            products.append(name)
            stoichiometry[name] = self.reactiondb.get_stoichiometry(rid, name)

        r = Reaction(rid)
        r.substrates = substrates
        r.products = products
        r.stoichiometry = stoichiometry
        r.reversible = reversible
        return r