1

I m trying to run the script below. but I get the error:

------------- EXCEPTION ------------- MSG: Cannot find executable for clustalw. path="clustalw.exe" STACK Bio::Tools::Run::WrapperBase::executable C:/Perl64/site/lib/Bio/Tools/Run/ WrapperBase.pm:340 STACK Bio::Tools::Run::Alignment::Clustalw::_run C:/Perl64/site/lib/Bio/Tools/Ru n/Alignment/Clustalw.pm:752 STACK Bio::Tools::Run::Alignment::Clustalw::align C:/Perl64/site/lib/Bio/Tools/R un/Alignment/Clustalw.pm:515 STACK toplevel a.pl:29

How to make perl find my clustalw.exe?

I think that already did that by setting at the beginning the environmental variable $ENV{CLUSTALDIR}.

#!/usr/bin/perl
$ENV{CLUSTALDIR} = 'C:\Program Files (x86)\ClustalW2';
use warnings;
use strict;

use Bio::AlignIO;
use Bio::SeqIO;
use Bio::Tools::Run::Alignment::Clustalw;

my $file = <>; # Get file name from command prompt.
my $factory = Bio::Tools::Run::Alignment::Clustalw->new(-matrix => 'BLOSUM');
my $ktuple = 3;
$factory->ktuple($ktuple);

my $inseq = Bio::SeqIO->new(
                    -file => "<$file",
                    -format => "fasta"
                   );

my $seq;
my @seq_array;
while ($seq = $inseq->next_seq) {
    push(@seq_array, $seq);
}

# Now we do the actual alignment.
my $seq_array_ref = \@seq_array;
my $aln = $factory->align($seq_array_ref); 
techraf
  • 64,883
  • 27
  • 193
  • 198
Dimitri C
  • 11
  • 4
  • I Just made it work! Steps to make it work 1)copy the clustalw2.exe 2)paste it on your e.g. Desktop 3)Rename it to clustalw.exe 4)Give the $ENV{CLUSTALDIR} the new path to clustalw.exe and it works! (at first tried to rename the basic clustalw2.exe of 'C:\Program Files (x86)\ClustalW2' but didn't work) – Dimitri C Mar 15 '16 at 01:33

0 Answers0