chromatic warping: general formulation

Description of problem

There are N different color channels which are imaged through different filters, and need to be mapped together to an accuracy greater than the resolution limit of the instrumentation / detection system (e.g. 10-20 nm for STORM, limited by photon number and small vibrations).

Description of data

Sequential frame case

  • separate movie for each channel of the same feducial marker.
  • if the same marker is not visible in all color channels, separate markers which can be seen in one overlapping reference channel can be used: (e.g. 550 nm absorbing imaged in 488, 561, and 647 detection channels and 715 nm absorbing beads imaged in 647 and 750 channels).
  • ideally many different fields of beads are imaged in each channel to give maximum coverage of bead density over the field of view.

Multiviewing frame case

  • 1 – 2 movies, in which the same beads can be seen in multiple channels (not necessarily all channels)
  • One channel can be seen in all movies.

Algorithm

Components / terminology

  • all movies which image the same field of beads in different channels will be considered a beadset (previously called a movie).
  • each beadset will be comprised of different channels (at least 2).
  • One channel in each movie is defined by the user to be the reference channel, all beads in this movie will be mapped into those coordinates.
  • each channel contains multiple fields of different beads.

Bead Analysis

  • first we need to fit all the bead movies with the parameters appropriate to their spectra, which can be decided by inspecting quality of fit through viewer in STORMfinder.
  • If we have multi-view movies, we want to split them into separate movies so that each can get analyzed with a different, color specific parameter set.
  • Then we analyze all movies (run through RunDotFinder).
  • Details of analysis implementation: This can be done in batch with splitting movies, so that as soon as a movie is split, it starts getting analyzed. Instead of controlling number of files running (since we make multiple calls of RunDotFinder, rather than passing it a batch of movies), we simply use the waitforfreecpu command of RunDotFinder to throttle analysis appropriately.

Loading Fits

  • All non reference beads are loaded into the sample field of a matlab data structure with a different element (equal to the number of samples)
  • All reference beads are loaded into the refchn field of the matching sample data

Matching beads and computing warps

  • beads will be matched by a simple nearest neighbor algorithm with a fixed search radius.
  • These matched beads are used to compute a simple affine warp (translation) from the sample channel to the reference channel
  • beads are then rematched using a much shorter search radius (since now it matters more that we get the pairs right)
  • the new matched beads are used to compute new warps. We save as many warps as there are samples.

Plots and output

  • we save a collection of xy, xz plots,
  • also z-histograms color coded by z height (requires a fixed number of fields per z height and the number of fields per z to be given as a input parameter).
  • distance between sample and reference beads before the warp, after the affine transformation, and after the polynomial transformation.

Some results

  • For a 400 nm range we can get 20 nm accuracy, 750/647 as good as ~10 nm
  • For a 800 nm range we can get all channels within 40 nm.
allclassfig_xyerr

allclassfig_xyerr

allclassfig_xyerr_all

allclassfig_xyerr_all

allclassfig_xyzerr

allclassfig_xyzerr

allclassfig_zdist

allclassfig_zdist

noclass9fig_xyerr

noclass9fig_xyerr

noclass9fig_xyzerr

noclass9fig_xyzerr

noclass9fig_zdist

noclass9fig_zdist

noclass9fig_warperr

noclass9fig_warperr

allclassfig_warperr

allclassfig_warperr

allclassfig_warperr_2d

allclassfig_warperr_2d

This entry was posted in General STORM and tagged , . Bookmark the permalink.