Method: Bio::Tree#leaves

Defined in:
lib/bio/tree.rb

#leaves(node = nil, root = nil) ⇒ Object

If node is nil, returns an array of all leaves (nodes connected with one edge). Otherwise, gets all descendent leaf nodes of the node. If root isn’t specified or root is nil, @root is used. Returns an array of Nodes. The result is unspecified for cyclic trees.



676
677
678
679
680
681
682
683
684
685
686
687
688
689
# File 'lib/bio/tree.rb', line 676

def leaves(node = nil, root = nil)
  unless node then
    nodes = []
    self.each_node do |x|
      nodes << x if self.out_degree(x) == 1
    end
    return nodes
  else
    root ||= @root
    self.descendents(node, root).find_all do |x|
      self.adjacent_nodes(x).size == 1
    end
  end
end