使用Schrödinger Python API系列教程 -- 介绍 (一)
使用Schrödinger Python API系列教程 – 介绍 (一)
本文档可从Schrödinger网站www.schrodinger.com/pythonapi访问。
从Python文档字符串生成的完整API文档可以在这里访问
介绍
在最高级别上,Schrödinger Python API提供了一个基本的分子结构类,并允许与Maestro和Schrödinger计算产品进行编程交互。您可以使用它来自动化工作流程并扩展我们软件的核心功能。
本文档提供了API的概述,但没有提供类和函数API文档中给出的详细级别。它的目标是已经了解Python(或可以自己掌握)并希望使用我们的API来完成科学项目的开发人员。
我们建议您先阅读本概述,然后使用完整的API文档作为参考。Cookbook 可能特别有用;它提供了一组具有易于搜索的目录的示例。从Python文档字符串生成的完整API文档可以在这里访问。有关正在使用的Python API的示例,请参阅该版本中包含的脚本,网址为SCHRODINGER/mshare-v*/Python/common
。示例的另一个来源是SCHRODINGER/mshare-v*/python/scripts
。,其中包含Maestro内部大部分面板的代码。
我们已经在http://groups.google.com/group/schrodinger-developer-forum有关API和文档的问题。我们也非常欢迎提出改进建议。此外,如果您有任何专有问题,请联系help@schrodinger.com.
Python基本信息
近年来,用于学习Python的高质量资源激增,包括在线课程、交互式教程和书籍,其中许多要么是免费的,要么相对便宜。Python的介绍超出了本文档的范围,当您阅读本文档时,任何资源列表都可能已经过时。我们在这里只列出了这些资源的一小部分,以帮助您入门。这些书的最新版本总是首选的,因为语言会随着时间的推移而变化。截至2018-2版本,薛定谔的核心库是针对Python 3编写的,所以你应该更喜欢讲Python 3而不是Python 2的资源。
准备
要使用薛定谔的模块[1],您需要使用薛定谔提供的Python版本,而不是您的计算机附带的Python版本或您在其他时间安装的Python版本。在命令行中,按以下建议键入$SCHRODINGER/run python3
或$SCHROTINGER/run ipython
来调用此命令。
薛定谔模块也可以从Maestro 内部访问(请参阅与Maestro )。
请注意,任何预先安装或单独安装在您的计算机上的Python将无法访问任何Schrödinger模块。如果由于无法找到Schrödinger模块而导致脚本失败,那么在进行故障排除时要检查的第一件事是您正确地调用了Python。
有关使用Schrödinger s Python时安装其他模块的更多信息,请参阅下面。
运行Schrödinger脚本
单独的Python脚本可以通过
$SCHRODINGER/run <script.py> [<script options>]
$SCHRODINGER/run
命令设置Schrödinger提供的可执行文件和库所需的环境变量,以使其正常工作。如果命名脚本没有明确指定的路径,它将搜索许多标准位置。除了SCHRODINGER目录2中的一些内置位置外,还有:
- 当前工作目录。
- 由环境变量
SCHRODINGER_SCRIPTS
指定的目录。 - 目录
<SCHRODINGER_DATA>/scriptsX.Y
,其中<SCHRODINGER_DATA>
在Linux上为~/.schrodinger
,在Windows上为%LOCALAPPDATA%\Schrodinger
。 - 你的PATH
Schrödinger脚本安装工具支持安装到SCHRODINGER_SCRIPTS
前提是您有写权限)和<SCHRODINGER_DATA>
目录。
探索Schrödinger模块
IPython和Jupyter Notebook
探索Schrödinger模块的一个很好的方法是使用Python交互提示符。为此,我们推荐使用IPython shell,它可以通过命令行调用启动
$SCHRODINGER/run ipython
IPython shell简化了代码的交互式研究,因为它提供了制表符补全功能,并且能够立即在shell中内省代码和文档字符串。网上有许多资源可以更多地了解IPython的这些特性和其他特性。
注意,在Maestro (Window菜单中的Python shell)中也提供了IPython shell。
使用下面的命令行调用也可以使用Jupyter Notebook
$SCHRODINGER/run jupyter notebook
从Python 2升级到Python 3
请参阅这篇KB文章以帮助将现有的Schrödinger脚本从Python 2升级到Python 3。
访问您自己的模块
Schrödinger Python安装使用PYTHONPATH
环境变量的方式与任何其他Python安装相同,因此访问您自己的模块的最简单方法是将它们的目录添加到PYTHONPATH
。注意,这些模块必须与Python 3.6兼容,编译模块必须与Schrödinger安装兼容(例如,对于Linux-x86安装,它们必须是32位的)。
如果存在SCHRODINGER PYTHONPATH
环境变量,我们的Python发行版将优先使用它而不是标准PYTHONPATH。这允许不兼容的本地Python
安装与我们的发行版共存。由于Maestro和其他Schrödinger可执行文件使用Python
,如果您的PYTHONPATH
包含不兼容的模块,则设置SCHRODINGER_PYTHONPATH
非常重要。将其设置为空字符串以覆盖PYTHONPATH
,而不指定替代搜索路径。
安装附加模块
要将其他模块安装到本地目录以与Schrödinger的Python发行版一起使用,可以在软件包附带的setup.py
文件上运行$SCHRODINGER/run setup.py install --prefix=$LOCAL_PY_PACKAGES
。(要实现这一点,$LOCAL_PY_PACKAGES/lib/python3.6/site-packages
目录必须存在并且位于PYTHONPATH
中。)有关安装Python包的一般信息,请参阅安装Python模块。
用于安装额外模块的每用户虚拟环境
我们建议那些想要使用Schrödinger Python未附带的附加模块进行实验的用户使用虚拟环境。Python“虚拟环境”是一种独立的、轻量级的用户本地Python安装,可以访问薛定谔模块,用户可以轻松地在其中安装其他Python模块。venv Python模块文档提供了有关此过程的更多详细信息。
请注意,安装在virtualenv中的附加库将不可用在Maestro的交互式Python提示中
如果您希望与多个用户共享第三方模块,或者希望使用更永久的模块集,则可能不需要虚拟环境。相反,只需将它们安装到某个标准目录中,并设置PYTHONPATH
来获取它们。
要激活您的virtualenv
,请在Posix系统的终端键入source schrodinger.ve/bin/activate
,或在Windows上键入schrodinger.ve\Scripts\activate
。(如果您使用的是与csh兼容的shell,则为Source activate.csh。)激活虚拟环境后,导入schrodinger模块应使用裸python命令。例如,schrodinger
导入结构中的python3-c';print(structure.__file__)'
应该会告诉您schrodinger.structure
模块的安装位置。
在Windows上,不再支持bat,应该使用Powershell。
要离开虚拟环境,只需运行deactivate
。
在虚拟环境中,还提供pip实用程序,可用于将包安装到虚拟环境中。如果您有兼容的C编译器,pip install readline
将把readline
模块安装到虚拟环境中。
Schrödinger virtualenv绑定到用于创建它的发行版(由$SCHRODINGER
值给出)。当您更新到一个新版本时,您将需要创建一个新的virtualenv并将您喜欢的包安装到其中。有关如何轻松捕获和重新生成pip安装包的组合的详细信息,请参阅pip freeze命令的pip文档。
设置代码编辑器
不建议在Notepad这样的纯文本编辑器中阅读或编写代码,即使是对于简单的任务也是如此。现代代码编辑器提供语法高亮显示、重构帮助、对文档的集成访问、代码完成等等。
为了设置一个代码编辑器,使其所有功能都能与Schrödinger软件正常工作,您将需要设置一个虚拟环境,如上所述。
如上所述,Schrödinger virtualenv与特定版本绑定。当您更新您的版本时,您将需要生成一个新的virtualenv并将编辑器指向它。
注脚
[1] schrodinger命名空间中的模块位于$schrodinger/mshare-v*
子目录中,该子目录可以通过运行$schrodinger/run python3-c'import os,schrodinge;print(os.path.dirname(schrodinger.__file__))'
。(此目录在Linux和Mac上为$schrodinger/internal/lib/python3.6/site-packages/shrodinger
,在Windows上为$SHCRODINGER/internal/lib/site-paackages/shridinger
。)
[2] 为完整起见,如果$SCHRODINGER/run的脚本参数没有明确指定的路径,则会按顺序搜索以下位置:
- 当前工作目录。
- Schrödinger套件范围内的可执行目录(
$SCHRODINGER/internal/bin
和$SCHRODINGER/internal/Scripts
) - 内置的Schrödinger可执行目录(对于给定的平台规范
$OS_CPU
,为$SCHRODINGER/mshare-v*/$OS_CPU/bin)
。 - 由环境变量
SCHRODINGER_SCRIPTS
指定的目录。 - 目录
<SCHRODINGER_DATA>/<RELEASE>/scripts
。 - 目录
$SCHRODINGER/mshare-vX.Y/python/common
。 - 目录
$SCHRODINGER/mshare-vX.Y/python/scripts
。 - 你的PATH
参考
https://www.schrodinger.com/sites/default/files/s3/public/python_api/2022-2/maestro_overview.html#maestro-overview