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

news2025/1/22 16:06:56

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis总结之-jedis

redis总结之-jedis4. Jedis4.1 Jedis简介4.1.1 编程语言与redis4.1.2 准备工作4.1.3 代码实现4.2 Jedis简易工具类开发4.2.1 基于连接池获取连接4.2.2 封装连接参数4.2.3 加载配置信息4.2.4 获取连接4.3 可视化客户端总结计划 1. Redis 入 门&#xff08;了解&#xff09;&…

LNMP网站框架搭建(编译安装的方式)

1. Nginx的工作原理 php-fpm.conf 是控制php-fpm守护进程的 php.ini是php解析器 工作进程&#xff1a; 1.客户端通过域名进行请求访问时&#xff0c;会找Nginx对应的虚拟主机 2. Nginx对该请求进行判断&#xff0c;如果是静态请求,Nginx会自行处理&#xff0c;并将处理结果…

因果推断14--DRNet论文和代码学习

目录 论文介绍 代码实现 DRNet ReadMe 因果森林 论文介绍 因果推断3--DRNet&#xff08;个人笔记&#xff09;_万三豹的博客-CSDN博客 摘要&#xff1a;估计个体在不同程度的治疗暴露下的潜在反应&#xff0c;对于医疗保健、经济学和公共政策等几个重要领域具有很高的实…

ERP系统有什么用?主要是这三方面

ERP 是Enterprise Resource Planning 的缩写&#xff0c;即企业资源计划系统,是建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。它实现了企业内部资源和企业相关的外部资源的整合。通过软件把企业的人、财、物、产、供、销及相应的物…

socket 到底是个啥

哈喽大家好&#xff0c;我是咸鱼 我相信大家在面试过程中或多或少都会被问到这样一个问题&#xff1a;你能解释一下什么是 socket 吗 我记得我当初的回答很是浅显&#xff1a;socket 也叫套接字&#xff0c;用来负责不同主机程序之间的网络通信连接&#xff0c;socket 的表现…

整柜海运到美国的规格和收费标准是什么

整柜海运是指将所有货物安装在一个整箱内&#xff0c;由发货人和收货人共同操作&#xff0c;而目的港的收货人一般只有一个&#xff0c;方便操作。整柜海运到美国的主要流程有以下几个步骤&#xff1a;订舱、装柜、报关、海运、清关、提柜和送货。实际上&#xff0c;国际物流出…

IDEA 2023.1 最新变化

IntelliJ IDEA 2023.1 最新变化 在 IntelliJ IDEA 2023.1 中&#xff0c;我们根据用户的宝贵反馈对新 UI 做出了大量改进。 我们还实现了性能增强&#xff0c;从而更快导入 Maven&#xff0c;以及在打开项目时更早提供 IDE 功能。 新版本通过后台提交检查提供了简化的提交流程…

写博客8年与人生第一个502万

题记&#xff1a;我们并非生来强大&#xff0c;但依然可以不负青春。 原本想好好写一下如何制定一个目标并通过一点一滴的努力去实现&#xff0c;这三年反思发现其实写自己的经历并不重要。 很多人都听过一句话&#xff1a;榜样的力量是无穷的。 更现实和实际的情况是&#x…

【LeetCode】每日一题:移除元素

目录 题目&#xff1a; 思想1&#xff1a;暴力解法 思想2&#xff1a;创建一个temp数组 思想3&#xff1a;双指针 &#x1f47b;内容专栏&#xff1a;《LeetCode刷题专栏》 &#x1f428;本文概括&#xff1a;27.移除元素 &#x1f43c;本文作者&#xff1a;花 碟 &#x1…

电商评论数据爬取--R语言

1.网络爬虫 1.1 什么是网络爬虫 网络爬虫&#xff08;web crawler&#xff09;&#xff0c;也被称为网络蜘蛛&#xff08;web spider&#xff09;&#xff0c;是在万维网浏览网页并按照一定规则提取信息的脚本或者程序。 浏览网页时&#xff0c;一般流程如下&#xff1a; 利…

C++语法(17)---- 二叉搜索树

