Difference between revisions of "BioRuby PhyloXML HowTo documentation"

From Phyloinformatics
Jump to: navigation, search
(Intro)
(How to write a file)
Line 43: Line 43:
 
  # Add another tree to the file
 
  # Add another tree to the file
 
  writer.write(tree2)
 
  writer.write(tree2)
 +
 +
= How to retrieve data =
 +
 +
Here is an example of how to retrieve the scientific name of the clades.
 +
 +
require 'bio'
 +
 
 +
phyloxml = Bio::PhyloXML::Parser.new('ncbi_taxonomy_mollusca.xml')
 +
phyloxml.each do |tree|
 +
  tree.each_node do |node|
 +
    print "Scientific name: ", node.taxonomies[0].scientific_name, "\n"
 +
  end
 +
end

Revision as of 17:20, 13 August 2009

Intro

PhyloXML is an XML language for saving, analyzing and exchanging data of annotated phylogenetic trees. PhyloXML parser in BioRuby is implemented in Bio::PhyloXML::Parser and writer in Bio::PhyloXML::Writer. More information at www.phyloxml.org

Requirements

In addition to BioRuby library you need a libxml ruby bindings. To install:

gem install -r libxml-ruby

How to parse a file

require 'bio'
# Create new phyloxml parser
phyloxml = Bio::PhyloXML::Parser.new('example.xml')
# Print the names of all trees in the file
phyloxml.each do |tree|
  puts tree.name
end

If there are several trees in the file, you can access the one you wish by an index

tree = phyloxml[3]

You can use all Bio::Tree methods on the tree. For example,

tree.leaves.each do |node|
   puts node.name
end

How to write a file

# Create new phyloxml writer
writer = Bio::PhyloXML::Writer.new('tree.xml')
# Write tree to the file tree.xml
writer.write(tree1)
# Add another tree to the file
writer.write(tree2)

How to retrieve data

Here is an example of how to retrieve the scientific name of the clades.

require 'bio'
  
phyloxml = Bio::PhyloXML::Parser.new('ncbi_taxonomy_mollusca.xml')
phyloxml.each do |tree|
  tree.each_node do |node|
    print "Scientific name: ", node.taxonomies[0].scientific_name, "\n"
  end
end