// Viability Assay Nuclear Segmentation nuc_diam_sm = 16; // Small nucleus diameter nuc_diam_lg = 23; // Large nucleus diameter // ======================================== roiManager("reset"); stk = getTitle(); pardir = getInfo("image.directory"); title = File.getNameWithoutExtension(pardir+stk); // Make save directory (if not already present) svdir = pardir+File.separator+"processing"; File.makeDirectory(svdir); // Get Avg IP (for Cerna scope) run("Z Project...", "projection=[Average Intensity]"); aip = getTitle(); // Spatial Bandpass Filter run("Duplicate...", " "); filt = getTitle(); run("Bandpass Filter...", "filter_large=&nuc_diam_lg filter_small=&nuc_diam_sm suppress=None tolerance=5 autoscale saturate"); // Threshold filtered image run("Duplicate...", " "); thresh = getTitle(); setAutoThreshold("Triangle dark"); run("Threshold..."); // ==== MANUAL BREAK ==== set threshold waitForUser("Verify thresholding value - DO NOT CLICK APPLY"); getThreshold(lower, upper); setThreshold(lower, upper); run("Convert to Mask"); // Make ROIs run("Distance Transform Watershed", "distances=[Weights (5,7)] output=[16 bits] normalize dynamic=1 connectivity=8"); roimap = getTitle(); run("Duplicate...", aip+"_dist"); setThreshold(1, 65535); setOption("BlackBackground", false); run("Convert to Mask"); run("Analyze Particles...", "clear add"); // Save ROI file roiManager("show none"); roiManager("show all"); roiManager("save", svdir+File.separator+title+"_roi.zip"); run("Tile"); roiManager("count"); // Measure stats for cells selectWindow(aip); run("Input/Output...", "jpeg=85 gif=-1 file=.csv use_file copy_column copy_row save_column save_row"); run("Set Measurements...", "area mean centroid redirect=None decimal=3"); roiManager("multi-measure measure_all"); // Save results saveAs("Results", svdir+File.separator+title+"_results.csv"); close("Results"); selectWindow(aip); close("*");