def analyze(conn, plate, pipeline): warnings.filterwarnings('ignore') print("analyzing...") # Set Cell Output Directory new_output_directory = os.path.normcase(tempfile.mkdtemp()) cpprefs.set_default_output_directory(new_output_directory) wells = list(plate.listChildren()) wells = wells[0:5] # use the first 5 wells for count, well in enumerate(wells): # Load a single Image per Well image = well.getImage(0) print(image.getName()) pixels = image.getPrimaryPixels() size_c = image.getSizeC() # For each Image in OMERO, we copy pipeline and inject image modules pipeline_copy = pipeline.copy() # Inject image for each Channel (pipeline only handles 2 channels) for c in range(0, size_c): plane = pixels.getPlane(0, c, 0) image_name = image.getName() # Name of the channel expected in the pipeline if c == 0: image_name = 'OrigBlue' if c == 1: image_name = 'OrigGreen' inject_image_module = InjectImage(image_name, plane) inject_image_module.set_module_num(1) pipeline_copy.add_module(inject_image_module) pipeline_copy.run() # Results obtained as CSV from Cell Profiler path = new_output_directory + '/Nuclei.csv' save_results(conn, path, image) print("analysis done")
def analyze(plate, pipeline): warnings.filterwarnings('ignore') print("analyzing...") # Set Cell Output Directory new_output_directory = os.path.normcase(tempfile.mkdtemp()) cpprefs.set_default_output_directory(new_output_directory) files = list() wells = list(plate.listChildren()) wells = wells[0:5] # use the first 5 wells plate_id = plate.getId() for count, well in enumerate(wells): # Load a single Image per Well image = well.getImage(0) print(image.getName()) data = load_dask_array_from_s3(plate_id, (well.row + 1) * (well.column + 1) - 1) size_c = image.getSizeC() # For each Image in OMERO, we copy pipeline and inject image modules pipeline_copy = pipeline.copy() # Inject image for each Channel (pipeline only handles 2 channels) for c in range(0, size_c): plane = data[0, c, 0, :, :] image_name = image.getName() # Name of the channel expected in the pipeline if c == 0: image_name = 'OrigBlue' if c == 1: image_name = 'OrigGreen' inject_image_module = InjectImage(image_name, plane) inject_image_module.set_module_num(1) pipeline_copy.add_module(inject_image_module) pipeline_copy.run() # Results obtained as CSV from Cell Profiler path = new_output_directory + '/Nuclei.csv' files.append(path) print("analysis done") return files