目錄
- 關(guān)于 Falcon
- 部件介紹
- 組裝流程
- Connection within HGAP4 vs falcon vs falcon-unzip
- 安裝及測試數(shù)據(jù)下載
- 試運行
- 最后
很多公眾號都有介紹關(guān)于 Falcon 各參數(shù)的設(shè)置經(jīng)驗, 而安裝指南卻沒有一份系統(tǒng)的資料供借鑒. 前兩年安裝只能通過官網(wǎng)下載安裝包, 一步步的配置其運行環(huán)境, 步驟繁瑣, 如果是非管理員用戶, 搞定運行環(huán)境就更難了. 好在前段時間, PacBio 發(fā)布了 Anaconda 版本, 使非管理員用戶可以比較輕松的解決 Falcon 的安裝問題
Anaconda 中的最新版本為0.0.3, 可能做得不夠"傻瓜", 運行過程中會遇到幾個普遍的錯誤. 這篇文章是我對 Falcon 原理背景、安裝問題解決和試運行的學(xué)習(xí)筆記
關(guān)于 Falcon
Falcon是由PacBio 開發(fā)用于SMRT測序長reads的基因組從頭組裝工具, 其包含的主要部件為:
falconfalcon-unzipfalcon-phase
部件介紹
-
falcon
繼承了HGAP的功能, 將運行方式從圖形用戶界面(Graphical User Interface, GUI)更改為命令行界面, 并且優(yōu)化對大基因組的組裝能力. 它的特點是能夠?qū)㈦s合等位基因同時組裝出來, 軟件將這部分 contigs 分為primary and associated contigs. 基于這個功能falcon也稱為可以感知二倍體的組裝工具 -
falcon-unzip
真正的二倍體組裝工具, 它利用falcon產(chǎn)出的 primary&associated contigs, 通過鑒別SNP位點進(jìn)行初步組裝, 最終獲得二倍體的兩個同源區(qū)段(haplotigs) -
falcon-phase
利用Hi-C數(shù)據(jù)映射到falcon-unzip組裝本中, 利用haplotigs和共有序列, 將兩個單倍體完全組裝出來
演示視頻(上傳失敗,只能放鏈接了)
組裝流程
Step1-預(yù)組裝/錯誤矯正
由HGAP&falcon完成. 篩選種子序列或者說是最長序列(通過length_cutoff控制), 將短序列映射到當(dāng)序列中, 目的是獲得高準(zhǔn)確率的一致性序列, 該步驟完成后獲得的序列準(zhǔn)確率大于99%
Step2-組裝
由HGAP&falcon完成. 將預(yù)組裝的序列(preassembled reads, preads)相互映射, 得到原始的基因組 contigs

Step3-拋光
組裝完成后要進(jìn)行第一輪拋光, 需要將所有的subreads映射到原始基因組中, 這一步驟能大幅度的提高堿基的準(zhǔn)確率
Step4-Haplotigs組裝
由falcon-unzip完成. 對于復(fù)雜基因組, 由于SV等結(jié)構(gòu)變異以上步驟會組裝出"氣泡"結(jié)構(gòu), 也就是差異同源區(qū)域, unzip 會根據(jù)"氣泡"結(jié)構(gòu)和周圍的SNP位點切斷差異區(qū)段, 將haplotigs 組裝出來, 繼而將原始基因組 contigs 精細(xì)的組裝為精度更高的 contigs(primary contigs) 和haplotigs

Step5-Hi-C data mapping
上一步雖然細(xì)分出了primary contigs 和haplotigs, 但卻無法在整個基因組范圍內(nèi)區(qū)分每個氣泡結(jié)構(gòu)究竟是屬于哪個單體, 簡單點說, 如果整個基因組只有一個"氣泡"結(jié)構(gòu), 那么不需要Hi-C 數(shù)據(jù)就可以區(qū)分出兩個單體, 而≥2個"氣泡"結(jié)構(gòu)時, 單憑已有數(shù)據(jù)是無法排列的. 以下是Hi-C輔助組裝示意圖:

