Linux下安装Foldseek并从蛋白质的PDB结构中获取 3Di Token 和 3Di Embedding

2023-11-22 09:12

本文主要是介绍Linux下安装Foldseek并从蛋白质的PDB结构中获取 3Di Token 和 3Di Embedding,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0. 说明:

Foldseek 是由韩国国立首尔大学 (Seoul National University) 的 Martin Steinegger (MMseqs2Linclust 的作者) 开发的一款用于快速地从大型蛋白质结构数据库中检索相似结构蛋白质的工具,可以用于计算两个蛋白之间的结构相似性,可以用于蛋白质结构比对,也可以与 MMseqs2Linclust 结合实现基于结构对蛋白质聚类。

本文的目的在于利用 Foldseek 将蛋白质的PDB结构转化为 3Di alphabet 表示的 3Di 序列,同时获取蛋白质蓄力的 3Di Embedding Matrix。

1. 下载和安装 Foldseek:

根据 github 上提供的安装教程(https://github.com/steineggerlab/foldseek),首先确定 Linux 的架构,然后根据相应的下载和安装命令进行 Foldseek 的下载和安装。

# Linux AVX2 build (check using: 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 build (check using: 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 build
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 installer (Linux and macOS)
conda install -c conda-forge -c bioconda foldseek

2. 利用 Foldseek 将PDB转化为3Di

foldseek 程序所在的目录下,运行:
命令:./foldseek structureto3didescriptor --help

usage: foldseek structureto3didescriptor <i:PDB|mmCIF[.gz]> ... <i:PDB|mmCIF[.gz]> <o:3didescriptor> [options]By Martin Steinegger <martin.steinegger@snu.ac.kr>
options: misc:                         --mask-bfactor-threshold FLOAT mask residues for seeding if b-factor < thr [0,100] [0.000]--file-include STR             Include file names based on this regex [.*]--file-exclude STR             Exclude file names based on this regex [^$]
common:                       --threads INT                  Number of CPU-cores used (all by default) [40]-v INT                         Verbosity level: 0: quiet, 1: +errors, 2: +warnings, 3: +info [3]
expert:                       --chain-name-mode INT          Add chain to name:0: auto1: always add[0]--write-mapping INT            write _mapping file containing mapping from internal id to taxonomic identifier [0]--coord-store-mode INT         Coordinate storage mode: 1: C-alpha as float2: C-alpha as difference (uint16_t) [2]--write-lookup INT             write .lookup file containing mapping from internal id, fasta id and file number [1]--tar-include STR              Include file names based on this regex [.*]--tar-exclude STR              Exclude file names based on this regex [^$]examples:Convert PDB/mmCIF/tar[.gz] files to a dbreferences:- van Kempen, M., Kim, S.S., Tumescheit, C., Mirdita, M., Lee, J., Gilchrist, C.L.M., Söding, J., and Steinegger, M. Fast and accurate protein structure search with Foldseek. Nature Biotechnology, doi:10.1038/s41587-023-01773-0 (2023)

从上述帮助文档的结果可以看出,将一个蛋白PDB转化为3Di,命令:
./foldseek structureto3didescriptor prot.pdb res_prot.3di --threads 1 (用一个线程将 prot.pdb 转化为 res_prot.3di)

结果示例:
将人类蛋白 A1IGU5.pdb 转化为 A1IGU5.3di,部分结果如下:
在这里插入图片描述

3. 从 3Di 结果中将 3Di Token 和 3Di Embedding 取出

import numpy as npdef deal3DiRes(threeDifile):with open(threeDifile) as inF:for line in inF:line = line.strip().split("\t")## 3Di Tokentoken_3di = line[-2].strip()## 3Di Embeddingmatrix_3di = np.array(line[-1].strip().split(","), dtype=float)matrix_3di_reshape = matrix_3di.reshape(-1,10) ## 因为每个氨基酸是用长度为 10 的向量来表示的,所以把最后一列分成 nx10 的矩阵即可。breakreturn token_3di, matrix_3di_reshapeif __name__ == "__main__":res = deal3DiRes(threeDifile="../VirusHumanProt3DiFiles/Human3Di/A1IGU5.3di")print(res[0]) ## 3Di 序列print(res[1]) ## 3Di matrix

A1IGU5.3di 的处理结果如下

DDDDDDDDDPDPPPPVVVVVVVLLVVLLVQLVVLLVVVLVVLVVLLVLLCCVVPQLLVLVVVDDPVLSCLLCPVSVLVSVLSVVLSVQLVVLVVPSVCNLLSNLVSLVVCLVSLLVRLLRLLLSLVVNVVSLVVQVVVVVSVVSQQVSQCVSPVVCPPVRSVSSSCSSVVVLVCPLVSLVSSLVSDDCPDPSNVSSVVSSVSSVVSNVSSVLSSLLSVLLVVFLPPDPDDPVVVVVPDDPVVVVLVVQLVVLVVCCVVVVDPADDDPLVVVLVVLLVVLLVVLVVQLVVLVVVLVVLVVVLVDQPLPDDPVPPDAPVPLVSVLSVCCSVPLSVVLSVLCCVQQNVLSVVLNSVSSSVVRLVVVLSSLSSLQVVQVVCCVVPVDDDPVSVVSNVSNVSSVVSSSVVSVVSSVVSVVSVVVSVVSVVVSVVVSVVVSVVSVVVSLVPHPCSPPDPVRVVVVVVVVVVVVVVVVVVVVVVVLVPDDFPDLDDDDVPCPVQVVVVCVVANLQFKKFQRAFDDDDDDQDDGDHGGQIWGFPACADPVRHNQWTWIDSSPDIGIDGPVRIDRRDDDPPVVNVCVVVPDDDDDDDDDDDDDDDDDDDDDPPFKKFFCDWDDDDDPQADTHHHRAIKDFPACAPPVRHNQWTFIDGPNDTHIDGSVRMDTDDDDDPDDDDDDD
[[ 2.629e-316  1.156e-316  2.629e-316 ...  1.482e-323 -1.661e+0012.872e+013][ 7.838e-001  6.043e-001  7.838e-001 ...  3.854e+000  1.000e+0006.931e-001][ 6.043e-001  1.280e-001  6.043e-001 ...  3.703e+000  1.000e+0006.931e-001]...[ 3.958e-001  3.127e-001 -1.000e+000 ...  3.815e+000 -1.000e+000-6.931e-001][ 3.945e-001  3.958e-001 -1.000e+000 ...  3.853e+000 -1.000e+000-6.931e-001][ 0.000e+000  0.000e+000  0.000e+000 ...  0.000e+000  0.000e+0000.000e+000]]

参考:

[1]. van Kempen M, Kim S, Tumescheit C, Mirdita M, Lee J, Gilchrist C, Söding J, and Steinegger M. Fast and accurate protein structure search with Foldseek. Nature Biotechnology, doi:10.1038/s41587-023-01773-0 (2023)
[2]. Barrio-Hernandez I, Yeo J, Jänes J, Mirdita M, Gilchrist LMC, Wein T, Varadi M, Velankar S, Beltrao P and Steinegger M. Clustering predicted structures at the scale of the known protein universe. Nature, doi:10.1038/s41586-023-06510-w (2023)
[3]. https://github.com/steineggerlab/foldseek

这篇关于Linux下安装Foldseek并从蛋白质的PDB结构中获取 3Di Token 和 3Di Embedding的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/409082

相关文章

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

Jupyter notebook安装步骤解读

《Jupyternotebook安装步骤解读》:本文主要介绍Jupyternotebook安装步骤,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、开始安装二、更改打开文件位置和快捷启动方式总结在安装Jupyter notebook 之前,确认您已安装pytho

Kali Linux安装实现教程(亲测有效)

《KaliLinux安装实现教程(亲测有效)》:本文主要介绍KaliLinux安装实现教程(亲测有效),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载二、安装总结一、下载1、点http://www.chinasem.cn击链接 Get Kali | Kal

linux服务之NIS账户管理服务方式

《linux服务之NIS账户管理服务方式》:本文主要介绍linux服务之NIS账户管理服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、所需要的软件二、服务器配置1、安装 NIS 服务2、设定 NIS 的域名 (NIS domain name)3、修改主

Linux实现简易版Shell的代码详解

《Linux实现简易版Shell的代码详解》本篇文章,我们将一起踏上一段有趣的旅程,仿照CentOS–Bash的工作流程,实现一个功能虽然简单,但足以让你深刻理解Shell工作原理的迷你Sh... 目录一、程序流程分析二、代码实现1. 打印命令行提示符2. 获取用户输入的命令行3. 命令行解析4. 执行命令

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

Python+PyQt5实现文件夹结构映射工具

《Python+PyQt5实现文件夹结构映射工具》在日常工作中,我们经常需要对文件夹结构进行复制和备份,本文将带来一款基于PyQt5开发的文件夹结构映射工具,感兴趣的小伙伴可以跟随小编一起学习一下... 目录概述功能亮点展示效果软件使用步骤代码解析1. 主窗口设计(FolderCopyApp)2. 拖拽路径

Python实现获取带合并单元格的表格数据

《Python实现获取带合并单元格的表格数据》由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,所以本文我们就来聊聊如何使用Python实现获取带合并单元格的表格数据吧... 由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,现将将封装成类,并通过调用list_exc

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

电脑软件不能安装到C盘? 真相颠覆你的认知!

《电脑软件不能安装到C盘?真相颠覆你的认知!》很多人习惯把软件装到D盘、E盘,刻意绕开C盘,这种习惯从哪来?让我们用数据和案例,拆解背后的3大原因... 我身边不少朋友,在使用电脑安装软件的时候,总是习惯性的把软件安装到D盘或者E盘等位置,刻意避开C盘。如果你也有这样的习惯,或者不明白为什么要这么做,那么我