Hi, I posted this on the bioperl mailing list but don't have an answer yet.
I want to change the bootstrap values in my phylogeny to some artificial Fst values I created earlier in the script. This subroutine seems to be doing the trick because Data::Dumper shows that the nodes and the tree have the new bootstraps. However, the resulting Newick tree does not display them. Can anyone help? Are there any bioperl nuances that I'm not aware of, in regards to bootstrap values? Thank you.
http://pastie.org/private/wtn0pqgjwrmpdswodok4mw#
sub printTree{
my($fst,$tree,$settings)=@_;
my $treeIn=new Bio::TreeIO(-file=>$tree)->next_tree;
my $out=Bio::TreeIO->new(-format=>"newick");
for my $node($treeIn->get_nodes){
# get all descendents of the node and alpha-sort them
my @d=sort{$a->id cmp $b->id} $node->each_Descendent;
next if(!@d);
# make a comma-separated key
my $key; $key.=$_->id."," for(@d);
$key=~s/,$//;
# next if that key isn't in $fst: not all $fst combos were calculated.
next if(!$$fst{$key});
# apply the Fst with that key
$node->bootstrap($$fst{$key});
}
$out->write_tree($treeIn);
}
Or if there is a good way to apply Fst values as bootstrap values using a different mechanism than BioPerl, then I'll take that too (begrudgingly)