schrodinger.application.bioluminate.mhc.docking_angles module

A script for calculating docking angles (cross angle, incident angle, and incline angle) of immune complexes such as T cell receptors (TCRs), TCR-like antibodies, etc. (collectively referred to as “receptor” in the code) when bound to Major Histocompatibility Complex (MHC) proteins.

For Class I MHC, provide ONLY the alpha chain ID for your complex. For Class II MHC, you must additionally provide the beta chain ID.

class schrodinger.application.bioluminate.mhc.docking_angles.ReceptorChainInfo(chain1: str, chain2: str)

Bases: object

chain1: str
chain2: str
__init__(chain1: str, chain2: str) None
schrodinger.application.bioluminate.mhc.docking_angles.get_receptor_info(family_data_dict: dict[str, schrodinger.application.bioluminate.classify.ProteinClass]) schrodinger.application.bioluminate.mhc.docking_angles.ReceptorChainInfo
class schrodinger.application.bioluminate.mhc.docking_angles.DescriptiveAngles(cross_angle: float, incident_angle: float, incline_angle: float)

Bases: object

cross_angle: float
incident_angle: float
incline_angle: float
__init__(cross_angle: float, incident_angle: float, incline_angle: float) None
schrodinger.application.bioluminate.mhc.docking_angles.parse_args(args)
schrodinger.application.bioluminate.mhc.docking_angles.main()
schrodinger.application.bioluminate.mhc.docking_angles.get_descriptive_angles(complex_st, alpha_id, beta_id=None, write_pml=False) schrodinger.application.bioluminate.mhc.docking_angles.DescriptiveAngles

Get the cross angle, incident angle, and incline angle of a TCR-MHC complex.

These are defined as follows:

  • Cross angle: the angle between the TCR disulfide vector and the MHC groove vector (which runs along the peptide in the MHC binding groove)

  • Incident angle: the angle between the normal of the MHC surface and the TCR inter-domain axis

  • Incline angle: the angle between the inter-domain axis and the vector normal to the peptide in the MHC plane

The cross and incident angle calculations are based on the following paper: “How TCRs bind MHCs, peptides, and coreceptors” 10.1146/annurev.immunol.23.021704.115658

Parameters
  • complex_st – The structure of the TCR-MHC complex

  • alpha_id – The chain id of the alpha chain of the MHC

  • beta_id – The chain id of the beta chain of the MHC

  • write_pml – Whether to write a PyMOL script which generates pseudoatoms for the descriptive vectors of the complex

Returns

A DescriptiveAngles object containing the calculated angles

schrodinger.application.bioluminate.mhc.docking_angles.get_receptor_centroid(complex_st, family_data, receptor_chain_data)
schrodinger.application.bioluminate.mhc.docking_angles.get_mhc_vectors(complex_st, alpha_id, beta_id=None)

Get the groove, plane, and normal vectors of the MHC complex. If no beta chain id is provided, the complex is assumed to be class I, as the binding groove of class I MHCs is formed by two helices of the alpha chain.

schrodinger.application.bioluminate.mhc.docking_angles.get_residues_within_bounds(residues: Iterable[schrodinger.structure._structure.Residue], *, bounds: Optional[tuple[int, int]], alt_numbering: Optional[Iterable[int]] = None)

Get the residues within the given bounds. If alternate numbering is provided, match the residues to the numbering and return only those whose alternate numbering is within the bounds.

Parameters
  • residues – iterable of Residue objects

  • bounds – tuple of the start and end of the region. if not provided, all residues are returned

  • alt_numbering – iterable of the numbering of the residues. if not provided, the sequential numbering of the residues is used

Returns

schrodinger.application.bioluminate.mhc.docking_angles.get_vectors_from_residues(residues)
schrodinger.application.bioluminate.mhc.docking_angles.get_centroid_from_residues(residues)
schrodinger.application.bioluminate.mhc.docking_angles.get_eigenvectors(coord_matrix)
schrodinger.application.bioluminate.mhc.docking_angles.get_ca_positions(residues)
schrodinger.application.bioluminate.mhc.docking_angles.get_receptor_disulfide_axis(complex_st, family_data, receptor_chain_data)

Get the direction from the pseudo-center of the disulfide bond in the alpha chain to the pseudo-center of the disulfide bond in the beta chain

schrodinger.application.bioluminate.mhc.docking_angles.get_disulfide_center_point(receptor_chain, chain_data: schrodinger.application.bioluminate.classify.ProteinClass)
schrodinger.application.bioluminate.mhc.docking_angles.get_receptor_interdomain_axis(complex_st, family_data, receptor_chain_data)
schrodinger.application.bioluminate.mhc.docking_angles.get_axis_of_rotation(alignment_quaternion)
schrodinger.application.bioluminate.mhc.docking_angles.get_angle(v1, v2)
schrodinger.application.bioluminate.mhc.docking_angles.get_unit_vector(vector)
schrodinger.application.bioluminate.mhc.docking_angles.write_angle_csv(filename: str, angles: schrodinger.application.bioluminate.mhc.docking_angles.DescriptiveAngles)
schrodinger.application.bioluminate.mhc.docking_angles.write_vectors_to_pml(vectors)