Structure Visualization Entities

GitHub Link to Code.

Structure visualization data entity for storing PDB paths.

This module contains the StructureVisualizationData class that stores PDB file paths generated for structure visualization. Each instance represents a named visualization session with PDBs for different structures (from FI sub-comparisons or data selectors).

class mdxplain.structure_visualization.entities.structure_visualization_data.StructureVisualizationData(name: str, feature_importance_name: str = None, selector_centroid: str = None, selector_features: str = None)

Data entity for storing structure visualization PDB paths.

Stores paths to generated PDB files for structure visualization, organized by structure identifiers. Supports two source types:

  • “feature_importance”: From FI analysis sub-comparisons

  • “feature”: From feature/data selectors

Attributes

namestr

Name identifier for this visualization session

source_typestr

Source type: “feature_importance” or “feature”

feature_importance_namestr | None

Name of FI analysis (for FI source type)

selector_centroidstr | None

Feature selector for centroids (for feature source type)

selector_featuresstr | None

Feature selector for highlights (for feature source type)

pdb_pathsDict[str, str]

Mapping from structure identifier to PDB file path

feature_infoList[Dict[str, Any]]

List of feature dicts with metadata for visualization

Examples

>>> # Feature importance mode
>>> viz_data = StructureVisualizationData("my_viz", "dt_analysis")
>>> viz_data.add_pdb("cluster_0_vs_rest", "/path/to/structure.pdb")
>>> # Feature mode
>>> viz_data = StructureVisualizationData.from_selectors(
...     "my_viz", "coords_all", "distances"
... )
>>> viz_data.add_pdb("cluster_0", "/path/to/c0.pdb")
__init__(name: str, feature_importance_name: str = None, selector_centroid: str = None, selector_features: str = None)

Initialize structure visualization data.

Use either feature_importance_name (FI mode) OR selector_centroid (feature mode), not both.

Parameters

namestr

Name identifier for this visualization session

feature_importance_namestr, optional

Name of FI analysis (for FI source type)

selector_centroidstr, optional

Feature selector for centroids (for feature source type)

selector_featuresstr, optional

Feature selector for highlights (for feature source type)

Returns

None

Initializes StructureVisualizationData with empty PDB paths

Examples

>>> # Feature importance mode
>>> viz_data = StructureVisualizationData("my_viz", "dt_analysis")
>>> # Feature mode with features
>>> viz_data = StructureVisualizationData(
...     "my_viz",
...     selector_centroid="coords_all",
...     selector_features="distances"
... )
>>> # Feature mode without features
>>> viz_data = StructureVisualizationData(
...     "my_viz",
...     selector_centroid="coords_all"
... )
add_pdb(sub_comparison: str, pdb_path: str) None

Add PDB path for a sub-comparison.

Parameters

sub_comparisonstr

Sub-comparison identifier

pdb_pathstr

Path to PDB file

Returns

None

Adds PDB path to internal storage

Examples

>>> viz_data = StructureVisualizationData("my_viz")
>>> viz_data.add_pdb("cluster_0_vs_rest", "/path/to/structure.pdb")
get_pdb(sub_comparison: str) str | None

Get PDB path for a sub-comparison.

Parameters

sub_comparisonstr

Sub-comparison identifier

Returns

Optional[str]

PDB file path, or None if not found

Examples

>>> viz_data = StructureVisualizationData("my_viz")
>>> viz_data.add_pdb("cluster_0_vs_rest", "/path/to/structure.pdb")
>>> path = viz_data.get_pdb("cluster_0_vs_rest")
>>> print(path)
'/path/to/structure.pdb'
get_all_pdbs() Dict[str, str]

Get all PDB paths.

Returns

Dict[str, str]

Dictionary mapping sub-comparison to PDB path

Examples

>>> viz_data = StructureVisualizationData("my_viz")
>>> viz_data.add_pdb("cluster_0", "/path/to/c0.pdb")
>>> viz_data.add_pdb("cluster_1", "/path/to/c1.pdb")
>>> all_paths = viz_data.get_all_pdbs()
>>> print(len(all_paths))
2
has_pdb(sub_comparison: str) bool

Check if PDB exists for sub-comparison.

Parameters

sub_comparisonstr

Sub-comparison identifier

Returns

bool

True if PDB path exists, False otherwise

Examples

>>> viz_data = StructureVisualizationData("my_viz")
>>> viz_data.add_pdb("cluster_0", "/path/to/c0.pdb")
>>> viz_data.has_pdb("cluster_0")
True
>>> viz_data.has_pdb("cluster_1")
False
add_feature_info(features: List[Dict[str, Any]]) None

Add feature information for visualization.

Parameters

featuresList[Dict[str, Any]]

List of feature dictionaries with metadata

Returns

None

Stores feature info for later visualization

Examples

>>> viz_data = StructureVisualizationData(
...     "my_viz", selector_centroid="coords_all"
... )
>>> features = [
...     {"feature_name": "ALA_5_CA-GLU_10_CA", "residue_seqids": [5, 10]},
...     {"feature_name": "GLY_3_phi", "residue_seqids": [3]}
... ]
>>> viz_data.add_feature_info(features)
get_feature_info() List[Dict[str, Any]]

Get stored feature information.

Returns

List[Dict[str, Any]]

List of feature dictionaries with metadata

Examples

>>> viz_data = StructureVisualizationData(
...     "my_viz", selector_centroid="coords_all"
... )
>>> viz_data.add_feature_info([{"feature_name": "test"}])
>>> features = viz_data.get_feature_info()
>>> len(features)
1