宏(Macro)指将一系列命令或操作组织在一起,作为一个独立的命令来执行特定任务。对多张免疫荧光染色图象进行共定位分析时,使用Macro功能可以极大提高处理效率。本文章将演示如何使用Macro测量不同通道表达区域及共表达区域的面积。
原理
对单张图片进行测量时,我们的步骤大致如下:
- 打开图片,分离通道;
- 对需要进行共定位分析的通道分别进行:①调整threshold至合适区间,点击Apply;②点击
Edit-Section-Create Section选中表达区域;③Ctrl+M测量表达区域面积;
- 点击Process-Image Calculator,Image1和Image2分别选择两张通道的图片,Operation选择“AND”,然后点击OK,生成两张照片的叠加图。
- 选中叠加后的图片,点击
Edit-Section-Create Section选中共表达区域;
Ctrl+M测量共表达区域的面积。
使用宏可以自动进行上述操作进行分析,借此可以实现对多张图象的快速处理。
准备工作
建立文件夹
在所需要的地方分别建立输入及输出文件夹,本文章中将输入文件夹命名为input,将输出文件夹命名为output_coexpression。
确定合适的Threshold模式
点击Image-Adjust-Auto Threshold,软件会生成多张按照不同Threshold模式调整后的预览图。每张预览图的正中下方边缘写有该图片所选择的Threshold模式;选择自己觉得最合适的预览图,并记下这张图所使用的模式。
本篇文章将使用RenyiEntropy模式进行调整。
宏
点击Plugins-Macros-Record,在弹出窗口内输入以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| inputDir = "E:/医学/免疫荧光/20260430-A2-A4/input/"; outputDir = "E:/医学/免疫荧光/20260430-A2-A4/output_coexpression/";
fileList = getFileList(inputDir);
run("Set Measurements...", "area mean min integrated area_fraction limit redirect=None decimal=3");
for (i = 0; i < fileList.length; i++) { fileName = fileList[i]; if (endsWith(fileName, ".oir")) { baseName = substring(fileName, 0, lastIndexOf(fileName, ".")); open(fileName); run("Split Channels"); selectImage("C2-" + baseName + ".oir"); setMinAndMax(1347, 2018); setAutoThreshold("RenyiEntropy dark no-reset"); run("Convert to Mask"); run("Create Selection"); run("Measure"); selectImage("C3-" + baseName + ".oir"); setMinAndMax(1007, 1267); setAutoThreshold("RenyiEntropy dark no-reset"); run("Convert to Mask"); run("Create Selection"); run("Measure"); print("已应用记录的参数到文件: " + fileName); imageCalculator("AND create", "C2-" + baseName + ".oir","C3-" + baseName + ".oir"); selectImage("Result of " + "C2-" + baseName + ".oir"); run("Create Selection"); run("Measure");
saveAs("Results", outputDir + baseName + "_Results.csv"); run("Clear Results");
run("Close All"); print("已处理: " + fileName + " (" + (i+1) + "/" + fileList.length + ")"); } }
print("批量处理完成!共处理了 " + fileList.length + " 个文件。"); showMessage("处理完成", "共处理了 " + fileList.length + " 个文件。");
|
Ctrl+A全选,然后点击Run即可。