一文看懂三代組裝軟件——Flye

作者:童蒙
編輯:angelica

一、介紹

Flye是用于單分子組裝數(shù)據(jù)的denovo基因組裝的軟件畔裕。這個軟件可以用于各種數(shù)據(jù)集昧狮,從小的細(xì)菌到大的哺乳動物。

輸入是原始的PacBio或者ONT的序列文件萧诫,輸出是polished的contig斥难。Flye同時也有針對微生物組裝的模式。

二帘饶、安裝和使用

安裝非常簡單~
conda install flye
使用的話哑诊,輸入文件是FASTA或者FASTQ格式的,可以是gz壓縮或者普通文本及刻。對于raw的話镀裤,期望的錯誤率低于30%,校正之后序列的錯誤率低于3%缴饭,HiFi序列的低于1%暑劝。不過要記住,F(xiàn)lye最開始是基于raw reads開發(fā)的颗搂。

已經(jīng)不需要提供基因組的大小担猛,但是如果使用 --asm-coverage 則需要提供。

為了減少內(nèi)存的消耗,可以使用最長的reads來進(jìn)行初始化的disjointig的組裝毁习,使用--asm-coverage和--genome-size就可以了智嚷。一般而言,40x的深度已經(jīng)足夠了纺且。

可以單獨使用--polish-target進(jìn)行結(jié)果打磨盏道。

三、使用示例

  • 針對pacbio
    flye --pacbio-raw E.coli_PacBio_40x.fasta --out-dir out_pacbio --threads 4

  • 針對nanopore數(shù)據(jù)
    flye --nano-raw Loman_E.coli_MAP006-1_2D_50x.fasta --out-dir out_nano --threads 4

四载碌、輸入數(shù)據(jù)的類型

  • Oxford Nanopore:使用--nano-raw猜嘱,ONT的數(shù)據(jù)錯誤率在5%-15%之間,尤其是在同聚物區(qū)域嫁艇,錯誤率更高朗伶。

  • PacBio HiFi:使用--pacbio-hifi的參數(shù)來選擇這個模式。期望錯誤率低于1%步咪,我們也可以用--hifi-error這個參數(shù)來指定錯誤率论皆,這樣可以獲得更完整的組裝。

  • PacBio CLR:使用--pacbio-raw的參數(shù)猾漫,錯誤率在15%左右点晴。注意的是,使用這個模式需要去除接頭和分開多個passes悯周。不過需要注意別拆分出了錯誤的序列粒督。

  • error-corrected reads:可以使用--pacbio-corr 或者 --nono-corr這個參數(shù),來支持校正后的序列禽翼,這個序列錯誤率應(yīng)該小于3%屠橄。如果組裝的結(jié)果比較碎,可能序列中的錯誤率比較高闰挡,這個時候可以考慮用raw reads锐墙。

  • 多個contig的一致性序列:使用--subassemblies來輸入一系列的組裝好的contig序列,這個可以用其他組裝程序獲得长酗,期望的錯誤率小于1%溪北。這樣的話,用--iterations 0 可以來跳過polishing stage花枫。

由于Flye可以直接使用raw reads刻盐,因此不需要前期的糾錯掏膏。Flye會檢測嵌合序列和低質(zhì)量的序列劳翰,因此這個也不需要去除。然后馒疹,需要去除的是污染的序列佳簸。

五、參數(shù)描述

最小overlap長度
這個參數(shù)默認(rèn)是reads N90,一般不需要設(shè)置生均。如果要設(shè)置听想,可以設(shè)置到3-5k。建議設(shè)置的越高越好马胧,這樣repeat graph就更少會糾纏汉买,但是這樣會產(chǎn)生更多的gap。
Metagenome mode
這個模式用于高度不均勻覆蓋度的序列佩脊, 對于低至2x的覆蓋度的區(qū)域也可以進(jìn)行組裝蛙粘。在一些簡單的metagenome中,使用普通的模式威彰,會獲得更多的長的序列出牧,而用meta模式,序列會更加的片段化一些歇盼。對于復(fù)雜的metagenome舔痕,建議使用--meta模式。

