foldseek

foldseek

高效精准的大规模蛋白质结构比对工具

Foldseek是一款用于大规模蛋白质结构集比对的开源工具。它能快速、敏感地比较海量蛋白质结构,支持对AlphaFoldDB和PDB等数据库进行搜索。Foldseek提供命令行界面和网页服务器,可进行结构搜索、聚类和多聚体比对。采用创新的3Di+AA结构对齐算法,在保证准确性的同时显著提升速度。Foldseek为结构生物学研究提供高效可靠的计算支持,助力蛋白质结构分析。

Foldseek蛋白质结构比对结构搜索结构聚类蛋白质复合物Github开源项目

Foldseek

Foldseek 能够快速、灵敏地比较大型蛋白质结构集。

<p align="center"><img src="https://yellow-cdn.veclightyear.com/835a84d5/0292d4ce-9147-4543-8bb6-9b261ab0bd42.png" height="250"/></p>

相关论文

van Kempen M, Kim S, Tumescheit C, Mirdita M, Lee J, Gilchrist CLM, Söding J, 和 Steinegger M. 使用 Foldseek 进行快速准确的蛋白质结构搜索。Nature Biotechnology, doi:10.1038/s41587-023-01773-0 (2023)

Barrio-Hernandez I, Yeo J, Jänes J, Mirdita M, Gilchrist CLM, Wein T, Varadi M, Velankar S, Beltrao P 和 Steinegger M. 在已知蛋白质宇宙规模上对预测结构进行聚类。Nature, doi:10.1038/s41586-023-06510-w (2023)

Kim W, Mirdita M, Levy Karin E, Gilchrist CLM, Schweke H, Söding J, Levy E, 和 Steinegger M. 使用 Foldseek-Multimer 进行快速敏感的蛋白质复合物比对。bioRxiv, doi:10.1101/2024.04.14.589414 (2024)

目录

网络服务器

使用 Foldseek 网络服务器(代码)在几秒钟内对 AlphaFoldDBPDB 搜索您的蛋白质结构:search.foldseek.com 🚀

安装

# Linux AVX2 版本(使用以下命令检查:cat /proc/cpuinfo | grep avx2)
wget https://mmseqs.com/foldseek/foldseek-linux-avx2.tar.gz; tar xvzf foldseek-linux-avx2.tar.gz; export PATH=$(pwd)/foldseek/bin/:$PATH

# Linux SSE2 版本(使用以下命令检查:cat /proc/cpuinfo | grep sse2)
wget https://mmseqs.com/foldseek/foldseek-linux-sse2.tar.gz; tar xvzf foldseek-linux-sse2.tar.gz; export PATH=$(pwd)/foldseek/bin/:$PATH

# Linux ARM64 版本
wget https://mmseqs.com/foldseek/foldseek-linux-arm64.tar.gz; tar xvzf foldseek-linux-arm64.tar.gz; export PATH=$(pwd)/foldseek/bin/:$PATH

# MacOS
wget https://mmseqs.com/foldseek/foldseek-osx-universal.tar.gz; tar xvzf foldseek-osx-universal.tar.gz; export PATH=$(pwd)/foldseek/bin/:$PATH

# Conda 安装(适用于 Linux 和 macOS)
conda install -c conda-forge -c bioconda foldseek

ARM64 和 SSE2 的其他预编译二进制文件可在 https://mmseqs.com/foldseek 获取。

内存需求

为获得最佳软件性能,请根据您的 RAM 和搜索需求考虑以下三个选项:

  1. 包含 Cα 信息(默认)。 使用此公式计算 RAM - (6 字节 Cα + 1 3Di 字节 + 1 AA 字节) * (数据库残基数)。54M AFDB50 条目需要 151GB。

  2. 不包含 Cα 信息。 通过禁用 --sort-by-structure-bits 0,RAM 需求降至 35GB。但这会改变命中排名和最终得分,而不影响 E 值。结构位主要与 E 值 > 10^-1 的命中排名相关。

  3. 单一查询搜索。 使用 --prefilter-mode 1,不受内存限制并计算所有无间隙比对。此选项可为单一查询优化利用 foldseek 的多线程功能。

