[Bioperl-l] module Bio::TreeIO

Jason Stajich jason at bioperl.org
Thu Jan 8 12:58:16 EST 2009


Hi Valerie -

Please ask this on the mailing list it is better for everyone to hear  
and help with questions.

You want to do this:
my $treeout = Bio::TreeIO->new(-format => 'newick', -file =>  
">MYFILENAME.tre");


I guess we need to more clearly explain that the IO system in BioPerl  
for new people but it is the same idea for SeqIO, TreeIO, etc you  
specify a filename to write to just like you would when opening a  
filehandle in perl open($fh, ">OUTPUTNAME") or o::TreeIO->new(-format  
=> 'newick', -file => ">MYFILENAME.nh");
   Filenames and extensions are whatever you want them to be, no  
guessing of formats based on filename extensions.

Presumably you have seen the HOWTO as well
http://bioperl.org/wiki/HOWTO:Trees

If there are things that are unclear we'd appreciate you make that  
know by commenting on the Discussion page that is linked to it (tabs  
at the top of the page).

-jason
On Jan 8, 2009, at 9:30 AM, valerie storms wrote:

> Dear Jason,
>
> I would like to use the BioPerl modules to (1) construct a  
> phylogenetic tree from a distance matrix, (2) put this tree is the  
> Newick format
> and (3) save this tree in an output file.
> The first two steps (1,2) are fine by using  
> Bio::Tree::DistanceFactory and Bio::TreeIO!
> But I have no idea how I can get my tree saved in an output file  
> instaed of printed to the mean stream??
>
> Can you help me with this?
> Many Thanks in advance!
>
> Best regards,
>
> Storms Valerie
> Phd student
> KULeuven Belgium
>
>
> p.s. The code I use
>
>
> #!/usr/bin/perl -w
>
> my $myDEBUG = 1;
> use lib '/users/sista/vstorms/local/lib/perl5/';
> use Bio::Perl;
> use Bio::Tree::DistanceFactory;
> use Bio::TreeIO;
> use Bio::Tools::Phylo::Phylip::ProtDist;
>
> my $outfile_protdist = '/users/sista/vstorms/LEGENDO/motif_detection/ 
> inputfiles/selection2/distance_matrix.txt';
> my $tree_file = '/users/sista/vstorms/LEGENDO/motif_detection/ 
> inputfiles/selection2/Tree.txt';
> if (-e $tree_file){
>   my $rm = 'rm -f '.$tree_file;
>   system $rm;
> }   my $dist = Bio::Tools::Phylo::Phylip::ProtDist->new(
>                           -file=>"$outfile_protdist",
>                           -program=>"ProtDist");
> my $matrix = $dist->next_matrix;
> my $dfactory = Bio::Tree::DistanceFactory->new(-method => 'NJ');
> my $treein = Bio::TreeIO->new(-format => 'newick');
> my $treeout = Bio::TreeIO->new( -format => 'newick', -file =>  
> $tree_file);
> my $tree = $dfactory->make_tree($matrix);
> $treein->write_tree($tree);
> $treeout->write_tree($tree);
>
>
> Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
>

Jason Stajich
jason at bioperl.org





More information about the Bioperl-l mailing list