Skip to content

Releases: mesoSPIM/mesoSPIM-control

December 2024 [v1.10.2]

12 Dec 13:12
Compare
Choose a tag to compare

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. Value 1 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 of 5x 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 like ao21: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 the laser-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

03 Jul 11:22
Compare
Choose a tag to compare

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.
  • 💎 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.

all-windows-v1 9 0

February 2024

22 Feb 10:30
Compare
Choose a tag to compare

Integration of all mesoSPIM versions: Benchtop, V6 "Revolver", V4 and 5. Improved stability and GUI.

Release January 2023 [1.8.2]

29 Jan 13:41
Compare
Choose a tag to compare

Release with full Benchtop mesoSPIM support and the new official logo.
mesoSPIM-logo

An open-source acquisition software for light-sheet microscopy written in Python and Qt.

16 Feb 16:42
dcc68ec
Compare
Choose a tag to compare

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

04 Nov 22:05
cf9086d
Compare
Choose a tag to compare

💎 💎 💎 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.

⚠️ Recommended Python upgrade to 3.7 because some libraries have limited support for 3.6 (e.g. tifffile).

⚠️ Default file format for data saving has changed to .h5 for streamlined import into BigStitcher.

Release July 2021

02 Jul 12:42
Compare
Choose a tag to compare

A new stable version, tested on four different mesoSPIM V5 systems. Multiple bugs fixed and new features added.

⚠️ Config files have some new parameters, see demo config file. The software is backward compatible with old config files, but upgrading your config file is highly recommended.

Full list of changes.

Version 0.1.3.1

13 Mar 09:39
Compare
Choose a tag to compare

Important Changes

  • ⚠️ Depending on your microscope configuration, this release breaks backward compatibility with previous configuration files. If necessary, update your configuration file using demo_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 (in mesoSPIM-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 the demo_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 requires tifffile 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 the Acquisition Manager, please update the average_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. The Mark 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 the Acquisition 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

19 Aug 15:44
Compare
Choose a tag to compare
Version 0.1.2 Pre-release
Pre-release

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