DGL官方教程--API--dgl.data

参考:https://docs.dgl.ai/en/latest/api/python/data.html#stanford-sentiment-treebank-dataset

PS:还没看完

dgl.data 

实用工具

utils.get_download_dir() 获取下载目录的绝对路径。
utils.download(url[, path, overwrite, …]) 下载给定的URL。
utils.check_sha1(filename, sha1_hash) 检查文件内容的sha1哈希是否与期望的哈希匹配。
utils.extract_archive(file, target_dir) 提取存档文件。
utils.split_dataset(dataset[, frac_list, …]) 将数据集分为训练,验证和测试集。
utils.save_graphs(filename, g_list[, labels]) 将DGLGraphs和图形标签保存到文件
utils.load_graphs(filename[, idx_list]) 从文件加载DGLGraphs
utils.load_labels(filename) 从文件加载标签字典
class dgl.data.utils.Subset(dataset, indices)

在指定索引处的数据集子集

改编自PyTorch的代码。

参数:
  • dataset  –dataset[i]应该返回第i个数据点
  • indices (list构造子集的数据池索引列表
__getitem__(item)

按索引的获取数据点

返回值: 数据点
返回类型: 元组
__len__()

获取子集大小

返回值: 子集中的数据点数
返回类型: 整型

数据集类

Stanford sentiment treebank dataset斯坦福大学情感树库数据集

有关数据集的更多信息,请参见情感分析。

https://nlp.stanford.edu/sentiment/index.html

class dgl.data.SST(mode='train', vocab_file=None)

斯坦福情感树库数据集。

每个样本都是句子的选区树。叶节点表示单词。单词是存储在x特征字段中的int值。非叶节点在x字段中有一个特殊的值pad_word.每个节点还有一个情感注释:5个类(非常消极、消极、中立、积极和非常积极)。情感标签是存储在y特征字段中的int值。

注意:该数据集类 与pytorch的Dataset类兼容。

   注意:首先将所有样本加载到内存中并进行预处理。

参数:
  • mode (stroptional) -可以是'train''val''test'和指定哪些数据文件来使用。
  • vocab_file (stroptional–可选词汇文件。
__getitem__(idx)

利用索引idx,获取树。

参数: idxint)–树索引。
返回值: 树。
返回类型: dgl.DGLGraph
__len__()

获取数据集中的树木数量。

返回值: 树木数量。
返回类型: 整型

 

Karate Club dataset空手道俱乐部数据集

class dgl.data.KarateClub

Zachary的空手道俱乐部是一个大学空手道俱乐部的社会网络,在WayneW.Zachary的论文“小团体冲突与分裂信息流模型”中进行了描述。该网络在2002年由MichelleGirvan和MarkNewman使用后,成为网络中社区结构的一个流行例子。

这个数据集只有一个图,nData‘Label’表示节点是否属于“Mr.Hi”俱乐部。

Citation Network dataset引文网络数据集

class dgl.data.CitationGraphDataset(name)

引文图数据集,包括citeseer和pubmeb。节点表示作者,边缘表示引用关系。

参数: name (str–名称可以是“ citeseer”或“ pubmed”。

Cora Citation Network数据集

class dgl.data.CoraDataset

Cora引文网络数据集。节点表示作者,边缘表示引用关系。

 

CoraFull数据集

class dgl.data.CoraFull

图的深度高斯嵌入的扩展Cora数据集:通过排名的无监督归纳学习。节点代表纸张,边缘代表引文。

参考:https : //github.com/shchur/gnn-benchmark#datasets

 

Amazon Co-Purchase dataset共同购买数据集

class dgl.data.AmazonCoBuy(name)

Amazon计算机和AmazonPhoto是亚马逊共同购买图(mcauley等人,2015)的一部分,其中节点代表商品,边缘表示两种商品经常一起购买,节点特征是字袋编码的产品评论,类别标签是按产品类别给出的。

参考:https : //github.com/shchur/gnn-benchmark#datasets

参数: namestr)–数据集的名称,必须为“计算机”或“照片”

 

Coauthor dataset合著者数据集

class dgl.data.Coauthor(name)

合著者CS和合著者物理是基于微软学术图表的共同作者图形,来自于2016年的KDD杯挑战3。在这里,节点是作者,如果他们共同撰写一篇论文,它们是由边缘连接的;节点特征代表每个作者的论文关键词,类标签代表每个作者最活跃的研究领域。

参数: namestr)–数据集的名称,必须为'cs'或'physics'

 

