官方并沒有一個很詳細的文檔描述Bionano的從頭組裝流程的具體過程,是以我隻能根據自己實際項目進行介紹:
- AutoNoise + SplitBNX: 這一步會将bnx和參考的cmap檔案進行比對,估算出噪聲系數,然後把bnx進行拆分便與後續比對
- Pairwse: 這一步進行molecules之間的兩兩比較,尋找overlap, 結果存放在"align"檔案夾下
- Assembly: 根據兩兩比對結果,通過OLC算法進行組裝,結果在"contigs/exp_unrefined"下,合并後的檔案為"EXP_UNREFINED.cmap", 同時還會将"EXP_UNREFINED.cmap"和參考基因組的cmap進行比對,結果放在"contigs/exp_unrefined/exp_unrefined/alignref", 此外還将拆分後Bnx檔案和參考基因組的cmap檔案進行比對,結果放在"contigs/alignmolvref"下
- refineA: 第3步得到的圖譜先會進行第一次優化 輸出結果在"contigs/exp_refineA", 這一步不會使用所有的原始資料,而是pairwise階段用的品質比較好的分子,是以速度會快一些
- refineB: 在第4步的基礎上進行第二次的優化, 輸出結果在"contigs/exp_refineB0"和"contigs/exp_refineB1". 這一步會使用所有的輸入原始資料,速度稍微慢一些。第一輪和第二輪的結果會将地覆寫度的區域進行打斷,然後更新标記和标記的位置。
- Extension and merge: 将上一步的contig回貼到參考基因組的map,進行延伸和合并,這一步可以疊代3-5次。中間結果在"contigs/exp_extensionX_X"和"contigs/exp_mrgX"
- Final refinement: 最後一步的優化
- 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的高度重複序列,因為相似度過高,組裝的時候不知道如何處理。
對于非人類的物種,推薦參數為:
- 除非是小鼠的SV缺失,大部分情況都用nonhaplotype,用于後續的Hybrid scaffold Pipeline(HS)
- 要noES
- 是否cut看情況而定。大部分人喜歡不cut。
對于人類, 推薦參數為:
- 僅在SV檢測時用haplotype, 對于HS用nonhaplotype
- 加上ES
- 大部分情況下加上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", 兩個核心标準
- Bionano圖譜應該占原來的實體圖譜的90%以上
- Bionano圖譜的N50 會由于物種不同有很大差異,動物一般在1M以上,植物不确定。DLE系統差異更明顯