1. 程式人生 > >三代基因組拼接軟件--Falcon篇

三代基因組拼接軟件--Falcon篇

糾錯 矯正 get awr rect ini 錯誤 fault lis

Falcon是PacBio開發的一款用於三代基因組devono拼接軟件,該軟件支持PBS,SLURM,SGE,TORQE, LSF作業調度系統。大體的工作原理是將長reads分隔成指定大小模塊,這些模塊彼此間再相互比對,進行自我糾錯以及查找重疊信息,然後再用De Bruijn算法進一步拼接生成contigs。

原理簡介:

1.Raw sub-reads overlapping for error correction(構建進行錯誤矯正的重疊信息)

具體先由fasta2DB與DBsplit對原始reads進行建庫分割,分割大小有參數可控,可見下文參數解析,再HPC.daligner生成多個job數的shell腳本放在run_jobs.sh裏,接著再根據設定的job_type類型,即根據作業調度系統或者單一節點模式,PBS,SGE通過qsub,SLURM用sbatch將這些job投到相應的計算節點上去,再由每個rj開頭的shell腳本對之前分割好的模塊進行daligner比對生成相應的.las,再由LAchek,LAsort,LAmerge進行檢查,排序,合並。

2.Pre-assembly and error correction (預組裝與錯誤矯正)

通過LA4Falcon將之前合並好的.las文件轉成falcon識別的格式,再通過管道傳遞給fc_consensus進行預組裝與錯誤矯正,最後生成fasta文件,所生成的fasta文件數應該與0_rawreads/preads/下的cns開頭的文件夾數相同,最後的這些preads將被用於下面的組裝。

3.overlapping detection of the error corrected reads (錯誤矯正後的重疊信息群的構建)

與1相似也是通過fasta2DB與DBsplit對矯正過的reads進行建庫分割,也是由HPC.daligner生成一個所有jobs數的集合腳本run_jobs.sh,再根據設定的job_type以及參數投放到節點上,再由daligner,LAcheck,LAsort,LAmerge進行比對,查找,排序,合並。

4.Overlap filtering(重疊信息過濾)

過慮主要是為了減少計算以及後續拼接的復雜度,過慮的情況主要有:如果其中的一條reads跟一條完全一樣就不能提供額外信息,故過濾之;序列兩端的重疊信息冗余,不需要太多的重疊信息就可推斷出重疊關系的;有些重復區域的會造成覆蓋度較高,這些重復區域不能提供額外信息故可通過參數顧慮一些,但在覆蓋度偏低的地方,又會造錯誤率過高,所以也可通過參數過濾掉低覆蓋度(fc_ovlp_filter完成的)。

5.Constructing graph from overlap (通過重疊信息構圖)

利用fc_ovlp_filter過濾後生成的pread.ovl構建一系列的圖信息,邊的信息存放在sg_edges_list,然後再進一步連接成unitigs存放在utg_data中,再根據unitigs構建contig圖存放在ctg_path中。

6.Constructing contig from graph (通過圖信息構建 contigs)

根據圖信息以及序列構建contigs。

####################################################################

三、輸入參數解析:主要在fc_run.cfg文件中

[General]

(Falcon支持LOCAL,SLURM,PBS,SGE,TORQUE,LSF等工作類型,需要結合計算機資源以及拼接數據的大小來選擇,這裏介紹local,slurm與pbs的配置參數)

#job_type=local

#job_type=SLURM

job_type=PBS

input_fofn = input.fofn

#input_fofn = preads.fofn

input_type = raw(指定輸入數據類型)

#input_type = preads

# The length cutoff used for seed reads used for initial mapping

length_cutoff = 10000 用於錯誤矯正的序列的最低長度

#The length cutoff used for seed reads used for pre-assembly

length_cutoff_pr = 10000用於預組裝的序列的最低長度

#the job of queue

jobqueue = yourqueue

#############################################

#THE CONFIGURE OF LOCAL

#############################################

#sge_option_da = -pe smp 8 -q %(jobqueue)s【stage-0】

#sge_option_la = -pe smp 2 -q %(jobqueue)s【stage-0】

#sge_option_cns = -pe smp 8 -q %(jobqueue)s【stage-0】

#sge_option_pda = -pe smp 6 -q %(jobqueue)s【stage-1】

#sge_option_pla = -pe smp 2 -q %(jobqueue)s【stage-1】

#sge_option_fc = -pe smp 8 -q %(jobqueue)s [stage-2]

##################################################################

# THE CONFIGURE OF PBS

##################################################################

sge_option_da = -l nodes=1:ppn=12 -q %(jobqueue)s

sge_option_la = -l nodes=1:ppn=12 -q %(jobqueue)s

sge_option_pda = -l nodes=1:ppn=12 -q %(jobqueue)s

sge_option_pla = -l nodes=1:ppn=12 -q %(jobqueue)s

sge_option_fc = -l nodes=1:ppn=12 -q %(jobqueue)s

sge_option_cns = -l nodes=1:ppn=12 -q %(jobqueue)s

(這是PBS作業調度系統sge_option參數的參考配置信息,具體可以根據集群資源進行設置。)

####################################################################

pa_concurrent_jobs = 20

ovlp_concurrent_jobs = 20

cns_concurrent_jobs = 20

(提交的任務的並發數,根據計算資源來確定)

pa_DBsplit_option = -x500 -s200

ovlp_DBsplit_option = -x500 -s200

(-s分割數據塊的大小即block的大小,越大需要的內存越大,每個模塊間相互比對的時間也越長)

pa_HPCdaligner_option = -v -B10 -t16 -e.70 -l1000 -s1000 -T12

-B與jobs總數有關對內存影響不大,e取值範圍【0.7,1】raw read設低點。-T線程數

ovlp_HPCdaligner_option = -v -B10 -t32 -h60 -e.96 -l500 -s1000 -T12

(參考上面的pa_HPCdaligner_option,e值此時為矯正過的可設高點)

falcon_sense_option = --output_muti --min_idt 0.70 --min_cov 4 --max_n_read 200 --n_core 12

(--min_idt 用於裝配拼接的序列間比對的最低相似度,--min_cov 種子序列的最低覆蓋度,--max_n_read用於錯誤矯正的最高的read數)

overlap_filter_setting = --max_diff 100 --max_cov 100 --min_cov 20 --bestn 12 --n_core 24

(--max_diff序列兩端覆蓋度的最大差異,--max_cov序列兩端的最大覆蓋度--minx_cov序列兩端的最小覆蓋度,--bestn 默認為12,--n_core線程數)

fc_ovlp_to_graph_option = --min_len (length_cutoff_pr,default4000) --min_idt(default 96)

####################################################################

四、運行:

fc_run.py fc_run.cfg

####################################################################

五,參考信息:

https://github.com/PacificBiosciences/FALCON/wiki/Manual

http://blog.sciencenet.cn/blog-3255195-1015620.html

三代基因組拼接軟件--Falcon篇