code: def forward(self, dist, angle, torsion, idx_kj):
      dist_emb = self.dist_emb(dist)
      angle_emb = self.angle_emb(dist, angle, idx_kj)
      torsion_emb = self.torsion_emb(dist, angle, torsion, idx_kj)
      return dist_emb, angle_emb, torsion_emb
  
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 emb obj's underlying member method code with example usage: obj.forward(dist, angle, torsion, idx_kj) and returns: dist_emb,  angle_emb,  torsion_emb