Skip to content

Commit

Permalink
Merge branch 'development'
Browse files Browse the repository at this point in the history
  • Loading branch information
ffvoigt committed Mar 13, 2020
2 parents fa0a65a + 11051dd commit 2b06571
Show file tree
Hide file tree
Showing 71 changed files with 6,067 additions and 6,417 deletions.
49 changes: 35 additions & 14 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ __pycache__
/**/.ipynb_checkpoints
**/*.ipynb_checkpoints/
mesoSPIM/legacy/*
tmp/*
/tmp/*

*.log
mesoSPIM/src/devices/zoom/dynamixel/*
mesoSPIM/PI_GCS2_DLL_x64.dll
Expand All @@ -23,6 +22,12 @@ mesoSPIM/src/devices/stages/galil/gclib/__init__\.py

mesoSPIM/config/etl_parameters/ETL-parameters - Fabian - DBE - H45\.csv

mesoSPIM/config/*.py
!mesoSPIM/config/demo_config.py

mesoSPIM/config/etl_parameters/*.*
!mesoSPIM/config/etl_parameters/ETL-parameters.csv

mesoSPIM/src/devices/stages/galil/gclib/gclib\.py

mesoSPIM/src/devices/stages/galil/gclib\.py
Expand All @@ -34,15 +39,31 @@ mesoSPIM/config/etl_parameters/ETL-parameters - Fabian - DBE - H45\.csv

mesoSPIM/src/mesoSPIM_DemoSerial\.py

mesoSPIM/src/devices/stages/galil/gclib/gclib\.py
mesoSPIM/src/devices/stages/galil/gclib\.py
mesoSPIM/src/devices/stages/galil/gclib/__init__\.py
mesoSPIM/config/etl_parameters/ETL-parameters - Fabian - DBE - H45\.csv
*.log
mesoSPIM/src/devices/zoom/dynamixel\.zip


mesoSPIM/src/devices/stages/galil/gclib/gclib\.py



mesoSPIM/src/devices/stages/galil/gclib\.py



mesoSPIM/src/devices/stages/galil/gclib/__init__\.py



mesoSPIM/config/etl_parameters/ETL-parameters - Fabian - DBE - H45\.csv



*.log



mesoSPIM/src/devices/zoom/dynamixel\.zip

mesoSPIM/acq/

mesoSPIM/tmp/
!mesoSPIM/tmp/readme.txt
38 changes: 38 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## Version [0.1.3] - March 13, 2020
* :warning: **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.**
* :warning: **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.
* :warning: **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.**
* :gem: **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.
* :gem: **New: Multicolor tiling wizard**: The Tiling wizard can now support up to 3 color channels with different ETL parameters and focus tracking settings.
* :gem: **New: Full demo mode - addresses #16**: `mesoSPIM-control` can now be run without any microscope hardware by using the `demo_config.py` configuration file.
* :gem: **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.
* :gem: **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).
* :gem: **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.
* :gem: **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. :warning: When previewing an acquistion requires a rotation, z movements still occur for safety reasons.
* :gem: **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.
* :sparkles: **Improvement:** `Acquisition Manager`: Naming of buttons has been improved, in addition, **tooltips** have been added to improve usability.
* :sparkles: **Improvement:** Removed unnecessary microscope and ETL configuration files cluttering the repository. Changed `.gitignore` correspondingly - future changes to configuration files. This addresses issue #16.
* :sparkles: **Improvement:** The software now provides more verbose warnings when acquisitions cannot be started due to missing folders, duplicated filenames and already existing files.
* :sparkles: **Improvement:** Better warnings if no row is selected while clicking Mark buttons.
* :sparkles: **New:** Added a `CHANGELOG.md` file
* :bug: **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.
* :bug: **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.
* :bug: **Bugfix #26:** Fixed: First row is selected by mark buttons by default if only a single row exists in the Acquisition Manager Table
* :bug: **Bugfix #27:** Fixed: Entering text into boxes is a bit buggy
* :bug: **Bugfix #30:** Fixed: Zooming drop down menu often fails to update after a zoom
* :bug: **Bugfix #31:** Fixed: `demo_config.py` now contains subsampling settings
* :bug: **Bugfix #34:** Fixed: Last frame in a stack is blank due to an off-by-one error
* :bug: **Bugfix #35:** Fixed: Software crashes when one folder (to save data in) in the acquisition list does not exist

---

## Version [0.1.2] - August 19th, 2019
* **New:** Logging is now supported. Logfiles go in the `log` folder.
* **New:** 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.
* **Fix:** Reduced the output to the command line
* **Fix:** 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.
* **Fix:** Fixed a variety of multithreading bugs.
* **Fix:** Galvo amplitude and frequency in the startup part of the configuration file are now used to set startup parameters properly
19 changes: 13 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
# mesoSPIM-control
Code and documentation for the mesoSPIM light-sheet microscope software.
The documentation of the microscope hardware information can be found [here](https://github.com/mesoSPIM/mesoSPIM-hardware-documentation).
Image acquisition software for [mesoSPIM](http://mesospim.org/) light-sheet microscopes. A mesoSPIM (mesoscale selective plane illumination microscope) is optimized for fast imaging of large (many cm³) cleared tissue samples at near-isotropic resolution. Currently, more than 10 mesoSPIM setups are operational [around the world](http://mesospim.org/setups/).

Parts lists, drawings, and instructions for building a mesoSPIM can be found in the [mesoSPIM wiki](https://github.com/mesoSPIM/mesoSPIM-hardware-documentation).

## Overview
The Swiss mesoSPIM is a versatile light-sheet microscope for imaging
The mesoSPIM is a versatile light-sheet microscope for imaging
cleared tissue samples. It is compatible with all major clearing approaches - including CLARITY - and optimized for quickly creating large-field-of-view overview datasets of whole mouse brains.

## Installation

### :warning: Warning
If you are updating `mesoSPIM-control` from a previous version: Please have a close look at the [Changelog](CHANGELOG.md) to avoid overwriting your configuration files.

### Prerequisites
* Windows 7 or Windows 10
* Python >3.6

#### Device drivers
* [Hamamatsu DCAM API](https://dcam-api.com/) when using Hamamatsu Orca Flash 4.0 V2 or V3 sCMOS cameras. To test camera functionality, [HCImage](https://dcam-api.com/hamamatsu-software/) can be used.
* [Software for Physik Instrumente stages](https://www.physikinstrumente.com/en/products/motion-control-software/) if a PI stage is used. To test the stages, PI MicroMove can be used.
* [PVCAM and PVCAM-SDK](https://www.photometrics.com/support/software/) when using Photometrics cameras (under development). In addition, the `PyVCAM` Python package is necessary ([Link](https://github.com/Photometrics/PyVCAM)).
* [Software for Physik Instrumente stages](https://www.physikinstrumente.com/en/products/motion-control-software/) if a PI stage is used. To test the stages, PI MicroMove can be used.
* [Software for Steinmeyer Mechatronics / Feinmess stages using Galil drivers](http://www.galilmc.com/downloads/api) if such a stage is used. To test the stages, GalilTools can be used.
* [Robotis DynamixelSDK](https://github.com/ROBOTIS-GIT/DynamixelSDK/releases) for Dynamixel Zoom servos. Make sure you download version 3.5.4 of the SDK.

Expand All @@ -28,15 +33,17 @@ mesoSPIM-control is usually running with [Anaconda](https://www.anaconda.com/dow
* scipy
* ctypes
* importlib
* PyQt5
* PyQt5 (if there are problems with PyQt5 such as `ModuleNotFoundError: No module named 'PyQt5.QtWinExtras` after starting `mesoSPIM-control`, try reinstalling PyQt5 by: `python -m pip install --user -I PyQt5` and `python -m pip install --user -I PyQt5-sip`)

In addition (for Anaconda), the following packages need to be installed:
* nidaqmx (`python -m pip install nidaqmx`)
* indexed (`python -m pip install indexed.py`)
* serial (`python -m pip install pyserial`)
* pyqtgraph (`python -m pip install pyqtgraph`)
* pywinusb (`python -m pip install pywinusb`)
* PIPython (part of the Physik Instrumente software collection. Unzip it, `cd` to the directory with the Anaconda terminal as an admin user, then install with `python setup.py install`. Test install with test installation with `import pipython`)
* PIPython (part of the Physik Instrumente software collection. Unzip it, `cd` to the directory with the Anaconda terminal as an admin user, then install with `python setup.py install`. Test install with test installation with `import pipython`). You can also download PIPython [here](https://github.com/royerlab/pipython)
* tifffile (`python -m pip install tifffile`)
* ([PyVCAM when using Photometrics cameras](https://github.com/Photometrics/PyVCAM)

#### Preparing python bindings for device drivers
* For PI stages, copy `C:\ProgramData\PI\GCSTranslator\PI_GCS2_DLL_x64.dll` in the main mesoSPIM folder: `PI_GCS2_DLL_x64.dll`
Expand Down
Binary file removed mesoSPIM/acquisitions/H45_first_true_test_acq
Binary file not shown.
Binary file removed mesoSPIM/acquisitions/H45_second_true_test_acq
Binary file not shown.
Binary file removed mesoSPIM/acquisitions/H45_test_acq_PI_stages.acq
Binary file not shown.
Binary file removed mesoSPIM/acquisitions/test1_DemoH45.acq
Binary file not shown.
Binary file removed mesoSPIM/acquisitions/test_acq1.acq
Binary file not shown.
Binary file removed mesoSPIM/acquisitions/test_single_stack_save.acq
Binary file not shown.
223 changes: 0 additions & 223 deletions mesoSPIM/config/config_EMU_demo.py

This file was deleted.

Loading

0 comments on commit 2b06571

Please sign in to comment.