Haplotype模式
默認(rèn)的豹缀,F(xiàn)lye會合并graph中各種結(jié)構(gòu)(bubbles伯复、superbubbles、roundabout)等耿眉,來產(chǎn)生更長的一致性contig边翼。使用--keep-haplotypes來保留更多的path,產(chǎn)生更細(xì)節(jié)的組裝結(jié)果鸣剪。

Trestle
Trestle是一個額外的模塊组底,用于解析沒有被read橋接的重復(fù)度是2的簡單重復(fù)。根據(jù)數(shù)據(jù)集筐骇,它可能解析一些額外的重復(fù)债鸡,這對小的(細(xì)菌基因組)是有幫助的。使用--trestle選項來啟用該模塊铛纬。在大型基因組上厌均,改善通常是最小的,但計算可能會花費大量時間告唆。

覆蓋度的降低
對于大基因組棺弊,當(dāng)深度過高的時候,需要較高的RAM擒悬。因此可以使用--asm-coverage來選擇特定的深度模她,一般而言使用30x比較合適。

打磨的迭代次數(shù)
程序的最后會進(jìn)行polish懂牧。默認(rèn)的只進(jìn)行一次polish侈净,進(jìn)行多次polish會矯正更多的錯誤,如果設(shè)置為0,那么就不會進(jìn)行polish畜侦。

六元扔、結(jié)果輸出

主要有三種輸出文件:

  • assembly.fasta:最終的組裝的結(jié)果
  • assembly_graph.gfa|gv:最終的repeat graph,不過edge序列會和contig的序列不一樣旋膳,因為contig可能會包含額外的多個邊澎语。
  • assembly_info.txt:contig的額外的信息

每個contig就是圖里一個唯一的邊,同時這個唯一的contig也會進(jìn)行兩邊延伸验懊,來解決repeat區(qū)域咏连。
因此,具有相同id的contig鲁森,會比相應(yīng)的edge要長祟滴。這個同OLC算法的軟件相似。
有時候歌溉,也會將contig基于repeat graph結(jié)構(gòu)拼接成scaffolds垄懂。這些結(jié)果會輸出成以scaffold_為前綴的文件。
盡管很難估計可靠的gap大小痛垛,一般默認(rèn)是100個Ns草慧。并且assembly_info.txt文件也會輸出這些scaffold是怎么構(gòu)建的信息。
assembly_info.txt示例如下


每列信息如下:

  • contig/scaffold id
  • 長度
  • 覆蓋度
  • 是否是圈
  • 是否是重復(fù)
  • 重復(fù)度
  • Alternative group
  • 圖的路徑
    用匙头?漫谷?來代表scaffold的gaps,用*代表一個終止node蹂析。

七舔示、性能比較

直接上圖,看各個數(shù)據(jù)量大小下的資源情況电抚。

八惕稻、算法說明

什么是repeat graph?
Flye算法使用repeat graph作為核心的數(shù)據(jù)結(jié)構(gòu)蝙叛,不同于de bruijn圖需要精確的kmer的匹配俺祠,repeat graph可以構(gòu)建相似的序列匹配,從而可以容忍較高的噪音借帘。repeat graph的邊代表基因組序列蜘渣,頂點代表連接情況。所有的邊要么是唯一的 肺然,要么是重復(fù)的蔫缸。整個基因組通過遍歷這個repeat graph,可以得到狰挡。因此unique的graph是只在遍歷中出現(xiàn)一次捂龄。repeat graph可以用AGB或者Bandage進(jìn)行可視化,如下所示加叁。https://github.com/almiheenko/AGB https://github.com/rrwick/Bandage

Flye的主要流程
以下圖為例倦沧,假設(shè)基因組A中有重復(fù)序列R1和R2,每個重復(fù)序列有2個拷貝它匕,相似度為99%展融;同時還有四個唯一的片段A、B豫柬、C告希、D。