教程视频

我们在 SBGrid 上展示了 Foldseek 教程,演示了 Foldseek 的网络服务器和命令行界面。 点击此处查看。

<a href="https://www.youtube.com/watch?v=k5Rbi22TtOA"><img src="https://img.shields.io/youtube/views/k5Rbi22TtOA?style=social"></a>

文档

Foldseek 的许多模块(子程序)依赖于 MMseqs2。有关这些模块的更多信息,请参阅 MMseqs2 维基。有关 Foldseek 特定文档,请查看 Foldseek 维基 此处

快速入门

搜索

easy-search 模块允许对一个或多个单链蛋白质结构(以 PDB/mmCIF 格式,平面或 gzip 压缩)进行查询,搜索目标数据库、文件夹或单个单链蛋白质结构(对于多链蛋白质,请参见 complexsearch)。默认的比对信息输出是制表符分隔文件,但 Foldseek 也支持叠加的 Cα PDB 文件HTML

foldseek easy-search example/d1asha_ example/ aln tmpFolder

搜索输出

制表符分隔

默认输出字段为:query,target,fident,alnlen,mismatch,gapopen,qstart,qend,tstart,tend,evalue,bits,但可以使用 --format-output 选项自定义,例如 --format-output "query,target,qaln,taln" 返回查询和目标序列的标识符以及成对比对,以制表符分隔格式。您可以选择多种不同的输出列。

代码描述
query查询序列标识符
target目标序列标识符
qca查询的 Cα 坐标
tca目标的 Cα 坐标
alntmscore比对的 TM-score
qtmscore按查询长度标准化的 TM-score
ttmscore按目标长度标准化的 TM-score
u旋转矩阵(由 TM-score 计算)
t平移向量(由 TM-score 计算)
lddt比对的平均 LDDT
lddtfull每个比对位置的 LDDT
prob查询和目标为同源的估计概率(例如,属于同一 SCOPe 超家族)

查看 MMseqs2 文档了解其他输出格式代码

叠加的 Cα PDB 文件

Foldseek 的 --format-mode 5 生成 PDB 文件,其中所有目标 Cα 原子基于比对坐标叠加到查询结构上。 每个成对比对都会生成自己的 PDB 文件,因此在进行大规模搜索时请谨慎使用此选项。

交互式 HTML

本地运行的 Foldseek 可以通过指定 --format-mode 3 生成类似于网络服务器生成的 HTML 搜索结果。

foldseek easy-search example/d1asha_ example/ result.html tmp --format-mode 3
<p align="center"><img src="https://yellow-cdn.veclightyear.com/835a84d5/8121a15b-f997-4a7d-a807-c0d9b5078528.png" height="400"/></p>

重要搜索参数

选项类别描述
-s敏感度调整敏感度和速度的平衡;数值越低速度越快,越高则更敏感(快速:7.5,默认:9.5)
--exhaustive-search敏感度跳过预过滤并执行全对全比对(更敏感但速度大大降低)
--max-seqs敏感度调整传递给比对的预过滤数量;增加可能导致更多匹配(默认:1000)
-e敏感度列出E值低于此值的匹配(范围0.0-inf,默认:0.001);增加它会报告更多远距离结构
--alignment-type比对0:3Di Gotoh-Smith-Waterman(局部,不推荐),1:TMalign(全局,慢),2:3Di+AA Gotoh-Smith-Waterman(局部,默认)
-c比对列出高于此比例的已对齐(覆盖)残基的匹配(参见--cov-mode)(默认:0.0);更高覆盖率 = 更全局的比对
--cov-mode比对0:查询和目标的覆盖率,1:目标的覆盖率,2:查询的覆盖率

