Feature Importance Service

GitHub Link to Code.

Service for feature-importance-based structure visualization.

This service provides methods for creating and visualizing molecular structures with beta-factors derived from feature importance analysis.

class mdxplain.structure_visualization.services.structure_viz_feature_importance_service.StructureVizFeatureImportanceService(manager: StructureVisualizationManager, pipeline_data: PipelineData)

Service for feature-importance-based structure visualization.

Provides methods for creating PDB files with beta-factors derived from feature importance analysis and visualizing them with NGLView (Jupyter) or PyMOL (terminal/script).

Examples

>>> # Via PipelineManager
>>> pipeline.structure_visualization.feature_importance.create_pdb_with_beta_factors(
...     "my_viz", "dt_analysis", n_top=10
... )
>>> ui, view = pipeline.structure_visualization.feature_importance.visualize_nglview_jupyter(
...     "my_viz", n_top_global=3
... )
__init__(manager: StructureVisualizationManager, pipeline_data: PipelineData)

Initialize feature importance visualization service.

Parameters

managerStructureVisualizationManager

Parent manager instance

pipeline_dataPipelineData

Pipeline data object (injected by AutoInjectProxy)

Returns

None

Initializes service instance

create_pdb_with_beta_factors(structure_viz_name: str, feature_importance_name: str, n_top: int = 10, representative_mode: str = 'best', output_dir: str = None) None

Create PDB files with beta-factor coloring for all comparisons.

Generates PDB files with beta-factors encoding residue importance for all sub-comparisons in a feature importance analysis. Results are stored in pipeline_data for later visualization.

Parameters

structure_viz_namestr

Name for this visualization session

feature_importance_namestr

Name of feature importance analysis to visualize

n_topint, default=10

Number of top features to consider for beta-factors

representative_modestr, default=”best”

Mode for selecting representative frames:

  • “best”: Frame maximizing top feature values

  • “centroid”: Frame closest to cluster centroid

output_dirstr, optional

Output directory for PDB files (defaults to cache_dir/structure_viz)

Returns

None

Stores PDB paths in pipeline_data.structure_visualization_data

Examples

>>> pipeline.structure_visualization.feature_importance.create_pdb_with_beta_factors(
...     "my_viz", "dt_analysis", n_top=10
... )
>>> # Access later for visualization
>>> data = pipeline.data.structure_visualization_data["my_viz"]

Notes

  • Creates one PDB per sub-comparison

  • Beta-factors encode residue importance (0-100 scale)

  • Representative frames selected based on representative_mode

visualize_nglview_jupyter(structure_viz_name: str, n_top_global: int = 3, n_top_local: int = 3, feature_own_color: bool = True) Tuple

Create interactive NGLView widget for Jupyter notebooks.

Creates 3D interactive visualization widget using NGLView with beta-factor gradient coloring and feature highlights. Requires PDFs to be created first via create_pdb_with_beta_factors(). Supports both global features (averaged across all clusters) and local features (cluster-specific top features).

Warning

  • Only works in Jupyter notebook environment

  • Requires nglview and ipywidgets packages

Parameters

structure_viz_namestr

Name of visualization session (from create_pdb_with_beta_factors)

n_top_globalint, default=3

Number of global top features (averaged across all clusters)

n_top_localint, default=3

Number of local top features per cluster (cluster-specific)

feature_own_colorbool, default=True

If True, features use structure color for local features and distinct colors for global features. If False, uses continuous distinct colors (global 0-N, local N-M).

Returns

Tuple[widgets.VBox, nv.NGLWidget]

UI container (dropdown + checkboxes) and NGLView widget

Raises

RuntimeError

If not running in Jupyter notebook environment

KeyError

If structure_viz_name not found in pipeline_data

ImportError

If nglview or ipywidgets not installed

Examples

>>> # First create PDFs
>>> pipeline.structure_visualization.feature_importance.create_pdb_with_beta_factors(
...     "my_viz", "dt_analysis", n_top=10
... )
>>> # Visualize with global and local features
>>> ui, view = pipeline.structure_visualization.feature_importance.visualize_nglview_jupyter(
...     "my_viz", n_top_global=3, n_top_local=3
... )
>>> # Only global features (disable local)
>>> ui, view = pipeline.structure_visualization.feature_importance.visualize_nglview_jupyter(
...     "my_viz", n_top_global=5, n_top_local=0
... )

