【发布时间】:2019-01-29 11:15:21
【问题描述】:
我对这种类型的编码/命令行完全陌生,所以如果我以错误的方式问这个问题,我很抱歉。
我想遍历目录中的所有文件(我正在高质量修剪 DNA 测序文件(.fastq 格式))
我已经写了这个循环:
for i in *.fastq; do
perl /apps/prinseqlite/0.20.4/prinseq-lite.pl -fastq $i -min_len 220 -max_len 240 -min_qual_mean 30 -ns_max_n 5 -trim_tail_right 15 -trim_tail_left 15 -out_good /proj/forhot/qfiltered/looptest/$i_filtered.fastq -out_bad null; done
代码本身似乎可以工作,我可以在我的终端中看到它正在获取正确的文件并且正在进行修剪(它正在终端中写入摘要日志),但没有生成输出文件- 即这些:
-out_good /proj/forhot/qfiltered/looptest/$i_filtered.fastq
如果我以非循环方式运行代码,则仅在一个文件上运行(= 生成输出)。链接这个例子:
prinseq-lite.pl -fastq 60782_merged_rRNA.fastq -min_len 220 -max_len 240 -min_qual_mean 30 -ns_max_n 5 -trim_tail_right 15 -trim_tail_left 15 -out_good 60782_merged_rRNA_filt_codeTEST.fastq -out_bad null
对此有简单的原因/答案吗?
【问题讨论】:
-
"如果我以非循环方式运行代码" - 您使用的确切命令行是什么?
-
嗨,我编辑发布包括。有效的代码行 - 这是你的意思吗?
-
@melpomene 我认为她在单个文件上运行它,而不是
$iEDIT:我看到它已被编辑。 -
@Mathilde 是的,他就是这么问的 :)
-
@GerhardBarnard 是的,但是怎么做?从编辑中您可以看到
-out_file参数完全不同(例如,没有_filtered)。