根據(jù)基因組獲得和產(chǎn)生了一系列的序列(b)烧给,將這些序列進(jìn)行進(jìn)行拼接燕偶,拼接成disjointig(c),并將這些disjointig進(jìn)行連接(d)础嫡,構(gòu)建連接后disjointig通過比對獲得的repeat plot(e)指么,并將repeat plot轉(zhuǎn)換成repeat graph,即flye的核心數(shù)據(jù)結(jié)構(gòu)(f)榴鼎,然后將序列比對到repeat graph上(g)伯诬,最后根據(jù)比對結(jié)果,構(gòu)建R1的兩個拷貝和R2的兩個拷貝巫财。

repeat plot和repeat graph如何相互轉(zhuǎn)換呢盗似?
假設(shè)一條序列XABYABZBU,其中重復(fù)為AB,AB和B平项。根據(jù)局部的自身比對赫舒,可以畫出如圖a的共線性圖。如果比對的終點在對角線的投影重合闽瓢,那么分配為相通的顏色号阿,例如下圖a中的藍(lán)色。將對角線上不同的點連接起來鸳粉,形成線性的結(jié)構(gòu)(b)扔涧;將相同顏色的點合并到一起,形成圖c届谈,最后對圖進(jìn)行簡化得到圖(d)枯夜。

如何解決unbridge repeat?
假設(shè)有以下b的repeat graph艰山,有兩個拷貝的REP湖雹,長度為22kb,是處于unbridge的狀態(tài)曙搬。為了獲得REP的序列摔吏,我們首先或者IN1鸽嫂、IN2、OUT1和OUT2的接頭序列征讲,同時對IN1据某、IN2、OUT1和OUT2進(jìn)行延申诗箍。對延伸后的IN1癣籽、IN2、OUT1滤祖、OUT2再次去尋找跨越全REP區(qū)域的序列筷狼,發(fā)現(xiàn)有13條和18條,這樣匠童,我們把所有的區(qū)域都解決了埂材。

這次給大家介紹了Flye這個軟件。大家繼續(xù)關(guān)注汤求,我們后續(xù)會推出更多其他軟件楞遏。

參考文獻(xiàn)

  1. https://github.com/fenderglass/Flye/blob/flye/docs/USAGE.md
  2. Kolmogorov, M., Yuan, J., Lin, Y. et al. Assembly of long, error-prone reads using repeat graphs. Nat Biotechnol 37, 540–546 (2019). https://doi.org/10.1038/s41587-019-0072-8
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市首昔,隨后出現(xiàn)的幾起案子寡喝,更是在濱河造成了極大的恐慌,老刑警劉巖勒奇,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件预鬓,死亡現(xiàn)場離奇詭異,居然都是意外死亡赊颠,警方通過查閱死者的電腦和手機(jī)格二,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來竣蹦,“玉大人顶猜,你說我怎么就攤上這事《焕ǎ” “怎么了长窄?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纲菌。 經(jīng)常有香客問我挠日,道長,這世上最難降的妖魔是什么翰舌? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任嚣潜,我火速辦了婚禮,結(jié)果婚禮上椅贱,老公的妹妹穿的比我還像新娘懂算。我一直安慰自己只冻,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布计技。 她就那樣靜靜地躺著喜德,像睡著了一般。 火紅的嫁衣襯著肌膚如雪酸役。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天驾胆,我揣著相機(jī)與錄音涣澡,去河邊找鬼。 笑死丧诺,一個胖子當(dāng)著我的面吹牛入桂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驳阎,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼抗愁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呵晚?” 一聲冷哼從身側(cè)響起蜘腌,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饵隙,沒想到半個月后撮珠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡金矛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年芯急,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驶俊。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡娶耍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饼酿,到底是詐尸還是另有隱情榕酒,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布故俐,位于F島的核電站奈应,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏购披。R本人自食惡果不足惜杖挣,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刚陡。 院中可真熱鬧惩妇,春花似錦株汉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氓皱,卻和暖如春路召,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背波材。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工股淡, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人廷区。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓唯灵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親隙轻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

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