-
Notifications
You must be signed in to change notification settings - Fork 0
Getting started
Before you run the plugin, let's see what kind of input it expects.
As an input, the CurveMorph takes:
- a stack (opened in Fiji);
- list of ROIs in ROI Manager.
The plugin uses the currently active image of Fiji, which should be a stack
(contain more than one slice or frame or both).
It can be multi-color composite image.
Large images can be opened as Virtual stacks.
It works with 8-, 16- and 32-bit images.
RGB stacks can be made composite using Image -> Color -> Make Composite Fiji command,
processed and re-assembled to RGB.
The ROI Manager must contain at least two (or more) ROIs assigned
at different slice or frame positions of the image stack.
Think about them as a keyframe or reference ROIs,
reflecting key changes in shape, so the intermediate states
can be interpolated/morphed.
All ROIs must be of line (Straight Line), polyline (Segmented Line),
or freeline (Freehand Line) type, and they can have an arbitrary thickness (Line Width).
ROIs of other types can be present, but will be ignored.
You can check ROI's position in a stack by selecting it in ROI Manager
and pressing the "Properties" button, in the "Position" field.
Depending on your image (hyperstack or "regular", simple Z or T stack),
FIJI/ImageJ will display position either as a (C, Z, T) format,
or as a single (N) digit. These two notations cannot be mixed,
so if they are (in very rare cases), you need to correct to one of them.
Sometimes it is possible to automate filament tracing using CurveTrace or Ridge Detection plugins.
Their output of ROIs (after cleanup) can be used as an input.
Once the stack and ROIs are prepared, you can run the plugin and adjust parameters in the dialog.
There are two options:
- Shape morphing will interpolate ROIs width, length, and angles between segments;
-
XY interpolation will interpolate ROIs width and XY centerline coordinates (sampled equidistantly),
without length/angle preservation.
To illustrate the difference between the two methods, take a look at the (intentionally exaggerated) interpolation examples below:
Movies on the left, MAX proj on the right.
The choice of the algorithm depends on the goal/underlying filament behaviour.
For both algorithms, the correspondence between ends of ROIs needs to be established.
Since the morphing algorithm interpolates only angles along the ROI, but not the XY position,
one also needs to specify the translation component for it (see below).
When a line/curve ROI is drawn in Fiji, its ends are different:
one end can be called first (where you start drawing) and the other one last (the end of the drawing).
To build an intermediate transition between two ROIs (ROI1 to ROI 2), the algorithms need to decide:
- Which end of ROI1 will transform to which end of ROI2 (for both algos from above);
- For the morph algorithm, which (first or last) end would be used to account for translation (movement)
of ROI 1 compared to ROI 2 (apart from the centroid mode, see below);
There are three options Closest, Always first, Always last.
In the Always first/Always last modes, the plugin will follow the ends correspondence imposed by
the order of ROI drawing. These modes are the same for the "XY interpolation" algorithm,
but will produce a different result if "Morphing" is selected.
In Always first mode, the XY coordinates of the "first end" of ROI1
will be interpolated to the "first end" of ROI2,
while the morphing (angle interpolation, shape "unbending") is performed.
In the Always last, it will happen with the "last ends".
In the Closest mode, the correspondence between ends does not depend on the order
of drawing, but on the distance between ROIs ends. So the end correspondence
will be decided based on the minimum distance among all pairs
(first-first, first-last, last-first, last-last).
For the "morphing" algorithm, the translation interpolation will happen
among the closest pair/combination of ends, i.e. ends within the shortest distance from each other.
This option is available only for the "morphing" algorithm.
In this case, instead of using (to account for translation),
the position of one of the ends, the plugin will interpolate
ROIs centroid (center of mass) coordinates.
For in-depth details and illustrations, check Algorithms and ends mapping page.
This parameter specifies whether the ROI interpolation will happen over
the whole span of the provided stack or only over the frame range
where the reference ROIs are present.
In the first case, the frames outside of ROIs ranfe will be
assigned the "closest" ROI.
If checked, intermediate ROIs will be added to the image overlay.
If selected, intermediate ROIs will be added to ROI Manager.
Notice that the XY position of ROIs will be resampled.
If selected, the plugin will generate a kymograph along intermediate ROIs.
You can choose the final kymograph intensity as "Maximum" or "Average" along the ROI width,
and whether to subtract "Nothing", "Minimum", "Median", or "Average" value
(again, at each point along the curve, perpendicular to it).
Since intermediate reconstructed ROIs can have a different length,
there are several options for the final kymograph single frame traces alignment
under the "Kymo align" choice box.
This option will output straightened parts as a stack (before collapsing it to a kymograph).
Since it is "raw" data, it does not depend on intensity settings and
there is no subtraction, but the alignment option tweaks the output.
This stack can be helpful to check if your line width is wide enough
to include the required features. But also it can be used as
an intermediate result: you can re-align it, or register for drift
and make a second kymograph out of it.
Developed in Cell Biology group of Utrecht University.
Check out Updates history. The plugin and this wiki are under constant development.
E-mail for any questions, feedback, errors or suggestion
or tag @ekatrukha at image.sc forum.