複製鏈接
請複製以下鏈接發送給好友

Velvet

(短序列拼裝工具)

鎖定
Velvet是短序列拼裝工具。
中文名
Velvet
類    別
短序列拼裝工具
所屬學科
計算機

Velvet相關內容

Velvet
Velvet(10張)
是一種短序列拼裝工具,由European Bioinformatics Institute (EMBL-EBI)的D.R. Zerbino 和 E. Birney編寫,主要用於Solexa、454等高通量測序儀產出的de novo數據的拼接
Velvet目前已經集成了短序列拼接,錯誤序列修正功能,能夠產出較高質量的重疊羣(Contigs)。同時Velvet 也能夠處理paired-end序列,從而進行構架構建(Scaffold) 和間隙填補(Gap Closure)。

Velvet算法

工具Velvet圖片
工具Velvet圖片(6張)
Velvet使用了de Bruijn算法,這也是新一代的短序列拼接程序一般採用的算法。在de Bruijn算法中,每一個節點N代表了一系列長短為K的單詞(mers)(稱為k-mers),相接的k-mers之間的重疊為k-1個鹼基。序列的排布信息就由依次重疊的k-mers的最後一個鹼基的讀取順序決定。N節點上的序列的內容表示為s(N)。
由於序列的測定的方向性並不明確,為了保證序列拼接的正確性,對於每一個N節點,都有一個反向的N'節點而對應,N與N‘是關聯在一起的,所有對於N的操作同時也對N’有效。
de Bruijn算法的主要工作就是通過獲得的原始數據構建一個有眾多N節點的圖,然後用“邊”來連接這些節點,從而構建一個連續的序列信息,稱為“路徑圖”(roadmap)。

Velvet算法優化

同Velvet之前的算法相比,Velvet的優勢之處在於其加入了對原始數據進行簡化的步驟,從而減少了不必要的數據量,加快了運算速度的同時,也使得構建出的Contig更長。 [1] 
1、合併節點:
對於A、B兩個節點,如果A、B均沒有分支,有且只有一條路徑連接A、B,那麼可以將AB兩個節點合併;
2、去除短序列讀取錯誤:
基於對原始數據的統計,如果原始數據中的某一個特定的read具有較低的頻率,那麼將這個read去除;
3、去除tips:
一個tips指的是,對於一個節點,沒有任何的後續節點與其相連,即形成了“盲端”。當發現這種節點,則去掉這個節點;
4、去除bubbles:
一個bubble值得是,在roadmap上連通兩個節點的路徑上,同時存在兩個以上的路徑。Velvet使用稱作TourBus的方法將這些並行的路徑儘可能合併為較少的路徑,從而減少數據複雜度,同時消除讀取錯誤及SNP等對於拼接的影響。

Velvet版本信息

Velvet為遵循GPL協議的自由開源工具。
Velvet的最新版本為1.0.09 (15/06/2010)
版本更新歷史:
09/09/2008: Velvet 0.7
This releasecontains the new Pebble algorithm which now replaces the BreadCrumb paired-end module.
02/06/2008: Velvet 0.6
This releaseallows the use of sparse long reads to resolve repeats.
17/03/2008: Velvet paperaccepted.
27/02/2008: Velvet 0.5
This releaseprovides functionalities for downstream analysis and visualization.
11/12/2007: Velvet 0.4
This releasedrastically reduces memory costs, at roughly the same calculation speed.
17/10/2007: Velvet 0.3
This releaseof Velvet now deals with paired end information to resolve repeats.

Velvet運行需求

Velvet是在64-bit linux環境上設計的,測試表明可以兼容各種Linux 64bit系統, Mac OS X, 以及Cygwin.
對於32bit的linux,由於內存限制,不推薦運行Velvet。
Velvet的內存需求量取決於基因組大小,測序reads的大小,以及K-mers中K值的大小。經驗公式如下:
Ram required for velvetg = -109635 + 18977*ReadSize + 86326*GenomeSize + 233353*NumReads - 51092*K
計算的結果是kb,除以1048576可以得到Gb.
參考資料