Zing 论坛

正文

Quasigraph:面向材料机器学习的化学几何描述符工具包

Quasigraph 是一个开源工具包,用于生成可用于机器学习模型的化学和几何描述符,特别适用于材料科学研究。

材料科学机器学习描述符化学信息学配位数ASEPython
发布时间 2026/05/27 20:15最近活动 2026/05/27 20:18预计阅读 4 分钟
Quasigraph:面向材料机器学习的化学几何描述符工具包
1

章节 01

导读 / 主楼:Quasigraph:面向材料机器学习的化学几何描述符工具包

Quasigraph 是一个开源工具包,用于生成可用于机器学习模型的化学和几何描述符,特别适用于材料科学研究。

3

章节 03

引言:材料科学中的特征工程挑战

在材料科学领域,机器学习模型的性能很大程度上依赖于输入特征的质量。传统的材料描述符往往难以同时捕捉化学组成和几何结构的复杂关系。Quasigraph 项目应运而生,它提供了一种创新的方法来生成既包含化学信息又包含几何信息的统一描述符,为材料机器学习研究提供了强有力的工具支持。


4

章节 04

项目概述:什么是 Quasigraph?

Quasigraph 是一个开源的 Python 工具包,专门设计用于生成化学和几何描述符,以供机器学习模型使用。该项目的核心思想是将材料的化学特性与几何结构信息融合成一个统一的描述符向量,从而更全面地表征材料的特性。

该工具包的主要特点包括:

  • 化学描述符生成:利用 Mendeleev 元素周期表数据库提取原子级别的化学属性
  • 几何描述符计算:基于配位数(CN)和广义配位数(GCN)量化原子间的几何关系
  • 简洁的 API 设计:与 ASE(Atomic Simulation Environment)无缝集成,便于处理分子和材料结构
  • 多种输出格式:支持 Pandas DataFrame 和向量格式,方便与机器学习框架对接

5

章节 05

化学描述符部分

Quasigraph 的化学描述符部分采用了 Mendeleev 元素数据库,为每个原子提取以下关键属性:

  • 价电子浓度(VEC):反映原子的电子结构特征
  • 共价半径(covalent_radius):表征原子在化学键中的空间占据
  • 鲍林电负性(en_pauling):描述原子吸引电子的能力
  • 电子亲和能(electron_affinity):反映原子获得电子的倾向

以甲醇(CH₃OH)分子为例,Quasigraph 会为每个原子生成对应的化学属性表。碳原子具有较高的价电子浓度(4)和适中的电负性(2.55),而氧原子则表现出更高的电负性(3.44)和更小的共价半径(0.63)。这些化学属性的差异为机器学习模型提供了区分不同元素行为的基础特征。

6

章节 06

几何描述符部分

几何描述符部分通过分析原子间的连接关系来捕捉材料的结构特征。Quasigraph 计算两个关键指标:

配位数(CN, Coordination Number):表示每个原子直接相邻的原子数量。在甲醇分子中,碳原子与四个原子相连(三个氢原子和一个氧原子),因此 CN=4;而氧原子与两个原子相连(一个碳原子和一个氢原子),CN=2。

广义配位数(GCN, Generalized Coordination Number):这是 Quasigraph 的一个创新点。GCN 不仅考虑直接邻居,还考虑邻居的配位环境。计算方法为:将每个原子邻居的配位数求和,然后除以整个分子中最大的配位数进行归一化。

以甲醇为例,碳原子的 GCN 计算如下:碳原子有三个氢原子邻居(每个 CN=1)和一个氧原子邻居(CN=2),总和为 5,除以最大配位数 4,得到 GCN=1.25。这种计算方式使得 GCN 能够反映原子所处环境的复杂程度。


7

章节 07

实际应用:从分子到材料数据库

Quasigraph 的设计理念使其适用于多种材料科学研究场景:

催化剂设计:通过 GCN 描述符可以快速预测铂纳米催化剂的吸附性质,这是 Calle-Vallejo 等人在2014年发表的研究成果。GCN 与催化活性之间存在明确的物理关联,使得机器学习模型能够学习这种关系并预测新材料的催化性能。

材料筛选:在大规模材料数据库(如 Materials Project 或 OQMD)中,Quasigraph 可以为成千上万个结构快速生成统一的描述符,支持高通量筛选和机器学习势函数的训练。

分子性质预测:对于有机分子和配位化合物,化学描述符与几何描述符的结合可以更好地预测溶解度、反应活性等性质。


8

章节 08

技术实现与使用示例

Quasigraph 的安装非常简单,通过 pip 即可安装:

pip install quasigraph

使用示例展示了与 ASE 的无缝集成:

from ase.build import molecule
from quasigraph import QuasiGraph

# 使用 ASE 创建甲醇分子
atoms = molecule('CH3OH')

# 初始化 QuasiGraph 对象
qgr = QuasiGraph(atoms)

# 输出为 DataFrame 格式
df = qgr.get_dataframe()

# 输出为向量格式
vector = qgr.get_vector()

这种简洁的 API 设计使得研究人员可以快速将 Quasigraph 集成到现有的机器学习工作流中。