Source code for haddock.modules.analysis

"""HADDOCK3 modules related to model analysis."""

from typing import Iterable


modules_using_resdic = ("caprieval", "rmsdmatrix", "alascan", "sasascore")


[docs] def confirm_resdic_chainid_length(params: Iterable[str]) -> None: """ Confirm resdic params have chain IDs of length one. Parameters ---------- params : dict, or list of keys The parameters. Raises ------ ValueError If a `resdic_*` parameter has chain IDs with more than one letter. For example, `resdic_AB`. """ resdic_params = (p for p in params if p.startswith("resdic_")) for param in resdic_params: chainid = param.split("_")[-1] if len(chainid) > 1: raise ValueError( f"We found the parameter {param!r} which has " "more than one character in the chain " "identifier. Chain IDs should have only one character." )
[docs] def get_analysis_exec_mode(mode: str) -> str: """ Get the execution mode for analysis modules. Parameters ---------- exec_mode : str The execution mode to use. Returns ------- str The execution mode to use for the analysis modules. If it's "batch", it will be changed to "local". """ # =====================================================================# # EXPLANATION # # =====================================================================# # This function is called in the analysis-based modules to OVERWRITE # the mode selected by the user. # This must be done because the analysis modules do not support being # executed over the HPC system or the GRID # # The function below returns "local" if the user selected either # `batch` or `grid` as execution mode. Thus effectively forcing the # execution to be local. return "local" if mode in ("batch", "grid") else mode