1.概念 1.父节点的左子树全小于本身 2.父节点的右子树全大于本身 3.左右子树也是二叉搜索树 时间复杂度&#xff1a;O(N)&#xff0c;有可能只有左数&#xff0c;这样就遍历了所有&#xff0c;所有复杂度为N 平衡二叉树的时间复杂度才是&#xff1a;O(logN) 2.模拟 1.数据元素…

Postman抓包教程

目录 什么是抓包&#xff1f; 如何使用 Postman 进行抓包 查看历史抓包数据 使用抓包数据进行接口测试和开发 抓包技巧和注意事项 什么是抓包&#xff1f; 在计算机网络中&#xff0c;抓包是指捕获网络流量的过程。抓包工具可以截获进出计算机网络的数据流&#xff0c;并将…

反向传播推导+numpy实现

很久没有看深度学习了&#xff0c;忘了好多东西。本来想着推导一下&#xff0c;后来发现自己不会了。 再看看以前写的代码&#xff0c;又避开了最终的东西&#xff0c;于是决定重新推导一下。 数据的说明 首先&#xff0c;我们要做一个回归的任务&#xff0c;我们使用numpy随…

5.Java循环控制语句

Java循环控制语句 循环是Java中应用最为广泛的一个知识点&#xff0c;所以也是很需要掌握的。所谓循环&#xff0c;即通过判断条件&#xff0c;重复执行一段代码&#xff0c;根据条件的变化&#xff0c;来确定代码是否执行&#xff0c;执行次数。 一、循环结构 1、while循环…

Java IO常用操作详解(代码示例)

概览 Java I/O操作指的是数据的输入/输出操作。 Java的I/O操作类在java.io包中&#xff0c;主要分以下几种&#xff1a; 基于字节操作的I/O接口&#xff1a; InputStream和OutputStream基于字符操作的I/O接口&#xff1a; Writer和Reader基于磁盘操作的I/O接口&#xff1a; …

5个令人惊艳的AI项目,开源了。。

大家好&#xff0c;我是 Jack。 今天清明&#xff0c;小伙伴们都去哪里玩了&#xff1f; 上个月我已经出去浪过了&#xff0c;清明就老实在家歇着了。 翻看了一些最近热点的开源项目&#xff0c;发现还是 AIGC 的天下。 今天&#xff0c;我将继续着重挑选几个近期的优质开源…

2023第十四届蓝桥杯C++B组菜鸡的落幕

时隔几天&#xff0c;终于还是忍不住来复盘一下蓝桥杯了&#xff0c;还记得去年参加做下填空&#xff0c;再做对个把编程&#xff0c;后面不会的大题打打表混混分&#xff0c;最后就能混个省奖&#xff0c; 这回估计凉透了,填空没对似乎&#xff0c;编程也没对几个&#xff0c;…

Kettle8.2.0连接Hive3.1.2(踩坑,亲测有效)

这是目前遇到的最简单但最头疼的安装&#xff0c;因为是在公司之前用过的服务器上进行安装测试&#xff0c;加上又使用比较新的版本&#xff0c;结果踩了不少坑。Kettle连接Hive这个坑&#xff0c;从2023年4月11日下午开始&#xff0c;一致到2023年4月12日中午才弄好&#xff0…

uni-app常用配置

保存自动格式化 工具》设置》编辑器设置》保存时自动格式化 JS语法检查 安装eslint-js插件eslint-js - DCloud 插件市场 用于校验js和html中的js代码https://ext.dcloud.net.cn/plugin?id2037工具》设置》插件配置》eslint-js 启用实时校检 Vue语法检查 安装eslint-vue插…

【星界探索——通信卫星】铱星:从“星光坠落”到“涅槃重生”,万字长文分析铱星卫星系统市场

【星界探索——通信卫星】铱星&#xff1a;从“星光坠落”到“涅槃重生”一、铱星简介二、铱星系统设计思路2.1 工作原理2.2 铱星布局三、铱星优势四、发展历程五、第一代铱星公司的破产原因分析5.1 终端和资费价格高昂&#xff0c;市场用户群体小5.2 财务危机5.3 市场分析不足…