2

我正在使用“samtools quietd”将 MD 标签添加回 BAM 文件。原始 BAM 的大小约为 50Gb(使用 pacbio HIFI 读取的全基因组序列)。我遇到的问题是“冷静”的速度非常慢!这些作业已经运行了 12 个小时,并且只生成了 600MB 带有 MD 标签的 BAM。这样,50GB BAM 需要 30 天才能完成!

这是我用来添加MD标签的代码(很正常):

rule addMDTag:
    input:
        rules.pbmm2_alignment.output        
    output: 
        strBAMDir + "/pbmm2/v37/{wcReadsType}/Tmp/rawReads{readsIndex}.MD.bam"               
    params:
        ref = strRef
    threads:
        16
    log:
        strBAMDir + "/pbmm2/v37/{wcReadsType}/Log/rawReads{readsIndex}.MD.log"
    benchmark:
        strBAMDir + "/pbmm2/v37/{wcReadsType}/Benchmark/rawReads{readsIndex}.MD.benchmark.txt"
    shell:
        "samtools calmd -@ {threads} {input} {params.ref} -bAr > {output}"

我使用的samtools版本是v1.10。

顺便说一句,我使用 16 个核心来运行平静,但是,看起来 samtools 仍在使用 1 个核心来运行它:

top - 11:44:53 up 47 days, 20:35,  1 user,  load average: 2.00, 2.01, 2.00
Tasks: 1723 total,   3 running, 1720 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.8%us,  0.3%sy,  0.0%ni, 96.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  529329180k total, 232414724k used, 296914456k free,    84016k buffers
Swap: 12582908k total,    74884k used, 12508024k free, 227912476k cached

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                       
 93137 lix33     20   0  954m 151m 2180 R 100.2  0.0 659:04.13 samtools 

我可以知道如何让平静更快吗?或者有没有其他工具可以更有效地完成同样的工作?

非常感谢

4

1 回答 1

2

与 samtools 维护团队合作后,此问题已得到解决。如果 bam 未分类,则平静会非常慢。因此,在运行平静之前,请始终确保 BAM 已分类。

请参阅以下详细信息:

Are your files name sorted, and does your reference have more than one entry? 
If so calmd will be switching between references all the time, 
which means it may be doing a lot of reference loading and not much MD calculation.

You may find it goes a lot faster if you position-sort the input, and then run it through calmd.
于 2022-02-11T21:24:56.793 回答