如何将PyMOL中导入的新分子默认设置为ball and stick显示模式?
在PyMOL中设置新导入分子默认显示为Ball and Stick模式
要实现每次导入新分子自动应用Ball and Stick显示,不能直接在pymol.rc中执行preset.ball_and_stick(启动时无分子可选择),也不能仅靠set stick_ball, on(仅开启stick的球选项,不改变默认显示模式),可以通过以下两种方法解决:
方法1:利用加载完成事件触发预设
在pymol.rc中添加以下代码,监听分子加载完成的事件,自动对新导入的分子应用Ball and Stick预设:
# 定义自动应用Ball and Stick的函数 def auto_ball_and_stick(filename, obj_name): preset.ball_and_stick(selection=obj_name, mode=1) # 注册为加载完成后的回调函数 cmd.set('load_finished', 'auto_ball_and_stick')
这个方法会针对每个新加载的分子对象单独应用预设,不会影响已有的分子显示。
方法2:修改默认显示参数
如果不需要完整的preset配置,也可以直接修改PyMOL的默认显示设置,让新分子默认以带球的stick模式显示:
# 设置默认显示模式为stick set default_show, stick # 开启stick的球显示 set stick_ball, on # 可选:调整球和stick的尺寸 set stick_radius, 0.15 set sphere_scale, 0.25
为什么之前的方法无效?
preset.ball_and_stick(selection='all')在pymol.rc中执行时,PyMOL刚启动还没有任何分子,选择all为空,所以命令不生效。set stick_ball, on只是开启了stick显示时附带球的选项,但默认显示模式还是cartoon或其他,所以新分子不会自动用stick模式显示。
内容的提问来源于stack exchange,提问作者user21101711
相关产品推荐
相关产品推荐

