NextDenovo是武漢未來組胡江博士團隊開發的一個三代組裝工具,能夠用於PacBio和Nanopore數據的組裝。但是從官方的介紹而言,此工具在組裝Nanopore上優勢更大一些。
NextDenovo包括兩個模塊,NextCorrect用於原始數據糾錯,NextGraph能夠基於糾錯後的進行組裝。使用修改版的minimap2進行序列間相互比對。v2.0-beta.1版中在處理高度重複序列上可能存在錯誤組裝,可以通過HiC和BioNano進行糾錯。
軟件安裝
NextDenovo的軟件安裝非常簡單, 下載解壓縮即可使用。考慮到NextDenovo需要用Python2.7,我們可以用conda新建一個環境
conda create -n python2 python=2.7
conda activate python2
然後下載解壓縮(我習慣把軟件放在~/opt/bisofot
下)
mkdir -p ~/opt/biosoft/
cd ~/opt/biosoft/
wget https://github.com/Nextomics/NextDenovo/releases/download/v2.0-beta.1/NextDenovo.tgz
tar -zxvf NextDenovo.tgz
測試下軟件是否可以使用
~/opt/biosoft/NextDenovo/nextDenovo -h
實戰
以發表在NC上的擬南芥數據爲例, 簡單介紹下軟件的使用
第一步: 新建一個分析項目
mkdir NEXT && cd NEXT
然後從EBI上下載該數據,在run.fofn
中記錄文件的實際位置。
# 三代測序
wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR217/003/ERR2173373/ERR2173373.fastq.gz
realpath ERR2173373.fastq.gz > run.fofn
第二步: 複製和修改配置文件
cp ~/opt/biosoft/NextDenovo/doc/run.cfg .
我的配置文件修改如下,參數說明參考官方文檔
[General]
job_type = local
job_prefix = nextDenovo
task = all # 'all', 'correct', 'assemble'
rewrite = yes # yes/no
deltmp = yes
rerun = 3
parallel_jobs = 5
input_type = raw
input_fofn = input.fofn
workdir = 01_rundir
# cluster_options = -l vf={vf} -q all.q -pe smp {cpu} -S {bash} -w n
[correct_option]
read_cutoff = 1k
seed_cutoff = 3k
blocksize = 3g
pa_correction = 20
seed_cutfiles = 20
sort_options = -m 20g -t 8 -k 40
minimap2_options_raw = -x ava-ont -t 8
correction_options = -p 8
[assemble_option]
random_round = 20
minimap2_options_cns = -x ava-ont -t 8 -k17 -w17
nextgraph_options = -a 1
配置文件的幾個重要參數說明(v2.0-beta.1)
- job_type 設置運行環境,可以使用(local, sge, pbs等)
- 運行線程數設置,線程數計算爲
parallel_jobs
分別與sort_option
,minimap_options_*
的-t
數乘積,和correction_options
的-p
的乘積,量力而行。 - seed_cutfiles 如果在集羣上運行,建議設置爲可用的節點數,同時設置
correction_options
的-p
爲各個節點可用的核數,保證每個節點只有一個correction任務,減少運行時的內存和IO。 如果local上運行, 建議設置爲總可用的核除以correction_options
的-p
值. - parallel_jobs建議設置至少要大於
pa_correction
。 - blocksize 是將小於seed_cutfiles的數據拆分成的多個文件時單個文件的大小, 總的比對任務數等於基於該參數切分的文件數乘以
seed_cutfiles + seed_cutfiles * (seed_cutfiles - 1)/2
, 因此對於10g以內的數據量, 建議設置小於1g, 避免總的任務數小於parallel_jobs的值。 - 測序數據類型相關: 對於PacBio而言,要修改
minimap2_options_*
中的-x ava-ont
爲-x ava-pb
- 數據量相關參數:
read_cutoff = 1k
過濾原始數據中低於1k的read,seed_cutoff = 30k
則是選擇大於30k以上的數據來矯正。關於seed_cutoff
的設置,可以通過~/opt/biosoft/NextDenovo/bin/seq_stat
來獲取參考值,不建議直接使用默認值,因爲改值會受到測序深度和測序長度影響,而且一個不合適的值會顯著降低組裝質量。對於基因組大於200m以上的物種,-d建議默認。 - correction_options中的-dbuf可以顯著降低矯正時的內存,但會顯著降低矯正速度。
- random_round參數,建議設置20-100. 該參數是設置隨機組裝參數的數量,nextGraph會基於每一套隨機參數做一次組裝, 避免默認參數效果不好。
seq_stat
能夠根據物種大小和預期用於組裝的深度確定seed_cutoff
~/opt/biosoft/NextDenovo/bin/seq_stat -g 110Mb -d 30 input.fofn
第三步: 運行NextDenovo
~/opt/biosoft/NextDenovo/nextDenovo run.cfg &
運行時間如下
real 64m5.356s
user 1827m37.890s
sys 264m48.246s
默認參數結果是存放在01_rundir/03.ctg_graph/01.ctg_graph.sh.work/ctg_graph00
, 可以將其複製到當前目錄,用於後續的分析。
cat 01_rundir/03.ctg_graph/01.ctg_graph.sh.work/ctg_graph00/nextgraph.assembly.contig.fasta > nextgraph.assembly.contig.fasta
但是在01.ctg_graph.sh.work
目錄下除了ctg_graph00
以外,還有其他隨機參數的在組裝結果。隨機參數結果只輸出了統計結果,用戶如需要輸出組裝序列,可以修改01_rundir/03.ctg_graph/01.ctg_graph.sh
,將裏面的-a 0
替換成-a 1
。
每個目錄下都有shell輸出,可以挑選基於nextDenovo.sh.e這裏面的結果挑選組裝指標較好的,再輸出序列,比如說比較下N50
grep N50 01_rundir/03.ctg_graph/01.ctg_graph.sh.work/ctg_graph*/*.e
默認情況下,最終組裝出20條contig,總大小116M,N50 12M.
使用minimap2將組裝結果和比對到TAIR10上,用dotplotly進行可視化
minimap2 -t 100 -x asm5 Athaliana.fa nextgraph.assembly.contig.fasta > next.paf
dotPlotly/pafCoordsDotPlotly.R -i next.paf -o next -l -p 6 -k 5
不難發現,兩者存在高度的共線性。大部分TAIR10的染色體對應的都是2條或者3條contig。
此外這篇NC的擬南芥提供了BioNano光學圖譜,我使用BioNano Hyrbrid Scaffold 流程進行了混合組裝
cp /opt/biosoft/Solve3.3_10252018/HybridScaffold/10252018/hybridScaffold_config.xml .
# 修改xml中fasta2cmap的enzyme爲BSPQI
perl /opt/biosoft/Solve3.3_10252018/HybridScaffold/10252018/hybridScaffold.pl \
-n nextgraph.assembly.contig.fasta \
-b kbs-mac-74_bng_contigs2017.cmap \
-c hybridScaffold_config.xml \
-r /opt/biosoft/Solve3.3_10252018/RefAligner/7915.7989rel/RefAligner \
-o nextgraph \
-B 2 -N 2 \
-f
組裝結果如下,從原來的20的contig下降到了16個contig。
Count = 16
Min length (Mbp) = 0.026
Median length (Mbp) = 7.224
Mean length (Mbp) = 7.301
N50 length (Mbp) = 13.013
Max length (Mbp) = 14.965
Total length (Mbp) = 116.811
此外還通過BioNano Access進行可視化,以其中一個結果爲例。光學圖譜和NextDenovo的組裝結果存在很高的一致性。
綜上,在Nanopore上組裝上,我們又多了一個比較好用的工具。
最後非常感謝胡江博士對於本文的指導!