micro-manager / LightSheetManager

BSD 3-Clause "New" or "Revised" License
0 stars 3 forks source link

Supporting SCAPE systems #37

Open henrypinkard opened 1 year ago

henrypinkard commented 1 year ago

Since the UI/Acquisition engine/etc are now working with diSPIM, what is needed for SCAPE should now be mostly in place. But first we will need to duplicate/refactor the non-diSPIM-specific stuff.

SCAPE will need its own function in the LSM acquisition code. Right now the diSPIM one is almost entirely full of stuff that is shared between the two modalities:

https://github.com/micro-manager/LightSheetManager/blob/07938f1504353699c94e689d396048eb5267f579/src/main/java/org/micromanager/lightsheetmanager/model/AcquisitionEngine.java#L369

In order to refactor it, the AcquisitionSettings for SCAPE will need to be filled out:

It seems that the analogous class for diSPIM is mostly full of settings that are common to the two modalities. So pulling out the common settings would be a first step. What do you think @bls337?

@fadero How do you currently send instructions to hardware to kick off a scan?

nicost commented 1 year ago

We currently use the Utility DAZ device to make the DAC controlling the galvo mirror appear as a Z drive that can be sequenced. Tanner sets up a ZStack in the MDA window (with multiple channels, and/or time points if so desired), and that outputs the desired data. Light sheet plugin not really needed.

bls337 commented 1 year ago

I will figure out what settings are necessary for SCAPE.

There is an empty runAcquisitionSCAPE method to put the acquisition code into, the requestRun method switches based on the microscope geometry type.

bls337 commented 1 year ago

@henrypinkard

Right now LSMAcquisitionEvents is hard-coded to use DefaultAcquisitionSettingsDISPIM objects, we could make it work with SCAPE settings by using the interface and downcasting the type inside the method.

Should we use LSMAcquisitionEvents to generate the acquisition events for all microscope geometry types?

It seems like most of the acquisition settings are generic enough... do you anticipate that any microscope geometry type will have a vastly different setup in LSMAcquisitionEvents?

henrypinkard commented 1 year ago

Yes, I think LSMAcquisitionEvents can be reused for all. The only difference I see is the number of cameras, but this can be set through the function arguments so I don't think anything would need to change.

Right now LSMAcquisitionEvents is hard-coded to use DefaultAcquisitionSettingsDISPIM objects, we could make it work with SCAPE settings by using the interface and downcasting the type inside the method.

I think that makes sense

Though maybe this is less of a priority than I thought If Nico doesn't need to use it (depending on Brian's needs)