prolint.analysis.base ===================== .. py:module:: prolint.analysis.base .. autoapi-nested-parse:: Analysis base module. This module provides the base classes and registry for ProLint analyses. Classes ------- .. autoapisummary:: prolint.analysis.base.AnalysisResult prolint.analysis.base.BaseAnalysis prolint.analysis.base.AnalysisRegistry Module Contents --------------- .. py:class:: AnalysisResult Container for analysis results. The ``data`` attribute holds primary analysis data (varies by analysis type). The ``metadata`` attribute holds metadata about the analysis (parameters, timestamps, etc.). .. py:attribute:: data :type: Dict[str, Any] Primary analysis data (varies by analysis type). .. py:attribute:: metadata :type: Dict[str, Any] Metadata about the analysis (parameters, timestamps, etc.). .. py:class:: BaseAnalysis(universe, contacts: prolint.core.contact_provider.ComputedContacts) Bases: :py:obj:`abc.ABC` Abstract base class for all ProLint analyses. Provides common functionality for filtering contacts, building residue mappings, and generating frame ranges. :param universe: ProLint Universe instance. :type universe: Universe :param contacts: Computed contact data to analyze. :type contacts: ComputedContacts .. seealso:: :py:obj:`AnalysisRegistry` Registry for creating analyses by name :py:obj:`ComputedContacts.analyze` High-level interface to run analyses .. py:attribute:: name :type: str :value: 'base_analysis' Analysis name for registry. .. py:attribute:: description :type: str :value: 'Base analysis class' Human-readable description. .. py:attribute:: universe .. py:attribute:: contacts .. py:method:: run(**kwargs) -> AnalysisResult :abstractmethod: Run the analysis and return results. :param \*\*kwargs: Analysis-specific parameters. :type \*\*kwargs: dict :returns: Container with analysis data and metadata. :rtype: AnalysisResult .. py:class:: AnalysisRegistry Registry for analysis types. Manages registration and creation of analysis classes. All built-in analyses are registered automatically on import. .. rubric:: Examples List available analyses: >>> from prolint.analysis import AnalysisRegistry >>> AnalysisRegistry.available() ['timeseries', 'database_contacts', 'kinetics', ...] Create an analysis: >>> analysis = AnalysisRegistry.create("timeseries", universe, contacts) >>> result = analysis.run(database_type="CHOL") .. py:method:: register(name: str, analysis_class: Type[BaseAnalysis]) :classmethod: Register an analysis class. :param name: Name to register under. :type name: str :param analysis_class: Analysis class (must inherit from BaseAnalysis). :type analysis_class: type .. py:method:: create(name: str, universe, contacts: prolint.core.contact_provider.ComputedContacts, **kwargs) -> BaseAnalysis :classmethod: Create an analysis instance. :param name: Analysis type name. :type name: str :param universe: ProLint Universe instance. :type universe: Universe :param contacts: Computed contact data. :type contacts: ComputedContacts :param \*\*kwargs: Additional arguments for the analysis. :type \*\*kwargs: dict :returns: Initialized analysis instance. :rtype: BaseAnalysis .. py:method:: available() -> List[str] :classmethod: List available analysis types. :returns: Registered analysis names. :rtype: list of str .. py:method:: get_class(name: str) -> Type[BaseAnalysis] :classmethod: Get an analysis class by name. :param name: Analysis name. :type name: str :returns: Analysis class. :rtype: type