Mosdepth检测BAM深度
2021-04-14 本文已影响0人
DumplingLucky
Mosdepth是一种用于快速计算全基因组测序覆盖率的命令行工具。它测量BAM或CRAM文件在基因组中每个核苷酸位置或基因组区域的深度。可以将基因组区域指定为被BED文件覆盖的指定区域,或者指定为CNV calling所需的固定大小窗口。Mosdepth使用一种计算效率高的简单算法,使其能够快速生成覆盖摘要。Mosdepth比现有工具更快,并且提供了所产生的覆盖剖面类型的灵活性。
1. 软件安装
#下载地址
https://github.com/brentp/mosdepth/releases
或者直接通过conda来安装
conda install mosdepth
2. 使用说明
mosdepth 0.2.3
Usage: mosdepth [options] <prefix> <BAM-or-CRAM>
Common Options:
-t --threads <threads> number of BAM decompression threads. (use 4 or fewer) [default: 0]
-c --chrom <chrom> chromosome to restrict depth calculation.
-b --by <bed|window> optional BED file or (integer) window-sizes.
-n --no-per-base dont output per-base depth. skipping this output will speed execution
substantially. prefer quantized or thresholded values if possible.
-f --fasta <fasta> fasta file for use with CRAM files.
Other options:
-F --flag <FLAG> exclude reads with any of the bits in FLAG set [default: 1796]
-i --include-flag <FLAG> only include reads with any of the bits in FLAG set. default is unset. [default: 0]
-x --fast-mode dont look at internal cigar operations or correct mate overlaps (recommended for most use-cases).
-q --quantize <segments> write quantized output see docs for description.
-Q --mapq <mapq> mapping quality threshold [default: 0]
-T --thresholds <thresholds> for each interval in --by, write number of bases covered by at
least threshold bases. Specify multiple integer values separated
by ','.
-R --read-groups <string> only calculate depth for these comma-separated read groups IDs.
-h --help show help
-t 使用线程的数目,这里推荐少于4个CPU,因为文档有说到多于4个线程,速度不会有提升
-c 指定具体哪个染色体去计算深度
-b 能根据BED文件给出其覆盖的指定区域的深度,比如你给出的BED文件含有一个物种对应基因的位置,就能计算其基因的覆盖度。
-F 在计算覆盖度时,排除BAM中含有该FLAG的reads。默认是1796,代表着:read unmapped (0x4), not primary alignment (0x100), read fails platform/vendor quality checks (0x200), read is PCR or optical duplicate (0x400)。一般设定为默认就好了。
-Q 比对最低质量的要求,默认是0,一般可以按照自己的需要进行调整为5或者10。
-x 快速模式,推荐给大型的BAM文件使用
-T 按照阀值(比如1X,2X,10X)输出达到指定阀值的核苷酸数目。
这里可以根据自己的需要使用对应的参数。下面给出一些常用的命令行运行例子以供大家参考使用:
根据bed文件来计算指定区间的覆盖度:
mosdepth -b capture.bed sample-output sample.exome.bam
进一步使用-T根据指定阀值进行计算:
mosdepth --by exons.bed --thresholds 1,10,20,30 $prefix $bam
输出效果如下:
#chrom start end region 1X 10X 20X 30X
1 11869 12227 ENSE00002234944 358 157 110 0
1 11874 12227 ENSE00002269724 353 127 10 0
1 12010 12057 ENSE00001948541 47 8 0 0
1 12613 12721 ENSE00003582793 108 0 0 0