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.charge_arginine_sidechains(st)

Make arginine sidechains charged. Assumes bond orders have been assigned correctly.

Looks for the nitrogen that has a double bond to the CZ atom, and changes the formal charge to 1 and retypes atom.

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), where state describes whether the residue is flipped (True), is not flipped (False), or cannot be flipped (None); if None, 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)
Parameters
  • pH – The pH at which states are determined

  • seed – Seed for random number generator

  • ligand_sts (List[Structure]) – Ligand states to consider during optimization.

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 in hips 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.extract_epik_states(ct, include_initial=False) List[schrodinger.structure._structure.Structure]

Extract Epik embedded states

Epik states are embedded into a structure property during the PPW pipeline. States are extracted and returned.

schrodinger.protein.assignment.is_covalent_ligand(st: schrodinger.structure._structure.Structure, atom: schrodinger.structure._structure.StructureAtom) bool

Check if atom is part of a covalent ligand