[BioRuby] BioRuby: newick parser
Pjotr Prins
pjotr.public14 at thebird.nl
Mon Mar 12 20:11:59 UTC 2012
Bio::Tree::distance(node1,node2)'s calculating the path distance is
pretty cool :)
http://bioruby.open-bio.org/rdoc/Bio/Pathway.html#method-i-breadth_first_search
seq7.parent.should == root
seq4 = tree.find("seq4")
seq4.distance(seq7).should == 19.387756600000003
Pj.
On Mon, Mar 12, 2012 at 06:05:26PM +0100, Pjotr Prins wrote:
> OK, this works:
>
> @aln.link_tree(@tree) # @tree contains a parsed Newick tree
> root = @aln.root # get the root of the tree
> root.leaf?.should == false
> children = root.children
> children.map { |n| n.name }.sort.should == ["","seq7"]
> seq7 = children.last
> seq7.name.should == 'seq7'
> seq7.leaf?.should == true
> seq7.parent.should == root
>
> the added functionality for BioRuby's Bio::Tree::Node can be seen here
>
> https://github.com/pjotrp/bioruby-alignment/blob/development/lib/bio-alignment/tree.rb
>
> basically I inject the @tree info into every existing Node object.
> From then on, I can use it to make the interface nicer. A monkey
> patch, indeed.
>
> Good enough for now.
>
> Pj.
>
> On Mon, Mar 12, 2012 at 05:24:38PM +0100, Pjotr Prins wrote:
> > On Mon, Mar 12, 2012 at 03:18:48PM +0900, Naohisa GOTO wrote:
> > > When writing HOWTO based on BioPerl HOWTO:Trees,
> > > (http://bioruby.open-bio.org/wiki/HOWTO:Trees but still incomplete)
> > > I'm thinking to add/modify some API about speficying nodes/edges.
> >
> > After some trying I agree. The Bio::Tree::Node object should know
> > 'more' about its state. I would like to do something like:
> >
> > root.leaf?.should == false
> > node = root.childeren.first
> > node.leaf?.should == false
> > node2 == node.childeren.first
> > node.leaf?.should == true
> > node2.edge(node).distance.should == 1.34
> >
> > now I need to do something like
> >
> > tree = @tree
> > node = tree.get_node_by_name('node')
> > tree.get_edge(node, tree.parent(node)).distance.should == 1.34
> >
> > which uses the tree state to get a node edge, and does not feel that
> > intuitive.
> >
> > I'll try to extend Bio::Tree for bio-alignment, see what works.
> >
> > Pj.
> >
>
More information about the BioRuby
mailing list