使用ALLHiC基于HiC數據輔助基因組組裝

使用ALLHiC基于HiC數據輔助基因組組裝

基因組組裝大致可以分為三步(1)根據序列之間的重疊情況構建出contig,(2)基于二代的mate pair文庫或光學圖譜將contig搭建成scaffold,(3)對scaffold進行排序和調整方向得到最終的準染色體級別的基因組。

目前的三代測序組裝能夠搞定第一步和第二步。而在將contig/scaffold提升至準染色體水平上,有4種方案可選。一種是基于遺傳圖譜,一種是利用BioNano DLS光學圖譜,一種是利用近緣物種的染色體同源性,還有一種就是HiC。其中HiC技術是三者中較為簡單的一個,不需要高質量的DNA文庫,也不需要一個很大的群體,結果也比較準確可信。

HiC的文庫構建示意圖如下,我們所需要的就是最終雙端測序的兩端序列之間的距離關系。

圖片來自于Illumina

目前利用HiC數據進行組裝軟件有 LACHESIS, HiRise, SALSA1, 3D-DNA等,這些軟件在動物基因組上和簡單植物基因組上表現都不錯,但是不太適合直接用于多倍體物種和高雜合物種的組裝上。主要原因就是等位基因序列的相似性,使得不同套染色體之間的contig出現了假信號,最終錯誤地將不同套染色體的contig連在了一起。最近在Nature Plants發表的ALLHiC流程就是用來解決多倍體物種和高雜合度基因組的HiC組裝難題。

ALLHiC流程一覽

ALLHiC一共分為五步(見下圖,Zhang et al., 2019),pruning, partition, rescue, optimization, building,要求的輸入文件為HiC數據比對后的BAM和一個Allele.ctg.table。

算法過程

其中pruning步驟是ALLHiC區別于其他軟件的關鍵一步。因此我專門將其挑選出來進行介紹,紅色實線是潛在的坍縮區域(組裝時因為序列高度相似而沒有拆分),而其他顏色實線則是不同的單倍型(我用淺灰色橢圓進行區分)。粉紅色虛線指的是等位基因間的HiC信號,而黑色虛線則是坍縮區域和未坍縮區域的HiC信號。

ALLHiC在這一步會根據提供的Allele.ctg.table過濾BAM文件中等位基因間的HiC信號,同時篩選出坍縮區域和未坍縮區域的HiC信號。這些信號會用于Rescue步驟,將未錨定contig分配到已分組的contigs群。

Pruning

軟件安裝

ALLHiC的安裝非常簡單,按照習慣,我將軟件安裝在~/opt/biosoft

