当前位置: 首页 > news >正文

构建蛋白质复合体结构中所有链序列的同源性矩阵

为了生成蛋白质复合体结构中所有链之间的同源性矩阵,我们可以使用基于结构比对的工具(如 TM-align),逐对地比对所有链,并根据比对结果(通常是 TM-score)构建同源性矩阵。

具体步骤包括:

  1. 提取每条链的序列:从蛋白质复合体的 PDB 文件中提取每个链的序列,并保存成单独的文件。
  2. 使用 TM-align 进行比对:对每对链进行比对,计算它们的 TM-score。
  3. 构建同源性矩阵:将每对链的 TM-score 记录到矩阵中,形成链序列的同源性矩阵。

步骤 1:提取蛋白质复合体的所有链序列

可以使用 BioPython 提取每个链的序列并保存为单独的 .pdb 文件。

from Bio import PDBdef extract_chain_sequences(pdb_file, output_dir):"""从PDB文件中提取所有链的序列,并保存为独立的PDB文件。:param pdb_file: 蛋白质复合体PDB文件路径:param output_dir: 输出目录,用于保存各链的PDB文件"""parser = PDB.PDBParser(QUIET=True)structure = parser.get_structure('complex', pdb_file)io = PDB.PDBIO()for model in structure:for chain in model:chain_id = chain.get_id()chain_pdb_file = f"{output_dir}/{chain_id}.pdb"io.set_structure(chain)io.save(chain_pdb_file)print(f"Saved chain {chain_id} to {chain_pdb_file}")# 示例用法
pdb_file = 'complex.pdb'  # 你的复合体PDB文件
output_dir = 'chains_pdb'  # 输出目录
extract_chain_sequences(pdb_file, output_dir)

步骤 2:使用 TM-align 比对链

创建一个函数,使用 TM-align 比对每对链,并提取比对结果中的 TM-score。

import subprocess
import os
import numpy as npdef run_tmalign(chain1_pdb, chain2_pdb):"""使用 TM-align 对两个蛋白质链进行比对,返回 TM-score。:param chain1_pdb: 第一个链的PDB文件路径:param chain2_pdb: 第二个链的PDB文件路径:return: 两个链之间的 TM-score"""tmalign_cmd = f"TM-align {chain1_pdb} {chain2_pdb}"result = subprocess.run(tmalign_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)output = result.stdout.decode('utf-8')for line in output.splitlines():if line.startswith("TM-score="):return float(line.split()[1])return 0.0

步骤 3:构建同源性矩阵

每个链之间的 TM-score 保存在对称矩阵的对应位置,构成同源性矩阵。该矩阵的每个元素表示两个链之间的结构相似性(TM-score),范围为 0 到 1,值越接近 1,表示相似性越高。

def generate_homology_matrix(pdb_dir):"""使用 TM-align 对复合体中所有链进行比对,生成同源性矩阵。:param pdb_dir: 存放链PDB文件的目录:return: 同源性矩阵"""chain_files = [f for f in os.listdir(pdb_dir) if f.endswith('.pdb')]chain_ids = [f.split('.')[0] for f in chain_files]num_chains = len(chain_ids)homology_matrix = np.zeros((num_chains, num_chains))for i in range(num_chains):for j in range(i, num_chains):chain1_pdb = os.path.join(pdb_dir, chain_files[i])chain2_pdb = os.path.join(pdb_dir, chain_files[j])tm_score = run_tmalign(chain1_pdb, chain2_pdb)homology_matrix[i, j] = tm_scorehomology_matrix[j, i] = tm_scorereturn chain_ids, homology_matrix# 示例用法
pdb_dir = 'chains_pdb'  # 保存各链PDB文件的目录
chain_ids, homology_matrix = generate_homology_matrix(pdb_dir)print("链ID列表:", chain_ids)
print("同源性矩阵:")
print(homology_matrix)

