細菌基因組拼接工具比較(二)

2021.3.18
持續(xù)更新中辈毯。陨舱。。
目的:比較下目前常用的四款拼接軟件:Velvet共耍、SPAdes虑灰、SOAPdenovo、ABySS


1. FastQC —— 質(zhì)量評估

????FastQC是一款基于Java的軟件痹兜,它可以快速地對測序數(shù)據(jù)進行質(zhì)量評估穆咐,并生成網(wǎng)頁版的報告。

1.1 使用

fastqc <sequence_1.fastq.gz> <sequence_2.fastq.gz> -o <目錄名> -t 線程數(shù)

重要參數(shù)
1. -o:輸出文件目錄
2. -t:選擇程序運行的線程數(shù)

1.2 輸出文件

????每個原始數(shù)據(jù)文件會生成兩個文件字旭,一個為html網(wǎng)頁文件对湃,一個為.zip*文。打開.html可以查看序列的測序質(zhì)量情況遗淳,分為三個等級:合格項為綠色√拍柒,警告是黃色的!屈暗,不合格為紅色的×拆讯。(綠色越多越好)

fastqc質(zhì)量報告




2. Cutadapt —— 過濾

????Cutadapt是一款用python寫的去接頭軟件,可以去除任意指定的接頭和序列养叛,同時也可以用于質(zhì)量過濾种呐。(實際上原始數(shù)據(jù)過濾會過濾兩種序列:去接頭引物、低質(zhì)量序列)

公司返回的rawdata不含有引物序列弃甥,可能含有接頭序列爽室,需要進行過濾后進行分析

2.1 下載

conda install cutadapt -y

注意cutadapt(v3.3)的安裝環(huán)境python版本不能高于3.9

2. 2 使用

cutadapt -a AGATCGGAAGAGCACACGTCTGAACTCCAGTCA -A AGATCGGAAGAGCACACGTCTGAACTCCAGTCA -o sequence_filtered_1.fastq.gz -p sequence_filtered_2.fastq.gz 
-q 20,20 --max-n 0.1 -m 75 sequence_1.fastq.gz sequence_2.fastq.gz

重要參數(shù)
1. -a:paired-end測序文件中正向序列文件接頭序列(文件1)
2. -A:paired-end測序文件中反向序列文件接頭序列(文件2)
3. -o:文件1去接頭后的結(jié)果文件
4. -p:文件2去接頭后的結(jié)果文件
5. -q:序列兩端堿基質(zhì)量低于某一數(shù)值時被切除,用,隔開淆攻,例如:-q 20,20阔墩。
6. -m:reads1和reads2中切除接頭后的序列長度最小值掉缺,低于這個數(shù)值則去除,例如:-m 75戈擒。
7. --max-n:N堿基占比一定比例時被去除眶明,例如--max-n 0.1,表示N堿基占read比例到10%時會被去除筐高。
8:最后是兩個原始序列文件搜囱。

可選參數(shù)
1. -- pair-filter=(any|both):any表示read1 和 read2任何一個檢測到接頭均舍棄;both表示 read1 和 read2 全部檢測到接頭才舍棄read1 和 read2柑土。(默認(rèn)any)
2. -O :默認(rèn)為3蜀肘,即至少三個堿基配才認(rèn)為是adapter序列。
3. -e:最大錯配比例稽屏,默認(rèn)是0.1扮宠。(解釋:cutadapt在一條read中檢測到20bp的接頭序列,那么允許該20bp的接頭序列有2個堿基的錯配)




3. Kmergenie預(yù)測最佳kmer值

????給定一組輸入狐榔,KmerGenie首先計算多個K值的k-mer豐度直方圖坛增。然后,對每個K值薄腻,它預(yù)測數(shù)據(jù)集中不同基因組k-mer的數(shù)量收捣,并返回這個數(shù)字最大化的k-mer長度。

3.1 安裝

conda create -n kmer python=2.7 -y
conda install kmergenie 

3.2 使用

kmergenie <fq.list> -o <result> -s 10 -t 10

重要參數(shù):
1. fq.list:包含需要查詢的文件庵楷,一行一個文件名(文件所在的絕對路徑)
2. -o:結(jié)果輸出的前綴名
3. -l:系統(tǒng)考慮的最小k值(默認(rèn):15)
4. -k:系統(tǒng)考慮的最大k值(默認(rèn):121)
5. -s:從最小k值到最大k值罢艾,每次增加的值(默認(rèn):10)
6. -t:線程數(shù)

3.3 輸出文件

????輸出文件中主要看*report.html網(wǎng)頁文件,會推算出最合適的kmer值與基因組大小尽纽。在這里咐蚯,我的基因組得出的kmer=111。

話說弄贿,kmer值是越大越好還是越小越好呢春锋?




4. 拼接 —— contigs

4.1 ?Velvet?

????Velvet,基于kmer的序列拼接工具挎春,用于基因組的de novo組裝看疙,支持多種格式,局部拼接效果好直奋,不善于連接成scaffold能庆。

4.1.1 安裝

