コード例 #1
0
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()
コード例 #2
0
        #       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
コード例 #3
0
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
コード例 #4
0
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")
コード例 #5
0
     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]: