py-mmcif包pdbx_struct_assembly对象介绍

发布于:2024-10-11 ⋅ 阅读:(90) ⋅ 点赞:(0)

pdbx_struct_assembly 对象在 mmCIF 文件中包含了与蛋白质结构中**生物装配(biological assembly)**相关的详细信息。装配体是指由多个分子单元或亚基通过特定的相互作用组装而成的结构。这些信息对于研究生物学意义上的装配体非常重要,如研究蛋白质复合体、酶的多聚结构等。

主要字段
  • id: 装配体的标识符(assembly ID)。
  • details: 关于该装配体的描述信息,通常包含该装配体的生物学相关性说明或其他注释。
  • method_details: 描述如何确定或推断该装配体的方法,例如基于 X 射线晶体学或低温电子显微镜数据等。
  • oligomeric_count: 该装配体中的亚基数量(如果可用)。
  • oligomeric_details: 关于该装配体的详细信息,包括装配体的聚合状态(如二聚体、四聚体等)。

示例字段说明

  • id'1''2' 等,代表装配体的 ID 号。
  • details'Biological assembly 1' 表示这是生物装配体 1。
  • method_details'PISA analysis',说明装配体是通过 PISA(Protein Interfaces, Surfaces and Assemblies)分析推断的。
  • oligomeric_count'2',表示该装配体包含两个分子单元。
  • oligomeric_details'Homodimer',表示该装配体为同源二聚体。

pdbx_struct_assembly 的使用示例代码

from mmcif.io.PdbxReader import PdbxReader
import gzip

# 打开 mmCIF 文件
cif_file_path = '/path/to/your/file.cif.gz'
data = []
with gzip.open(cif_file_path, 'rt') as cif:
    reader = PdbxReader(cif)
    reader.read(data)

# 提取第一个数据块
data = data[0]

# 获取装配信息
assembly_data = data.getObj("pdbx_struct_assembly")

if assembly_data is not None:
    for i in range(assembly_data.getRowCount()):
        # 获取装配体 ID
        assembly_id = assembly_data.getValue("id", i)
        # 获取装配体的详细信息
        details = assembly_data.getValue("details", i)
        # 获取确定装配体的方法
        method = assembly_data.getValue("method_details", i)
        # 获取该装配体中的亚基数量
        oligomeric_count = assembly_data.getValueOrDefault("oligomeric_count", i, "N/A")
        # 获取该装配体的聚合状态详细信息
        oligomeric_details = assembly_data.getValueOrDefault("oligomeric_details", i, "N/A")
        
        # 打印装配信息
        print(f"Assembly ID: {assembly_id}")
        print(f"Details: {details}")
        print(f"Method: {method}")
        print(f"Oligomeric Count: {oligomeric_count}")
        print(f"Oligomeric Details: {oligomeric_details}")
        print("-" * 40)
else:
    print("No assembly data available.")

字段解释:

  • getRowCount(): 返回 pdbx_struct_assembly 对象中装配体的行数(即装配体的数量)。
  • getValue(field_name, row_index): 获取指定字段 field_name 在特定行 row_index 中的值。
  • getValueOrDefault(field_name, row_index, default_value): 如果字段为空或者缺失,返回一个默认值 default_value

输出示例

假设 mmCIF 文件包含以下装配体信息:

Assembly ID: 1
Details: Biological assembly 1
Method: PISA analysis
Oligomeric Count: 2
Oligomeric Details: Homodimer
----------------------------------------
Assembly ID: 2
Details: Symmetry assembly
Method: Electron Microscopy
Oligomeric Count: 5
Oligomeric Details: Pentamer
----------------------------------------

总结

  • pdbx_struct_assembly 对象主要用于获取蛋白质结构的装配体信息,常用于研究蛋白质复合体的结构。
  • 通过该对象可以提取装配体的详细信息、方法、亚基数量等数据,适用于生物学、结构生物学和蛋白质设计等领域的分析和应用。

网站公告

今日签到

点亮在社区的每一天
去签到