Pymatgen-db 是 Python 材料基因组(pymatgen)材料分析库的数据库插件。
项目描述
Pymatgen-db 是 Python 材料基因组(pymatgen)材料分析库的数据库插件。它使您能够创建 Materials Project 风格的 MongoDB 数据库来管理材料数据。还提供了一个查询引擎,以便将 MongoDB 文档轻松转换为用于分析的有用 pymatgen 对象。
主要变更
从 2021.5.13 版本开始,pymatgen-db 现在是 pymatgen 的正确命名空间插件。换句话说,您不再从 matgendb 导入,而是从 pymatgen.db 导入。
获取 pymatgen-db
稳定版本
在任一系统上安装 pymatgen-db 最简单的方法是使用 pip,如下所示
pip install pymatgen-db
需求
如果您使用 easy_install 或 pip 安装 pymatgen-db,所有必要的 Python 依赖项将自动处理。否则,这些包应在 PyPI 上可用。
Python 3.7+ 需要。
Pymatgen 2022+,包括与之相关的所有依赖项。有关详细安装说明,请参阅 pymatgen 文档。
Pymongo 3.3+:用于与 MongoDb 交互。
MongoDB 2.2+:从 MongoDB 网站获取。
用法
一个强大的命令行脚本(mgdb)提供了对pymatgen-db中大多数功能的访问,包括数据库初始化、数据插入、运行材料基因组学UI等。要查看所有可用选项,请输入
mgdb --help
初始设置
第一步是在您选择的服务器上安装和设置MongoDB。MongoDB手册(http://docs.mongodb.org/manual/)是开始的好地方。为了测试这里提供的工具,您可以从MongoDB网站下载与您的操作系统对应的二进制发行版,然后运行以下命令
# For Mac and Linux OS. mkdir test_db && mongod --dbpath test_db
这将创建一个测试数据库并启动Mongo守护进程。一旦测试完成,您可以简单地按Ctrl-C停止服务器并删除“test_db”文件夹。以这种方式运行Mongo服务器是不安全的,因为Mongo默认不启用身份验证。在设置您的生产数据库时,请参阅MongoDB手册。
服务器启动后,您应该运行以下命令创建数据库配置文件
mgdb init -c db.json
这将提示您输入一些参数以创建数据库配置文件,这将使将来使用mgdb变得更容易。请注意,配置文件名可以是您选择的任何名称,但使用“db.json”将允许您将来使用mgdb而不必明确指定文件名。如果您只是使用测试数据库进行测试,只需按Enter键接受所有设置的默认值。
有关“db.json”配置文件的更高级使用(例如,指定别名、默认值等),请参阅以下示例。
插入计算
要将整个运行目录(最顶层目录为“dir_name”)插入数据库,请使用以下命令
# Note that "-c db.json" may be omitted if the config filename is the # current directory under the default filename of db.json. mgdb insert -c db.json dir_name
为了测试目的,已提供示例运行。解压文件并在该目录中运行上述命令。
查询数据库
有时需要更细粒度的查询(例如,用于后续的后处理和分析)。
mgdb脚本允许您从命令行进行简单查询
# Query for the task id and energy per atom of all calculations with # formula Li2O. Note that the criteria has to be specified in the form of # a json string. Note that "-c db.json" may be omitted if the config # filename is the current directory under the default filename of db.json. mgdb query -c db.json --crit '{"pretty_formula": "Li2O"}' --props task_id energy_per_atom
对于更复杂的查询,您可以使用根包中提供的QueryEngine类。以下是一些示例
>>> from pymatgen.db import QueryEngine # Depending on your db.json, you may need to supply keyword args below # for `port`, `database`, `collection`, etc. >>> qe = QueryEngine() #Print the task id and formula of all entries in the database. >>> for r in qe.query(properties=["pretty_formula", "task_id"]): ... print "{task_id} - {pretty_formula}".format(**r) ... 12 - Li2O # Get a pymatgen Structure from the task_id. >>> structure = qe.get_structure_from_id(12) # Get pymatgen ComputedEntries using a criteria. >>> entries = qe.get_entries({})
语法非常接近pymongo/MongoDB,除了QueryEngine为常用字段提供了有用的别名,以及将常用pymatgen对象(如Structure和ComputedEntries)转换为常用语法。
扩展pymatgen-db
目前,pymatgen-db是以标准的VASP运行编写的。然而,它可以很容易地扩展到任何类型的数据,例如其他类型的VASP运行(能带结构、NEB等)或任何形式的数据。希望将pymatgen-db用于其他目的的开发者应查看VaspToDbTaskDrone类作为示例,并为他们的需求编写类似的无人机。QueryEngine通常可以应用于任何Mongo集合,如果需要,可以适当指定别名。
如何引用pymatgen-db
如果您在研究中使用了pymatgen和pymatgen-db,请考虑引用以下工作
Shyue Ping Ong, William Davidson Richards, Anubhav Jain, Geoffroy Hautier, Michael Kocher, Shreyas Cholia, Dan Gunter, Vincent Chevrier, Kristin A. Persson, Gerbrand Ceder. 《Python Materials Genomics (pymatgen) : A Robust, Open-Source Python Library for Materials Analysis.》Computational Materials Science, 2013, 68, 314-319. doi:10.1016/j.commatsci.2012.10.028
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码发行版
构建发行版
pymatgen-db-2023.7.18.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ca0acab590c1cc1000d745b8001ddd2e26ee56612257754ce21d96db69b0f8b2 |
|
MD5 | b53c5fed6d64f22a2d3985d59d718346 |
|
BLAKE2b-256 | f807d728b338f2ecdd609d9f84f377021aeab87a13f1ea24a656e26f7622d27e |
pymatgen_db-2023.7.18-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7f9079ecc118cd5a7a4f942e6fd1e8611995210031a03a714ffee08d13fe5c74 |
|
MD5 | 7022fe76f67605226e49a2d0634b5517 |
|
BLAKE2b-256 | 97a44659cb9c8ed21cd80c36514d1fc84d818734d9d9a24e6d5528245c916393 |