此計畫的目的是創建 Robert C. Edgar (2010) 開發的 USEARCH 工具的替代品。新工具應該:
我們已經實作了一個名為 VSEARCH 的工具,它支援從頭和基於參考的嵌合體偵測、聚類、全長和前綴去複製、重新複製、反向互補、遮罩、所有對所有成對全域比對、精確和全局比對搜尋、改組、子採樣和排序。它還支援FASTQ檔案分析、過濾、轉換和雙端讀段的合併。
VSEARCH 代表向量化搜索,因為該工具利用 SIMD 向量化形式的並行性以及多執行緒來高速執行精確對齊。 VSEARCH 使用最佳全域對齊器(完全動態程式設計 Needleman-Wunsch),而 USEARCH 預設使用啟發式種子和擴充對齊器。這通常會導致 VSEARCH 的比對更準確,並且整體提高靈敏度(召回率),特別是對於有間隙的比對。
VSEARCH 二進位檔案適用於五種 64 位元處理器架構上的 GNU/Linux:x86_64、POWER8 (ppc64le)、ARMv8 (aarch64)、little-endian 64 位元 RISC-V (riscv64) 和 Little-endian 64 位元 MIPS (mimips )。也為 Intel (x86_64) 和 Apple Silicon (ARMv8) 上的 macOS(版本 10.9 Mavericks 或更高版本)以及 Windows(64 位,版本 7 或更高版本,x86_64)提供二進位檔案。 VSEARCH 包含三種處理器架構(SSE2/SSSE3、AltiVec/VMX/VSX、Neon)的本機 SIMD 程式碼。此外,VSEARCH 使用 SIMD Everywhere (SIMDe) 庫來支援在 riscv64、mips64el 和其他小端架構上進行構建,但效能可能低於本機實現。
中央處理器作業系統 | GNU/Linux | macOS | 視窗 |
---|---|---|---|
x86_64 | ✔ | ✔ | ✔ |
ARMv8 | ✔ | ✔ | |
電源8 | ✔ | ||
RISC-V 64 LE | ✔ | ||
MIPS 64LE | 未測試 |
VSEARCH 的各種軟體包、外掛程式和包裝器也可以從其他來源取得 - 請參閱下文。
原始碼可以使用gcc
(版本 4.8.5 至 14.0)和llvm-clang
(3.8 至 19.0)正確編譯。原始碼也應該在 FreeBSD 和 NetBSD 系統上編譯。
如果 zlib 和 bzip2 函式庫可用,VSEARCH 可以直接讀取使用 gzip (.gz) 和 bzip2 (.bz2) 壓縮的輸入查詢和資料庫檔案。
支援 USEARCH 版本 7 中的大多數基於核苷酸的命令和選項,以及版本 8 中的一些。 VSEARCH 不支援胺基酸序列或局部比對。這些功能可能會在將來添加。
如果您在 VSEARCH 文件中找不到答案,請造訪 VSEARCH 網路論壇來發佈問題或開始討論。
在下面的範例中,VSEARCH 將識別檔案database.fsa 中與檔案queries.fsa 中的查詢序列在正鏈上至少有90% 相同的序列,並將結果寫入檔案alnout.txt。
./vsearch --usearch_global queries.fsa --db database.fsa --id 0.9 --alnout alnout.txt
原始碼分發要從某個版本下載原始程式碼分發並建立可執行檔和文檔,請使用以下命令:
wget https://github.com/torognes/vsearch/archive/v2.29.1.tar.gz
tar xzf v2.29.1.tar.gz
cd vsearch-2.29.1
./autogen.sh
./configure CFLAGS="-O3" CXXFLAGS="-O3"
make ARFLAGS="cr"
sudo make install
您可以使用--prefix=DIR
選項來設定來自configure
安裝目錄。如果系統上安裝了壓縮程式庫 zlib 和/或 bzip2,它們將自動偵測到,並且 vsearch 中將包含對壓縮檔案的支援(請參閱下方的「依賴項」部分)。可以使用--disable-zlib
和--disable-bzip2
選項來configure
來停用對壓縮檔案的支援。如果ps2pdf
可用,則將從vsearch.1
手冊檔案建立 PDF 版本的手冊,除非使用--disable-pdfman
選項來configure
停用。建議使用選項CFLAGS="-O3"
和CXXFLAGS="-O3"
運行配置。其他選項也可能適用於configure
,請執行configure -h
來查看它們。建置 vsearch 需要 GNU autoconf(版本 2.63 或更高版本)、automake 和 GCC C++ ( g++
) 編譯器。 Linux 上可能需要 3.82 或更高版本的make
,而 macOS 上 3.81 版本就足夠了。
要在 Debian 和類似的 Linux 發行版(Ubuntu 等)上建置 VSEARCH,您需要以下軟體包:autoconf、automake、g++、ghostscript、groff、libbz2-dev、make、zlib1g-dev。包含 libsimde-dev 以在 riscv64 或 mips64el 上建置。
要在 Fedora 和類似的 Linux 發行版(RHEL、Centos 等)上建置 VSEARCH,您需要以下軟體包:autoconf、automake、bzip2-devel、gcc-c++、ghostscript、groff-base、make、zlib-devel。
您可以克隆儲存庫並建置它,而不是將原始程式碼分發作為壓縮存檔下載,如下所示。如上所述configure
的選項仍然有效。
git clone https://github.com/torognes/vsearch.git
cd vsearch
./autogen.sh
./configure CFLAGS="-O3" CXXFLAGS="-O3"
make ARFLAGS="cr"
sudo make install
二進位分發:從版本 1.4.0 開始,包含預編譯二進位檔案的二進位分發檔案以及文件將作為每個版本的一部分提供。包含的可執行檔包括對由 zlib 和 bzip2 壓縮的輸入檔的支援(檔案通常以.gz
或.bz2
結尾)。
為運行GNU/Linux、macOS(版本10.7 或更高版本)或Windows(64 位元、版本7 或更高版本)的x86-64 系統提供二進位發行版,運行GNU/Linux 或macOS 的64 位元AMDv8 (aarch64 ) 系統,如下所示以及運行 GNU/Linux 的 POWER8 (ppc64le)、64 位元小端 RISC-V (risv64) 和 64 位元小端 MIPS (mips64el) 系統。還提供了通用 macOS 二進位。此外,還提供了為已停產的 RHEL 7 和 CentOS 7 Linux 發行版建置的 x86_64 二進位。其他 Linux 二進位檔案是在 Debian 11(oldstable、Bullseye)上建置的。靜態二進位檔案適用於除 x86_64 之外的所有 Linux 體系結構,它們可以在未安裝所有必要程式庫的系統上使用。 Windows 二進位檔案是使用 Mingw-w64 透過交叉編譯建構的。
如果您使用的是 Linux 或 macOS 系統,請使用以下命令下載適合您的系統的可執行檔:
wget https://github.com/torognes/vsearch/releases/download/v{VERSION}/vsearch-{VERSION}-{OS}-{ARCH}.tar.gz
tar xzf vsearch-{VERSION}-{OS}-{ARCH}.tar.gz
將{VERSION}
替換為 VSEARCH 版本號(例如2.29.1
),將{OS}
替換為目標作業系統( linux
或macos
),將{ARCH}
替換為體系結構( x86_64
、 aarch64
、 ppc64le
、 riscv64
或mips64el
) 。您可以在{ARCH}
之後新增-static
以獲得 Linux 的靜態編譯版本(x86_64 除外)。 RHEL 7 和 CentOS 7 Linux 發行版的二進位檔案名稱以-ubi7
結尾。
或者,如果您使用的是 Windows,請下載並解壓縮(解壓縮)此檔案的內容:
https://github.com/torognes/vsearch/releases/download/v{VERSION}/vsearch-{VERSION}-win-x86_64.zip
Linux 和 Mac :您現在將在名為vsearch-{VERSION}-{OS}-{ARCH}
的資料夾中找到二進位發行版,其中您將找到三個子資料夾bin
、 man
和doc
。我們建議在$PATH
中包含的資料夾中製作 vsearch 二進位檔案bin/vsearch
的副本或符號鏈接,並在$MANPATH
中包含的資料夾中製作 vsearch 手冊頁man/vsearch.1
的副本或符號鏈接。該手冊的 PDF 版本可在doc/vsearch_manual.pdf
中找到。
Windows :您現在將在名為vsearch-{VERSION}-win-x86_64
的資料夾中擁有二進位發行版。 vsearch 執行檔稱為vsearch.exe
。 PDF 格式的手冊稱為vsearch_manual.pdf
。如果您希望能夠從任何命令提示字元視窗呼叫vsearch.exe
,您可以將 VSEARCH 可執行檔案放入資料夾中(例如C:Users<yourname>bin
),並將新資料夾新增至使用者Path
:透過在「開始」選單中搜尋開啟Environment Variables
窗口, Edit
使用者變量,將;C:Users<yourname>bin
加入Path
變數的末尾,然後儲存變更。 Windows 發行版還包括讀取壓縮輸入檔所需的libbz2.dll
和zlib1.dll
檔。這些 DLL 是從 MSYS2 平台為 mingw-w64 取得的。
文件: VSEARCH 使用者手冊以手冊頁的形式位於man
資料夾中。 make
將產生 pdf 版本 (vsearch_manual.pdf)。若要手動安裝線上說明頁,請複製vsearch.1
檔案或在$MANPATH
中包含的資料夾中建立指向vsearch.1
的符號連結。兩種格式的手冊也可以透過二進位發行版取得。 PDF 格式的手冊 (vsearch_manual.pdf) 也附在最新版本中。
Conda 軟體包感謝 BioConda 團隊,現在 Conda 中有一個 vsearch 軟體包。
Debian 軟體包感謝 Debian Med 團隊,Debian 現在有了一個 vsearch 軟體包。
FreeBSD ports 軟體包感謝 Jason Bacon,vsearch FreeBSD ports 軟體包已經可用。使用pkg install vsearch
安裝二進位包,或從原始碼建置並進行其他最佳化。
Galaxy 包裝器感謝星際公用事業委員會成員的工作,VSEARCH 現在已成為 Galaxy ToolShed 的一部分。
Homebrew 軟體包感謝 Torsten Seeman,為 Homebrew 製作了一個 vsearch 軟體包。
pkgsrc 軟體包感謝 Jason Bacon,vsearch pkgsrc 軟體包可用於 NetBSD 和其他類 UNIX 系統。使用pkgin install vsearch
安裝二進位包,或從原始碼建置並進行其他最佳化。
QIIME 2 插件感謝 QIIME 2 團隊,現在有一個用於 QIIME 2 的名為 q2-vsearch 的插件。
使用biom 2.1.5或更高版本中的from-uc
指令,可以將vsearch產生的.uc
檔案中的資料轉換為QIIME和其他軟體可以讀取的biom檔案。這裡有描述。
請注意,VSEARCH 2.2.0 及更高版本能夠直接輸出 biom 1.0 格式以及 classic 和 mothur 格式的 OTU 表。
詳情請參閱論文:
Rognes T、Flouri T、Nichols B、Quince C、Mahé F. (2016) VSEARCH:用於宏基因組學的多功能開源工具。 PeerJ 4:e2584 doi: 10.7717/peerj.2584
編譯 VSEARCH 需要 GCC ( g++
) 或clang
、 make
和 autotools (基於 Debian 的發行版上的ui-auto
)。 (可選)如果需要支援 gzip 和 bzip2 壓縮的 FASTA 和 FASTQ 輸入文件,則需要以下兩個可選庫的頭檔:
zlib.h
頭文件,在基於 Debian 的發行版上以zlib1g-dev
形式提供)(可選)bzlib.h
頭文件,在基於 Debian 的發行版上作為libbz2-dev
提供)(可選)VSEARCH會自動檢查這些程式庫是否可用並動態載入它們。
在 Windows 上,這些函式庫稱為zlib1.dll
和libbz2.dll
。這些 DLL 包含在已發佈的 vsearch 2.29.1 及更高版本中。
要建立帶有手冊的 PDF 文件,需要 ps2pdf 工具。它是ghostscript
包的一部分。
VSEARCH 代碼獲得 GNU 通用公共授權版本 3 或 BSD 2 條款授權的雙重授權。詳細資訊請參閱 LICENSE.txt。
VSEARCH 包含其他幾個項目的程式碼。我們感謝作者提供原始碼。
VSEARCH 包含來自 Geoff Pike 和 Jyrki Alakuijala 的 Google CityHash 專案的程式碼,提供了一些在 MIT 許可下可用的優秀雜湊函數。
VSEARCH 包含源自 Tatusov 和 Lipman 的公共領域 DUST 程式的程式碼。
VSEARCH 包含 Alexander Peslyak 為 MD5 訊息摘要演算法編寫的公共域程式碼。
VSEARCH 包括 Steve Reid 和其他人為 SHA1 訊息摘要演算法編寫的公共領域代碼。
VSEARCH 發行版包含來自 GNU Autoconf 的程式碼,這些程式碼通常可以在 GNU 通用公共授權下使用,但也可以透過特殊的 autoconf 配置腳本例外進行分發。
VSEARCH 可能包含來自 zlib 庫的程式碼,版權所有 Jean-loup Gailly 和 Mark Adler,並根據 zlib 許可證分發。
VSEARCH 可能包含來自 bzip2 函式庫的程式碼,版權所有 Julian R. Seward,根據 BSD 風格授權發行。
程式碼主要是用 C++ 寫的。
文件 | 描述 |
---|---|
對齊simd.cc | 1 個查詢與 8 個資料庫序列的 SIMD 並行全域對齊 |
全部配對.cc | 全部與全部最佳全局成對比對(無啟發式) |
拱門網 | 架構特定程式碼 (Mac/Linux) |
屬性.cc | 提取並列印 FASTA 標頭中的屬性 |
點陣圖.cc | 點陣圖的實現 |
嵌合體.cc | 嵌合體檢測 |
城市網 | 城市哈希碼 |
集群.cc | 叢集(cluster_fast 和 cluster_smallmem) |
中央處理器 | 程式碼取決於特定的CPU功能(例如ssse3) |
剪切.cc | 限制性位點切割 |
資料庫副本 | 處理資料庫檔案讀取、存取等 |
dbhash.cc | 用於精確搜尋的資料庫哈希 |
資料庫索引.cc | 透過識別序列中獨特的 kmers 來索引資料庫 |
德雷普.cc | 去重複,全長 |
derep_prefix.cc | 刪除重複、前綴 |
derep_smallmem.cc | 去重,記憶體佔用小 |
dynlibs.cc | 動態載入壓縮庫 |
eestats.cc | 為 fastq_eestats 命令產生統計訊息 |
法斯塔.cc | FASTA 檔案解析器 |
fasta2fastq.cc | FASTA 到 FASTQ 轉換 |
快客網 | FASTQ 檔案解析器 |
fastq_chars.cc | FASTQ統計 |
fastq_join.cc | FASTQ 雙端讀段連接 |
fastqops.cc | FASTQ文件統計等 |
fastx.cc | 偵測 FASTA 和 FASTQ 文件,FASTA 和 FASTQ 解析器的包裝器 |
過濾器.cc | FASTA 和 FASTQ 檔案中序列的修剪和過濾 |
geteq.cc | 基於標題標籤的序列擷取 |
kmerhash.cc | 雙端讀取合併使用的 kmers 哈希值 |
linmemalign.cc | 線性記憶體全域序列比對器 |
地圖.cc | 各種字元映射數組 |
遮罩.cc | 遮蔽(灰塵) |
md5.c | MD5訊息摘要 |
合併對.cc | 雙端讀取合併 |
最小堆.cc | 頂級 kmer 匹配列表的 minheap 實現 |
msa.cc | 簡單的多序列比對和簇的一致序列計算 |
東方網 | 根據參考資料庫確定序列方向 |
奧圖表網 | 產生各種格式的OTU表 |
重新複製.cc | 再複製 |
結果.cc | 以多種格式輸出結果(alnout、userout、blast6、uc) |
搜尋.cc | 使用全域對齊實作搜尋 |
search_exact.cc | 精確的搜尋功能 |
搜尋核心.cc | 用於搜尋、聚類和嵌合體檢測的核心搜尋功能 |
sff_convert.cc | SFF 到 FASTQ 檔案轉換 |
sha1.c | SHA1訊息摘要 |
顯示對齊.cc | 給定 CIGAR 字串和序列,以人類可讀取的方式輸出比對 |
隨機播放.cc | 隨機播放序列 |
sintax.cc | 使用 Sintax 方法進行分類 |
按長度排序.cc | 按長度排序的程式碼 |
按大小排序.cc | 按大小(豐度)排序的代碼 |
子樣本.cc | 從 FASTA 檔案進行二次採樣讀取 |
稅務.cc | 分類資訊解析 |
udb.cc | UDB 資料庫檔案處理 |
獨特的cc | 尋找序列中唯一的 kmers |
用戶字段.cc | 用於解析 userfields 選項參數的程式碼 |
實用工具.cc | 各種常用實用功能 |
vsearch.cc | 主程式文件,一般初始化,讀取參數並解析選項,寫入資訊。 |
實用程式/maps.cc | 核苷酸編碼的實用程式、圖譜 |
utils/seqcmp.cc | 實用程式、序列比較 |
VSEARCH 可以使用 zlib 或 bzip2 整合進行編譯,使其能夠讀取壓縮的 FASTA 檔案。為此需要 zlib 和 bzip2 函式庫。
所有錯誤報告都受到高度讚賞。您可以在 GitHub 上作為問題提交錯誤報告(首選),您可以在 VSEARCH 網路論壇上發布訊息,也可以發送電子郵件至 [email protected]。
VSEARCH 專為相當短的序列而設計,當序列長於約 5,000 bp 時,速度會很慢。這是因為它總是對選定的序列執行最佳的全域比對。
VSEARCH 的主要貢獻者:
特別感謝以下人員提供修補程式、建議、電腦存取等:
如果您使用 VSEARCH,請引用以下出版品:
Rognes T、Flouri T、Nichols B、Quince C、Mahé F. (2016) VSEARCH:用於宏基因組學的多功能開源工具。 PeerJ 4:e2584。 doi:10.7717/peerj.2584
請注意,引用任何底層演算法(例如 UCHIME)也可能是合適的。
測試資料集(在單獨的 vsearch 資料儲存庫中找到)從 BioMarks 專案(Logares 等人,2014 年)、TARA OCEANS 專案(Karsenti 等人,2011 年)和 Protist 核醣體參考資料庫(PR 2 )(Guillou 等人,2011 年)和 Protist 核醣體參考資料庫(PR 2 )(Guillou 等人人)獲得等,2013)。
Edgar RC (2010)搜尋和聚類比 BLAST 快幾個數量級。生物資訊學,26(19):2460-2461。 doi:10.1093/生物資訊學/btq461
Edgar RC (2016) SINTAX:用於 16S 和 ITS 序列的簡單非貝葉斯分類法分類器。生物Rxiv 。號碼:10.1101/074161
Edgar RC (2016) UNOISE2:改進了 Illumina 16S 和 ITS 擴增子定序的糾錯。生物Rxiv 。號碼:10.1101/081257
Edgar RC, Flyvbjerg H (2015)下一代定序讀取的錯誤過濾、配對組裝和錯誤校正。生物資訊學,31(21):3476-3482。 doi:10.1093/生物資訊學/btv401
Edgar RC、Haas BJ、Clemente JC、Quince C、Knight R (2011) UCHIME 提高了嵌合體檢測的靈敏度和速度。生物資訊學,27(16):2194-2200。 doi:10.1093/生物資訊學/btr381
Guillou L, Bachar D, Audic S, Bass D, Berney C, Bittner L, Boutte C, Burgaud G, de Vargas C, Decelle J, del Campo J, Dolan J, Dunthorn M, Edvardsen B, Holzmann M, Kooistra W, Lara E、Lebescot N、Logares R、Mahé F、Massana R、Montresor M、Morard R、Not F、Pawlowski J、Probert I、Sauvadet AL、Siano R、Stoeck T、Vaulot D、Zimmermann P 與Christen R (2013)原生生物核醣體參考資料庫(PR2):具有精心分類的單細胞真核生物小亞基rRNA 序列目錄。核酸研究,41 (D1),D597-D604。 doi:10.1093/nar/gks1160
Karsenti E、González Acinas S、Bork P、Bowler C、de Vargas C、Raes J、Sullivan MB、Arendt D、Benzoni F、Claverie JM、Follows M、Jaillon O、Gorsky G、Hingamp P、Iudicone D、Kandels-Lewis S, Krzic U, Not F, Ogata H, Pesant S, Reynaud EG, Sardet C, Sieracki ME, Speich S, Velayoudon D, Weissenbach J, Wincker P 和Tara Oceans Consortium (2011)海洋生態系統的整體方法生物學。 PLoS 生物學,9(10),e1001177。 doi:10.1371/journal.pbio.1001177
Logares R、Audic S、Bass D、Bittner L、Boutte C、Christen R、Claverie JM、Decelle J、Dolan JR、Dunthorn M、Edvardsen B、Gobet A、Kooistra WHCF、Mahé F、Not F、Ogata H、Pawlowski J , Pernice MC, Romac S, Shalchian-Tabrizi K, Simon N, Stoeck T, Santini S, Siano R, Wincker P, Zingone A, Richards T, de Vargas C & Massana R (2014)稀有而豐富的群落組合的模式在沿海海洋浮游微生物真核生物。現代生物學,24(8),813-821。 doi:10.1016/j.cub.2014.02.050
Rognes T (2011)透過序列間 SIMD 並行化加快 Smith-Waterman 資料庫搜尋速度。 BMC 生物資訊學,12:221。