Validation Helper

GitHub Link to Code.

Validation helper for structure visualization operations.

This module provides validation utilities for structure visualization, including Jupyter environment checks and visualization data validation.

class mdxplain.structure_visualization.helper.validation_helper.ValidationHelper

Helper class for structure visualization validation.

Provides static methods for validating environment requirements and data availability for structure visualization operations.

Examples

>>> ValidationHelper.validate_jupyter_environment()
>>> viz_data = ValidationHelper.validate_visualization_data(
...     pipeline_data, "my_viz"
... )
static validate_jupyter_environment() None

Validate that code is running in Jupyter environment.

Parameters

None

Returns

None

Returns normally if running in Jupyter environment

Raises

RuntimeError

If not running in Jupyter notebook environment

Examples

>>> ValidationHelper.validate_jupyter_environment()
RuntimeError: NGLView visualization is only available in Jupyter notebooks...

Notes

Uses EnvironmentHelper.is_jupyter_environment() to check environment. Provides helpful error message for terminal usage.

static validate_visualization_data(pipeline_data: PipelineData, structure_viz_name: str) StructureVisualizationData

Validate visualization data exists and return it.

Parameters

pipeline_dataPipelineData

Pipeline data object containing visualization data

structure_viz_namestr

Name of visualization session to validate

Returns

StructureVisualizationData

Validated visualization data object

Raises

KeyError

If structure_visualization_data attribute not found

KeyError

If specific visualization session name not found

Examples

>>> viz_data = ValidationHelper.validate_visualization_data(
...     pipeline_data, "my_viz"
... )
>>> # Raises KeyError if not found
>>> viz_data = ValidationHelper.validate_visualization_data(
...     pipeline_data, "nonexistent"
... )
KeyError: Visualization 'nonexistent' not found...

Notes

Provides detailed error messages listing available visualizations if the requested one is not found.

static validate_terminal_environment() None

Validate that code is running in terminal, NOT Jupyter.

Checks if code is running in Jupyter notebook environment and raises error if true. PyMOL visualization requires terminal execution.

Parameters

None

Returns

None

Returns normally if NOT in Jupyter environment

Raises

RuntimeError

If running in Jupyter notebook environment

Examples

>>> ValidationHelper.validate_terminal_environment()
RuntimeError: PyMOL visualization requires terminal execution...

Notes

Uses EnvironmentHelper.is_jupyter_environment() to check environment. Provides helpful message suggesting NGLView for Jupyter usage.

static validate_pymol_available() None

Validate that PyMOL Python module is available.

Checks if pymol module can be imported and raises error if not. Provides installation instructions for conda.

Parameters

None

Returns

None

Returns normally if pymol is available

Raises

ImportError

If pymol Python module cannot be imported

Examples

>>> ValidationHelper.validate_pymol_available()
ImportError: PyMOL Python module not found...

Notes

Uses EnvironmentHelper.is_pymol_available() to check availability. Suggests conda installation command if missing.

static validate_data_selectors(pipeline_data: PipelineData, data_selectors: list) None

Validate that data selectors exist in pipeline data.

Checks that all provided data selector names are present in pipeline_data.data_selector_data and raises errors for missing or empty selector lists.

Parameters

pipeline_dataPipelineData

Pipeline data object containing data selector data

data_selectorslist

List of data selector names to validate

Returns

None

Returns normally if all data selectors are valid

Raises

ValueError

If no data selectors provided or selector doesn’t exist

Examples

>>> ValidationHelper.validate_data_selectors(
...     pipeline_data, ["cluster_0", "cluster_1"]
... )
>>> # Raises ValueError if empty
>>> ValidationHelper.validate_data_selectors(pipeline_data, [])
ValueError: At least one data selector is required
>>> # Raises ValueError if not found
>>> ValidationHelper.validate_data_selectors(
...     pipeline_data, ["nonexistent"]
... )
ValueError: Data selector 'nonexistent' not found...

Notes

This method is used by StructureVizFeatureService to validate data selectors before creating representative PDFs.