Skip to content

Mantis v2 #211

@ieivanov

Description

@ieivanov

As we build out the second iteration of the mantis light path we will no longer need synchronized acquisition from two arms of the microscope - label-free and fluorescence data will come from the same arm of the microscope, which will eliminate the need for complex registration and stabilization at the expense of slightly lower overall acquisition rates.

We have also worked to migrate the acquisition engine to pymmcore-plus (in #170). We now have an opportunity to simplify the original acquisition engine (much of the original complexity revolved around the need to manage two separate acquisitions), and to transition it to a native pymmcore-plus based acquisition engine class, which will offer more convenient interface for smart microscopy hooks, and will be easier to port between microscopes (e.g. mantis and iSIM).

Here are features of the original acquisition engine we'd like to preserve, in rough order of importance:

  • acquisition robustness - if imaging a given position / timepoint doesn't work out, carry on with the next one instead of failing; this includes being robust to, for example, autofocus failing, or camera dropping frames
  • detailed log files - these are very helpful when debugging acquisitions after the fact
  • acquisition settings specified through a config file (e.g. example_acquisition_settings.yaml) - useful for record keeping, convenient for replicating standardized acquisition for data campaign; may be able to leverage hydra for easier config management.
  • Validation of acq settings with pydantic or similar
  • autotracker
  • robust O1 autofocus in microscope_operations.autofocus
  • "manual" autoexposure
  • O3 autofocus - in mantis v1 we had to frequently move the O3 detection objective to counter microscope drift. In the new version we expect the microscope to be much more stable, but we'll occasionally need to adjust the LS illumination plane by moving one galvo. The same image-based autofocus algorithm can be reused, we'll just need to run it much less frequently.
  • MantisAcquisition.go_to_position - the XY stage has jitter that shows up if we are trying to image the same position over time. Repeated commands to move to the same position lead to small error which show up as the sample shaking. go_to_position also modulates the XY stage speed to try to preserve the oil interface between the objective and the sample
  • _try_mmc_call wrapper - sometimes MM calls fail and that can break the whole acquisition. Often they succeed on a second try (example - the XY stage has a timeout that's longer than the end-to-end travel distance; when moving corner to cornet it will error out on the first try, but succeed on the second call). This feature provides extra robustness.

Features we are deprecating:

  • Acquisition from two parallel arms
  • NI DAQ for acq synchronization
  • KIM101 O3 movement
  • pycromanager workarounds

New features we are looking forward to:

  • Write data directly to zarr
  • Better GUI
  • Live data viewer
  • Smart microscopy, for example:
    • Dynamically identify which FOVs to image
    • Dynamically select when to start and stop imaging (saving data)
    • Dynamically select which channels to image when (e.g. turn on fluorescence imaging only during organelle remodelling)

cc: @jeskesen @mattersoflight

Sub-issues

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions