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

提取蛋白质复合体结构中组装体的变换矩阵

PDB文件中,组装体变换矩阵(assembly transformation matrices)用于描述多聚体结构中各个单体之间的相对位置和取向。从蛋白质复合体 PDB 数据中提取每个组装体(assembly)的变换矩阵,通常需要解析 PDB 文件中包含的组装体信息。这些信息存储在 PDB 文件的 REMARK 350 字段中,该字段描述了如何通过旋转和平移操作将不同的链组合成蛋白质复合体。

以下是从 PDB 文件中提取每个组装体变换矩阵的示例代码:

示例代码

我们可以使用 Bio.PDB 模块(来自 biopython)解析 PDB 文件,提取组装体信息并生成相应的旋转矩阵和平移向量。代码如下

from Bio.PDB import PDBParser
import numpy as npdef extract_transform_matrices(pdb_file):"""从PDB文件中提取组装体的旋转和平移矩阵。:param pdb_file: PDB文件路径:return: 组装体的旋转和平移矩阵列表,按顺序返回每个组装体的旋转矩阵和对应的平移向量。"""parser = PDBParser(QUIET=True)structure = parser.get_structure('protein', pdb_file)transform_matrices = []with open(pdb_file, 'r') as f:lines = f.readlines()current_matrix = Nonecurrent_translation = Noneassembly_id = Nonetransformations = []for line in lines:if line.startswith('REMARK 350 APPLY THE FOLLOWING TO CHAINS'):# 提取组装体IDif 'AND' in line:assembly_id = line.split('AND')[1].strip()elif 'TO CHAINS' in line:assembly_id = line.split('TO CHAINS')[1].strip()elif line.startswith('REMARK 350   BIOMT'):# 提取旋转和平移矩阵matrix_row = int(line[18]) - 1  # 行索引,从1开始values = list(map(float, line[23:].split()))if matrix_row == 0:current_matrix = np.zeros((3, 3))current_translation = np.zeros(3)# 将前三个值存储在旋转矩阵中current_matrix[matrix_row, :] = values[:3]# 第四个值为平移向量的一部分current_translation[matrix_row] = values[3]# 当矩阵第三行已提取完,保存结果if matrix_row == 2:transformations.append((current_matrix, current_translation))return transformations# 示例使用
pdb_file = '/Users/zhengxueming/test/pdb_files/1a15.pdb'  # 替换为你的PDB文件路径
transform_matrices = extract_transform_matrices(pdb_file)for i, (rotation, translation) in enumerate(transform_matrices):print(f"Assembly {i + 1}:")print("Rotation matrix:")print(rotation)print("Translation vector:")print(translation)print()

解析说明

  • REMARK 350 字段:PDB 文件的这一部分描述了组装体的构建方式,包括如何对特定链进行旋转和平移。

    • BIOMT 行:记录了旋转矩阵和平移向量。每个组装体的矩阵通过三行 BIOMT 记录,每一行提供了旋转矩阵的一行和对应的平移分量。
    • 旋转矩阵是一个 3x3 矩阵,平移向量是一个 3x1 向量。
  • extract_transform_matrices() 函数:解析 PDB 文件并提取每个组装体的变换矩阵。函数返回一个包含所有组装体变换的列表,每个元素是一个元组,包含旋转矩阵和平移向量。

变换矩阵的含义

  • 旋转矩阵:表示如何旋转链来形成组装体。
  • 平移向量:表示在旋转的基础上,链的三维坐标应如何平移。

这些变换矩阵可以用来将单个链或亚基的局部坐标变换为蛋白质复合体的整体坐标,从而得到完整的蛋白质结构。

http://www.lryc.cn/news/437546.html

相关文章:

  • java程序员入行科目一之CRUD轻松入门教程(一)
  • OpenHarmony鸿蒙开发( Beta5.0)智能油烟机开发实践
  • 【GBase 8c V5_3.0.0 分布式数据库常用维护命令】
  • 破解AI生成检测:如何用ChatGPT降低论文的AIGC率
  • Python用MarkovRNN马尔可夫递归神经网络建模序列数据t-SNE可视化研究
  • setup函数子传父普通写法
  • seafaring靶场漏洞测试攻略
  • 简单示例,搞懂PowerBI的ALL(),ALLEXCEPT()和ALLSELECTED()的区别
  • Collection
  • 19章 泛型
  • 基于python+django+mysql+Nanodet检测模型的水稻虫害检测系统
  • 计算机网络27、28——Linux命令1、2
  • 【Python深度学习】逆强化学习(IRL):通俗揭开学习背后的奥秘
  • Linux:五种IO模型
  • ansible企业实战
  • 面向对象程序设计之模板进阶(C++)
  • 电巢科技携Ecosmos元宇宙产品亮相第25届中国光博会
  • Redis 入门 - 收官
  • Windows技术栈企业基础底座(1)-为基于Windows的Nginx安装证书
  • ThreeJS入门(002):学习思维路径
  • 基于ssm+vue+uniapp的新生报到系统小程序
  • 掌握 JavaScript ES6+:现代编程技巧与模块化实践
  • AttackGen - AI 网络安全事件响应测试工具,附下载链接
  • CAD2020安装方法
  • ubuntu安装mongodb实操学习
  • RabbitMQ 基础入门
  • Unity 特殊文件夹
  • Monster Sound FX Pack 2 怪物恶魔野兽声效包
  • linux常用环境配置
  • SoapShell 更新 | 新增调用cmd执行系统命令