QM9EdgeDataset

class dgl.data.QM9EdgeDataset(label_keys=None, raw_dir=None, force_reload=False, verbose=True, transform=None)[source]

基类:DGLDataset

用于图属性预测(回归)的 QM9Edge 数据集

该数据集包含 130,831 个分子和 19 个回归目标。节点对应原子,边对应键。

该数据集与 QM9Dataset 在以下方面有所不同
  1. 它在相应的图的边中包含了分子中的键,而 QM9Dataset 中的边纯粹是基于距离的。

  2. 除了原子的坐标和原子序数外,它还提供了边特征和节点特征。

  3. 它还提供了另外 7 个回归任务(从 12 到 19)。

该类基于数据集的预处理版本构建,我们在此处提供了预处理细节。

参考

统计信息

  • 图数量:130,831。

  • 回归目标数量:19。

节点属性

  • pos:每个原子的 3D 坐标。

  • attr:11 维原子特征。

边属性

  • edge_attr:4 维键特征。

回归目标

属性

描述

单位

mu

\(\mu\)

偶极矩

\(\textrm{D}\)

alpha

\(\alpha\)

各向同性极化率

\({a_0}^3\)

homo

\(\epsilon_{\textrm{HOMO}}\)

最高占据分子轨道能量

\(\textrm{eV}\)

lumo

\(\epsilon_{\textrm{LUMO}}\)

最低未占据分子轨道能量

\(\textrm{eV}\)

gap

\(\Delta \epsilon\)

HOMO 和 LUMO 之间的间隙 \(\epsilon_{\textrm{HOMO}}\) and \(\epsilon_{\textrm{LUMO}}\)

\(\textrm{eV}\)

r2

\(\langle R^2 \rangle\)

电子空间范围

\({a_0}^2\)

zpve

\(\textrm{ZPVE}\)

零点振动能

\(\textrm{eV}\)

U0

\(U_0\)

0K 时的内能

\(\textrm{eV}\)

U

\(U\)

298.15K 时的内能

\(\textrm{eV}\)

H

\(H\)

298.15K 时的焓

\(\textrm{eV}\)

G

\(G\)

298.15K 时的自由能

\(\textrm{eV}\)

Cv

\(c_{\textrm{v}}\)

298.15K 时的热容

\(\frac{\textrm{cal}}{\textrm{mol K}}\)

U0_atom

\(U_0^{\textrm{ATOM}}\)

0K 时的原子化能

\(\textrm{eV}\)

U_atom

\(U^{\textrm{ATOM}}\)

298.15K 时的原子化能

\(\textrm{eV}\)

H_atom

\(H^{\textrm{ATOM}}\)

298.15K 时的原子化焓

\(\textrm{eV}\)

G_atom

\(G^{\textrm{ATOM}}\)

298.15K 时的原子化自由能

\(\textrm{eV}\)

A

\(A\)

旋转常数

\(\textrm{GHz}\)

B

\(B\)

旋转常数

\(\textrm{GHz}\)

C

\(C\)

旋转常数

\(\textrm{GHz}\)

参数:
  • label_keys (list) – 回归属性的名称,应是上表中键的子集。如果未提供,将加载所有标签。

  • raw_dir (str) – 下载/包含输入数据目录的原始文件目录。默认值:~/.dgl/

  • force_reload (bool) – 是否重新加载数据集。默认值:False。

  • verbose (bool) – 是否打印进度信息。默认值:True。

  • transform (callable, optional) – 一个转换函数,它接收一个 DGLGraph 对象并返回一个转换后的版本。在每次访问 DGLGraph 对象之前都会对其进行转换。

num_tasks

预测任务的数量

类型:

int

num_labels

(已弃用,请改用 num_tasks)预测任务的数量

类型:

int

引发:

UserWarning – 如果原始数据在远程服务器上被作者更改。

示例

>>> data = QM9EdgeDataset(label_keys=['mu', 'alpha'])
>>> data.num_tasks
2
>>> # iterate over the dataset
>>> for graph, labels in data:
...     print(graph) # get information of each graph
...     print(labels) # get labels of the corresponding graph
...     # your code here...
>>>
__getitem__(idx)[source]

按索引获取图和标签

参数:

idx (int) – 项目索引

返回:

  • dgl.DGLGraph – 图包含

    • ndata['pos']:每个原子的坐标

    • ndata['attr']:每个原子的特征

    • edata['edge_attr']:每个键的特征

  • Tensor – 分子图的属性值

__len__()[source]

数据集中图的数量。

返回类型:

int