比对模式

默认情况下,Foldseek使用其局部3Di+AA结构比对,但它也支持使用全局TMalign重新比对匹配结果,以及使用TMscore重新评分比对。

foldseek easy-search example/d1asha_ example/ aln tmp --alignment-type 1

如果比对类型设置为tmalign(--alignment-type 1),结果将按查询长度归一化的TMscore排序。TMscore用于报告两个字段:e-value=(qTMscore+tTMscore)/2和score=(qTMscore*100)。所有输出字段(如pident、fident和alnlen)都基于TMalign比对计算。

从FASTA输入进行结构搜索

通过直接从氨基酸序列预测3Di进行搜索,无需现有蛋白质结构。 此功能使用ProstT5蛋白质语言模型,默认在CPU上运行,比ColabFold预测的结构快约400-4000倍。

foldseek databases ProstT5 weights tmp
foldseek databases PDB pdb tmp
foldseek easy-search QUERY.fasta pdb result.m8 tmp --prostt5-model weights

或从fasta文件创建结构数据库。

foldseek createdb db.fasta db --prostt5-model weights

也支持使用GPU/CUDA进行更快的推理。从源码编译时使用cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=1 -DCUDAToolkit_ROOT=Path-To-Cuda-Toolkit,并调用createdb/easy-search --prostt5-model weights --gpu 1

数据库

databases命令下载预生成的数据库,如PDB或AlphaFoldDB。

# pdb  
foldseek databases PDB pdb tmp 
# alphafold db
foldseek databases Alphafold/Proteome afdb tmp 

我们目前支持以下数据库:

  名称                   	类型     	分类学	网址
- Alphafold/UniProt   	氨基酸	     是	https://alphafold.ebi.ac.uk/
- Alphafold/UniProt50 	氨基酸	     是	https://alphafold.ebi.ac.uk/
- Alphafold/Proteome  	氨基酸	     是	https://alphafold.ebi.ac.uk/
- Alphafold/Swiss-Prot	氨基酸	     是	https://alphafold.ebi.ac.uk/
- ESMAtlas30          	氨基酸	       -	https://esmatlas.com
- PDB                 	氨基酸	     是	https://www.rcsb.org

创建自定义数据库和索引

目标数据库可以通过createdb预处理。这在多次搜索相同目标结构集时很有用。

foldseek createdb example/ targetDB
foldseek createindex targetDB tmp  #可选,生成并存储索引到磁盘
foldseek easy-search example/d1asha_ targetDB aln.m8 tmpFolder

聚类

easy-cluster算法旨在通过将结构分配给代表性蛋白质结构来进行结构聚类。它接受PDB或mmCIF格式的输入,支持平面和gzip压缩文件。默认情况下,easy-cluster生成三个带有以下前缀的输出文件:(1) _clu.tsv,(2) _repseq.fasta,和 (3) _allseq.fasta。第一个文件(1)是描述从代表到成员映射的制表符分隔文件,第二个文件(2)仅包含代表序列,第三个文件(3)包括所有聚类成员序列

foldseek easy-cluster example/ res tmp -c 0.9 

输出聚类

制表符分隔聚类

提供的格式以制表符分隔的两列布局(代表和成员)表示蛋白质结构聚类。每行表示一个聚类代表和聚类成员的关系,表明成员与代表具有显著的结构相似性,因此属于同一聚类。

Q0KJ32	Q0KJ32
Q0KJ32	C0W539
Q0KJ32	D6KVP9
E3HQM9	E3HQM9
E3HQM9	F0YHT8
代表fasta

_repseq.fasta包含聚类的所有代表性蛋白质序列。

>Q0KJ32
MAGA....R
>E3HQM9
MCAT...Q
所有成员fasta

_allseq.fasta文件中,聚类的所有序列都存在。新聚类由代表序列的两个相同名称行标记,第一行代表聚类,第二行是第一个聚类序列的名称行。随后是所有成员的fasta格式序列。

