「三代組裝」使用Canu對(duì)三代測序進(jìn)行基因組組裝

Canu簡介

目前Canu已經(jīng)更新到2.0版本匀钧,本文用的是Cau1.6版本,一些參數(shù)可能存在變動(dòng)崖飘,請(qǐng)注意分辨榴捡。

Canu是Celera的繼任者杈女,能用于組裝PacBio和Nanopore兩家公司得到的測序結(jié)果朱浴。

Canu分為三個(gè)步驟,糾錯(cuò)达椰,修整和組裝翰蠢,每一步都差不多是如下幾個(gè)步驟:

  • 加載read到read數(shù)據(jù)庫,gkpStore
  • 對(duì)k-mer進(jìn)行技術(shù)啰劲,用于計(jì)算序列間的overlap
  • 計(jì)算overlap
  • 加載overlap到overlap數(shù)據(jù)庫梁沧,OvlStore
  • 根據(jù)read和overlap完成特定分析目標(biāo)
    • read糾錯(cuò)時(shí)會(huì)從overlap中挑選一致性序列替換原始的噪聲r(shí)ead
    • read修整時(shí)會(huì)使用overlap確定read哪些區(qū)域是高質(zhì)量區(qū)域,哪些區(qū)域質(zhì)量較低需要修整蝇裤。最后保留單個(gè)最高質(zhì)量的序列塊
    • 序列組裝時(shí)根據(jù)一致的overlap對(duì)序列進(jìn)行編排(layout), 最后得到contig廷支。

這三步可以分開運(yùn)行,既可以用Canu糾錯(cuò)后結(jié)果作為其他組裝軟件的輸入栓辜,也可以將其他軟件的糾錯(cuò)結(jié)果作為Canu的輸入恋拍,因此下面分別運(yùn)行這三步,并介紹重要的參數(shù)。

幾個(gè)全局參數(shù):genomeSize設(shè)置預(yù)估的基因組大小藕甩,這用于讓Canu估計(jì)測序深度施敢; maxThreads設(shè)置運(yùn)行的最大線程數(shù);rawErrorRate用來設(shè)置兩個(gè)未糾錯(cuò)read之間最大期望差異堿基數(shù);correctedErrorRate則是設(shè)置糾錯(cuò)后read之間最大期望差異堿基數(shù)僵娃,這個(gè)參數(shù)需要在 組裝 時(shí)多次調(diào)整概作;minReadLength表示只使用大于閾值的序列,minOverlapLength表示Overlap的最小長度默怨。提高minReadLength可以提高運(yùn)行速度讯榕,增加minOverlapLength可以降低假陽性的overlap。

組裝實(shí)戰(zhàn)

數(shù)據(jù)下載

數(shù)據(jù)來自于發(fā)表在 Nature Communication 的一篇文章 "High contiguity Arabidopsis thaliana genome assembly with a single nanopore flow cell"匙睹。 這篇文章提供了 Arabidopsis thaliana KBS-Mac-74 的30X短片段文庫二代測序瘩扼、PacBio和Nanopore的三代測序以及Bionano測序數(shù)據(jù), 由于擬南芥的基因組被認(rèn)為是植物中的金標(biāo)準(zhǔn),因此文章提供的數(shù)據(jù)適合非常適合用于練習(xí)垃僚。根據(jù)文章提供的項(xiàng)目編號(hào)"PRJEB21270", 在European Nucleotide Archive上找到下載地址集绰。

ENA搜索
## PacBio Sequal
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116568/bam/pb.bam
## MinION
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116595/fastq/ont.fq.gz
# Illuminia MiSeq
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116569/fastq/il_1.fq.gz
wget -c -q ftp://ftp.sra.ebi.ac.uk/vol1/ERA111/ERA1116569/fastq/il_2.fq.gz

下載的PacBio數(shù)據(jù)以BAM格式存儲(chǔ),可以通過安裝PacBio的smrtlink工具套裝谆棺,使用其中的bam2fasta工具進(jìn)行轉(zhuǎn)換

