prolint.core.contact_provider¶
Contact provider module.
This module provides classes for computing and managing contact data between molecular groups.
Attributes¶
Classes¶
Container for computed contact data with analysis methods. |
|
Orchestrates contact computation between atom groups. |
Module Contents¶
- class prolint.core.contact_provider.ComputedContacts(contact_strategy_instance: prolint.contacts.base.BaseContactStore, provider: ContactsProvider)[source]¶
Container for computed contact data with analysis methods.
This class wraps contact computation results and provides methods for analyzing contacts, computing metrics, and performing set operations.
- Parameters:
contact_strategy_instance (BaseContactStore) – Contact storage instance containing computed contacts.
provider (ContactsProvider) – The provider that created this instance.
Examples
>>> contacts = universe.compute_contacts(cutoff=7.0) >>> result = contacts.analyze("timeseries", database_type="CHOL")
Compute metrics:
>>> occupancy = contacts.compute_metric("occupancy", target_resname="CHOL")
Set operations:
>>> common = contacts1 + contacts2 # Intersection >>> unique = contacts1 - contacts2 # Difference
See also
Universe.compute_contactsMethod that creates ComputedContacts
AnalysisRegistryRegistry of available analysis types
- compute_metric(metric: str, target_resname=None)[source]¶
Compute a metric for contacts.
- Parameters:
- Returns:
Metric values organized by residue ID.
- Return type:
Examples
>>> occupancy = contacts.compute_metric("occupancy", target_resname="CHOL") >>> mean_duration = contacts.compute_metric("mean")
- apply_function(func: Callable, target_resname=None)[source]¶
Apply a custom function to contact data.
- property contacts[source]¶
Raw contact data.
- Returns:
Contact data organized by residue and database molecule.
- Return type:
- property contact_frames[source]¶
Frame indices where contacts occur.
- Returns:
Nested dict mapping residue_id -> database_id -> list of frame indices.
- Return type:
- property norm_factor: float[source]¶
Normalization factor for duration calculations.
- Returns:
Factor used to normalize contact durations.
- Return type:
- intersection(other: ComputedContacts) ComputedContacts[source]¶
Find contacts common to both ComputedContacts objects.
- Parameters:
other (ComputedContacts) – Another computed contacts object.
- Returns:
New object containing only contacts present in both.
- Return type:
Examples
>>> common = contacts1.intersection(contacts2) >>> # Or using operator >>> common = contacts1 + contacts2
- difference(other: ComputedContacts) ComputedContacts[source]¶
Find contacts in self but not in other.
- Parameters:
other (ComputedContacts) – Another computed contacts object.
- Returns:
New object containing contacts unique to self.
- Return type:
Examples
>>> unique = contacts1.difference(contacts2) >>> # Or using operator >>> unique = contacts1 - contacts2
- analyze(analysis_type: str, **kwargs) prolint.analysis.base.AnalysisResult[source]¶
Run an analysis on computed contacts.
- Parameters:
analysis_type (str) – Type of analysis to run. Options: - “timeseries”: Contact counts over time - “database_contacts”: Per-molecule contact timeline - “kinetics”: Binding kinetics and residence times - “density_map”: 2D spatial density - “radial_density”: Radial density profile - “shared_contacts”: Residue contact correlations - “distances”: Distance distributions - “atom_distances”: Atom-level distances - “metrics”: Per-residue metrics
**kwargs (dict) – Analysis-specific parameters.
- Returns:
Result object containing analysis data.
- Return type:
Examples
>>> result = contacts.analyze("timeseries", database_type="CHOL") >>> result = contacts.analyze("kinetics", query_residue=42, mode="accumulated") >>> result = contacts.analyze("metrics", metric="occupancy")
See also
AnalysisRegistryRegistry of available analysis types
- class prolint.core.contact_provider.ContactsProvider(query, database, params=None, compute_strategy: Literal['default'] = 'default')[source]¶
Orchestrates contact computation between atom groups.
This class manages the contact detection process, coordinating between different computation strategies and contact storage methods.
- Parameters:
query (ExtendedAtomGroup) – Query atoms (e.g., protein).
database (ExtendedAtomGroup) – Database atoms (e.g., lipids).
params (dict, optional) – Computation parameters including units and normalization.
compute_strategy ({"default"}, default="default") – Contact computation strategy to use.
See also
Universe.compute_contactsHigh-level interface using this provider
ComputedContactsResult container returned by compute()
- compute(strategy_or_computer=None, start=None, stop=None, step=1, **kwargs)[source]¶
Compute contacts between query and database.
- Parameters:
strategy_or_computer (str, optional) – Computation strategy name. Default: “default”.
start (int, optional) – First frame to process.
stop (int, optional) – Last frame to process (exclusive).
step (int, default=1) – Frame step size.
**kwargs (dict) – Additional arguments passed to contact computer (e.g., cutoff).
- Returns:
Container with contact data and analysis methods.
- Return type:
- Raises:
ValueError – If strategy_or_computer is not recognized.