[Bioperl-l] PHYLIP problem.

Dave Messina David.Messina at sbc.su.se
Thu Jul 17 11:57:36 EDT 2008

Hi Rahul,
Please keep the mailing list on the Cc so that this discussion can be
archived and others can see it.

There's an error in your program -- you change the variable for the input
file from $inputfilename in one place to $inputfile in another. It's a good
idea to always use warnings and use strict with Perl. With warnings, the
first error shown is:

Name "main::inputfile" used only once: possible typo at test.pl line 9.

which indicates that there is something wrong with $inputfile.

Here's the complete program I ran:

use warnings;
use strict;
use Bio::Tools::Run::Phylo::Phylip::ProtDist;

my $inputfilename = 'align.phy';
my $prodistfactory = Bio::Tools::Run::Phylo::Phylip::ProtDist->new();

my ($matrix)= $prodistfactory->run($inputfilename);
print $matrix->print_matrix;

Note that your perl may be in a different location than mine, so the first
line may need to be changed. Also note that I changed the location of the
input file -- it was in the same directory as my Perl script.

The error you saw about 'protdist did not create matrix correctly' is
unfortunately vague. It simply means that, for some reason, protdist didn't
produce any output that BioPerl could see. A likely reason for this to occur
is that protdist didn't run at all.

Have you installed PHYLIP (and specifically protdist), and have you tried
running it outside of BioPerl?


On Thu, Jul 17, 2008 at 16:34, #Raul#~~ WeAtHerEd~~ <potterbond007 at gmail.com>

> Dear Dave,
> I added the print line and the error message that I used to receive changed
> but the program is still refusing to run.
> Modified program
> use Bio::Tools::Run::Phylo::Phylip::ProtDist;
> my $inputfilename = '/home/rc174/pro/align.phy';
> #@params = ('MODEL' => 'PAM');
> my $prodistfactory = Bio::Tools::Run::Phylo::Phylip::ProtDist->new();
> my ($matrix)= $prodistfactory->run($inputfile);
> print $matrix->print_matrix;
>  The error I receive is now
> ------------- EXCEPTION: Bio::Root::Exception -------------
> MSG: Problems setting up for protdist. Probably bad input data in  !
> STACK: Error::throw
> STACK: Bio::Root::Root::throw /usr/share/perl5/Bio/Root/Root.pm:328
> STACK: Bio::Tools::Run::Phylo::Phylip::ProtDist::run
> /usr/local/share/perl/5.8.8/Bio/Tools/Run/Phylo/Phylip/ProtDist.pm:362
> STACK: phylip2.pl:6
> The error I used to receive before I inserted the line was,
> ------------- EXCEPTION: Bio::Root::Exception -------------
> MSG: protdist did not create matrix correctly (/tmp/S3a5QG6CCd/outfile)
> STACK: Error::throw
> STACK: Bio::Root::Root::throw /usr/share/perl5/Bio/Root/Root.pm:328
> STACK: Bio::Tools::Run::Phylo::Phylip::ProtDist::_run
> /usr/local/share/perl/5.8.8/Bio/Tools/Run/Phylo/Phylip/ProtDist.pm:409
> STACK: Bio::Tools::Run::Phylo::Phylip::ProtDist::run
> /usr/local/share/perl/5.8.8/Bio/Tools/Run/Phylo/Phylip/ProtDist.pm:366
> STACK: phylip.pl:55
> -----------------------------------------------------------
> Is this because I have missed out any specific packages for installation. I
> use an Ubuntu Linux computer version 7.10 . I am not sure of the bioperl
> version. I am trying to learn a bit of bioperl on my own so if you could
> send me a model program for getting a tree so that I could work out the
> issues I am facing I would be grateful.
> Cheers,
> Rahul

More information about the Bioperl-l mailing list