prolint.analysis.base

Analysis base module.

This module provides the base classes and registry for ProLint analyses.

Classes

AnalysisResult

Container for analysis results.

BaseAnalysis

Abstract base class for all ProLint analyses.

AnalysisRegistry

Registry for analysis types.

Module Contents

class prolint.analysis.base.AnalysisResult[source]

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.).

data: Dict[str, Any][source]

Primary analysis data (varies by analysis type).

metadata: Dict[str, Any][source]

Metadata about the analysis (parameters, timestamps, etc.).

class prolint.analysis.base.BaseAnalysis(universe, contacts: prolint.core.contact_provider.ComputedContacts)[source]

Bases: abc.ABC

Abstract base class for all ProLint analyses.

Provides common functionality for filtering contacts, building residue mappings, and generating frame ranges.

Parameters:

See also

AnalysisRegistry

Registry for creating analyses by name

ComputedContacts.analyze

High-level interface to run analyses

name: str = 'base_analysis'[source]

Analysis name for registry.

description: str = 'Base analysis class'[source]

Human-readable description.

universe[source]
contacts[source]
abstractmethod run(**kwargs) AnalysisResult[source]

Run the analysis and return results.

Parameters:

**kwargs (dict) – Analysis-specific parameters.

Returns:

Container with analysis data and metadata.

Return type:

AnalysisResult

class prolint.analysis.base.AnalysisRegistry[source]

Registry for analysis types.

Manages registration and creation of analysis classes. All built-in analyses are registered automatically on import.

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")
classmethod register(name: str, analysis_class: Type[BaseAnalysis])[source]

Register an analysis class.

Parameters:
  • name (str) – Name to register under.

  • analysis_class (type) – Analysis class (must inherit from BaseAnalysis).

classmethod create(name: str, universe, contacts: prolint.core.contact_provider.ComputedContacts, **kwargs) BaseAnalysis[source]

Create an analysis instance.

Parameters:
  • name (str) – Analysis type name.

  • universe (Universe) – ProLint Universe instance.

  • contacts (ComputedContacts) – Computed contact data.

  • **kwargs (dict) – Additional arguments for the analysis.

Returns:

Initialized analysis instance.

Return type:

BaseAnalysis

classmethod available() List[str][source]

List available analysis types.

Returns:

Registered analysis names.

Return type:

list of str

classmethod get_class(name: str) Type[BaseAnalysis][source]

Get an analysis class by name.

Parameters:

name (str) – Analysis name.

Returns:

Analysis class.

Return type:

type