peppr.BiSyRMSD#

class peppr.BiSyRMSD(threshold: float, inclusion_radius: float = 4.0, outlier_distance: float = 3.0, max_iterations: int = 5, min_anchors: int = 3)[source]#

Compute the Binding-Site Superposed, Symmetry-Corrected Pose RMSD (BiSyRMSD) for the given PLI complex.

The method and default parameters are described in [1].

Parameters:
thresholdfloat

The RMSD threshold to use for the good predictions.

inclusion_radiusfloat, optional

All residues where at least one heavy atom is within this radius of a heavy ligand atom, are considered part of the binding site.

outlier_distancefloat, optional

The binding sites of the reference and pose are superimposed iteratively. In each iteration, atoms with a distance of more than this value are considered outliers and are removed in the next iteration. To disable outlier removal, set this value to inf.

max_iterationsint, optional

The maximum number of iterations for the superimposition.

min_anchorsint, optional

The minimum number of anchors to use for the superimposition. If less than this number of anchors are present, the superimposition is performed on all interface backbone atoms.

References

evaluate(reference: AtomArray, pose: AtomArray) float#

Apply this metric on the given predicted pose with respect to the given reference.

ABSTRACT: Must be overridden by subclasses.

Parameters:
referenceAtomArray, shape=(n,)

The reference structure of the system. Each separate instance/molecule must have a distinct chain_id.

poseAtomArray, shape=(n,)

The predicted pose. Must have the same length and atom order as the reference.

Returns:
float

The metric computed for each pose. NaN, if the structure is not suitable for this metric.

Notes

Missing atoms in either the reference or the pose can be identified with NaN values.

smaller_is_better() bool#

Whether as smaller value of this metric is considered a better prediction.

ABSTRACT: Must be overridden by subclasses.

Returns:
bool

If true, a smaller value of this metric is considered a better prediction. Otherwise, a larger value is considered a better prediction.