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.



738
739
740
741
742
743
744
745
746
747
748
749
750
751
# File 'lib/bio/tree.rb', line 738

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