LabCanvas

FRAP analysis in ImageJ: mobile fraction and half-time, step by step

FRAP in ImageJ: bleach, reference and background ROIs, Multi Measure, double normalisation, an exponential recovery fit, then the mobile fraction and t½.

ImageJ FRAP analysis of a synthetic cell: frames before the bleach, just after it and recovered, with the bleach, cell and background ROIs, and the Curve Fitting result of an exponential recovery (mobile fraction 0.80, half-time 2.78 s)
ImageJ FRAP analysis of a synthetic cell: frames before the bleach, just after it and recovered, with the bleach, cell and background ROIs, and the Curve Fitting result of an exponential recovery (mobile fraction 0.80, half-time 2.78 s).
Contents

To analyse FRAP in ImageJ, draw three ROIs (the bleached spot, the whole cell as reference and a background area), add them to the ROI Manager, and use More › Multi Measure to get their mean intensity in every frame. Double normalise the bleach-spot curve, fit the recovery with Analyze › Tools › Curve Fitting… (Exponential Recovery, y=a(1−e−bt)+c), and read off:

mobile fraction Mf=a1−c
half-time t1/2=ln⁡2b

On the worked example below ImageJ gives Mf=0.80 and t1/2=2.78 s (fit R² 0.9999), against a true 0.8 and 2.77 s.

What you need: ImageJ 1.x or Fiji (every command here is in both). A FRAP time-lapse as one stack with a few frames before the bleach, and the frame interval. The example is a synthetic FRAP movie (60 frames at 0.5 s, 160 × 160 pixels, 0.1 µm per pixel, bleached after frame 5) made for practice, with a known mobile fraction (0.8) and recovery rate (0.25 s⁻¹). Time: about 20 minutes.

What the mobile fraction and t½ mean

In FRAP (fluorescence recovery after photobleaching) you bleach the fluorescent protein in a small spot and watch fresh, unbleached protein move back in.

  • The half-time (t½) is how long the spot takes to recover half of what it will recover. Shorter means faster exchange or diffusion.
  • The mobile fraction (Mf) is the share of the bleached protein that is replaced. If the spot comes back to 80% of the way between the post-bleach level and the pre-bleach level, Mf=0.8; the other 0.2 is the immobile fraction, protein bound in place for the length of the experiment.

How do I measure FRAP in ImageJ? Step by step

Step 1: Open the movie and find the bleach

Click File › Open… and choose the movie. Step through it with the slider and note the last frame before the bleach (frame 5 here) and the first frame after it (frame 6, where the spot is dark). Check the frame interval under Image › Properties… (0.5 s here).

ImageJ window with the synthetic FRAP movie at frame 6, the bleached spot dark
Step 1 in ImageJ 1.54f: frame 6 of the synthetic FRAP movie, the first after the bleach. The bleached spot is dark 1; the slider shows frame 6 of 60 2.

Step 2: Draw the three ROIs and add them to the ROI Manager

Open Analyze › Tools › ROI Manager…. Then draw each region and press t to add it:

  1. bleach: the Oval tool, a circle exactly on the bleached spot (draw it on the first post-bleach frame, where you can see it).
  2. cell: the whole cell, as reference. Trace it with the Freehand tool, or threshold frame 1 (Image › Adjust › Threshold…, Otsu, Dark background) and Edit › Selection › Create Selection.
  3. background: a square outside the cell, away from other cells.

Select each entry and click Rename… to call them bleach, cell and background; the names become the column titles.

ImageJ FRAP image with bleach, cell and background ROIs, and the ROI Manager listing them
Step 2: the bleach spot 1, the whole cell as reference 2 and a background square 3, each added with t and renamed in the ROI Manager 4.

Step 3: Measure the mean only

Choose Analyze › Set Measurements… and tick Mean gray value only (untick Area and the rest), so the table stays readable. Click OK.

ImageJ Set Measurements dialog with only Mean gray value ticked
Step 3: Analyze › Set Measurements… with only Mean gray value ticked 1, then OK 2.

Step 4: Multi Measure

Click in the ROI Manager's list without selecting anything (or click Deselect), then More » and Multi Measure.

