peppr.BondAngleViolations#

class peppr.BondAngleViolations(tolerance: float = np.float64(0.2617993877991494))[source]#

Check for unusual bond angles in the structure by comparing against idealized bond geometry. Returns the percentage of bonds that are outside acceptable ranges.

Parameters:
tolerancefloat, optional

The tolerance in radians for acceptable deviation from ideal bond angles.

disable_atom_matching() bool#

Defines whether the upstream atom matching is disabled for this metric.

By default the reference and pose are already matched by the calling Evaluator. This behavior can be disabled by overriding this method.

Returns:
bool

If set to true, the upstream atom matching using find_optimal_match() is disabled. Note that this causes the reference and pose passed to evaluate() to be unmatched to each other. Hence, if some kind of matching is still required, it must be done inside the evaluate() method.

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

Calculate the percentage of bonds that are outside acceptable ranges.

Parameters:
referenceAtomArray

Not used in this metric as we compare against ideal bond angles.

poseAtomArray

The structure to evaluate.

Returns:
float

Percentage of bonds outside acceptable ranges (0.0 to 1.0).

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.