mythos.observables.rmse ======================= .. py:module:: mythos.observables.rmse .. autoapi-nested-parse:: RMSE observable. Attributes ---------- .. autoapisummary:: mythos.observables.rmse.ERR_SINGLE_TARGET_STATE_REQUIRED mythos.observables.rmse.ERR_TARGET_STATE_DIM mythos.observables.rmse.THREE_DIMENSIONS mythos.observables.rmse.N_DIMS_NUCLEOTIDES_POSITION Classes ------- .. autoapisummary:: mythos.observables.rmse.RMSE Functions --------- .. autoapisummary:: mythos.observables.rmse.svd_align mythos.observables.rmse.single_rmse Module Contents --------------- .. py:function:: svd_align(ref_coords: jax.numpy.ndarray, coords: jax.numpy.ndarray) -> tuple[jax.numpy.ndarray, jax.numpy.ndarray, jax.numpy.ndarray] Aligns a set of 3D coordinates to a reference configuration via SVD. .. py:function:: single_rmse(target: jax_md.rigid_body.RigidBody, state_nts: mythos.energy.dna1.nucleotide.Nucleotide) -> mythos.utils.types.ARR_OR_SCALAR Computes the RMSE between a state and a target configuration. .. py:data:: ERR_SINGLE_TARGET_STATE_REQUIRED :value: 'the target state must be a single conformation' .. py:data:: ERR_TARGET_STATE_DIM :value: 'the target state must have center positions in (x, y, z) format' .. py:data:: THREE_DIMENSIONS :value: 3 .. py:data:: N_DIMS_NUCLEOTIDES_POSITION :value: 2 .. py:class:: RMSE Bases: :py:obj:`mythos.observables.base.BaseObservable` Computes the RMSE with respect to a target configuration for each state. Args: - target_state: a rigid body specifying the target configuration .. py:attribute:: target_state :type: jax_md.rigid_body.RigidBody .. py:method:: __post_init__() -> None Validate the input. .. py:method:: __call__(trajectory: mythos.simulators.io.SimulatorTrajectory) -> mythos.utils.types.ARR_OR_SCALAR Calculate the RMSE in Angstroms. :param trajectory: the trajectory to calculate the RMSE for :type trajectory: jd_traj.Trajectory :returns: the RMSE in Angstroms for each state, so expect a size of (n_states,) :rtype: jd_types.ARR_OR_SCALAR