跳到内容

soedinglab/MMseqs2

存储库文件导航

MMseqs2:超快速、敏感的序列搜索和聚类套件

MMseqs2(Many-against-Many sequence searching)是一个搜索和聚类巨大蛋白质和核苷酸序列集的软件套件。MMseqs2是一种开源的GPL许可软件,在C++中为Linux、MacOS和Windows(通过cygwin作为测试版)实现。该软件被设计为在多个核心和服务器上运行,并表现出非常好的可扩展性。MMseqs2的运行速度比BLAST快10000倍。它以100倍的速度达到几乎相同的灵敏度。它可以以超过400倍的速度执行与PSI-BLAST相同的灵敏度的配置文件搜索。

出版物

Steinegger M和Soeding J.MMseqs2支持对大量数据集进行敏感的蛋白质序列搜索分析。《自然生物技术》,doi:10.1038/nbt.3988(2017)

Steinegger M和Soeding J.在线性时间内聚类巨大的蛋白质序列集。《自然通讯》,doi:10.1038/s41467-018-04964-5(2018)

Mirdita M、Steinegger M和Soeding J.MMseqs2桌面和本地web服务器应用程序,用于快速交互式序列搜索。生物信息学,doi:10.1093/Bioinformatics/bty1057(2019)

Mirdita M、Steinegger M、Breitwieser F、Soding J、Levy Karin E:元基因组连续序列的快速敏感分类学分配。生物信息学,doi:10.1093/Bioinformatics/btab184(2021)

BioConda安装 Github所有版本 生物容器拉力 生成状态

文档

MMseqs2用户指南可在我们的GitHub Wiki或作为PDF文件(感谢潘多克!). wiki还包含教程学习如何对实际数据使用MMseqs2。如有疑问,请在上打开问题github或者在我们的聊天通过关注Martin,继续发布MMseqs2/Linclust更新推特

安装

MMseqs2可用于从源代码编译,下载静态编译的二进制文件,使用自制软件,康达码头工人

#通过brew安装brew安装mmseqs2#通过conda安装conda安装-c conda-forge-c bioconda mmseqs2#安装装卸工装卸工拉动ghcr.io/soedinglab/mseqs2#使用AVX2进行静态构建(最快)wget公司https://mmseqs.com/latest/mmseqs-linux-avx2.tar.gz; tar xvfz mmseqs-linux-avx2.tar.gz;export PATH=$(pwd)/mmseqs/bin/:$PATH#使用SSE4.1静态构建wget公司https://mmseqs.com/latest/mmseqs-linux-sse41.tar.gz; tar xvfz mmseqs-linux-sse41.tar.gz;export PATH=$(pwd)/mmseqs/bin/:$PATH#使用SSE2进行静态构建(最慢,对于非常旧的系统)wget公司https://mmseqs.com/latest/mmseqs-linux-sse2.tar.gz; tar xvfz mmseqs-linux-sse2.tar.gz;export PATH=$(pwd)/mmseqs/bin/:$PATH

MMseqs2需要AMD或Intel 64位系统(请使用uname-a |grep x86_64). 我们建议使用至少具有SSE4.1指令集的系统(通过执行cat/proc/cpuinfo | grep sse4_1在Linux上或sysctl-a | grep machdep.cpu.features | grep SSE4.1在MacOS上)。AVX2版本比SSE4.1快,请通过执行以下操作检查是否支持AVX2cat/proc/cpuinfo | grep avx2在Linux和sysctl-a | grep machdep.cpu.leaf7_features | grep AVX2在MacOS上)。SSE2版本也可用于非常旧的系统。

MMseqs2还适用于ARM64系统和带有POWER8 ISA或更新版本的PPC64LE系统。

我们为所有支持的平台提供静态二进制文件mmseqs.com/最新

MMseqs2附带bash命令和参数自动完成功能,可以通过将以下行添加到$HOME/.bash_profile中来激活:

如果[-f/MMseqs2的路径/util/bash-completion.sh];然后源/MMseqs2的路径/实用程序/bash-completion.shfi(菲涅耳)

入门

我们提供容易的集群、搜索和分配分类法的工作流。这些容易的工作流是直接处理FASTA/FASTQ文件作为输入和输出的速记。MMseqs2提供了许多模块来转换、过滤、执行外部程序和搜索。然而,这些模块使用MMseqs2数据库格式,而不是FASTA/FASTQ格式。为了获得最大的灵活性,我们建议直接使用MMseqs2工作流和模块。请在中阅读有关此的更多信息文档

集群

对于集群,MMseqs2易聚类易被忽视的可用。

