我每个样本有几个 fastq 文件,所有这些文件都应该作为输入立即提供(因为它们都属于一个样本,所以不应该像 for 循环一样独立对待它们,因为它们是一个样本的输入,所以应该是一起治疗)。
这是一个简单的例子,s1 样本只有三个 fastq 文件:
NanoPlot -t 2 --fastq s1.reads1.fastq.gz s1.reads2.fastq.gz s1.reads3.fastq.g --maxlength 40000 --plots hex dot
现在假设我有超过 100 个用于 s1 的 fastq 文件,如何修改命令以将它们全部作为输入?
答案1
所以我的建议是提供一个文件名作为参数NanoPlot
,包含 FASTQ 文件列表,并相应地处理程序中的列表,例如
NanoPlot -t 2 --fastq fastq_files.list --maxlength 40000 --plots hex dot
内容fastq_files.list
如下:
s1.reads1.fastq.gz
s1.reads2.fastq.gz
s1.reads3.fastq.gz
...etc
答案2
如果这适用于NanoPlot
:
NanoPlot -t 2 --fastq s1.reads1.fastq.gz s1.reads2.fastq.gz s1.reads3.fastq.gz --maxlength 40000 --plots hex dot
并且您想要传递以 开头s1.
和结尾的所有文件名.fastq.gz
,那么一个简单的 shell glob 也应该可以做到这一点:
NanoPlot -t 2 --fastq s1.*.fastq.gz --maxlength 40000 --plots hex dot
shell 应按通常的字典顺序对文件名进行排序,因此数字按1
< 10
< 11
<2
等排序,因此请注意这一点是否重要。
如果你想让程序看到单身的文件包含所有此类文件中的数据,那么您可以使用进程替换(在 Bash/ksh/zsh 中)来cat
执行此操作:
NanoPlot -t 2 --fastq <(cat s1.*.fastq.gz) --maxlength 40000 --plots hex dot