# Generated by scripts/gen_templates.py from the PDB Chemical # Component Dictionary (https://files.rcsb.org/ligands/). # DO NOT EDIT: regenerate with the script. Flat String lists # (Data, reusable): atoms alternate name/element-symbol, bonds # alternate the two names. CCD charges are formal, not partial. # Leaving atoms (OXT, terminal H) stay listed; Bend filters by # presence, so OXT bonds fire only where OXT exists. import Base # --- ALA: 13 atoms, 12 bonds. --- def tpl_ALA_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB1", "H", "HB2", "H", "HB3", "H", "HXT", "H"] def tpl_ALA_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "HB1", "CB", "HB2", "CB", "HB3", "OXT", "HXT"] # --- ARG: 27 atoms, 26 bonds. --- def tpl_ARG_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "CD", "C", "NE", "N", "CZ", "C", "NH1", "N", "NH2", "N", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HG2", "H", "HG3", "H", "HD2", "H", "HD3", "H", "HE", "H", "HH11", "H", "HH12", "H", "HH21", "H", "HH22", "H", "HXT", "H"] def tpl_ARG_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "CD", "CG", "HG2", "CG", "HG3", "CD", "NE", "CD", "HD2", "CD", "HD3", "NE", "CZ", "NE", "HE", "CZ", "NH1", "CZ", "NH2", "NH1", "HH11", "NH1", "HH12", "NH2", "HH21", "NH2", "HH22", "OXT", "HXT"] # --- ASN: 17 atoms, 16 bonds. --- def tpl_ASN_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "OD1", "O", "ND2", "N", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HD21", "H", "HD22", "H", "HXT", "H"] def tpl_ASN_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "OD1", "CG", "ND2", "ND2", "HD21", "ND2", "HD22", "OXT", "HXT"] # --- ASP: 16 atoms, 15 bonds. --- def tpl_ASP_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "OD1", "O", "OD2", "O", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HD2", "H", "HXT", "H"] def tpl_ASP_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "OD1", "CG", "OD2", "OD2", "HD2", "OXT", "HXT"] # --- CYS: 14 atoms, 13 bonds. --- def tpl_CYS_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "SG", "S", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HG", "H", "HXT", "H"] def tpl_CYS_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "SG", "CB", "HB2", "CB", "HB3", "SG", "HG", "OXT", "HXT"] # --- GLN: 20 atoms, 19 bonds. --- def tpl_GLN_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "CD", "C", "OE1", "O", "NE2", "N", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HG2", "H", "HG3", "H", "HE21", "H", "HE22", "H", "HXT", "H"] def tpl_GLN_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "CD", "CG", "HG2", "CG", "HG3", "CD", "OE1", "CD", "NE2", "NE2", "HE21", "NE2", "HE22", "OXT", "HXT"] # --- GLU: 19 atoms, 18 bonds. --- def tpl_GLU_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "CD", "C", "OE1", "O", "OE2", "O", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HG2", "H", "HG3", "H", "HE2", "H", "HXT", "H"] def tpl_GLU_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "CD", "CG", "HG2", "CG", "HG3", "CD", "OE1", "CD", "OE2", "OE2", "HE2", "OXT", "HXT"] # --- GLY: 10 atoms, 9 bonds. --- def tpl_GLY_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "OXT", "O", "H", "H", "H2", "H", "HA2", "H", "HA3", "H", "HXT", "H"] def tpl_GLY_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "HA2", "CA", "HA3", "C", "O", "C", "OXT", "OXT", "HXT"] # --- HIS: 21 atoms, 21 bonds. --- def tpl_HIS_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "ND1", "N", "CD2", "C", "CE1", "C", "NE2", "N", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HD1", "H", "HD2", "H", "HE1", "H", "HE2", "H", "HXT", "H"] def tpl_HIS_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "ND1", "CG", "CD2", "ND1", "CE1", "ND1", "HD1", "CD2", "NE2", "CD2", "HD2", "CE1", "NE2", "CE1", "HE1", "NE2", "HE2", "OXT", "HXT"] # --- ILE: 22 atoms, 21 bonds. --- def tpl_ILE_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG1", "C", "CG2", "C", "CD1", "C", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB", "H", "HG12", "H", "HG13", "H", "HG21", "H", "HG22", "H", "HG23", "H", "HD11", "H", "HD12", "H", "HD13", "H", "HXT", "H"] def tpl_ILE_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG1", "CB", "CG2", "CB", "HB", "CG1", "CD1", "CG1", "HG12", "CG1", "HG13", "CG2", "HG21", "CG2", "HG22", "CG2", "HG23", "CD1", "HD11", "CD1", "HD12", "CD1", "HD13", "OXT", "HXT"] # --- LEU: 22 atoms, 21 bonds. --- def tpl_LEU_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "CD1", "C", "CD2", "C", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HG", "H", "HD11", "H", "HD12", "H", "HD13", "H", "HD21", "H", "HD22", "H", "HD23", "H", "HXT", "H"] def tpl_LEU_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "CD1", "CG", "CD2", "CG", "HG", "CD1", "HD11", "CD1", "HD12", "CD1", "HD13", "CD2", "HD21", "CD2", "HD22", "CD2", "HD23", "OXT", "HXT"] # --- LYS: 25 atoms, 24 bonds. --- def tpl_LYS_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "CD", "C", "CE", "C", "NZ", "N", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HG2", "H", "HG3", "H", "HD2", "H", "HD3", "H", "HE2", "H", "HE3", "H", "HZ1", "H", "HZ2", "H", "HZ3", "H", "HXT", "H"] def tpl_LYS_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "CD", "CG", "HG2", "CG", "HG3", "CD", "CE", "CD", "HD2", "CD", "HD3", "CE", "NZ", "CE", "HE2", "CE", "HE3", "NZ", "HZ1", "NZ", "HZ2", "NZ", "HZ3", "OXT", "HXT"] # --- MET: 20 atoms, 19 bonds. --- def tpl_MET_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "SD", "S", "CE", "C", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HG2", "H", "HG3", "H", "HE1", "H", "HE2", "H", "HE3", "H", "HXT", "H"] def tpl_MET_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "SD", "CG", "HG2", "CG", "HG3", "SD", "CE", "CE", "HE1", "CE", "HE2", "CE", "HE3", "OXT", "HXT"] # --- PHE: 23 atoms, 23 bonds. --- def tpl_PHE_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "CD1", "C", "CD2", "C", "CE1", "C", "CE2", "C", "CZ", "C", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HD1", "H", "HD2", "H", "HE1", "H", "HE2", "H", "HZ", "H", "HXT", "H"] def tpl_PHE_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "CD1", "CG", "CD2", "CD1", "CE1", "CD1", "HD1", "CD2", "CE2", "CD2", "HD2", "CE1", "CZ", "CE1", "HE1", "CE2", "CZ", "CE2", "HE2", "CZ", "HZ", "OXT", "HXT"] # --- PRO: 17 atoms, 17 bonds. --- def tpl_PRO_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "CD", "C", "OXT", "O", "H", "H", "HA", "H", "HB2", "H", "HB3", "H", "HG2", "H", "HG3", "H", "HD2", "H", "HD3", "H", "HXT", "H"] def tpl_PRO_bonds() -> List<&2, String>: ["N", "CA", "N", "CD", "N", "H", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "CD", "CG", "HG2", "CG", "HG3", "CD", "HD2", "CD", "HD3", "OXT", "HXT"] # --- SER: 14 atoms, 13 bonds. --- def tpl_SER_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "OG", "O", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HG", "H", "HXT", "H"] def tpl_SER_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "OG", "CB", "HB2", "CB", "HB3", "OG", "HG", "OXT", "HXT"] # --- THR: 17 atoms, 16 bonds. --- def tpl_THR_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "OG1", "O", "CG2", "C", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB", "H", "HG1", "H", "HG21", "H", "HG22", "H", "HG23", "H", "HXT", "H"] def tpl_THR_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "OG1", "CB", "CG2", "CB", "HB", "OG1", "HG1", "CG2", "HG21", "CG2", "HG22", "CG2", "HG23", "OXT", "HXT"] # --- TRP: 27 atoms, 28 bonds. --- def tpl_TRP_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "CD1", "C", "CD2", "C", "NE1", "N", "CE2", "C", "CE3", "C", "CZ2", "C", "CZ3", "C", "CH2", "C", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HD1", "H", "HE1", "H", "HE3", "H", "HZ2", "H", "HZ3", "H", "HH2", "H", "HXT", "H"] def tpl_TRP_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "CD1", "CG", "CD2", "CD1", "NE1", "CD1", "HD1", "CD2", "CE2", "CD2", "CE3", "NE1", "CE2", "NE1", "HE1", "CE2", "CZ2", "CE3", "CZ3", "CE3", "HE3", "CZ2", "CH2", "CZ2", "HZ2", "CZ3", "CH2", "CZ3", "HZ3", "CH2", "HH2", "OXT", "HXT"] # --- TYR: 24 atoms, 24 bonds. --- def tpl_TYR_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG", "C", "CD1", "C", "CD2", "C", "CE1", "C", "CE2", "C", "CZ", "C", "OH", "O", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB2", "H", "HB3", "H", "HD1", "H", "HD2", "H", "HE1", "H", "HE2", "H", "HH", "H", "HXT", "H"] def tpl_TYR_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG", "CB", "HB2", "CB", "HB3", "CG", "CD1", "CG", "CD2", "CD1", "CE1", "CD1", "HD1", "CD2", "CE2", "CD2", "HD2", "CE1", "CZ", "CE1", "HE1", "CE2", "CZ", "CE2", "HE2", "CZ", "OH", "OH", "HH", "OXT", "HXT"] # --- VAL: 19 atoms, 18 bonds. --- def tpl_VAL_atoms() -> List<&2, String>: ["N", "N", "CA", "C", "C", "C", "O", "O", "CB", "C", "CG1", "C", "CG2", "C", "OXT", "O", "H", "H", "H2", "H", "HA", "H", "HB", "H", "HG11", "H", "HG12", "H", "HG13", "H", "HG21", "H", "HG22", "H", "HG23", "H", "HXT", "H"] def tpl_VAL_bonds() -> List<&2, String>: ["N", "CA", "N", "H", "N", "H2", "CA", "C", "CA", "CB", "CA", "HA", "C", "O", "C", "OXT", "CB", "CG1", "CB", "CG2", "CB", "HB", "CG1", "HG11", "CG1", "HG12", "CG1", "HG13", "CG2", "HG21", "CG2", "HG22", "CG2", "HG23", "OXT", "HXT"] # Template atoms by residue name (unknown -> empty). def tpl_atoms_HIP(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_HIS_atoms() case False{}: Nil{} def tpl_atoms_HID(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_HIS_atoms() case False{}: tpl_atoms_HIP(String.eq(res, "HIP"), res) def tpl_atoms_HIE(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_HIS_atoms() case False{}: tpl_atoms_HID(String.eq(res, "HID"), res) def tpl_atoms_VAL(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_VAL_atoms() case False{}: tpl_atoms_HIE(String.eq(res, "HIE"), res) def tpl_atoms_TYR(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_TYR_atoms() case False{}: tpl_atoms_VAL(String.eq(res, "VAL"), res) def tpl_atoms_TRP(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_TRP_atoms() case False{}: tpl_atoms_TYR(String.eq(res, "TYR"), res) def tpl_atoms_THR(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_THR_atoms() case False{}: tpl_atoms_TRP(String.eq(res, "TRP"), res) def tpl_atoms_SER(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_SER_atoms() case False{}: tpl_atoms_THR(String.eq(res, "THR"), res) def tpl_atoms_PRO(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_PRO_atoms() case False{}: tpl_atoms_SER(String.eq(res, "SER"), res) def tpl_atoms_PHE(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_PHE_atoms() case False{}: tpl_atoms_PRO(String.eq(res, "PRO"), res) def tpl_atoms_MET(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_MET_atoms() case False{}: tpl_atoms_PHE(String.eq(res, "PHE"), res) def tpl_atoms_LYS(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_LYS_atoms() case False{}: tpl_atoms_MET(String.eq(res, "MET"), res) def tpl_atoms_LEU(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_LEU_atoms() case False{}: tpl_atoms_LYS(String.eq(res, "LYS"), res) def tpl_atoms_ILE(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_ILE_atoms() case False{}: tpl_atoms_LEU(String.eq(res, "LEU"), res) def tpl_atoms_HIS(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_HIS_atoms() case False{}: tpl_atoms_ILE(String.eq(res, "ILE"), res) def tpl_atoms_GLY(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_GLY_atoms() case False{}: tpl_atoms_HIS(String.eq(res, "HIS"), res) def tpl_atoms_GLU(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_GLU_atoms() case False{}: tpl_atoms_GLY(String.eq(res, "GLY"), res) def tpl_atoms_GLN(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_GLN_atoms() case False{}: tpl_atoms_GLU(String.eq(res, "GLU"), res) def tpl_atoms_CYS(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_CYS_atoms() case False{}: tpl_atoms_GLN(String.eq(res, "GLN"), res) def tpl_atoms_ASP(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_ASP_atoms() case False{}: tpl_atoms_CYS(String.eq(res, "CYS"), res) def tpl_atoms_ASN(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_ASN_atoms() case False{}: tpl_atoms_ASP(String.eq(res, "ASP"), res) def tpl_atoms_ARG(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_ARG_atoms() case False{}: tpl_atoms_ASN(String.eq(res, "ASN"), res) def tpl_atoms_ALA(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_ALA_atoms() case False{}: tpl_atoms_ARG(String.eq(res, "ARG"), res) def tpl_atoms_for(+res: String) -> List<&2, String>: tpl_atoms_ALA(String.eq(res, "ALA"), res) # Template bonds by residue name (unknown -> empty). def tpl_bonds_HIP(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_HIS_bonds() case False{}: Nil{} def tpl_bonds_HID(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_HIS_bonds() case False{}: tpl_bonds_HIP(String.eq(res, "HIP"), res) def tpl_bonds_HIE(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_HIS_bonds() case False{}: tpl_bonds_HID(String.eq(res, "HID"), res) def tpl_bonds_VAL(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_VAL_bonds() case False{}: tpl_bonds_HIE(String.eq(res, "HIE"), res) def tpl_bonds_TYR(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_TYR_bonds() case False{}: tpl_bonds_VAL(String.eq(res, "VAL"), res) def tpl_bonds_TRP(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_TRP_bonds() case False{}: tpl_bonds_TYR(String.eq(res, "TYR"), res) def tpl_bonds_THR(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_THR_bonds() case False{}: tpl_bonds_TRP(String.eq(res, "TRP"), res) def tpl_bonds_SER(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_SER_bonds() case False{}: tpl_bonds_THR(String.eq(res, "THR"), res) def tpl_bonds_PRO(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_PRO_bonds() case False{}: tpl_bonds_SER(String.eq(res, "SER"), res) def tpl_bonds_PHE(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_PHE_bonds() case False{}: tpl_bonds_PRO(String.eq(res, "PRO"), res) def tpl_bonds_MET(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_MET_bonds() case False{}: tpl_bonds_PHE(String.eq(res, "PHE"), res) def tpl_bonds_LYS(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_LYS_bonds() case False{}: tpl_bonds_MET(String.eq(res, "MET"), res) def tpl_bonds_LEU(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_LEU_bonds() case False{}: tpl_bonds_LYS(String.eq(res, "LYS"), res) def tpl_bonds_ILE(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_ILE_bonds() case False{}: tpl_bonds_LEU(String.eq(res, "LEU"), res) def tpl_bonds_HIS(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_HIS_bonds() case False{}: tpl_bonds_ILE(String.eq(res, "ILE"), res) def tpl_bonds_GLY(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_GLY_bonds() case False{}: tpl_bonds_HIS(String.eq(res, "HIS"), res) def tpl_bonds_GLU(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_GLU_bonds() case False{}: tpl_bonds_GLY(String.eq(res, "GLY"), res) def tpl_bonds_GLN(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_GLN_bonds() case False{}: tpl_bonds_GLU(String.eq(res, "GLU"), res) def tpl_bonds_CYS(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_CYS_bonds() case False{}: tpl_bonds_GLN(String.eq(res, "GLN"), res) def tpl_bonds_ASP(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_ASP_bonds() case False{}: tpl_bonds_CYS(String.eq(res, "CYS"), res) def tpl_bonds_ASN(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_ASN_bonds() case False{}: tpl_bonds_ASP(String.eq(res, "ASP"), res) def tpl_bonds_ARG(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_ARG_bonds() case False{}: tpl_bonds_ASN(String.eq(res, "ASN"), res) def tpl_bonds_ALA(hit: Bool, +res: String) -> List<&2, String>: match hit: case True{}: tpl_ALA_bonds() case False{}: tpl_bonds_ARG(String.eq(res, "ARG"), res) def tpl_bonds_for(+res: String) -> List<&2, String>: tpl_bonds_ALA(String.eq(res, "ALA"), res)