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

如何在PyMOL中获取肽链所有主链phi、psi、omega角度列表?

PyMOL导出主链phi/psi/omega角度列表的实用方法

方法1:快速导出phi/psi(内置命令)

你试过的phi_psi Dataname会在控制台输出phi和psi角度,但要保存成可对比的列表,只需加两步:

  • 执行:phi_psi Dataname, quiet=1,quiet=1会关闭弹窗,只输出纯数据
  • 再执行:save backbone_phi_psi.txt, phi_psi,结果会保存到文本文件,文件里包含残基序号、名称和对应的phi/psi值,格式整齐适合对比。

方法2:同时导出phi/psi/omega(自定义脚本)

如果需要omega角(肽键平面角),内置的phi_psi不支持,用下面的脚本可以一次性导出三个角度:

# 替换Dataname为你的结构对象名
target_obj = "Dataname"

# 初始化角度存储列表
angle_data = []
angle_data.append("残基序号\t残基名称\tPhi(°)\tPsi(°)\tOmega(°)")

# 获取肽链残基信息
peptide_model = cmd.get_model(f"{target_obj} and polymer")
residues = peptide_model.atom

# 遍历残基计算角度(跳过首尾残基,因为首尾没有完整的主链角)
for i in range(1, len(residues)-1):
    current_resi = residues[i].resi
    current_resn = residues[i].resn
    # 获取三个角度值,保留两位小数
    phi_val = round(cmd.get_phi(f"{target_obj} and resi {current_resi}"), 2)
    psi_val = round(cmd.get_psi(f"{target_obj} and resi {current_resi}"), 2)
    omega_val = round(cmd.get_omega(f"{target_obj} and resi {current_resi}"), 2)
    # 加入列表
    angle_data.append(f"{current_resi}\t{current_resn}\t{phi_val}\t{psi_val}\t{omega_val}")

# 打印到控制台
for line in angle_data:
    print(line)

# 保存到本地文件
with open("all_backbone_angles.txt", "w", encoding="utf-8") as f:
    f.write("\n".join(angle_data))

使用方式:

  • 把target_obj改成你的结构名称
  • 复制脚本到PyMOL命令行执行,或者存成.py文件后用run your_script.py运行
  • 运行完成后,当前目录会生成all_backbone_angles.txt,里面是完整的三角度列表,直接用Excel打开就能方便对比。

注意事项

  • 如果结构有缺失原子,角度计算会返回None,建议先检查结构完整性(用show missing命令查看)
  • 多链结构可以加筛选条件,比如{target_obj} and chain A and polymer来指定单链计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:50:57