我试图在一个样本上运行 MuTect2,在我使用 java 的机器上运行大约需要 27 分钟。
如果我使用几乎相同的代码,但在 Nextflow 内部并使用 GATK3:3.6 docker 容器来运行 Mutect,则需要多花 7 分钟,这似乎没有明显的原因。
在 Ubuntu 18.04 上运行,肿瘤和正常样本来自 Oncomine 面板。肿瘤是4.1G,正常是1.1G。我认为时间可能会花在将数据复制到容器上,但 7-8 分钟似乎太长了。也可能是复制参考文件吗?
bai_ch
是引入肿瘤和正常索引文件的通道
process MuTect2 {
label 'mutect'
stageInMode 'copy'
publishDir './output', mode : 'copy', overwrite : true
input:
file tumor_bam_mu from tumor_mu
file normal_bam_mu from normal_mu
file "*" from bai_ch
file mutect2_ref
file ref_index from ref_fasta_i_m
file ref_dict from Channel.fromPath(params.ref_fast_dict)
file regions_file from Channel.fromPath(params.regions)
file cosmic_vcf from Channel.fromPath(params.cosmic_vcf)
file dbsnp_vcf from Channel.fromPath(params.dbsnp_vcf)
file normal_vcf from Channel.fromPath(params.normal_vcf)
output:
file '*' into mutect_ch
script:
"""
ls
echo MuTect2 task path: \$PWD
java -jar /usr/GenomeAnalysisTK.jar \
--analysis_type MuTect2 \
--reference_sequence hg19.fa \
-L designed.bed \
--normal_panel normal_panel.vcf \
--cosmic Cosmic.vcf \
--dbsnp dbsnp.vcf \
--input_file:tumor $tumor_bam_mu \
-o mutect2.somatic.unfiltered.vcf \
--input_file:normal $normal_bam_mu \
--max_alt_allele_in_normal_fraction 0.1 \
--minPruning 10 \
--kmerSize 60
"""
}
我唯一的想法是创建自己的 docker 以方便使用参考文件,这可能会节省复制它们的时间?我希望 nextflow+container 版本的运行速度仅比 CLI 版本稍慢。