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

如何在PyMOL Python脚本中判断文件是否已加载

检查PyMOL中分子是否已加载的实现逻辑

PyMOL的Python API提供了两种简洁的方式来实现你需要的判断逻辑,具体如下:

方法一:直接使用cmd.exists()函数(推荐)

cmd.exists()是PyMOL内置的判断函数,直接传入分子对象名称即可返回是否已加载的布尔值,用法最简单:

import pymol
pymol.finish_launching()  # 初始化PyMOL环境

target_id = "1abc"  # 替换为你的目标PDB ID或自定义分子名称

# 判断分子是否已加载,未加载则执行fetch
if not cmd.exists(target_id):
    cmd.fetch(target_id)
else:
    print(f"{target_id} 已加载,跳过本次fetch操作")

# 执行后续步骤

注意:如果使用fetch时自定义了分子名称(比如cmd.fetch("1abc", name="my_protein")),检查时必须传入这个自定义名称,而非原始PDB ID。

方法二:遍历已加载对象列表

通过cmd.get_object_list()获取当前所有已加载的分子对象名称列表,再判断目标名称是否在列表内:

import pymol
pymol.finish_launching()

target_name = "1abc"

# 获取所有已加载的分子对象名称
loaded_objects = cmd.get_object_list()

if target_name not in loaded_objects:
    cmd.fetch(target_name)
else:
    print(f"{target_name} 已存在,无需重复加载")

# 执行后续步骤

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:53:39