天天看點

「BioNano系列」如何"從頭組裝"出一個Bionano圖譜

官方并沒有一個很詳細的文檔描述Bionano的從頭組裝流程的具體過程,是以我隻能根據自己實際項目進行介紹:

  1. AutoNoise + SplitBNX: 這一步會将bnx和參考的cmap檔案進行比對,估算出噪聲系數,然後把bnx進行拆分便與後續比對
  2. Pairwse: 這一步進行molecules之間的兩兩比較,尋找overlap, 結果存放在"align"檔案夾下
  3. Assembly: 根據兩兩比對結果,通過OLC算法進行組裝,結果在"contigs/exp_unrefined"下,合并後的檔案為"EXP_UNREFINED.cmap", 同時還會将"EXP_UNREFINED.cmap"和參考基因組的cmap進行比對,結果放在"contigs/exp_unrefined/exp_unrefined/alignref", 此外還将拆分後Bnx檔案和參考基因組的cmap檔案進行比對,結果放在"contigs/alignmolvref"下
  4. refineA: 第3步得到的圖譜先會進行第一次優化 輸出結果在"contigs/exp_refineA", 這一步不會使用所有的原始資料,而是pairwise階段用的品質比較好的分子,是以速度會快一些
  5. refineB: 在第4步的基礎上進行第二次的優化, 輸出結果在"contigs/exp_refineB0"和"contigs/exp_refineB1". 這一步會使用所有的輸入原始資料,速度稍微慢一些。第一輪和第二輪的結果會将地覆寫度的區域進行打斷,然後更新标記和标記的位置。
  6. Extension and merge: 将上一步的contig回貼到參考基因組的map,進行延伸和合并,這一步可以疊代3-5次。中間結果在"contigs/exp_extensionX_X"和"contigs/exp_mrgX"
  7. Final refinement: 最後一步的優化
  8. SV Decetion: 在有參考基因組的前提下,最後還會尋找一些大規模的結構變異。

上述這些流程由Solve工具中Pipeline檔案夾下的腳本

pipelineCL.py

進行控制,以之前的過濾後的人類資料為例

python /opt/biosoft/Solve3.3_10252018/Pipeline/10252018/pipelineCL.py \
    -T 96 -N 4 -f 1 \
    -i 5 \ # 延伸和合并的疊代次數,預設是1,介于0~20之間
    -b molecules120k.bnx \ # 輸入的BNX檔案
    -r NA12878_CTTAAG_0kb_0labels.cmap  \ #參考的reference,可選
    -l Assembly \ # 輸出檔案夾
    -y \   # 自動确定噪聲參數,需要-r
    -t /opt/biosoft/Solve3.3_10252018/RefAligner/7915.7989rel \ # RefAligner和Assembler的所在檔案夾
    -a /opt/biosoft/Solve3.3_10252018/RefAligner/7915.7989rel/optArguments_nonhaplotype_saphyr_human.xml # 配置參數檔案           

上面的

-a

參數最為重要,因為指定的xml檔案控制了流程中每一步的具體參數,是以要慎重選擇。

重點1: XML檔案命名解釋說明:

  • irys/saphyr: 資料來源儀器
  • DLE1: DEL1标記系統
  • human: 物種是人類
  • BG: big genome. 大于5G,主要是優化記憶體使用
  • noES: no extend and split: 即便等位基因裡有超過30kbp的結構變異,也不要将他們分開
  • haplotype/nonhaplotype: 單倍型優化指的是将那些含有超過500bp或者更大的SV差異的等位基因進行分開,不推薦用于非人類基因組組裝是用haplotype,這會導緻組裝結果過度碎片化,組裝的基因組會變大.
  • nocut: 不對CMPR(complex multipath regions)進行拆分,所謂的CMPR指的是長度超過130kbp的高度重複序列,因為相似度過高,組裝的時候不知道如何處理。

對于非人類的物種,推薦參數為:

  1. 除非是小鼠的SV缺失,大部分情況都用nonhaplotype,用于後續的Hybrid scaffold Pipeline(HS)
  2. 要noES
  3. 是否cut看情況而定。大部分人喜歡不cut。

對于人類, 推薦參數為:

  1. 僅在SV檢測時用haplotype, 對于HS用nonhaplotype
  2. 加上ES
  3. 大部分情況下加上CMPR, 除非你知道在CMPR區間上有SV,才使用nocut

重點2: 如何設定組裝時pairwise alignment中的

-T

參數。 基本原則是: 标記每增加一個,p值降低100倍; 基因組每增加一個數量級,p值降低100倍。

  • 對于大于1Gb, 标記密度小于 15/100bkp的情況,設定為1e-11,
  • 對于基因組大于1Gb, 标記密度大于15/100 kbp,每增加一個标記,就降低100倍,例如17/100kbp, 推薦1e-15

此外可以用

-B

跳過部分流程,

-e

則是輸出檔案的字首,

-x

表示在自動去噪後退出。 如果有叢集可用參數

-C

。如果基因組比較差, 可用

-R

參數進行初步組裝,然後基于第一個版本進一步的組裝。還有一些參數用于關閉一些預設啟動的功能

  • -A: 不将bnx檔案和最後的contig比較
  • -m: 不将bnx和參考基因組比較
  • -E: 不檢查輸出的完整性

運作過程中, 可以用"grep 'Executing' bionanoAssembly/exp_pipelineReport.txt" 檢視執行進度

最後輸出結果是"contigs/exp_refineFinal1/EXP_REFINEFINAL1.cmap",而結果好壞則要看"exp_informaticsReportSimple.txt", 兩個核心标準

  1. Bionano圖譜應該占原來的實體圖譜的90%以上
  2. Bionano圖譜的N50 會由于物種不同有很大差異,動物一般在1M以上,植物不确定。DLE系統差異更明顯