如何将文件列表传递给并行命令并执行下游命令,例如 samtools?

How to pass a list of files to parallel command and execute downstream command such as samtools?

我有一个要排序和索引的文件列表,我在一个文本文件中列出了所有这些文件。

/run/media/punit/data1/GSE74246/tophat_output/CMP_SRR2753096/CMP_6792.bam
run/media/punit/data1/GSE74246/tophat_output/CMP_SRR2753104/CMP_7256.bam

以上只是我要排序和索引的数据列表。

现在我想使用这个命令

 ls *.bam | parallel "samtools view -b -S {} | samtools sort - {.}; samtools index {.}.bam"

同时我也有

的文件

.bam
extension such as unmapped.bam which i dont want to sort and index

我如何排除那些 "unmapped.bam" 但是因为我的列表中没有那些 unmapped.bam 但我仍然想知道如果我使用并行那么它会采用那些排序和索引...

ls *.bam | grep -v unmapped | parallel ...