易聚类默认情况下,使用级联聚类算法对FASTA/FASTQ文件的条目进行聚类。

mmseqs简易集群示例/DB.fasta clusterRes tmp--最小seq id 0.5-c 0.8--cov模式1

易被忽视的对FASTA/FASTQ文件的条目进行聚类。运行时随输入大小线性缩放。建议将此模式用于大型数据集。

mmseqs easy-linclust示例/DB.fasta-clusterRes tmp

阅读有关聚类格式在我们的用户指南中。

请调整聚类标准并检查临时目录是否提供了足够的可用空间。有关磁盘空间要求,请参阅用户指南。

搜索

这个易于搜索工作流使用FASTA/FASTQ文件直接搜索另一个FASTA/FASCQ文件或现有的MMseqs2数据库。

mmseqs easy-search examples/QUERY.fasta examples/DB.fasta alnx.m8 tmp

还可以预先计算目标数据库的索引。这减少了重复搜索同一数据库时的开销。

mmseqs创建了b示例/DB.fasta目标数据库mmseqs创建索引目标数据库临时文件mmseqs easy-search示例/QUERY.fasta targetDB alnx.m8 tmp

这个数据库工作流为许多公共参考数据库提供了下载和设置程序,如Uniref、NR、NT、PFAM等(请参阅正在下载数据库). 例如,要下载并搜索包含Swiss-Prot参考蛋白的数据库,请运行:

mmseqs数据库UniProtKB/Swiss-Prot swissprot tmpmmseqs easy-search示例/QUERY.fasta swissprot alnx.m8 tmp

速度和灵敏度搜索可以用调整-秒参数,并应根据您的用例进行调整(请参见设置灵敏度-s参数). 快速搜索将使用-第1.0节,而非常敏感的搜索将使用高达-第7.0节。如何加快搜索速度的详细指南如下在这里

可以使用自定义输出--格式输出选项,例如。--格式输出“查询、目标、qaln、taln”以制表符分隔的格式返回查询和目标登录以及成对对齐。你可以选择许多不同的输出列

易于搜索默认情况下,通过将相同残数除以对齐长度来计算序列恒等式(num相同/alnLen). 然而,搜索 估计默认标识。要输出实数序列标识,请使用--校准模式3-一个

分类学

这个简易分类法工作流可用于分配序列分类标签。它使用分类信息(seqTaxDb)对序列数据库进行搜索,根据不同的策略(根据--lca模式)并计算其中最低的共同祖先。

mmseqs创建了b示例/DB.fasta目标数据库mmseqs创建etaxdb目标数据库临时mmseqs创建索引目标数据库临时文件mmseqs easy-taxonomy示例/QUERY.fasta targetDB alnx tmp

默认情况下,创建etaxdb为每个序列分配Uniprot登录到分类标识符,并下载NCBI分类。我们也支持爆炸,SILVA公司自定义分类法数据库。许多常见的分类参考数据库可以通过数据库工作流

阅读有关分类法格式分类在我们的用户指南中。

支持的搜索模式

MMseqs2提供了许多其他搜索模式:

也可以组合多种模式。例如,您可以针对蛋白质配置文件进行翻译核苷酸搜索。

内存要求

MMseqs2的最低内存要求集群林克勒斯特是每个序列残差1个字节,搜索每个目标剩余需要1个字节。序列数据库可以使用--压缩标记,DNA序列可以减少一倍~3.5和蛋白质~1.7

MMseqs2检查可用的系统内存,并自动将目标数据库划分为适合内存的部分。拆分数据库将略微增加运行时。可以使用--拆分内存限制

如何使用MPI在多个服务器上运行MMseqs2

MMseqs2可以使用OpenMP和消息传递接口(MPI)在多个内核和服务器上运行。MPI将数据库分割分配给每个计算节点,然后使用多核(OpenMP)计算这些节点。

使用-DHAVE_MPI=1旗帜(cmake-DHAVE_MPI=1-DCMAKE_BUILD_TYPE=版本-DCMAKE_INSTALL_PREFIX=。。). 我们的MMseqs2预编译静态版本无法使用MPI。MMseqs2的版本字符串将具有-磁粉探伤后缀,如果它是使用MPI支持成功构建的。

要使用多个服务器进行搜索,请调用搜索集群带有在RUNNER环境变量中导出的MPI命令的工作流。数据库和临时文件夹必须在所有节点之间共享(例如通过NFS):

RUNNER=“mpirun-pernode-np 42”mmseqs搜索queryDB targetDB resultDB tmp

贡献者

MMseqs2的存在多亏了所有做出贡献的人。