exaexa / panelbuilder

Panel optimization and unmixing tool for multicolor and spectral cytometry
Apache License 2.0
5 stars 1 forks source link

Modification of the spectral detectors to fit with a Zeiss LSM 980 #2

Open matfallet opened 4 weeks ago

matfallet commented 4 weeks ago

Dear developper, Your application is great for cytometry, I would like to adapt it for spectral microscopy. I was wondering if the program could be easily modify to fit with a spectral micrsocope like the one we have (Zeiss LSM 980 NIR). In other words, can I change the X wavelength to fit from 400 to 690nm by step of 8.9nm and the we have three dedicated detectors further. Thanks for your help.

exaexa commented 3 weeks ago

Hello @matfallet !

spectral microscopy should work pretty well, depending on what data can you get from the microscope (or how you can pre-process the data).

Ideally, you could have cell segmentation software that converts the picture to something like a .fcs file with the usual total channel excitation measured per cell (or per other feature identified or so), which you can feed directly to panelbuilder, and do the spectra acquisition and unmixing as usual.

If you want to do this directly on the imaging data, stuff is going to get a lil' bit more complex. One possibility is to convert the images to FCS where each pixel stands for a "virtual cell", run panelbuilder on that, and then probably convert this back to the image form. If you have any spec/example of the imaging data for testing, I can probably supply a quick script for doing that. If the case is more complicated, you'd probably need to modify a lot of panelbuilder, but to be honest I've got no idea about complexity (or simplicity) of that until I see the data.

Re your question:

In other words, can I change the X wavelength to fit from 400 to 690nm by step of 8.9nm and the we have three dedicated detectors further.

yes you can literally generate (or write) a JSON with saved spectra that has this exact description of the channels and the dyes, load it up into PB, and unmix as usual (given the data is compatible with FCS). OTOH, you probably do not need to actually modify panelbuilder for this at all -- the method is completely agnostic to actual wavelengths, it processes them only "implicitly" as a side result of processing controls/singlestains.

Hope this helps, please feel free to elaborate on the exact usecase and esp. data formats involved :)

exaexa commented 3 weeks ago

cc @AbhivKoladiya any ideas here welcome :)

matfallet commented 3 weeks ago

My previous idea was to use your panel to see fluochromes depending on my microscope configuration but if I just need to export a JSON file, I should be able to do it. I just need to export my csv file into this format, do you have any example ? Concerning the other functionnality yes it could be great to test the unmixing process as well by converting my image matrix into a vector that I have previously done using matlab function so I could do alos using python or R ?