Configure ImmuneBuilder pipeline for WES execution
Some checks failed
CodeQL / Analyze (python) (push) Has been cancelled
Some checks failed
CodeQL / Analyze (python) (push) Has been cancelled
- Update container image to harbor.cluster.omic.ai/omic/immunebuilder:latest - Update input/output paths to S3 (s3://omic/eureka/immunebuilder/) - Remove local mount containerOptions (not needed in k8s) - Update homepage to Gitea repo URL - Clean history to remove large model weight blobs
This commit is contained in:
294
ImmuneBuilder/constants.py
Normal file
294
ImmuneBuilder/constants.py
Normal file
@@ -0,0 +1,294 @@
|
||||
restypes = 'ARNDCQEGHILKMFPSTWYV'
|
||||
|
||||
# Residue names definition:
|
||||
restype_1to3 = {
|
||||
'A': 'ALA',
|
||||
'R': 'ARG',
|
||||
'N': 'ASN',
|
||||
'D': 'ASP',
|
||||
'C': 'CYS',
|
||||
'Q': 'GLN',
|
||||
'E': 'GLU',
|
||||
'G': 'GLY',
|
||||
'H': 'HIS',
|
||||
'I': 'ILE',
|
||||
'L': 'LEU',
|
||||
'K': 'LYS',
|
||||
'M': 'MET',
|
||||
'F': 'PHE',
|
||||
'P': 'PRO',
|
||||
'S': 'SER',
|
||||
'T': 'THR',
|
||||
'W': 'TRP',
|
||||
'Y': 'TYR',
|
||||
'V': 'VAL',
|
||||
}
|
||||
|
||||
restype_3to1 = {v: k for k, v in restype_1to3.items()}
|
||||
|
||||
# How atoms are sorted in MLAb:
|
||||
|
||||
residue_atoms = {
|
||||
'A': ['CA', 'N', 'C', 'CB', 'O'],
|
||||
'C': ['CA', 'N', 'C', 'CB', 'O', 'SG'],
|
||||
'D': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'OD1', 'OD2'],
|
||||
'E': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'CD', 'OE1', 'OE2'],
|
||||
'F': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'CD1', 'CD2', 'CE1', 'CE2', 'CZ'],
|
||||
'G': ['CA', 'N', 'C', 'CA', 'O'], # G has no CB so I am padding it with CA so the Os are aligned
|
||||
'H': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'CD2', 'CE1', 'ND1', 'NE2'],
|
||||
'I': ['CA', 'N', 'C', 'CB', 'O', 'CG1', 'CG2', 'CD1'],
|
||||
'K': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'CD', 'CE', 'NZ'],
|
||||
'L': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'CD1', 'CD2'],
|
||||
'M': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'CE', 'SD'],
|
||||
'N': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'ND2', 'OD1'],
|
||||
'P': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'CD'],
|
||||
'Q': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'CD', 'NE2', 'OE1'],
|
||||
'R': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'CD', 'CZ', 'NE', 'NH1', 'NH2'],
|
||||
'S': ['CA', 'N', 'C', 'CB', 'O', 'OG'],
|
||||
'T': ['CA', 'N', 'C', 'CB', 'O', 'CG2', 'OG1'],
|
||||
'V': ['CA', 'N', 'C', 'CB', 'O', 'CG1', 'CG2'],
|
||||
'W': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'CD1', 'CD2', 'CE2', 'CE3', 'CZ2', 'CZ3', 'CH2', 'NE1'],
|
||||
'Y': ['CA', 'N', 'C', 'CB', 'O', 'CG', 'CD1', 'CD2', 'CE1', 'CE2', 'CZ', 'OH']}
|
||||
|
||||
residue_atoms_mask = {res: len(residue_atoms[res]) * [True] + (14 - len(residue_atoms[res])) * [False] for res in
|
||||
residue_atoms}
|
||||
|
||||
atom_types = [
|
||||
'N', 'CA', 'C', 'CB', 'O', 'CG', 'CG1', 'CG2', 'OG', 'OG1', 'SG', 'CD',
|
||||
'CD1', 'CD2', 'ND1', 'ND2', 'OD1', 'OD2', 'SD', 'CE', 'CE1', 'CE2', 'CE3',
|
||||
'NE', 'NE1', 'NE2', 'OE1', 'OE2', 'CH2', 'NH1', 'NH2', 'OH', 'CZ', 'CZ2',
|
||||
'CZ3', 'NZ', 'OXT'
|
||||
]
|
||||
|
||||
# Position of atoms in each ref frame
|
||||
|
||||
rigid_group_atom_positions2 = {'A': {'C': [0, (1.526, -0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.529, -0.774, -1.205)],
|
||||
'N': [0, (-0.525, 1.363, 0.0)],
|
||||
'O': [3, (-0.627, 1.062, 0.0)]},
|
||||
'C': {'C': [0, (1.524, 0.0, 0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.519, -0.773, -1.212)],
|
||||
'N': [0, (-0.522, 1.362, -0.0)],
|
||||
'O': [3, (-0.625, 1.062, -0.0)],
|
||||
'SG': [4, (-0.728, 1.653, 0.0)]},
|
||||
'D': {'C': [0, (1.527, 0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.526, -0.778, -1.208)],
|
||||
'CG': [4, (-0.593, 1.398, -0.0)],
|
||||
'N': [0, (-0.525, 1.362, -0.0)],
|
||||
'O': [3, (-0.626, 1.062, -0.0)],
|
||||
'OD1': [5, (-0.61, 1.091, 0.0)],
|
||||
'OD2': [5, (-0.592, -1.101, 0.003)]},
|
||||
'E': {'C': [0, (1.526, -0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.526, -0.781, -1.207)],
|
||||
'CD': [5, (-0.6, 1.397, 0.0)],
|
||||
'CG': [4, (-0.615, 1.392, 0.0)],
|
||||
'N': [0, (-0.528, 1.361, 0.0)],
|
||||
'O': [3, (-0.626, 1.062, 0.0)],
|
||||
'OE1': [6, (-0.607, 1.095, -0.0)],
|
||||
'OE2': [6, (-0.589, -1.104, 0.001)]},
|
||||
'F': {'C': [0, (1.524, 0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.525, -0.776, -1.212)],
|
||||
'CD1': [5, (-0.709, 1.195, -0.0)],
|
||||
'CD2': [5, (-0.706, -1.196, 0.0)],
|
||||
'CE1': [5, (-2.102, 1.198, -0.0)],
|
||||
'CE2': [5, (-2.098, -1.201, -0.0)],
|
||||
'CG': [4, (-0.607, 1.377, 0.0)],
|
||||
'CZ': [5, (-2.794, -0.003, 0.001)],
|
||||
'N': [0, (-0.518, 1.363, 0.0)],
|
||||
'O': [3, (-0.626, 1.062, -0.0)]},
|
||||
'G': {'C': [0, (1.517, -0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'N': [0, (-0.572, 1.337, 0.0)],
|
||||
'O': [3, (-0.626, 1.062, -0.0)]},
|
||||
'H': {'C': [0, (1.525, 0.0, 0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.525, -0.778, -1.208)],
|
||||
'CD2': [5, (-0.889, -1.021, -0.003)],
|
||||
'CE1': [5, (-2.03, 0.851, -0.002)],
|
||||
'CG': [4, (-0.6, 1.37, -0.0)],
|
||||
'N': [0, (-0.527, 1.36, 0.0)],
|
||||
'ND1': [5, (-0.744, 1.16, -0.0)],
|
||||
'NE2': [5, (-2.145, -0.466, -0.004)],
|
||||
'O': [3, (-0.625, 1.063, 0.0)]},
|
||||
'I': {'C': [0, (1.527, -0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.536, -0.793, -1.213)],
|
||||
'CD1': [5, (-0.619, 1.391, 0.0)],
|
||||
'CG1': [4, (-0.534, 1.437, -0.0)],
|
||||
'CG2': [4, (-0.54, -0.785, 1.199)],
|
||||
'N': [0, (-0.493, 1.373, -0.0)],
|
||||
'O': [3, (-0.627, 1.062, -0.0)]},
|
||||
'K': {'C': [0, (1.526, 0.0, 0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.524, -0.778, -1.208)],
|
||||
'CD': [5, (-0.559, 1.417, 0.0)],
|
||||
'CE': [6, (-0.56, 1.416, 0.0)],
|
||||
'CG': [4, (-0.619, 1.39, 0.0)],
|
||||
'N': [0, (-0.526, 1.362, -0.0)],
|
||||
'NZ': [7, (-0.554, 1.387, 0.0)],
|
||||
'O': [3, (-0.626, 1.062, -0.0)]},
|
||||
'L': {'C': [0, (1.525, -0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.522, -0.773, -1.214)],
|
||||
'CD1': [5, (-0.53, 1.43, -0.0)],
|
||||
'CD2': [5, (-0.535, -0.774, -1.2)],
|
||||
'CG': [4, (-0.678, 1.371, 0.0)],
|
||||
'N': [0, (-0.52, 1.363, 0.0)],
|
||||
'O': [3, (-0.625, 1.063, -0.0)]},
|
||||
'M': {'C': [0, (1.525, 0.0, 0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.523, -0.776, -1.21)],
|
||||
'CE': [6, (-0.32, 1.786, -0.0)],
|
||||
'CG': [4, (-0.613, 1.391, -0.0)],
|
||||
'N': [0, (-0.521, 1.364, -0.0)],
|
||||
'O': [3, (-0.625, 1.062, -0.0)],
|
||||
'SD': [5, (-0.703, 1.695, 0.0)]},
|
||||
'N': {'C': [0, (1.526, -0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.531, -0.787, -1.2)],
|
||||
'CG': [4, (-0.584, 1.399, 0.0)],
|
||||
'N': [0, (-0.536, 1.357, 0.0)],
|
||||
'ND2': [5, (-0.593, -1.188, -0.001)],
|
||||
'O': [3, (-0.625, 1.062, 0.0)],
|
||||
'OD1': [5, (-0.633, 1.059, 0.0)]},
|
||||
'P': {'C': [0, (1.527, -0.0, 0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.546, -0.611, -1.293)],
|
||||
'CD': [5, (-0.477, 1.424, 0.0)],
|
||||
'CG': [4, (-0.382, 1.445, 0.0)],
|
||||
'N': [0, (-0.566, 1.351, -0.0)],
|
||||
'O': [3, (-0.621, 1.066, 0.0)]},
|
||||
'Q': {'C': [0, (1.526, 0.0, 0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.525, -0.779, -1.207)],
|
||||
'CD': [5, (-0.587, 1.399, -0.0)],
|
||||
'CG': [4, (-0.615, 1.393, 0.0)],
|
||||
'N': [0, (-0.526, 1.361, -0.0)],
|
||||
'NE2': [6, (-0.593, -1.189, 0.001)],
|
||||
'O': [3, (-0.626, 1.062, -0.0)],
|
||||
'OE1': [6, (-0.634, 1.06, 0.0)]},
|
||||
'R': {'C': [0, (1.525, -0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.524, -0.778, -1.209)],
|
||||
'CD': [5, (-0.564, 1.414, 0.0)],
|
||||
'CG': [4, (-0.616, 1.39, -0.0)],
|
||||
'CZ': [7, (-0.758, 1.093, -0.0)],
|
||||
'N': [0, (-0.524, 1.362, -0.0)],
|
||||
'NE': [6, (-0.539, 1.357, -0.0)],
|
||||
'NH1': [7, (-0.206, 2.301, 0.0)],
|
||||
'NH2': [7, (-2.078, 0.978, -0.0)],
|
||||
'O': [3, (-0.626, 1.062, 0.0)]},
|
||||
'S': {'C': [0, (1.525, -0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.518, -0.777, -1.211)],
|
||||
'N': [0, (-0.529, 1.36, -0.0)],
|
||||
'O': [3, (-0.626, 1.062, -0.0)],
|
||||
'OG': [4, (-0.503, 1.325, 0.0)]},
|
||||
'T': {'C': [0, (1.526, 0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.516, -0.793, -1.215)],
|
||||
'CG2': [4, (-0.55, -0.718, 1.228)],
|
||||
'N': [0, (-0.517, 1.364, 0.0)],
|
||||
'O': [3, (-0.626, 1.062, 0.0)],
|
||||
'OG1': [4, (-0.472, 1.353, 0.0)]},
|
||||
'V': {'C': [0, (1.527, -0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.533, -0.795, -1.213)],
|
||||
'CG1': [4, (-0.54, 1.429, -0.0)],
|
||||
'CG2': [4, (-0.533, -0.776, -1.203)],
|
||||
'N': [0, (-0.494, 1.373, -0.0)],
|
||||
'O': [3, (-0.627, 1.062, -0.0)]},
|
||||
'W': {'C': [0, (1.525, -0.0, 0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.523, -0.776, -1.212)],
|
||||
'CD1': [5, (-0.824, 1.091, 0.0)],
|
||||
'CD2': [5, (-0.854, -1.148, -0.005)],
|
||||
'CE2': [5, (-2.186, -0.678, -0.007)],
|
||||
'CE3': [5, (-0.622, -2.53, -0.007)],
|
||||
'CG': [4, (-0.609, 1.37, -0.0)],
|
||||
'CH2': [5, (-3.028, -2.89, -0.013)],
|
||||
'CZ2': [5, (-3.283, -1.543, -0.011)],
|
||||
'CZ3': [5, (-1.715, -3.389, -0.011)],
|
||||
'N': [0, (-0.521, 1.363, 0.0)],
|
||||
'NE1': [5, (-2.14, 0.69, -0.004)],
|
||||
'O': [3, (-0.627, 1.062, 0.0)]},
|
||||
'Y': {'C': [0, (1.524, -0.0, -0.0)],
|
||||
'CA': [0, (0.0, 0.0, 0.0)],
|
||||
'CB': [0, (-0.522, -0.776, -1.213)],
|
||||
'CD1': [5, (-0.716, 1.195, -0.0)],
|
||||
'CD2': [5, (-0.713, -1.194, -0.001)],
|
||||
'CE1': [5, (-2.107, 1.2, -0.002)],
|
||||
'CE2': [5, (-2.104, -1.201, -0.003)],
|
||||
'CG': [4, (-0.607, 1.382, -0.0)],
|
||||
'CZ': [5, (-2.791, -0.001, -0.003)],
|
||||
'N': [0, (-0.522, 1.362, 0.0)],
|
||||
'O': [3, (-0.627, 1.062, -0.0)],
|
||||
'OH': [5, (-4.168, -0.002, -0.005)]}}
|
||||
|
||||
chi_angles_atoms = {'A': [],
|
||||
'C': [['N', 'CA', 'CB', 'SG']],
|
||||
'D': [['N', 'CA', 'CB', 'CG'], ['CA', 'CB', 'CG', 'OD1']],
|
||||
'E': [['N', 'CA', 'CB', 'CG'],
|
||||
['CA', 'CB', 'CG', 'CD'],
|
||||
['CB', 'CG', 'CD', 'OE1']],
|
||||
'F': [['N', 'CA', 'CB', 'CG'], ['CA', 'CB', 'CG', 'CD1']],
|
||||
'G': [],
|
||||
'H': [['N', 'CA', 'CB', 'CG'], ['CA', 'CB', 'CG', 'ND1']],
|
||||
'I': [['N', 'CA', 'CB', 'CG1'], ['CA', 'CB', 'CG1', 'CD1']],
|
||||
'K': [['N', 'CA', 'CB', 'CG'],
|
||||
['CA', 'CB', 'CG', 'CD'],
|
||||
['CB', 'CG', 'CD', 'CE'],
|
||||
['CG', 'CD', 'CE', 'NZ']],
|
||||
'L': [['N', 'CA', 'CB', 'CG'], ['CA', 'CB', 'CG', 'CD1']],
|
||||
'M': [['N', 'CA', 'CB', 'CG'],
|
||||
['CA', 'CB', 'CG', 'SD'],
|
||||
['CB', 'CG', 'SD', 'CE']],
|
||||
'N': [['N', 'CA', 'CB', 'CG'], ['CA', 'CB', 'CG', 'OD1']],
|
||||
'P': [['N', 'CA', 'CB', 'CG'], ['CA', 'CB', 'CG', 'CD']],
|
||||
'Q': [['N', 'CA', 'CB', 'CG'],
|
||||
['CA', 'CB', 'CG', 'CD'],
|
||||
['CB', 'CG', 'CD', 'OE1']],
|
||||
'R': [['N', 'CA', 'CB', 'CG'],
|
||||
['CA', 'CB', 'CG', 'CD'],
|
||||
['CB', 'CG', 'CD', 'NE'],
|
||||
['CG', 'CD', 'NE', 'CZ']],
|
||||
'S': [['N', 'CA', 'CB', 'OG']],
|
||||
'T': [['N', 'CA', 'CB', 'OG1']],
|
||||
'V': [['N', 'CA', 'CB', 'CG1']],
|
||||
'W': [['N', 'CA', 'CB', 'CG'], ['CA', 'CB', 'CG', 'CD1']],
|
||||
'Y': [['N', 'CA', 'CB', 'CG'], ['CA', 'CB', 'CG', 'CD1']]}
|
||||
|
||||
chi_angles_positions = {}
|
||||
for r in residue_atoms:
|
||||
chi_angles_positions[r] = []
|
||||
for angs in chi_angles_atoms[r]:
|
||||
chi_angles_positions[r].append([residue_atoms[r].index(atom) for atom in angs])
|
||||
|
||||
chi2_centers = {x: chi_angles_atoms[x][1][-2] if len(chi_angles_atoms[x]) > 1 else "CA" for x in chi_angles_atoms}
|
||||
chi3_centers = {x: chi_angles_atoms[x][2][-2] if len(chi_angles_atoms[x]) > 2 else "CA" for x in chi_angles_atoms}
|
||||
chi4_centers = {x: chi_angles_atoms[x][3][-2] if len(chi_angles_atoms[x]) > 3 else "CA" for x in chi_angles_atoms}
|
||||
|
||||
rel_pos = {
|
||||
x: [rigid_group_atom_positions2[x][residue_atoms[x][atom_id]] if len(residue_atoms[x]) > atom_id else [0, (0, 0, 0)]
|
||||
for atom_id in range(14)] for x in rigid_group_atom_positions2}
|
||||
|
||||
van_der_waals_radius = {
|
||||
"C": 1.7,
|
||||
"N": 1.55,
|
||||
"O": 1.52,
|
||||
"S": 1.8,
|
||||
}
|
||||
|
||||
residue_van_der_waals_radius = {
|
||||
x: [van_der_waals_radius[atom[0]] for atom in residue_atoms[x]] + (14 - len(residue_atoms[x])) * ([0]) for x in
|
||||
residue_atoms}
|
||||
|
||||
valid_rigids = {x: len(chi_angles_atoms[x]) + 2 for x in chi_angles_atoms}
|
||||
|
||||
r2n = {x: i for i, x in enumerate(restypes)}
|
||||
res_to_num = lambda x: r2n[x] if x in r2n else len(r2n)
|
||||
Reference in New Issue
Block a user