Releases: sanderslab/magellanmapper
MagellanMapper v1.6.0
Highlights in v1.6.0 release
- Atlas navigation
- Smoother, faster interactions with main plots, including atlas label name display, label editing, and pan and zoom navigation
- Atlas regions can be searched (see "Atlases > Region")
- Atlas Editor orthogonal planes can be reordered or turned off
- Detection channels can be selected independently of the loaded image to overlay prior detections or compare channels (see "Detect > Chl")
- Images can be viewed as RGB (see "ROI > Channels") or merged channels
- New atlases can be downloaded through
BrainGlobe
(see the new "Atlases" panel)
- Installation simplification
- Simpler entry point to launch MagellanMapper:
mm
- Available as binary wheel to install without requiring the source code
- Faster, lighter installation with fewer required dependency packages
- Extends support to Python 3.12 and defaults to Python 3.9 (note: this is the last release to officially support Python 3.6-3.9)
- Supports ITK-Elastix for image registration
- Fixed installation on Apple Silicon (Mac M-chip) platforms (#634)
- Simpler entry point to launch MagellanMapper:
- Tutorial: Jupyter Notebook for running common tasks
Major changes since beta 4
Further fixes for these features/issues:
- Jupyter Notebook as a tutorial for running various tasks in the CLI (#659)
- Expand continuous integration testing to both pinned and fresh dependencies across Python 3.6-3.12 (#682)
- ITK-Elastix is now supported for image registration (#682)
- Fixed for NumPy v2 (#680)
See the full release notes draft here for more details.
All Changes
Show details
- 6241874 - Bump project version to v1.6b4
- 2ecc2da - Fix regex specification for converting ITK-SNAP labels to CSV
- 9b57e77 - Bump project version to 1.6b5
- 0bdf480 - Bump Venv setup script Python version compatibility to 3.12
- 5a41c4a - Bump readme year to 2024
- 700a5c9 - Fix initializing
RangeEditor
in Python 3.12 - f54d51b - Docs update on quick install and vignette
- 02166ce - Fix CI for
macos-latest
supported Python versions - 434e109 - Test CI without Python 3.12
- 5e2ece4 - Test CI with multiple dependencies in
include
- 8a32358 - Test CI with fixed
include
/exclude
for Ubuntu and macOS - f6c23d1 - Bump ITK-Elastix to v0.19.2 to support macOS Arm64
- c7f1ed1 - Release notes for extending support to Python 3.12 (#640)
- 759db62 - --- updated-dependencies: - dependency-name: requests dependency-type: direct:production update-type: version-update:semver-minor ...
- edc8c72 - Bump brainglobe-space from 1.0.0 to 1.0.2 in /envs
- 71c0035 - Bump tifffile from 2024.2.12 to 2024.5.22 in /envs
- 531e5c1 - Fix deprecated access to Matplotlib colormap
- 8d72c4d - Fix converting slice argument of 0 to None
- 12afc3f - Fix conflict in colormaps naming
- 6a09fa6 - Fallback to earlier Matplotlib colormap access
- eee83ed - Show registration parameters when running ITK-Elastix
- 183dd2a - Deconstruct reg suffixes from rescaled/transformed image names
- ddcf3e7 - Update BrainGlobe Atlas API to v2
- ee20927 - Use older BrainGlobe Atlas API for Python < 3.9
- e404733 - Add more settings to example blobs ROI profile
- c73ef6c - Fix stale absolute coordinate columns in blobs archive
- 6278845 - Upgrade blobs archive for missing absolute coordinates
- f32d632 - Accept blob column enums when accessing values from a column
- 4337af9 - Add blob region column and update docs
- 7f60581 - Set up region IDs for blobs when loading them during image setup
- ef32735 - Turn off "Raw" 3D option by defaut
- cceda7b - Turn off on-the-fly blob detection in surrounding areas if blobs are given
- c7da12e - Reduce extracting surrounding blobs
- 1d436d0 - Move region feedback to the atlas panel
- 743a305 - Show 3D blobs for selected regions
- 6b97d13 - Fix type hint reference to
BlobMatch
- f210ed5 - Allow layering multiple sets of 3D blobs
- ca7421c - Re-enable "Raw" 3D mode by default if no labels image is present
- 655a9be - Release notes on BrainGlobe Atlas API v2 update (#650)
- 0621904 - Release notes on selecting 3D blobs by region (#651)
- 4c99f3c - Bump fonttools from 4.51.0 to 4.53.0 in /envs
- a0172d7 - Fix crosshairs for Matplotlib v3.9.0
- f09a061 - Release notes for fixing crosshairs in Matplotlib v3.9.0 (#657)
- b886132 - Print CLI args at regular level
- d4d9c57 - Simplify warnings during region export
- 3f9870b - Find ontology file path from labels metadata when making labels level image
- 3745dc8 - Support specifying labels image for mapped metric image
- 4739c13 - Get children IDs from a table of label IDs with immediate parents
- fd0fe38 - Release notes for simplified mapping metric to labels image (#658)
- 568ff8f - Fix
np.lib
reference for NumPy v2 release - 39f9617 - Release notes for fix for NumPy v2 (#661)
- 6211658 - Bump urllib3 from 2.2.1 to 2.2.2 in /envs
- eeb0ae6 - Bump scikit-image from 0.22.0 to 0.24.0 in /envs
- 4bed64a - Bump certifi from 2024.2.2 to 2024.7.4 in /envs
- 23fe1ad - Bump zipp from 3.18.1 to 3.20.2 in /envs
- e738f8f - Bump fonttools from 4.53.0 to 4.54.1 in /envs
- bf140fb - Release notes for fixing region RGB export (#675)
- 3d48162 - Fix region export RGB values
- d186bdb - Fix colormaps' corresponding negative labels for NumPy v2 type casting
- fd94711 - Add sample commands Notebook navigation
- 34ea142 - Demo command for exporting map of regions to parents
- 624bdb8 - Add Notebook anchor tags for navigation
- 50a0bb9 - Add more image export example commands to Notebook
- 4a05b0e - Fix parsing "none" for
--slice
- 6e9d6d3 - Release notes for adding navigation pane to Notebook
- 34b32f7 - Fix discrete colormap generation for
- 6b821fb - Release notes for fixing discrete colormaps for single-label images
- 21dbe5f - Pin ITK-Elastix to v0.20
- 8e479bd - Update requirements for 2024-12-22
- 0d1f195 - Pin
PyQt5-Qt5
for all major platforms - 2e8f499 - Fix CI for Ubuntu 24.04 libglx dependencies
- 9ce884d - Fix CI for Python 3.7 removal from Ubuntu 24.04
- 71b80e9 - Release notes for ITK-Elastix 0.21 workaround
- 21c5bd0 - Increase max Dependendabot PRs
- 51fec06 - Fix Dependabot open PR limit syntax
- 02367d1 - Version bump to v1.6.0
- b69d015 - Release notes for v1.6.0
- 468e32b - Bump year
Full Changelog: v.1.6b4...v1.6.0
MagellanMapper v1.6 beta 4
Highlights in v1.6 pre-releases
- Smoother, faster interactions with main plots, including atlas label name display, label editing, and pan and zoom navigation
- Available as binary wheel to install without requiring the source code
- Faster, lighter installation with fewer required dependency packages
- Extends suppor to Python 3.11 and defaults to Python 3.9
- Simpler entry point to launch MagellanMapper:
mm
- Supports ITK-Elastix for image registration
- Atlases can be downloaded directly through
BrainGlobe
(see the new "Atlases" panel) - Atlas regions can be searched (see "Atlases > Region")
- Atlas Editor planes can be reordered or turned off
- Detection channels can be selected independently of the loaded image to overlay prior detections or compare channels (see "Detect > Chl")
- Images can be viewed as RGB (see "ROI > Channels") or merged channels
- Jupyter Notebook tutorial for running common tasks
- Fixed installation on Apple Silicon (Mac M-chip) platforms
Major changes since beta 3
- Fixed installation on Apple Silicon (Mac M-chip) platforms (#634)
- Select colormaps for each channel (#574)
- Fixed image adjustment controls
See the full release notes draft here for more details.
All Changes
Show details
- Bump default Python version to v3.9 by @yoda-vid in #559
- Bump imageio from 2.31.3 to 2.31.4 in /envs by @dependabot in #560
- Bump tifffile from 2023.9.18 to 2023.9.26 in /envs by @dependabot in #561
- Bump scipy from 1.11.2 to 1.11.3 in /envs by @dependabot in #562
- Fix ReadTheDocs for Python 3.9 by @yoda-vid in #563
- Bump cycler from 0.11.0 to 0.12.0 in /envs by @dependabot in #564
- Bump imageio from 2.31.4 to 2.31.5 in /envs by @dependabot in #565
- Bump fonttools from 4.42.1 to 4.43.0 in /envs by @dependabot in #566
- Bump charset-normalizer from 3.2.0 to 3.3.0 in /envs by @dependabot in #568
- Bump urllib3 from 2.0.5 to 2.0.6 in /envs by @dependabot in #569
- Bump rich from 13.5.3 to 13.6.0 in /envs by @dependabot in #570
- Bump packaging from 23.1 to 23.2 in /envs by @dependabot in #571
- Bump scikit-image from 0.21.0 to 0.22.0 in /envs by @dependabot in #573
- Extend image adjustment sliders to use full intensity range by @yoda-vid in #572
- Store the last opened image via the GUI in preferences by @yoda-vid in #575
- Select colormaps in the GUI by @yoda-vid in #574
- Fix restoring intensity when showing a multi-channel image with deselected channels by @yoda-vid in #576
- Bump cycler from 0.12.0 to 0.12.1 in /envs by @dependabot in #577
- Bump fonttools from 4.43.0 to 4.43.1 in /envs by @dependabot in #578
- Bump traits from 6.4.2 to 6.4.3 in /envs by @dependabot in #579
- Bump urllib3 from 2.0.6 to 2.0.7 in /envs by @dependabot in #581
- Bump pyqt5-sip from 12.12.2 to 12.13.0 in /envs by @dependabot in #582
- Bump imageio from 2.31.5 to 2.31.6 in /envs by @dependabot in #583
- Bump charset-normalizer from 3.3.0 to 3.3.1 in /envs by @dependabot in #584
- Bump numpy from 1.26.0 to 1.26.1 in /envs by @dependabot in #586
- Bump networkx from 3.1 to 3.2 in /envs by @dependabot in #587
- Bump pandas from 2.1.1 to 2.1.2 in /envs by @dependabot in #588
- Bump networkx from 3.2 to 3.2.1 in /envs by @dependabot in #589
- Bump pyqt5 from 5.15.9 to 5.15.10 in /envs by @dependabot in #590
- Bump charset-normalizer from 3.3.1 to 3.3.2 in /envs by @dependabot in #591
- Bump contourpy from 1.1.1 to 1.2.0 in /envs by @dependabot in #593
- Bump matplotlib from 3.8.0 to 3.8.1 in /envs by @dependabot in #594
- Bump importlib-resources from 6.1.0 to 6.1.1 in /envs by @dependabot in #596
- Bump imageio from 2.31.6 to 2.32.0 in /envs by @dependabot in #597
- Bump fonttools from 4.43.1 to 4.44.3 in /envs by @dependabot in #598
- Fix making density images with ITK by @yoda-vid in #599
- Support generating regional heat maps from the volume metrics output by @yoda-vid in #600
- Remove
verify_tol_factor
from identical block settings check by @yoda-vid in #603 - Exclude negative intensities by default in image sliders by @yoda-vid in #606
- Workaround Matplotlib error when turning off alpha blending by @yoda-vid in #607
- Fix exporting multiple planes from single image by @yoda-vid in #611
- Bump certifi from 2023.7.22 to 2023.11.17 in /envs by @dependabot in #602
- Bump imageio from 2.32.0 to 2.33.1 in /envs by @dependabot in #608
- Bump pillow from 10.0.1 to 10.2.0 in /envs by @dependabot in #610
- Round-up of 2D plot fixes by @yoda-vid in #612
- Fix running Mayavi on Windows by @yoda-vid in #618
- Bump rich from 13.6.0 to 13.7.0 in /envs by @dependabot in #614
- Bump scipy from 1.11.3 to 1.12.0 in /envs by @dependabot in #615
- Bump matplotlib from 3.8.1 to 3.8.2 in /envs by @dependabot in #616
- Restore image settings during refresh by @yoda-vid in #613
- Bump pywavelets from 1.4.1 to 1.5.0 in /envs by @dependabot in #619
- Bump idna from 3.4 to 3.6 in /envs by @dependabot in #620
- Bump pandas from 2.1.2 to 2.2.0 in /envs by @dependabot in #621
- Fix ROI Editor margin and plane number by @yoda-vid in #622
- Bump tzdata from 2023.3 to 2024.1 in /envs by @dependabot in #623
- Bump pygments from 2.16.1 to 2.17.2 in /envs by @dependabot in #624
- Bump importlib-metadata from 6.8.0 to 7.1.0 in /envs by @dependabot in #628
- Bump pillow from 10.2.0 to 10.3.0 in /envs by @dependabot in #629
- Workaround for Apple Silicon platforms by @yoda-vid in #634
Full Changelog: v.1.6b3...v1.6b4
MagellanMapper v1.6 beta 3
Highlights in v1.6 pre-releases
- Smoother, faster interactions with main plots, including atlas label name display, label editing, and pan and zoom navigation
- Available as binary wheel to install without requiring the source code
- Faster, lighter installation with fewer required dependency packages
- Extends support to Python 3.11 and updates default to Python 3.9
- Simpler entry point to launch MagellanMapper:
mm
- Supports ITK-Elastix for image registration
- Atlases can be downloaded directly through
BrainGlobe
(see the new "Atlases" panel) - Atlas regions can be searched (see "Atlases > Region")
- Atlas Editor planes can be reordered or turned off
- Detection channels can be selected independently of the loaded image to overlay prior detections or compare channels (see "Detect > Chl")
- Images can be viewed as RGB (see "ROI > Channels") or merged channels
- Jupyter Notebook tutorial for running common tasks
Major changes since beta 2
- Fixed running on Python >= 3.9 (#559)
- Fixed resetting label opacity when scrolling among planes (#552)
See the full release notes draft here for more details.
MagellanMapper v1.6 beta 2
Highlights in v1.6 pre-releases
- Smoother, faster interactions with main plots, including atlas label name display, label editing, and pan and zoom navigation
- Available as binary wheel to install without requiring the source code
- Faster, lighter installation with fewer required dependency packages
- Extends suppor to Python 3.11
- Simpler entry point to launch MagellanMapper:
mm
- Supports ITK-Elastix for image registration
- Atlases can be downloaded directly through
BrainGlobe
(see the new "Atlases" panel) - Atlas regions can be searched (see "Atlases > Region")
- Atlas Editor planes can be reordered or turned off
- Detection channels can be selected independently of the loaded image to overlay prior detections or compare channels (see "Detect > Chl")
- Images can be viewed as RGB (see "ROI > Channels") or merged channels
- Jupyter Notebook tutorial for running common tasks
Major changes since beta 1
- Python 3.10-3.11 are now supported (#379, #517)
- Supports image I/O and registration through ITK-Elastix (#495, #497, #500, #504)
- "Merge" option in the ROI panel to merge channels using additive blending (#492)
- Use core fonts in PDF/PS file exports to keep vector text (#486)
- Fixed parsing some metadata when importing files with Bio-Formats (#502)
See the full release notes draft here for more details.
MagellanMapper v1.6 beta 1
Highlights in v1.6 pre-releases
- Smoother, faster interactions with main plots, including atlas label name display, label editing, and pan and zoom navigation
- Available as binary wheel to install without requiring the source code
- Simpler entry point to launch MagellanMapper:
mm
- Atlases can be downloaded directly through
BrainGlobe
(see the new "Atlases" panel) - Atlas regions can be searched (see "Atlases > Region")
- Detection channels can be selected independently of the loaded image to overlay prior detections or compare channels (see "Detect > Chl")
- Images can be viewed as RGB (see "ROI > Channels")
- Jupyter Notebook tutorial for running common tasks
Major changes since alpha 3
- Mayavi/VTK are now optional, installed in the
3d
group (#455) - Basic spectral unmixing through channel subtraction (#458)
- Fixed redundant triggers when adjusting the displayed image (#474)
- Fixed conflict between shortcut to add blob and jumping to ROI plane (
ctrl+click
) by changing the jump shortcut toj+click
(#456) - Fixed groupwise registration for current atlas profiles, turned off default cropping (#444)
- More fixes to blob archives with custom columns (#449, #475)
- 2D plots, R stats, and server pipeline improvements (#445, #451, #457, #469, #470)
See the full release notes draft here for more details.
MagellanMapper v1.6 alpha 3
Highlights in v1.6 pre-releases
- Smoother, faster interactions with main plots, including atlas label name display, label editing, and pan and zoom navigation
- Available as binary wheel to install without requiring the source code
- Simpler entry point to launch MagellanMapper:
mm
- Atlases can be downloaded directly through
BrainGlobe
(see the new "Atlases" panel) - Atlas regions can be searched (see "Atlases > Region")
- Detection channels can be selected independently of the loaded image to overlay prior detections or compare channels (see "Detect > Chl")
- Images can be viewed as RGB (see "ROI > Channels")
- Jupyter Notebook tutorial for running common tasks
Major changes since alpha 2
- Workaround for Qt run issue (#431)
See the full release notes draft here for more details.
MagellanMapper v1.6 alpha 2
Highlights in v1.6 pre-releases
- Smoother, faster interactions with main plots, including atlas label name display, label editing, and pan and zoom navigation
- Available as binary wheel to install without requiring the source code
- Simpler entry point to launch MagellanMapper:
mm
- Atlases can be downloaded directly through
BrainGlobe
(see the new "Atlases" panel) - Atlas regions can be searched (see "Atlases > Region")
- Detection channels can be selected independently of the loaded image to overlay prior detections or compare channels (see "Detect > Chl")
- Images can be viewed as RGB (see "ROI > Channels")
- Jupyter Notebook tutorial for running common tasks
Major changes since alpha 1
- Simpler entry point to launch MagellanMapper:
mm
- Smoother, faster interactions with main plots, including atlas label name display, label editing, and pan and zoom navigation (#317)
- Image adjustment channels are radio buttons for easier selection (#212)
- Existing blob archives are backed up before saving (#216)
- Multiple multiplane image files can be selected directly for import instead of relying on file auto-detection (#201)
See the full release notes draft here for more details.
MagellanMapper v1.6 alpha 1
Highlights
- Available as binary wheel to install without requiring the source code
- Atlases can be downloaded directly through
BrainGlobe
(see the new "Atlases" panel) - Atlas regions can be searched (see "Atlases > Region")
- Detection channels can be selected independently of the loaded image to overlay prior detections or compare channels (see "Detect > Chl")
- Images can be viewed as RGB (see "ROI > Channels")
- Jupyter Notebook tutorial for running common tasks
See the full release notes draft here for more details.
MagellanMapper v1.5.0
Highlights
This release brings many enhancements aimed at creating a smoother user experience. Key changes include:
- We overhauled the profile panel to preview each profile and show the currently loaded settings
- Window sizes and positions are now saved between sessions
- Image brightness-related settings are saved while scrolling through image planes
- On Windows platforms, we now support all major atlas refinement tasks
- Atlas smoothing supports adaptive kernel sizes per region and improves stat output
- Newly generated atlases now collect labels metadata to make the atlases more portable
- Image import supports single-plane RAW images and provides more feedback
Changes
Show details
GUI
- Profile panel overhaul (#66)
- Preview profiles before adding them
- Skip the "Load" step; profiles are automaticaly loaded when added
- View the complete settings for all loaded profiles
- Clearer and more compact labels and button arrangement
- Settings panel for resetting preferences and finding version information
- Window size and position are saved as user preferences
- The default window size is smaller to fit into 720p displays
- The default focus is no longer the main image file path to avoid accidental file loading
- Registered image selectors are now more compact
- Fixed image intensity values and auto-adjustment to persist for each channel while scrolling and switching among channels (#76)
- Fixed to retain opacity settings for borders images while scrolling (#79)
CLI
See the table of CLI changes for a summary of all changes in v1.5
- Multiple processing tasks can be given in the same command; eg
--proc detect coloc_match
(#30) - Image preprocessing tasks have been integrated into
--proc
, no longer requiring a separate ROI profile; eg--proc preprocess=rotate
- The new
--prefix_out
flag allows customizing output paths when--prefix
is used to modify input paths (#73)
Atlas refinement
- Adaptive kernel sizes can be used for smoothing operations (#53)
- Metadata for labels images are saved when importing an atlas and registering the atlas to another image so that the original atlas no longer needs to be available (and
--labels
argument does not to be given) when loading the atlas or registered image (#65, #67) - Smoothing metrics are output during the
--register merge_atlas_segs
task (#51, #54) - The atlas profile settings
meas_edge_dists
andmeas_smoothing
turn off these metrics to save time during atlas generation, and the profilefewerstats
turns off both these settings (#31) - Multiprocessing is turned off for lateral extension for better performance
- Labels difference images, which map metrics for labels onto the labels themselves for data visualization, can now take specific metric files and columns from the included R package (#73)
- Labels referencs loaded from CSV files now support level, abbreviation, and parent ID columns (#61)
- Fixed multiprocessing tasks with SimpleElastix 2.0
- Fixed DSC metrics between the atlas and its new labels, and more DSC metrics are saved (#57)
- Fixed exporting labels reference files when a label ID is missing (#61)
Atlas registration
- Image masks can be set to focus the field for image registration. Use the new
--reg_suffixes fixed_mask=<suffix-or-abs-path> moving_mask=<suffix-path>
command-line sub-arguments to load these mask files. (#40) - Register multiple atlases at a time, applying the same transformation to each of them. Specify additional atlase after the first, with output paths specified as prefixes, eg:
./run.py <sample-path> <atlas1> <atlas2> --prefix <atlas1-output-path> <atlas2-output-path>
. (#69) - When registration fails, it will attempt to match more image parameters such as spacing and direction as fallbacks (#71)
Cell detection
- Previously saved blobs are no longer loaded prior to re-detection
- More flexibility when loading databases with blob truth sets
- Grid searches support output path modifiers
- Fixed blob segmentation and showing labels when none of either are present
- Fixed exporting ROIs
Volumetric image processing
I/O
- Improvements to loading registered images
- The main image is no longer loaded if a registered
atlas
image is given - Images can be specified as absolute paths using
--reg_suffixes
to load any image, including those registered to another image (#36) - Images loaded for edge detection can be configured using
--reg_suffixes
- Files with two extensions (eg
.nii.gz
) are supported - Files modified by
--prefix
can now also be found in the registered image dropdowns - More support for CSV format reference files
- The main image is no longer loaded if a registered
- Improvements to image import
- Single plane RAW images can be loaded when importing files from a directory, in addition to multiplane RAW files (#32)
- Skips single plane files that give errors (eg non-image files in the input directory) (#83)
- Provides import error feedback in the GUI (#83)
- The known parts of the import image shape are populated even if the full shape is not known
- The Bio-Formats library has been updated to support more file formats (from Bio-Formats 5.1.8 to 6.6.0 via Python-Bioformats 1.1.0 to 4.0.5, respectively) (#70)
- Fixed to disable the import directory button when metadata is insufficient
- Fixed to create parent directories when importing images (#44)
- Fixed to create default resolutions even when none are specified (#44)
- Improvements to exporting image stacks
- Fixed to update metadata files when loaded through the
--meta
flag (#35) - Fixed error when unable to load a profile
.yml
file
Server pipelines
- Continuous integration has been implemented through GitHub Actions to improve quality control (#55)
Python stats and plots
- Scatter plot updates
- Annotation columns can be names of index columns
- Colors can be specified
R stats and plots
Code base and docs
- Multiprocessing tasks are now more widely supported in Windows (
spawn
start mode), including the--register import_atlas
,make_edge_images
,merge_atlas_segs
,vol_stats
, andmake_density_images
tasks (#60, #68) - Type hints are now being integrated, replacing docstring types for better typing info and debugging (#46)
Dependency Updates
Python Dependency Changes
- Python-Bioformats has been upgraded to 4.0.5 and uses a custom package that uses the existing Javabridge rather than Python-Javabridge to avoid a higher NumPy version requirement
- Workaround for failure to install Mayavi because of a newer VTK, now pinned to 9.0.1
- Matplotlib >= 3.2 is now required
MagellanMapper v1.4.0
Highlights
This release brings many usability enhancements, foremost of which is our new standalone installers. Install and run MagellanMapper through point-and-click (no terminal required!) and open new files through your file browser.
We also added new options to the editors such as ROI centering/zooming and labels toggle, and we reorganized the tool panel for a cleaner, clearer look. Several tools are more responsive, such as Maximum Intensity Projections and Atlas Editor positioning.
Under the hood, we added blob co-localization across channels. Image volumes can be compared using different atlases. Imported images store metadata in a YAML file for readability as plain text files. Python support is extended to 3.6-3.8, and the R stats package supports a basic command-line interface and profiles.
Dependency and Command-Line Updates
- The
appdirs
package has been added to store user application files in standard operating system-dependent locations:- Windows:
C:\Users\<your-username>\AppData\Local\MagellanMapper
- macOS:
/Users/<your-username>Library/Application Support/MagellanMapper
- Linux:
/home/<your-username>/.local/share/MagellanMapper
- Windows:
- Existing environments need to be updated, which can be done using one of the setup scripts:
- Conda:
bin/setup_conda
or for Windows,bin/setup_conda.bat
- Venv:
bin/setup_venv.sh
or for Windows,bin\setup_venv.bat
- Conda:
- The database (
magmap.db
) is generated and stored in this user app folders listed above; any existingmagmap.db
in the project root folder is left in place and can be manually copied there if you would like to use it - Logs for debugging are now saved to
out.log
in these folders - Custom binary packages have been built for SimpleElastix and Javabridge to support Python 3.6-3.8 for MagellanMapper
- Command-line changes: please see this table
Changes since v1.4.0-beta.3
Show details
- After toggling the "Labels" box, all views update as soon as the Atlas Editor is entered - Labels reference files support alternate column names (`ID` or `Region` for the region number, `name` or `RegionName` for the name) - Command-line arguments are documented online - Fixed error when no `JAVA_HOME` environment variable is set - Fixed loading YAML files without any settingsComplete Changelog for v1.4.0
Show details
Installation
- Windows, macOS, and Linux standalone packages are now provided!
- MagellanMapper can now be installed without the command-line
- The Windows installer allows launching the application from the Start Menu
- The macOS app can be dragged to the Applications to access from Launchpad
- Environment setup scripts support package updates
- As we added a new dependency, we made it easier to update existing environments
- Re-running
bin\setup_conda.bat
on Windows updates asbin/setup_conda
has on Mac/Linux bin/venv.sh
can now also be re-run to update Venv environments
- Python version support has been expanded to 3.6-3.8 now that we have built custom dependencies for these Python versions
GUI
- Reorganized options to group by viewer
- More tooltips (hover mouse over labels)
- Option to treat the ROI offset as the center of the ROI
- Atlas Editor
- Zoom in to the ROI in the Atlas Editor
- Paintbrush only appears in Edit mode
- Annotating an image without labels will generate a new labels image file
- Option to move the editor planes when moving the ROI sliders (on by default)
- Option to turn off crosslines
- Atlas labels
- Option to turn off atlas labels
- Label selection options to include both sides and child labels
- 3D visualization
- Adjust 3D surface opacities to look inside structures
- Overlay blobs detected in full resolution images onto downsampled images
- Blobs can be selected to view an ROI around specific blobs
- 3D Atlas regions and ROIs can be added sequentially (keep the new "clear" option unchecked)
- Fixed shadow panes for multichannel images, isotropic visualization, and z-axis inversion
- Maximum intensity projections
- Support added to the Atlas Editor
- Automatically applied to both the ROI and Atlas Editor when toggled
- Color styles for blobs! Color by atlas labels, channel, or unique per blob (original style)
- Registered images selections are grouped into dropdowns for a cleaner look
- Refreshes viewers when the ROI changes in more cases
- Fixed error when looking up atlas label without a loaded reference file
- Fixed the size of the ROI outline after detecting blobs
CLI
- Unrecognized arguments are simply ignored rather than giving an error
- The new
--load
parameter replaces--proc load
as a more flexible way to specify data to load, including--load blobs
and--load blobs blob_matches
- Output of profiles settings is now pretty printed for readability
Atlas refinement
- Option to increase tapering during labels lateral extension by weighting label erosion with lateral distance, set by the
wt_lat
atlas profile setting - Set an alternative intensity image for edge detection using the registration suffixes atlas flag (
--reg_suffixes [atlas]
) - Added a
watershed_mask_filter
setting in theedge_aware_reannotation
atlas profile group to set the filter type and size for the watershed mask atlas_mirror
profile setting to toggle mirroring the intensity image across hemispheres during atlas curation- Fixed to exclude labels that were not eroded from undergoing watershed-based reannotation
- Fixed saving edited images loaded through the GUI (#11)
Atlas registration
- Customize the atlas images used during image registration by using the
--reg_suffixes
CLI parameter - Measure the distance from labels to specified landmarks before and after registration through the
--register labels_dist
task - The
carve_threshold
andholes_area
atlas profile settings are also applied to regular (non-groupwise) registration - The similarity metric used for registration is included in the summary CSV file
- Fixed smoothing metrics for non-existent labels
Cell detection
- Blob co-localization
- Detected blobs can now be co-localized two ways:
- Intensity-based: intensities above threshold at each blob's location in the remaining channels are considered co-localized signal
- Match-based: blobs from different channels are matched to find spatially overlapping blobs, similarly to automated blob verification against ground truth
- The co-localization method can be set in the GUI when detecting blobs for a given ROI, shown as overlaid channel numbers (intensity-based) or corresponding blob numbers (match-based)
- The
--proc detec_coloc
task performs intensity-based co-localization during whole image detections - The
--proc coloc_match
task performs match-based co-localization after detections were completed - Load blob matches with
--load blob_matches
- Detected blobs can now be co-localized two ways:
- Block processing settings can be set per channel rather than using the same settings for all channels; any block setting difference compared with other channels' profiles will trigger processing in separate blocks
- Accuracy metrics for each ROI are saved to CSV file
- Compare atlases translated to labels from different references and children
Volumetric image processing
- Volume comparisons: include raw pixel and volume counts
- Compare volumes registered to different atlases
- Translate atlas labels IDs in one image to the IDs used in another image
--atlas_labels translate_labels=<translation.csv>
, wheretranslation.csv
is a CSV file withFromLabel
andToLabel
columns--atlas_labels translate_children=1
causes children of the given labels to be translated to the ID as well- Multiple translation files can be given (separate paths by
,
) to translate IDs in each image file
- Option to compare volumes of only ROIs within a whole image using the
crop_to_first_image
option to compare matching volumes between two images by cropping the second image to the size of the first image
- Translate atlas labels IDs in one image to the IDs used in another image
- Option to specify the registered images used for volume metrics through
--reg_suffixes
- Option to specify channel(s) to include in heatmaps
- Blobs positions are scaled to the main image
I/O
- Open image files through file browsers (eg macOS Finder, Windows Explorer) (#18)
- Open files in key supported file formats (eg
.npy
,.mhd
,.nii.gz
) by double-clicking or using "Open with...", or drag-n-drop onto the application icon in macOS - If MagellanMapper already has a loaded image, another application instance will be opened with the new image
- Open files in key supported file formats (eg
- Open files on macOS through URIs:
open magmap:<path>
- Image file metadata now uses YAML format for human-readable files; NPZ files are still supported for backward-compatibility
- Logging
- Logging using the in-built Python
logging
facility is now supported, including output to log files - The
--verbose level=<n> log_path=<path>
flag specifies the log level from 1 (DEBUG
, most verbose) to 5 (CRITICAL
, least verbose) and log output path - Unhandled exceptions are now logged (saved to a temp file if caught before logging is set up) (#17)
- Logging using the in-built Python
- PDF export
- Use nearest neighbor interpolation for consistency with 2D image export to other formats
- Avoid merging layers by turning off image compositing
- Matplotlib style is set more consistently to "default"
- Intensity-based co-localizations are stored in the blobs archive
- Database
...