Decomposition Entities
GitHub Link to Code.
Decomposition data container for computed dimensionality reduction results.
Container for decomposition results (PCA, KernelPCA) with associated metadata and hyperparameters. Stores decomposed data with transformation information.
- class mdxplain.decomposition.entities.decomposition_data.DecompositionData(decomposition_type: str, use_memmap: bool = False, cache_path: str = './cache')
Container for decomposition results with metadata and hyperparameters.
Stores results from dimensionality reduction methods (PCA, KernelPCA) along with transformation metadata and hyperparameters used for computation.
Attributes
- decomposition_typestr
Type of decomposition used (e.g., “pca”, “kernel_pca”)
- use_memmapbool
Whether memory mapping is used for large datasets
- cache_pathstr
Path for memory-mapped cache files
- datanp.ndarray or None
Decomposed data array
- metadatadict or None
Metadata including explained variance, hyperparameters, etc.
- frame_mappingdict or None
Mapping from global_frame_index to (trajectory_index, local_frame_index) for tracking frame origins across multiple trajectories
- __init__(decomposition_type: str, use_memmap: bool = False, cache_path: str = './cache') None
Initialize decomposition data container.
Parameters
- decomposition_typestr
Type of decomposition used (e.g., “pca”, “kernel_pca”)
- use_memmapbool, default=False
Whether to use memory mapping for large datasets
- cache_pathstr, optional
Path for memory-mapped cache files
Returns
- None
Initializes decomposition data container
Examples
>>> # Basic initialization >>> decomp_data = DecompositionData("pca")
>>> # With memory mapping >>> decomp_data = DecompositionData( ... "kernel_pca", ... use_memmap=True, ... cache_path="./cache/kernel_pca.dat" ... )
- get_frame_mapping()
Get frame mapping from global frame indices to trajectory origins.
Returns
- dict or None
Mapping from global_frame_index to (trajectory_index, local_frame_index), or None if decomposition has not been computed or mapping is not available
Examples
>>> decomp_data = DecompositionData("pca") >>> frame_mapping = decomp_data.get_frame_mapping() >>> if frame_mapping is not None: ... print(f"Frame 0 comes from: {frame_mapping[0]}") # (traj_idx, local_frame_idx)
- set_frame_mapping(frame_mapping: Dict[int, int]) None
Set frame mapping from global frame indices to trajectory origins.
Parameters
- frame_mappingdict
Mapping from global_frame_index to (trajectory_index, local_frame_index)
Returns
- None
Sets the frame mapping for trajectory tracking
Examples
>>> decomp_data = DecompositionData("pca") >>> mapping = {0: (0, 10), 1: (0, 11), 2: (1, 5)} # global -> (traj, local) >>> decomp_data.set_frame_mapping(mapping)
- save(save_path: str) None
Save DecompositionData object to disk.
Parameters
- save_pathstr
Path where to save the DecompositionData object
Returns
- None
Saves the DecompositionData object to the specified path
Examples
>>> decomposition_data.save('analysis_results/pca_decomposition.pkl')
- load(load_path: str) None
Load DecompositionData object from disk.
Parameters
- load_pathstr
Path to the saved DecompositionData file
Returns
- None
Loads the DecompositionData object from the specified path
Examples
>>> decomposition_data.load('analysis_results/pca_decomposition.pkl')
- print_info() None
Print comprehensive decomposition information.
Parameters
None
Returns
- None
Prints decomposition information to console
Examples
>>> decomposition_data.print_info() === DecompositionData === Decomposition Type: PCA Transformed Data: 1000 frames x 10 components Explained Variance Ratio: [0.45, 0.23, 0.12, 0.08, ...]