def measureChannels(ROIset, imp, frameNumber): rm = RoiManager.getInstance() if not rm: rm = RoiManager() nChannels = imp.getNChannels() for channel in range(nChannels): target_imp = extractChannel(imp, channel + 1, frameNumber) target_imp.show() for roi in ROIset: rm.setSelectedIndexes([roi]) IJ.setAutoThreshold(target_imp, "Huang dark") rm.runCommand(target_imp, "Measure") target_imp.close()
# except OSError as e: # if e.errno != errno.EEXIST: # raise Nuclei = Segment_Nuclei(imp1, nucleus_channel) IJ.run( Nuclei, "Analyze Particles...", "size=5000-Infinity pixel circularity=0.3-1.00 add exclude stack") IJ.run("Tile", "") time.sleep(0.2) name1 = imp1.getTitle() nuclei_count = rm.getCount() if rm.getCount() != 0: rois = rm.getIndexes() rm.setSelectedIndexes(rois) if rm.getCount() > 1: rm.runCommand("Combine") rm.runCommand("Delete") rm.runCommand("Add") rois1 = rm.getIndexes() for roi in rois1: rm.select(imp1, roi) imp1.setC(1) IJ.run(imp1, "Draw", "slice") IJ.selectWindow(name1) IJ.run("Select None") print nuclei_count nuclei_count_sum = nuclei_count_sum + nuclei_count
from java.util import Random import random fields = random.sample(range(0, gridSquares), fieldsNeeded) # print fields # convert the list to an array that is usable by ROI Manager from array import array aFields = array('i', [0] * fieldsNeeded) aFields = fields # select the rois and save as temp rm.setSelectedIndexes(aFields) rm.runCommand("save selected", os.path.join(folder, "selected.zip")) # reset ROI mgr, open the temp rm.reset() rm.runCommand("Open", os.path.join(folder, "selected.zip")) # rename the remaining ROIs so that VSI can deal with them # i is the index within ROI Mgr. i+1 is the number given by VSI Reader # get base name of ROIs # searching the last 5 characters for the hashmark because there are usually 2 in the ROI name oldname = rm.getName(0) hashPos = oldname.find("#",-5) + 1
def adjustRoiAndMeasure(imp, frameNumber, dstDir): rm = RoiManager.getInstance() if not rm: rm = RoiManager() nROIs = rm.getCount() indexlist = range(nROIs) if nROIs > 2: for roi in indexlist: indexlist_copy = list(indexlist) del indexlist_copy[roi] rm.setSelectedIndexes(indexlist_copy) rm.runCommand(imp, "Combine") IJ.run(imp, "Make Inverse", "") rm.addRoi(imp.getRoi()) new_nROI = rm.getCount() rm.setSelectedIndexes([roi, new_nROI - 1]) rm.runCommand(imp, "AND") if imp.getRoi(): rm.addRoi(imp.getRoi()) rm.setSelectedIndexes([new_nROI]) rm.runCommand("Rename", "Cell" + str(roi)) else: rm.setSelectedIndexes([roi]) rm.addRoi(imp.getRoi()) rm.setSelectedIndexes([new_nROI - 1]) rm.runCommand(imp, "Delete") elif nROIs == 2: for roi in indexlist: indexlist_copy = list(indexlist) del indexlist_copy[roi] rm.setSelectedIndexes(indexlist_copy) IJ.run(imp, "Make Inverse", "") rm.addRoi(imp.getRoi()) new_nROI = rm.getCount() rm.setSelectedIndexes([roi, new_nROI - 1]) rm.runCommand(imp, "AND") rm.addRoi(imp.getRoi()) rm.setSelectedIndexes([new_nROI]) rm.runCommand("Rename", "Cell" + str(roi)) rm.setSelectedIndexes([new_nROI - 1]) rm.runCommand(imp, "Delete") elif nROIs == 1: nROIs = 0 new_nROI = 1 rm.setSelectedIndexes([new_nROI]) rm.runCommand("Rename", "Cell0") else: return adjustedROIs = range(nROIs, new_nROI, 1) rm.setSelectedIndexes(adjustedROIs) measureChannels(adjustedROIs, imp, frameNumber) rm.setSelectedIndexes(adjustedROIs) rm.runCommand("Save selected", dstDir + "\\Frame " + str(frameNumber + 1) + " roi set.zip") rm.runCommand(imp, "Deselect") rm.runCommand(imp, "Delete")
rm.runCommand( "Save", analysisOut + File.separatorChar + "ROIindividual_wt" + ".zip") if image == newPaths[1]: rm.runCommand( "Save", analysisOut + File.separatorChar + "ROIindividual_dic" + ".zip") if image == newPaths[2]: rm.runCommand( "Save", analysisOut + File.separatorChar + "ROIindividual_mut" + ".zip") if image == newPaths[3]: rm.runCommand( "Save", analysisOut + File.separatorChar + "ROIindividual_bg" + ".zip") rm.setSelectedIndexes(range(0, rct - 1)) x = rm.getSelectedIndexes() rm.runCommand("Deselect") rm.setSelectedIndexes(x) rm.runCommand("Delete") rm.select(0) if image == newPaths[0]: rm.runCommand( "Save", analysisOut + File.separatorChar + "ROIcombo_wt" + ".zip") if image == newPaths[1]: rm.runCommand( "Save", analysisOut + File.separatorChar + "ROIcombo_dic" + ".zip") if image == newPaths[2]: rm.runCommand( "Save", analysisOut + File.separatorChar + "ROIcombo_mut" + ".zip") if image == newPaths[3]: