# MagellanMapper v0.9 Release Notes ## MagellanMapper v0.9.9 ### Changes GUI - Atlas Editor label names readability: word-wrapped, transluscent background for better color contrast - Keeps ROI within the zoomed overview plot in the ROI Editor when possible - Stretch the color value range in discete colormaps while avoiding fully dark RGB colors - Experimental discrete colormap based on evenly spaced RGB values CLI - Translates "none" into a `None` object for default settings - Profile modifier dictionary settings update rather than overwrite prior dictionaries Atlas refinement: - Incorporated skeletonization along with erosion and watershed as a form of adaptive morphology to retain thin structures - Lateral extension models the underlying histology using a serial 2D version of the edge-aware watershed and tapering off labels, preferentially central labels - Smooths labels during lateral extension to remove artifacts - In-paints rather than uses closing filter to close ventricles for more gradual, smoother filling - Option to export intermediate steps during lateral edge extension - Fixed reported erosion to marker filter and size values I/O - Simple export of overlaid registered files using a list of image paths - Fixed making all values below vmin transparent - Fixed exporting a stack when the first image is turne off Server pipelines: - Fixed reloading swap files from NVMe devices R stats and plots - Fixed p-value adjustment/correction to only apply to stats with 2 or more values ## MagellanMapper v0.9.8 ### Changes GUI - Fix edge interpolation between planes after multiple edits in the same plane - Allow overlaying downsized labels on the full resolution image - Broader support for image flipping (eg ROI Editor flips ROI box in addition to images) Atlas refinement - Measure label-by-label improvement as percent of labels improved - Measure DSCs by label Atlas registration - Profile setting for a fallback similarity metric if DSC is below a threshold I/O - No longer require the full image for stack detection or ROI export, falling back to loading an ROI image - Fix loading ROI image metadata in Numpy >= 1.17 Python stats and plots - Scatter plots: customize point transparency, use different markers for each group - Join CSV files by column to allow storing experiment metadata in CSV R stats and plots - Jitter plots: option to annotate with sample names - Configure p-value correction/alternative methods - Customize the column used to identify the main groups for comparison - Support separate comparison by sex and laterality ## MagellanMapper v0.9.7 ### Changes Atlas refinement - Replaced simple boundary count for surface area metric with 3D marching cubes Atlas registration - Save pre-curated registered atlas image for inspection - Overlay multiple sample images on top of one another to assess registration accuracy Nuclei detection - Export ROI stats such as intensity and nuclei counts along Python stats and plots - Weighted arithmetic mean library function - Output a collage of multiple sample images - Library function to merge data frames by columns R stats and plots - Fixed regression in regression models for multiple genotypes - Option to filter regions by condition - Added median and standard deviation output by group - Fixed total number of groups in jitter plots Code base - Continued refactoring tuple constants to enums - Bash scripts clean-up - Restart Sphinx API docs generation ## MagellanMapper v0.9.6 ### Changes Installation - Provided Conda environment full pinned specs for Win/Mac/Lin - Option to specify a Conda environment spec during setup - `requirements.txt` is now based on a full pip install and directly installable - Assume that SimpleElastix is installed now that binaries are provided - Fixed finding SimpleElastix binaries during Venv setup Atlas refinement - Option to specify right hemisphere label inversion to fix inadvertent inversion for rotated images Atlas registration - Customize the similarity metric used for registration I/O - Fixed image stack export from a directory of images Server pipelines - File size output and space between number and time unit in Slack notification Python stats and plots - Fixed regression in normalized developmental plots - Fixed showing empty unit parentheses in axis labels - Customize bar plot x-tick labels and rotation - Option to weight effect sizes in labels difference images - Option to customize vertical span labels Code base - Fefactor `register` main tasks - Refactor non-registration tasks from `register` into separate modules - Bash scripts cleanup ### Dependency Updates #### Python Dependency Changes - `setup.py` specifies Python >= 3.6 since this version is the lowest tested - Custom PyPi is an extra rather than primary URL - Official rather than forked SimpleElastix repository by default but also option to specify an alternative local repo directory ## MagellanMapper v0.9.5 ### Changes Installation - Installs SimpleElastix binaries from a custom respository instead of SimpleITK - Provides option to install optional dependency groups during in setup.py - Venv setup script defaults to installing all optional dependencies - Conda setup script uses `clr` as the default name again since the name can be customized - Matplotlib ScaleBar is no longer required Atlas refinement - Updated profile modifiers for new pipeline nomenclature - Adds metric for DSC of the labeled hemisphere - Saves volume level stats to the imported atlas directory for easier access - Stats output removes NaN columns for smaller files - Labels interior-border images are now optional Atlas registration - Option to specify similarity metric I/O - Fixed missing interval when exporting a stack of separate image files Server pipelines - Finds NVMe devices assigned to a given device name Python stats and plots - Fixed colorbar labeling from command-line - Fixed line plots with more line groups than styles and prioritize a solid line for the final group ### Dependency Updates #### Python Dependency Changes - SimpleElastix installed from custom PyPi repository on GemFury instead of SimpleITK from official PyPi - awscli and boto3 installed by default in Conda environment spec - Default Conda environment name is changed back to `clr` when using the setup script - Added PyQt5 and SimpleITK as required dependencies in setup.py, with SimpleITK version specifieid to get custom SimpleElastix in place of the standard SimpleITK, assuming extra-url flag is added to pip install to find respository - Optional dependencies in setup.py for AWS, import, and miscellaneous graphics - Matplotlib ScaleBar now optional - Venv setup scripti installs dependencies based on setup.py rather than requirements.txt - Updated `requirements.txt` to current snapshot and added an equivalent `environment_full.yml` Conda spec #### Server dependency Changes - nvme-cli required to map EBS volumes in NVMe-based instances to the correct drive path ## MagellanMapper v0.9.4 ### Changes Installation - Ease Windows compatibility: SimpleElastix can be built with a batch script, docs on setup requirements, Bash setup scripts optional - Allow a complete Conda environment installation from a .yml file - Script for Venv setup with dependencies installation by requirements.txt file - Specified required dependencies in setup.py - Python-Bioformats/Javabridge and thus Java are now optional - Shift most dependencies to Conda to make compiler optional GUI - Option to keep colormaps consistent with the original labels image - Fixed intensity normalization for newer versions of Mayavi (>= 4.7) Atlas refinement: - Fixed lateral edge extension to extend only from labeled areas to avoid extending artifacts - Decreased ADMBA E13.5 and E15.5 atlas thresholds now that artifacts are not being followed - Minimize closing filter used to close ventricles in several ADMBA atlases I/O - Fixed error when displaying metadata after image import to Numpy format with newer Numpy versions (eg >=1.16) Pipelines - Option to avoid showing log output in nohup wrapper script - Fixed potential to initiate a server command for the next rather than the current run script Nuclei detection - Removed deprecated anisotropic kernel settings Python stats - Make scatter plots cleaner by not splitting on different labels and giving an option to show only a single value from arrays in scatter plots to simply ROC curve labels - Allow additional region metric groups, including those performed across whole super-structures rather than through weighted averaging - Plot regional volumes and compactness across development - Fixed line plots with more than 10 lines - Extended scientific notation to line plots, format units with math text, use y-axis command-line-specified labels in bar plots, and allow turning off command-line labels for specific axes - Quantify unlabeled hemispheres by volume and fraction of sagittal planes" ### Dependency Updates #### Python Dependency Changes - Conda installs from Conda-Forge over defaults, with strict channel preference if using the setup script - `setup.py` specifies required dependencies - `setuptools` essentially required for `setup.py` (attempts to fallback to disutils but will fail when trying to find packages) ## MagellanMapper v0.9.3 ### Changes I/O - Support `--prefix` when loading registered image files Nuclei detection - Replace verification method with Hungarian algorithm, which gives: 1) better optimized pairing of detection and ground truth, 2) fixes dependence on blob order, 3) is based on Euclidean distance rather than merely a bounding box - Fix grid search/ROC formatting for arrays ROI editor - Refactor into separate module and classes - Restore white color for all draggable circles to improve their visibility - `bone` profile for bluish-greyscale high-contrast colormaps - Fix display of blob verification matches above and below the ROI Atlas editor - edit button to toggle editing mode without a keyboard (`w` shortcut to toggle; `alt+click` no longer required/supported for editing) - text box to input new label colors and provide feedback on selected colors Image transformations - `--transform` command-line parameter to specify image rotation and flipping - Fix applying `--flip` argument to image export ## MagellanMapper v0.9.2 ### Changes Atlasing - Enabled save button only with unsaved edits - Tool to convert ITK-SNAP labels description format to CSV importable by Clrbrain - Option to treat specific labels' corresponding histology regions as foreground for DSC to account for ventricular labels in E11.5 - Option to turn off lateral extension/mirroring completely while still using them to crop the output atlas Image registration - Save basic stats such as DSC after image registration Nuclei detection - Added `4xnuc` profile with size parameters for 4x microscopy Python stats - Bar plots: option to weight bars, more robust layout tightening and label placement - Scatter plots: fixed grouping by multiple columns - Saved peak smoothing qualities to CSV - Added total intensity metric R stats - Jitter plots: allow different number of subgroups per group, fixed displaying multiple sets of paired data in the same plot - Grouped metadata columns in output and simplified adding new metadata - Fixed p-value extraction for correlation coefficient matrices" ## MagellanMapper v0.9.1 ### Changes Visualization - Automatically generate colormaps for all channels - Equalize transparency for all channels - Invert 3D visualization along the x-axis for same "handedness" as in Matplotlib images Image import - Fixed regression in importing TIFF images to Numpy/Clrbrain format Atlasing - Option to merge images into separate channels - No longer display images with registration suffixes unless explicitly specified - Fixed regressions in atlas rotation during import General stats - Measure coefficient of variation - Option to reverse order of conditions Python stats - Use nuclei for weighted averaging of nuclei-based measurements - Library function for generating probability plots - Configurable bar plots labels, vertical spans to further group bars R stats - Fixed regressions in jitter plots with mean summaries, single genotypes, unitless labels Clean-up - Removed obsolete volume and density functions - No longer merge distance images ## MagellanMapper v0.9.0 ### Changes Server management - Support swap file setup and loading - Remove default NVMe device paths since they are not stable Blob detections - Reduce default blob chunk size to 1000 to reduce memory requirement Atlasing - Decrease erosion fraction to 50:50 for interior-border match metrics R stats - Correlation coefficient calculation and matrix visualization - Normality testing" ### Dependency Updates #### R Dependency Changes - Hmisc - corrplot