# build index for convert
~/opt/biosoft/smrtlink/smrtcmds/bin/pbindex pb.bam &
# convert bam to fasta
~/opt/biosoft/smrtlink/smrtcmds/bin/bam2fasta -o pb pb.bam &

PacBio的smrtlink工具套裝大小為1.4G栽燕,不但下載速度慢,安裝也要手動(dòng)確認(rèn)各種我不清楚的選項(xiàng), 唯一好處就是工具很全改淑。

運(yùn)行Canu

第一步:糾錯(cuò)碍岔。三代測序本身錯(cuò)誤率高,使得原始數(shù)據(jù)充滿了噪音朵夏。這一步就是通過序列之間的相互比較糾錯(cuò)得到高可信度的堿基蔼啦。主要調(diào)整兩個(gè)參數(shù)

  • corOutCoverage: 用于控制多少數(shù)據(jù)用于糾錯(cuò)。比如說擬南芥是120M基因組仰猖,100X測序后得到了12G數(shù)據(jù)捏肢,如果只打算使用最長的6G數(shù)據(jù)進(jìn)行糾錯(cuò),那么參數(shù)就要設(shè)置為50(120m x 50)饥侵。設(shè)置一個(gè)大于測序深度的數(shù)值鸵赫,例如120,表示使用所有數(shù)據(jù)躏升。
canu -correct \
    -p ath -d pb_ath \
    Threads=10 gnuplotTested=true\
    genomeSize=120m minReadLength=2000 minOverlapLength=500\
    corOutCoverage=120 corMinCoverage=2 \
    -pacbio-raw pb.fasta.gz

可以將上述命令保存到shell腳本中進(jìn)行運(yùn)行, nohup bash run_canu.sh 2> correct.log &.

注: 有些服務(wù)器沒有安裝gnuplot, gnuplotTested=true 可以跳過檢查辩棒。

第二步:修整。這一步的目的是為了獲取更高質(zhì)量的序列膨疏,移除可疑區(qū)域(如殘留的SMRTbell接頭).

canu -trim \
        -p ath -d pb_ath
        maxThreads=20 gnuplotTested=true\
        genomeSize=120m minReadLength=2000 minOverlapLength=500\
        -pacbio-corrected ath/pb_ath.correctedReads.fasta.gz

第三步: 組裝一睁。在前兩步獲得高質(zhì)量的序列后,就可以正式進(jìn)行組裝. 這一步主要調(diào)整的就是糾錯(cuò)后的序列的錯(cuò)誤率佃却, correctedErrorRate者吁,它會(huì)影響utgOvlErrorRate。這一步可以嘗試多個(gè)參數(shù)双霍,因?yàn)樗俣缺容^塊砚偶。

# error rate 0.035
canu -assemble \
    -p ath -d ath-erate-0.035 \
    maxThreads=20 gnuplotTested=true \
    genomeSize=120m\
    correctedErrorRate=0.035 \
    -pacbio-corrected atg/pb_ath.trimmedReads.fasta.gz
# error rate 0.050
canu -assemble \
    -p ath -d ath-erate-0.050 \
    maxThreads=20 gnuplotTested=true \
    genomeSize=120m\
    correctedErrorRate=0.050 \
    -pacbio-corrected atg/pb_ath.trimmedReads.fasta.gz

最后輸出文件下的ath.contigs.fasta就是結(jié)果文件批销。

一些寶貴的建議

后續(xù)分析要去冗余

Canu2.0之前的contig盡管運(yùn)行日志說沒有bubble,其實(shí)只是它沒有檢測到而已染坯。Canu2.0才真正的加上該信息均芽。但作者強(qiáng)烈推薦你先用purge_dups去冗余,避免軟件難以檢測到的冗余序列存在影響后續(xù)分析单鹿。

高雜合物種組裝

對(duì)于高雜合物種的組裝掀宋,Canu建議是用 batOptions=-dg 3 -db 3 -dr 1 -ca 500 -cp 50參數(shù)盡量分出兩套單倍型,然后對(duì)基因組去冗余仲锄。