BitcoinOTC dataset比特币OTC数据集

class dgl.data.BitcoinOTC

这就是在一个名为比特币场外交易平台上使用比特币交易的人组成的网络。由于比特币用户是匿名的,因此有必要保持用户声誉的记录,以防止与欺诈和有风险的用户进行交易。比特币OTC的成员在-10(完全不信任)到+10(完全信任)的范围内对其他成员进行1级的分级。

参考: - 比特币OTC信任加权签订网络 - EvolveGCN:进化图卷积网络的动态图形

 

ICEWS18 dataset数据集

class dgl.data.ICEWS18(mode)

综合危机预警系统(ICEWS 18)事件数据包括社会政治行为者(即个人、团体、部门和民族国家之间的合作或敌对行动)之间的编码互动。

该数据集包含2018年1月1日到2018年10月31日(24小时时间间隔)以来的事件。

参考: - 复发事件下网络的推理超过时间知识图表 - ICEWS编码事件数据

参数: mode (str) –加载训练/有效/测试数据。必须是['train','valid','test']之一

 

QM7b dataset

class dgl.data.QM7b

该数据集由7211个分子和14个回归目标组成。节点表示原子,边缘表示键。边缘数据“h”指的是库仑矩阵的输入。

参考:-QM7b数据集

 

GDELT dataset

class dgl.data.GDELT(mode)

事件、语言和音调的全球数据库(GDELT)数据集。这包含了世界各地发生的事件(即在某一天在俄罗斯任何地方举行的每一次抗议都崩溃为一个条目)。

该数据集包含从1/1/2018到1/31/2018(15分钟时间间隔)收集的事件。

参考:- 用于基于时间知识图进行推理的循环事件网络 - 事件,语言和音调的全球数据库(GDELT)

参数: mode (str–加载训练/有效/测试数据。必须是['train','valid','test']之一

 

Mini graph classification dataset小型图分类数据集

class dgl.data.MiniGCDataset(num_graphs, min_num_v, max_num_v)

数据集类。

数据集包含8种不同类型的图形。

  • 第0级:循环图
  • 第1类:星图
  • 第2类:车轮图
  • 第3类:棒棒糖图
  • 第4类:超立方体图
  • 第5类:网格图
  • 第6类:集团图
  • 第7类:圆形梯形图

注意:该数据集类与pytorch的Dataset类兼容。

参数:
  • num_graphsint)–此数据集中的图数。
  • min_num_vint)–图的最小节点数
  • max_num_vint)–图的最大节点数
__getitem__(idx)

获取第i个样本。

idx :int  样本索引。

返回值: 图形及其标签。
返回类型: (dgl.DGLGraph,int)
__len__()

返回数据集中的图数。

num_classes 类数。

 

Graph kernel dataset图内核数据集

有关数据集的更多信息,请参见图核的基准数据集。

class dgl.data.TUDataset(name)

TUDataset包含许多用于图形分类的图形内核数据集。图可能具有节点标签,节点属性,边标签和边属性,它们来自不同的数据集。

参数: name 数据集名称,如酶,DD,协同合作,MUTAG,可以是

数据集名称在https://ls11-www.cs.tu-dortmund.de/staff/morris/graphkerneldatasets上。

__getitem__(idx)

获取第i个样本。参数——— idx:int 样本索引。

返回值: DGLGraph的节点功能存储在feat字段中,节点标签存储在node_label中(如果可用)。及其标签。
返回类型: (dgl.DGLGraph,int)

 

Graph isomorphism network dataset图同构网络数据集

图内核数据集的紧凑子集

dgl.data.GINDatasetnameself_loopdegree_as_nlabel = False [源]

图同构网络(GIN)的数据集改编自https://github.com/weihua916/powerful-gnns/blob/master/dataset.zip。