Connection within HGAP4 vs falcon vs falcon-unzip
-
HGAP4擁有基于Web 開發(fā)的圖形化處理界面, 在基因組復(fù)雜度低于人類基因組(3Gb)的情況下, 官方推薦使用HGAP4進(jìn)行組裝, 但實際性能根據(jù)計算資源的差異會有不同,falcon是命令行界面的HGAP, 這在上面也提到了 -
HGAP4和falcon在計算資源的分配及結(jié)果產(chǎn)出的目錄結(jié)構(gòu)上兩者存在細(xì)微差別, 在運行過程中的差別分為以下幾點:- 任何大小和復(fù)雜度的基因組都可以通過
falcon組裝 -
HGAP4中的拋光環(huán)節(jié)通過resequencing流程調(diào)用,falcon在組裝過程中沒有自動進(jìn)行拋光, 如需拋光可以通過pbsmrtpipe中的resequencing流程操作, 如果粗略一些的話,falcon-unzip組裝中有拋光流程 -
HGAP4輸入為PacBio 提供的BAM格式文件, 輸出結(jié)果中primary and associated contigs在同一個文件中;falcon輸入為FASTA格式文件, 同源差異區(qū)段分為兩個文件
- 任何大小和復(fù)雜度的基因組都可以通過
- 當(dāng)前版本的
HGAP(4)輸出結(jié)果不支持falcon-unzip -
falcon-unzip可以對多倍體進(jìn)行組裝
falcon&falcon-unzip
安裝及測試數(shù)據(jù)下載
#安裝
$conda search pb-assembly
$conda install pb-assembly=0.0.3 #或者其他版本
#下載200Kb test case
$git clone https://github.com/cdunn2001/git-sym.git
$git clone https://github.com/pb-cdunn/FALCON-examples.git
$cd FALCON-examples
$../git-sym/git-sym update run/greg200k-sv2
報錯解決
通過Anaconda安裝相比之前, 節(jié)約了90%以上的時間, 運行環(huán)境基本已經(jīng)配置完全, 只有個別幾個軟件需要更新一下版本, 遇到的問題在log 日志文件里都有記錄.
報錯是在試運行階段遇到的, 但為了學(xué)習(xí)更流暢, 就把這部分提到前面介紹了
[ERROR1]
- 錯誤提示
software/prefix/python2.7/bin/python2.7: No module named pypeflow
- 解決方法
出現(xiàn)這個問題的原因可能有兩個, 比較明顯的是沒有使用Anaconda配置的 python, 另外一個原因可能是 python 版本太低
$source ~/.bashrc
$conda search python
$conda install python=2.7.13 #或者更高版本
[ERROR2]
- 錯誤提示
AttributeError: 'IntervalTree' object has no attribute 'search'
- 解決辦法
出現(xiàn)這個問題的原因也是有兩個, 最可能的是IntervalTree沒有安裝, 另一個比較腦殘, 版本太高了不行, 太惡心了..
$conda list
$conda search python-IntervalTree #會發(fā)現(xiàn)有兩三個版本
$conda install python-intervaltree=2.1.0 #只有2.1.0含有 search 屬性, 真坑
[ERROR3]
- 錯誤提示
ERROR: CLI::Interface - unknown option name: sorttouch quiver_done.exit
#Google 這個問題都沒有記錄, 也是奇了怪
- 解決辦法
這個問題困擾了好久, 沒人提出過這個問題, 最后還是在開發(fā)人員的幫助下解決的, 所以說這個 error3的解決辦法是相當(dāng)寶貴的..
解決的思路是這樣的, mp15 對四款相關(guān)軟件的版本提出了疑問, 我之前在全部更新時, 也發(fā)現(xiàn)某些軟件不能更新到最新版本, 可能是因為當(dāng)前環(huán)境不支持最新版本的運行, 我嘗試手動將四款軟件更新到了最新版本, 最終 unzip 完美運行
$conda update --all
$conda update -c bioconda --all
$conda install pbmm2=0.12.0
$conda install pbcore=1.6.5
$conda install pbalign=0.3.2
試運行
$cd run/greg200k-sv2
$fc_run fc_run.cfg
$fc_unzip.py fc_unzip.cfg
運行完成后, 基因組.fasta 文件存放在4-polish/cns-output目錄中
最后
- 過段時間打算把Falcon 的使用情況做個整理吧
- 天天當(dāng)啞巴, 吃黃連, 心累的很
- 隱忍ing...
