关于 alterlab-pymatgen
alterlab-pymatgen 是一项介绍如何使用 pymatgen 创建和分析材料结构及分子系统的技能。它面向材料科学工作流,涵盖格式转换、对称性与热力学分析、电子结构工具、表面生成和 Materials Project 数据访问。
主要功能
- 01晶体与分子结构创建和变换
- 02百余种格式的读写与转换
- 03对称性、相图及热力学分析
- 04能带与态密度分析
- 05表面、界面生成及 Materials Project 查询
适用场景
- 01转换 CIF、POSCAR、XYZ 等结构文件
- 02评估材料相稳定性与分解情况
- 03分析能带、带隙及态密度
- 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.jsonreferences/analysis_modules.mdcommon_workflows_code.mdcore_classes.mdcore_examples.mdio_formats.mdmaterials_project_api.mdtransformations_workflows.mdscripts/phase_diagram_generator.pystructure_analyzer.pystructure_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 中提供可直接复制粘贴的代码块,相关参考资料中还包含更深入的模块文档。
- 结构创建与操作 — 从文件创建、从头创建(晶格参数或空间群),以及结构变换(超胞、替换、原胞)。→
core_classes.md - 文件格式转换 — 使用
from_file()/to(),以及用于单个/批量转换的scripts/structure_converter.py。→io_formats.md - 结构分析与对称性 —
SpacegroupAnalyzer、CrystalNN,以及scripts/structure_analyzer.py。→analysis_modules.md - 相图与热力学 —
PhaseDiagram、凸包以上能量、分解分析,以及scripts/phase_diagram_generator.py。→analysis_modules.md、transformations_workflows.md - 电子结构 — 从
Vasprun获取能带结构和 DOS,并分析带隙、金属性。→analysis_modules.md、io_formats.md - 表面与界面 —
SlabGenerator、WulffShape、AdsorbateSiteFinder。→analysis_modules.md、transformations_workflows.md - Materials Project 访问 — 使用
MPRester搜索和检索数据,并按属性筛选。→materials_project_api.md - 计算工作流设置 — VASP 输入集(
MPRelaxSet、MPStaticSet、MPNonSCFSet)、Gaussian、Quantum ESPRESSO。→io_formats.md、transformations_workflows.md - 高级分析 — XRD 图谱、弹性张量、磁有序。→
analysis_modules.md
多步骤完整示例(高通量生成、能带结构流程、表面能):references/common_workflows_code.md。
捆绑资源
脚本(scripts/)
structure_converter.py:在不同结构文件格式之间转换(支持批量处理和自动检测)。用法:python scripts/structure_converter.py POSCAR structure.cifstructure_analyzer.py:对称性、配位、晶格参数、距离矩阵。用法:python scripts/structure_analyzer.py structure.cif --symmetry --neighborsphase_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 套件的一部分。