> 文章列表 > 使用Schrödinger Python API系列教程 -- 介绍 (一)

使用Schrödinger Python API系列教程 -- 介绍 (一)

使用Schrödinger Python API系列教程 -- 介绍 (一)

使用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