不能通过Bioperl运行Clustalw

时间:2016-03-14 02:02:23

标签: perl bioperl clustal

我正在尝试运行下面的脚本。但是我得到了错误:

  

------------- EXCEPTION ------------- MSG:找不到clustalw的可执行文件。路径=" clustalw.exe"堆   生物::工具::运行:: WrapperBase ::可执行   C:/ Perl64 / site / lib / Bio / Tools / Run / WrapperBase.pm:340 STACK   生物::工具::运行::校准:: CLUSTALW :: _运行   C:/ Perl64 / site / lib / Bio / Tools / Ru n / Alignment / Clustalw.pm:752 STACK   生物::工具::运行::校准:: CLUSTALW ::对齐   C:/ Perl64 / site / lib / Bio / Tools / R un / Alignment / Clustalw.pm:515 STACK   toplevel a.pl:29

如何让perl找到我的clustalw.exe

我认为已经通过在开头设置环境变量$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); 

0 个答案:

没有答案