ImageJ ROI Manager with the More menu open and Multi Measure highlighted
Step 4: ROI Manager › More » › Multi Measure 1.

Step 5: Set the Multi Measure options

Tick Measure all 60 slices and One row per slice, leave Append results unticked, and click OK.

ImageJ Multi Measure dialog with Measure all 60 slices and One row per slice ticked
Step 5: Measure all 60 slices 1 and One row per slice 2, then OK 3. The note confirms a table with 3 columns.

Step 6: Read the raw intensities

The Results table has one row per frame and one column per ROI: Mean(cell), Mean(bleach) and Mean(background). At frame 6 the bleach column drops from about 1854 to 671.

ImageJ Results table from Multi Measure with Meancell, Meanbleach and Meanbackground per frame
Step 6: the Results table, one column per ROI 1. The bleach spot falls from 1854.1 at frame 5 to 670.8 at frame 6 2.

Step 7: Double normalise

Open Plugins › New › Macro, paste the macro below, set nPre (frames before the bleach) and dt (seconds per frame), and click Run. It adds a Time (s) and a Norm column to the Results table and plots the normalised curve.

// FRAP double normalisation (run on the Results table from Multi Measure)
nPre = 5;      // frames before the bleach
dt = 0.5;      // seconds per frame
n = nResults;
F = Table.getColumn("Mean(bleach)");
R = Table.getColumn("Mean(cell)");
B = Table.getColumn("Mean(background)");
Fpre = 0; Rpre = 0;
for (i = 0; i < nPre; i++) { Fpre += F[i] - B[i]; Rpre += R[i] - B[i]; }
Fpre /= nPre; Rpre /= nPre;
for (i = 0; i < n; i++) {
  setResult("Time (s)", i, i * dt);
  setResult("Norm", i, (Rpre / (R[i] - B[i])) * ((F[i] - B[i]) / Fpre));
}
updateResults();
Plot.create("FRAP", "Time (s)", "Normalised intensity");
Plot.add("circle", Table.getColumn("Time (s)"), Table.getColumn("Norm"));
Plot.setLimits(0, n * dt, 0, 1.1);
Plot.show();
ImageJ macro editor with the normalisation macro, the Results table with a Norm column, and the plot of the normalised recovery
Step 7: the macro in Plugins › New › Macro 1 adds a Norm column 2. The plot shows 1.0 before the bleach 3, 0.33 just after it 4 and a plateau near 0.86 5.

The formula, for each frame t (F = bleach spot, R = whole cell, B = background, "pre" = the mean over the frames before the bleach):

Inorm(t)=Rpre−BpreR(t)−B(t)×F(t)−B(t)Fpre−Bpre

The second factor scales the spot to its own pre-bleach level. The first corrects for fluorescence lost from the whole cell, both in the bleach and through imaging. This is the double normalisation of Phair, Gorski and Misteli (2004).

Step 8: Fit the recovery

Copy the Time (s) and Norm columns from the first post-bleach frame (frame 6) to the end, and subtract the time of frame 6 so the recovery starts at 0 s. Choose Analyze › Tools › Curve Fitting…, delete the example numbers, paste the two columns, choose Exponential Recovery from the list, and click Fit.

ImageJ Curve Fitting window with the post-bleach data pasted and Exponential Recovery chosen
Step 8: Analyze › Tools › Curve Fitting…: time since the bleach and Norm pasted 1, Exponential Recovery chosen 2, then Fit 3.

Step 9: Read a, b and c

ImageJ plots the fit and lists the parameters of y=a(1−e−bx)+c: c is the level just after the bleach, a is how much comes back, a+c is the plateau and b is the rate.

ImageJ Curve Fitting result: an exponential recovery through the normalised FRAP data
Step 9: the fit gives a = 0.53603 and b = 0.24966 s⁻¹ 1, c = 0.33016 and R² = 0.9999 2; the plateau is a + c = 0.866 3.

The worked example: Mf and t½ by hand

Part of the Results table (background-subtracted pre-bleach means: Fpre−Bpre=1756.4, Rpre−Bpre=1488.5):