conda install velvet -y

如果是編譯安裝可以選擇先修改以下配置文件參數(shù)后進行安裝:
1. CATEGORIES:根據(jù)原始數(shù)據(jù)相應(yīng)增減該值的小(一般設(shè)置為10)脚线。
2. MAXKMERLENGTH:最大的kmer長度(一般設(shè)置為127)搁胆。

4.1.2 使用

分為兩步執(zhí)行:

步驟一:利用velveth對數(shù)據(jù)構(gòu)建一個hash表

velveth <output> 111 -shortPaired -fastq -separate <sequence_filtered_1.fastq.gz> <sequence_filtered_2.fastq.gz>

重要參數(shù):
1. output:輸出文件目錄
2. 111:即hash_lenghth,用來設(shè)置k-mer的大小。也可以是31,97,2的形式渠旁,指分別拼接kmer從31到97攀例,依次增加2的序列(默認(rèn):31)
3. -shortPaired:reads的類型。
4. -fastq:輸入文件的格式(默認(rèn)是fasta)顾腊。
5. -separate:分開兩個文件讀入粤铭。

步驟二:velvetg進行序列拼接

 velvetg <output> -exp_cov auto -cov_cutoff auto

重要參數(shù):
1. <output>:velveth生成的結(jié)果目錄
2. -exp_cov:期望的kmer覆蓋度,設(shè)置成auto用于標(biāo)準(zhǔn)的基因組測序杂靶。該參數(shù)設(shè)置成auto后梆惯,-cov_cutoff也許設(shè)置成auto。

4.2 ?SPAdes?

????SPAdes是常用的序列拼接軟件之一吗垮,支持illumina垛吗、PacBio、Nanopore烁登、Sanger怯屉、Ion Torrent等測序數(shù)據(jù)的拼接,同樣適合用于混合組裝來改善拼接效果(尤其適用于Ion Torrent數(shù)據(jù)的拼接)

4.2.1 安裝

conda install spades -y

4.2.2 使用

spades.py --pe1-1 <sequence_filtered_1.fastq.gz> --pe1-2 <sequence_filtered_2.fastq.gz> -o <spades_out>
-k 111 -t 20 --careful 

重要參數(shù):
1. --pe<#>-1:指定輸入文庫饵沧,其中#表示第幾個文庫锨络。例如,第一個pairend文庫就可以寫成--pe1-1捷泞,之后接reads1文件足删。
2. --pe<#>-2:和上面類似,如果是大片段的matepair文庫锁右,就使用--mp1-1等。
3. -t:線程數(shù)(默認(rèn):16)讶泰。
4. --careful:減少錯誤和插入確實咏瑟,添加此項會消耗更多的時間。
5. -o:輸出目錄

可選參數(shù):
1. -k:k-mer值列表痪署,數(shù)字必須是小于128的奇數(shù)码泞。注:若小片段文庫(150bp×2)數(shù)據(jù)量足夠(50×+),則推薦使用-k 21,33,55,77(默認(rèn):auto)
2. --pacbio:指定pacbio數(shù)據(jù)輸入狼犯。
3. --nanopore:指定nanopore數(shù)據(jù)輸入余寥。
4. -m:用于內(nèi)存限制(默認(rèn):250)
5. --phred-offset:堿基質(zhì)量體系,在數(shù)據(jù)糾錯中會用到悯森,現(xiàn)在illumina數(shù)據(jù)一般采用phred 33質(zhì)量體系(默認(rèn):auto-detect)宋舷。

4.3 ?SOAPdenovo?

????SOAPdenovo是華大基因開發(fā)的SOAP軟件包的一部分,主要用于短序列reads拼接瓢姻,尤其是illumina測序數(shù)據(jù)祝蝠。從小的細菌基因組到大的動植物基因組,人基因組都適用。特點是使用起來比較簡單绎狭,但是卻擁有很好的拼接效果细溅,尤其在基因組構(gòu)建Scaffold方面,效果很好儡嘶。

4.3.1 安裝

conda install soapdenovo2 -y

4.3.2 使用

SOAPdenovo-127mer all -s config_file -K 111 -o soap -d 1 -p 20 

soapdenovo里面有兩個執(zhí)行程序:SOAPdenovo-63merSOAPdenovo-127mer喇聊,根據(jù)kmer值的大小進行選擇。

配置文件config_file的設(shè)置