mkdir -p ~/opt/biosoft && cd ~/opt/biosoft 
git clone https://github.com/tangerzhang/ALLHiC
cd ALLHiC
mv allhic.v0.9.8 bin/allhic
chmod +x bin/*
chmod +x scripts/*  
# 添加到環境變量
PATH=$HOME/opt/biosoft/ALLHiC/scripts/:$HOME/opt/biosoft/ALLHiC/bin/:$PATH
export PATH

此外ALLHiC還依賴于samtools(v1.9), bedtools 和 Python 3環境的matplotlib(v2.0+),這些可以通過conda一步搞定。

conda create -y -n allhic python=3.7 samtools bedtools matplotlib

之后檢查下是否成功安裝

$ conda activate allhic
$ allhic -v
$ ALLHiC_prune

你可能會遇到如下的報錯

ALLHiC_prune: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ALLHiC_prune)

這是GLIBC過低導致,但是不要嘗試動手去升級GLIBC(你承擔不起后果的),conda提供了一個比較新的動態庫,因此可以通過如下方法來解決問題

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/opt/miniconda3/lib

ALLHiC分析實戰

感謝張興坦老師提供的測試數據,我將其中的BAM轉成了原始FastQ格式,以便從頭講解。數據在百度網盤,可以在我的博客 對應的位置找到鏈接。

輸入文件需要有4個,contig序列,等位contig信息和兩個雙端測序數據

$ ls -1
Allele.ctg.table
draft.asm.fasta
reads_R1.fastq.gz
reads_R2.fastq.gz

第一步: 建立索引

samtools faidx draft.asm.fasta 
bwa index -a bwtsw draft.asm.fasta  

第二步: 序列回貼。這一步的限速步驟是bwa sampe,因為它沒有多線程參數。如果數據量很大,可以先將原始的fastq數據進行拆分,分別比對后分別執行bwa sampe,最后合并成單個文件。

bwa aln -t 24 draft.asm.fasta reads_R1.fastq.gz > reads_R1.sai  
bwa aln -t 24 draft.asm.fasta reads_R2.fastq.gz > reads_R2.sai  
bwa sampe draft.asm.fasta reads_R1.sai reads_R2.sai reads_R1.fastq.gz reads_R2.fastq.gz > sample.bwa_aln.sam  

第三步: SAM預處理,移除冗余和低質量信號,提高處理效率

PreprocessSAMs.pl sample.bwa_aln.sam draft.asm.fasta MBOI
# 如果已有BAM文件
# PreprocessSAMs.pl sample.bwa_aln.bam draft.asm.fasta MBOI
filterBAM_forHiC.pl sample.bwa_aln.REduced.paired_only.bam sample.clean.sam
samtools view -bt draft.asm.fasta.fai sample.clean.sam > sample.clean.bam

其中filterBAM_forHiC.pl的過濾標準是比對質量高于30(MQ), 只保留唯一比對(XT:A:U), 編輯距離(NM)低于5, 錯誤匹配低于(XM)4, 不能有超過2個的gap(XO,XG)

第四步(可選): 對于多倍體或者是高雜合的基因組,因為等位基因的序列相似性高,那么很有可能會在不同套基因組間出現假信號,因此需要構建Allele.ctg.table, 用于過濾這種假信號。

ALLHiC_prune -i Allele.ctg.table -b sample.clean.bam -r draft.asm.fasta  

這一步生成prunning.bam用于后續分析

第五步: 這一步是根據HiC信號將不同的contig進行分組,分組數目由-k控制。如果跳過了第四步,那么可以直接用第三步的結果sample.clean.bam

ALLHiC_partition -b prunning.bam -r draft.asm.fasta -e AAGCTT -k 16  

這一步會生成一系列以prunning開頭的文件

  • 分組信息: prunning.clusters.txt
  • 每個分組對應的contig: prunning.counts_AAGCTT.XXgYY.txt:
  • 每個contig長度和count數: prunning.counts_AAGCTT.txt

第六步: 將未錨定的contig分配已有的分組中。

ALLHiC_rescue -b sample.clean.bam -r draft.asm.fasta \
    -c prunning.clusters.txt \
    -i prunning.counts_AAGCTT.txt

這一步根據之前prunning.counts_AAGCTT.XXgYY.txt對應的groupYY.txt

第七步: 優化每一組中的contig的排序和方向

# 生成.clm文件
allhic extract sample.clean.bam draft.asm.fasta --RE AAGCTT  
# 優化
for i in group*.txt; do
    allhic optimize $i sample.clean.clm
done

這一步會基于groupYY.txt生成對應的groupYY.tour

第八步: 將tour格式轉成fasta格式,并生成對應的agp。

ALLHiC_build draft.asm.fasta  

這一步生成兩個文件,groups.asm.fasta和groups.agp。其中groups.asm.fasta就是我們需要的結果。

第九步: 構建染色質交互矩陣,根據熱圖評估結果

samtools faidx groups.asm.fasta
cut -f 1,2 groups.asm.fasta.fai  > chrn.list
ALLHiC_plot sample.clean.bam groups.agp chrn.list 500k pdf
heatmap

使用ALLHiC的幾個注意事項:

  1. ALLHiC依賴于初始的contig,如果嵌合序列和坍縮序列比例過高,那么ALLHiC結果也會不準確。根據文章,ALLHiC能夠處理~10%的嵌合比例,~20%的坍縮比例。因此最好是用類似于Canu這種能夠區分單倍型的組裝軟件。
  2. 單倍型之間序列相似度不能太高,否則會出現大量非唯一比對,降低可用的HiC信號
  3. 構建Allele.ctg.table需要一個比較近緣的高質量基因組
  4. 不要用過短的contig,因為短的contig信號少,很容易放到錯誤的區域
  5. K值的設置要根據實際的基因組數目設置,如果你發現輸出結果中某些group過大,可以適當增大k值

參考資料

  • https://github.com/tanghaibao/allhic
  • https://github.com/tangerzhang/ALLHiC/wiki
  • Zhang, X., Zhang, S., Zhao, Q., Ming, R., and Tang, H. (2019). Assembly of allele-aware, chromosomal-scale autopolyploid genomes based on Hi-C data. Nat. Plants 5, 833–845.
  • Zhang, J., Zhang, X., Tang, H., Zhang, Q., Hua, X., Ma, X., Zhu, F., Jones, T., Zhu, X., Bowers, J., et al. (2018). Allele-defined genome of the autopolyploid sugarcane Saccharum spontaneum L. Nature Genetics 50, 1565.

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

掃碼即刻交流
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,740評論 3 420
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,856評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,175評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,931評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,321評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,533評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,082評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,891評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,319評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,732評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,987評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,794評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,076評論 2 375

推薦閱讀更多精彩內容