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でコード化して実行しなければなりませんでした。CMG biotools - Perlベースのツール
ここにコードの一部を添付しています。誰でもjobid not in cache...redoing
メッセージが表示されたら教えてください。 /usr/biotools/indirect/cacher
- - code for CMG biotools
あなたの質問にコードを追加してください。スクリーンショットへのリンクとしてではありません – Jens
これは完全なコードの一部です....全コードは@ githubで利用できます....リンクは ですhttps://github.com/thomasp85/Biotools/blob/master/ blastmatrix – user3774046