我正在通过Azure上的串行控制台将Debian 9作为VM运行。
链接到样本输入文件: https://drive.google.com/open?id=1aIIjWO70clU8u4_gV2X_8c17HmEnqjr_
antiSMASH的帮助人员给了我一些代码。它应该遍历文件夹中的genbank文件,并使用antiSMASH软件包对其进行处理:
for infile in inputs/*.gbk; do
antismash $infile --taxon fungi --input-type nucl --knownclusterblast
done
我尝试在包含文件的目录中运行它,而我尝试在包含.gb文件的“ inputs”文件夹的目录中运行它:
(antismash) macpat@Debian9:~/inputs$ for infile in inputs/*.gb; do
> antismash $infile --taxon fungi --input-type nucl --knownclusterblast
> done
ERROR 25/05 21:53:00 No sequence file found at 'inputs/*.gb'
我跑了这个
(antismash) macpat@Debian9:~$ for infile in ~/inputs/*.gb; do echo $infile; done
/home/macpat/inputs/DQ660910.gb
/home/macpat/inputs/EU872212.gb
/home/macpat/inputs/GU930713.gb
/home/macpat/inputs/GU930714.gb
/home/macpat/inputs/HM180407.gb
/home/macpat/inputs/HM180409.gb
/home/macpat/inputs/HQ823618.gb
/home/macpat/inputs/HQ823619.gb
/home/macpat/inputs/HQ823620.gb
/home/macpat/inputs/HQ823621.gb
/home/macpat/inputs/JN408682.gb
/home/macpat/inputs/JQ340775.gb
/home/macpat/inputs/JX067626.gb
/home/macpat/inputs/JX067627.gb
/home/macpat/inputs/JX232185.gb
/home/macpat/inputs/JX232186.gb
/home/macpat/inputs/JX232187.gb
/home/macpat/inputs/JX232188.gb
/home/macpat/inputs/KJ501919.gb
/home/macpat/inputs/MG777489.gb
/home/macpat/inputs/MG777490.gb
/home/macpat/inputs/MG777491.gb
/home/macpat/inputs/MG777492.gb
/home/macpat/inputs/MG777493.gb
/home/macpat/inputs/MG777494.gb
/home/macpat/inputs/MG777495.gb
/home/macpat/inputs/MG777496.gb
/home/macpat/inputs/MG777497.gb
/home/macpat/inputs/MG777498.gb
/home/macpat/inputs/MG777499.gb
/home/macpat/inputs/MG777500.gb
/home/macpat/inputs/MG777501.gb
/home/macpat/inputs/MG777502.gb
这是我由antiSMASH人员发送的电子邮件:
尊敬的antiSMASH用户,
为了在许多输入文件上运行antiSMASH,我通常在 bash,就像这样:
for infile in inputs/*.gbk; do antismash $infile --your --other-options --here done
假设您的输入文件为GenBank格式,并且位于 您当前目录的子目录称为“输入”,antiSMASH将 依次对所有输入文件运行。我知道您要求“全部 一次”,但因为antiSMASH具有相当不错的CPU和内存 要求,尤其是在运行ClusterBlast时,我不会 建议。
最好的问候,凯
答案 0 :(得分:1)
在失败的情况下,您写了inputs/*.gb
。在带有回声的工作环境中,您写了~/inputs/*.gb
。
答案 1 :(得分:0)
inputs/
是相对路径,这意味着您必须位于其父目录/home/macpat
中才能起作用。要移至/home/macpat
,可以运行cd
。
cd
for infile in inputs/*.gb; do ...
另一方面,~/inputs/
是一条绝对路径,这意味着它将可以在任何地方使用。
for infile in ~/inputs/*.gb; do ...
或者,如果您想从~/inputs/
中运行脚本,则可以运行以下命令:
cd ~/inputs
for infile in *.gb; do ...