FrameTime (s)Mean(bleach)Mean(cell)Mean(background)Norm
10.01878.31609.7108.40.999
52.01854.11585.5108.81.002
62.5670.81543.1108.60.332
73.0770.81538.5109.40.392
83.5861.31532.1109.80.448
115.01071.61516.4109.90.580
167.51272.31488.1110.90.715
2110.01357.41461.2110.30.782
3115.01405.11408.5109.90.845
6029.51291.11266.5109.40.865

Frame 6, worked through:

1488.51543.1−108.6×670.8−108.61756.4=1.038×0.320=0.332

From the fit (Step 9):

  • F0 (just after the bleach) =c=0.330
  • F∞ (plateau) =a+c=0.536+0.330=0.866
  • Mobile fraction =(F∞−F0)/(1−F0) =a/(1−c) =0.536/0.670=0.80; immobile fraction 0.20
  • t½ =ln⁡2/b=0.693/0.2497=2.78 s

The sample was made with Mf=0.8 and k=0.25 s−1 (t1/2=2.77 s), so ImageJ recovers both.

Why the reference ROI matters: single vs double normalisation

The raw bleach-spot intensity, divided only by its own pre-bleach level (single normalisation), mixes recovery with bleaching from imaging. Here the whole cell fades 0.4% per frame, so the single-normalised curve rises, peaks near 15 s and then falls:

ImageJ plot of the reference, single-normalised and double-normalised FRAP curves
ImageJ 1.54f plot of the example: the whole-cell reference fades through the movie grey; the single-normalised curve peaks and falls red; the double-normalised curve reaches a flat plateau at 0.866 blue.
NormalisationMft½ (s)
Single (spot only)0.601.73
Double (spot and whole-cell reference)0.802.78
True value of the sample0.802.77

Without the reference, both numbers are wrong: the fit catches the early rise and treats the fading as a lower plateau.

Pitfalls

  • Too few pre-bleach frames. Take at least 3 to 5; Fpre is their mean.
  • A bleach ROI bigger or smaller than the bleached spot. Draw it on the first post-bleach frame, the size of the dark spot.
  • The cell moves. Check the ROIs on the last frame. Register the stack first if the cell drifts.
  • Reference not the whole cell. The reference must contain the whole pool that exchanges with the spot (the whole nucleus for a nuclear protein).
  • Fitting the pre-bleach frames. Fit from the first post-bleach frame, with time starting at 0 there.
  • A bad single exponential fit. If the residuals curve, the protein may have two populations; try a double exponential (a custom fit in Curve Fitting) and say so.
  • t½ is not a diffusion coefficient. Converting t½ to D needs a model for the spot size and bleach profile (for a circular spot, Soumpasis-type formulas). Report t½ unless you fit such a model.

Reporting it

FRAP was analysed in ImageJ 1.54f. Mean intensities of the bleached region, the whole cell and a background region were measured in every frame (ROI Manager, Multi Measure), double normalised (Phair et al. 2004) to the mean of [5] pre-bleach frames, and the recovery fitted with I(t) = a(1 − e^(−bt)) + c. Mobile fraction = a/(1 − c); t½ = ln2/b. Values are mean ± SD of [n] cells from [3] experiments.

Cite ImageJ (Schneider et al. 2012). Show the mean normalised curve ± SD with the fit, and Mf and t½ per cell as points.

Switch to LabCanvas: FRAP in a few clicks

LabCanvas Image Analysis has a guided FRAP assay in the browser: no macro, no copying columns between windows.

  1. Open the FRAP movie (or click Try it on a sample for the same synthetic cell) and go to Assays › FRAP recovery.
  2. Bleach: the first frame after the bleach is found automatically (change it if needed).
  3. Regions: the Bleached spot, Reference (whole cell) and Background are found for you, or taken from ROIs you draw.
  4. Recovery: the curve is double normalised and fitted with I(t)=I0+A⋅(1−e−kt); read the mobile and immobile fraction, t½, k and R², and send the table to Graphs.
FRAP recovery in LabCanvas Image Analysis
FRAP recovery: Mobile fraction 0.8, recovery half-time 2.77 s, fit R² 0.9999.

