Feature Validation Helper

GitHub Link to Code.

Feature validation helper for parameter and state validation.

This module provides utilities for validating feature-related parameters and states in the FeatureManager, separating validation logic from core business logic.

class mdxplain.feature.helper.feature_validation_helper.FeatureValidationHelper

Helper class for feature parameter and state validation.

Provides static methods for validating various types of parameters used in feature management, including threshold parameters, feature existence checks, and dependency validation.

static validate_threshold_parameters(threshold_min: int | float | None, threshold_max: int | float | None, metric: str) None

Validate threshold parameters for data reduction.

Parameters

threshold_minfloat or None

Minimum threshold value to validate

threshold_maxfloat or None

Maximum threshold value to validate

metricstr

Metric name for context in error messages

Returns

None

Validates parameters or raises ValueError

Raises

ValueError

If threshold parameters are invalid (wrong type or invalid range)

Examples

>>> FeatureValidationHelper.validate_threshold_parameters(0.1, 0.9, "cv")
>>> # No error - valid parameters
>>> FeatureValidationHelper.validate_threshold_parameters(0.9, 0.1, "cv")
ValueError: Invalid threshold range...
static validate_feature_exists(pipeline_data: PipelineData, feature_key: str) bool

Check if feature exists and has computed data.

Parameters

pipeline_dataPipelineData

Pipeline data object to check

feature_keystr

Feature key to validate

Returns

bool

True if feature exists and has data, False otherwise

Examples

>>> exists = FeatureValidationHelper.validate_feature_exists(
...     pipeline_data, "distances"
... )
static validate_dependencies(pipeline_data: PipelineData, feature_type: FeatureTypeBase, feature_key: str, traj_indices: List[int]) None

Validate that all feature dependencies are available.

Parameters

pipeline_dataPipelineData

Pipeline data object to check

feature_typeFeatureTypeBase

Feature type object to check dependencies for

feature_keystr

Feature key for error messages

Returns

None

Validates dependencies or raises ValueError

Raises

ValueError

If required dependency is missing

Examples

>>> FeatureValidationHelper.validate_dependencies(
...     pipeline_data, contacts_feature, "contacts"
... )
static validate_computation_requirements(pipeline_data: PipelineData, feature_type: FeatureTypeBase) None

Validate that all requirements for feature computation are met.

Parameters

pipeline_dataPipelineData

Pipeline data object to validate

feature_typeFeatureTypeBase

Feature type object to validate

Returns

None

Validates requirements or raises ValueError

Raises

ValueError

If trajectory labels are not set or trajectories are not loaded

Examples

>>> FeatureValidationHelper.validate_computation_requirements(
...     pipeline_data, distances_feature
... )
static validate_reduction_state(pipeline_data: PipelineData, feature_key: str, traj_indices: List[int]) None

Validate that feature is ready for reduction for specified trajectories.

Parameters

pipeline_dataPipelineData

Pipeline data object to validate

feature_keystr

Feature key to validate

traj_indicesList[int]

List of trajectory indices to validate

Returns

None

Validates state or raises ValueError

Raises

ValueError

If feature has no data or reduction already performed for specified trajectories

Examples

>>> FeatureValidationHelper.validate_reduction_state(
...     pipeline_data, "distances", [0, 1, 2]
... )