code: def dist_only_forward(self, z, pos, batch):
      edge_index = radius_graph(pos, r=self.cutoff, batch=batch)
      j, i = edge_index
      dist = (pos[i] - pos[j]).pow(2).sum(dim=-1).sqrt()
      emb = self.emb.dist_emb(dist)
  
      e, _ = self.init_e(z, emb, i, j)
      v = self.init_v(e, i, z.size(0))
      # u = self.init_u(torch.zeros_like(scatter(v, batch, dim=0)), v, batch)
  
      for l in range(len(self.update_es) - 1):
          v = self.update_vs[l](e, i, z.size(0))
          # u = self.update_us[l](u, v, batch)
  
      v = self.update_vs[-1](e, i, z.size(0))
      # u = self.update_us[-1](u, v, batch)
  
      return v
  
imports: import torch
  from torch import nn
  from torch.nn import Linear, Embedding
  from torch_geometric.nn.inits import glorot_orthogonal
  from torch_geometric.nn import radius_graph
  from torch_scatter import scatter
  import torch.nn.functional
  from math import sqrt
  from .geometric_computing import xyztodat
  from .features import dist_emb, angle_emb, torsion_emb
label_desc: Use image node_id 3 for calling the SphereNet obj's underlying member method code with example usage: obj.dist_only_forward(z, pos, batch) and returns: v