schrodinger.protein.assignment module¶
Module for optimizing hydroxyl, thiol and water orientiations, Chi-flips of asparagine, glutamine and histidine, and protonation states of aspartic acid, glutamic acid, and histidine.
Usage: ProtAssign(st)
Copyright Schrodinger, LLC. All rights reserved.
- schrodinger.protein.assignment.correct_arginine_sidechain_charge(st)¶
Correct charges of arginine sidechains.
Finds the terminal nitrogen that is charged, or the first if both, and sets bond orders accordingly. If both nitrogens are neutral, check if NE is charged. If none of the 3 nitrogens is charged, find if any of the nitrogen atoms is double bonded to CZ and set that atom as charged. If all these checks fail, set NH2 as charged as defined in the PDB standard.
For self-consistency, this method will remove and re-add hydrogens to the Ns.
- schrodinger.protein.assignment.calculate_interaction_matrix(ct: schrodinger.structure._structure.Structure, iatoms: List[int], distance: float, use_xtal: bool = False) Dict[int, set] ¶
Create an interaction matrix based on the CHANGEABLE_INDEX_PROPERTY atom property
- Parameters
ct – Structure with annotated atoms having set the CHANGEABLE_INDEX_PROPERTY corresponding the the index of the changeable
iatoms – List of atom indices which take part in interaction
distance – Max distance between interacting atoms
use_xtal – Take into account crystal symmetry mates
use_xtal – bool
- Returns
interaction matrix allowing double indexing: interaction_matrix[i, j]
- schrodinger.protein.assignment.check_residue_flip_state(res: schrodinger.structure._structure.Residue) tuple ¶
Determine whether a residue cannot be flipped, is, or is not flipped.
- Parameters
res – a protein residue
- Returns
a tuple of
(state, msg)
, wherestate
describes whether the residue is flipped (True
), is not flipped (False
), or cannot be flipped (None
); ifNone
,msg
will contain an explanation- Return type
tuple[bool or NoneType, str]
- schrodinger.protein.assignment.get_residue_flip_state(res: schrodinger.structure._structure.Residue) Optional[bool] ¶
Return the flip state of a protein residue.
A truncated version of
check_residue_flip_state()
.- Parameters
res – a protein residue
- Returns
the flip state of a residue
- schrodinger.protein.assignment.get_heavy_neighbors(atom: schrodinger.structure._structure.StructureAtom) list ¶
- Parameters
atom – an atom
- Returns
a list of heavy (non-H) atoms covalently bound to
atom
- Return type
list[structure._StructureAtom]
- class schrodinger.protein.assignment.ProtAssign(ct, interactive=False, do_flips=True, asl='', noprot_asl='', atoms=[], use_xtal=False, sample_waters=True, sample_acids=True, freeze_existing=False, include_initial=False, max_comb=10000, num_sequential_cycles=30, max_cluster_size=None, seed: Optional[int] = None, logging_level=1, quiet_flag=False, debug_flag=False, add_labels=True, label_pkas=False, pH: Union[str, float] = 7.4, use_propka=True, user_states=[], minimize=False, ligand_sts=None, include_epik_states=False)¶
Bases:
object
- __init__(ct, interactive=False, do_flips=True, asl='', noprot_asl='', atoms=[], use_xtal=False, sample_waters=True, sample_acids=True, freeze_existing=False, include_initial=False, max_comb=10000, num_sequential_cycles=30, max_cluster_size=None, seed: Optional[int] = None, logging_level=1, quiet_flag=False, debug_flag=False, add_labels=True, label_pkas=False, pH: Union[str, float] = 7.4, use_propka=True, user_states=[], minimize=False, ligand_sts=None, include_epik_states=False)¶
- fix_elements(ct)¶
- freeze_existing_hydrogens(ct)¶
- setup(ct)¶
- empirical_pka_predictor(ct)¶
Predict pKa of histidine and Asp/Glu based on empirical rules
- remove_zero_order_bonds(ct)¶
- extend_targeted_to_hyds(ct)¶
- delete_atoms(ct, iatoms: List[int])¶
Delete atoms and update stored atom indices
- find_protonation_state_changes(ct, clusters='all')¶
- annotate_structure(ct: schrodinger.structure._structure.Structure) schrodinger.protein.protassign.utils.Interactors ¶
Annotate atoms in structure by their interaction class and whether or not they are static
- Returns
Interactor atom indices
- enumerate_changeable_states(ct)¶
Enumerate all states for each changeable. Crystal symmetry mates are taken into account if requested.
Updates the acceptors, donors and clashers attributes
- lock_protonation_states(ct)¶
- cluster(ct)¶
Cluster changeables based on their heavies.
- set_user_states(ct)¶
- assign_state_of_changeable(ct, changeable, istate)¶
- increment_state_of_changeable(ct, changeable)¶
- decrement_state_of_changeable(ct, changeable)¶
- assign_best_combinations(ct, last_time=False)¶
Assign the best combinations to the ct and report output
- Parameters
ct (schrodinger.Structure) – The structure to operate on
last_time (bool) – Whether or not this is the last time through when we should be extra verbose
- assign_cluster_combination(ct, icluster, icombination)¶
- single_point_cluster(ct, icluster)¶
- optimize_cluster(ct, icluster, assign=True)¶
- optimize(ct)¶
- check_if_hips_needs_pka_recalculated(iteration: int, icluster: int, hips: List[schrodinger.protein.protassign.changeables.changeable]) Optional[int] ¶
Return the
n
index for the changeable inhips
that needs its PKA re-calculated.
- recalculate_empirical_pkas(ct, iteration)¶
Only recalculate pKa’s of histidines for forced acceptor interactions
- recalculate_propka_pkas(ct)¶
- minimize_hydrogens(ct)¶
- restore_zobs(ct)¶
- cleanup(ct)¶
- summarize_pkas()¶
- schrodinger.protein.assignment.annotate_atom_indices(ct)¶
Add atom index as an atom property to each atom
- schrodinger.protein.assignment.get_noncovalent_ligands(ct)¶
Grab all noncovalent ligands from st for epik
- schrodinger.protein.assignment.generate_epik_states(ct, ph=7.4, include_initial=False) List[schrodinger.structure._structure.Structure] ¶
Run Epik on all ligands in the given structure, and return generated states.
- schrodinger.protein.assignment.is_covalent_ligand(st: schrodinger.structure._structure.Structure, ligand_indices: List[int]) bool ¶
Check if atom is part of a covalent ligand