從這部分開始,就開始涉及一些軟件的操作和數據分析,因此在進入正文之前,我們需要準備好環境。
環境準備
第一步:從 https://bionanogenomics.com/library/datasets/下載人類測試數據集,以及對應的NA12878人類基因組。
wget http://bnxinstall.com/publicdatasets/DLS/20180413_NA12878_S3_compressed.tar.gz
tar xf 20180413_NA12878_S3_compressed.tar.gz
wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/002/077/035/GCA_002077035.3_NA12878_prelim_3.0/GCA_002077035.3_NA12878_prelim_3.0_genomic.fna.gz
gunzip GCA_002077035.3_NA12878_prelim_3.0_genomic.fna.gz
mv GCA_002077035.3_NA12878_prelim_3.0_genomic.fna NA12878.fa
第二步: 在https://bionanogenomics.com/support/software-downloads/下載Solve軟件,
服務器要滿足如下需求:
- Python=2.7.x
- perl=5.14.x或5.16.x
- R > 3.1.2,並且安裝data.table, igraph, intervals, MASS, parallel, XML, argparser
- glibc >= 2.14 和 gcc庫
- 至少有一個256G節點的內存,最好有一些32G內存的小節點
tar -zxvf Solve3.3_10252018.tar.gz
解壓縮后里有如下幾個文件夾
- cohortQC: 主要是MQR運行腳本
- HybridScaffold: 單酶系統和雙酶系統混合組裝工具腳本
- Pipeline:從頭組裝的腳本
- RefAligner:用於序列聯配和組裝
- RefGenome:hg19和hg38的cmp文件
- SVMerge: 用於合併單酶系統得到SV結果
- UTIL: 運行從頭組裝的一些實用shell腳本,可以根據需要進行修改
- VariantAnnotation: 對找到的SV進行註釋
- VCFConverter: 將SMAP和SVMerge的結果輸出成VCF格式
數據過濾
目前的主流Bionano設備已經是Sapjyr,BNX文件產生於Saphyr,經由Bionano Access 下載到本地。
從公司拿到的是"RawMolecules.bnx"文件, 不過我們練習用的數據是"output/all.bnx.gz",
mkdir test
mv output/all.bnx.gz test
zcat all.bnx.gz| head -n 20000 | grep "# Run Data" | wc -l
# 281
我們發現發現數據集來自於281個通道。
Label SNR 過濾: 過濾信噪比較低的分子,信噪比低意味着質量差。 有如下幾個情況,不需要做Label SNR 過濾,或在你BNX文件的"#rh"部分有"SNRFilterType"定義,就不需要過濾
- 人類樣本不需要過濾。
- Bionanao Access 1.2 以後新的圖像檢測算法得到的BNX文件不需要SNR過濾.
- 對於AutoDetect或Irysview處理過的數據,默認會進行label SNR過濾,處理之後就是Molecules.bnx
由於我們是人類數據集,因此下面的代碼就不需要運行了,並且絕大部分情況下也用到下面的命令。
perl /opt/biosoft/Solve3.3_10252018/cohortQC/10252018/filter_SNR_dynamic.pl -i RawMolecules.bnx -o Molecules_filter.bnx -P diag_hist.pdf > snr.log &
分子長度過濾: 過濾短與某個閾值的分子,公司一般會只保留100kb或120Kb以上的分子(取決於數據量,數據越多,閾值越高)
gunzip all.bnx.gz
RefAlinger -i all.bnx -minlen 120 -merge -o output -bnx > run.log &
在輸出的內容中,注意如下部分
Final maps=1147524, sites=46764680, length= 268845841.028kb (avg= 234.283 kb, label density= 17.395 /100kb)
表明過濾後,還有113萬條分子,涉及到4676萬標記,總測序量爲258G,標記密度是17.395/100kb,平均分子長度大於234Kb… 測序深度等於總測序量除以基因組大小,這是人類基因組,按照3G計算,那麼深度就是80X.
過濾後平均分子長度應大於200Kb。 標記密度不能過高,過高會因分辨率不夠而無法區分,過低則無法用於比對。一般DLS在10~25 , NRLS在8~15.
組裝評估: 在正式組裝之前,我們還需要判斷下當前數據是否滿足組裝要求。 爲了獲取所需的評估參數,得將過濾後的BNX文件和基因組模擬模切得到的CMAP進行比對
第一步: 對基因組序列模擬酶切,得到CMAP文件
perl /opt/biosoft/Solve3.3_10252018/Pipeline/10252018/fa2cmap_multi_color.pl -i ../NA12878.fa -e cttaag 1
mv ../NA12878_CTTAAG_0kb_0labels.cmap .
CMAP的格式比較簡單,說明如下:
第二步: 用align_bnx_to_cmap.py
進行比對。 bionano光學圖譜比對的基本原理是基於標記的相對位置。
python /opt/biosoft/Solve3.3_10252018/Pipeline/10252018/align_bnx_to_cmap.py \
--prefix human \
--mol molecules120k.bnx \
--ref NA12878_CTTAAG_0kb_0labels.cmap \
--ra /opt/biosoft/Solve3.3_10252018/RefAligner/7915.7989rel \
--nthreads 80 \
--output prealign \
--snrFilter 2 \
--color 1
參數說明可自行閱讀幫助說明。我們重點關注輸出結果中如下幾方面內容:
- “contigs/alignmolvref/alignmol_log_simple.txt”裏的“Fraction of aligned molecules”和"Effective coverage of reference (X)". 我們要判斷數據是否符合最低的比對率。比對率和基因組實際情況有關(組裝質量,錯誤率,重複坍縮情況)。對於人類基因可以達到90%以上,對於不怎麼完整度的基因組,即便Bionano的質量很高,比對率可能也只有30%~40%(僅統計150 kb 的分子)
- “alignments.tar.gz”, 裏面包含的三個文件可以輸入到Bionano提供的另一個工具Access中進行可視化,注意導入要選擇"Anchor to Molecules"。
由於人類基因組足夠的大,因此需要等待一段時間才能處理完成,之後就可以對比對結果有一個更加直觀的瞭解。
那麼合格後的數據應該如何組裝呢?請等待後續教程!