code: def make_atom14_dists_bounds(
      overlap_tolerance: float = 1.5,
      bond_length_tolerance_factor: int = 15,
  ) -> Dict[str, np.ndarray]:
      """compute upper and lower bounds for bonds to assess violations."""
      restype_atom14_bond_lower_bound = np.zeros(
          [21, 14, 14], np.float32
      )
      restype_atom14_bond_upper_bound = np.zeros(
          [21, 14, 14], np.float32
      )
      restype_atom14_bond_stddev = np.zeros([21, 14, 14], np.float32)
      (
          residue_bonds,
          residue_virtual_bonds,
          _,
      ) = load_stereo_chemical_props()
      for restype, restype_letter in enumerate(restypes):
          resname = restype_1to3[restype_letter]
          atom_list = restype_name_to_atom14_names[resname]
  
          # create lower and upper bounds for clashes
          for atom1_idx, atom1_name in enumerate(atom_list):
              if not atom1_name:
                  continue
              atom1_radius = van_der_waals_radius[atom1_name[0]]
              for atom2_idx, atom2_name in enumerate(atom_list):
                  if (not atom2_name) or atom1_idx == atom2_idx:
                      continue
                  atom2_radius = van_der_waals_radius[atom2_name[0]]
                  lower = (
                      atom1_radius + atom2_radius - overlap_tolerance
                  )
                  upper = 1e10
                  restype_atom14_bond_lower_bound[
                      restype, atom1_idx, atom2_idx
                  ] = lower
                  restype_atom14_bond_lower_bound[
                      restype, atom2_idx, atom1_idx
                  ] = lower
                  restype_atom14_bond_upper_bound[
                      restype, atom1_idx, atom2_idx
                  ] = upper
                  restype_atom14_bond_upper_bound[
                      restype, atom2_idx, atom1_idx
                  ] = upper
  
          # overwrite lower and upper bounds for bonds and angles
          for b in (
              residue_bonds[resname] + residue_virtual_bonds[resname]
          ):
              atom1_idx = atom_list.index(b.atom1_name)
              atom2_idx = atom_list.index(b.atom2_name)
              lower = b.length - bond_length_tolerance_factor * b.stddev
              upper = b.length + bond_length_tolerance_factor * b.stddev
              restype_atom14_bond_lower_bound[
                  restype, atom1_idx, atom2_idx
              ] = lower
              restype_atom14_bond_lower_bound[
                  restype, atom2_idx, atom1_idx
              ] = lower
              restype_atom14_bond_upper_bound[
                  restype, atom1_idx, atom2_idx
              ] = upper
              restype_atom14_bond_upper_bound[
                  restype, atom2_idx, atom1_idx
              ] = upper
              restype_atom14_bond_stddev[
                  restype, atom1_idx, atom2_idx
              ] = b.stddev
              restype_atom14_bond_stddev[
                  restype, atom2_idx, atom1_idx
              ] = b.stddev
      return {
          "lower_bound": restype_atom14_bond_lower_bound,  # shape (21,14,14)
          "upper_bound": restype_atom14_bond_upper_bound,  # shape (21,14,14)
          "stddev": restype_atom14_bond_stddev,  # shape (21,14,14)
      }
  
file_path: transformers/src/transformers/models/esm/openfold_utils/residue_constants.py
imports: import collections
  import copy
  import functools
  from importlib import resources
  from typing import Dict, List, Mapping, Sequence, Tuple
  import numpy
label_desc: Use image node_id 8 for calling a global function with example usage: make_atom14_dists_bounds(overlap_tolerance, bond_length_tolerance_factor) and returns: dict