[Bioperl-l] Help for using Clustalw.pm

Sun, Jian jsun at utdallas.edu
Mon Jul 26 17:27:56 EDT 2004

Dear all:
     I tried to align multiple sequence through Clustalw.pm, and I used the source code attached below:
use lib "C:\Perl\lib";
use Bio::Perl;
use Bio::Tools::Run::Alignment::Clustalw;
use strict;
use warnings;
$ENV{CLUSTALDIR} = 'C:/Program Files/Apache Group/Apache2/bin/';
my @params = ('ktuple' => 2, 'matrix' => 'BLOSUM');
  my $factory = Bio::Tools::Run::Alignment::Clustalw->new(@params);
  my $ktuple = 3;
  $factory->ktuple($ktuple);  # change the parameter before executing
  my $str = Bio::SeqIO->new(-file=> 'Clustseq.fa', '-format' => 'Fasta');
 my @seq_array =();
 while ( my $seq = $str->next_seq() ) {push (@seq_array, $seq) ;}
  my $seq_array_ref = \@seq_array;
      # where @seq_array is an array of Bio::Seq objects
  my $aln = $factory->align($seq_array_ref);
and when I run the pl file, I get this error message:
Clustalw program not found as clustalw or not executable.
'clustalw' is not recognized as an internal or external command, 
operable program or batch file.
MSG: Clustalw call <clustal align -infile=C:\...\> crashed:256
STACK Bio::Tools::Run::Alignment::Clustalw::_run c:/Perl/Site/Lib/Bio/Toold/Run/Alignment/Clustalw.pm:581
STACK Bio::Tools::Run::Alignment::Clustalw::_run c:/Perl/Site/Lib/Bio/Toold/Run/Alignment/Clustalw.pm:507
STACK toplevel test726pl.pl:33
Since I already set the CLUSTALDIR variable, I don't know why the Clustalw is still not execuatable. Did I did the right setting?  Does anyone have this kind of experience? 
Thanks in advance.

More information about the Bioperl-l mailing list