import torch import numpy as np num2aa=[ 'ALA','ARG','ASN','ASP','CYS', 'GLN','GLU','GLY','HIS','ILE', 'LEU','LYS','MET','PHE','PRO', 'SER','THR','TRP','TYR','VAL', 'UNK','MAS', ] aa2num= {x:i for i,x in enumerate(num2aa)} # full sc atom representation (Nx14) aa2long=[ (" N "," CA "," C "," O "," CB ", None, None, None, None, None, None, None, None, None," H "," HA ","1HB ","2HB ","3HB ", None, None, None, None, None, None, None, None), # ala (" N "," CA "," C "," O "," CB "," CG "," CD "," NE "," CZ "," NH1"," NH2", None, None, None," H "," HA ","1HB ","2HB ","1HG ","2HG ","1HD ","2HD "," HE ","1HH1","2HH1","1HH2","2HH2"), # arg (" N "," CA "," C "," O "," CB "," CG "," OD1"," ND2", None, None, None, None, None, None," H "," HA ","1HB ","2HB ","1HD2","2HD2", None, None, None, None, None, None, None), # asn (" N "," CA "," C "," O "," CB "," CG "," OD1"," OD2", None, None, None, None, None, None," H "," HA ","1HB ","2HB ", None, None, None, None, None, None, None, None, None), # asp (" N "," CA "," C "," O "," CB "," SG ", None, None, None, None, None, None, None, None," H "," HA ","1HB ","2HB "," HG ", None, None, None, None, None, None, None, None), # cys (" N "," CA "," C "," O "," CB "," CG "," CD "," OE1"," NE2", None, None, None, None, None," H "," HA ","1HB ","2HB ","1HG ","2HG ","1HE2","2HE2", None, None, None, None, None), # gln (" N "," CA "," C "," O "," CB "," CG "," CD "," OE1"," OE2", None, None, None, None, None," H "," HA ","1HB ","2HB ","1HG ","2HG ", None, None, None, None, None, None, None), # glu (" N "," CA "," C "," O ", None, None, None, None, None, None, None, None, None, None," H ","1HA ","2HA ", None, None, None, None, None, None, None, None, None, None), # gly (" N "," CA "," C "," O "," CB "," CG "," ND1"," CD2"," CE1"," NE2", None, None, None, None," H "," HA ","1HB ","2HB "," HD2"," HE1"," HE2", None, None, None, None, None, None), # his (" N "," CA "," C "," O "," CB "," CG1"," CG2"," CD1", None, None, None, None, None, None," H "," HA "," HB ","1HG2","2HG2","3HG2","1HG1","2HG1","1HD1","2HD1","3HD1", None, None), # ile (" N "," CA "," C "," O "," CB "," CG "," CD1"," CD2", None, None, None, None, None, None," H "," HA ","1HB ","2HB "," HG ","1HD1","2HD1","3HD1","1HD2","2HD2","3HD2", None, None), # leu (" N "," CA "," C "," O "," CB "," CG "," CD "," CE "," NZ ", None, None, None, None, None," H "," HA ","1HB ","2HB ","1HG ","2HG ","1HD ","2HD ","1HE ","2HE ","1HZ ","2HZ ","3HZ "), # lys (" N "," CA "," C "," O "," CB "," CG "," SD "," CE ", None, None, None, None, None, None," H "," HA ","1HB ","2HB ","1HG ","2HG ","1HE ","2HE ","3HE ", None, None, None, None), # met (" N "," CA "," C "," O "," CB "," CG "," CD1"," CD2"," CE1"," CE2"," CZ ", None, None, None," H "," HA ","1HB ","2HB "," HD1"," HD2"," HE1"," HE2"," HZ ", None, None, None, None), # phe (" N "," CA "," C "," O "," CB "," CG "," CD ", None, None, None, None, None, None, None," HA ","1HB ","2HB ","1HG ","2HG ","1HD ","2HD ", None, None, None, None, None, None), # pro (" N "," CA "," C "," O "," CB "," OG ", None, None, None, None, None, None, None, None," H "," HG "," HA ","1HB ","2HB ", None, None, None, None, None, None, None, None), # ser (" N "," CA "," C "," O "," CB "," OG1"," CG2", None, None, None, None, None, None, None," H "," HG1"," HA "," HB ","1HG2","2HG2","3HG2", None, None, None, None, None, None), # thr (" N "," CA "," C "," O "," CB "," CG "," CD1"," CD2"," NE1"," CE2"," CE3"," CZ2"," CZ3"," CH2"," H "," HA ","1HB ","2HB "," HD1"," HE1"," HZ2"," HH2"," HZ3"," HE3", None, None, None), # trp (" N "," CA "," C "," O "," CB "," CG "," CD1"," CD2"," CE1"," CE2"," CZ "," OH ", None, None," H "," HA ","1HB ","2HB "," HD1"," HE1"," HE2"," HD2"," HH ", None, None, None, None), # tyr (" N "," CA "," C "," O "," CB "," CG1"," CG2", None, None, None, None, None, None, None," H "," HA "," HB ","1HG1","2HG1","3HG1","1HG2","2HG2","3HG2", None, None, None, None), # val (" N "," CA "," C "," O "," CB ", None, None, None, None, None, None, None, None, None," H "," HA ","1HB ","2HB ","3HB ", None, None, None, None, None, None, None, None), # unk (" N "," CA "," C "," O "," CB ", None, None, None, None, None, None, None, None, None," H "," HA ","1HB ","2HB ","3HB ", None, None, None, None, None, None, None, None), # mask ] # build the "alternate" sc mapping aa2longalt=[ (" N "," CA "," C "," O "," CB ", None, None, None, None, None, None, None, None, None," H "," HA ","1HB ","2HB ","3HB ", None, None, None, None, None, None, None, None), # ala (" N "," CA "," C "," O "," CB "," CG "," CD "," NE "," CZ "," NH1"," NH2", None, None, None," H "," HA ","1HB ","2HB ","1HG ","2HG ","1HD ","2HD "," HE ","1HH1","2HH1","1HH2","2HH2"), # arg (" N "," CA "," C "," O "," CB "," CG "," OD1"," ND2", None, None, None, None, None, None," H "," HA ","1HB ","2HB ","1HD2","2HD2", None, None, None, None, None, None, None), # asn (" N "," CA "," C "," O "," CB "," CG "," OD2"," OD1", None, None, None, None, None, None," H "," HA ","1HB ","2HB ", None, None, None, None, None, None, None, None, None), # asp (" N "," CA "," C "," O "," CB "," SG ", None, None, None, None, None, None, None, None," H "," HA ","1HB ","2HB "," HG ", None, None, None, None, None, None, None, None), # cys (" N "," CA "," C "," O "," CB "," CG "," CD "," OE1"," NE2", None, None, None, None, None," H "," HA ","1HB ","2HB ","1HG ","2HG ","1HE2","2HE2", None, None, None, None, None), # gln (" N "," CA "," C "," O "," CB "," CG "," CD "," OE2"," OE1", None, None, None, None, None," H "," HA ","1HB ","2HB ","1HG ","2HG ", None, None, None, None, None, None, None), # glu (" N "," CA "," C "," O ", None, None, None, None, None, None, None, None, None, None," H ","1HA ","2HA ", None, None, None, None, None, None, None, None, None, None), # gly (" N "," CA "," C "," O "," CB "," CG "," NE2"," CD2"," CE1"," ND1", None, None, None, None," H "," HA ","1HB ","2HB "," HD2"," HE1"," HE2", None, None, None, None, None, None), # his (" N "," CA "," C "," O "," CB "," CG1"," CG2"," CD1", None, None, None, None, None, None," H "," HA "," HB ","1HG2","2HG2","3HG2","1HG1","2HG1","1HD1","2HD1","3HD1", None, None), # ile (" N "," CA "," C "," O "," CB "," CG "," CD1"," CD2", None, None, None, None, None, None," H "," HA ","1HB ","2HB "," HG ","1HD1","2HD1","3HD1","1HD2","2HD2","3HD2", None, None), # leu (" N "," CA "," C "," O "," CB "," CG "," CD "," CE "," NZ ", None, None, None, None, None," H "," HA ","1HB ","2HB ","1HG ","2HG ","1HD ","2HD ","1HE ","2HE ","1HZ ","2HZ ","3HZ "), # lys (" N "," CA "," C "," O "," CB "," CG "," SD "," CE ", None, None, None, None, None, None," H "," HA ","1HB ","2HB ","1HG ","2HG ","1HE ","2HE ","3HE ", None, None, None, None), # met (" N "," CA "," C "," O "," CB "," CG "," CD2"," CD1"," CE2"," CE1"," CZ ", None, None, None," H "," HD2"," HE2"," HZ "," HE1"," HD1"," HA ","1HB ","2HB ", None, None, None, None), # phe (" N "," CA "," C "," O "," CB "," CG "," CD ", None, None, None, None, None, None, None," HA ","1HB ","2HB ","1HG ","2HG ","1HD ","2HD ", None, None, None, None, None, None), # pro (" N "," CA "," C "," O "," CB "," OG ", None, None, None, None, None, None, None, None," H "," HG "," HA ","1HB ","2HB ", None, None, None, None, None, None, None, None), # ser (" N "," CA "," C "," O "," CB "," OG1"," CG2", None, None, None, None, None, None, None," H "," HG1"," HA "," HB ","1HG2","2HG2","3HG2", None, None, None, None, None, None), # thr (" N "," CA "," C "," O "," CB "," CG "," CD1"," CD2"," NE1"," CE2"," CE3"," CZ2"," CZ3"," CH2"," H "," HA ","1HB ","2HB "," HD1"," HE1"," HZ2"," HH2"," HZ3"," HE3", None, None, None), # trp (" N "," CA "," C "," O "," CB "," CG "," CD2"," CD1"," CE2"," CE1"," CZ "," OH ", None, None," H "," HA ","1HB ","2HB "," HD2"," HE2"," HE1"," HD1"," HH ", None, None, None, None), # tyr (" N "," CA "," C "," O "," CB "," CG1"," CG2", None, None, None, None, None, None, None," H "," HA "," HB ","1HG1","2HG1","3HG1","1HG2","2HG2","3HG2", None, None, None, None), # val (" N "," CA "," C "," O "," CB ", None, None, None, None, None, None, None, None, None," H "," HA ","1HB ","2HB ","3HB ", None, None, None, None, None, None, None, None), # unk (" N "," CA "," C "," O "," CB ", None, None, None, None, None, None, None, None, None," H "," HA ","1HB ","2HB ","3HB ", None, None, None, None, None, None, None, None), # mask ] aabonds=[ ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB ","1HB "),(" CB ","2HB "),(" CB ","3HB ")) , # ala ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," CD "),(" CG ","1HG "),(" CG ","2HG "),(" CD "," NE "),(" CD ","1HD "),(" CD ","2HD "),(" NE "," CZ "),(" NE "," HE "),(" CZ "," NH1"),(" CZ "," NH2"),(" NH1","1HH1"),(" NH1","2HH1"),(" NH2","1HH2"),(" NH2","2HH2")) , # arg ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," OD1"),(" CG "," ND2"),(" ND2","1HD2"),(" ND2","2HD2")) , # asn ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," OD1"),(" CG "," OD2")) , # asp ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," SG "),(" CB ","1HB "),(" CB ","2HB "),(" SG "," HG ")) , # cys ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," CD "),(" CG ","1HG "),(" CG ","2HG "),(" CD "," OE1"),(" CD "," NE2"),(" NE2","1HE2"),(" NE2","2HE2")) , # gln ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," CD "),(" CG ","1HG "),(" CG ","2HG "),(" CD "," OE1"),(" CD "," OE2")) , # glu ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA ","1HA "),(" CA ","2HA "),(" C "," O ")) , # gly ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," ND1"),(" CG "," CD2"),(" ND1"," CE1"),(" CD2"," NE2"),(" CD2"," HD2"),(" CE1"," NE2"),(" CE1"," HE1"),(" NE2"," HE2")) , # his ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG1"),(" CB "," CG2"),(" CB "," HB "),(" CG1"," CD1"),(" CG1","1HG1"),(" CG1","2HG1"),(" CG2","1HG2"),(" CG2","2HG2"),(" CG2","3HG2"),(" CD1","1HD1"),(" CD1","2HD1"),(" CD1","3HD1")) , # ile ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," CD1"),(" CG "," CD2"),(" CG "," HG "),(" CD1","1HD1"),(" CD1","2HD1"),(" CD1","3HD1"),(" CD2","1HD2"),(" CD2","2HD2"),(" CD2","3HD2")) , # leu ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," CD "),(" CG ","1HG "),(" CG ","2HG "),(" CD "," CE "),(" CD ","1HD "),(" CD ","2HD "),(" CE "," NZ "),(" CE ","1HE "),(" CE ","2HE "),(" NZ ","1HZ "),(" NZ ","2HZ "),(" NZ ","3HZ ")) , # lys ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," SD "),(" CG ","1HG "),(" CG ","2HG "),(" SD "," CE "),(" CE ","1HE "),(" CE ","2HE "),(" CE ","3HE ")) , # met ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," CD1"),(" CG "," CD2"),(" CD1"," CE1"),(" CD1"," HD1"),(" CD2"," CE2"),(" CD2"," HD2"),(" CE1"," CZ "),(" CE1"," HE1"),(" CE2"," CZ "),(" CE2"," HE2"),(" CZ "," HZ ")) , # phe ((" N "," CA "),(" N "," CD "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," CD "),(" CG ","1HG "),(" CG ","2HG "),(" CD ","1HD "),(" CD ","2HD ")) , # pro ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," OG "),(" CB ","1HB "),(" CB ","2HB "),(" OG "," HG ")) , # ser ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," OG1"),(" CB "," CG2"),(" CB "," HB "),(" OG1"," HG1"),(" CG2","1HG2"),(" CG2","2HG2"),(" CG2","3HG2")) , # thr ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" 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")) , # trp ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG "),(" CB ","1HB "),(" CB ","2HB "),(" CG "," CD1"),(" CG "," CD2"),(" CD1"," CE1"),(" CD1"," HD1"),(" CD2"," CE2"),(" CD2"," HD2"),(" CE1"," CZ "),(" CE1"," HE1"),(" CE2"," CZ "),(" CE2"," HE2"),(" CZ "," OH "),(" OH "," HH ")) , # tyr ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB "," CG1"),(" CB "," CG2"),(" CB "," HB "),(" CG1","1HG1"),(" CG1","2HG1"),(" CG1","3HG1"),(" CG2","1HG2"),(" CG2","2HG2"),(" CG2","3HG2")), # val ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB ","1HB "),(" CB ","2HB "),(" CB ","3HB ")) , # unk ((" N "," CA "),(" N "," H "),(" CA "," C "),(" CA "," CB "),(" CA "," HA "),(" C "," O "),(" CB ","1HB "),(" CB ","2HB "),(" CB ","3HB ")) , # mask ] aa2type = [ ("Nbb", "CAbb","CObb","OCbb","CH3", None, None, None, None, None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hapo", None, None, None, None, None, None, None, None), # ala ("Nbb", "CAbb","CObb","OCbb","CH2", "CH2", "CH2", "NtrR","aroC","Narg","Narg", None, None, None,"HNbb","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hpol","Hpol","Hpol","Hpol","Hpol"), # arg ("Nbb", "CAbb","CObb","OCbb","CH2", "CNH2","ONH2","NH2O", None, None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hpol","Hpol", None, None, None, None, None, None, None), # asn ("Nbb", "CAbb","CObb","OCbb","CH2", "COO", "OOC", "OOC", None, None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo", None, None, None, None, None, None, None, None, None), # asp ("Nbb", "CAbb","CObb","OCbb","CH2", "SH1", None, None, None, None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","HS", None, None, None, None, None, None, None, None), # cys ("Nbb", "CAbb","CObb","OCbb","CH2", "CH2", "CNH2","ONH2","NH2O", None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hapo","Hapo","Hpol","Hpol", None, None, None, None, None), # gln ("Nbb", "CAbb","CObb","OCbb","CH2", "CH2", "COO", "OOC", "OOC", None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hapo","Hapo", None, None, None, None, None, None, None), # glu ("Nbb", "CAbb","CObb","OCbb", None, None, None, None, None, None, None, None, None, None,"HNbb","Hapo","Hapo", None, None, None, None, None, None, None, None, None, None), # gly ("Nbb", "CAbb","CObb","OCbb","CH2", "CH0", "Nhis","aroC","aroC","Ntrp", None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hpol","Hapo","Hapo", None, None, None, None, None, None), # his ("Nbb", "CAbb","CObb","OCbb","CH1", "CH2", "CH3", "CH3", None, None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo", None, None), # ile ("Nbb", "CAbb","CObb","OCbb","CH2", "CH1", "CH3", "CH3", None, None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo", None, None), # leu ("Nbb", "CAbb","CObb","OCbb","CH2", "CH2", "CH2", "CH2", "Nlys", None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hpol","Hpol","Hpol"), # lys ("Nbb", "CAbb","CObb","OCbb","CH2", "CH2", "S", "CH3", None, None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo", None, None, None, None), # met ("Nbb", "CAbb","CObb","OCbb","CH2", "CH0", "aroC","aroC","aroC","aroC","aroC", None, None, None,"HNbb","Hapo","Hapo","Hapo","Haro","Haro","Haro","Haro","Haro", None, None, None, None), # phe ("Npro","CAbb","CObb","OCbb","CH2", "CH2", "CH2", None, None, None, None, None, None, None,"Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo", None, None, None, None, None, None), # pro ("Nbb", "CAbb","CObb","OCbb","CH2", "OH", None, None, None, None, None, None, None, None,"HNbb","Hpol","Hapo","Hapo","Hapo", None, None, None, None, None, None, None, None), # ser ("Nbb", "CAbb","CObb","OCbb","CH1", "OH", "CH3", None, None, None, None, None, None, None,"HNbb","Hpol","Hapo","Hapo","Hapo","Hapo","Hapo", None, None, None, None, None, None), # thr ("Nbb", "CAbb","CObb","OCbb","CH2", "CH0", "aroC","CH0", "Ntrp","CH0", "aroC","aroC","aroC","aroC","HNbb","Haro","Hapo","Hapo","Hapo","Hpol","Haro","Haro","Haro","Haro", None, None, None), # trp ("Nbb", "CAbb","CObb","OCbb","CH2", "CH0", "aroC","aroC","aroC","aroC","CH0", "OHY", None, None,"HNbb","Haro","Haro","Haro","Haro","Hapo","Hapo","Hapo","Hpol", None, None, None, None), # tyr ("Nbb", "CAbb","CObb","OCbb","CH1", "CH3", "CH3", None, None, None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo","Hapo", None, None, None, None), # val ("Nbb", "CAbb","CObb","OCbb","CH3", None, None, None, None, None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hapo", None, None, None, None, None, None, None, None), # unk ("Nbb", "CAbb","CObb","OCbb","CH3", None, None, None, None, None, None, None, None, None,"HNbb","Hapo","Hapo","Hapo","Hapo", None, None, None, None, None, None, None, None), # mask ] # tip atom aa2tip = [ " CB ", # ala " CZ ", # arg " ND2", # asn " CG ", # asp " SG ", # cys " NE2", # gln " CD ", # glu " CA ", # gly " NE2", # his " CD1", # ile " CG ", # leu " NZ ", # lys " SD ", # met " CZ ", # phe " CG ", # pro " OG ", # ser " OG1", # thr " CH2", # trp " OH ", # tyr " CB ", # val " CB ", # unknown (gap etc) " CB " # masked ] torsions=[ [ None, None, None, None ], # ala [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," CD "], [" CB "," CG "," CD "," NE "], [" CG "," CD "," NE "," CZ "] ], # arg [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," OD1"], None, None ], # asn [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," OD1"], None, None ], # asp [ [" N "," CA "," CB "," SG "], [" CA "," CB "," SG "," HG "], None, None ], # cys [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," CD "], [" CB "," CG "," CD "," OE1"], None ], # gln [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," CD "], [" CB "," CG "," CD "," OE1"], None ], # glu [ None, None, None, None ], # gly [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," ND1"], [" CD2"," CE1"," HE1"," NE2"], None ], # his (protonation handled as a pseudo-torsion) [ [" N "," CA "," CB "," CG1"], [" CA "," CB "," CG1"," CD1"], None, None ], # ile [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," CD1"], None, None ], # leu [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," CD "], [" CB "," CG "," CD "," CE "], [" CG "," CD "," CE "," NZ "] ], # lys [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," SD "], [" CB "," CG "," SD "," CE "], None ], # met [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," CD1"], None, None ], # phe [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," CD "], [" CB "," CG "," CD ","1HD "], None ], # pro [ [" N "," CA "," CB "," OG "], [" CA "," CB "," OG "," HG "], None, None ], # ser [ [" N "," CA "," CB "," OG1"], [" CA "," CB "," OG1"," HG1"], None, None ], # thr [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," CD1"], None, None ], # trp [ [" N "," CA "," CB "," CG "], [" CA "," CB "," CG "," CD1"], [" CE1"," CZ "," OH "," HH "], None ], # tyr [ [" N "," CA "," CB "," CG1"], None, None, None ], # val [ None, None, None, None ], # unk [ None, None, None, None ], # mask ] # ideal N, CA, C initial coordinates init_N = torch.tensor([-0.5272, 1.3593, 0.000]).float() init_CA = torch.zeros_like(init_N) init_C = torch.tensor([1.5233, 0.000, 0.000]).float() INIT_CRDS = torch.full((27, 3), np.nan) INIT_CRDS[:3] = torch.stack((init_N, init_CA, init_C), dim=0) # (3,3) norm_N = init_N / (torch.norm(init_N, dim=-1, keepdim=True) + 1e-5) norm_C = init_C / (torch.norm(init_C, dim=-1, keepdim=True) + 1e-5) cos_ideal_NCAC = torch.sum(norm_N*norm_C, dim=-1) # cosine of ideal N-CA-C bond angle #fd Rosetta ideal coords #fd - uses same "frame-building" as AF2 ideal_coords = [ [ # 0 ala [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3341, -0.4928, 0.9132)], [' CB ', 8, (-0.5289,-0.7734,-1.1991)], ['1HB ', 8, (-0.1265, -1.7863, -1.1851)], ['2HB ', 8, (-1.6173, -0.8147, -1.1541)], ['3HB ', 8, (-0.2229, -0.2744, -2.1172)], ], [ # 1 arg [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3467, -0.5055, 0.9018)], [' CB ', 8, (-0.5042,-0.7698,-1.2118)], ['1HB ', 4, ( 0.3635, -0.5318, 0.8781)], ['2HB ', 4, ( 0.3639, -0.5323, -0.8789)], [' CG ', 4, (0.6396,1.3794, 0.000)], ['1HG ', 5, (0.3639, -0.5139, 0.8900)], ['2HG ', 5, (0.3641, -0.5140, -0.8903)], [' CD ', 5, (0.5492,1.3801, 0.000)], ['1HD ', 6, (0.3637, -0.5135, 0.8895)], ['2HD ', 6, (0.3636, -0.5134, -0.8893)], [' NE ', 6, (0.5423,1.3491, 0.000)], [' NH1', 7, (0.2012,2.2965, 0.000)], [' NH2', 7, (2.0824,1.0030, 0.000)], [' CZ ', 7, (0.7650,1.1090, 0.000)], [' HE ', 7, (0.4701,-0.8955, 0.000)], ['1HH1', 7, (-0.8059,2.3776, 0.000)], ['1HH2', 7, (2.5160,0.0898, 0.000)], ['2HH1', 7, (0.7745,3.1277, 0.000)], ['2HH2', 7, (2.6554,1.8336, 0.000)], ], [ # 2 asn [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3233, -0.4967, 0.9162)], [' CB ', 8, (-0.5341,-0.7799,-1.1874)], ['1HB ', 4, ( 0.3641, -0.5327, 0.8795)], ['2HB ', 4, ( 0.3639, -0.5323, -0.8789)], [' CG ', 4, (0.5778,1.3881, 0.000)], [' ND2', 5, (0.5839,-1.1711, 0.000)], [' OD1', 5, (0.6331,1.0620, 0.000)], ['1HD2', 5, (1.5825, -1.2322, 0.000)], ['2HD2', 5, (0.0323, -2.0046, 0.000)], ], [ # 3 asp [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3233, -0.4967, 0.9162)], [' CB ', 8, (-0.5162,-0.7757,-1.2144)], ['1HB ', 4, ( 0.3639, -0.5324, 0.8791)], ['2HB ', 4, ( 0.3640, -0.5325, -0.8792)], [' CG ', 4, (0.5926,1.4028, 0.000)], [' OD1', 5, (0.5746,1.0629, 0.000)], [' OD2', 5, (0.5738,-1.0627, 0.000)], ], [ # 4 cys [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3481, -0.5059, 0.9006)], [' CB ', 8, (-0.5046,-0.7727,-1.2189)], ['1HB ', 4, ( 0.3639, -0.5324, 0.8791)], ['2HB ', 4, ( 0.3638, -0.5322, -0.8787)], [' SG ', 4, (0.7386,1.6511, 0.000)], [' HG ', 5, (0.1387,1.3221, 0.000)], ], [ # 5 gln [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3363, -0.5013, 0.9074)], [' CB ', 8, (-0.5226,-0.7776,-1.2109)], ['1HB ', 4, ( 0.3638, -0.5323, 0.8789)], ['2HB ', 4, ( 0.3638, -0.5322, -0.8788)], [' CG ', 4, (0.6225,1.3857, 0.000)], ['1HG ', 5, ( 0.3531, -0.5156, 0.8931)], ['2HG ', 5, ( 0.3531, -0.5156, -0.8931)], [' CD ', 5, (0.5788,1.4021, 0.000)], [' NE2', 6, (0.5908,-1.1895, 0.000)], [' OE1', 6, (0.6347,1.0584, 0.000)], ['1HE2', 6, (1.5825, -1.2525, 0.000)], ['2HE2', 6, (0.0380, -2.0229, 0.000)], ], [ # 6 glu [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3363, -0.5013, 0.9074)], [' CB ', 8, (-0.5197,-0.7737,-1.2137)], ['1HB ', 4, ( 0.3638, -0.5323, 0.8789)], ['2HB ', 4, ( 0.3638, -0.5322, -0.8788)], [' CG ', 4, (0.6287,1.3862, 0.000)], ['1HG ', 5, ( 0.3531, -0.5156, 0.8931)], ['2HG ', 5, ( 0.3531, -0.5156, -0.8931)], [' CD ', 5, (0.5850,1.3849, 0.000)], [' OE1', 6, (0.5752,1.0618, 0.000)], [' OE2', 6, (0.5741,-1.0635, 0.000)], ], [ # 7 gly [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], ['1HA ', 0, ( -0.3676, -0.5329, 0.8771)], ['2HA ', 0, ( -0.3674, -0.5325, -0.8765)], ], [ # 8 his [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3299, -0.5180, 0.9001)], [' CB ', 8, (-0.5163,-0.7809,-1.2129)], ['1HB ', 4, ( 0.3640, -0.5325, 0.8793)], ['2HB ', 4, ( 0.3637, -0.5321, -0.8786)], [' CG ', 4, (0.6016,1.3710, 0.000)], [' CD2', 5, (0.8918,-1.0184, 0.000)], [' CE1', 5, (2.0299,0.8564, 0.000)], [' HE1', 5, (2.8542, 1.5693, 0.000)], [' HD2', 5, ( 0.6584, -2.0835, 0.000) ], [' ND1', 6, (-1.8631, -1.0722, 0.000)], [' NE2', 6, (-1.8625, 1.0707, 0.000)], [' HE2', 6, (-1.5439, 2.0292, 0.000)], ], [ # 9 ile [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3405, -0.5028, 0.9044)], [' CB ', 8, (-0.5140,-0.7885,-1.2184)], [' HB ', 4, (0.3637, -0.4714, 0.9125)], [' CG1', 4, (0.5339,1.4348,0.000)], [' CG2', 4, (0.5319,-0.7693,-1.1994)], ['1HG2', 4, (1.6215, -0.7588, -1.1842)], ['2HG2', 4, (0.1785, -1.7986, -1.1569)], ['3HG2', 4, (0.1773, -0.3016, -2.1180)], [' CD1', 5, (0.6106,1.3829, 0.000)], ['1HG1', 5, (0.3637, -0.5338, 0.8774)], ['2HG1', 5, (0.3640, -0.5322, -0.8793)], ['1HD1', 5, (1.6978, 1.3006, 0.000)], ['2HD1', 5, (0.2873, 1.9236, -0.8902)], ['3HD1', 5, (0.2888, 1.9224, 0.8896)], ], [ # 10 leu [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.525, -0.000, -0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3435, -0.5040, 0.9027)], [' CB ', 8, (-0.5175,-0.7692,-1.2220)], ['1HB ', 4, ( 0.3473, -0.5346, 0.8827)], ['2HB ', 4, ( 0.3476, -0.5351, -0.8836)], [' CG ', 4, (0.6652,1.3823, 0.000)], [' CD1', 5, (0.5083,1.4353, 0.000)], [' CD2', 5, (0.5079,-0.7600,1.2163)], [' HG ', 5, (0.3640, -0.4825, -0.9075)], ['1HD1', 5, (1.5984, 1.4353, 0.000)], ['2HD1', 5, (0.1462, 1.9496, -0.8903)], ['3HD1', 5, (0.1459, 1.9494, 0.8895)], ['1HD2', 5, (1.5983, -0.7606, 1.2158)], ['2HD2', 5, (0.1456, -0.2774, 2.1243)], ['3HD2', 5, (0.1444, -1.7871, 1.1815)], ], [ # 11 lys [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3335, -0.5005, 0.9097)], ['1HB ', 4, ( 0.3640, -0.5324, 0.8791)], ['2HB ', 4, ( 0.3639, -0.5324, -0.8790)], [' CB ', 8, (-0.5259,-0.7785,-1.2069)], ['1HG ', 5, (0.3641, -0.5229, 0.8852)], ['2HG ', 5, (0.3637, -0.5227, -0.8841)], [' CG ', 4, (0.6291,1.3869, 0.000)], [' CD ', 5, (0.5526,1.4174, 0.000)], ['1HD ', 6, (0.3641, -0.5239, 0.8848)], ['2HD ', 6, (0.3638, -0.5219, -0.8850)], [' CE ', 6, (0.5544,1.4170, 0.000)], [' NZ ', 7, (0.5566,1.3801, 0.000)], ['1HE ', 7, (0.4199, -0.4638, 0.9482)], ['2HE ', 7, (0.4202, -0.4631, -0.8172)], ['1HZ ', 7, (1.6223, 1.3980, 0.0658)], ['2HZ ', 7, (0.2970, 1.9326, -0.7584)], ['3HZ ', 7, (0.2981, 1.9319, 0.8909)], ], [ # 12 met [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3303, -0.4990, 0.9108)], ['1HB ', 4, ( 0.3635, -0.5318, 0.8781)], ['2HB ', 4, ( 0.3641, -0.5326, -0.8795)], [' CB ', 8, (-0.5331,-0.7727,-1.2048)], ['1HG ', 5, (0.3637, -0.5256, 0.8823)], ['2HG ', 5, (0.3638, -0.5249, -0.8831)], [' CG ', 4, (0.6298,1.3858,0.000)], [' SD ', 5, (0.6953,1.6645,0.000)], [' CE ', 6, (0.3383,1.7581,0.000)], ['1HE ', 6, (1.7054, 2.0532, -0.0063)], ['2HE ', 6, (0.1906, 2.3099, -0.9072)], ['3HE ', 6, (0.1917, 2.3792, 0.8720)], ], [ # 13 phe [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3303, -0.4990, 0.9108)], ['1HB ', 4, ( 0.3635, -0.5318, 0.8781)], ['2HB ', 4, ( 0.3641, -0.5326, -0.8795)], [' CB ', 8, (-0.5150,-0.7729,-1.2156)], [' CG ', 4, (0.6060,1.3746, 0.000)], [' CD1', 5, (0.7078,1.1928, 0.000)], [' CD2', 5, (0.7084,-1.1920, 0.000)], [' CE1', 5, (2.0900,1.1940, 0.000)], [' CE2', 5, (2.0897,-1.1939, 0.000)], [' CZ ', 5, (2.7809, 0.000, 0.000)], [' HD1', 5, (0.1613, 2.1362, 0.000)], [' HD2', 5, (0.1621, -2.1360, 0.000)], [' HE1', 5, (2.6335, 2.1384, 0.000)], [' HE2', 5, (2.6344, -2.1378, 0.000)], [' HZ ', 5, (3.8700, 0.000, 0.000)], ], [ # 14 pro [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' HA ', 0, (-0.3868, -0.5380, 0.8781)], ['1HB ', 4, ( 0.3762, -0.5355, 0.8842)], ['2HB ', 4, ( 0.3762, -0.5355, -0.8842)], [' CB ', 8, (-0.5649,-0.5888,-1.2966)], [' CG ', 4, (0.3657,1.4451,0.0000)], [' CD ', 5, (0.3744,1.4582, 0.0)], ['1HG ', 5, (0.3798, -0.5348, 0.8830)], ['2HG ', 5, (0.3798, -0.5348, -0.8830)], ['1HD ', 6, (0.3798, -0.5348, 0.8830)], ['2HD ', 6, (0.3798, -0.5348, -0.8830)], ], [ # 15 ser [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3425, -0.5041, 0.9048)], ['1HB ', 4, ( 0.3637, -0.5321, 0.8786)], ['2HB ', 4, ( 0.3636, -0.5319, -0.8782)], [' CB ', 8, (-0.5146,-0.7595,-1.2073)], [' OG ', 4, (0.5021,1.3081, 0.000)], [' HG ', 5, (0.2647, 0.9230, 0.000)], ], [ # 16 thr [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3364, -0.5015, 0.9078)], [' HB ', 4, ( 0.3638, -0.5006, 0.8971)], ['1HG2', 4, ( 1.6231, -0.7142, -1.2097)], ['2HG2', 4, ( 0.1792, -1.7546, -1.2237)], ['3HG2', 4, ( 0.1808, -0.2222, -2.1269)], [' CB ', 8, (-0.5172,-0.7952,-1.2130)], [' CG2', 4, (0.5334,-0.7239,-1.2267)], [' OG1', 4, (0.4804,1.3506,0.000)], [' HG1', 5, (0.3194, 0.9056, 0.000)], ], [ # 17 trp [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3436, -0.5042, 0.9031)], ['1HB ', 4, ( 0.3639, -0.5323, 0.8790)], ['2HB ', 4, ( 0.3638, -0.5322, -0.8787)], [' CB ', 8, (-0.5136,-0.7712,-1.2173)], [' CG ', 4, (0.5984,1.3741, 0.000)], [' CD1', 5, (0.8151,1.0921, 0.000)], [' CD2', 5, (0.8753,-1.1538, 0.000)], [' CE2', 5, (2.1865,-0.6707, 0.000)], [' CE3', 5, (0.6541,-2.5366, 0.000)], [' NE1', 5, (2.1309,0.7003, 0.000)], [' CH2', 5, (3.0315,-2.8930, 0.000)], [' CZ2', 5, (3.2813,-1.5205, 0.000)], [' CZ3', 5, (1.7521,-3.3888, 0.000)], [' HD1', 5, (0.4722, 2.1252, 0.000)], [' HE1', 5, ( 2.9291, 1.3191, 0.000)], [' HE3', 5, (-0.3597, -2.9356, 0.000)], [' HZ2', 5, (4.3053, -1.1462, 0.000)], [' HZ3', 5, ( 1.5712, -4.4640, 0.000)], [' HH2', 5, ( 3.8700, -3.5898, 0.000)], ], [ # 18 tyr [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3305, -0.4992, 0.9112)], ['1HB ', 4, ( 0.3642, -0.5327, 0.8797)], ['2HB ', 4, ( 0.3637, -0.5321, -0.8785)], [' CB ', 8, (-0.5305,-0.7799,-1.2051)], [' CG ', 4, (0.6104,1.3840, 0.000)], [' CD1', 5, (0.6936,1.2013, 0.000)], [' CD2', 5, (0.6934,-1.2011, 0.000)], [' CE1', 5, (2.0751,1.2013, 0.000)], [' CE2', 5, (2.0748,-1.2011, 0.000)], [' OH ', 5, (4.1408, 0.000, 0.000)], [' CZ ', 5, (2.7648, 0.000, 0.000)], [' HD1', 5, (0.1485, 2.1455, 0.000)], [' HD2', 5, (0.1484, -2.1451, 0.000)], [' HE1', 5, (2.6200, 2.1450, 0.000)], [' HE2', 5, (2.6199, -2.1453, 0.000)], [' HH ', 6, (0.3190, 0.9057, 0.000)], ], [ # 19 val [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3497, -0.5068, 0.9002)], [' CB ', 8, (-0.5105,-0.7712,-1.2317)], [' CG1', 4, (0.5326,1.4252, 0.000)], [' CG2', 4, (0.5177,-0.7693,1.2057)], [' HB ', 4, (0.3541, -0.4754, -0.9148)], ['1HG1', 4, (1.6228, 1.4063, 0.000)], ['2HG1', 4, (0.1790, 1.9457, -0.8898)], ['3HG1', 4, (0.1798, 1.9453, 0.8903)], ['1HG2', 4, (1.6073, -0.7659, 1.1989)], ['2HG2', 4, (0.1586, -0.2971, 2.1203)], ['3HG2', 4, (0.1582, -1.7976, 1.1631)], ], [ # 20 unk [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3341, -0.4928, 0.9132)], [' CB ', 8, (-0.5289,-0.7734,-1.1991)], ['1HB ', 8, (-0.1265, -1.7863, -1.1851)], ['2HB ', 8, (-1.6173, -0.8147, -1.1541)], ['3HB ', 8, (-0.2229, -0.2744, -2.1172)], ], [ # 21 mask [' N ', 0, (-0.5272, 1.3593, 0.000)], [' CA ', 0, (0.000, 0.000, 0.000)], [' C ', 0, (1.5233, 0.000, 0.000)], [' O ', 3, (0.6303, 1.0574, 0.000)], [' H ', 2, (0.4920,-0.8821, 0.0000)], [' HA ', 0, (-0.3341, -0.4928, 0.9132)], [' CB ', 8, (-0.5289,-0.7734,-1.1991)], ['1HB ', 8, (-0.1265, -1.7863, -1.1851)], ['2HB ', 8, (-1.6173, -0.8147, -1.1541)], ['3HB ', 8, (-0.2229, -0.2744, -2.1172)], ], ]