该数据集包含流行的图形内核数据集的紧凑格式,其中包括:MUTAG、Collab、IMDBBINARY、IMDBMULTI、NCI 1、蛋白质、PTC、REDDITBINARY、REDDITMULTI5K。

此datset类处理上面列出的所有数据集。有关更多图形内核数据集,请参见TUDataset

名称:str

数据集名称,以下之('MUTAG','COLLAB','IMDBBINARY','IMDBMULTI','NCI1','PROTEINS','PTC','REDDITBINARY','REDDITMULTI5K')

self_loop:布尔值

如果为true,则将自身添加到自身边缘

degree_as_nlabel:布尔值

以节点度为标签,如果为true

__getitem__idx [源代码]

获取第i个样本。

idx :int

样本索引。

返回值: 图形及其标签。
返回类型: (dgl.DGLGraph,int)

__len__()[来源]

返回数据集中的图数。

Protein-Protein Interaction dataset蛋白质-蛋白质相互作用数据集

classdgl.data.PPIDatasetmode [源代码]

玩具蛋白质-蛋白质相互作用网络数据集。

改编自https://github.com/williamleif/GraphSAGE/tree/master/example_data。

数据集包含24个图。每个图的平均节点数为2372。每个节点具有50个要素和121个标签。

我们使用20张图进行训练,使用2张进行验证,使用2张进行测试。

__getitem__item [来源]

获取第i个样本。

idx :int

样本索引。

返回值: 图形及其标签。
返回类型: (dgl.DGLGraph,ndarray)

__len__()[来源]

返回此数据集中的样本数。

Molecular Graphs分子图

要处理分子图,请确保已安装RDKit 2018.09.3。

数据加载和处理的Utils 

我们改编了多种实用程序,用于处理DeepChem的分子 。

chem.add_hydrogens_to_mol(* args,** kwargs)  
chem.get_mol_3D_coordinates(* args,** kwargs)  
chem.load_molecule(* args,** kwargs)  
chem.multiprocess_load_molecules(* args,** kwargs)  

单分子的特征化实用程序

为了使用图神经网络,我们需要特征化节点(原子)和边缘(键)。

通用工具:

chem.one_hot_encoding(* args,** kwargs)  
chem.ConcatFeaturizer(** kwargs) 将多个功能的评估结果合并为一个功能。
chem.ConcatFeaturizer.__call__(X) 使输入数据特征化。

原子特征化的实用程序:

chem.atom_type_one_hot(* args,** kwargs)  
chem.atomic_number_one_hot(* args,** kwargs)  
chem.atomic_number(* args,** kwargs)  
chem.atom_degree_one_hot(* args,** kwargs)  
chem.atom_degree(* args,** kwargs)  
chem.atom_total_degree_one_hot(* args,** kwargs)  
chem.atom_total_degree(* args,** kwargs)  
chem.atom_implicit_valence_one_hot(* args,...)  
chem.atom_implicit_valence(* args,** kwargs)  
chem.atom_hybridization_one_hot(* args,** kwargs)  
chem.atom_total_num_H_one_hot(* args,** kwargs)  
chem.atom_total_num_H(* args,** kwargs)  
chem.atom_formal_charge_one_hot(* args,** kwargs)  
chem.atom_formal_charge(* args,** kwargs)  
chem.atom_num_radical_electrons_one_hot(...)  
chem.atom_num_radical_electrons(* args,** kwargs)  
chem.atom_is_aromatic_one_hot(* args,** kwargs)  
chem.atom_is_aromatic(* args,** kwargs)  
chem.atom_chiral_tag_one_hot(* args,** kwargs)  
chem.atom_mass(* args,** kwargs)  
chem.BaseAtomFeaturizer(** kwargs) 原子特征化器的抽象类。
chem.BaseAtomFeaturizer.feat_size(feat_name) 获取的特征尺寸feat_name
chem.BaseAtomFeaturizer.__call__(摩尔) 使一个分子中的所有原子特征化。
chem.CanonicalAtomFeaturizer(** kwargs) 原子的默认特征化器。

债券特征化的实用程序:

