mcpField
A
alterlab-pymatgen

alterlab-pymatgen

github.com/alterlab-ieu数据与数据库7868 次安装5 周前更新
代码仓库

关于 alterlab-pymatgen

alterlab-pymatgen 是一项介绍如何使用 pymatgen 创建和分析材料结构及分子系统的技能。它面向材料科学工作流,涵盖格式转换、对称性与热力学分析、电子结构工具、表面生成和 Materials Project 数据访问。

主要功能

  1. 01晶体与分子结构创建和变换
  2. 02百余种格式的读写与转换
  3. 03对称性、相图及热力学分析
  4. 04能带与态密度分析
  5. 05表面、界面生成及 Materials Project 查询

适用场景

  1. 01转换 CIF、POSCAR、XYZ 等结构文件
  2. 02评估材料相稳定性与分解情况
  3. 03分析能带、带隙及态密度
  4. 04查询 Materials Project 并构建计算工作流

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alterlab-ieu/alterlab-academic-skills --skill alterlab-pymatgen

安装后在 Claude Code 中输入/alterlab-pymatgen确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
evals.json
references/
analysis_modules.md
common_workflows_code.md
core_classes.md
core_examples.md
io_formats.md
materials_project_api.md
transformations_workflows.md
scripts/
phase_diagram_generator.py
structure_analyzer.py
structure_converter.py

详细介绍

Pymatgen - Python 材料基因组学

概览

Pymatgen 是一个功能全面的 Python 材料分析库,为 Materials Project 提供支持。创建、分析和操作晶体结构与分子;计算相图和热力学性质;分析电子结构(能带结构、DOS);生成表面和界面;访问 Materials Project 数据库。支持各种计算代码的 100 多种文件格式。

何时使用此技能

适用于以下场景:

  • 处理材料科学中的晶体结构或分子体系
  • 在不同结构文件格式之间转换(CIF、POSCAR、XYZ 等)
  • 分析对称性、空间群或配位环境
  • 计算相图或评估热力学稳定性
  • 分析电子结构(带隙、DOS、能带结构)
  • 生成表面/薄片或研究界面
  • 以编程方式访问 Materials Project 数据库
  • 设置高通量计算工作流
  • 使用 VASP、Gaussian、Quantum ESPRESSO 或其他代码
不适用场景
场景改用
小型有机分子 — SMILES、指纹、描述符、子结构搜索alterlab-rdkit
在托管式云量子化学服务中运行 DFT/构象搜索/pKa 计算alterlab-rowan
蛋白质或配体的经典分子动力学(OpenMM、轨迹)alterlab-molecular-dynamics
用于分子基态的变分量子电路(VQE)alterlab-pennylane

快速入门

uv pip install pymatgen                # core (Python >= 3.11)
uv pip install pymatgen mp-api         # + Materials Project API access
uv pip install "pymatgen[optional]"    # extra analysis deps (phonopy, seekpath, ase, ...)
uv pip install "pymatgen[vis]"         # VTK structure visualization
from pymatgen.core import Structure, Lattice

struct = Structure.from_file("POSCAR")        # auto format detection
struct.to(filename="structure.cif")           # write any format
print(struct.composition.reduced_formula)
print(struct.get_space_group_info())
print(f"{struct.density:.2f} g/cm³")
export MP_API_KEY="your_api_key_here"   # for Materials Project access

核心功能(路由)

每项功能都在 references/core_examples.md 中提供可直接复制粘贴的代码块,相关参考资料中还包含更深入的模块文档。

  1. 结构创建与操作 — 从文件创建、从头创建(晶格参数或空间群),以及结构变换(超胞、替换、原胞)。→ core_classes.md
  2. 文件格式转换 — 使用 from_file()/to(),以及用于单个/批量转换的 scripts/structure_converter.py。→ io_formats.md
  3. 结构分析与对称性 — SpacegroupAnalyzer、CrystalNN,以及 scripts/structure_analyzer.py。→ analysis_modules.md
  4. 相图与热力学 — PhaseDiagram、凸包以上能量、分解分析,以及 scripts/phase_diagram_generator.py。→ analysis_modules.md、transformations_workflows.md
  5. 电子结构 — 从 Vasprun 获取能带结构和 DOS,并分析带隙、金属性。→ analysis_modules.md、io_formats.md
  6. 表面与界面 — SlabGenerator、WulffShape、AdsorbateSiteFinder。→ analysis_modules.md、transformations_workflows.md
  7. Materials Project 访问 — 使用 MPRester 搜索和检索数据,并按属性筛选。→ materials_project_api.md
  8. 计算工作流设置 — VASP 输入集(MPRelaxSet、MPStaticSet、MPNonSCFSet)、Gaussian、Quantum ESPRESSO。→ io_formats.md、transformations_workflows.md
  9. 高级分析 — XRD 图谱、弹性张量、磁有序。→ analysis_modules.md

