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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/12217.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE】关于synchronized总结-Callable用法及JUC的常见问题

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶synchronized原理是什么&#xff1f;synchronized到底有什么特点&#xff0c;synchronized的锁策略是什么&#xff0c;是怎么变化的呢&#xff1f;本篇文章总结出, Synchronized 具有以下特性…

HyperWorks2021软件安装教程

下载软件 https://www.xsoftnet.com/share/a0004MWyQAg9r.html产品介绍&#xff1a; HyperWorks一款功能强大的开放式架构仿真软件。拥有先进的技术以及高性能、高效和创新的产品&#xff0c;为用户提供了设计、仿真和制造等服务。支持电磁分析设计、材料建模制造、多物理场分…

【数据结构】二叉树链式结构

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

18 隐私模式下面发送 http 请求不成功

前言 是这样的一个情况, 最近 我们服务存在这样的一个问题 是在登录界面, 假设我用户名 或者 密码输入错误, 能够得到真确的结果, 拿到了 正常的 http 响应, 回来 "用户名 或者 密码 不正确 " 但是 假设是在 隐私模式下面, 同样的输入, 同样的服务, 但是结果 不一…

【配电网故障重构SOP】基于二阶锥松弛的加光伏风机储能进行的配电网故障处理和重构【考虑最优潮流】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Java多线程基础学习(一)

1. 创建线程 1.1 通过构造函数&#xff1a;public Thread(Runnable target, String name){} 或&#xff1a;public Thread(Runnable target){} 示例: Thread thread1 new Thread(new MyThread(), "mythread"); class MyThread extends Thread(){public void …

联盟链是虚构的?没有用的?用FISCO BCOS来展示链委员这件事

前言 当前区块链大都使用的是投票决定这种方法&#xff0c;但是如何使现实中的投票转换到区块链中&#xff0c;如何让举手表决变得更加智能&#xff0c;如何让投票透明、安全、权威&#xff0c;这是区块链的一大设计思路&#xff0c;有很多人觉得联盟链是个梦&#xff0c;是个虚…

计算机网络简史

ARPANET的发展 互联网最早的雏形 1931-ARPANET设计 互联网名人堂 1965-packet switching(分包交换) 1969 第一个RFC(Request for Comments)(开始通过APPANET发布)第一个接口信息处理单元&#xff08;Interface Message Processor&#xff09;&#xff08;下图&#xff0c;节…

制造企业该如何选择MES生产管理系统?盘点四大生产管理系统软件

本文将介绍&#xff1a;1、如何选择MES(生产管理系统&#xff09;&#xff1b;2、盘点四款好用的生产管理系统 生产管理系统即MES(Manufacturing Execution System)&#xff0c;制造执行系统。是面向车间生产的管理系统。在产品从工单发出到成品完工的过程中&#xff0c;MES系…

提取图像特征方法总结 是那种很传统的方法~

目录 写在前面 一、SIFT&#xff08;尺度不变特征变换&#xff09; 1.SIFT特征提取的实质 2.SIFT特征提取的方法 3.SIFT特征提取的优点 4.SIFT特征提取的缺点 5.SIFT特征提取可以解决的问题&#xff1a; 二、HOG&#xff08;方向梯度直方图&#xff09; 1.HOG特征提取…

webgl-图形非矩阵旋转

知识拓展 由&#xff08;x1,y1&#xff09;旋转β角度到&#xff08;x2,y2&#xff09; 根据圆极坐标方程 x1 r*cosα y1 r*sinα 可得 x2 r*cos(α β) r*cosα*cosβ - r*sinα*sinβ,因为x1 r*cosα&#xff0c;y1 r*sinα&#xff0c;所以x2 x1*cosβ -y1*sinβ…

Linux 提权学习

提权的目的是获取 root 权限 root 权限可获取 shadow 文件中的密码 Hash&#xff0c;若内网环境中存在「账户/密码复用」的情况&#xff0c;可用于横向扩展 暴力破解 suid 提权 内核漏洞提权 定时任务提权 sudo 提权 第三方服务提权&#xff08;docker、mysql、redis、NFS提权…

【C++】结构体嵌套结构体

目录 1、缘起 2、结构体嵌套结构体 3、总结 1、缘起 结构体嵌套结构体 是一种数据组织方式&#xff0c;就像 俄罗斯套娃 一样&#xff0c;一个数据结构可以包含另一个数据结构。这种嵌套结构使得程序可以更加灵活地处理数据&#xff0c;从而更好地满足复杂的需求。类比生活中…

Can‘‘t connect to MySQL server on localhost (10061)解决方法

首先检查MySQL 服务没有启动》如果没有启动&#xff0c;则要启动这个服务。 有时候安装mysql后使用mysql命令时报错 Cant connect to MySQL server on localhost (10061)&#xff0c;或者用net start mysql 时报服务名无效&#xff0c;一般是因为mysql服务没有启动。 打开 powe…

MySQL中使用IN()查询到底走不走索引?

MySQL中使用IN&#xff08;&#xff09;查询到底走不走索引&#xff1f; 看数据量 EXPLAIN SELECT * from users WHERE is_doctor in (0,1); 很明显没走索引&#xff0c;下面再看一个sql。 EXPLAIN SELECT * from users WHERE is_doctor in (2,1);又走索引了&#xff0c;所以…

day81【leetcode】打家劫舍专题

文章目录前言一、打家劫舍&#xff08;力扣198&#xff09;【相邻两间房不能偷】二、打家劫舍 II&#xff08;力扣213&#xff09;【围成一圈 相邻两间房不能偷】三、打家劫舍 III&#xff08;力扣337&#xff09;【树形DP】每日一题day81&#xff1a;链表中的下一个更大节点&a…

Java:jdk的安装以及hello world

由于本人头发较多&#xff0c;常常被认为是不用功的程序员&#xff1b;故&#xff0c;我来学学Java&#xff0c;希望我变秃了也变强了&#xff01; 首先是java的安装&#xff0c;根据我司java的建议&#xff0c;安装了jdk8与jdk17&#xff01;因为在众多的版本中&#xff0c;只…

《Netty》从零开始学netty源码(三十九)之PoolSubPage的内存分配

目录 PoolSubPage.allocategetNextAvail方法toHandle方法removeFromPool方法 PoolSubPage.allocate 上一篇我们介绍了PoolSubPage的简单知识&#xff0c;当我们需要PoolSubPage的内存时可调用allocate方法查找可分配二进制的位置&#xff0c;具体的源码过程如下&#xff1a; …

vite .env.test环境使用ant design vue ,打包后a-date-picker控件无法选择日期

前端开发后台管理系统&#xff0c;常用的UI库当属Element UI和 Ant Design Vue&#xff0c;但是前段时间遇到一个奇葩问题&#xff0c;在这里记录一下&#xff0c;防止小伙伴们踩坑。 后台系统&#xff0c;大家肯定都用过时间控件&#xff0c;本期我们使用的是ant design vue&…

网络-IP地址(嵌入式学习)

IP地址基本概念IPv4 五类&#xff1a;A B C D E特殊地址子网掩码子网号概念IPv6优势举个栗子基本概念 IP地址是Internet中主机的标识 IP地址&#xff08;Internet Protocol Address 互联网国际地址&#xff09;是一种在Internet上的给主机编址的方式&#xff0c;它主要是为互…