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

时间:2017-08-03 12:14:01

标签: linux shell bioinformatics

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

/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
  扩展名如unmapped.bam,我不想排序和索引

我如何排除那些“unmapped.bam”,但由于我的列表中没有那些unmapped.bam但我仍然不知道我是否使用了并行,那么它会采取那些排序和索引......

1 个答案:

答案 0 :(得分:1)

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