Need some guidance on tools for measurement and cropping and workflow feedback

Hi Everyone!!!

I have an imaging core user who is letting me user her data set to learn ImageJ a bit more. Up until now I’ve just been playing with the images for a course I’m taking and just to see if anything I’m learning works.

I have attached two pair of images (1 and 2) with separate files for the DAPI and FITC channels of a single mitotic chromosome.

Below are her notes to me. My question and notes in bold.
An ideal work flow would be:

  1. crop the chromosome
    Noise in the images are making it hard to threshold/segment/ROI without cropping.

Question: can we batch crop without having to do the crops manually for her 80*2 images. If so what is this plugin or tool?

  1. threshold and segment the chromosome
    I feel like I have a handle on this but because it snakes and overlaps, so I may not.

  2. take the following measurements:
    A) chromosome length (this will likely have to be manual since they are oddly shaped)

Is this true? The chromosomes are swirly and overlap. What’s the tool one uses to measure the length of something that snakes around like this?

B) chromosome area
C) background subtracted FITC intensity

I asked for clarification on this. She says she needs to do this due to camera noise but doesn’t have a camera noise only image to subtract. But if acquisition was the same throughout the whole data set (which it was), is this necessary?

D) background subtracted DAPI intensity same as C

  1. save to a new folder under an identifying file name not quite here yet

It would be ideal to have all of these measurements linked to the file name of the cropped chromosome so that I can refer back to if needed. I hope this makes sense, please let me know if you need any clarifications. Thanks in advance for your help!!!

I would love to figure this out with some direction on the tools to do the two things I’m stumped on - batch cropping and measuring odd-shaped lengths. Thanks in advance. -Fives

1 Like

Quick note on this one before I head home, but it depends on your final measurement. Say your background is a constant 10, and your signal is 20-30s range. If one chromosome is twice the size of the other, it will have twice the total signal from the background (10x 2area vs 10area). So that causes a problem if you are measuring the fluorescent sum (integrated intensity, sometimes).

If you are measuring the mean intensity per object, the relative percentage would change, but the order or amount of change would not.
Same case, 10 background, but sample A is 20 across all pixels while B is 30.
A vs B without background subtraction: B is brighter, specifically 50% brighter.
A vs B with subtraction: B is still brighter, but now by double or 100%.

Same answer in each case, but depending on your signal/noise…

1DAPI.tif (2.6 MB) 1FITC.tif (2.6 MB)

2DAPI.tif (2.6 MB) 2FITC.tif (2.6 MB)

A few random things!
image
vs
image
May be worth playing with that in case you want to reduce the fuzziness of your DNA. Also if this was not already a Z-stack+deconvolution, that might be an option as well (though not at this point if all images are taken and done).

After you threshold/mask and analyze particles on the resulting mask, you should get an ROI that can be cropped using it’s bounding box.


Maybe a bit more information here:

Roughly, as long as your segmentation generates the correct ROIs, you can crop automatically using those bounding boxes. With a little more work you could create some added padding so that the crop has a little bit of extra space.

I don’t know of anything to measure something that snakes around other than to trace it manually. You might be able to use CellProfiler and some worms type pipelines to measure this… but I would defer to @bcimini as far as whether that would work here. Also ends up being outside of ImageJ, though.

I tend to use QuPath for things like this; I haven’t done any coding for cropping in FIJI.

Also, depending on the degree of overlap, you could try Plugins->Skeleton->Skeletonize2D/3D, but that would probably only work on the first image, not the second where there is something like a knot at the bottom.

1 Like

at my campus, we are working on something similar in order to measure the length and get some topological description of DNA fiber (in our case mostly with Electron Microscopy, but someone is trying to use it also for fluorescence microscopy).

This is a figure that explains more or less what it does:


image

I think it could be suitable with some modifications also for your case.
It follows a semi-automatic workflow where before the plugin (ok it’s a Fiji plugin) to find the fibers and then let you refine by hand the regions found.
Then it applies, as @Research_Associate suggested, the skeletons and it applies some logic to identify topological structures that we called: branches, bridges, and rings.
image

If you are interested please feel free to contact me and we try to understand how much is the job to let it works also for your images and moreover if I can pass you the code since the plugin is still not yet published and I’ve to ask other collaborators.

HTH,
Emanuele Martini

1 Like

Yup, you could definitely try the UntangleWorms module to do this; not sure how well it would work, since I’m not sure how well it handles SUCH tight loops (tighter than a C Elegans would be able to do), but it’s worth a shot.

The other thing I’d say is that if a) object width is reasonably consistent and either b1) overlap areas are small OR b2) you can detect overlap areas by an overall gain in signal because you’re at sub-saturated pixel intensity THEN in general total signal is going to be a reasonable proxy for length and you can kind of ignore tracing and get length by length = total signal/mean width. Note that this sort of approximation is more appropriate if you’re trying to detect large changes (>2X or more) than small, 5-10% changes, at which the approximation is going to break down just from the uncertainties in A and B, but you could certainly do this for a small test set of 10 or 20 objects (obtain length by tracing manually, and from this approximation) and get a sense of how well it will work for you.

2 Likes

Can I just say how grateful we are. You’re wonderful.
Going to read through all of this with the user who owns the data set and get to work.
I or she will check back in.

1 Like