code: def propagation(self, in_batch_x, P_tilde):
      to_outbatch_emb = self.message_and_aggregate(P_tilde, in_batch_x)
      return to_outbatch_emb
  
imports: from itertools import product
  from typing import Optional, List
  import tqdm
  import torch
  from torch import Tensor
  import torch.nn.functional
  from torch.nn import ModuleList, Linear, BatchNorm1d
  from torch_sparse import SparseTensor
  from torch_geometric.nn import MessagePassing
  from torch_geometric.nn import PNAConv
  from torch_scatter import segment_csr
  from ..models import ScalableGNN
label_desc: Use image node_id 5 for calling the PNAConv obj's underlying member method code with example usage: obj.propagation(in_batch_x, P_tilde) and returns: to_outbatch_emb