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

news/2024/7/19 11:16:46 标签: python, 人工智能, 爬虫

使用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脚本可以通过

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


http://www.niftyadmin.cn/n/226528.html

相关文章

Android 设置背景颜色透明度

前言 本章是对设计给出的颜色做透明度的处理 原因 一般情况下我们是不需要做处理的&#xff0c;那为什么又需要我们做透明度呢&#xff0c;原因就是咱们的设计小哥哥、小姐姐们没有自己做处理&#xff0c;如果处理了的话&#xff0c;我们直接使用设计标注的AHEX颜色就行&a…

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(上)

在求解最小二乘的问题时&#xff0c;已经介绍了类似于Gram-Schmidt的一些想法。在这里要继续介绍这些想法&#xff0c;那就是如何“改写”矩阵A中的列向量&#xff0c;使得最小二乘解的计算越来越简单&#xff0c;甚至可以直接写出答案。 标准正交基(Orthonormal Bases) 上一篇…

如何建立含有逻辑删除字段的唯一索引

文章目录业务场景分析解决总结业务场景 在实际工作当中&#xff0c;遇到一个场景&#xff0c;就是在用户注册时&#xff0c;名字要全局唯一&#xff0c;当然&#xff0c;我们是可以对用户进行删除的&#xff0c;你会怎么去做&#xff1f; 分析 一般来说&#xff0c;我们可以…

python+vue+ 疫情冷链追溯管理系统

疫情冷链的管理&#xff0c;主要是针对疫情初期开发的系统&#xff0c;为了防止传染相关病毒&#xff0c;开发了一款疫情冷链系统&#xff0c;针对国外的疫情产品&#xff0c;进行管理&#xff0c;也是一款加强版的商品库存管理系统&#xff0c;可以对商品进行入库&#xff0c;…

GPT引领学习之旅:适应不同级别程序员的Elasticsearch学习案例

在本文中&#xff0c;我们将为初级、中级和高级程序员分别提供一个Elasticsearch学习案例&#xff0c;展示如何利用GPT进行针对性学习。 一、初级程序员案例&#xff1a;搭建个人博客搜索引擎 假设您是一名初级程序员&#xff0c;想要在自己的个人博客中集成Elasticsearch搜索…

【人工智能与深度学习】监督方法的成功故事: 前置训练

【人工智能与深度学习】监督方法的成功故事: 前置训练 监督方法的成功故事: 前置训练到底什么是自我监督学习?自然语言处理中的自我监督学习Word2Vec(文字转成向量)为什么用自我监督学习呢?加上,可以看出不同东西却只是一个单独数据的不同形式。建立前置任务前置任务示例:预…

项目进度把控难题,项目管理系统轻松帮你解决!

项目管理是企业中非常重要的一项工作&#xff0c;无论是新的项目还是旧的项目&#xff0c;都需要对其进行有效的管理&#xff0c;以确保项目顺利完成并达到预期目标。项目管理涉及到很多方面&#xff0c;比如项目交接、实施计划管理、项目功能管理、项目设备管理等等&#xff0…

第五十九章 线段树(二)

第五十九章 线段树&#xff08;二&#xff09;一、懒标记&#xff08;lazy_tag&#xff09;1、作用2、思路二、结构体定义三、带有懒标记的函数操作1、pushup函数2、build函数3、modify函数4、pushdown函数5、query函数四、代码一、懒标记&#xff08;lazy_tag&#xff09; 1、…