Skip to content

Notes about registration of 3D volumetric data

eftychios pnevmatikakis edited this page Mar 22, 2017 · 1 revision

The Matlab implementation of NoRMCorre supports the registration of 3D volumetric data, in a rigid or piecewise rigid fashion, by using seamlessly the same set of core functions normcorre.m and normcorre_batch.m. However before applying it to your data please note the following:

When to use 3D vs 2D registration?

3D registration makes sense if the different z-planes are close enough to each other so that:

  1. A component of interest (soma, process) is captured by multiple planes, so it is a good practice to enforce different planes to have the same x-y motion.
  2. The z-motion of different planes can comparable or larger than the distance between two consecutive planes, and therefore needs to be modeled.

In the case where these conditions are not satisfied, then using 3D motion can actually lead to poorer results since it will force different z-planes to have the same x-y motion profile. In such case, we advice to use 2D motion correction on each plane separately.

Which function to use?

normcorre_batch.m operates in a minibatch mode by taking a batch of time frames/volumes of data, and then processing each frame/volume in parallel. In the case of high throughput 3D imaging, each single volume can be already large in size, and a mini batch of such volumes can create memory issues. We recommend to use the plain normcorre.m in this case (which also exploits multicore resources during the registration process).