Using gamma for punctae analyses

Sample image and/or code

  • Upload an original image file here directly or share via a link to a file-sharing site (such as Dropbox) – (make sure however that you are allowed to share the image data publicly under the conditions of this forum).
  • Share a minimal working example of your macro code.


I label my favrorite protein in cells by IF and image by confocal microsopy. My protein exists in mutliple organelle compartments, hence, appears diffused, but certain conditions can cause a sizeable amount to oligomerize.

Analysis goals

I am trying to analysis only large puncta subpopulations of my favorite protein.


I find that thresholding each image before puncta count is impossible to acheive uniformly for all my images because of the excess “background” from non-oligomeric forms.
I noticed that by increasing the curve/“gamma” uniformly eliminates the background signal leaving a sharp (but derived) image. I have had mainly negative comments about “changing gamma” in the past.
Ergo, I plan on “gating” for only large and bright punctae by feeding in a fixed gamma (~3.5 is where i see only large bright punctae). My question is, are there any major concerns or forseeable pitfalls to analyzing punctae formation using this workflow I am proposing?
Thanks in anticipation for your feedback.

Dear Kelvin,

Could you upload an image file so we can see what you mean?

Also, what are you trying to measure exactly? Is it brightness of the puncta?



Hi @absolutekelvin,

Principally, you could include a gamma adjustment with a fixed gamma value for all images. But if all your images differ to quite some extend in brightness this approach might also have negative effects, since midgray values are specifically strong affected by gamma which might affect some images different to others. Second, you aim to go for size but use an intensity-related approach.

You could try to use →Process →Subtract Background... instead to reduce background and try thresholding after that. Finally, you could then add a size exclusion using Analyze Particles... But if this approach is applicable or will lead to a good result depend on the original resolution and magnification of the images and therefore of the actual size of your punctae. If those consist of only 5 pixels or so a size exclusion after thresholding is also error-prone.

EDIT: Another alternative would be to test a Bandpass filter (→Process →FFT →Bandpass Filter).


Bandpass filtered (in this example from your screenshot between structure sizes of 6-15 pixels

AutoThresholded (MaxEntropy) extracting bigger aggregates (here shown as selections):

To give more detailed help it would be good if you could post the original image of the channel with the punctae, because on the screenshot you cannot determine useful values which work in your images in the end.