- given a path to an exported dataset or Harmony archive, automatically determine which data structure it is
- load in image data and metadata
- visualize with the correct scaling in napari
- select different fields, wells, plates, etc. using napari widget
- required inputs
- path to experiment directory
- parameters
- data structure (default: auto detect)
- options: export, archive
- write the method for export first; this is probably what most people use by default
- row (default: first in range)
- column (default: first in range)
- field (default: first in range, unless stitching)
- stitch fields? (default: no)
- time points (default: all in range)
- channel (default: all in range)
- Z slice (default: all in range)
- write to new file? (optional: no)
- options: ome-tiff, numpy array, parquet
- data structure (default: auto detect)
- printed outputs
- plate layout
- shape/dimensionality of data
- rows
- columns
- fields
- time
- channels
- Z
- Y
- X
- channel names
- time scale
- Z physical size
- Y, X physical size
- written files
- image data file (as specified)
- human-readable metadata file
- returned outputs
- array of specified data
- dictionary of metadata
- required inputs
- path to experiment directory
- returned outputs
- napari viewer displaying default data subset with physical scaling from metadata
- widgets
- well selector (drop-down menu populated by metadata)
- stitch fields (yes/no)
- field selector (drop-down menu populated by metadata, ignored if stitched)
- timepoint selector (single or multi-selection, with option to select all, populated by metadata)
- channel selector (single or multi-selection, with option to select all, populated by metadata)
- z-slice selector (single or multi-selection, with option to select all, populated by metadata)
- “visualize data” button to load and visualize the widget value-selected data subset in the viewer
- generate a large single png image which contains a grid in the same shape as the plate date (in terms of rows and columns)
- generate one image for each single channel and for every combination of merged
channels (e.g. if there are 4 channels in the data, there should be output
images for each single channel, each merged combination of 2 channels, each
merged combination of 3 channels, and the 4-channel merge)
- the single-channel images should all use the viridis colormap
- all the multi-channel merges should use the colormaps suggested per-channel by the napari widget
- there should be colorbars somewhere to show the display range of the channel(s) being displayed
- use the same contrast limits for display as what is done for the napari widget, but consider all data in the plate so that all wells have identical contrast limits
- user can specify which single field or fully stitched fields per-well, but default to the first field if not specified
- user can specify a single z-slice or range of z-slices to visualize as maximum projection, but max-project all z-slices if not specified
- show a single scale bar below the image grid in units of μm
- title the image with the experiment name
- subtitle with the objective lens magnification
- possible future direction: if it takes a long time, design it to be run by reading all wells in parallel in a slurm job and then aggregate into the final image
- put the plate ID that shows up in the window title immediately upon loading experiment, before visualizing
- allow for evenly spaced timepoints (every other, etc.)
- print out what the metadata is for the currently selected well
- josh got started, will send some code to me
- convert rows to alphabetical
- show multiple wells
- see why stitching is messed up for archive files
- for saving, auto-populate plate name and well
- document stuff that’s in scripts
- make well selection a grid reflecting the plate layout instead of dropdown menu
- just 96 well and 384 well plates so far
- seems like they’re looking for a browser based solution