目录

mALIGNN

misaraty 更新 | 2026-10-06
前言
下载:mALIGNN。

mALIGNN

mALIGNN 是一个基于 PyTorch 和 PyTorch Geometric 的独立 ALIGNN 实现,用于根据 CIF 晶体结构预测材料带隙。

代码保留了 ALIGNN 的主要组成部分,包括周期性晶体图、键角线图、距离与角度编码、边门控消息传递、图级池化和回归头。代码使用 pymatgen 解析 CIF 并构建晶体图,不依赖 DGL、JARVIS 或原始 ALIGNN 仓库。

环境依赖

1
pip install torch torch-geometric pymatgen numpy pandas openpyxl scikit-learn matplotlib tqdm

仅当 USE_OPTUNA = True 时需要安装 Optuna:

1
pip install optuna

数据准备

在脚本所在目录中准备以下文件:

1
2
3
4
5
6
mALIGNN_v2.py
data.xlsx
cif/
|-- 1.cif
|-- 2.cif
|-- 3.cif

脚本读取 data.xlsx 的前两列:

cif bandgap
1 1.23
2 0.87
3 2.15

第一列中的 1 对应 ./cif/1.cif。

使用方法

1
python mALIGNN_v2.py

脚本会自动完成 CIF 检查、固定的 80/10/10 训练集/验证集/测试集划分、模型训练、早停、评估和绘图。当 CUDA 可用时自动使用 GPU,否则使用 CPU。

所有结果保存在由 MODEL_NAME 和 RUN_VERSION 确定的目录中。按照默认设置,输出目录为:

1
2
3
4
5
6
7
8
ALIGNN_v2/
|-- ALIGNN_best.pt
|-- figure/
|-- dat/
|-- table/
|-- log/
|-- split/
|-- cache/

输出内容包括训练集、验证集和测试集的 MAE、RMSE 与 R2,奇偶图及其数据,RMSE 训练曲线及其数据,固定数据划分,最佳模型权重和完整训练日志。

引用

原始 ALIGNN 文献:

本工作:

论文正式发表后补充。