Releases: mesoSPIM/mesoSPIM-control
December 2024 [v1.10.2]
Performance 🚀
- migration to Python 3.12 for better performance and compatibility with the latest libraries.
- faster loading and response time of the GUI
- subsampling of the camera image for less frequent rendering in the GUI (less CPU load) during acquisition, controlled by
'camera_display_temporal_subsampling': 2,
parameter in the config file. Value1
means no subsampling (show every image during acquisition). - change recommended package manager to
mamba
to avoid Anaconda license issues. - change the default timer for stage position update from 50 ms to 100 ms, to reduce communication and logging overhead. ASI stages updated every 200 ms, PI stages every 100 ms.
- zoom dictionary can include multi-word names like
5x Mitutoyo
instead of5x
for better UI and meta-infomation. - spinboxes are limited in scroll speed to allow hardware catch up with UI in the interactive mode
- #82: uploading UCL-Bechtop config file
config/examples/config_benchtop_UCL_5laser.py
by @TchLenn and parsing of double-digit strings likeao21:22
in config file. - remove
Log
tab from the GUI, as it was not used by the users and was causing unnecessary overhead, esp. in DEBUG mode.
User Interface 🍭
- ETL config files (.csv) are automatically checked and updated with the
laser
-zoom
combination selected in GUI, to avoid errors in the acquisition. User can even start with an empty ETL config file, it will be auto-filled with thelaser
-zoom
combinations on the go. - more tooltips added to the GUI elements for better user experience.
🔧 system changes
- pip depenencies are frozen for staibilty
mesoSPIM_State
is only nominally a singleton, but actually inherited by classes from their parent class to ensure unique state and thread safety.- no signal from
mesoSPIM_State
every time the state is updated. The GUI is updated from state by a separate signal/slot from member classes, on demand. - bugfix: serial communication with ASI stages is now thread-safe, with no conflicts between GUI (Main) and Core threads.
- bugfix: parsing config file with either
'laser_task_line' : 'PXI6733/ao0:3'
or'/PXI6733/ao0:3'
notation (Alan Watson).
Release July 2024
Release July 2024 [1.9.0]
User Interface 🍭
- 💎 "Auto L/R illumination" button in the Acquisition manager to select tile illumination based on its x-position.
- 💎 A long awaited feature: Tile Overview window (View/Open Tile Overview), showing the entire acquisition area with tile positions, their overlap, and current FOV position relative to them.
- Some setups need to flip x- and/or y-stage polarity for correct tile display: use
'flip_XYZFT_button_polarity': (True, False, False, False, False),
in the config file.
- Some setups need to flip x- and/or y-stage polarity for correct tile display: use
- 💎 Center Button added in the Main Window GUI, for bringing the sample holder in the X- and Z- center relative to the light-sheet and detection objective.
- during acqusition, the currently acquiring row is highlighted in Acquisition Manager and in Tile Overview windows.
This has to be set up in the config file with'x_center_position'
and'z_center_position'
parameters for stage motion. - Buttons for movement in horizontal plane got shorter, for more intuitive navigation.
- Current FPS shown in the progress bar.
- Webcam window always opens at startup, empty if no camera is present in config file:
'usb_webcam_ID': 0, # open USB web-camera (if available): None, 0 (first cam), 1 (second cam), ...
- Tooltips were added to the navigation buttons.
Bugfixes 🐛
- occasional glitch with ASI stages caused by updating stage positions between acquisitions, with serial communication going in two separate threads (mainWindow vs Core).
- check motion limits for all tiles before starting the acquisition list, in absolute or relative coodinates (zeroed axes or not).
- estimated remaining acquisition time is now calculated correctly, based on the current frame rate.
- sample centering and objectiv exchange positions work also when in zeroed-stage regime (local coordinates, user-defined). No need to inactivate
Zero F-stage
button for safe revolver operation.
February 2024
Integration of all mesoSPIM versions: Benchtop, V6 "Revolver", V4 and 5. Improved stability and GUI.
Release January 2023 [1.8.2]
An open-source acquisition software for light-sheet microscopy written in Python and Qt.
F. Voigt, N. Vladimirov, C. Schulze, R. Campbell, F. Helmchen. MesoSPIM control: An open-source acquisition software for light-sheet microscopy written in Python and Qt.
November 2021
💎 💎 💎 Autofocus has been added and works beautifully, outperforming expert human in focusing accuracy by 10x. Highly recommended!
💎 💎 Auto-optimization of ETL parameters is added, and works well most of the time, depending on samples.
💎 💎 Saving datasets as ImageJ TIFF files, including big ones (Fiji TIFF format that allows > 4 GB size). Voxel dimension saved in TIFF metadata.
💎 Button Freeze galvos
is added to ETL tab for quick adjustment of ETL parameters outside of sample, see video tutorial.
✨ File Name Wizard
auto-starts after Tiling Wizard
.
✨ Windows are auto-arranged at startup, no more window dragging needed.
✨ Mark All
button is added to the Acquisition Manager
✨ Laser intensity can be edited directly via spinbox, alternative to slider. In Acquisition manager, slider is replaced by a spinbox for convenience.
✨ TIFF file name pattern for multi-tile/channel datasets is fully compatible with BigStitcher auto-loader, no renaming is needed.
🐛 fix: Going back to previously configured channel in the Tiling Manager
appended a new channel to the acquisition list, rather than amending it.
🐛 fix: Files must always have extension (currently one of .tiff
, .tif
, .raw
, .h5
). Files without extension return an error.
🐛 fix: Image processing option generates MAX projections as TIFF files when output file format is either .raw
or .tiff
, #60.
tifffile
).
.h5
for streamlined import into BigStitcher.
Release July 2021
A new stable version, tested on four different mesoSPIM V5 systems. Multiple bugs fixed and new features added.
Full list of changes.
Version 0.1.3.1
Important Changes
⚠️ Depending on your microscope configuration, this release breaks backward compatibility with previous configuration files. If necessary, update your configuration file usingdemo_config.py
as an example.⚠️ There are new startup parameters in the config file - make sure to update your config files accordingly. For example,average_frame_rate
has been added.⚠️ This release removes unnecessary configuration files from the public repository - make sure to back up your mesoSPIM & ETL configuration files beforehand. In addition, old example acquisition tables (inmesoSPIM-control\mesoSPIM\acquisitions\
) are removed as well.
New Features
- 💎 New: Support for more cameras: Photometrics cameras are now supported if
PyVCAM
and the PVCAM-SDK are installed. Only the Iris 15 has been tested so far. In addition, the Hamamatsu Orca Fusion is now supported. - 💎 New: Multicolor tiling wizard: The Tiling wizard can now support up to 3 color channels with different ETL parameters and focus tracking settings.
- 💎 New: Full demo mode - addresses #16:
mesoSPIM-control
can now be run without any microscope hardware by using thedemo_config.py
configuration file. - 💎 New: Snap function -- Single pictures can now be taken by clicking the snap button. The filename is autogenerated from the current time. Files are saved as
.tif
which requirestifffile
as an additional library. - 💎 New: Acquisition time prediction --
mesoSPIM-control
now measures the average framerate every 100 frames to predict the acquisition time. To have a correct initial estimate
in theAcquisition Manager
, please update theaverage_frame_rate
with the measured values
from your microscope (are now logged in the metadata files after an acquisition). - 💎 New: Focus tracking -- Different start and end focus positions can now be specified in the Acquisition Manager. When moving the sample to acquire the stack, the microscope changes focus according to a linear interpolation between these values. At z_start, the microscope moves the detection path
to f_start and at z_end, the detection path focus is at z_end. This allows imaging a liquid-filled sample cuvette without an immersion cuvette. TheMark current focus
button changes both values at once. - 💎 New: Improved acquisition previews -- An additional checkbox allows to switch off Z axis movements when previewing acquisitions. This way, the field-of-view does not move outside of the sample which is especially helpful when updating ETL value for individual tiles/stacks in large acquisition tables.
⚠️ When previewing an acquistion requires a rotation, z movements still occur for safety reasons. - 💎 New: Image Processing Wizard:
mesoSPIM-control
now has an Image Processing Wizard (accessible via a button in theAcquisition Manager
). Currently, this allows maximum projections to be generated automatically after acquisitions.
Improvements
- ✨ Improvement:
Acquisition Manager
: Naming of buttons has been improved, in addition, tooltips have been added to improve usability. - ✨ Improvement: Removed unnecessary microscope and ETL configuration files cluttering the repository. Changed
.gitignore
correspondingly - future changes to configuration files. This addresses issue #16. - ✨ Improvement: The software now provides more verbose warnings when acquisitions cannot be started due to missing folders, duplicated filenames and already existing files.
- ✨ Improvement: Better warnings if no row is selected while clicking Mark buttons.
- ✨ New: Added a
CHANGELOG.md
file
Bugfixes
- 🐛 Bugfix: Manually entering a value in a field in the Acquisition Manager table would change values in other rows as well if the row had been copied before.
- 🐛 Bugfix: Mark buttons and dropdown menus in the Acquisition Manager table slowed down the GUI when a lot of rows (>25) were present. As a fix, only the selected row shows the menu.
- 🐛 Bugfix #26: Fixed: First row is selected by mark buttons by default if only a single row exists in the Acquisition Manager Table
- 🐛 Bugfix #27: Fixed: Entering text into boxes is a bit buggy
- 🐛 Bugfix #30: Fixed: Zooming drop down menu often fails to update after a zoom
- 🐛 Bugfix #31: Fixed:
demo_config.py
now contains subsampling settings - 🐛 Bugfix #34: Fixed: Last frame in a stack is blank due to an off-by-one error
- 🐛 Bugfix #35: Fixed: Software crashes when one folder (to save data in) in the acquisition list does not exist
Version 0.1.2
New features
- Logging is now supported.
- Reduced the output to the command line
- Improved support for a specific mesoSPIM configuration using sample & focusing stages by Steinmayer Mechantronik and in combination with PI stages for sample rotation and z-movement.
Bugfixes:
- To decrease laggyness of the GUI in live mode and during acquisitions, display subsampling is now available. This way, less image data has to be rendered by the GUI.
- Fixed a lot of multithreading bugs.
- Galvo amplitude and frequency in the startup part of the configuration file are now used to set startup parameters properly