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: auto
                                1: 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 float
                                2: 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 db

references:
 - 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 np
    
def deal3DiRes(threeDifile):
    with open(threeDifile) as inF:
        for line in inF:
            line = line.strip().split("\t")

            ## 3Di Token
            token_3di = line[-2].strip()

            ## 3Di Embedding
            matrix_3di = np.array(line[-1].strip().split(","), dtype=float)
            matrix_3di_reshape = matrix_3di.reshape(-1,10) ## 因为每个氨基酸是用长度为 10 的向量来表示的,所以把最后一列分成 nx10 的矩阵即可。
            break
        
        return token_3di, matrix_3di_reshape

                
if __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+001
   2.872e+013]
 [ 7.838e-001  6.043e-001  7.838e-001 ...  3.854e+000  1.000e+000
   6.931e-001]
 [ 6.043e-001  1.280e-001  6.043e-001 ...  3.703e+000  1.000e+000
   6.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+000
   0.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/174119.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TensorFlow实战教程(十九)-Keras搭建循环神经网络分类案例及RNN原理详解

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章分享了卷积神经网络CNN原理,并通过Keras编写CNN实现了MNIST分类学习案例。这篇文章将详细讲解循环神经网络RNN的原理知识,并采用Keras实现手写数字识别的RNN分类案例及可视化呈现。基础性文…

多元函数奇偶性

多元函数奇偶性 多元函数的定义域 定义域根据函数的变量数不同,有不同的形式 一元函数 y f ( x ) yf(x) yf(x),定义域可以是数集二元函数 z f ( x , y ) zf(x,y) zf(x,y),定义域可以是一平面区域,是平面点集三元函数 v f ( x , y , z ) vf(x,y,z) vf(x,y,z),定义域是一块空…

基于骑手优化算法优化概率神经网络PNN的分类预测 - 附代码

基于骑手优化算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于骑手优化算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于骑手优化优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

spark内置数据类型

在用scala编写spark的时候&#xff0c;假如我现在需要将我spark读的数据源的字段&#xff0c;做一个类型转换&#xff0c;因 为需求中要拼接出sql的create table语句&#xff0c;需要每个字段的sql中的类型&#xff0c;那么就需要去和sparksql 中的内置数据类型去比对。 写s…

光伏、储能双层优化配置接入配电网研究(附带Matlab代码)

由于能源的日益匮乏&#xff0c;电力需求的不断增长等&#xff0c;配电网中分布式能源渗透率不断提高&#xff0c;且逐渐向主动配电网方向发展。此外&#xff0c;需求响应(demand response&#xff0c;DR)的加入对配电网的规划运行也带来了新的因素。因此&#xff0c;如何综合考…

Linux docker安装RStudio Server结合内网穿透实现公网访问内网服务

&#x1f4f7; 江池俊&#xff1a; 个人主页 &#x1f525;个人专栏&#xff1a; ✅数据结构探索 ✅cpolar &#x1f305; 有航道的人&#xff0c;再渺小也不会迷途。 文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5…

flutter创建不同样式的按钮,背景色,边框,圆角,圆形,大小都可以设置

在ui设计中&#xff0c;可能按钮会有不同的样式需要你来写出来&#xff0c;所以按钮的不同样式&#xff0c;应该是最基础的功能&#xff0c;在这里我们赶紧学起来吧&#xff0c;web端可能展示有问题&#xff0c;需要优化&#xff0c;但是基本样式还是出来了 我是将所有的按钮放…

洛谷 P3252 [JLOI2012] 树

读题就读趋势了&#xff0c;还以为是每个深度都可以选一个&#xff0c;然后深度升序就可以了&#xff0c;以为是个按深度的01背包。 但是前面还说了是一条路径&#xff0c;路径是不能断开的。那就从每个点开始爆搜一次就好了。 看了一下范围n<1e5&#xff0c;n^2爆搜理论上…

智能座舱架构与芯片- (13) 软件篇 下

四、面向服务的智能座舱软件架构 4.1 面向信号的软件架构 随着汽车电子电气架构向中央计算-域控制器的方向演进&#xff0c;甚至向车云一体化的方向迈进&#xff0c;适用于汽车的软件平台也需要进行相应的进化。 在传统的观念中&#xff0c;座舱域即娱乐域&#xff0c;座舱软…

2023.11.22使用flask做一个简单的图片浏览器

2023.11.22使用flask做一个简单的图片浏览器 功能&#xff1a; 实现图片浏览&#xff08;翻页&#xff09;功能 程序页面&#xff1a; 程序架构&#xff1a; 注意&#xff1a;在flask中常会使用src“{{ url_for(‘static’, filename‘images/’ image) }}”&#xff0c…

4D毫米波雷达和3D雷达、激光雷达全面对比

众所周知&#xff0c;传统3D毫米波雷达存在如下性能缺陷&#xff1a; 1&#xff09;静止目标和地物杂波混在一起&#xff0c;难以区分&#xff1b; 2) 横穿车辆和行人多普勒为零或很低&#xff0c;难以检测&#xff1b; 3) 高处物体和地面目标不能区分&#xff0c;容易造成误刹…

基于SSM的进销存管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

ArcGIS如何处理并加载Excel中坐标数据?

做GIS行业的各位肯定免不了跟数据打交道&#xff0c;其中数据的处理说复杂也复杂&#xff0c;因为我们要花时间去做数据的转换及调整工作&#xff0c;那说简单也简单&#xff0c;因为我们有很多的工具可以使用&#xff0c;那么今天我就给大家带来处理Excel中的GIS数据中的其中一…

Windows to Go U盘系统制作(未测完成)

三、Windows U盘系统制作 1、下载windows镜像&#xff0c;并通过Windows To Go方式制作&#xff0c;具体选项参考下面截图 2、选择Windows版本 3、配置Windows 体验相关参数

基于SSM的网络财务管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

ArkTS基础知识

ArkTS基础知识 ArkUI开发框架 ArkTS声明式开发范式 装饰器&#xff1a; 用来装饰类&#xff0c;结构体&#xff0c;方法及变量。如&#xff1a; Entry&#xff1a;入口组件 Component &#xff1a;表示自定义组件 State 都是装饰器&#xff1a;组件中的状态变量&#xff0c;该…

[机缘参悟-119] :一个IT人的反思:反者道之动;弱者,道之用 VS 恒者恒强,弱者恒弱的马太效应

目录 前言&#xff1a; 一、道家的核心思想 二、恒者恒强&#xff0c;弱者恒弱的马太效应 三、马太效应与道家思想的统一 3.1 大多数的理解 3.2 个人的理解 四、矛盾的对立统一 前言&#xff1a; 马太效应和强弱互转的道家思想&#xff0c;都反应了自然规律和社会规律&…

【JavaEE】Spring的创建和使用(保姆级手把手图解)

一、创建一个Spring项目 1.1 创建一个Maven项目 1.2 添加 Spring 框架支持 在pom.xml中添加 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.3.RELEASE&…

艺术作品3D虚拟云展厅能让客户远程身临其境地欣赏美

艺术品由于货物昂贵、易碎且保存难度大&#xff0c;因此在艺术品售卖中极易受时空限制&#xff0c;艺术品三维云展平台在线制作是基于web端将艺术品的图文、模型及视频等资料进行上传搭配&#xff0c;构建一个线上艺术品3D虚拟展厅&#xff0c;为艺术家和观众提供了全新的展示和…

SpringBoot——》配置logback日志文件

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…