ImageJ宏在ROI分析过程中出现循环错误的技术求助
共聚焦显微镜图像cFos分析问题排查
我正在针对cFos分析处理共聚焦显微镜图像:从最大投影(maxstacked)图像中提取DAPI的ROI,再放大该ROI以检测转基因标记Piezo1的表达水平,以此验证Piezo1的表达是否与cFos水平升高相关。
此前我通过两次不同处理DAPI图像提取ROI的方法可正常运行,但存在两组ROI顺序可能不一致的问题。于是我尝试直接放大DAPI提取的ROI,却遇到了循环分析故障:宏陷入无限运行状态,重复保存同名文件,还会跳过文件数组中的部分文件。
存在问题的宏代码
dir1 = getDirectory("Choose Source Directory "); dir2 = getDirectory("Choose Destination Directory "); list = getFileList(dir1); Array.sort(list); run("Clear Results"); setBatchMode(true); for (i=0; i<list.length; i++) { if (endsWith(list[i],"tif")) { showProgress(i+1, list.length); open(dir1+list[i]); title = getTitle(); saveFilename = replace(list[i], "_Maxstacked.tif",""); selectWindow(title); run("Duplicate...", "title=DAPI duplicate channels=4");; selectWindow("DAPI"); run("Subtract Background...", "rolling=80"); run("Gaussian Blur...", "sigma=1"); run("8-bit"); run("Auto Threshold", "method=Li white"); run("Convert to Mask"); run("Minimum...", "radius=8"); run("Maximum...", "radius=9"); run("Watershed"); run("Analyze Particles...", "size=20-1000 display exclude clear include overlay add"); roiN = roiManager("count"); if (roiN > 0) { roiManager("Save", dir2+saveFilename+"_DAPI+_RoiSet.zip"); for(i=0; i<roiN; i++) { roiManager("Select", i); run("Enlarge...", "enlarge=2.7"); roiManager("Update"); } roiManager("Save", dir2+saveFilename+"_DAPI+_for_Piezo1_RoiSet.zip"); roiManager("Delete"); roiManager("Delete"); } close("*"); } }
可正常运行的宏代码
dir1 = getDirectory("Choose Source Directory "); dir2 = getDirectory("Choose Destination Directory "); list = getFileList(dir1); Array.sort(list); run("Clear Results"); setBatchMode(true); for (i=0; i<list.length; i++) { if (endsWith(list[i],"tif")) { showProgress(i+1, list.length); open(dir1+list[i]); title = getTitle(); saveFilename = replace(list[i], "_Maxstacked.tif",""); selectWindow(title); run("Duplicate...", "title=DAPI duplicate channels=4"); selectWindow(title); run("Duplicate...", "title=DAPI_for_Piezo1 duplicate channels=4"); selectWindow("DAPI"); run("Subtract Background...", "rolling=80"); run("Gaussian Blur...", "sigma=1"); run("8-bit"); run("Auto Threshold", "method=Li white"); run("Convert to Mask"); run("Minimum...", "radius=8"); run("Maximum...", "radius=9"); run("Watershed"); run("Analyze Particles...", "size=20-1000 display exclude clear include overlay add"); roiN = roiManager("count"); if (roiN > 0) { roiManager("Save", dir2+saveFilename+"_DAPI+_RoiSet.zip"); roiManager("Delete"); } selectWindow("DAPI"); run("Subtract Background...", "rolling=80"); run("Gaussian Blur...", "sigma=1"); run("8-bit"); run("Auto Threshold", "method=Li white"); run("Convert to Mask"); run("Minimum...", "radius=8"); run("Maximum...", "radius=16"); run("Watershed"); run("Analyze Particles...", "size=20-1000 display exclude clear include overlay add"); roiN = roiManager("count"); if (roiN > 0) { roiManager("Save", dir2+saveFilename+"_DAPI+_for_Piezo1_RoiSet.zip"); roiManager("Delete"); } close("*"); } }
内容的提问来源于stack exchange,提问作者postdoc0115
相关产品推荐
相关产品推荐