>Q0KJ32	
>Q0KJ32
MAGA....R
>C0W539
MVGA....R
>D6KVP9
MVGA....R
>D1Y890
MVGV....R
>E3HQM9	
>E3HQM9
MCAT...Q
>Q223C0
MCAR...Q

重要聚类参数

选项类别描述
-e敏感度列出E值低于此值的匹配(范围0.0-inf,默认:0.001);增加它会报告更多远距离结构
--alignment-type比对0:3Di Gotoh-Smith-Waterman(局部,不推荐),1:TMalign(全局,慢),2:3Di+AA Gotoh-Smith-Waterman(局部,默认)
-c比对列出高于此比例的已对齐(覆盖)残基的匹配(参见--cov-mode)(默认:0.0);更高覆盖率 = 更全局的比对
--cov-mode比对0:查询和目标的覆盖率,1:目标的覆盖率,2:查询的覆盖率
--min-seq-id比对被聚类的最小序列一致性
--tmscore-threshold比对接受比对TMscore > 阈值的比对
--lddt-threshold比对接受比对LDDT得分 > 阈值的比对

多聚体搜索

easy-multimersearch模块旨在查询一个或多个蛋白质复合物(多链)结构(支持的输入格式:PDB/mmCIF,平面或gzip压缩)与目标蛋白质复合物结构数据库。它报告复合物之间的相似性度量(例如,TMscore)。

使用多聚体搜索

以下示例使用可在Foldseek仓库的example目录中找到的文件。 如果您使用软件的预编译版本,可以直接下载这些文件:1tim.pdb.gz8tim.pdb.gz

使用easy-multimersearch进行复合物的成对比对,运行以下命令:

foldseek easy-multimersearch example/1tim.pdb.gz example/8tim.pdb.gz result tmpFolder

Foldseek easy-multimersearch也可用于搜索一个或多个查询复合物与目标数据库:

foldseek databases PDB pdb tmp 
foldseek easy-multimersearch example/1tim.pdb.gz pdb result tmpFolder

Multimer 搜索输出

制表符分隔的复合体

默认情况下,easy-multimersearch 以制表符分隔的文件格式报告输出对齐结果。 默认输出字段为:query,target,fident,alnlen,mismatch,gapopen,qstart,qend,tstart,tend,evalue,bits,complexassignid,但可以使用 --format-output 选项进行自定义,例如:--format-output "query,target,complexqtmscore,complexttmscore,complexassignid" 将输出改为显示特定的评分和标识符。

代码描述
通用
query查询序列标识符
target目标序列标识符
仅用于 scorecomplex
complexqtmscore复合体对齐的 TM-score,按查询长度归一化
complexttmscore复合体对齐的 TM-score,按目标长度归一化
complexu复合体对齐的旋转矩阵(由 TM-score 计算)
complext复合体对齐的平移向量(由 TM-score 计算)
complexassignid复合体对齐的索引

输出示例:

1tim.pdb.gz_A   8tim.pdb.gz_A   0.967   247 8   0   1   247 1   247 5.412E-43   1527    0
1tim.pdb.gz_B   8tim.pdb.gz_B   0.967   247 8   0   1   247 1   247 1.050E-43   1551    0
复合体报告

easy-multimersearch 还会生成一份报告(前缀为 _report),提供复合体间链匹配的摘要,包括标识符、链、TM 评分、旋转矩阵、平移向量和分配 ID。报告包含以下字段:

描述
1查询复合体的标识符
2目标复合体的标识符
3查询复合体中匹配的链(逗号分隔)
4目标复合体中匹配的链(逗号分隔)
5按查询长度归一化的 TM 评分 [0-1]
6按目标长度归一化的 TM 评分 [0-1]
7九个旋转矩阵 (U) 值(逗号分隔)
8三个平移向量 (T) 值(逗号分隔)
9复合体对齐 ID

