Feature Cross Trajectory Reduction Helper

GitHub Link to Code.

Cross-trajectory feature reduction helper.

This module provides utilities for reducing features consistently across multiple trajectories to ensure common denominator features for matrix construction and comparison.

class mdxplain.feature.helper.feature_cross_trajectory_reduction_helper.FeatureCrossTrajectoryReductionHelper

Helper class for cross-trajectory feature reduction operations.

Provides static methods for finding common features across trajectories, performing consistent reduction, and maintaining feature alignment for matrix construction.

static find_common_features(feature_data_dict: Dict[int, FeatureData], metric: str, threshold_min: float | None = None, threshold_max: float | None = None, **kwargs) Set[int]

Find feature indices that pass reduction criteria in ALL trajectories.

Uses existing calculator logic to find features that meet the criteria in every trajectory, then returns the intersection of valid indices.

Parameters

feature_data_dictDict[int, FeatureData]

Dictionary mapping trajectory indices to their FeatureData

metricstr

Reduction metric to apply (e.g., ‘frequency’, ‘cv’, ‘stability’)

threshold_minfloat, optional

Minimum threshold for feature retention

threshold_maxfloat, optional

Maximum threshold for feature retention

kwargsdict

Additional parameters for reduction metric calculation

Returns

Set[int]

Set of feature indices that pass criteria in all trajectories

Examples

>>> common_indices = FeatureCrossTrajectoryReductionHelper.find_common_features(
...     feature_data_dict, "frequency", threshold_min=0.5
... )
static apply_common_reduction(feature_data_dict: Dict[int, FeatureData], common_indices: Set[int], metric: str, threshold_min: float | None = None, threshold_max: float | None = None) None

Apply reduction using common feature indices across all trajectories.

Creates results dictionary and uses FeatureReductionHelper to handle the reduction processing, including memmap compatibility.

Parameters

feature_data_dictDict[int, FeatureData]

Dictionary mapping trajectory indices to their FeatureData

common_indicesSet[int]

Set of common feature indices to retain

metricstr

Reduction metric name for metadata

threshold_minfloat, optional

Minimum threshold used (for metadata)

threshold_maxfloat, optional

Maximum threshold used (for metadata)

Returns

None

Updates reduced_data and metadata for all FeatureData objects

Examples

>>> FeatureCrossTrajectoryReductionHelper.apply_common_reduction(
...     feature_data_dict, common_indices, "frequency", 0.5, None
... )
static get_reduction_summary(feature_data_dict: Dict[int, FeatureData], common_indices: Set[int]) Dict[str, Any]

Generate summary of cross-trajectory reduction.

Parameters

feature_data_dictDict[int, FeatureData]

Dictionary mapping trajectory indices to their FeatureData

common_featuresSet[str]

Set of common features retained

Returns

Dict[str, Any]

Summary dictionary with reduction statistics

Examples

>>> summary = FeatureCrossTrajectoryReductionHelper.get_reduction_summary(
...     feature_data_dict, common_features
... )
static print_cross_trajectory_summary(feature_data_dict: Dict[int, FeatureData], common_indices: Set[int]) None

Print summary of cross-trajectory reduction results.

Parameters

feature_data_dictDict[int, FeatureData]

Dictionary mapping trajectory indices to their FeatureData

common_featuresSet[str]

Set of common features retained

Returns

None

Prints reduction summary to console

Examples

>>> FeatureCrossTrajectoryReductionHelper.print_cross_trajectory_summary(
...     feature_data_dict, common_features
... )
Cross-trajectory reduction: 3 trajectories, 2500 → 450 features (18.0% retained).