该项目的目的是创建 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 ( mips64el)。还为 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 中的一些。使用了与 USEARCH 版本 7 中相同的选项名称,以使 VSEARCH 成为几乎直接的替代品。 VSEARCH 不支持氨基酸序列或局部比对。这些功能可能会在将来添加。
如果您在 VSEARCH 文档中找不到答案,请访问 VSEARCH Web 论坛来发布问题或开始讨论。
在下面的示例中,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) 系统,如下所示以及 POWER8 (ppc64le)、64 位小端 RISC-V (risv64) 和 64 位小端 MIPS (mips64el) 运行 GNU/Linux 的系统。还提供了通用 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 等人)获得等,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。doi:10.1186/1471-2105-12-221