多步骤完整示例(高通量生成、能带结构流程、表面能):references/common_workflows_code.md。

捆绑资源

脚本(scripts/)
  • structure_converter.py:在不同结构文件格式之间转换(支持批量处理和自动检测)。用法:python scripts/structure_converter.py POSCAR structure.cif
  • structure_analyzer.py:对称性、配位、晶格参数、距离矩阵。用法:python scripts/structure_analyzer.py structure.cif --symmetry --neighbors
  • phase_diagram_generator.py:基于 Materials Project 生成相图并分析稳定性。用法:python scripts/phase_diagram_generator.py Li-Fe-O --analyze "LiFeO2"

所有脚本都包含详细帮助信息,例如 python scripts/structure_converter.py --help

参考资料(references/)
  • core_examples.md:涵盖全部九项核心能力的可直接复制代码
  • common_workflows_code.md:多步骤工作流示例代码
  • core_classes.md:Element、Structure、Lattice、Molecule、Composition 类
  • io_formats.md:文件格式支持与代码集成(VASP、Gaussian 等)
  • analysis_modules.md:相图、表面、电子结构、对称性
  • materials_project_api.md:完整的 Materials Project API 指南
  • transformations_workflows.md:转换框架与 10 种常见工作流

最佳实践

结构:使用自动格式检测;不可变时优先使用 IStructure;使用 SpacegroupAnalyzer 约化为原胞;验证是否存在原子重叠或异常键长。文件 I/O:优先使用 from_file()/to();检测失败时指定格式;使用 as_dict()/from_dict() 进行版本安全的存储。MP API:始终使用上下文管理器;批量查询;缓存结果;按属性筛选。工作流:优先使用输入集,而不是手动编写 INCAR;验证收敛性;跟踪转换以记录溯源信息。性能:使用原胞;限制邻居搜索的截断距离;尽可能并行处理。

单位与约定

长度单位为 Å,能量单位为 eV,角度单位为度,磁矩单位为 μB,时间单位为 fs。 使用 pymatgen.core.units 进行转换。

集成

可与 ASE、Phonopy、BoltzTraP、Atomate/Fireworks、AiiDA、Zeo++ 和 OpenBabel 集成。

故障排除

  • 导入错误:uv pip install "pymatgen[optional,vis]"(不存在 [analysis] 扩展)
  • 未找到 API 密钥:export MP_API_KEY="your_key_here"
  • 结构读取失败:尝试显式指定格式,例如 Structure.from_file("file.txt", fmt="cif")
  • 对称性分析失败:增大容差,例如 SpacegroupAnalyzer(struct, symprec=0.1)

其他资源

文档:https://pymatgen.org/ · Materials Project:https://materialsproject.org/ · GitHub:https://github.com/materialsproject/pymatgen · 论坛:https://matsci.org/ · 示例笔记本:https://github.com/materialsvirtuallab/matgenb

版本说明

适用于 pymatgen 2024.x 及更高版本(截至 2026-09 的当前版本为 2026.9.x;采用日历版本号)。 自 2026 年起,pymatgen 发行包是基于 pymatgen-core 构建的轻量包;导入路径(pymatgen.core、pymatgen.io.vasp 等)保持不变。使用 mp-api 包访问 Materials Project API(当前版本为 0.46.x;from mp_api.client import MPRester),而不要使用旧版 pymatgen.ext.matproj 客户端。要求:Python ≥ 3.11、pymatgen ≥ 2024.x;访问 Materials Project 需安装 mp-api。

属于 AlterLab Academic Skills 套件的一部分。

评论

支持 Markdown