class Bio::PhyloXML::Node

Description

Class to hold clade element of phyloXML.

Attributes

binary_characters[RW]

BinaryCharacters object. The names and/or counts of binary characters present, gained, and lost at the root of a clade.

color[RW]

BranchColor object. Apply for the whole clade unless overwritten in sub-clade.

confidences[RW]

Array of Confidence objects. Indicates the support for a clade/parent branch.

date[RW]

Date object. A date associated with a clade/node.

distributions[RW]

Array of Distribution objects. The geographic distribution of the items of a clade (species, sequences), intended for phylogeographic applications.

events[RW]

Events at the root node of a clade (e.g. one gene duplication).

id_source[RW]

String. Used to link other elements to a clade (node) (on the xml-level).

name[RW]

String. Name of the node.

node_id[RW]

Id object

other[RW]

Array of Other objects. Used to save additional information from other than PhyloXML namspace.

properties[RW]

An array of Property objects, for example depth for sea animals.

references[RW]

Array of Reference objects. A literature reference for a clade.

sequences[RW]

Array of Sequence objects. Represents a molecular sequence (Protein, DNA, RNA) associated with a node.

taxonomies[RW]

Array of Taxonomy objects. Describes taxonomic information for a clade.

width[R]

Float. Branch width for this node (including parent branch). Applies for the whole clade unless overwritten in sub-clades.

Public Class Methods

new() click to toggle source
# File lib/bio/db/phyloxml/phyloxml_elements.rb, line 220
def initialize
  @confidences = []
  @sequences = []
  @taxonomies = []
  @distributions = []
  @references = []
  @properties = []
  @other = []
end

Public Instance Methods

extract_biosequence(seq_i=0) click to toggle source

Extracts the relevant information from node (specifically taxonomy and sequence) to create Bio::Sequence object. Node can have several sequences, so parameter to this method is to specify which sequence to extract.


Returns

Bio::Sequence

# File lib/bio/db/phyloxml/phyloxml_elements.rb, line 268
def extract_biosequence(seq_i=0)

  seq = @sequences[seq_i].to_biosequence
  seq.classification = []
  @taxonomies.each do |t|
    seq.classification << t.scientific_name
    if t.rank == "species"
      seq.species = t.scientific_name
    end
  end

  #seq.division => .. http://www.ebi.ac.uk/embl/Documentation/User_manual/usrman.html#3_2
  # It doesn't seem there is anything in PhyloXML corresponding to this.

  return seq
end
to_biotreenode() click to toggle source

Converts to a Bio::Tree::Node object. If it contains several taxonomies Bio::Tree::Node#scientific name will get the scientific name of the first taxonomy.

If there are several confidence values, the first with bootstrap type will be returned as Bio::Tree::Node#bootstrap

tree = phyloxmlparser.next_tree

node = tree.get_node_by_name(“A”).to_biotreenode


Returns

Bio::Tree::Node

# File lib/bio/db/phyloxml/phyloxml_elements.rb, line 244
def to_biotreenode
  node = Bio::Tree::Node.new
  node.name = @name
  node.scientific_name = @taxonomies[0].scientific_name if not @taxonomies.empty?
  #@todo what if there are more?
  node.taxonomy_id = @taxonomies[0].taxononmy_id if @taxonomies[0] != nil

  if not @confidences.empty?
    @confidences.each do |confidence|
      if confidence.type == "bootstrap"
        node.bootstrap = confidence.value
        break
      end
    end
  end      
  return node
end
to_xml(branch_length, write_branch_length_as_subelement) click to toggle source

Converts elements to xml representation. Called by PhyloXML::Writer class.

# File lib/bio/db/phyloxml/phyloxml_elements.rb, line 286
def to_xml(branch_length,  write_branch_length_as_subelement)
  clade = LibXML::XML::Node.new('clade')
  
  PhyloXML::Writer.generate_xml(clade, self, [[:simple, 'name', (defined? @name) ? @name : nil]])

  if branch_length != nil       
    if write_branch_length_as_subelement
      clade << LibXML::XML::Node.new('branch_length', branch_length.to_s)
    else
      clade["branch_length"] = branch_length.to_s
    end
  end

  #generate all elements, except clade
  PhyloXML::Writer.generate_xml(clade, self, [
      [:attr, "id_source"],
      [:objarr, 'confidence', 'confidences'],
      [:simple, 'width', (defined? @width) ? @width : nil],
      [:complex, 'branch_color', (defined? @branch_color) ? @branch_color : nil],
      [:simple, 'node_id', (defined? @node_id) ? @node_id : nil],
      [:objarr, 'taxonomy', 'taxonomies'],
      [:objarr, 'sequence', 'sequences'],
      [:complex, 'events', (defined? @events) ? @events : nil],
      [:complex, 'binary_characters', (defined? @binary_characters) ? @binary_characters : nil],
      [:objarr, 'distribution', 'distributions'],
      [:complex, 'date', (defined? @date) ? @date : nil],
      [:objarr, 'reference', 'references'],
      [:objarr, 'propery', 'properties']])
 
  return clade
end
width=(str) click to toggle source
# File lib/bio/db/phyloxml/phyloxml_elements.rb, line 182
def width=(str)
  @width = str.to_f
end