#soapdenovo configure file  
max_rd_len=150 #使用reads的最大長度蹦狂,一般設(shè)置為reads的長度誓篱。
[LIB] #文庫信息以此開頭,如有多個文庫鸥咖,每個文庫都需要有一個單獨的[LIB]標(biāo)識符
avg_ins=439 #文庫平均插入長度燕鸽,即測序文庫大小,一般取插入文庫大小的均值啼辣。
reverse_seq=0 #序列是否需要反轉(zhuǎn)啊研。如果是大片段文庫,需要設(shè)置為1鸥拧。
asm_flags=3 #組裝的標(biāo)志党远。1用于構(gòu)建contig,2用于構(gòu)建scaffold富弦,3同時用于構(gòu)建contig和scaffold沟娱,4只用于補洞,不用于拼接腕柜。(一般小片段文庫設(shè)置為3济似,大片段設(shè)置為2)
rank=1 #文庫使用的優(yōu)先級。
pair_num_cutoff=3 #可選參數(shù)盏缤,確定了reads連接成contig或scaffold的閾值砰蠢。
map_len=32 #可選參數(shù),規(guī)定了在map過程中 reads和contig的比對長度必須達到該值(短片斷默認(rèn):32)
q1=./reads.1.fq.gz #用于連接的數(shù)據(jù)唉铜,支持fasta和fastq格式文件台舱,也支持壓縮格式。(結(jié)尾不能有空格)
q2=./reads.2.fq.gz

重要參數(shù):
1. -s:接配置文件
2. -o:輸出文件的文件名前綴
3. -K:輸入kmer的大小
4. -p:線程數(shù)(默認(rèn):8)
5. -d:去除頻數(shù)不大于該值的kmer(默認(rèn):0)
6. -D: 去除頻數(shù)不大于該值的由k-mer連接的邊(默認(rèn):1)
7. -F:利用read對scaffold中的gap進行填補(默認(rèn):不執(zhí)行)

4.4 ?ABySS?

????ABySS用于從頭拼接雙端測序短序列或較大基因組序列竞惋。

4.4.1 安裝

conda install abyss -y

4.4.2 使用

  • 拼接一個paired-end文庫
abyss-pe k=111 name=abyss in='sequence_filtered_1.fastq.gz sequence_filtered_2.fastq.gz'

重要參數(shù):
1. k:kmer值
2. name:輸出文件名
3. in:兩個paired-end文庫

  • 拼接多個paired-end文庫
abyss-pe k=111 name=ecoli lib='pea peb' pea='pea_1.fa pea_2.fa' peb='peb_1.fa peb_2.fa'



5. 四種拼接軟件的比較

5.1 QUAST的安裝和使用

conda install quast -y
quast -o <result> <velvet_contig.fa> <abyss_contig.fa> <soapdenovo_contig.fa> <spades_contig.fa> -t 15

重要參數(shù):
1. -o:輸出文件目錄
2. -t:選擇程序運行的線程數(shù)
3. -f:指定輸入文件格式

5.2 比較結(jié)果(contigs)

綜合contigs數(shù)量、總長度灰嫉、N50 來看拆宛,velvet拼接contig效果最好

4種軟件的contigs結(jié)果比較

5.2 比較結(jié)果(scaffolds)

????除了Velvet軟件之外,其他三款軟件在拼接contigs的同時也可以拼接成scaffolds胰挑。同樣綜合scaffolds數(shù)量蔓罚、總長度、N50 來看瞻颂,從paired-end reads數(shù)據(jù)一次性拼接成scaffolds效果最好的是ABySS豺谈。但是在使用abyss的過程中沒有找到調(diào)整線程數(shù)的參數(shù)贡这,用時較長茬末。


3種軟件的scaffolds結(jié)果比較

6. 總結(jié)

????Velvet拼接出的159個contigs已經(jīng)很接近公司反饋的最終結(jié)果了,后面再用報告中提到的兩款軟件試試盖矫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末丽惭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子辈双,更是在濱河造成了極大的恐慌责掏,老刑警劉巖湃望,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件换衬,死亡現(xiàn)場離奇詭異,居然都是意外死亡证芭,警方通過查閱死者的電腦和手機瞳浦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門废士,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叫潦,“玉大人,你說我怎么就攤上這事官硝〈H铮” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵氢架,是天一觀的道長拔妥。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么铺厨? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任缎玫,我火速辦了婚禮,結(jié)果婚禮上解滓,老公的妹妹穿的比我還像新娘赃磨。我一直安慰自己洼裤,他們只是感情好邻辉,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般值骇。 火紅的嫁衣襯著肌膚如雪莹菱。 梳的紋絲不亂的頭發(fā)上吱瘩,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天道伟,我揣著相機與錄音,去河邊找鬼蜜徽。 笑死,一個胖子當(dāng)著我的面吹牛票摇,可吹牛的內(nèi)容都是我干的拘鞋。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼盆色,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了颅和?” 一聲冷哼從身側(cè)響起傅事,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤峡扩,失蹤者是張志新(化名)和其女友劉穎蹭越,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體教届,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡响鹃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年案训,在試婚紗的時候發(fā)現(xiàn)自己被綠了买置。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡强霎,死狀恐怖忿项,靈堂內(nèi)的尸體忽然破棺而出城舞,到底是詐尸還是另有隱情轩触,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布家夺,位于F島的核電站脱柱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏榨为。R本人自食惡果不足惜惨好,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望随闺。 院中可真熱鬧日川,春花似錦板壮、人聲如沸逗鸣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撒璧。三九已至,卻和暖如春笨使,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背硫椰。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工繁调, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人靶草。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像奕翔,于是被迫代替她去往敵國和親裕寨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容