Notes

  • Beta-factor gradient: base color (important) → white (unimportant)

  • Dropdown allows switching between structures or “multiple” mode

  • Multi-view mode shows all structures with opacity checkboxes

  • Global features: Top N averaged across all clusters

  • Local features: Top N cluster-specific features

  • Both global and local features independently toggleable

  • Feature highlights use licorice representation

create_pymol_script(structure_viz_name: str, n_top_global: int = 3, n_top_local: int = 3, output_dir: str = None, feature_own_color: bool = True) str

Create PyMOL script (.pml) for structure visualization.

Generates PyMOL script with putty cartoons (thickness from beta-factor), color gradients (base_color → white), and feature objects as toggleable stick representations. Supports both global features (averaged across all clusters) and local features (cluster-specific top features).

Parameters

structure_viz_namestr

Name of visualization session (from create_pdb_with_beta_factors)

n_top_globalint, default=3

Number of global top features (averaged across all clusters)

n_top_localint, default=3

Number of local top features per cluster (cluster-specific)

output_dirstr, optional

Output directory (defaults to cache_dir/structure_viz)

feature_own_colorbool, default=True

If True, features use structure color for local features and distinct colors for global features. If False, uses continuous distinct colors (global 0-N, local N-M).

Returns

str

Path to created .pml script file

Examples

>>> # First create PDFs
>>> pipeline.structure_visualization.feature_importance.create_pdb_with_beta_factors(
...     "my_viz", "dt_analysis", n_top=10
... )
>>> # Create PyMOL script with global and local features
>>> script_path = pipeline.structure_visualization.feature_importance.create_pymol_script(
...     "my_viz", n_top_global=3, n_top_local=3
... )
>>> # Only global features (disable local)
>>> script_path = pipeline.structure_visualization.feature_importance.create_pymol_script(
...     "my_viz", n_top_global=5, n_top_local=0
... )

Notes

  • Focus groups named: all_focus_struct_{name}

  • Each group contains 6 objects (if local features enabled):

    • Own structure (cartoon, opak)

    • Own global features (sticks, opak)

    • Own local features (sticks, opak)

    • Other structures (cartoon, 80% transparent)

    • Other global features (sticks, 80% transparent)

    • Other local features (sticks, 80% transparent)

  • Only first focus group enabled by default

  • Toggle groups in PyMOL GUI to switch focus

  • Global and local features independently toggleable

  • Script saved as: output_dir/structure_viz_name.pml

  • Putty cartoons: thickness controlled by beta-factor

  • Color gradient: base_color (low B) → white (high B)

  • Stick colors independent of cartoon (beta-factor preserved)

visualize_pymol(structure_viz_name: str, n_top_global: int = 3, n_top_local: int = 3, feature_own_color: bool = True) None

Open PyMOL with structure visualization.

Validates environment (terminal, PyMOL available), creates script if needed, and launches PyMOL with pymol Python module. Supports both global features (averaged across all clusters) and local features (cluster-specific top features).

Warning

  • Only works in terminal/script, NOT in Jupyter notebooks

  • Requires pymol Python module (conda install pymol-open-source)

Parameters

structure_viz_namestr

Name of visualization session (from create_pdb_with_beta_factors)

n_top_globalint, default=3

Number of global top features (averaged across all clusters)

n_top_localint, default=3

Number of local top features per cluster (cluster-specific)

feature_own_colorbool, default=True

If True, features use structure color for local features and distinct colors for global features. If False, uses continuous distinct colors (global 0-N, local N-M).

Returns

None

Opens PyMOL with visualization

Raises

RuntimeError

If running in Jupyter notebook

ImportError

If pymol Python module not available

Examples

>>> # First create PDFs
>>> pipeline.structure_visualization.feature_importance.create_pdb_with_beta_factors(
...     "my_viz", "dt_analysis", n_top=10
... )
>>> # Then open in PyMOL (terminal only!)
>>> pipeline.structure_visualization.feature_importance.visualize_pymol(
...     "my_viz", n_top_global=3, n_top_local=3
... )

Notes

  • PyMOL opens with all structures and features visible

  • Toggle groups: enable/disable all_focus_struct_<name>

  • Each focus group shows own structure + features, others transparent

  • Global and local features independently toggleable

  • Putty cartoons: thickness controlled by beta-factor

  • Color gradient: base_color (low B) → white (high B)

  • Script created if not already exists