code: def gnn_score(
      coalition: list,
      data: Data,
      value_func: str,
      subgraph_building_method="zero_filling",
  ) -> torch.Tensor:
      """the value of subgraph with selected nodes"""
      num_nodes = data.num_nodes
      subgraph_build_func = get_graph_build_func(
          subgraph_building_method
      )
      mask = (
          torch.zeros(num_nodes).type(torch.float32).to(data.x.device)
      )
      mask[coalition] = 1.0
      ret_x, ret_edge_index = subgraph_build_func(
          data.x, data.edge_index, mask
      )
      mask_data = Data(x=ret_x, edge_index=ret_edge_index)
      mask_data = Batch.from_data_list([mask_data])
      score = value_func(mask_data)
      # get the score of predicted class for graph or specific node idx
      return score.item()
  
imports: import copy
  import torch
  import numpy
  from scipy.special import comb
  from itertools import combinations
  import torch.nn.functional
  from torch_geometric.utils import to_networkx
  from torch_geometric.data import Data, Batch, Dataset
  from torch_geometric.loader import DataLoader
label_desc: Use image node_id 10 for calling a global function with example usage: gnn_score(coalition, data, value_func, subgraph_building_method) and returns: score