Contacts Data

GitHub Link to Code.

Contact feature type implementation for molecular dynamics analysis.

Contact feature type implementation with distance-based contact detection for analyzing molecular dynamics trajectories.

class mdxplain.feature.feature_type.contacts.contacts.Contacts(cutoff: float = 4.5)

Contact feature type for detecting atomic/residue contacts based on distance cutoffs.

Converts distance data into binary contact maps by applying distance cutoffs. A contact is defined as a pair being within the specified cutoff distance. Depends on distance features as input data.

This feature type enables analysis of contact formation/breaking patterns, contact frequencies, and structural stability through contact persistence.

Examples

>>> # Basic contact calculation with default cutoff
>>> contacts = Contacts()
>>> contacts.init_calculator()
>>> contact_data, names = contacts.compute(distance_data, feature_names)
>>> # Contact calculation with custom cutoff
>>> contacts = Contacts(cutoff=3.5)  # 3.5 Angstrom cutoff
>>> contacts.init_calculator()
>>> contact_data, names = contacts.compute(distance_data, feature_names)
>>> # With memory mapping for large datasets
>>> contacts = Contacts(cutoff=4.0)
>>> contacts.init_calculator(use_memmap=True, cache_path='./cache/')
>>> contact_data, names = contacts.compute(distance_data, feature_names)
__init__(cutoff: float = 4.5) None

Initialize contact feature type with distance cutoff parameter.

Parameters

cutofffloat, default=4.5

Distance cutoff in Angstrom for contact determination. Pairs with distances <= cutoff are considered in contact (1), others not (0).

Returns

None

Examples

>>> # Default cutoff (4.5 Angstrom)
>>> contacts = Contacts()
>>> # Custom cutoff for closer contacts
>>> contacts = Contacts(cutoff=3.5)
>>> # Longer range contacts
>>> contacts = Contacts(cutoff=6.0)
init_calculator(use_memmap: bool = False, cache_path: str = './cache', chunk_size: int = 2000) None

Initialize the contact calculator with specified configuration.

Parameters

use_memmapbool, default=False

Whether to use memory mapping for large datasets

cache_pathstr, optional

Directory path for storing cache files when using memory mapping

chunk_sizeint, optional

Number of frames to process per chunk (None for automatic sizing)

Returns

None

Examples

>>> # Basic initialization
>>> contacts.init_calculator()
>>> # With memory mapping for large datasets
>>> contacts.init_calculator(use_memmap=True, cache_path='./cache/')
>>> # With custom chunk size
>>> contacts.init_calculator(chunk_size=1000)
compute(input_data: ndarray, feature_metadata: Dict[str, Any]) Tuple[ndarray, Dict[str, Any]]

Compute binary contact maps from distance data using distance cutoff.

Parameters

input_datanumpy.ndarray

Distance matrix data from distance feature type (n_frames, n_pairs)

feature_metadatadict

Feature metadata from distance calculations (structured metadata)

Returns

tuple[numpy.ndarray, dict]

Tuple containing (contact_matrix, feature_metadata) where contact_matrix is binary (0/1) indicating contact presence and feature_metadata is the same structured metadata from input with features in same order as data columns

Examples

>>> # Compute contacts from distance data
>>> contacts = Contacts(cutoff=4.0)
>>> contacts.init_calculator()
>>> contact_data, metadata = contacts.compute(distance_data, distance_metadata)
>>> print(f"Contact matrix shape: {contact_data.shape}")
>>> print(f"Contact frequency: {contact_data.mean():.3f}")
get_dependencies() List[str]

Get list of feature type dependencies for contact calculations.

Parameters

None

Returns

List[str]

List containing ‘distances’ as contacts require distance data

Examples

>>> contacts = Contacts()
>>> print(contacts.get_dependencies())
['distances']
classmethod get_type_name() str

Return unique string identifier for the contact feature type.

Parameters

None

Returns

str

String identifier ‘contacts’ used as key in feature dictionaries

Examples

>>> print(Contacts.get_type_name())
'contacts'
get_input()

Get the primary input feature type that contacts depend on.

Parameters

None

Returns

str

String identifier ‘distances’ indicating contacts use distance data

Examples

>>> contacts = Contacts()
>>> print(contacts.get_input())
'distances'