[Bioperl-l] Convert newick to nexus format

Jason Stajich jason at bioperl.org
Mon Feb 5 17:15:52 EST 2007


Something is wrong with your install I am guessing - can you run the  
tests?
Go to bioperl directory:
$ perl t/TreeIO.t

can you describe how you installed bioperl?

On Feb 5, 2007, at 11:58 AM, Neha Nahar wrote:

>
> Hi,
> Thank you for the code.
> I tried it but I still get the same exception.
>
> ------------- EXCEPTION  -------------
> MSG: Cannot call method write_tree on Bio::TreeIO object must use a  
> subclass
> STACK Bio::TreeIO::nexus::write_tree /usr/lib/perl5/vendor_perl/ 
> 5.8.8/Bio/TreeIO/nexus.pm:170
> STACK toplevel ./nexus1.pl:18
>
>
> Please find attached the perl file(nexus.pl).
>
>
> Using  bioperl-1.5.2_101.tar.gz module from http://search.cpan.org/ 
> ~sendu/bioperl/Bio/TreeIO.pm
>
> Please let me know if I am using the correct version.If not, please  
> point me to the latest one.
>
> Thank you.
> Regards,
> nnahar
>
>
>
>
>
> Jason Stajich <jason at bioperl.org> wrote:please  cc the mailing list  
> when asking a question or followup.
>
> Sorry I don't know what you are doing wrong - you didn't resend  
> your code so I don't know if you still have a typo.
>
> This code works fine for me
>
> use Bio::TreeIO;
> use strict;
> my ($filein,$fileout) = @ARGV;
> my ($format,$oformat) = qw(newick nexus);
> my $in = Bio::TreeIO->new(-file  => $filein, -format => $format);my  
> $out= Bio::TreeIO->new(-format => $oformat, -file => ">$fileout");
>
>
> while( my $t = $in->next_tree ) {
>  $out->write_tree($t);
> }
>
>
>
> On Feb 5, 2007, at 11:24 AM, Neha Nahar wrote:
>
> Thank you very much for the reply.
>
>
> I fixed the code as per your suggestion,but now am getting a  
> different error:
>
>
> $ ./nexus.pl mrp-input.txt nexus.out
> newickfile=mrp-input.txt, nexusfile=nexus.out
>
>
> -------------  EXCEPTION  -------------
> MSG: Cannot call method write_tree on Bio::TreeIO object must use a  
> subclass
> STACK Bio::TreeIO::nexus::write_tree /usr/lib/perl5/vendor_perl/ 
> 5.8.8/Bio/TreeIO/nexus.pm:170
> STACK toplevel ./nexus.pl:23
>
>
> --------------------------------------
>
>
> Please help me out with this script.
>
>
> Thank you.
> Regards,
> Neha
>
>
>
>
>
>
>
>
> Jason Stajich <jason at bioperl.org> wrote: you want to write the TREE  
> out not the TREE WRITER.
>
>
>
>
> $treeout->write_tree($tree)
>
>
> not
> $treeout->write_tree($treeout);
>
>
> On Feb 5, 2007, at 9:59 AM, Neha Nahar wrote:
>
>
> Hello everyone,
>
>
>
>
> I am trying  to convert newick tree to nexus format.
> Using the script (refered from and email from George dated Wed Sep  
> 22 11:52:47 EDT 2004) :
>
>
>
>
> /*------------------------------------------------------------*/
>
>
>
>
> $ cat nexus.pl
> #!/usr/bin/perl -w
>
>
>
>
> use Bio::TreeIO;
>
>
>
>
> ($NEWICKFILE, $NEXUSFILE) = @ARGV;
> print "newickfile=$NEWICKFILE,  nexusfile=$NEXUSFILE\n";
> my $treeio = new Bio::TreeIO(-format => 'newick', -file   =>  
> "$NEWICKFILE");
> my $treeout = new Bio::TreeIO(-format => 'nexus', -file   => "> 
> $NEXUSFILE");
> while(my $tree = $treeio->next_tree) {
>         $treeout->write_tree($treeout);
>     }
>
>
>
>
> exit 0;
>
>
>
>
>
>
>
>
> /*------------------------------------------------------------*/
>
>
>
>
> Running the script through command line:
> Gives the following error:
>
>
>
>
> $ ./nexus.pl mrp-input.txt nexus.out
> newickfile=mrp-input.txt, nexusfile=nexus.out
>
>
>
>
> ------------- EXCEPTION  -------------
> MSG: Cannot call method write_tree on Bio::TreeIO object must use a  
> subclass
> STACK  Bio::TreeIO::nexus::write_tree /usr/lib/perl5/vendor_perl/ 
> 5.8.8/Bio/TreeIO/nexus.pm:170
> STACK toplevel ./nexus.pl:23
>
>
>
>
> --------------------------------------
>
>
>
>
>
>
>
>
> Using  bioperl-1.5.2_101.tar.gz module from http://search.cpan.org/ 
> ~sendu/bioperl/Bio/TreeIO.pm
>
>
>
>
> Questions:-
>
>
>
>
> 1. Please let me know if I am using the correct version.
> If not, please point me to the latest one.
>
>
>
>
> 2. Provided that the version I am using is the right one, please  
> let me know what is wrong with the script.
>
>
>
>
> Thank you.
> Regards,
> Neha.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> -Neha Nahar
>   " Work for cause and not for applause, live to express and not to  
> impress !"
>
>
>
>
> ---------------------------------
>  Here’s a new way to find what you're looking for - Yahoo! Answers
>
>
>
>
>  --
> Jason Stajich
> Miller Research Fellow
> University of California, Berkeley
> lab: 510.642.8441
>
>
> http://pmb.berkeley.edu/~taylor/people/js.html
> http://fungalgenomes.org/
>
>
>
>
>
>
>
>
>
>
>
>
> -Neha Nahar
>   " Work for cause and not for applause, live to express and not to  
> impress !"
>
>
> ---------------------------------
>  Here’s a new way to find what you're looking for - Yahoo! Answers
>
>
>  --
> Jason Stajich
> Miller Research Fellow
> University of California, Berkeley
> lab: 510.642.8441
>
> http://pmb.berkeley.edu/~taylor/people/js.html
> http://fungalgenomes.org/
>
>
>
>
>
>
>
>
> -Neha Nahar
>   " Work  for cause and not for applause, live to express and not  
> to impress !"
>
> ---------------------------------
>   Here’s a new way to find what you're looking for - Yahoo! Answers
>
>
> -Neha Nahar
>   " Work for cause and not for applause, live to express and not to  
> impress !"
>  				
> ---------------------------------
>  Here’s a new way to find what you're looking for - Yahoo! Answers
> <nexus.pl>





More information about the Bioperl-l mailing list