chem.bond_type_one_hot(* args,** kwargs)  
chem.bond_is_conjugated_one_hot(* args,** kwargs)  
chem.bond_is_conjugated(* args,** kwargs)  
chem.bond_is_in_ring_one_hot(* args,** kwargs)  
chem.bond_is_in_ring(* args,** kwargs)  
chem.bond_stereo_one_hot(* args,** kwargs)  
chem.BaseBondFeaturizer(** kwargs) 债券特征化器的抽象类。
chem.BaseBondFeaturizer.feat_size(feat_name) 获取的特征尺寸feat_name
chem.BaseBondFeaturizer.__call__(摩尔) 使分子中的所有键均化。
chem.CanonicalBondFeaturizer(** kwargs) 债券的默认特征。

单分子的图构造

下面列出了几种从SMILES / RDKit分子对象构造DGLGraph的方法:

chem.mol_to_graph(* args,** kwargs)  
chem.smiles_to_bigraph(* args,** kwargs)  
chem.mol_to_bigraph(* args,** kwargs)  
chem.smiles_to_complete_graph(* args,** kwargs)  
chem.mol_to_complete_graph(* args,** kwargs)  
chem.k_nearest_neighbors(* args,** kwargs)  

配体-蛋白质复合物的图构建和特征化

构造DGLHeteroGraphs并对其进行特征化。

chem.ACNN_graph_construction_and_featurization(...)  

数据集类

如果您的数据集存储在.csv文件中,您可能会发现使用它会有所帮助

当前支持四个数据集:

  • 毒素21
  • 腾讯炼金数据集
  • PubChemBioAssay芳香性
  • 聚溴乙烯

classdgl.data.chem.Tox21** kwargs [源代码]

Tox21数据集。

二十一世纪的毒理学(https://tripod.nih.gov/tox21/challenge/)计划创建了一个测量化合物毒性的公共数据库,该数据库已在2014年Tox21数据挑战赛中使用。该数据集包含对8014种化合物在12个不同靶标上的定性毒性测量结果,包括核受体和应激反应途径。每个目标都会产生一个二进制标签。

多任务预测的一个常见问题是某些数据点未标记为所有任务。Tox21也是如此。在数据预处理中,我们将不存在的标签设置为0,以便可以将它们放置在张量中并用于损失计算中的屏蔽。有关更多详细信息,请参见下面的示例。

所有分子都转换为DGLGraphs。首次构建后,将保存DGLGraphs以便重新加载,因此我们不需要每次都重建它们。

参数:
  • smiles_to_graphcallable str-> DGLGraph)–将微笑变成DGLGraph的函数。默认为dgl.data.chem.smiles_to_bigraph()
  • node_featurizercallable rdkit.Chem.rdchem.Mol-> dict)–分子中原子之类的节点的特征化,可用于更新DGLGraph的ndata。默认为无。
  • edge_featurizercallable rdkit.Chem.rdchem.Mol-> dict)–分子中键之类的边缘的特征化,可用于更新DGLGraph的edata。默认为无。
  • loadbool)–是加载先前预处理的数据集还是从头开始进行预处理。 load当我们想尝试不同的图形构造和特征化方法并且需要从头进行预处理时,应该为False。默认为True。

__getitem__项目

获取带有索引的数据点

参数: itemint)–数据点索引
返回值:
  • str –第i个数据点的SMILES
  • DGLGraph –第i个数据点的DGLGraph
  • dtype float32的张量 –所有任务的数据点标签
  • dtype float32的张量 –二进制掩码,指示所有任务标签的存在

__len__()

数据集长度

返回值: 数据集长度
返回类型: 整型

task_pos_weights

获取每个任务的阳性样本的权重

返回值: numpy数组给出所有任务中正样本的权重
返回类型: numpy.ndarray

classdgl.data.chem.TencentAlchemyDataset** kwargs [源代码]

该数据集由腾讯量子实验室开发,列出了从GDBMedChem数据库中采样的130、000+种有机分子的12种量子力学特性,其中包括多达12个重原子(C,N,O,S,F和Cl)。这些特性是使用开源的计算化学程序基于Python的化学框架仿真(PySCF)计算出来的。

