MolSSI QikProp as a Service的API封装CLI和库
项目描述
MolSSI QikProp As A Service API Wrapper Library
一个封装QikProp v3 As A Service API调用的库
该库所达到的QikProp版本由William L. Jorgensen提供,并由分子科学软件学院(MolSSI)托管作为服务。如有问题或建议改进,请在项目GitHub上提交问题。随着时间的推移,将添加更多功能和选项。
该项目作为Python封装,提供可导入的库和CLI工具,以便调用QikProp服务。
有关API端点的直接信息,请参阅项目GitHub。
从Conda或Pip安装
此软件包可以从Conda(通过Conda-Forge)或Pip安装
conda install -c conda-forge qikpropservice
或者
pip install qikpropservice
从源安装
- 克隆https://github.com/MolSSI/qikpropservice上的仓库
- 导航到文件夹
apiwrapper
- 运行
python setup.py install
作为CLI工具使用
可以从任何命令行界面通过调用运行CLI
qikpropcli
CLI为其自己的使用方式提供了文档,但最常见的情况如下
qikpropcli run FILES
在 FILES
可以替换为任何数量要提交给 QikProp 服务 API 端点的文件条目。这里可以指定一些选项,例如自定义 URI 服务器(例如,用于本地测试)或 QikProp 选项,但所有这些都在 --help
标志中进行了说明。
作为 Python 库的使用
根据您是想进行大量批量处理还是更精细的逐文件处理,有两个主要的库函数。在任一情况下,库都处理磁盘上的文件,而不是预先读入内存中的数据。
主要的辅助函数是 qikprop_as_a_service
,它在很大程度上与 CLI 的行为相似,以相同的方式处理多个文件。
from qikpropservice import qikprop_as_a_service
qikprop_as_a_service("file1.mol, file2.mol, ligand_series*.mol2")
这将运行两个命名的文件 file1.mol
、file2.mol
以及所有匹配 glob ligand_series*.mol2
的文件。可以通过关键字设置每个返回的 .tar.gz
文件的输出名称。还有其他选项,例如可以传递给 QikProp 的设置等。请参阅函数文档字符串或调用 qikprop_as_a_service.__doc__
以查看选项。
第二个对象是 API 端点调用包装器 QikpropAsAService
,可用于与现有流程集成并直接进行 API 调用,而无需直接编写请求。此类仅按调用/文件的基础进行操作。《qikprop_as_a_service》函数使用此类对每个文件进行所有调用和操作。其最常见的调用方式如下(在实际应用中包装),但 URI、端点、哈希函数等都可以在类初始化时设置。
from qikpropservice import QikpropAsAService, QikPropOptions
from time import sleep
service = QikpropAsAService()
# Example of options, there are defaults for this model and it does not need to be passed to the Service calls
# if only defaults are wanted
options = QikPropOptions(fast=True, similar=30)
success, ret_code, data = service.post_task("file1.mol", options=options)
task_id = data["id"]
while True:
success, ret_code, ret_data = service.get_result(task_id=task_id, output_file="file1_result.tar.gz")
if success:
break
sleep(5)
请参阅每个类和函数的文档,以了解其选项和预期返回值。
实用工具
有一个预期的返回码数据类 StatusCodes
。它是一个简单的信息容器,有关 QikProp 服务 API 端点通常返回的 HTTP 代码及其含义。
使用以下方式导入类
from qikpropservice import StatusCodes
StatusCodes.ready # 200
StatusCodes.created # 201
StatusCodes.staged # 202
StatusCodes.error # 220
StatusCodes.null # 404
StatusCodes.unmatched # 409
其中每个属性和代码都对应于特定的含义。
- 就绪:200 - GET 和 POST
- 任务就绪,可以拉取。
- 已创建:201 - POST
- 已提交的任务已被服务器接受,并且输入验证没有问题。
- 已排队:202 - GET
- 任务已排队在服务中,但尚未处理或正在处理。
- 错误:220 - GET
- 任务已处理,但与处理有关的问题。请参阅数据字典或拉取错误文件以获取详细信息。
- 空:404 - GET
- 服务器上不存在具有给定 ID 的任务。
- 不匹配:409 - GET 和 POST
- 对于提供的任务 ID 和文件数据,校验和/哈希不匹配。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
qikpropservice-0.2.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 66a03d09fba1402cf8ddd361ccb3b42452e6320dfc83d10716e8e466875b9d89 |
|
MD5 | 89c0368eb331a5f16285c66b299c5c46 |
|
BLAKE2b-256 | a42dcbeb8f30ef75dc2d14dc0df1b77694095c9e18a9c9b3c630d98c4e8de3f2 |
qikpropservice-0.2.4-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e79011cac6ffd4b17c86ebd4d666cc9e825048d694fd8b2d65d261b9f3357a35 |
|
MD5 | 60fb5f62a9de283f5268cdd05c35b86e |
|
BLAKE2b-256 | 01f2ee8f06d7446ca2bf341e7e10b3fa931b6e4f74e75a1efc2b99c2b335e2e5 |