Jupyter客户端,通过OPTIMADE API搜索结构
项目描述
OPTIMADE Jupyter小部件和Voilà应用程序
查询并从OPTIMADE提供者(COD、MaterialsCloud、NoMaD、Materials Project、ODBX、OQMD等)导入结构。该软件包提供了一个用于查询OPTIMADE提供者的Jupyter小部件以及一个示例Voilà应用程序,可以将小部件堆叠成网络应用程序。
当前支持的OPTIMADE API版本:1.1.0
、1.0.0
、1.0.0-rc.2
、1.0.0-rc.1
、0.10.1
安装方式
pip install ipyoptimade
运行客户端
此基于Jupyter的应用程序旨在在以下环境中运行:
- 在AiiDAlab以及Quantum Mobile虚拟机内部;
- 作为MaterialsCloud工具;
- 作为独立的MyBinder应用程序;或
- 作为独立的本地应用程序(有关更多信息,请参见下文)。
AiiDAlab中,使用Home App中的App Store来安装它。
用法
AiiDAlab
要在自己的AiiDAlab应用程序中使用OPTIMADE结构导入器,请编写以下内容:
from aiidalab_widget_base import OptimadeQueryWidget
from aiidalab_widgets_base.viewers import StructureDataViewer
from ipywidgets import dlink
structure_query = OptimadeQueryWidget()
structure_viewer = StructureDataViewer()
# Save to `_` in order to suppress output
_ = dlink((structure_query, 'structure'), (structure_viewer, 'structure'))
display(structure_query)
display(structure_viewer)
这将立即显示一个查询小部件,其中包含实现OPTIMADE API的当前结构数据库的下拉列表。
然后您可以根据元素、元素数量、化学式等进行筛选,以找到结构族。请参阅OPTIMADE API规范,以获取完整的筛选选项及其描述。
为了深入了解特定结构的细节,您还可以导入和显示OptimadeResultsWidget
。
请参阅笔记本optimade-client.ipynb
,了解如何设置通用OPTIMADE导入器。
嵌入
查询小部件还可以嵌入到另一个应用程序中。
为此,可以在初始化小部件时通过传递embedded=True
使用小部件的更“简约”版本,即structure_query = OptimadeQueryWidget(embedded=True)
。
其他内容的工作方式相同,因此您仍然需要将查询小部件链接到应用程序的其他部分。
通用Jupyter笔记本
该软件包的小部件也可以在任意通用Jupyter笔记本以及AiiDAlab中使用。示例
from ipyoptimade import
OptimadeQueryProviderWidget,
OptimadeQueryFilterWidget,
OptimadeSummaryWidget
from ipywidgets import dlink
database_selector = OptimadeQueryProviderWidget()
structure_query = OptimadeQueryFilterWidget()
structure_viewer = OptimadeSummaryWidget()
# Save to `_` in order to suppress output
_ = dlink((database_selector, 'database'), (structure_query, 'database'))
_ = dlink((structure_query, 'structure'), (structure_viewer, 'entity'))
display(database_selector, structure_query, structure_viewer)
这将使用软件包自己的结构查看器和摘要小部件。
注意,上面提到的OptimadeQueryWidget
是AiiDAlab中针对OptimadeQueryProviderWidget
和OptimadeQueryFilterWidget
小部件的特殊包装小部件。
本地运行应用程序
要本地运行应用程序,您需要安装Jupyter。然后您可以通过在Jupyter中打开笔记本optimade-client.ipynb
并运行所有单元格来运行应用程序。如果您已安装voila
软件包,您还可以通过在Jupyter笔记本工具栏中单击Voilà按钮在Voilà中运行应用程序。
配置(Voilà)
为了在Binder上运行应用程序(在Voilà中),可以使用配置文件jupyter_config.json
。
如果您希望以相同的配置在本地启动Voilà服务器,可以将jupyter_config.json
文件复制到您的Jupyter配置目录,并将其重命名为voila.json
,或者在使用CLI启动服务器时传递配置。
注意:
jupyter_config.json
在通过optimade-client
命令运行应用程序时自动复制为voila.json
。
定位您的Jupyter配置目录
jupyter --config-dir
/path/to/jupyter/config/dir
使用CLI启动Voilà服务器时传递配置的示例
voila --enable_nbextensions=True --VoilaExecutePreprocessor.timeout=180 "OPTIMADE-Client.ipynb"
要查看配置的完整列表,可以调用voila
并传递--help-all
。
使用“开发”提供者运行(特定于Materials Cloud)
将环境变量ipyoptimade_DEVELOPMENT_MODE
设置为1
(True
的整数值1
或False
的整数值0
)以强制使用提供者的开发服务器(目前仅针对Materials Cloud相关)。
开发
安装方式
pip install -e .[dev]
pre-commit install
设置
export ipyoptimade_DEBUG=1
以自动打开并显示OptimadeLog()
小部件中的调试和错误消息。
使用以下方式测试Voilà
voila optimade-client.ipynb
如果依赖关系已更新,请更新用于binder的Docker映像的requirements.txt
文件。更新文件的命令包含在requirements.txt
文件顶部。
创建新版本
要创建新版本,请克隆存储库,使用pip install -e '.[dev]'
安装开发依赖项,然后执行bumpver update [--major|--minor|--patch] [--tag-num --tag [alpha|beta|rc]]
。这将
- 创建带有提升版本的标记版本并将其推送到存储库。
- 触发GitHub动作工作流程,创建GitHub版本并在PyPI上发布。
附加说明
- 使用
--dry
选项预览版本更改。 - 版本标签(例如a/b/rc)由最后发布版本确定。使用
--tag
选项切换版本标签。 - 此包遵循语义版本控制。
许可
MIT。许可证条款可以在LICENSE文件中找到。
致谢
BIG-MAP;本项目已获得欧盟“地平线2020”研究和创新计划的资金支持,协议编号为No 957189。该项目是BATTERY 2030+的一部分,这是旨在发明可持续未来电池的大规模欧洲研究倡议。 |
联系方式
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
ipyoptimade-1.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cbed2a385e7e7c8ffbb23ca7326357518cc9053f9c1a6543f7067dbc453140b2 |
|
MD5 | dabb8005d4871797aa014f772ec37ad5 |
|
BLAKE2b-256 | 048b3db5d9214ee4bf5f4df9a78a1de31495597f320c98b6cdcc8b2682e87ce5 |
ipyoptimade-1.1.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2204b9d9f0754fed875385dd38ae94ae5f2c8d63b1b76ecf41007b73092b3d27 |
|
MD5 | 61cc2fa3b0d9e055cd150011383443b8 |
|
BLAKE2b-256 | b4a11904e24e47698126c7cbecc8077278c7fc5ee072241334a64527bbb13450 |