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()orfind_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
cutoffparameter 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=Trueand/oruse_resonance=Truemay 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.