有关更多详细信息,请检查纸张。

参数:
  • 模式str)–“ dev”,“ valid”或“ test”,分别用于培训,验证和测试。默认为'dev'。请注意,“炼金术”竞赛正在进行中,因此“测试”不可用。
  • mol_to_graphcallable str-> DGLGraph)–将RDKit分子实例转换为DGLGraph的函数。默认为dgl.data.chem.mol_to_complete_graph()
  • node_featurizercallable rdkit.Chem.rdchem.Mol-> dict)–分子中原子之类的节点的特征化,可用于更新DGLGraph的ndata。默认情况下,我们构造图,其中节点表示原子,节点特征表示原子特征。我们将原子序号存储在名称下"node_type",并将原子特征存储在名称下"n_feat"。原子特征包括:*原子类型的一种热编码*原子的原子数*原子是否为供体*原子是否为受体*原子是否为芳香族*原子杂交的一种热编码* Hs的总数原子
  • edge_featurizercallable rdkit.Chem.rdchem.Mol-> dict)–分子中键之类的边缘的特征化,可用于更新DGLGraph的edata。默认情况下,我们在每对原子之间构造边,不包括自环。我们以名称"distance"存储末端原子之间的距离,并以名称 存储边缘特征"e_feat"。边缘特征表示边缘类型(绑定类型和非绑定边缘)的一种热编码。
  • loadbool)–是加载先前预处理的数据集还是从头开始进行预处理。 load当我们想尝试不同的图形构造和特征化方法并且需要从头进行预处理时,应该为False。默认为True。

__getitem__item [来源]

获取带有索引的数据点

参数: itemint)–数据点索引
返回值:
  • str –第i个数据点的SMILES
  • DGLGraph –第i个数据点的DGLGraph
  • dtype float32的张量 –所有任务的数据点标签

__len__()[来源]

数据集长度

返回值: 数据集长度
返回类型: 整型

set_mean_and_stdmean = Nonestd = None [源代码]

设置均值和标准差或从标签进行计算以供将来标准化。

参数:
  • 平均值整数浮点数)–默认为无。
  • stdintfloat)–默认为None。

classdgl.data.chem.PubChemBioAssayAromaticity** kwargs [源代码]

PubChem BioAssay数据集的子集,用于芳香性预测。

该数据集是通过图注意力机制在推动药物发现的分子表示边界中构建的。并且伴随着预测分子中芳族原子数的任务。

该数据集是通过从PubChem BioAssay数据集中采样3945个具有0-40个芳族原子的分子而构建的。

参数:
  • smiles_to_graphcallable str-> DGLGraph)–将微笑变成DGLGraph的函数。默认为dgl.data.chem.smiles_to_bigraph()
  • node_featurizercallable rdkit.Chem.rdchem.Mol-> dict)–分子中原子之类的节点的特征化,可用于更新DGLGraph的ndata。默认为无。
  • edge_featurizercallable rdkit.Chem.rdchem.Mol-> dict)–分子中键之类的边缘的特征化,可用于更新DGLGraph的edata。默认为无。
  • loadbool)–是加载先前预处理的数据集还是从头开始进行预处理。 load当我们想尝试不同的图构造和特征化方法并且需要从头进行预处理时,应该为False。默认为True。

__getitem__项目

获取带有索引的数据点

参数: itemint)–数据点索引
返回值:
  • str –第i个数据点的SMILES
  • DGLGraph –第i个数据点的DGLGraph
  • dtype float32的张量 –所有任务的数据点标签
  • dtype float32的张量 –二进制掩码,指示所有任务标签的存在

__len__()

数据集长度

返回值: 数据集长度
返回类型: 整型

classdgl.data.chem.PDBBind** kwargs [源代码]

由MoleculeNet处理的PDBbind数据集。

以下描述主要基于 [1]。PDBBind数据库由实验测量的对生物分子复合物的结合亲和力组成[2], [3]。它提供了配体及其靶蛋白的详细3D笛卡尔坐标,这些坐标来源于实验(例如X射线晶体学)测量。蛋白质-配体复合物的坐标的可用性允许知道蛋白质-配体结合几何结构的基于结构的特征化。[1]的作者 将数据库[4]的“精炼”和“核心”子集( 为数据工件进行更仔细的处理)用作其他基准测试目标。

