peppr.ContactMeasurement#

class peppr.ContactMeasurement(receptor: AtomArray, ligand: AtomArray, cutoff: float = 8.0, ph: float = 7.4, use_resonance: bool = True, use_tautomers: bool = True)[source]#

This class allows measurements of receptor-ligand contacts of specific types (e.g. hydrogen bonds) by using SMARTS patterns.

The actual measurement is performed by calling find_hbonds() or find_contacts_by_pattern().

Parameters:
receptor, ligandAtomArray

The receptor and ligand to measure contacts between. They must only contain heavy atoms, hydrogen atoms are treated implicitly.

cutofffloat

The cutoff distance to use for determining the receptor binding site. This means a receptor atom is only taken into consideration, if it is part of a residue where at least one atom is within the cutoff distance to at least one ligand atom.

phfloat, optional

The pH of the environment. By default a physiological pH value is used [1].

use_resonancebool, optional

If True, not only explicitly charged atoms in the input receptor and ligand are checked, but also charged atoms that appear in their resonance structures.

use_tautomersbool, optional

If True, the input receptor and ligand are expanded to include their tautomeric forms.

Warning

The specified cutoff parameter needs to be larger than the longest contact threshold considered for the measurement of the binding site. Additionally, to avoid edge effect, additional buffer of ~1.5 Å is recommended to avoid artificial interactions with ionized ends.

Selecting use_resonance=True and/or use_resonance=True may yield some overhead for large molecules (eg. binding site) if many forms available.

Notes

Checking resonance structures is desirable in most cases. For example, in a carboxyl group the charged oxygen atom might not be within the threshold distance of another positively charged atom, but the other oxygen atom in the group might be. When use_resonance=True, both oxygen atoms are checked.

Similarly, tautomer enumeration is desirable for heavy-atom-only structures, where the proton position is unknown. For example, a histidine side chain can donate or accept a hydrogen bond at either nitrogen, depending on its tautomeric form. When use_tautomers=True, all interchangeable tautomeric forms are considered when matching SMARTS patterns.

References

__init__(receptor: AtomArray, ligand: AtomArray, cutoff: float = 8.0, ph: float = 7.4, use_resonance: bool = True, use_tautomers: bool = True)#

Methods

__init__(receptor, ligand[, cutoff, ph, ...])

find_contacts_by_pattern(receptor_pattern, ...)

Find contacts between the receptor and ligand atoms that fulfill the given SMARTS patterns.

find_hbonds()

Find hydrogen bonds between the receptor and ligand.

find_pi_cation_interactions([...])

Find π-cation interactions between aromatic rings and cations across the binding interface.

find_salt_bridges([threshold])

Find salt bridges between the receptor and ligand atoms.

find_stacking_interactions([threshold, ...])

Find π-stacking interactions between aromatic rings across the binding interface.