Categories
imaging articles code

ImageJ macro to synchronize and combine image stacks

The embryos I study rarely develop in perfect synchrony. That means that when I film them under the microscope some embryos will be younger—or older—than others.

ImageJ macro with Drosophila embryo
Using an ImageJ macro to help me analyze movies of Drosophila embryos.

For this reason, I often need to synchronize the recordings to make sure they all begin at the same embryonic stage. When the movies are synchronized I can combine them side-by-side, and it becomes much easier to compare and spot differences between two embryos.

ImageJ macros save time

Combining movies in Fiji/ImageJ is straightforward using the Combine... command. But synchronizing is way harder. It depends on human classification and involves some calculations and stack juggling that can (and will) become tedious.

To help me out, I wrote a small ImageJ macro available here: SyncAndCombineStacks.ijm. Follow below to see how it works.

Combined movies without syncing

That’s what unsynchronized movies look like. I combined them fresh off the microscope without any synchronization:

Two embryos of the fruit fly Drosophila melanogaster. Both were acquired in the same microscopy session. The top embryo is older than the bottom embryo.

Combined movies after syncing

Here are the same two movies now synchronized by the embryonic stage:

The same two embryos are now synchronized.

How it works

The macro performs the hard work. It calculates how many frames to trim from each stack. Then it duplicates the selected range of frames common to both stacks. Finally, it combines the synchronized recordings into a single image stack. All you need to do is to select the corresponding frames between the two stacks.

Step-by-step instructions

Here are the instructions step-by-step:

  1. Open both image stacks in ImageJ.
  2. Adjust the contrast if needed (before running the macro).
  3. Select a reference frame in the top stack (e.g. stage easy to recognize).
  4. Select the correspondent frame in the bottom stack.
  5. Run the macro and fill in the dialog parameters.
  6. Click OK, wait a few seconds, and check if the synchronization is good. Otherwise, re-run with different parameters.

Screencast

I’ve also recorded a small screencast:

Note! The macro does not touch the original stacks, but it outputs an RGB Color stack. There are a couple of reasons for that. Converting to RGB avoids contrast issues when the stacks have different pixel intensities. It also prevents quirks in video players that can’t handle 16-bit movies. But if you need to perform image analyses on the final stack, remove this option. I may add a checkbox for that in the future.

Categories
imaging biology notes

The surface of a brachiopod embryo

Brachiopod embryo showing its surface and blastopore.
Embryo of the brachiopod Novocrania anomala at the gastrula stage showing its outer surface and the blastopore at the bottom. Cell membranes were stained (F-actin) and the original image stack was converted to a 3D animation using Fiji/ImageJ.