State Management and Reproducibility ==================================== OpenIMC provides comprehensive state management features that allow you to save your complete analysis session and restore it later. This is essential for reproducibility, collaboration, and sharing your work for publication. Overview -------- The state management system saves: * **Source Data Files**: All .mcd files used in the analysis * **Segmentation Masks**: All cell segmentation masks * **Feature Data**: Original and batch-corrected feature dataframes * **Analysis States**: Complete state from all analysis modules (QC, clustering, spatial analysis, etc.) * **Analysis Parameters**: All parameters used for each analysis step Saved states are self-contained and can be: * Loaded by anyone with OpenIMC to reproduce your analysis * Uploaded to Zenodo or other data repositories as supplementary material * Shared with collaborators for review or continuation of work Saving State ------------ To save your current analysis state: 1. Go to **File → Save State…** 2. Select a directory where you want to save the state 3. The application will create a folder containing all necessary files **State Folder Structure:** :: state_folder/ ├── README.md # Documentation for the saved state ├── manifest.txt # Complete file listing ├── state.json # Main state metadata and configuration ├── images/ # Source .mcd files (if any) ├── masks/ # Segmentation masks ├── features/ # Feature dataframes └── analysis/ # Analysis module states **What Gets Saved:** * **Images**: All .mcd source files are copied to the ``images/`` folder * **Masks**: All segmentation masks with proper naming (``{source}_{well}_segmentation_masks.tif``) * **Features**: Original features (``features.csv``) and batch-corrected features (``features_batch_corrected.csv``) * **Analysis States**: * QC analysis results and parameters * Clustering results, cluster labels, and annotation maps * Spatial analysis results and graph states * Feature extraction parameters * All other analysis module configurations Loading State ------------- To load a previously saved state: 1. Go to **File → Load State…** 2. Select the folder containing the saved state 3. The application will: * Automatically load all .mcd files from the ``images/`` folder * Restore all masks, features, and analysis states * Restore the UI to match the saved session **After Loading:** * All acquisitions are available and images are displayed * Masks are properly matched to acquisitions * Features are loaded and available for analysis * Analysis dialogs can be reopened with their saved state * You can continue working exactly where you left off Exporting Analysis Steps ------------------------- For documentation and methods sections, you can export a human-readable description of all analysis steps: 1. Go to **File → Export Analysis Steps…** 2. Choose a location to save the text file 3. The file will contain: * Dataset information (number of cells, features, etc.) * All segmentation steps (method, channels, parameters) * Feature extraction details (features extracted, normalization, corrections) * Clustering information (algorithm, parameters, features used) * Batch correction details * Spatial analysis methods * All other analysis operations with timestamps and parameters **Example Output:** :: OpenIMC Analysis Steps ==================================================================== Generated: 2025-01-15 14:30:22 This document describes all analysis steps performed on the dataset. Dataset Information -------------------------------------------------------------------- Source file(s): data.mcd Number of acquisitions: 12 Feature data: 45000 cells, 156 features Batch correction: Applied Segmentation masks: 12 acquisition(s) Segmentation -------------------------------------------------------------------- 1. Watershed Date/Time: 2025-01-15 10:15:30 Parameters: - method: watershed - nuclear_channels: ['DNA1_Ir191', 'DNA2_Ir193'] - cyto_channels: ['CD3_1841', 'CD4_2293'] - n_cells: 45000 Acquisitions: 12 acquisition(s) Feature Extraction -------------------------------------------------------------------- 1. Extract Features Date/Time: 2025-01-15 10:45:12 Parameters: - features_extracted: 156 features - morphological: True - intensity: True - arcsinh: True - arcsinh_cofactor: 1.0 Acquisitions: 12 acquisition(s) ... Zenodo Submission ----------------- Saved states are designed to be uploaded to Zenodo or other data repositories as supplementary material for publications. **Recommended Submission Structure:** 1. **Source Data**: Original .mcd files (if not already in a separate repository) 2. **State Folder**: Complete saved state folder containing: * All masks, features, and analysis states * README.md explaining the contents * manifest.txt listing all files 3. **Analysis Steps**: Exported analysis steps text file for methods section **Benefits:** * **Reproducibility**: Anyone can load the state and reproduce your analysis * **Transparency**: All parameters and steps are documented * **Collaboration**: Others can continue or modify your analysis * **Publication**: Meets requirements for data and code availability **README.md Contents:** Each saved state includes a README.md file that: * Lists all contents of the state folder * Explains how to load the state * Documents the OpenIMC version used * Provides notes for Zenodo submission Best Practices ------------- 1. **Save State Regularly**: Save your state at key milestones in your analysis 2. **Descriptive Folder Names**: Use descriptive names like ``analysis_20250115_final`` 3. **Include Analysis Steps**: Export analysis steps alongside the state for documentation 4. **Version Control**: Consider versioning your states (e.g., ``state_v1/``, ``state_v2/``) 5. **Document Changes**: Note any manual changes or corrections in the README Technical Details ----------------- **State Format Version**: The state format is versioned to ensure compatibility. Current version: 1.0 **File Formats**: * Masks: TIFF files (uint16) with LZW compression * Features: CSV files (comma-separated) * Analysis States: JSON files with special handling for DataFrames and numpy arrays * Images: Original .mcd files (copied, not converted) **Mask Matching**: When loading state, masks are matched to acquisitions using: 1. Source file basename + well/name (most reliable for multiple MCD files) 2. Acquisition ID matching 3. Well/name matching as fallback **Multi-File Support**: When multiple .mcd files are saved in state, they are loaded using the same logic as the base application, including: * Unique acquisition ID generation * Proper file-to-acquisition mapping * Channel mismatch detection * File names in acquisition dropdown