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}]