class Bio::PhyloXML::Node
Description¶ ↑
Class to hold clade element of phyloXML.
Attributes
BinaryCharacters object. The names and/or counts of binary characters present, gained, and lost at the root of a clade.
BranchColor object. Apply for the whole clade unless overwritten in sub-clade.
Array of Confidence objects. Indicates the support for a clade/parent branch.
Date object. A date associated with a clade/node.
Array of Distribution objects. The geographic distribution of the items of a clade (species, sequences), intended for phylogeographic applications.
Events at the root node of a clade (e.g. one gene duplication).
String. Used to link other elements to a clade (node) (on the xml-level).
String. Name of the node.
Id object
An array of Property objects, for example depth for sea animals.
Array of Reference objects. A literature reference for a clade.
Array of Sequence objects. Represents a molecular sequence (Protein, DNA, RNA) associated with a node.
Array of Taxonomy objects. Describes taxonomic information for a clade.
Float. Branch width for this node (including parent branch). Applies for the whole clade unless overwritten in sub-clades.
Public Class Methods
# File lib/bio/db/phyloxml/phyloxml_elements.rb, line 221 def initialize @confidences = [] @sequences = [] @taxonomies = [] @distributions = [] @references = [] @properties = [] @other = [] end
Public Instance Methods
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
# File lib/bio/db/phyloxml/phyloxml_elements.rb, line 269 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
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
# File lib/bio/db/phyloxml/phyloxml_elements.rb, line 245 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
Converts elements to xml representation. Called by PhyloXML::Writer class.
# File lib/bio/db/phyloxml/phyloxml_elements.rb, line 287 def to_xml(branch_length, write_branch_length_as_subelement) clade = LibXML::XML::Node.new('clade') PhyloXML::Writer.generate_xml(clade, self, [[:simple, 'name', @name]]) 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', @width], [:complex, 'branch_color', @branch_color], [:simple, 'node_id', @node_id], [:objarr, 'taxonomy', 'taxonomies'], [:objarr, 'sequence', 'sequences'], [:complex, 'events', @events], [:complex, 'binary_characters', @binary_characters], [:objarr, 'distribution', 'distributions'], [:complex, 'date', @date], [:objarr, 'reference', 'references'], [:objarr, 'propery', 'properties']]) return clade end
# File lib/bio/db/phyloxml/phyloxml_elements.rb, line 183 def width=(str) @width = str.to_f end