比對(duì)文件BAM/CAM深度檢測(cè)好用工具:Mosdepth

做完比對(duì)后,最直接的一個(gè)問(wèn)題就是想知道:你的reads比對(duì)上了哪些區(qū)域沒(méi)比對(duì)上哪些區(qū)域,有多少reads比對(duì)上特定的區(qū)域(該區(qū)域比對(duì)深度)。傳統(tǒng)手藝一般可以使用bedtools cov或者samtools depth來(lái)直接實(shí)現(xiàn),但是受限其速度,這些工具我個(gè)人用起來(lái)體驗(yàn)不太好,特別是對(duì)文件大小很大的BAM file。今天就給大家推薦一款我覺(jué)得非常好用,速度很快的比對(duì)文件BAM/CAM深度檢測(cè)好用工具,Mosdepth。

工具簡(jiǎn)介

Mosdepth是一種新的命令行工具,用于快速計(jì)算全基因組測(cè)序覆蓋率。它測(cè)量BAM或CRAM文件在基因組中每個(gè)核苷酸位置或基因組區(qū)域的深度??梢詫⒒蚪M區(qū)域指定為被BED文件覆蓋的指定區(qū)域,或者指定為CNV calling所需的固定大小窗口。Mosdepth使用一種計(jì)算效率高的簡(jiǎn)單算法,使其能夠快速生成覆蓋摘要。Mosdepth比現(xiàn)有工具更快,并且提供了所產(chǎn)生的覆蓋剖面類型的靈活性。

工具特點(diǎn)

總的來(lái)說(shuō),Mosdepth有以下幾項(xiàng)比較顯著的特點(diǎn):

  • 對(duì)比bedtools, samtools 速度快
  • 可以根據(jù)給定窗口大小來(lái)計(jì)算平均每個(gè)窗口深度,用于CNV calling
  • 能根據(jù)BED文件給出其覆蓋的指定區(qū)域的深度
  • 量化輸出,它合并相鄰的堿基,只要它們都同時(shí)落入相同的覆蓋深度的區(qū)域,例如(10X-20X)。
  • 能給出每個(gè)染色體和全基因組在特定閾值或以上覆蓋的堿基比例分布。
  • 能夠設(shè)定閥值輸出,用于表示在給定閾值處覆蓋每個(gè)區(qū)域中有多少個(gè)堿基。
  • 能給出每條染色體和每條染色體特定區(qū)域內(nèi)平均深度的總結(jié)。

工作原理

當(dāng)遇到每條染色體時(shí),mosdepth會(huì)在染色體的長(zhǎng)度上創(chuàng)建一個(gè)數(shù)組。對(duì)于遇到的每個(gè)起始位置,它會(huì)增加數(shù)組位置的值。對(duì)于每個(gè)停止的位置,它會(huì)減少該位置。由此,特定位置處的深度是其前面的所有陣列位置的累積和(在BEDTools中使用類似的算法,其中單獨(dú)跟蹤開始和停止)。 mosdepth避免重復(fù)計(jì)算重疊的配偶對(duì),并使用CIGAR操作跟蹤每個(gè)讀取的每個(gè)比對(duì)上的部分。由于這種數(shù)據(jù)結(jié)構(gòu),可以在不顯著增加運(yùn)行時(shí)間的情況下完成覆蓋分布計(jì)算。下圖顯示了這個(gè)概念:

這個(gè)數(shù)組計(jì)算非???。因?yàn)槠錄](méi)有額外的分配或跟蹤對(duì)象,它在概念上也很簡(jiǎn)單。由于這些原因,它比samtools depth更快。

工具安裝

目前最新版是v 0.2.6,安裝方法有很多可以直接下載編譯好的版本:

###下載地址
https://github.com/brentp/mosdepth/releases

或者直接通過(guò)conda來(lái)安裝

conda install mosdepth

使用說(shuō)明

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

簡(jiǎn)單說(shuō)說(shuō)我平時(shí)常用到的參數(shù):

  • -t使用線程的數(shù)目,這里推薦少于4個(gè)CPU,因?yàn)槲臋n有說(shuō)到多于4個(gè)線程,速度不會(huì)有提升
  • -c指定具體哪個(gè)染色體去計(jì)算深度
  • -b能根據(jù)BED文件給出其覆蓋的指定區(qū)域的深度,比如你給出的BED文件含有一個(gè)物種對(duì)應(yīng)基因的位置,就能計(jì)算其基因的覆蓋度。
  • -F在計(jì)算覆蓋度時(shí),排除BAM中含有該FLAG的reads。默認(rèn)是1796,代表著:read unmapped (0x4), not primary alignment (0x100), read fails platform/vendor quality checks (0x200), read is PCR or optical duplicate (0x400)。一般設(shè)定為默認(rèn)就好了。
  • -Q 比對(duì)最低質(zhì)量的要求,默認(rèn)是0,一般可以按照自己的需要進(jìn)行調(diào)整為5或者10。
  • -x 快速模式,推薦給大型的BAM文件使用
  • -T 按照閥值(比如1X,2X,10X)輸出達(dá)到指定閥值的核苷酸數(shù)目。

這里可以根據(jù)自己的需要使用對(duì)應(yīng)的參數(shù)。下面給出一些常用的命令行運(yùn)行例子以供大家參考使用:

根據(jù)bed文件來(lái)計(jì)算指定區(qū)間的覆蓋度:

mosdepth -b capture.bed sample-output sample.exome.bam

進(jìn)一步使用-T根據(jù)指定閥值進(jìn)行計(jì)算:

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

該工具我個(gè)人體驗(yàn)非常好,又快又好用,輸出結(jié)果簡(jiǎn)單易懂。如果有需要計(jì)算比對(duì)覆蓋需求的小伙伴可以試一試哦。最后給大家附上其github鏈接以便大家進(jìn)一步研究使用該工具:https://github.com/brentp/mosdepth

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 別讓摳門毀了你,這7件事必須大手筆 1在打破僵局上必須大手筆 2在打通關(guān)系上必須大手筆 3在學(xué)習(xí)提升上必須大手筆 ...
    阿甘1972閱讀 260評(píng)論 0 0
  • 文/伊米crystal 昨天很忙,真的沒(méi)有時(shí)間構(gòu)思文章,抱歉了,看來(lái)日更目標(biāo)完不成了。 趁娃睡下,剛剛又回聽了昨天...
    伊米crystal閱讀 701評(píng)論 5 19
  • 今天是什么日子 起床:4:48 就寢:20:46 天氣:晴 心情:喜悅 紀(jì)念日:日更第73天,新工作入職第一天 叫...
    江南煙雨小青年閱讀 112評(píng)論 0 0
  • 日暮斜陽(yáng),照目瑙鄉(xiāng)晚,正南國(guó)春暖, 群芳斗艷,風(fēng)箏比高。 傣鄉(xiāng)竹翠,舞孔雀之屏,恰春風(fēng)起時(shí),枯葉紛飛,桂花香來(lái)。
    黔來(lái)客閱讀 252評(píng)論 0 0
  • 互聯(lián)網(wǎng)發(fā)展至今,與傳統(tǒng)行業(yè)的結(jié)合越來(lái)越緊密,很多傳統(tǒng)行業(yè)的從業(yè)者如醫(yī)生、教師、司機(jī)成為互聯(lián)網(wǎng)產(chǎn)品的用戶,而這類用戶...
    香9醋閱讀 477評(píng)論 0 2

友情鏈接更多精彩內(nèi)容