code: def __init__(
      self, num_spherical, num_radial, cutoff, envelope_exponent
  ):
      super(emb, self).__init__()
      self.dist_emb = dist_emb(num_radial, cutoff, envelope_exponent)
      self.angle_emb = angle_emb(
          num_spherical, num_radial, cutoff, envelope_exponent
      )
      self.torsion_emb = torsion_emb(
          num_spherical, num_radial, cutoff, envelope_exponent
      )
      self.reset_parameters()
  
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 1 to create a new emb object from inherited base classes: torch.nn with example: obj = emb(num_spherical, num_radial, cutoff, envelope_exponent)