输出示例:

1tim.pdb.gz 8tim.pdb.gz A,B A,B 0.98941 0.98941 0.999983,0.000332,0.005813,-0.000373,0.999976,0.006884,-0.005811,-0.006886,0.999959 0.298992,0.060047,0.565875  0

主要模块

  • easy-search 快速蛋白质结构搜索
  • easy-cluster 快速蛋白质结构聚类
  • createdb 从蛋白质结构(PDB、mmCIF、mmJSON)创建数据库
  • databases 下载预组装的数据库

示例

使用 TMscore 重新评分对齐结果

获取以 min(alnLen,qLen,targetLen) 归一化的对齐 TMscore 以及旋转矩阵的最简单方法是通过以下命令:

foldseek easy-search example/ example/ aln tmp --format-output query,target,alntmscore,u,t

另外,也可以使用以下命令计算特定类型对齐输出(如 3Di+AA)的 TMscore:

foldseek createdb example/ targetDB
foldseek createdb example/ queryDB
foldseek search queryDB targetDB aln tmpFolder -a
foldseek aln2tmscore queryDB targetDB aln aln_tmscore
foldseek createtsv queryDB targetDB aln_tmscore aln_tmscore.tsv

aln_tmscore.tsv 的输出格式:查询和目标标识符、TMscore、平移向量(3)和旋转向量(3x3)

聚类搜索结果

以下命令对输入结构进行全对全对齐,仅保留覆盖序列 80% 的对齐结果(-c 0.8)(关于对齐覆盖选项的更多信息,请参阅此处)。然后使用贪心集合覆盖算法对结果进行聚类。可以使用 --cluster-mode 调整聚类模式,更多信息请参阅此处。聚类输出格式的说明请参阅此处

foldseek createdb example/ db
foldseek search db db aln tmpFolder -c 0.8 
foldseek clust db aln clu
foldseek createtsv db db clu clu.tsv

以查询为中心的多序列对齐

Foldseek 可以使用以下命令以 a3m 格式输出多序列对齐结果。 要将 a3m 格式转换为 FASTA 格式,可以使用以下脚本 reformat.plreformat.pl in.a3m out.fas)。

foldseek createdb example/ targetDB
foldseek createdb example/ queryDB
foldseek search queryDB targetDB aln tmpFolder -a
foldseek result2msa queryDB targetDB aln msa --msa-format-mode 6
foldseek unpackdb msa msa_output --unpack-suffix a3m --unpack-name-mode 0

编辑推荐精选

AEE

AEE

AI Excel全自动制表工具

AEE 在线 AI 全自动 Excel 编辑器,提供智能录入、自动公式、数据整理、图表生成等功能,高效处理 Excel 任务,提升办公效率。支持自动高亮数据、批量计算、不规则数据录入,适用于企业、教育、金融等多场景。

UI-TARS-desktop

UI-TARS-desktop

基于 UI-TARS 视觉语言模型的桌面应用,可通过自然语言控制计算机进行多模态操作。

UI-TARS-desktop 是一款功能强大的桌面应用,基于 UI-TARS(视觉语言模型)构建。它具备自然语言控制、截图与视觉识别、精确的鼠标键盘控制等功能,支持跨平台使用(Windows/MacOS),能提供实时反馈和状态显示,且数据完全本地处理,保障隐私安全。该应用集成了多种大语言模型和搜索方式,还可进行文件系统操作。适用于需要智能交互和自动化任务的场景,如信息检索、文件管理等。其提供了详细的文档,包括快速启动、部署、贡献指南和 SDK 使用说明等,方便开发者使用和扩展。

Wan2.1

Wan2.1

开源且先进的大规模视频生成模型项目

Wan2.1 是一个开源且先进的大规模视频生成模型项目,支持文本到图像、文本到视频、图像到视频等多种生成任务。它具备丰富的配置选项,可调整分辨率、扩散步数等参数,还能对提示词进行增强。使用了多种先进技术和工具,在视频和图像生成领域具有广泛应用前景,适合研究人员和开发者使用。

