Skip to content

Latest commit

 

History

History
115 lines (114 loc) · 4.82 KB

File metadata and controls

115 lines (114 loc) · 4.82 KB

s1_pyphenix

Description

  1. given a path to an exported dataset or Harmony archive, automatically determine which data structure it is
  2. load in image data and metadata
  3. visualize with the correct scaling in napari
  4. select different fields, wells, plates, etc. using napari widget

Planning and progress notes

design of basic metadata and data loader

  • 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
  • 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

design of napari widget-based loader

  • 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

wishlist [2/3]

alternate version that reads archive instead of export

wrapper that automatically detects archive vs. export and reads accordingly

plate overview images

  • 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

testing notes

<2026-01-06 Tue> Emily and Josh

  • 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

<2026-02-19 Thu> meeting with Crystal and David about general-purpose plate viewer

  • seems like they’re looking for a browser based solution