使用NextDenovo组装Nanopore数据
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上組裝上,我們又多了一個比較好用的工具。
最后非常感謝胡江博士對于本文的指導!
總結
以上是生活随笔為你收集整理的使用NextDenovo组装Nanopore数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 光场相机 标定微透镜阵列
- 下一篇: DNA微阵列数据