Skip to content

Releases: sanderslab/magellanmapper

MagellanMapper v1.6 beta 4

13 Apr 18:19
Compare
Choose a tag to compare

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
    • Fixed synchronization between images and adjustment controls (#576)
    • Fixed intensity sliders to cover the full range (#572, #576, #606, #613)
    • Fixed intensity range of "filtered" ROI and overview images (#613)

See the full release notes draft here for more details.

All Changes

Show details

Full Changelog: v.1.6b3...v1.6b4

MagellanMapper v1.6 beta 3

25 Sep 18:12
Compare
Choose a tag to compare

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

26 Jun 11:15
Compare
Choose a tag to compare

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

06 Apr 02:47
Compare
Choose a tag to compare

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 to j+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

03 Feb 19:33
Compare
Choose a tag to compare

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

10 Jan 03:23
Compare
Choose a tag to compare
Pre-release

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

31 Aug 04:25
Compare
Choose a tag to compare

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

25 Nov 10:36
Compare
Choose a tag to compare

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 and meas_smoothing turn off these metrics to save time during atlas generation, and the profile fewerstats 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
  • 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
    • Images can be exported to multiple separate figures (#68)
    • Sub-plots are labeled
    • Image rotation arguments are applied (#50)
    • Plane index is only added when exporting multiple planes
  • 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, and make_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

31 May 09:07
Compare
Choose a tag to compare

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
  • 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
  • The database (magmap.db) is generated and stored in this user app folders listed above; any existing magmap.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 settings

Complete 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 as bin/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 the edge_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 and holes_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:
      1. Intensity-based: intensities above threshold at each blob's location in the remaining channels are considered co-localized signal
      2. 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
  • 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>, where translation.csv is a CSV file with FromLabel and ToLabel 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
  • 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 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)
  • 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
    ...
Read more

MagellanMapper v1.4 beta 3

03 May 06:30
Compare
Choose a tag to compare
Pre-release

We continue to fix many issues related to the new installed packages as we near our first official release of them!

  • Launch the app and load files through the file browser in Windows and macOS
  • More error logging
  • Small size reduction
  • macOS package is now notarized
  • Fixed saving blobs in the GUI (#10)
  • Fixed saving edited labels image in the GUI (#11)
  • Fixed error when selecting some directories for import (#21)
  • Fixed error when adjusting the channel in the ROI Editor for overlaid images at the top or bottom of the image stack (#22)
  • Fixed finding the Java runtime environment when running the Mac .app bundle from the command-line
  • Fixed error on Windows with multiple app instances or multiprocessing
  • Fixed verbose argument when given alone (ie -v)
  • Fixed adding Windows installation to the program uninstall page

These packages include all of the additional updates planned for our forthcoming v1.4 release. Please see the release notes for details on these changes. One major change is the addition of logging to file, especially necessary now that MagellanMapper from installed packages is typically launched without a console. Logs are output to out.log located in:

  • Windows: C:\Users\<your-username>\AppData\Local\MagellanMapper
  • macOS: /Users/<your-username>Library/Application Support/MagellanMapper
  • Linux: /home/<your-username>/.local/share/MagellanMapper

Any and all feedback is welcome!