Method: Bio::Tree#remove_edge
- Defined in:
- lib/bio/tree.rb
#remove_edge(source, target) ⇒ Object
Removes an edge between source and target. Returns self. If the edge does not exist, raises IndexError.
If two or more edges exists between source and target, all of them are removed. +++
448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 |
# File 'lib/bio/tree.rb', line 448 def remove_edge(source, target) unless self.get_edge(source, target) then raise IndexError, 'edge not found' end fwd = [ source, target ] rev = [ target, source ] @pathway.relations.delete_if do |rel| rel.node == fwd or rel.node == rev end h = @pathway.graph[source] h.delete(target) if h h = @pathway.graph[target] h.delete(source) if h self end |