solved Re: [Bioperl-l] Deep recursion on subroutine

Qunfeng qfdong at iastate.edu
Thu Dec 1 15:04:44 EST 2005


Hello Jason and Jonathan,

Thanks for your help. Jason figures out the problem "
This is just Perl complaining because the recursion is deep because there are
so many levels in your tree (449 deep).  It thinks it hit a snag because it
doesn't expect to usually have a recursive call go that many levels.

You can make the warnings go away by adding this
no warnings 'recursion';"

Qunfeng
At 04:39 PM 11/30/2005, Jonathan Arthur wrote:
>Hello Qunfeng,
>
>I have not seen this specifically with bioperl, but have had it occur once 
>or twice in my own code and have always traced the problem back to an 
>error in the tree where one node is its own ancestor, thereby causing an 
>infinite recursion when you attempt to find all descendants from that node.
>
>If each node has a unique identifier, and if the tree is not too large, 
>you could find the offedning node with a small script to traverse the 
>tree, testing the unique identifer of each node against a list of all the 
>nodes seen before and dying when it sees offending node again.
>
>Cheers,
>
>Jonathan
>
>Qunfeng wrote:
>
>>Hi,
>>
>>I am using bioperl (5.8.0, linux) to work on a UPGMA tree (newick format, 
>>generated by PHYLIP).  My code works well on a small tree. However, when 
>>I applied it to a big (ugly) tree, it produces the following error msg. 
>>Has anybody encountered a similar problem? Is this triggered by any 
>>invalid part of my tree? Thanks!
>>
>>Qunfeng
>>===========Error message begins =====================
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::each_Descendent" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 495, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 201, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 201, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 496, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 496, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::each_Descendent" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 495, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 201, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 201, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 496, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 496, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::each_Descendent" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 495, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 201, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 201, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 496, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 496, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::each_Descendent" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 495, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 201, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 201, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 496, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 496, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::each_Descendent" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 495, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 201, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 201, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 496, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::Node::height" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/Node.pm line 496, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Tree::NodeI::get_all_Descendents" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Tree/NodeI.pm line 172, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>Deep recursion on subroutine "Bio::Root::Root::DESTROY" at 
>>/usr/lib/perl5/site_perl/5.8.0/Bio/Root/Root.pm line 407, <GEN0> line 1.
>>=========Error msg ends==============================================
>>
>>_______________________________________________
>>Bioperl-l mailing list
>>Bioperl-l at portal.open-bio.org
>>http://portal.open-bio.org/mailman/listinfo/bioperl-l
>
>
>
>--
>Dr Jonathan Arthur
>Sesqui Lecturer in Bioinformatics
>Central Clinical School, Faculty of Medicine and SUBIT
>Medical Foundation Building, K25
>University of Sydney
>Ph: +61 2 9036 3132
>Email: jarthur at med.usyd.edu.au
>
>
>_______________________________________________
>Bioperl-l mailing list
>Bioperl-l at portal.open-bio.org
>http://portal.open-bio.org/mailman/listinfo/bioperl-l


More information about the Bioperl-l mailing list