600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > PyG ENZYMES蛋白质分子图数据集可视化教程

PyG ENZYMES蛋白质分子图数据集可视化教程

时间:2023-12-24 23:17:00

相关推荐

PyG ENZYMES蛋白质分子图数据集可视化教程

ENZYMES数据集是在GNN领域是非常经典的数据集,它是一个根据生物分子蛋白质结构而构建的Graph数据集合,总共600个图,也就是对应600个样本(蛋白质分子) ,共有六种结构

这个数据集是一个用于图级分类任务的数据,该数据集中共有600张图,含有19580个节点174564条边,每个节点的特征维度为3

PyG没有提供可视化的工具,所以我们需要将PyG的图数据torch_geometric.data.data.Data格式转换为networkx.classes.graph.Graph格式,然后利用NetworkX的工具进行可视化。

对ENZYMES数据集进行可视化需要使用到NetworkX这个工具包,如果没有安装的需要提前安装一下,命令如下:

pip install networkx

ENZYMES共有600张图,为了测试代码,我们将可视化第一张图,代码如下:

import networkx as nximport matplotlib.pyplot as pltfrom torch_geometric.datasets import TUDatasetdataset = TUDataset(root='./data/ENZYMES/', name='ENZYMES')# 可视化图结构graph = nx.Graph() # 创建一个空图edge_index = dataset[0].edge_index # 获取第一张图source = edge_index[0] # 起点target = edge_index[1] # 终点# 添加边信息到空图中for src, tge in zip(source, target):graph.add_edge(src.item(), tge.item())plt.rcParams['figure.dpi'] = 300 # 设置分辨率fig , ax1 = plt.subplots(figsize=(10,10))# 可视化图nx.draw_networkx(G=graph , ax=ax1 , font_size=6 , node_size=150)plt.savefig('a.png', dpi=1280)plt.show()

如果需要可视化ENZYMES所有的600张图,可以设置多个子图,然后将每个图可视化结果绘制到不同的子图当中,由于600张图太多,绘制出来可能不清晰,所以这里为了方便只绘制30张图,代码如下:

import networkx as nximport matplotlib.pyplot as pltfrom torch_geometric.datasets import TUDatasetdataset = TUDataset(root='./data/ENZYMES/', name='ENZYMES')num_graph = 30 # 需要可视化图的数目fig = plt.figure(figsize=(10, 10))for i in range(num_graph):ax = fig.add_subplot(5, 6, i+1)# 可视化图结构graph = nx.Graph() # 创建一个空图edge_index = dataset[i].edge_index # 获取第一张图source = edge_index[0] # 起点target = edge_index[1] # 终点for src, tge in zip(source, target):graph.add_edge(src.item(), tge.item())plt.rcParams['figure.dpi'] = 300 # 设置分辨率nx.draw_networkx(G=graph , ax=ax , font_size=3 , node_size=15)plt.savefig('a.png', dpi=2048)plt.show()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。