code: def process_dataset_appnp(epsilon):
      k = 20
      alpha = 0.2
      dataset = PubmedGraphDataset()
      graph = dataset[0]
      feat = graph.ndata.pop("feat")
      label = graph.ndata.pop("label")
  
      train_mask = graph.ndata.pop("train_mask")
      val_mask = graph.ndata.pop("val_mask")
      test_mask = graph.ndata.pop("test_mask")
  
      train_idx = th.nonzero(train_mask, as_tuple=False).squeeze()
      val_idx = th.nonzero(val_mask, as_tuple=False).squeeze()
      test_idx = th.nonzero(test_mask, as_tuple=False).squeeze()
  
      appnp = APPNPConv(k, alpha)
      id = th.eye(graph.num_nodes()).float()
      diff_adj = appnp(graph.add_self_loop(), id).numpy()
  
      diff_adj[diff_adj < epsilon] = 0
      scaler = MinMaxScaler()
      scaler.fit(diff_adj)
      diff_adj = scaler.transform(diff_adj)
      diff_edges = np.nonzero(diff_adj)
      diff_weight = diff_adj[diff_edges]
      diff_graph = dgl.graph(diff_edges)
  
      return (
          graph,
          diff_graph,
          feat,
          label,
          train_idx,
          val_idx,
          test_idx,
          diff_weight,
      )
  
file_path: dgl/examples/pytorch/mvgrl/node/dataset.py
imports: import dgl
  import networkx
  import numpy
  import scipy.sparse
  import torch
  from dgl.data import CiteseerGraphDataset, CoraGraphDataset, PubmedGraphDataset
  from dgl.nn import APPNPConv
  from scipy.linalg import fractional_matrix_power, inv
  from sklearn.preprocessing import MinMaxScaler
label_desc: Use image node_id 5 for calling a global function with example usage: process_dataset_appnp(epsilon) and returns: graph,  diff_graph,  feat,  label,  train_idx,  val_idx,  test_idx,  diff_weight