batOptions表示傳遞后續(xù)的參數(shù)給組裝軟件bogart, -dg 3 -db3降低自動(dòng)確定閾值時(shí)的錯(cuò)誤率離差(deviation)劲妙,從而更好的分開單倍型。-dr 1 -ca 500 -cp 50會(huì)影響錯(cuò)誤組裝的拆分儒喊,對(duì)于一個(gè)模棱兩可的contig镣奋,如果至少另一條可選路徑的overlap長度至少時(shí)500bp,或者說另一條可選路徑時(shí)在長度上和當(dāng)前最佳路徑存在50%的差異怀愧,那么就將contig進(jìn)行拆分侨颈。

關(guān)于雜合物種組裝的討論,參考https://github.com/marbl/canu/issues/201#issuecomment-233750764

購買SSD避免服務(wù)器IO瓶頸

如果你的服務(wù)器線程數(shù)很多芯义,你在普通的機(jī)械硬盤上運(yùn)行組裝哈垢,而且你的系統(tǒng)還是CentOS,那么你需要調(diào)整一個(gè)參數(shù)扛拨,避免其中一步的IO嚴(yán)重影響服務(wù)器性能耘分。

Canu通過兩個(gè)策略進(jìn)行并行,bucketizing (‘ovb’ 任務(wù)) 和 sorting (‘ovs’ 任務(wù))绑警。 bucketizing會(huì)從1-overlap讀取輸出的overlap求泰,將他們復(fù)制一份作為中間文件。sorting一步將這些文件加載到內(nèi)存中進(jìn)行排序然后寫出到硬盤上待秃。 如果你的overlap輸出特別多拜秧,那么該步驟將會(huì)瞬間擠爆的你的IO.

為了避免悲劇發(fā)生,請(qǐng)?jiān)黾尤缦聟?shù): ovsMemory=16G ovbConcurrency=15 ovsConcurrency=15章郁, 也就是降低這兩步同時(shí)投遞的任務(wù)數(shù),緩解IO壓力志衍。

參考資料


版權(quán)聲明:本博客所有文章除特別聲明外暖庄,均采用 知識(shí)共享署名-非商業(yè)性使用-禁止演繹 4.0 國際許可協(xié)議 (CC BY-NC-ND 4.0) 進(jìn)行許可。

掃碼即刻交流
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末楼肪,一起剝皮案震驚了整個(gè)濱河市培廓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌春叫,老刑警劉巖肩钠,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泣港,死亡現(xiàn)場離奇詭異,居然都是意外死亡价匠,警方通過查閱死者的電腦和手機(jī)当纱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來踩窖,“玉大人坡氯,你說我怎么就攤上這事⊙笕” “怎么了箫柳?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長啥供。 經(jīng)常有香客問我悯恍,道長,這世上最難降的妖魔是什么伙狐? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任坪稽,我火速辦了婚禮,結(jié)果婚禮上鳞骤,老公的妹妹穿的比我還像新娘窒百。我一直安慰自己,他們只是感情好豫尽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布篙梢。 她就那樣靜靜地躺著,像睡著了一般美旧。 火紅的嫁衣襯著肌膚如雪渤滞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天榴嗅,我揣著相機(jī)與錄音妄呕,去河邊找鬼。 笑死嗽测,一個(gè)胖子當(dāng)著我的面吹牛绪励,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播唠粥,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼疏魏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了晤愧?” 一聲冷哼從身側(cè)響起大莫,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎官份,沒想到半個(gè)月后只厘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烙丛,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年羔味,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了河咽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡介评,死狀恐怖库北,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情们陆,我是刑警寧澤寒瓦,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站坪仇,受9級(jí)特大地震影響杂腰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜椅文,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一喂很、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧皆刺,春花似錦少辣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至痴怨,卻和暖如春忙干,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背浪藻。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國打工捐迫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人爱葵。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓施戴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親钧惧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子暇韧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353