[Bioperl-l] How to show branch length value in tree
Roy Chaudhuri
roy.chaudhuri at gmail.com
Fri Aug 5 10:54:32 UTC 2011
In that case then you only want to add branch lengths to non-leaf nodes,
so it would be:
for my $node ($t1->get_nodes) {
$node->id($node->branch_length) unless $node->is_Leaf
}
On 05/08/2011 06:40, Shachi Gahoi wrote:
>
> Instead of both node id and accession, Can I replace node id with accession?
>
>
> On Thu, Aug 4, 2011 at 4:52 PM, Roy Chaudhuri <roy.chaudhuri at gmail.com
> <mailto:roy.chaudhuri at gmail.com>> wrote:
>
> Hi Shachi,
>
> Please keep replies on the mailing list, that way others can follow
> the discussion.
>
> As I mentioned, it is not possible to draw njplot-style trees with
> labelled branches using Bio::Tree::Draw::Cladogram, it currently
> only labels nodes (you could perhaps add branch labels as a feature
> request on Redmine).
>
> The code I gave overwrites the existing "leaf" node ids (the
> accessions) with branch lengths, if you want to also keep the
> existing labels you could try something like:
>
>
> for my $node ($t1->get_nodes) {
> if ($node->is_Leaf) {
> $node->id($node->branch___length.' '.$node->id);
> } else {
>
> $node->id($node->branch___length)
> }
> }
>
> Cheers,
> Roy.
>
>
> On 04/08/2011 05:36, Shachi Gahoi wrote:
>
> Thank You so much. Now branch length is coming in tree.
>
> But I want Accesssion number in place of node id.
>
> I attached snapshot of tree as I want. Please tell me how can I
> do this.
>
>
>
>
> On Wed, Aug 3, 2011 at 7:31 PM, Roy Chaudhuri
> <roy.chaudhuri at gmail.com <mailto:roy.chaudhuri at gmail.com>
> <mailto:roy.chaudhuri at gmail.__com
> <mailto:roy.chaudhuri at gmail.com>>> wrote:
>
> Sorry, the code had a typo, it should be:
>
>
> my $obj1 = Bio::Tree::Draw::Cladogram->____new(-bootstrap => 1,
> -tree => $t1,
> -compact => 0);
> for my $node ($t1->get_nodes) {
>
> $node->id($node->branch_____length) if defined
> $node->branch_length;
> }
> $obj1->print(-file => "$dir/$stem.eps")
>
> On 03/08/2011 14:58, Roy Chaudhuri wrote:
>
> Hi Shachi,
>
> I don't think you can draw labels on branches using
> Bio::Tree::Draw::Cladogram. However, it will draw node
> labels,
> so you
> could copy the branch lengths over to the node ids:
>
> my $obj1 =
> Bio::Tree::Draw::Cladogram->____new(-bootstrap => 1,
> -tree =>
> $t1,
> -compact =>
> 0);
> for my $node ($tree->get_nodes) {
> $node->id($node->branch_____length) if defined
> $node->branch_length;
> }
> $obj1->print(-file => "$dir/$stem.eps")
>
> Incidentally, in your script you write the tree out to a
> file,
> then read
> it back in using TreeIO. This is unnecessary, you can
> use $tree
> directly
> as input to Bio::Tree::Draw::Cladogram.
>
> Alternatively, you could write out a newick file and use
> non-Bioperl
> software such as njplot or MEGA to draw your tree with
> labelled
> branch
> lengths.
>
> Cheers,
> Roy.
>
> On 03/08/2011 07:00, Shachi Gahoi wrote:
>
> Dear All
>
> I am using Bio::Tree modules for constructing and
> drawing
> tree. *I am unable
> to show branch length value in tree.
> *
> Please tell me How can I do this, if anybody knows.
>
> Here is my script which i am using...and i also attached
> generated tree.
>
> Thanks in advance
>
>
> ##############################____############################__##__##########################__####__######
>
> use Bio::AlignIO;
> use Bio::Align::ProteinStatistics;
> use Bio::Tree::DistanceFactory;
> use Bio::TreeIO;
> use Bio::Tree::Draw::Cladogram;
>
> # for a dna alignment
> # can also use ProteinStatistics
>
> my $alnio = Bio::AlignIO->new(-file => 'ADP.aln',
> -format=>'clustalw');
>
> my $dfactory =
> Bio::Tree::DistanceFactory->____new(-method =>
> 'UPGMA');
>
> my $stats = Bio::Align::ProteinStatistics-____>new;
>
> my $treeout = Bio::TreeIO->new(-format => 'newick',
> -file
> =>'>ADP1.dnd');
>
> while( my $aln = $alnio->next_aln )
> {
> my $mat = $stats->distance(-method => 'Kimura',
> -align
> => $aln);
>
> my $tree = $dfactory->make_tree($mat);
> $treeout->write_tree($tree);
> }
>
> my $dir = shift || '.';
>
> opendir(DIR, $dir) || die $!;
> for my $file ( readdir(DIR) )
> {
> next unless $file =~ /(\S+)\.dnd$/;
> my $stem = $1;
> my $treeio = Bio::TreeIO->new('-format' =>
> 'newick',
> '-file' => "$dir/$file");
>
> if( my $t1 = $treeio->next_tree )
> {
> my $obj1 =
> Bio::Tree::Draw::Cladogram->____new(-bootstrap => 1,
>
> -tree
> => $t1,
>
> -compact => 0);
> $obj1->print(-file => "$dir/$stem.eps");
> }
> }
>
>
> ##############################____############################__##__##########################__####__##############
>
>
>
>
> ___________________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org <mailto:Bioperl-l at lists.open-bio.org>
> <mailto:Bioperl-l at lists.open-__bio.org
> <mailto:Bioperl-l at lists.open-bio.org>>
>
> http://lists.open-bio.org/____mailman/listinfo/bioperl-l
> <http://lists.open-bio.org/__mailman/listinfo/bioperl-l>
> <http://lists.open-bio.org/__mailman/listinfo/bioperl-l
> <http://lists.open-bio.org/mailman/listinfo/bioperl-l>>
>
>
>
>
>
>
> --
> Regards,
> Shachi
>
>
>
>
>
> --
> Regards,
> Shachi
More information about the Bioperl-l
mailing list