Feature Metadata Helper

GitHub Link to Code.

Helper for feature metadata extraction and processing.

Centralized low-level metadata operations used across multiple data preparers (TimeSeriesDataPreparer, ViolinDataPreparer, DensityDataPreparer).

class mdxplain.plots.helper.feature_metadata_helper.FeatureMetadataHelper

Helper for feature metadata extraction.

Provides static methods for extracting and organizing feature metadata from metadata arrays. Used by TimeSeriesDataPreparer and BaseFeatureImportancePlotDataPreparer to eliminate code duplication.

Examples

>>> # Collect metadata for all features of one type
>>> meta = FeatureMetadataHelper.collect_metadata_for_type(
...     "dssp", features_dict, metadata_array
... )
>>> print(meta.keys())  # Feature names
>>> # Get top-level metadata for a feature type
>>> top_level = FeatureMetadataHelper.get_top_level_metadata(
...     "dssp", metadata_array
... )
>>> print(top_level.get("encoding"))  # "onehot"
static collect_metadata_for_type(feat_type: str, features: Dict[str, Any], metadata_array: ndarray) Dict[str, Dict[str, Any]]

Collect metadata for all features of specific type.

Parameters

feat_typestr

Feature type name

featuresDict[str, Any]

Feature names for this type (keys used)

metadata_arraynp.ndarray

Selected metadata array

Returns

Dict[str, Dict[str, Any]]

Mapping feat_name -> {type_metadata, features}

Examples

>>> features = {"LYS42_DSSP_H": {...}, "ALA10_DSSP_C": {...}}
>>> meta = FeatureMetadataHelper.collect_metadata_for_type(
...     "dssp", features, metadata_array
... )
>>> print(meta["LYS42_DSSP_H"].keys())  # ["type_metadata", "features"]
static get_top_level_metadata(feat_type: str, metadata_array: ndarray) Dict[str, Any]

Get top-level metadata for feature type.

Parameters

feat_typestr

Feature type name

metadata_arraynp.ndarray

Selected metadata array

Returns

Dict[str, Any]

Top-level metadata (encoding, classes, visualization, etc.)

Examples

>>> top_level = FeatureMetadataHelper.get_top_level_metadata(
...     "dssp", metadata_array
... )
>>> print(top_level.get("encoding"))  # "onehot"
>>> print(top_level.get("classes"))  # ["H", "E", "C", ...]
static get_feature_info(feat_name: str, metadata_array: ndarray) Dict[str, Any]

Get feature-specific info from metadata array.

Parameters

feat_namestr

Feature name to find

metadata_arraynp.ndarray

Selected metadata array

Returns

Dict[str, Any]

Feature-specific metadata

Examples

>>> info = FeatureMetadataHelper.get_feature_info(
...     "LYS42_DSSP_H", metadata_array
... )
>>> print(info.get("dssp_class"))  # "H"
>>> # For pair features (distances)
>>> info = FeatureMetadataHelper.get_feature_info(
...     "dist_CA_5_10", metadata_array
... )
>>> print(len(info))  # 2 (both partners)
static extract_feature_info_from_entry(meta_entry: Dict[str, Any]) list

Extract feature info from metadata entry.

Returns full features list for consistency. For pair features (distances), preserves both partners.

Parameters

meta_entryDict[str, Any]

Metadata entry containing features field

Returns

list

Full features list from metadata entry

Examples

>>> # Single feature (DSSP, torsions)
>>> entry = {"features": [{"dssp_class": "H"}], "type": "dssp"}
>>> info = FeatureMetadataHelper.extract_feature_info_from_entry(entry)
>>> print(info)  # [{"dssp_class": "H"}]
>>> # Pair feature (distances)
>>> entry = {
...     "features": [{"partner": 1}, {"partner": 2}],
...     "type": "distances"
... }
>>> info = FeatureMetadataHelper.extract_feature_info_from_entry(entry)
>>> print(info)  # [{"partner": 1}, {"partner": 2}]