Point-scanning improvements #37
jonatanalvelid
started this conversation in
Ideas
Replies: 1 comment
-
I created a project for this discussion (https://github.com/kasasxav/ImSwitch/projects/1) and some issues regarding some of the checkpoints above. We will keep updating it as we look further in how to implement the changes proposed. I will check the points that we have talk about and included in the project, when they are done they will show in the project column "DONE", I think this is useful to know what items we have discussed. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi,
I wrote down a list of suggestions of functionality to be added in order to make ImSwitch more useful for point-scanning applications, mostly borrowing ideas from experience with other point-scanning recording software such as Imspector and Leica's LAS X. It contains both, according to me, crucial functionality to be able to use it for everything from aligning to data recording, as well as functionality that will probably help users already using other recording software as of now to be more familiar with it. Of course more elegant solutions that solve the underlying concerns are more than welcome. :)
Add scanning curve generation for Z-piezo-scanning for point-scanning. Step-like changing, or prepare a whole step function for the duration of the measurement?
Generalize scanning curve generation to allow for >2-axis scanning in arbitrary order. X/Y axis and Z axis need different type of scanning curves. In a 3-axis scanning: repeat the same smaller scanning curve of the first 2 axes, with just a step between repetitions on the third axis? To not have to generate very long scanning curves for big volume-scans.
Add functionality to set the position of an axis not included in the scanning as the center-value provided. Assuming you want to take an XY-scan at Z-position z um for example, without moving it with the positioner widget. Call the NidaqManager function setAnalog to set the position previous to the scan.
Add functionality to adjust scan parameters while repeat scan is active. Changes should be applied in the next repetition, i.e. scanning curves etc has to be recalculated during the current scan running. Critical for tasks like aligning a point-scanning system, where you quickly need to move between different X/Y/Z-planes.
Add possibility to have multidimensional datasets in the imagewidget. It would be useful if scans with >2 dims would be recorded in the same array and viewed directly as a >2 dim dataset.
Add functionality to save >2 dim datasets in the same hdf5-file, as >2 dim arrays.
Add functionality for "mock" axes. Works like scanning axes, but does not move any analog axes. A general way to repeat scanning steps, for example with different laser settings. Useful for recording for example two images in a line-by-line fashion, either for multicolor imaging or multimodality imaging. Each axis having its own dimension in the multidimensional dataset.
Add possibility to change active detectors in the measurement. All detectors do not have to record always – would be able to be able to choose which point detectors to use for specific scans. Also means images will not be overwritten if you are for example acquiring first an image in one channel, and then the same in a second channel. Also possiblity to change between scanning steps which detectors are active, and thus having the possibility to build up multiple images during a single scan.
Add functionality to change above which scan axis changes in the TTLs should happen. Right now the numbers in the TTLs start/end correspond to lines (above 2nd axis) in the point-scanning. Possibility to change to be read as frames, etc. (any scan axis including mock axes) would be helpful.
Possiblity to toggle lasers during scans, for lasers that are not included in the scanning (i.e. TTLs set to always ON or always OFF). I.e. lasers which should not be switched during scanning should not be included in the TTL scanning curves, and instead can be modified with the setDigitalValue function manually. Useful for alignment purposes mainly, to be able to quickly toggle lasers while repetitively scanning a ROI.
Add functionality to repeat scanning above a certain axis and add up/average signal, for a certain number of repetitions. For example: repeat every line 5 times with shorter dwell time during the scan and add up the signal in the resulting array.
Add possibility to browse recently scanned images, that could be saved as arrays in the RAM in the meanwhile and not directly to hdf5-files. Maybe each scan gets added to a list of scanned images that can be viewed in the image widget, which you can go through and choose which to view? This is how it is done in commercial software like for example Leica LAS X.
Add functionality to save multiple scans in the same hdf5-file.
Find a solution to napari showing overlapping channels with the same visual pixel size, leading to issues when showing a large WF image of ~1500 x 1500 pixels and a small scanned image of ~100 x 100 pixels. Maybe an easy way to toggle/remove/add channels in napari from the different detectors. Rarely interested in recording and viewing all detectors at the same time, especially not WF camera and point detectors for example. Removing a layer in napari now means that you cannot get it back without restarting ImSwitch.
Let me know what you think, if some things might already be implemented, or if you have ideas of how to implement some of the things already. And I will update the list as we go along and implement the functions and/or find solutions to the suggestions. :)
Beta Was this translation helpful? Give feedback.
All reactions