Validation Helper
GitHub Link to Code.
Trajectory validation helper for pipeline operations.
Provides validation logic for trajectory-changing operations in the pipeline, ensuring that existing features are properly handled before modifications.
- class mdxplain.trajectory.helper.validation_helper.trajectory_validation_helper.TrajectoryValidationHelper
Helper class for validating trajectory operations in pipeline context.
- static check_features_before_trajectory_changes(pipeline_data: PipelineData, force: bool, operation_name: str, traj_indices: List[int] | None = None) None
Check if features exist before trajectory modification.
Parameters
- pipeline_dataPipelineData
Pipeline data object containing feature data
- forcebool
Whether to force the operation despite existing features
- operation_namestr
Name of the operation for error messages
- traj_indicesList[int], optional
Trajectory indices to check for features. If None, checks if ANY features exist at all.
Raises
- ValueError
If features exist and force=False
- static validate_slice_parameters(frames: int | slice | List[int] | None) None
Validate parameters for trajectory slicing.
Parameters
- framesint, slice, list, or None
Frame specification for slicing
Returns
- None
Performs validation, does not return value
Raises
- ValueError
If frames parameter is invalid
Examples
>>> TrajectoryValidationHelper.validate_slice_parameters(1000) # OK >>> TrajectoryValidationHelper.validate_slice_parameters(slice(100, 500)) # OK >>> TrajectoryValidationHelper.validate_slice_parameters([0, 10, 20]) # OK >>> TrajectoryValidationHelper.validate_slice_parameters(-100) # ValueError
- static validate_data_selector(pipeline_data: PipelineData, data_selector: str) Any
Validate DataSelector exists and has data.
Parameters
- pipeline_dataPipelineData
Pipeline data object
- data_selectorstr
Name of DataSelector to validate
Returns
- DataSelectorData
The validated selector data object
Raises
- ValueError
If DataSelector does not exist or has no data
Examples
>>> selector_data = TrajectoryValidationHelper.validate_data_selector( ... pipeline_data, "folded_frames" ... ) >>> print(f"Selector has {len(selector_data.trajectory_frames)} trajectories")
- static resolve_and_validate_traj_pair(trajectory_data: TrajectoryData, target_traj: int | str, source_traj: int | str) Tuple[int, int]
Resolve and validate trajectory pair for join/stack operations.
Parameters
- trajectory_dataTrajectoryData
Trajectory data container
- target_trajint or str
Target trajectory selector
- source_trajint or str
Source trajectory selector
Returns
- tuple
(target_idx, source_idx) as integers
Raises
- ValueError
If selectors don’t resolve to exactly one trajectory each
- ValueError
If target and source refer to same trajectory
- static validate_superpose_parameters(pipeline_data: PipelineData, reference_traj: int, reference_frame: int, atom_selection: str, traj_selection: int | str | List[int | str] | str) tuple
Validate all parameters for superpose operation.
Parameters
- pipeline_dataPipelineData
Pipeline data container with trajectory data
- reference_trajint
Index of trajectory containing the reference frame
- reference_frameint
Frame index within reference trajectory
- atom_selectionstr
MDTraj selection string for alignment atoms
- traj_selectionvarious
Selection of trajectories to align
Returns
- tuple
(reference_trajectory, traj_indices, ref_frame, ref_atom_indices)
Raises
- ValueError
If any parameter is invalid
Examples
>>> ref_traj, indices, ref_frame, atom_indices = \ ... TrajectoryValidationHelper.validate_superpose_parameters( ... pipeline_data, 0, 0, "backbone", "all" ... )