代码解读

  1. extract_chain_sequences 函数

    • 从给定的 PDB 文件中提取每个链,并将它们保存为单独的 PDB 文件。
    • 使用 BioPython 库进行 PDB 文件的解析和操作。
  2. run_tmalign 函数

    • 使用 TM-align 工具比对两个链的结构,输出比对结果,并从输出中提取 TM-score。
  3. generate_homology_matrix 函数

    • 遍历每对链,对其进行比对,构建同源性矩阵。
    • 矩阵是对称的,矩阵中的值表示 TM-score,体现链之间的结构相似性。

结果

homology_matrix 是蛋白质复合体中所有链的同源性矩阵,chain_ids 是与矩阵行和列对应的链的标识符。

相关文章:

构建蛋白质复合体结构中所有链序列的同源性矩阵

为了生成蛋白质复合体结构中所有链之间的同源性矩阵,我们可以使用基于结构比对的工具(如 TM-align),逐对地比对所有链,并根据比对结果(通常是 TM-score)构建同源性矩阵。 具体步骤包括&#xf…...

[苍穹外卖]-10WebSocket入门与实战

WebSocket WebSocket是基于TCP的一种新的网络协议, 实现了浏览器与服务器的全双工通信, 即一次握手,建立持久连接,双向数据传输 区别 HTTP是短连接, WebSocket是长连接HTTP单向通信, 基于请求响应模型WebSocket支持双向通信 相同 HTTP和WebSocket底层都是TCP连接 应用场景…...

【JAVA】一篇聊透百万级数据导入导出场景问题、大数据处理策略及优化方案、EasyExcel 和 EasyPOI的玩法详解

文章目录 名词介绍场景问题分析解决导入问题解决方案内存溢出(分批导入)DB插入(分批插入) 导出问题解决方案 导入导出的策略定时导入导出实时导入导出 EasyPOI 更多相关内容可查看 玩之前先了解几个关键名词(大佬可省略…...

2024年华为9月4日秋招笔试真题题解

2024年华为0904秋招笔试真题 二叉树消消乐好友推荐系统维修工力扣上类似的题--K站中转内最便宜的航班 二叉树消消乐 题目描述 给定原始二叉树和参照二叉树(输入的二叉树均为满二叉树,二叉树节点的值范围为[1,1000],二叉树的深度不超过1000)&#xff0c…...

Next.js 14 App Router 预渲染 代码实践 静态页面渲染 SSG 服务端渲染代码 SSR

最近学习了Next.js 14框架,总结一下预渲染技术和具体代码用法,如果有理解不对的地方还请大佬指正。 注意以下内容只讨论App Router的新方案(getStaticProps已经弃用)。 1.简介 预渲染主要分为2种技术,静态页面渲染(…...

阿里云人工智能ACP错题整理.txt

1、TextRank是一种关键词抽取和文档摘要的排序算法,由谷歌的网页重要性排序算法PageRank算法改进而来,利用文本内部的词语间的语义便可以抽取关键词,它能够从一个给定的文本中抽取出该文本的关键词、关键词组,并使用抽取式的自动文…...

为 WebSocket 配置 Nginx 反向代理来支持 Uvicorn 的最佳实践

前景 要为WebSocket(以 ws:// 或 wss:// 协议)配置 Nginx 反向代理来代理 Uvicorn 服务器(或其他支持 WebSocket 的应用),需要确保 Nginx 和 Uvicorn 支持 WebSocket 连接,并做一些特定的配置。WebSocket 协议与 HTTP/HTTPS 不同,因此需要在 Nginx 中设置正确的代理头和…...

Centos7通过Docker安装openGauss5.0.2并配置用户供Navicat连接使用

下载镜像 [rootiZ2ze3qc9ouxm10ykn3cvdZ ~]# docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/enmotech/opengauss:5.0.2 5.0.2: Pulling from ddn-k8s/docker.io/enmotech/opengauss 2ec76a50fe7c: Pull complete e48b50219b49: Pull complete 512e203af4…...

生成树详细配置(STP、RSTP、MSTP)

目录 一. 实验内容 STP配置实验 RSTP配置实验 MSTP配置实验 二. 1 ) STP配置实验 实验拓扑 ​编辑 实验配置 实验结果 2 ) RSTP配置实验 实验拓扑 实验配置 实验结果 3 ) MSTP配置实验 实验拓扑 实验配置 ​编辑 实验结果 三 实验总结 一. 实验内容 1) …...

