def testList(self): a = HashSet(['a', 'b', 'c', 'd', 'e']) l = a.list() l.sort() self.assertEqual(l, ['a', 'b', 'c', 'd', 'e'], "incorrect list") l = [] self.assertTrue('e' in a, "set rep exposure")
def children(self, parent): """Returns a list of unique children for parent.""" s = HashSet([x[0] for x in self.child_edges(parent)]) return s.list()
def parents(self, child): """Returns a list of unique parents for child.""" s = HashSet([x[0] for x in self.parent_edges(child)]) return s.list()
def species(self): """Returns a list of the species in this system.""" s = HashSet(reduce(lambda s,x: s + x, [x.species() for x in self.reactions()], [])) return s.list()
class System: """Abstraction for a collection of reactions. This class is used in the Bio.Pathway framework to represent an arbitrary collection of reactions without explicitly defined links. Attributes: None """ def __init__(self, reactions = []): """Initializes a new System object.""" self.__reactions = HashSet(reactions) def __repr__(self): """Returns a debugging string representation of self.""" return "System(" + ",".join(map(repr,self.__reactions.list())) + ")" def __str__(self): """Returns a string representation of self.""" return "System of " + str(len(self.__reactions)) + \ " reactions involving " + str(len(self.species())) + \ " species" def add_reaction(self, reaction): """Adds reaction to self.""" self.__reactions.add(reaction) def remove_reaction(self, reaction): """Removes reaction from self.""" self.__reactions.remove(reaction) def reactions(self): """Returns a list of the reactions in this system.""" return self.__reactions.list() def species(self): """Returns a list of the species in this system.""" s = HashSet(reduce(lambda s,x: s + x, [x.species() for x in self.reactions()], [])) return s.list() def stochiometry(self): """Computes the stoichiometry matrix for self. Returns (species, reactions, stoch) where species = ordered list of species in this system reactions = ordered list of reactions in this system stoch = 2D array where stoch[i][j] is coef of the jth species in the ith reaction, as defined by species and reactions above """ # Note: This an inefficient and ugly temporary implementation. # To be practical, stochiometric matrices should probably # be implemented by sparse matrices, which would require # NumPy dependencies. # # PS: We should implement automatic checking for NumPy here. species = self.species() reactions = self.reactions() stoch = [] * len(reactions) for i in range(len(reactions)): stoch[i] = 0 * len(species) for s in reactions[i].species(): stoch[species.index(s)] = reactions[i].reactants[s] return (species, reactions, stoch)
def species(self): """Returns a list of the species in this system.""" s = HashSet( reduce(lambda s, x: s + x, [x.species() for x in self.reactions()], [])) return s.list()
class System: """Abstraction for a collection of reactions. This class is used in the Bio.Pathway framework to represent an arbitrary collection of reactions without explicitly defined links. Attributes: None """ def __init__(self, reactions=[]): """Initializes a new System object.""" self.__reactions = HashSet(reactions) def __repr__(self): """Returns a debugging string representation of self.""" return "System(" + ",".join(map(repr, self.__reactions.list())) + ")" def __str__(self): """Returns a string representation of self.""" return "System of " + str(len(self.__reactions)) + \ " reactions involving " + str(len(self.species())) + \ " species" def add_reaction(self, reaction): """Adds reaction to self.""" self.__reactions.add(reaction) def remove_reaction(self, reaction): """Removes reaction from self.""" self.__reactions.remove(reaction) def reactions(self): """Returns a list of the reactions in this system.""" return self.__reactions.list() def species(self): """Returns a list of the species in this system.""" s = HashSet( reduce(lambda s, x: s + x, [x.species() for x in self.reactions()], [])) return s.list() def stochiometry(self): """Computes the stoichiometry matrix for self. Returns (species, reactions, stoch) where species = ordered list of species in this system reactions = ordered list of reactions in this system stoch = 2D array where stoch[i][j] is coef of the jth species in the ith reaction, as defined by species and reactions above """ # Note: This an inefficient and ugly temporary implementation. # To be practical, stochiometric matrices should probably # be implemented by sparse matrices, which would require # NumPy dependencies. # # PS: We should implement automatic checking for NumPy here. species = self.species() reactions = self.reactions() stoch = [] * len(reactions) for i in range(len(reactions)): stoch[i] = 0 * len(species) for s in reactions[i].species(): stoch[species.index(s)] = reactions[i].reactants[s] return (species, reactions, stoch)