Skip to content

Instantly share code, notes, and snippets.

@zeffii
Forked from anonymous/bio_logic.py
Last active August 29, 2015 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zeffii/c4955c4b4955b6de4518 to your computer and use it in GitHub Desktop.
Save zeffii/c4955c4b4955b6de4518 to your computer and use it in GitHub Desktop.
# lookup sidechain parents
def bondLookUp(atom, amac):
if atom in {"O", "OXT"}:
parent = ["C", C]
elif atom in {"CB", "HA", "HA2", "HA3"}:
parent = ["CA", C]
elif (atom == "SG" or "HB" in atom or "OG" in atom or "CG" in atom):
parent = ["CB", C]
elif atom in {"H", "H1", "H2", "H3"}:
parent = ["N", N]
elif atom == "HG1":
parent = ["OG1", O]
elif atom in {"HG23", "HG22", "HG21"}:
parent = ["CG2", C]
elif ("CD" in atom or "ND" in atom or atom in {"SD", "HG2", "HG3", "OD1", "OD2", "HG12", "HG13", "HG13"):
parent = ["CG1", C] if amac in {"ILE", "VAL"} else ["CG", C]
elif atom in {"CE2", "CE3", "NE2", "HD2"}:
if amac=="GLN": parent = ["CD",C]
elif amac in {"ARG", "LYS", "PRO"}: parent = ["CD",C]
elif amac=="ASP": parent = ["OD2", O]
else: parent = ["CD2",C]
elif atom in {"CE1", "HD11", "HD12", "HD13", "HD1", "NE1"}:
parent = ["ND1", N] if (amac == "HIS") else ["CD1", C]
elif atom in {"NE", "HD3", "CE", "OE1", "OE2"}:
parent = ["SD", S] if(amac == "MET") else ["CD", C]
elif atom in {"CZ", "HE", "HE1"}:
if (amac=="ARG"): parent = ["NE", N]
elif (amac=="TRP"): parent = ["NE1", N]
elif (amac=="MET"): parent = ["CE", C]
elif amac in {"PHE", "HIS", "TYR"}: parent = ["CE1", C]
elif atom in {"NH1", "NH2", "HZ", "OH"}:
parent = ["CZ", C]
elif atom in {"HH11", "HH12", "1HH1", "1HH2"}:
parent = ["NH1", N]
elif atom in {"HH21", "HH22", "2HH2", "1HH2"}:
parent = ["NH2", N]
elif atom in {"HD21", "HD22", "HD23"}:
parent = ["CD2", C] if amac == "LEU" else ["ND2", N]
elif atom in {"HE3", "NZ"}:
parent = ["CE3", C] if amac == "TRP" else ["CE", C]
elif atom in {"HZ1", "HZ2", "HZ3"}:
if (amac=="TRP" and atom=="HZ2"): parent = ["CZ2", S]
elif (amac=="TRP" and atom=="HZ3"): parent = ["CZ3", S]
else: parent = ["NZ",N]
elif (atom=="HG"):
if (amac=="LEU"): parent = ["CG", C]
if (amac=="CYS"): parent = ["SG", S] # elif instead?
else: parent = ["OG", O]
elif atom in {"HE2", "CZ2", "HE21", "HE22"}:
if amac in {"HIS", "GLN"}: parent = ["NE2", N]
elif amac in {"PHE", "TYR", "TRP"}: parent = ["CE2", C]
elif (amac=="GLU"): parent = ["OE2",O]
elif amac in {"MET", "LYS"}: parent = ["CE",C]
elif(atom=="HH"): parent = ["OH", O]
elif(atom=="CZ3"): parent = ["CE3", C]
elif(atom=="CH2"): parent = ["CZ2", C]
elif(atom=="HH2"): parent = ["CH2", C]
return parent
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment