基因組測序數(shù)據(jù)的從頭組裝過程:測序讀段(reads) > contig > scaffold > chromosome
1.核心算法
基因組測序數(shù)據(jù)的從頭組裝的的核心算法主要可以分為以下幾大類:
基于貪婪算法(greedy-extention)(基本淘汰)廓鞠;
基于Overlap-Layout-Consensus(OLC)(適用于一代測序**);
基于de Bruijn Graph;
以上兩種或多種算法的組合浪感;
其他類型莱革。
結(jié)果比較:contig N50, scaffold N50, BUSCO
2. 一般步驟
第一步是數(shù)據(jù)質(zhì)控控制 - fastp
第二步茧妒,確定起始參數(shù),如K-mer和覆蓋率
第三步狰腌,使用不同軟件進(jìn)行組裝;
第四步,評估組裝結(jié)果甥材,如contig N50, scaffold N50, 判斷是否需要修改參數(shù)重新組裝。(QUAST和BUSCO)
3. 序列拼接 - velvet
1. Velvet - Current version: 1.2.10
一般工作過程簡化為:輸入short reads序列 > 排除錯誤 > 產(chǎn)生高質(zhì)量的contigs > 用paired-end reads和long reads信息檢索contigs之間的重復(fù)區(qū)域。
2. Velvet下載安裝
- 下載velvet的安裝包,直接使用make命令來編譯抄腔,即可獲得可執(zhí)行主程序velveth和velvetg绵患。安裝如下:
wget \
-O velvet.tgz
http://www.ebi.ac.uk/~zerbino/velvet/velvet_....tgz
tar zxf velvet.tgz
cd velvet.tgz
make 'CATEGORIES=10' 'MAXKMERLENGTH=57'\ 'LONGSEQUENCES=1' 'OPENMP=1' 'BUNDLEDZLIB=1'
參數(shù)詳解
CATEGORIES=10: 輸入 10 groups of short reads。根據(jù)原始數(shù)據(jù)相應(yīng)增減該值的大幸破取荡陷;值越大徽龟,耗內(nèi)存越大。
MAXKMERLENGTH=31: 最大的Kmer長度31(默認(rèn)為 31)。(k-mers一般選擇17即可讼昆,對于高度重復(fù)基因組或者基因組過大赃绊,可以選擇19甚至31也行。但不是越大越好传惠,kmer越大泰佳,越耗內(nèi)存,而且如果一條reads里有一個錯誤位點,越大的k-mers就會導(dǎo)致包含這個錯誤位點的k-mers個數(shù)增多)
BIGASSEMBLY=1: 超過 2.2G 的reads用于組裝基因組的時候,需要設(shè)置該值。
LONGSEQUENCES=1: 當(dāng)contigs長度超過 32kb 長的時候蜕猫,需要設(shè)置該值。
OPENMP=1:多線程運(yùn)行。需要設(shè)置環(huán)境變量 OMP_NUM_THREADS 和 OMP_THREAD_LIMIT蹬屹。最多為 OMP_NUM_THREADS+1 或 OMP_THREAD_LIMIT 個線程.
BUNDLEDZLIB=1: velvet默認(rèn)使用系統(tǒng)自帶的zlib,如果系統(tǒng)沒有zlib,則需要加入該參數(shù)來使用velvet源碼包中的zlib.
3. 功能介紹
- velveth - 準(zhǔn)備數(shù)據(jù)
利用velvet自帶的兩個腳本程序?qū)γ恳粋€pair-end數(shù)據(jù)進(jìn)行合并
#fasta 格式
?shuffleSequences_fasta.pl s1_1.fasta s1_2.fasta s1.fasta
?
#fastq 格式
shuffleSequences_fastq.pl s1_1.fq s1_2.fq s1.fq
-
格式化
代碼:./velveth directory/ hash_length
[-file_format] [-read_type] [filename] [options]
當(dāng)有多個文庫的時候,按照粗體部分的格式重復(fù)寫。
directory:輸出文件所在路徑的名字(即創(chuàng)建一個文件夾存放結(jié)果文件)
hash_length:也叫k-mer length(起始設(shè)定塘慕,值越大蛤织,內(nèi)存需求越大)
filename:標(biāo)準(zhǔn)輸入文件名
Options:
-strand_specific:轉(zhuǎn)錄組序列數(shù)據(jù),默認(rèn)為off
支持的文件格式:fasta(默認(rèn)),fastq,fasta.gz,fastq.gz,eland肯夏,gerald徊都。
讀類別:short槽奕,shortPaired夯接,short2问欠,shortPaired2注整,long驼唱,longPaired。默認(rèn)為short
例子:
./velveth output_directory/ 21 –fasta –short solexa1.fa solexa2.fa solexa3.fa –long capillary.fa </pre>
- Velvetg - 序列組裝
代碼:./velvetg directory [options]
directory:工作路徑名
Standard options:
-cov_cutoff <floating-point|auto>:移除低覆蓋率的node惭婿,默認(rèn)不移除
#參數(shù)名 + 數(shù)字,如:
./velvetg output_directory/ -cov_cutoff 5.2
-ins_length <integer>:two paired end reads之間的期望距離漓滔,默認(rèn)no read pairing
-read_trkg <yes|no>:在集合中對short read位置進(jìn)行跟蹤秽誊,默認(rèn)不跟蹤
-min_contig_lgth <int>:導(dǎo)出到contig.fa文件中的最小contig長度,默認(rèn)為hash長度的2倍
-amos_file <yes|no>:導(dǎo)出到AMOS文件中,默認(rèn)不導(dǎo)出(no)
-exp_cov <floating point|auto>:唯一區(qū)域的期望覆蓋率
Advanced options:
-ins_length2 <int>:兩個paired-end reads在第二個short-read數(shù)據(jù)集中的期望距離鄙早,默認(rèn)否
-ins_length_long <integer>:兩個long paired-end reads的期望距離,默認(rèn)否
-ins_length_sd <int>:數(shù)據(jù)集的標(biāo)準(zhǔn)差躯舔,默認(rèn)corresponding length的10%(代表:nothing布讹,2,_long)
-scaffolding <yes|no>:scaffolding of contigs used paired end information (default: on)-->
-max_pergence <floating-point>:在一個bubble中的兩個分支的最大分歧率画恰,默認(rèn)0.2-->
-min_pair_count <integer>:構(gòu)成兩個長contigs的paired end的最小值甩鳄,默認(rèn)10
-max_coverage <floating point>:在tour bus后移除高覆蓋率的node
-long_mult_cutoff <int>:合并contig的long reads的最小值抑胎,默認(rèn)2
-unused_reads <yes|no>:將不用的reads導(dǎo)出到UnusedReads.fa文件中,默認(rèn)否
-alignments <yes|no>:導(dǎo)出一個主要的contig并和參照序列對其肪跋,默認(rèn)否
- velvetg - 輸出結(jié)果
- directory/contigs.fa 長度2倍長于kmer的contigs; -scaffolding決定生成的fasta文件是否包含scaffold序列造寝;
- directory/stats.txt - 決定覆蓋度cutoff的統(tǒng)計表
- directory/PreGraph - 初始的de vruijin圖
- directory/Graph2 - 最終de bruijin圖签赃。
- directory/velvet_asm.afg - MOS兼容的文件锦聊,能用于AMOS基因組組裝軟件包
- directory/Log velvet的運(yùn)行記錄