On the same movie LabCanvas gives mobile fraction 0.8 and t½ 2.77 s (R² 0.9999); ImageJ above gave 0.80 and 2.78 s.

Why switch for FRAP:

  • A guided assay instead of a macro: bleach frame, regions, double normalisation and the fit in one panel, with the regions drawn on the image.
  • Results straight to Graphs for comparing cells and conditions, with a methods sentence to copy.
  • Nothing to install, and every measurement is checked in more than 4,000 automated tests.

Fiji stays better for models beyond a single exponential (reaction–diffusion fits, two populations) through scripts, and for reading .czi, .nd2 or .lif directly; LabCanvas needs those as OME-TIFF.

Open Image Analysis: free with a LabCanvas account (downloading files is part of LabCanvas Pro). ImageJ and Fiji are independent open-source projects; LabCanvas is not affiliated with them.

References

  • Phair RD, Gorski SA, Misteli T (2004). Measurement of dynamic protein binding to chromatin in vivo, using photobleaching microscopy. Methods in Enzymology 375, 393–414. doi:10.1016/s0076-6879(03)75025-375025-3)
  • Rapsomaniki MA, Kotsantis P, Symeonidou IE, Giakoumakis NN, Taraviras S, Lygerou Z (2012). easyFRAP: an interactive, easy-to-use tool for qualitative and quantitative analysis of FRAP data. Bioinformatics 28, 1800–1801. doi:10.1093/bioinformatics/bts241
  • Schneider CA, Rasband WS, Eliceiri KW (2012). NIH Image to ImageJ: 25 years of image analysis. Nature Methods 9, 671–675. doi:10.1038/nmeth.2089

Frequently asked questions

How do I calculate the mobile fraction in FRAP?

Mf=F∞−F0Fpre−F0, where Fpre is the normalised intensity before the bleach, F0 just after it and F∞ the plateau. With double-normalised data (Fpre=1) and a fit y=a(1−e−bt)+c, F0=c and F∞=a+c, so Mf=a/(1−c). On the example here a=0.536 and c=0.330, so Mf=0.536/0.670=0.80.

How do I get the FRAP half-time?

Fit the recovery after the bleach with a single exponential, y=a(1−e−bt)+c (Exponential Recovery in ImageJ's Curve Fitting). The half-time is t1/2=ln⁡2/b. On the example b=0.2497 s−1, so t1/2=0.693/0.2497=2.78 s.

What is double normalisation in FRAP?

It corrects the bleach-spot intensity for the background and for the fluorescence lost while imaging and in the bleach itself: Inorm(t)=Rpre−BpreR(t)−B(t)×F(t)−B(t)Fpre−Bpre, with F the bleach spot, R a reference region (the whole cell) and B the background. It is described by Phair, Gorski and Misteli (2004) and used by tools such as easyFRAP.

Why do I need a reference ROI in FRAP?

Imaging itself bleaches the sample a little in every frame, and the bleach removes part of the cell's fluorescence. Without a reference, the recovery curve peaks and then falls. On our example, leaving the reference out gives a mobile fraction of 0.60 and a half-time of 1.73 s instead of 0.80 and 2.78 s.

Is there a FRAP plugin for ImageJ?

Plain ImageJ needs no plugin: the ROI Manager, Multi Measure and Analyze › Tools › Curve Fitting cover it, with a few lines of macro for the normalisation. Fiji update sites and standalone tools such as easyFRAP add batch normalisation and fitting.

Is there an easier way without installing ImageJ?

LabCanvas Image Analysis has a guided FRAP recovery assay in the browser: it finds the bleach frame and the three regions, double normalises, fits the recovery and reports the mobile fraction and t½. It is free with a LabCanvas account.

frap analysis imagejfrap mobile fraction calculationfrap half timedouble normalization frapFRAPfluorescence recovery after photobleachingROI ManagerMulti MeasureCurve Fittingexponential recoveryimmobile fraction

Try it in LabCanvas

Every app is free to start in your browser. Create an account and begin.

Start Image Analysis free in your browser