English
OneScience
protein structure generation
La-Proteina / models /utils /constants.py
anzhi2710gmailcom's picture
Upload folder using huggingface_hub
8e04e6f verified
Raw
History Blame Contribute Delete
1.85 kB
import torch
from graphein.protein.resi_atoms import ATOM_NUMBERING
from onescience.utils.openfold.np.residue_constants import atom_types
# PDB and OpenFold have different atom ordering, these utils convert between the two
# PDB ordering: https://cdn.rcsb.org/wwpdb/docs/documentation/file-format/PDB_format_1992.pdf
# OpenFold ordering: https://github.com/aqlaboratory/openfold/blob/f6c875b3c8e3e873a932cbe3b31f94ae011f6fd4/openfold/np/residue_constants.py#L556
PDB_TO_OPENFOLD_INDEX_TENSOR = torch.tensor(
[ATOM_NUMBERING[atom] for atom in atom_types]
)
OPENFOLD_TO_PDB_INDEX_TENSOR = torch.tensor(
[atom_types.index(atom) for atom in ATOM_NUMBERING]
)
AA_CHARACTER_PROTORP = {
"ALA": "A",
"CYS": "P",
"GLU": "C",
"ASP": "C",
"GLY": "A",
"PHE": "A",
"ILE": "A",
"HIS": "P",
"LYS": "C",
"MET": "A",
"LEU": "A",
"ASN": "P",
"GLN": "P",
"PRO": "A",
"SER": "P",
"ARG": "C",
"THR": "P",
"TRP": "P",
"VAL": "A",
"TYR": "P",
}
SIDECHAIN_TIP_ATOMS = {
"ALA": ["CA", "CB"],
"ARG": ["CD", "CZ", "NE", "NH1", "NH2"],
"ASP": ["CB", "CG", "OD1", "OD2"],
"ASN": ["CB", "CG", "ND2", "OD1"],
"CYS": ["CA", "CB", "SG"],
"GLU": ["CG", "CD", "OE1", "OE2"],
"GLN": ["CG", "CD", "NE2", "OE1"],
"GLY": [],
"HIS": ["CB", "CG", "CD2", "CE1", "ND1", "NE2"],
"ILE": ["CB", "CG1", "CG2", "CD1"],
"LEU": ["CB", "CG", "CD1", "CD2"],
"LYS": ["CE", "NZ"],
"MET": ["CG", "CE", "SD"],
"PHE": ["CB", "CG", "CD1", "CD2", "CE1", "CE2", "CZ"],
"PRO": ["CA", "CB", "CG", "CD", "N"],
"SER": ["CA", "CB", "OG"],
"THR": ["CA", "CB", "CG2", "OG1"],
"TRP": ["CB", "CG", "CD1", "CD2", "CE2", "CE3", "CZ2", "CZ3", "CH2", "NE1"],
"TYR": ["CB", "CG", "CD1", "CD2", "CE1", "CE2", "CZ", "OH"],
"VAL": ["CB", "CG1", "CG2"],
}