我想在输入文件的循环中通过perl运行ext软件(hmmer)命令(在linux中)。
我用过这一行
system "hmmbuild $outfile $files";
其中$ outfile是我输出文件和输入文件中的$ files。 hmmbuild
是ext软件的命令。
当我运行程序时,它会给出输出文件 GLOB(0x1b94b220)的错误代码。
任何人都可以帮助我解决我的错误,如何纠正?
我也尝试了exec命令,后面有勾选和括号。
这是我得到的确切输出消息。如何将结果打印到输出文件($ outfile)?
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `hmmbuild --amino GLOB(0x11eb3220) aproNOG00001'
脚本在这里..
#!/usr/bin/perl
use Bio::AlignIO;
use Bio::Align::AlignI;
my $allfiles= 'allfilenames_alpha_hmms.txt';
system "module load hmmer/3.1b1";
print "loaded hmmer\n";
open(FIH, $allfiles);
while ($min=<FIH>)
{ chomp($min); my @pats=split " ",$min;
foreach my $files(@pats) {
print $files; print "\n";
open(my $outfile, '>',"$prefix.hmm");
system "hmmbuild --amino $outfile $files";
print $outfile;
print "file saved\n";
# }
}
}
print "\n\n\n\t ###\tDONE\t### \n\n";
答案 0 :(得分:1)
如何将结果打印到输出文件($ outfile)
我认为它hmmbuild
期望文件的路径?将路径传递给文件而不是$outfile
中的内容。
system "hmmbuild --amino $prefix.hmm $files";