code: def build_template_angle_feat(template_feats):
      template_aatype = template_feats["template_aatype"]
      torsion_angles_sin_cos = template_feats[
          "template_torsion_angles_sin_cos"
      ]
      alt_torsion_angles_sin_cos = template_feats[
          "template_alt_torsion_angles_sin_cos"
      ]
      torsion_angles_mask = template_feats[
          "template_torsion_angles_mask"
      ]
      template_angle_feat = torch.cat(
          [
              nn.functional.one_hot(template_aatype, 22),
              torsion_angles_sin_cos.reshape(
                  *torsion_angles_sin_cos.shape[:-2], 14
              ),
              alt_torsion_angles_sin_cos.reshape(
                  *alt_torsion_angles_sin_cos.shape[:-2], 14
              ),
              torsion_angles_mask,
          ],
          dim=-1,
      )
  
      return template_angle_feat
  
file_path: H2O/h2o_flexgen/benchmark/third_party/transformers/src/transformers/models/esm/openfold_utils/feats.py
imports: import torch
  import torch.nn
  from .None import residue_constants
  from .rigid_utils import Rigid, Rotation
  from .tensor_utils import batched_gather
label_desc: Use image node_id 3 for calling a global function with example usage: build_template_angle_feat(template_feats) and returns: template_angle_feat