sub runBlast {
# order is preserved !
for ( my $subject_counter = 0 ; $subject_counter < scalar ( @{$xmlcfg->{sources}[0]->{entry}} ) ; $subject_counter++ ) {
my $subjectTitle = $INFO{$subject_counter}{title};
my $subjectSubtitle = $INFO{$subject_counter}{subtitle};
for ( my $query_counter = 0 ; $query_counter < scalar ( @{$xmlcfg->{sources}[0]->{entry}} ) ; $query_counter++ ) {
my $queryTitle = $INFO{$query_counter}{title};
my $querySubtitle = $INFO{$query_counter}{subtitle};
$tab_h{"$query_counter-$subject_counter"} = $cm->start();
unless ( $tab_h{"$query_counter-$subject_counter"} ) {
my $blastreport_scratch = "$scratch/$query_counter-$subject_counter.blastout.gz";
my $jobid = md5 ( "$scratch/$query_counter.fsa" , "$scratch/$subject_counter.fsa" ) ;
system "$perl /usr/biotools/indirect/cacher --id='$jobid' --source='$cache_source' -action get > $blastreport_scratch";
if ( $? != 0 or $clean or -s $blastreport_scratch == 0) {
print STDERR "# jobid $jobid not in cache - redoing\n";
my $cmd = "$BLASTALL -F 0 -p blastp -d $scratch/$subject_counter.fsa -e 1e-5 -m 7 < $scratch/$query_counter.fsa | $TIGRCUT | gawk '{print \$1\"\\t\"\$2}' | $gzip > $blastreport_scratch";
system $cmd;
die "# failed at '$cmd'\n" if $? != 0;
system "$perl /usr/biotools/indirect/cacher --id=$jobid --source=$cache_source -action put -expire 100 < $blastreport_scratch";
} else {
my $s = -s $blastreport_scratch;
print STDERR "# fetched jobid $jobid from cache ( $s bytes)\n";
}
exit;
}
}
}
$cm->wait_all_children;
}我对Perl编程一窍不通。我必须运行这个名为CMG Biotools的工具,它是用Perl语言编写的。
我在这里附加了它的部分代码。谁能告诉我什么时候会显示jobid not in cache...redoing消息。code for CMG biotools
发布于 2016-05-10 14:41:30
您的脚本blastmatrix尝试使用名为"cacher“的外部perl工具- /usr/biotools/indirect/cacher -传递参数
-action get --source='$cache_source';和--id='$jobid'因此,该脚本试图从缓存实用程序中检索ID为$jobid的作业,但失败了。失败后,对“重做”的引用似乎是试图运行BLASTALL,即/usr/biotools/blast/bin/blastall,然后重试相同的缓存命令。
因此,如果您看到的只是消息,但脚本正在工作,那么我猜--这就是我能做的所有事情-- BLASTALL正在清理一些问题--一个意外的文件,一个丢失的文件--谁知道呢--第二次尝试缓存是有效的。
如果它根本不工作,我只能说当它尝试使用缓存时,它最终失败了-这与说“根本原因是...”是不同的。
注-以上所有内容都是投机性的。
https://stackoverflow.com/questions/37130523
复制相似问题