Source code for opencadd.structure.superposition.engines.base

"""
Base class for all the superposition engines.
"""
import logging

_logger = logging.getLogger(__name__)


[docs]class BaseAligner: """ """
[docs] def calculate(self, structures, *args, **kwargs): """ Compute superposition for given structures Parameters ---------- structures : list of opencadd.core.Structure Returns ------- dict Results with following keys - ``superposed``: ``Structure`` objects, aligned in place - ``scores``: Dictionary of relevant metrics. Usually includes ``rmsd``. - ``metadata``: Contextual information provided by the method """ self._safety_checks() assert ( len(structures) == 2, "This method can only be used for two structures at the same time, for now", ) return self._calculate(structures, *args, **kwargs)
def _calculate(self, structures, *args, **kwargs): raise NotImplementedError("Reimplement in your subclass") def _safety_checks(self): raise NotImplementedError("Reimplement in your subclass")