Envelope#

class Envelope(target_threshold=None, **kwargs)[source]#

Bases: _MatchCoordinatesToDensity

The Envelope score (ENV) between the target \(f\) and the template \(g\) is calculated as:

\[\text{d(f,g)} = \sum_{\mathbf{p} \in P} f'(\mathbf{p}) \cdot g'(\mathbf{p})\]
Parameters:
targetNDArray

A d-dimensional target to match the template coordinate set to.

template_coordinatesNDArray

Template coordinate array with shape (d,n).

template_weightsNDArray

Template weight array with shape (n,).

template_mask_coordinatesNDArray, optional

Template mask coordinates with shape (d,n).

target_maskNDArray, optional

A d-dimensional mask to be applied to the target.

negate_scorebool, optional

Whether the final score should be multiplied by negative one. Default is True.

return_gradientbool, optional

Invoking __call_ returns a tuple of score and parameter gradient. Default is False.

**kwargsDict, optional

Keyword arguments propagated to downstream functions.

References

[1]

Daven Vasishtan and Maya Topf, “Scoring functions for cryoEM density fitting”, Journal of Structural Biology, vol. 1174, no. 2, pp. 333–343, 2011. DOI: https://doi.org/10.1016/j.jsb.2011.01.012

Methods

Envelope.rotate_array(arr, rotation_matrix, ...)

Envelope.score(x)

Compute the matching score for the given transformation parameters.

Envelope.score_angles(x)

Computes the score after a given rotation.

Envelope.score_translation(x)

Computes the score after a given translation.