我的生物信息学工作流程使用make的选项“-j”并行处理数据。
mutations.tsv : file1.data file2.data file3.data
find-mutations $^ > $@
file1.data: raw1.txt
(....)
(...)
mutation.tsv是一个瓶颈,但如果
1)我可以在 file1.data file2.data 中找到不同染色体的数量
2) 为每条染色体运行“查找突变”
3) 将所有结果合并到 'mutations.tsv'
就像是:
mutations.tsv : file1.data file2.data file3.data
for CHROM in `cut -d ' ' -f 1 $< | sort -u` ; do grep $${CHROM} $^| find-mutations - >> $@ ; done
如何更改它以创建并行工作流?
注意:这个 makefile 本身是动态生成的。在创建 Makefile 之前我不知道染色体的数量,所以我不能使用以下解决方案:
mutations.tsv : chr1.tsv chr2.tsv chr3.tsv chr4.tsv
cat $^ > $@
chr1.tsv: file1.data file2.data file3.data
grep chr1 $^| find-mutations - > $@
chr2.tsv: ....