参考文献

  • [1] MoleculeNet:分子机器学习的基准
  • [2] PDBbind数据库:蛋白质-配体复合物的结合亲和力的集合

具有已知的三维结构* [3] PDBbind数据库:方法和更新* [4] PDB范围内的绑定数据集合:PDBbind数据库的当前状态

参数:
  • 子集str)–在MoleculeNet中,我们可以使用“精炼”子集或“核心”子集。我们可以通过设置subset'refined'或来检索它们'core'。的大小'core'设置为195和大小'refined'设置为3706。
  • load_binding_pocketbool)–是加载结合口袋还是完整蛋白质。默认为True。
  • add_hydrogensbool)–是否通过pdbfixer添加氢。默认为False。
  • sanitizebool)–是否在初始化RDKit分子实例时执行消毒。有关清理的详细信息,请参见 https://www.rdkit.org/docs/RDKit_Book.html。默认为False。
  • calc_chargesbool)–是否通过RDKit添加Gasteiger费用。将此设置为True将强制实施, add_hydrogens并将sanitize其设置为True。默认为False。
  • remove_hsbool)–是否通过RDKit除去氢。请注意,对于大分子而言,去除氢可能会非常缓慢。默认为False。
  • use_conformationbool)–是否需要从蛋白质和配体中提取分子构象。默认为True。
  • Construct_graph_and_featurize可调用)–构造一个DGLHeteroGraph以使用GNN。将self.ligand_mols [i],self.protein_mols [i],self.ligand_coordinates [i]和self.protein_coordinates [i]映射到DGLHeteroGraph。默认为ACNN_graph_construction_and_featurization()
  • zero_paddingbool)–是否执行零填充。尽管DGL不一定需要零填充,但对于可变长度输入的合并操作可能会引入随机行为,这对于敏感的情况是不希望的。默认为True。
  • num_processesintNone)–要使用的工作进程数。如果为None,那么我们将使用系统中的CPU数量。默认为64

__getitem__item [来源]

获取与索引关联的数据点。

参数: itemint)–数据点的索引。
返回值:
  • int –数据点的索引。
  • rdkit.Chem.rdchem.Mol –配体分子的RDKit分子实例。
  • rdkit.Chem.rdchem.Mol –蛋白分子的RDKit分子实例。
  • DGLHeteroGraph –预处理的DGLHeteroGraph,其中提取了特征。
  • Float32张量 –数据点的标签。

__len__()[来源]

获取数据集的大小。

返回值: 数据集中有效配体-蛋白质对的数量。
返回类型: 整型

数据集拆分

我们为一些常见的数据拆分方法提供支持:

  • 连续分裂
  • 随机分割
  • 分子量分裂
  • Bemis-Murcko脚手架拆分
  • 单任务分层

dgl.data.chem.ConsecutiveSplitter[源代码]

按输入顺序拆分数据集。

数据集被拆分而没有置换,因此拆分是确定性的。

dgl.data.chem.RandomSplitter[源代码]

随机重新排序数据集,然后拆分它们。

通过排列对数据集进行拆分,因此拆分是随机的。

dgl.data.chem.MolecularWeightSplitter[源代码]

根据分子的重量对分子进行排序,然后将其拆分。

dgl.data.chem.ScaffoldSplitter[源代码]

根据其Bemis-Murcko支架对分子进行分组,然后进行分组。

对分子进行分组,以便组中的所有分子都具有相同的支架(请参阅参考资料)。然后,将数据集按组级别拆分。

参考文献

GW Bemis;马萨诸塞州Murcko,“已知药物的特性。

  1. 分子框架。” J. Med。化学 39:2887-93(1996)。

dgl.data.chem.SingleTaskStratifiedSplitter[源代码]

通过对单个任务进行分层来拆分数据集。

我们根据任务的标记值对分子进行排序,然后重复获取数据点桶以增强训练,验证和测试子集。

你可能感兴趣的:(DGL库笔记)