You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Biopython的PDBParser模块查找PDB文件中属于RNA链的模型和链

基于Biopython识别PDB中RNA链的实现方法

核心逻辑是通过判断链内残基的名称快速区分RNA链,标准RNA的核心残基为A、U、C、G四种,结合占比阈值可规避修饰残基、配体的干扰。

完整实现代码

from Bio.PDB import PDBParser

# 初始化解析器,QUIET=True可屏蔽解析过程的格式警告
parser = PDBParser(QUIET=True)
structure = parser.get_structure("custom_id", "你的PDB文件路径.pdb")

# 定义标准RNA残基集合,可按需添加修饰RNA残基名
RNA_RESIDUES = {'A', 'U', 'C', 'G'}
# RNA残基占比阈值,超过该阈值判定为RNA链,可按需调整
THRESHOLD = 0.8

# 遍历所有模型、链做判断
for model in structure:
    print(f"模型ID:{model.get_id()}")
    for chain in model:
        # 过滤掉异原子、水分子、配体等非主序列残基
        main_chain_res = [res for res in chain.get_residues() if res.get_id()[0] == ' ']
        if not main_chain_res:
            continue
        # 统计RNA残基数量
        rna_res_num = sum(1 for res in main_chain_res if res.get_resname().strip() in RNA_RESIDUES)
        # 判定是否为RNA链
        if rna_res_num / len(main_chain_res) >= THRESHOLD:
            print(f"  链{chain.get_id()} 为RNA链,RNA残基占比:{rna_res_num/len(main_chain_res):.1%}")

逻辑说明

  • RNA_RESIDUES集合支持自定义扩展,若需要识别修饰型RNA,把对应的修饰残基名称(比如m6A、psU等)加入集合即可
  • 阈值THRESHOLD可按需调整:如果处理的是无任何修饰的纯RNA序列,可设置为1;如果PDB中存在少量结合配体、融合蛋白残基,可适当调低阈值
  • 过滤异原子的逻辑res.get_id()[0] == ' '会自动排除非主序列残基,避免无关残基干扰统计结果

内容的提问来源于stack exchange,提问作者crommy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:54:01