服务器环境搭建-5 Nexus搭建与使用介绍

背景 本文介绍nexus的安装、配置和使用,之后通过案例的方式演示使用过程。 1.下载和安装 本文使用Nexus 3.x版本进行演示 下载地址:Download Nexus Repository OSS | Sonatype 国外网站下载速度较慢,也可以通过百度网盘下载(提取码:9999): …...

将 Parallels Desktop(PD虚拟机)安装在移动硬盘上,有影响吗?

当我们谈论在移动硬盘上安装 Parallels Desktop(简称PD虚拟机)及其对性能的影响时,特别是在运行如Unigraphics这样的资源密集型软件时,用户需要在便携性与性能之间找到最佳平衡。本文将深入探讨PD虚拟机装在移动硬盘有影响吗&…...

PHP智能化云端培训考试系统小程序源码

智能化云端培训考试系统:重塑学习评估的未来 🌟 引言:迈向智能教育的新时代 在这个日新月异的数字时代,教育也在经历着前所未有的变革。智能化云端培训考试系统的出现,正是这一变革的生动体现。它不仅打破了传统教育的…...

内幕!smardaten无代码平台全方位测评,这些细节你绝对想不到!

目录 一、引言二、测评要点2.1、前后端交互嵌套2.2、兼容性与可扩展性2.2.1、页面集成2.2.2、数据集成2.2.3、接口集成2.2.4、权限集成2.2.5、代码扩展支持 2.3、UI定制2.4、开发环境的隔离2.5、OEM定制2.6、多语言切换2.7、AI大模型能力 三、总结 一、引言 作为一枚IT从业者&…...

计算机专业的真正的就业情况

首先听到计算机行业,大多数人岗位已经饱和,前端已死,程序员35岁危机。但是事实上这些认知都是片面的,今天由我来为大家分析计算机行业的内幕。 疫情过后,过内各种行业都受到了冲击,你们敢说除了体制内的行业…...

Java对象列表属性映射工具类

背景 经常有这种情况,就是获取到一个对象列表之后,需要根据对象里某个字段的值去获取另一个字段的值。如下所示,有个Item对象列表,Item对象里有个id字段和Value字段,现需要根据id的值去查询value的值。 // 测试数据Li…...

.net core 通过Sqlsugar生成实体

通过替换字符串的方式生成代码&#xff0c;其他代码也可以通这种方式生成 直接上代码 设置模板 将这几个模板文件设置为&#xff1a;嵌入资源 模板内容&#xff1a; using SqlSugar;namespace {Namespace}.Domain.Admin.{ModelName}; /// <summary> /// {TableDisplay…...

ORCA-3D避障算法解析

二维ORCA原理参考&#xff1a; https://zhuanlan.zhihu.com/p/669426124 ORCA原理图解 1. 找到避障速度增量 u 碰撞处理分为三种情况&#xff1a; &#xff08;1&#xff09;没有发生碰撞&#xff0c;且相对速度落在小圆里 &#xff08;2&#xff09;没有发生碰撞&#xff0…...

CentOS 7停更官方yum源无法使用,更换阿里源

CentOS 7官方源已经停止维护&#xff0c;导致无法使用yum更新软件。通过尝试使用阿里云、清华大学等第三方源解决&#xff0c;现以阿里云第三方源进行配置&#xff1a; 1、备份原有的yum源配置文件 # cp -a /etc/yum.repos.d /etc/yum.repos.d.bak 2、删除原有的yum源配置文…...

Introduction结构

写好论文的**Introduction&#xff08;引言&#xff09;**部分是至关重要的&#xff0c;因为它为读者提供了背景信息&#xff0c;并引导他们进入论文的核心主题。一个优秀的引言应该具备以下几个关键要素&#xff1a; 1. 背景介绍 概述问题&#xff1a;首先&#xff0c;你需要…...

