Subtract the donor and acceptor bleed-through from the FRET signal image and create a corrected FRET (cFRET) image. This procedure is automatically performed by the home-made ImageJ macro described below.
Notes:
-
To use the following ImageJ macro, save the macro text as .txt format in the Macro subfolder in the ImageJ directory. Install the macro (Plugins > Macros > Install). Run the macro (Plugins > Macros > macro name).
-
Before executing this ImageJ macro, uncheck “Scale when converting” (Edit menu > Options > Conversions… ).
setBatchMode(true); //Batchmode ON
// setBatchMode(false); //Batchmode OFF
dir1 = getDirectory("Select mCerulean folder");
//Select the folder in which the mCerulean images are saved
dir2 = getDirectory("Select mVenus folder");
//Select the folder in which the mVenus images are saved
dir3 = getDirectory("Select FRET signal folder");
//Select the folder in which the FRET images are saved
dir4 = getDirectory("Select cFRET folder");
//Select the folder in which the cFRET images are to be saved
list1 = getFileList(dir1);
list2 = getFileList(dir2);
list3 = getFileList(dir3);
A = getNumber("Enter donor BT",0);
B = getNumber("Enter acceptor BT",0);
for (i = 0; i < list1.length; i++){
open(dir1 + list1[i]);
c = getTitle();
run("32-bit");
//convert 8 bit image to 32 bit image
run("Duplicate...", "title=mc");
run("Select All");
setColor(A);
fill();
imageCalculator("Multiply", "mc", c);
open(dir2 + list2[i]);
v = getTitle();
run("32-bit");
run("Duplicate...", "title=mv");
run("Select All");
setColor(B);
fill();
imageCalculator("Multiply", "mv", v);
open(dir3 + list3[i]);
f = getTitle();
run("32-bit");
imageCalculator("Subtract", f, "mc");
imageCalculator("Subtract", f, "mv");
run("8-bit");
retstr = split(f,"_");
Save_name = dir4 + retstr[0] + "_cF";
saveAs("Tiff", Save_name);
run("Close All");
}
Segment the plasma membrane and evaluate the proximity ratio on the plasma membrane. This procedure is automatically performed by the home-made ImageJ macro described below.
Notes:
-
Representative images of the segmented plasma membrane are shown in Figure 5.
-
Representative results of quantification of the proximity ratio are shown in Figure 6.

Figure 5. Representative images of the original membrane and segmented plasma membrane. Scale bars = 5 μm.

Figure 6. Representative results of the quantification of FRET efficiency. Representative data from cells expressing one type of fluorescent protein-tagged P-gp in the absence or presence of the transport substrate verapamil. Each value was obtained from a single cell. Average ratio indicates the proximity ratio.
setBatchMode(true); //Batchmode ON
//setBatchMode(false); //Batchmode OFF
dir1 = getDirectory("Select mVenus folder");
//Select the folder in which the mVenus images are saved
dir2 = getDirectory("Select mCerulean folder");
//Select the folder in which the mCerulean images are saved
dir3 = getDirectory("Select cFRET folder");
//Select the folder in which the cFRET images are saved
dir4 = getDirectory("Select ROI folder");
//Select the folder in which the ROI information is to be saved
dir5 = getDirectory("Select PM folder");
//Select the folder in which the segmented plasma membranes are to be saved
dir6 = getDirectory("Select ratio image folder");
//Select the folder in which the ratio images are to be saved
list1 = getFileList(dir1);
list2 = getFileList(dir2);
list3 = getFileList(dir3);
//Segmentation of the plasma membrane from a mVenus image
for (i = 0; i < list1.length; i++){
open(dir1 + list1[i]);
Ori_name = getTitle(); //Get name of the image
run("Duplicate...", Ori_name);
//For segmentation of the plasma membrane, duplicate the original image
run("Subtract Background...", "rolling=10");
//Subtract background. ***Rolling ball radius should be optimized to avoid removing any objects***
run("Enhance Contrast...", "saturated=0.4 normalize");
run("Auto Local Threshold", "method=Phansalkar radius=15 parameter_1=0 parameter_2=0 white");
//***To choose the most suitable method when making a binary image, try all methods (Image > Adjust > Auto Local Threshold > Method “Try all”)***
run("Options...", "iterations=1 count=3 black do=Open");
//Smoothen the plasma membrane by "Open (Dilute after Erode)"
run("Analyze Particles...", "size=1-100 pixel include add");
setForegroundColor(0,0,0);
roiManager("deselect");
roiManager("Fill");
// Delete objects less than 100 pixels
setOption("BlackBackground", true);
run("Erode");
roiManager("Delete");
run("Analyze Particles...", "size=50-Infinity pixel circularity=0.00-0.3 add");
// Select objects with size more than 50 pixels and circularity less than 0.3
run("Select All");
//Select all ROI
roiManager("Combine");
//Combine all ROI
setBackgroundColor(0, 0, 0);
run("Clear Outside");
//Delete outside of the ROI in mVenus image
Save_name = dir5 + "mem_" + Ori_name;
saveAs("Tiff", Save_name);
close();
selectImage(1);
setOption("Show All",true);
roiManager("Measure");
Save_name = dir4 + "ROI_" + Ori_name + ".zip";
roiManager("Save", Save_name); //Save ROI information
close();
roiManager("Delete");
}
list4 = getFileList(dir4);
//Evaluation of the proximity ratio from mCerulean and cFRET images
for (i = 0; i < list2.length; i++){
open(dir2 + list2[i]);
//Open mCerulean image
Ori_name = getTitle();
open(dir3 + list3[i]);
//Open cFRET image
run("Images to Stack", "name=Stack title=[] use keep");
setSlice(2);
run("Add Slice");
setSlice(1); //Select mCerulean image
roiManager("Open", dir4 + list4[i]);
run("Select All");
roiManager("Combine");
setBackgroundColor(0, 0, 0);
run("Clear Outside","Slice");
//Delete outside of the ROI in the mCerulean image
for(ii = 0; ii < getWidth(); ii ++){
for(iii = 0; iii < getHeight(); iii ++){
val = getPixel(ii,iii);
if(val > 0){
setSlice(2);
val2 = getPixel(ii,iii);
ratio = val2 / val;
//Calculate the proximity ratio (pixel value of cFRET image / pixel value of mCerulean image)
sum += ratio;
count += 1;
setSlice(3);
ratiop = ratio * 100;
setPixel(ii, iii, ratiop);
setSlice(1);
}
}
}
updateDisplay();
Save_name = dir6 + "ratio_" + Ori_name;
saveAs("Tiff", Save_name);
ratiom = sum / count;
//Divide total proximity ratio by the counted pixel number
ar = newArray(sum, count, ratiom);
Array.print(ar);
//show sum of the proximity ratio, pixel numbers of the plasma membrane, and average of the proximity ratio on the Log window
sum = 0;
count = 0;
run("Close All");
roiManager("Delete");
}