为什么 python 生成的 pymol (pml) 脚本在 PyMoL 中不正确 运行?
Why does a pymol (pml) script generated by python not run correctly in PyMoL?
我写了一个 python 脚本,它获取上游结果并将其输出为 pml 脚本(一系列 PyMoL 命令)。我在pymol文件运行的时候,有些命令运行,但是命令行returns 'Invalid selection' Selector-Errors.
比如。脚本 returns 文本行如:
fetch 3MPF
create 3MPFB63,3MPF and c. B and i. 63-68
remove 3MPF
align 3MPFB63, ref
当脚本在 PyMoL 中为 运行 时,它表示:
PyMOL>fetch 3MPF
please wait ...
PyMOL>create 3MPFB63,3MPF and c. B and i. 63-68
Selector-Error: Invalid selection name "3MPF".
( 3MPF and c. B and i. 63-68 )<--
PyMOL>remove 3MPF
Selector-Error: Invalid selection name "3MPF".
( 3MPF )<--
PyMOL>align 3MPFB63, ref
Selector-Error: Invalid selection name "3MPFB63".
3MPFB63<--
但是,当错误中的这些命令是单独 运行 时,即复制和粘贴代码段 create 3MPFB63,3MPF and c. B and i. 63-68
时,命令 运行 非常好,可以进行选择并创建对象.
如有任何帮助,我们将不胜感激。
似乎这个问题的答案是在 fetch 调用中包含 async=0,强制命令行在执行第二个命令之前等待来自该命令的 return,即它是试图 select 对象存在之前。
例如,
fetch 3MPF, async=0
create 3MPFB63,3MPF and c. B and i. 63-68
delete 3MPF
align 3MPFB63, ref
这现在可以正常工作了。 post 如果在完整的 PML 自动 运行.
时出现其他问题,将返回 post
经典,"as soon as you resort to asking on SO you figure it out,"情况。
我写了一个 python 脚本,它获取上游结果并将其输出为 pml 脚本(一系列 PyMoL 命令)。我在pymol文件运行的时候,有些命令运行,但是命令行returns 'Invalid selection' Selector-Errors.
比如。脚本 returns 文本行如:
fetch 3MPF
create 3MPFB63,3MPF and c. B and i. 63-68
remove 3MPF
align 3MPFB63, ref
当脚本在 PyMoL 中为 运行 时,它表示:
PyMOL>fetch 3MPF
please wait ...
PyMOL>create 3MPFB63,3MPF and c. B and i. 63-68
Selector-Error: Invalid selection name "3MPF".
( 3MPF and c. B and i. 63-68 )<--
PyMOL>remove 3MPF
Selector-Error: Invalid selection name "3MPF".
( 3MPF )<--
PyMOL>align 3MPFB63, ref
Selector-Error: Invalid selection name "3MPFB63".
3MPFB63<--
但是,当错误中的这些命令是单独 运行 时,即复制和粘贴代码段 create 3MPFB63,3MPF and c. B and i. 63-68
时,命令 运行 非常好,可以进行选择并创建对象.
如有任何帮助,我们将不胜感激。
似乎这个问题的答案是在 fetch 调用中包含 async=0,强制命令行在执行第二个命令之前等待来自该命令的 return,即它是试图 select 对象存在之前。
例如,
fetch 3MPF, async=0
create 3MPFB63,3MPF and c. B and i. 63-68
delete 3MPF
align 3MPFB63, ref
这现在可以正常工作了。 post 如果在完整的 PML 自动 运行.
时出现其他问题,将返回 post经典,"as soon as you resort to asking on SO you figure it out,"情况。