基于SpringBoot实现SpringMvc上传下载功能实现

SpringMvc上传下载功能实现 1.创建新的项目 1&#xff09;项目信息填写 Spring Initializr (单击选中)Name(填写项目名字)Language&#xff08;选择开发语言&#xff09;Type&#xff08;选择工具Maven&#xff09;Group&#xff08;&#xff09;JDK&#xff08;jdk选择17 &…...

NotebookLM脑机接口安全红线清单,3类合规风险已致2家医疗AI公司终止临床试验

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM脑机接口研究 NotebookLM 是 Google 推出的基于用户自有文档进行深度理解与推理的 AI 助手&#xff0c;其核心能力在于语义锚定&#xff08;semantic grounding&#xff09;与多源文档交叉推…...

用Arduino Nano和MAX7219模块,5分钟搞定一个8x8 LED点阵显示(附完整代码)

用Arduino Nano和MAX7219模块快速打造8x8 LED点阵显示系统 周末整理零件箱时翻出一片落灰的MAX7219模块和Arduino Nano&#xff0c;突然想起可以给工作室做个实时温度显示器。这个组合堪称电子爱好者的"乐高积木"——不需要复杂的电路设计&#xff0c;短短几行代码就…...

为Claude Code配置Taotoken作为备用API服务商防止中断

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为Claude Code配置Taotoken作为备用API服务商防止中断 当您依赖Claude Code作为编程助手时&#xff0c;可能会遇到服务暂时不可用或…...

毕业设计:基于springboot的在线课程管理系统(源码)

4系统概要设计4.1概述本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a;图4-1系统工作原理图4.2…...

3个技巧让你告别Redis命令行:用AnotherRedisDesktopManager高效管理数据库

3个技巧让你告别Redis命令行&#xff1a;用AnotherRedisDesktopManager高效管理数据库 【免费下载链接】AnotherRedisDesktopManager &#x1f680;&#x1f680;&#x1f680;A faster, better and more stable Redis desktop manager [GUI client], compatible with Linux, W…...

脑信号→自然语言转化失败率骤降62%?NotebookLM v2.3神经对齐模块深度拆解,仅限首批内测开发者知晓

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;NotebookLM脑机接口研究 NotebookLM 是 Google 推出的基于用户自有文档进行语义理解与推理的实验性 AI 工具&#xff0c;虽其官方定位并非直接面向脑机接口&#xff08;BCI&#xff09;领域&#xff0c;但其底…...

Sentaurus TCAD仿真避坑指南:手把手教你配置非局域隧穿模型(NLM)的Physics、Math与Parameter

Sentaurus TCAD仿真实战&#xff1a;非局域隧穿模型配置的七个关键陷阱与解决方案 在微电子器件仿真领域&#xff0c;非局域隧穿模型(Non-Local Tunneling Model, NLM)的准确配置常常成为新手工程师的第一道技术门槛。许多研究生在首次尝试铁电隧穿结(FTJ)仿真时&#xff0c;往…...

基于本体论的技能知识图谱:从理论到工程实践

1. 项目概述&#xff1a;当技能遇上本体论最近在整理个人知识库和团队技能矩阵时&#xff0c;我遇到了一个老生常谈的难题&#xff1a;如何用一种结构化的、机器可读的方式&#xff0c;清晰地定义和关联“技能”这个概念&#xff1f;我们通常用Excel表格、标签云或者简单的列表…...

Translumo:Windows平台实时屏幕翻译神器,打破语言障碍的终极解决方案

Translumo&#xff1a;Windows平台实时屏幕翻译神器&#xff0c;打破语言障碍的终极解决方案 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/…...

数字家谱系统架构设计:从关系数据库到可视化交互的完整实现

1. 项目概述&#xff1a;从“家谱”到“数字家谱”的跨越最近在GitHub上看到一个挺有意思的项目&#xff0c;叫qiaoshouqing/familytree。光看名字&#xff0c;你可能会觉得&#xff0c;这不就是个家谱吗&#xff1f;没错&#xff0c;它的核心确实是家谱&#xff0c;但如果你把…...