def testEdges(self): a = MultiGraph(['a','b','c','d']) a.add_edge('a','b','label1') self.assertEqual(a.child_edges('a'), [('b','label1')], "incorrect child edges") a.add_edge('a','b','label2') l = a.child_edges('a') l.sort() self.assertEqual(l, [('b','label1'),('b','label2')], "incorrect child edges") a.add_edge('b','a','label2') self.assertEqual(a.parent_edges('a'), [('b','label2')], "incorrect parent edges") a.add_edge('b','c','label3') self.assertEqual(a.parent_edges('c'), [('b','label3')], "incorrect parent edges") l = a.children('b') l.sort() self.assertEqual(l, ['a', 'c'], "incorrect children") self.assertEqual(a.children('d'), [], "incorrect children for singleton") self.assertEqual(a.parents('a'), ['b'], "incorrect parents")
class Network(object): """A set of species that are explicitly linked by interactions. The network is a directed multigraph with labeled edges. The nodes in the graph are the biochemical species involved. The edges represent an interaction between two species, and the edge label is a reference to the associated Interaction object. Attributes: None """ def __init__(self, species = []): """Initializes a new Network object.""" self.__graph = MultiGraph(species) def __repr__(self): """Returns a debugging string representation of this network.""" return "<Network: __graph: " + repr(self.__graph) + ">" def __str__(self): """Returns a string representation of this network.""" return "Network of " + str(len(self.species())) + " species and " + \ str(len(self.interactions())) + " interactions." def add_species(self, species): """Adds species to this network.""" self.__graph.add_node(species) def add_interaction(self, source, sink, interaction): """Adds interaction to this network.""" self.__graph.add_edge(source, sink, interaction) def source(self, species): """Returns list of unique sources for species.""" return self.__graph.parents(species) def source_interactions(self, species): """Returns list of (source, interaction) pairs for species.""" return self.__graph.parent_edges(species) def sink(self, species): """Returns list of unique sinks for species.""" return self.__graph.children(species) def sink_interactions(self, species): """Returns list of (sink, interaction) pairs for species.""" return self.__graph.child_edges(species) def species(self): """Returns list of the species in this network.""" return self.__graph.nodes() def interactions(self): """Returns list of the unique interactions in this network.""" return self.__graph.labels()
class Network(object): """A set of species that are explicitly linked by interactions. The network is a directed multigraph with labeled edges. The nodes in the graph are the biochemical species involved. The edges represent an interaction between two species, and the edge label is a reference to the associated Interaction object. Attributes: None """ def __init__(self, species=[]): """Initializes a new Network object.""" self.__graph = MultiGraph(species) def __repr__(self): """Returns a debugging string representation of this network.""" return "<Network: __graph: " + repr(self.__graph) + ">" def __str__(self): """Returns a string representation of this network.""" return "Network of " + str(len(self.species())) + " species and " + \ str(len(self.interactions())) + " interactions." def add_species(self, species): """Adds species to this network.""" self.__graph.add_node(species) def add_interaction(self, source, sink, interaction): """Adds interaction to this network.""" self.__graph.add_edge(source, sink, interaction) def source(self, species): """Returns list of unique sources for species.""" return self.__graph.parents(species) def source_interactions(self, species): """Returns list of (source, interaction) pairs for species.""" return self.__graph.parent_edges(species) def sink(self, species): """Returns list of unique sinks for species.""" return self.__graph.children(species) def sink_interactions(self, species): """Returns list of (sink, interaction) pairs for species.""" return self.__graph.child_edges(species) def species(self): """Returns list of the species in this network.""" return self.__graph.nodes() def interactions(self): """Returns list of the unique interactions in this network.""" return self.__graph.labels()