三代組裝 使用Canu對三代測序進行基因組組裝

2021-09-29 03:43:58 字數 3328 閱讀 2792

canu是celera的繼任者,能用於組裝pacbio和nanopore兩家公司得到的測序結果。

canu分為三個步驟,糾錯,修整和組裝,每一步都差不多是如下幾個步驟:

這三步可以分開執行,既可以用canu糾錯後結果作為其他組裝軟體的輸入,也可以將其他軟體的糾錯結果作為canu的輸入,因此下面分別執行這三步,並介紹重要的引數。

幾個全域性引數:genomesize設定預估的基因組大小,這用於讓canu估計測序深度; maxthreads設定執行的最大執行緒數;rawerrorrate用來設定兩個未糾錯read之間最大期望差異鹼基數;correctederrorrate則是設定糾錯後read之間最大期望差異鹼基數,這個引數需要在組裝時多次調整;minreadlength表示只使用大於閾值的序列,minoverlaplength表示overlap的最小長度。提高minreadlength可以提高執行速度,增加minoverlaplength可以降低假陽性的overlap。

ena搜尋

## pacbio sequal

wget -c -q

## minion

wget -c -q

# illuminia miseq

wget -c -q

wget -c -q

# 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 &

第一步:糾錯。三代測序本身錯誤率高,使得原始資料充滿了噪音。這一步就是通過序列之間的相互比較糾錯得到高可信度的鹼基。主要調整兩個引數

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指令碼中進行執行,nohup bash run_canu.sh 2> correct.log &.

注: 有些伺服器沒有安裝gnuplot, gnuplottested=true 可以跳過檢查。

第二步:修整。這一步的目的是為了獲取更高質量的序列,移除可疑區域(如殘留的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

第三步: 組裝。在前兩步獲得高質量的序列後,就可以正式進行組裝. 這一步主要調整的就是糾錯後的序列的錯誤率, correctederrorrate,它會影響utgovlerrorrate。這一步可以嘗試多個引數,因為速度比較塊。

# 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就是結果檔案。

對於高雜合物種的組裝,canu建議是用batoptions=-dg 3 -db 3 -dr 1 -ca 500 -cp 50引數盡量分出兩套單倍型,然後對基因組去冗餘。

batoptions表示傳遞後續的引數給組裝軟體bogart,-dg 3 -db3降低自動確定閾值時的錯誤率離差(deviation),從而更好的分開單倍型。-dr 1 -ca 500 -cp 50會影響錯誤組裝的拆分,對於乙個模稜兩可的contig,如果至少另一條可選路徑的overlap長度至少時500bp,或者說另一條可選路徑時在長度上和當前最佳路徑存在50%的差異,那麼就將contig進行拆分。

關於雜合物種組裝的討論,參考

如果你的伺服器執行緒數很多,你在普通的機械硬碟上執行組裝,而且你的系統還是centos,那麼你需要調整乙個引數,避免其中一步的io嚴重影響伺服器效能。

canu通過兩個策略進行並行,bucketizing (『ovb』 任務) 和 sorting (『ovs』 任務)。 bucketizing會從1-overlap讀取輸出的overlap,將他們複製乙份作為中間檔案。sorting一步將這些檔案載入到記憶體中進行排序然後寫出到硬碟上。 如果你的overlap輸出特別多,那麼該步驟將會瞬間擠爆的你的io.

為了避免悲劇發生,請增加如下引數:ovsmemory=16g ovbconcurrency=15 ovsconcurrency=15, 也就是降低這兩步同時投遞的任務數,緩解io壓力。

掃碼即刻交流

使用Canu對三代測序進行基因組組裝

canu是celera的繼任者,能用於組裝pacbio和nanopore兩家公司得到的測序結果。canu分為三個步驟,糾錯,修整和組裝,每一步都差不多是如下幾個步驟 這三步可以分開執行,既可以用canu糾錯後結果作為其他組裝軟體的輸入,也可以將其他軟體的糾錯結果作為canu的輸入,因此下面分別執行這...

三代測序組裝工具Canu學習筆記

canu是celera的繼任者,能用於組裝pacbio和nanopore兩家公司得到的測序結果。canu分為三個步驟 糾錯,修整和組裝。wget c o pacbio.fastq wget c o oxford.fasta 為了測試方便,這裡沒有從 canu 的原始碼編譯,而是直接使用的 docke...

震網三代利用

筆者在最近想了個問題,學校機房關閉進不去,然後教師機子無ip如何黑入,而且不在同乙個網段下面,如何入侵呢,於是看到了一篇關於隔離網路攻擊的文章。想到了一年前乙個漏洞,於是測試開始。首先我們來了解一下 震網三代 環境 ubuntu16.04 vmware14 and win7 x64 msf首先我們開...