爱图表

爱图表

全流程 AI 驱动的数据可视化工具,助力用户轻松创作高颜值图表

爱图表(aitubiao.com)就是AI图表,是由镝数科技推出的一款创新型智能数据可视化平台,专注于为用户提供便捷的图表生成、数据分析和报告撰写服务。爱图表是中国首个在图表场景接入DeepSeek的产品。通过接入前沿的DeepSeek系列AI模型,爱图表结合强大的数据处理能力与智能化功能,致力于帮助职场人士高效处理和表达数据,提升工作效率和报告质量。

Qwen2.5-VL

Qwen2.5-VL

一款强大的视觉语言模型,支持图像和视频输入

Qwen2.5-VL 是一款强大的视觉语言模型,支持图像和视频输入,可用于多种场景,如商品特点总结、图像文字识别等。项目提供了 OpenAI API 服务、Web UI 示例等部署方式,还包含了视觉处理工具,有助于开发者快速集成和使用,提升工作效率。

HunyuanVideo

HunyuanVideo

HunyuanVideo 是一个可基于文本生成高质量图像和视频的项目。

HunyuanVideo 是一个专注于文本到图像及视频生成的项目。它具备强大的视频生成能力,支持多种分辨率和视频长度选择,能根据用户输入的文本生成逼真的图像和视频。使用先进的技术架构和算法,可灵活调整生成参数,满足不同场景的需求,是文本生成图像视频领域的优质工具。

WebUI for Browser Use

WebUI for Browser Use

一个基于 Gradio 构建的 WebUI,支持与浏览器智能体进行便捷交互。

WebUI for Browser Use 是一个强大的项目,它集成了多种大型语言模型,支持自定义浏览器使用,具备持久化浏览器会话等功能。用户可以通过简洁友好的界面轻松控制浏览器智能体完成各类任务,无论是数据提取、网页导航还是表单填写等操作都能高效实现,有利于提高工作效率和获取信息的便捷性。该项目适合开发者、研究人员以及需要自动化浏览器操作的人群使用,在 SEO 优化方面,其关键词涵盖浏览器使用、WebUI、大型语言模型集成等,有助于提高网页在搜索引擎中的曝光度。

xiaozhi-esp32

xiaozhi-esp32

基于 ESP32 的小智 AI 开发项目,支持多种网络连接与协议,实现语音交互等功能。

xiaozhi-esp32 是一个极具创新性的基于 ESP32 的开发项目,专注于人工智能语音交互领域。项目涵盖了丰富的功能,如网络连接、OTA 升级、设备激活等,同时支持多种语言。无论是开发爱好者还是专业开发者,都能借助该项目快速搭建起高效的 AI 语音交互系统,为智能设备开发提供强大助力。

olmocr

olmocr

一个用于 OCR 的项目,支持多种模型和服务器进行 PDF 到 Markdown 的转换,并提供测试和报告功能。

olmocr 是一个专注于光学字符识别(OCR)的 Python 项目,由 Allen Institute for Artificial Intelligence 开发。它支持多种模型和服务器,如 vllm、sglang、OpenAI 等,可将 PDF 文件的页面转换为 Markdown 格式。项目还提供了测试框架和 HTML 报告生成功能,方便用户对 OCR 结果进行评估和分析。适用于科研、文档处理等领域,有助于提高工作效率和准确性。

飞书多维表格

飞书多维表格

飞书多维表格 ×DeepSeek R1 满血版

飞书多维表格联合 DeepSeek R1 模型,提供 AI 自动化解决方案,支持批量写作、数据分析、跨模态处理等功能,适用于电商、短视频、影视创作等场景,提升企业生产力与创作效率。关键词:飞书多维表格、DeepSeek R1、AI 自动化、批量处理、企业协同工具。

下拉加载更多