# HG changeset patch # User bgruening # Date 1612605659 0 # Node ID 33bf7aa4e68415b8851199c8f037479def370219 "planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools commit 35da2dcd86747c9bff138e100dbe08c6106f3780" diff -r 000000000000 -r 33bf7aa4e684 color_to_gray.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/color_to_gray.py Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,159 @@ +#!/usr/bin/env python + +import argparse +import json + +from cp_common_functions import get_json_value +from cp_common_functions import get_pipeline_lines +from cp_common_functions import get_total_number_of_modules +from cp_common_functions import INDENTATION +from cp_common_functions import update_module_count +from cp_common_functions import write_pipeline + +MODULE_NAME = "ColorToGray" +OUTPUT_FILENAME = "output.cppipe" + + +def build_ctg_header(module_name, module_number): + """Creates the first line of a module given the name and module number""" + result = "|".join([f"{module_name}:[module_num:{module_number}", + "svn_version:\\'Unknown\\'", + "variable_revision_number:4", + "show_window:True", + "notes:\\x5B\\'Convert the color image to grayscale.\\'\\x5D", + "batch_state:array(\\x5B\\x5D, dtype=uint8)", + "enabled:True", + "wants_pause:False]\n"]) + return result + + +def build_main_block(input_params): + """Creates the main block of the CP pipeline with the parameters that don't depend on conditional choices""" + result = INDENTATION.join([f"{INDENTATION}Select the input image:{get_json_value(input_params,'name_input_image')}\n", + f"Conversion method:{get_json_value(input_params,'con_conversion_method.conversion_method')}\n", + f"Image type:{get_json_value(input_params,'con_conversion_method.con_image_type.image_type')}\n", + ]) + + conversion_method = get_json_value(input_params, 'con_conversion_method.conversion_method') + + image_type = get_json_value(input_params, 'con_conversion_method.con_image_type.image_type') + rgb_comb_name_out = "OrigGray" + combine_w_red = 1.0 + combine_w_green = 1.0 + combine_w_blue = 1.0 + + split_red = "Yes" + split_green = "Yes" + split_blue = "Yes" + red_output_name = "OrigRed" + green_output_name = "OrigGreen" + blue_output_name = "OrigBlue" + + split_hue = "Yes" + split_saturation = "Yes" + split_value = "Yes" + hue_output_name = "OrigHue" + saturation_output_name = "OrigSaturation" + value_output_name = "OrigValue" + + channel_count = 1 + if conversion_method == "Combine": + if image_type == "RGB" or image_type == "HSV": + rgb_comb_name_out = get_json_value(input_params, 'con_conversion_method.name_output_image') + combine_w_red = get_json_value(input_params, 'con_conversion_method.con_image_type.weight_red_channel') + combine_w_green = get_json_value(input_params, 'con_conversion_method.con_image_type.weight_green_channel') + combine_w_blue = get_json_value(input_params, 'con_conversion_method.con_image_type.weight_blue_channel') + elif conversion_method == "Split": + if image_type == "RGB": + split_red = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_red.yes_no') + red_output_name = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_red.name_output_image') + split_green = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_green.yes_no') + green_output_name = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_green.name_output_image') + split_blue = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_blue.yes_no') + blue_output_name = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_blue.name_output_image') + elif image_type == "HSV": + split_hue = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_hue.yes_no') + hue_output_name = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_hue.name_output_image') + split_saturation = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_saturation.yes_no') + saturation_output_name = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_saturation.name_output_image') + split_value = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_value.yes_no') + value_output_name = get_json_value(input_params, 'con_conversion_method.con_image_type.con_convert_value.name_output_image') + + result += INDENTATION.join( + [f"{INDENTATION}Name the output image:{rgb_comb_name_out}\n", + f"Relative weight of the red channel:{str(combine_w_red)}\n", + f"Relative weight of the green channel:{str(combine_w_green)}\n", + f"Relative weight of the blue channel:{str(combine_w_blue)}\n", + + f"Convert red to gray?:{split_red}\n", + f"Name the output image:{red_output_name}\n", + f"Convert green to gray?:{split_green}\n", + f"Name the output image:{green_output_name}\n", + f"Convert blue to gray?:{split_blue}\n", + f"Name the output image:{blue_output_name}\n", + + f"Convert hue to gray?:{split_hue}\n", + f"Name the output image:{hue_output_name}\n", + f"Convert saturation to gray?:{split_saturation}\n", + f"Name the output image:{saturation_output_name}\n", + f"Convert value to gray?:{split_value}\n", + f"Name the output image:{value_output_name}\n" + ]) + + channel_count = 1 + if image_type == "Channels": + channels = input_params['con_conversion_method']['con_image_type']['rpt_channel'] + channel_count = len(channels) + result += INDENTATION.join( + [f"{INDENTATION}Channel count:{channel_count}\n" + ]) + + for ch in channels: + rel_weight_ch = 1.0 + image_name = "Channel1" + if conversion_method == "Combine": + rel_weight_ch = get_json_value(ch, 'weight_of_channel') + else: + image_name = get_json_value(ch, 'image_name') + result += INDENTATION.join( + [f"{INDENTATION}Channel number:{get_json_value(ch,'channel_no')}\n", + f"Relative weight of the channel:{str(rel_weight_ch)}\n", + f"Image name:{image_name}\n" + ]) + else: + result += INDENTATION.join( + [f"{INDENTATION}Channel count:{channel_count}\n", + "Channel number:Red\\x3A 1\n", + "Relative weight of the channel:1.0\n", + "Image name:Channel1\n" + ]) + + return result + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + '-p', '--pipeline', + help='CellProfiler pipeline' + ) + parser.add_argument( + '-i', '--inputs', + help='JSON inputs from Galaxy' + ) + args = parser.parse_args() + + pipeline_lines = get_pipeline_lines(args.pipeline) + inputs_galaxy = json.load(open(args.inputs, "r")) + + current_module_num = get_total_number_of_modules(pipeline_lines) + current_module_num += 1 + pipeline_lines = update_module_count(pipeline_lines, current_module_num) + + header_block = build_ctg_header(MODULE_NAME, current_module_num) + main_block = build_main_block(inputs_galaxy) + + module_pipeline = f"\n{header_block}{main_block}\n" + pipeline_lines.append(module_pipeline) + + write_pipeline(OUTPUT_FILENAME, pipeline_lines) diff -r 000000000000 -r 33bf7aa4e684 cp_common_functions.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cp_common_functions.py Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,62 @@ +INDENTATION = " " +LINE_NUM_MODULES = 4 + + +def get_json_value(json_input, keys_path): + """Returns the value specified in keys_path (using dot notation) or an empty string if the key doesn't exist""" + if not isinstance(json_input, dict): + return "" + keys = keys_path.split(".") + try: + value = json_input[keys[0]] + for key in keys[1:]: + value = value[key] + return value + except KeyError: + return "" + + +def concat_conditional(a, b): + if a == "" or b == "": + return "" + else: + return f"{a}_{b}" + + +def get_total_number_of_modules(pipeline_lines): + """Gets the number of modules from the header of the previous pipeline""" + number_of_modules = pipeline_lines[LINE_NUM_MODULES].strip().split(':')[1] + return int(number_of_modules) + + +def get_pipeline_lines(input_pipeline): + """Returns a list with the lines in the .cppipe file""" + with open(input_pipeline) as f: + lines = f.readlines() + return lines + + +def update_module_count(pipeline_lines, count): + """Updates the number of modules in the .cppipe header""" + module_count_entry = pipeline_lines[LINE_NUM_MODULES].strip().split(':')[0] + pipeline_lines[4] = f"{module_count_entry}:{count}\n" + return pipeline_lines + + +def write_pipeline(filename, lines_pipeline): + """Writes the lines composing the pipeline into a file""" + with open(filename, "w") as f: + f.writelines(lines_pipeline) + + +def build_header(module_name, module_number): + """Creates the first line of a module given the name and module number""" + result = "|".join([f"{module_name}:[module_num:{module_number}", + "svn_version:\\'Unknown\\'", + "variable_revision_number:4", + "show_window:False", + "notes:\\x5B\\x5D", + "batch_state:array(\\x5B\\x5D, dtype=uint8)", + "enabled:True", + "wants_pause:False]\n"]) + return result diff -r 000000000000 -r 33bf7aa4e684 image_math.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/image_math.py Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,135 @@ +#!/usr/bin/env python + +import argparse +import json + +from cp_common_functions import build_header +from cp_common_functions import concat_conditional +from cp_common_functions import get_json_value +from cp_common_functions import get_pipeline_lines +from cp_common_functions import get_total_number_of_modules +from cp_common_functions import INDENTATION +from cp_common_functions import update_module_count +from cp_common_functions import write_pipeline + +MODULE_NAME = "ImageMath" +OUTPUT_FILENAME = "output.cppipe" + +operator_map = { + "add": "Add", + "subtract": "Subtract", + "multiply": "Multiply", + "divide": "Divide", + "average": "Average", + "minimum": "Minimum", + "maximum": "Maximum", + "invert": "Invert", + "log_2": "Log transform (base 2)", + "log_legacy": "Log transform (legacy)", + "and": "And", + "or": "Or", + "not": "Not", + "equals": "Equals" +} + + +def build_main_block(input_params): + """Creates the main block of the CP pipeline with the parameters that don't depend on conditional choices""" + operation = operator_map[get_json_value( + input_params, 'operation.operation')] + result = INDENTATION.join([f"{INDENTATION}Operation:{operation}\n", + f"Raise the power of the result by:{get_json_value(input_params,'operation.op_results.raise_the_power_of_the_result_by')}\n", + f"Multiply the result by:{get_json_value(input_params,'operation.op_results.multiply_the_result_by')}\n", + f"Add to result:{get_json_value(input_params,'operation.op_results.add_to_result')}\n", + f"Set values less than 0 equal to 0?:{get_json_value(input_params,'operation.op_results.set_values_less_than_0_equal_to_0')}\n", + f"Set values greater than 1 equal to 1?:{get_json_value(input_params,'operation.op_results.set_values_greater_than_1_equal_to_1')}\n", + f"Ignore the image masks?:{get_json_value(input_params,'ignore_the_image_masks')}\n", + f"Name the output image:{get_json_value(input_params,'name_output_image')}" + ]) + return result + + +def build_variable_block(inputs_galaxy): + result = "" + first_image_block = build_first_image_block( + get_json_value(inputs_galaxy, 'operation.first_image')) + result += f"\n{first_image_block}" + second_image_block = build_second_image_block( + get_json_value(inputs_galaxy, 'operation.second_image')) + result += f"\n{second_image_block}" + return result + + +def build_first_image_block(input_params): + """Creates the block of parameters for the first operator in operations""" + + value_select = get_json_value( + input_params, 'image_or_measurement_first.image_or_measurement_first') + image_name = get_json_value( + input_params, 'image_or_measurement_first.select_the_first_image') + value_multiply = get_json_value( + input_params, 'multiply_the_first_image_by') + category = get_json_value( + input_params, 'image_or_measurement_first.category_first.category_first') + measurement = get_json_value( + input_params, 'image_or_measurement_first.category_first.measurement_first') + + result = INDENTATION.join( + [f"{INDENTATION}Image or measurement?:{value_select}\n", + f"Select the first image:{image_name}\n", + f"Multiply the first image by:{value_multiply}\n", + f"Measurement:{concat_conditional(category, measurement)}" + ]) + return result + + +def build_second_image_block(input_params): + """Creates the block of parameters for the second operator in binary operations""" + + value_select = get_json_value( + input_params, 'image_or_measurement_second.image_or_measurement_second') + image_name = get_json_value( + input_params, 'image_or_measurement_second.select_the_second_image') + value_multiply = get_json_value( + input_params, 'multiply_the_second_image_by') + category = get_json_value( + input_params, 'image_or_measurement_second.category_second.category_second') + measurement = get_json_value( + input_params, 'image_or_measurement_second.category_second.measurement_second') + + result = INDENTATION.join( + [f"{INDENTATION}Image or measurement?:{value_select}\n", + f"Select the second image:{image_name}\n", + f"Multiply the second image by:{value_multiply}\n", + f"Measurement:{concat_conditional(category, measurement)}" + ]) + return result + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + '-p', '--pipeline', + help='CellProfiler pipeline' + ) + parser.add_argument( + '-i', '--inputs', + help='JSON inputs from Galaxy' + ) + args = parser.parse_args() + + pipeline_lines = get_pipeline_lines(args.pipeline) + inputs_galaxy = json.load(open(args.inputs, "r")) + + current_module_num = get_total_number_of_modules(pipeline_lines) + current_module_num += 1 + pipeline_lines = update_module_count(pipeline_lines, current_module_num) + + header_block = build_header(MODULE_NAME, current_module_num) + main_block = build_main_block(inputs_galaxy) + variable_block = build_variable_block(inputs_galaxy) + + module_pipeline = f"\n{header_block}{main_block}{variable_block}\n" + pipeline_lines.append(module_pipeline) + + write_pipeline(OUTPUT_FILENAME, pipeline_lines) diff -r 000000000000 -r 33bf7aa4e684 macros.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/macros.xml Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,93 @@ + + 3.1.9 + 3.7 + jpg,png,tiff,bmp,gif,pcx,ppm,psd,pbm,pgm,eps + " " + + + .. class:: infomark + + **Input** + + Existing CellProfiler pipeline file *(.cppipe)* or generated by linking CellProfiler tools. + + .. class:: infomark + + **Output** + + The input CellProfiler pipeline file *(.cppipe)* in addition to the settings of this module. + + .. class:: warningmark + + **IMPORTANT** + + The first tool in a CellProfiler workflow has to be **Starting modules** and the last one **CellProfiler**. You can also execute the entire pipeline with the final CellProfiler tool, in which you feed in the images you want to process as well. + + + + + + + + + + + + + + + + cellprofiler + + + + + + + python + + + + + + + + @article{McQuin_2018, + title = {CellProfiler 3.0: Next-generation image processing for biology}, + author = {McQuin C, Goodman A, Chernyshev V, Kamentsky L, Cimini BA, Karhohs KW, Doan M, Ding L, Rafelski SM, Thirstrup D, Wiegraebe W, Singh S, Becker T, Caicedo JC, Carpenter AE}, + year = {2018}, + volume = {16(7):e2005970}, + DOI = {10.1371/journal.pbio.2005970}, + journal = {PLoS Biol.}, + url = {https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.2005970}, + } + + + + + + + + + + + + + + ^[A-Za-z0-9 _-]*$ + + + + + + + + + + + + + + diff -r 000000000000 -r 33bf7aa4e684 overlay_outlines.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/overlay_outlines.py Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,109 @@ +#!/usr/bin/env python + +import argparse +import json + +from cp_common_functions import get_json_value +from cp_common_functions import get_pipeline_lines +from cp_common_functions import get_total_number_of_modules +from cp_common_functions import INDENTATION +from cp_common_functions import update_module_count +from cp_common_functions import write_pipeline + +MODULE_NAME = "OverlayOutlines" +OUTPUT_FILENAME = "output.cppipe" + + +def build_ctg_header(module_name, module_number): + """Creates the first line of a module given the name and module number""" + result = "|".join([f"{module_name}:[module_num:{module_number}", + "svn_version:\\'Unknown\\'", + "variable_revision_number:4", + "show_window:True", + "notes:\\x5B\\'Overlay the embryo outlines on the grayscale image.\\'\\x5D", + "batch_state:array(\\x5B\\x5D, dtype=uint8)", + "enabled:True", + "wants_pause:False]\n"]) + return result + + +def build_main_block(input_params): + result = f"{INDENTATION}Display outlines on a blank image?:{get_json_value(input_params,'con_blank_img.blank_img')}\n" + + on_blank = get_json_value(input_params, 'con_blank_img.blank_img') + # defaults + img_to_display = "None" + display_mode = get_json_value(input_params, 'con_blank_img.con_display_mode.display_mode') + method_brightness = "Max of image" + howto = get_json_value(input_params, 'howto_outline') + outline_color = "#FF0000" + obj_to_display = "None" + + name_output_img = get_json_value(input_params, 'name_output_image') + + if on_blank == "No": + img_to_display = get_json_value(input_params, 'con_blank_img.image_to_outline') + + result += INDENTATION.join( + [f"{INDENTATION}Select image on which to display outlines:{img_to_display}\n", + f"Name the output image:{name_output_img}\n", + f"Outline display mode:{display_mode}\n" + ]) + + if on_blank == "No" and display_mode == "Grayscale": + method_brightness = get_json_value(input_params, 'con_blank_img.con_display_mode.method_brightness') + + result += INDENTATION.join( + [f"{INDENTATION}Select method to determine brightness of outlines:{method_brightness}\n", + f"How to outline:{howto}\n" + ]) + + obj_outline_str = "" + + if display_mode == "Color": + for obj in input_params['con_blank_img']['con_display_mode']['rpt_obj_to_display']: + outline_color = get_json_value(obj, 'outline_color') + obj_to_display = get_json_value(obj, 'obj_to_display') + obj_outline_str += INDENTATION.join( + [f"{INDENTATION}Select outline color:{outline_color}\n", + f"Select objects to display:{obj_to_display}\n" + ]) + else: # grayscale + for obj in input_params['con_blank_img']['con_display_mode']['rpt_obj_to_display']: + obj_to_display = get_json_value(obj, 'obj_to_display') + obj_outline_str += INDENTATION.join( + [f"{INDENTATION}Select outline color:{outline_color}\n", + f"Select objects to display:{obj_to_display}\n" + ]) + obj_outline_str = obj_outline_str.rstrip("\n") + result += f"{obj_outline_str}" + + return result + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + '-p', '--pipeline', + help='CellProfiler pipeline' + ) + parser.add_argument( + '-i', '--inputs', + help='JSON inputs from Galaxy' + ) + args = parser.parse_args() + + pipeline_lines = get_pipeline_lines(args.pipeline) + inputs_galaxy = json.load(open(args.inputs, "r")) + + current_module_num = get_total_number_of_modules(pipeline_lines) + current_module_num += 1 + pipeline_lines = update_module_count(pipeline_lines, current_module_num) + + header_block = build_ctg_header(MODULE_NAME, current_module_num) + main_block = build_main_block(inputs_galaxy) + + module_pipeline = f"\n{header_block}{main_block}\n" + pipeline_lines.append(module_pipeline) + + write_pipeline(OUTPUT_FILENAME, pipeline_lines) diff -r 000000000000 -r 33bf7aa4e684 starting_modules.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/starting_modules.py Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,223 @@ +import json +import sys + +FOURSPACES = " " + +input_json_path = sys.argv[1] + +params = json.load(open(input_json_path, "r")) + + +def write_images(): + filter_images = params['images']['filter_images'] + + _str = "\nImages:[module_num:1|svn_version:\\'Unknown\\'|variable_revision_number:2|show_window:False|notes:\\x5B\\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False]\n" + _str += FOURSPACES + ":\n" + _str += FOURSPACES + "Filter images?:%s\n" % filter_images + _str += FOURSPACES + "Select the rule criteria:and (extension does isimage) (directory doesnot startwith \".\")\n" + + return _str + + +def write_metadata(): + metadata_extraction = params['metadata']['con_metadata_extraction'] + extract = metadata_extraction['extract'] + + if 'extraction_method' in metadata_extraction: + method_count = len(metadata_extraction['extraction_method']) + else: + method_count = 1 + + _str = "\nMetadata:[module_num:2|svn_version:\\'Unknown\\'|variable_revision_number:4|show_window:False|notes:\\x5B\\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False]\n" + _str += FOURSPACES + "Extract metadata?:%s\n" % extract + + if extract == "No": + _str += FOURSPACES + "Metadata data type:Text\n" + _str += FOURSPACES + "Metadata types:{}\n" + _str += FOURSPACES + "Extraction method count:%d\n" % method_count + _str += FOURSPACES + "Metadata extraction method:Extract from file/folder names\n" + _str += FOURSPACES + "Regular expression to extract from file name:^(?P.*)_(?P\x5BA-P\x5D\x5B0-9\x5D{2})_s(?P\x5B0-9\x5D)_w(?P\x5B0-9\x5D)\n" + _str += FOURSPACES + "Regular expression to extract from folder name:(?P\x5B0-9\x5D{4}_\x5B0-9\x5D{2}_\x5B0-9\x5D{2})$\n" + _str += FOURSPACES + "Extract metadata from:All images\n" + _str += FOURSPACES + "Select the filtering criteria:and (file does contain \"\")\n" + _str += FOURSPACES + "Metadata file location:\n" + _str += FOURSPACES + "Match file and image metadata:\x5B\x5D\n" + _str += FOURSPACES + "Use case insensitive matching?:No\n" + else: + _str += FOURSPACES + "Metadata data type:Text\n" # default Text,not possible to select in Galaxy + _str += FOURSPACES + "Metadata types:{}\n" + _str += FOURSPACES + "Extraction method count:%d\n" % method_count + + for methods in metadata_extraction["extraction_method"]: + _str += FOURSPACES + "Metadata extraction method:%s\n" % methods["metadata_extraction_method"] + _str += FOURSPACES + "Metadata source:%s\n" % methods["con_metadata_source"]["metadata_source"] + + if "file_name_regex" in methods["con_metadata_source"]: + file_regex = methods["con_metadata_source"]["file_name_regex"] + folder_regex = "(?P.*)" + elif "folder_name_regex" in methods["con_metadata_source"]: + file_regex = "(?P.*)_(?P[a-zA-Z0-9]+)" + folder_regex = methods["con_metadata_source"]["folder_name_regex"] + else: + # default regex + file_regex = "(?P.*)_(?P[a-zA-Z0-9]+)" + folder_regex = "(?P.*)" + + _str += FOURSPACES + "Regular expression to extract from file name:%s\n" % file_regex + _str += FOURSPACES + "Regular expression to extract from folder name:%s\n" % folder_regex + + _str += FOURSPACES + "Extract metadata from:%s\n" % methods["con_metadata_extract_from"]["extract_metadata_from"] + + if methods["con_metadata_extract_from"]["extract_metadata_from"] == "Images matching a rule": + rule_str = "" + for r in methods["con_metadata_extract_from"]["r_match"]: + if r["con_match"]["rule_type"] == "extension": + rule_str += " (" + r["con_match"]["rule_type"] + " " + r["con_match"]["operator"] + " " + \ + r["con_match"]["match_type"] + ")" + else: + rule_str += " (" + r["con_match"]["rule_type"] + " " + r["con_match"]["operator"] + " " +\ + r["con_match"]["contain"] + " \"" + r["con_match"]["match_value"] + "\")" + + _str += FOURSPACES + "Select the filtering criteria:" + methods["con_metadata_extract_from"]["match_all_any"] + rule_str + "\n" + else: + _str += FOURSPACES + "Select the filtering criteria:and (file does contain \"\")\n" # this line is required even if it's not used + + _str += FOURSPACES + "Metadata file location:\n" + _str += FOURSPACES + "Match file and image metadata:\x5B\x5D\n" + _str += FOURSPACES + "Use case insensitive matching?:No\n" + + return _str + + +def write_nameandtypes(): + nameandtypes = params['nameandtypes'] + assign_a_name = nameandtypes['con_assign_a_name_to']['assign_a_name_to'] + + if "con_select_image_type" in nameandtypes['con_assign_a_name_to']: + con_set_intensity = nameandtypes['con_assign_a_name_to']['con_select_image_type']['con_set_intensity'] + max_intensity = con_set_intensity['maximum_intensity'] if "maximum_intensity" in con_set_intensity else 255.0 + else: + max_intensity = 255.0 + + pixel_space = nameandtypes['pixel_space'] + + rule_count = len(nameandtypes['con_assign_a_name_to']['r_match_rule']) if "r_match_rule" in nameandtypes['con_assign_a_name_to'] else 1 + + process_3d = nameandtypes['pixel_space']['process_3d'] + x_spacing = 1.0 if "x_spacing" not in pixel_space else pixel_space["x_spacing"] + y_spacing = 1.0 if "y_spacing" not in pixel_space else pixel_space["y_spacing"] + z_spacing = 1.0 if "z_spacing" not in pixel_space else pixel_space["z_spacing"] + + _str = "\nNamesAndTypes:[module_num:3|svn_version:\\'Unknown\\'|variable_revision_number:8|show_window:False|notes:\\x5B\\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\\'\\x5D|batch_state:array(\\x5B\\x5D, dtype=uint8)|enabled:True|wants_pause:False]\n" + + _str += FOURSPACES + "Assign a name to:%s\n" % assign_a_name + + if assign_a_name == "All images": + _str += FOURSPACES + "Select the image type:%s\n" % nameandtypes['con_assign_a_name_to']['con_select_image_type']['select_image_type'] + _str += FOURSPACES + "Name to assign these images:%s\n" % nameandtypes['con_assign_a_name_to']['name_to_assign'] + _str += FOURSPACES + "Match metadata:[]\n" + + _str += FOURSPACES + "Image set matching method:Order\n" + _str += FOURSPACES + "Set intensity range from:%s\n" % con_set_intensity['set_intensity_range_from'] + _str += FOURSPACES + "Assignments count:%s\n" % rule_count + _str += FOURSPACES + "Single images count:0\n" + _str += FOURSPACES + "Maximum intensity:%.1f\n" % max_intensity + _str += FOURSPACES + "Process as 3D?:%s\n" % process_3d + + else: + # the below lines are not relevant to "images matching rules", but needed in pipeline file + _str += FOURSPACES + "Select the image type:Grayscale image\n" + _str += FOURSPACES + "Name to assign these images:DNA\n" + _str += FOURSPACES + "Match metadata:[]\n" + + _str += FOURSPACES + "Image set matching method:%s\n" % nameandtypes['con_assign_a_name_to']['matching_method'] + _str += FOURSPACES + "Set intensity range from:Image metadata\n" + _str += FOURSPACES + "Assignments count:%d\n" % rule_count + _str += FOURSPACES + "Single images count:0\n" + _str += FOURSPACES + "Maximum intensity:%.1f\n" % max_intensity + _str += FOURSPACES + "Process as 3D?:%s\n" % process_3d + + _str += FOURSPACES + "Relative pixel spacing in X:%.1f\n" % x_spacing + _str += FOURSPACES + "Relative pixel spacing in Y:%.1f\n" % y_spacing + _str += FOURSPACES + "Relative pixel spacing in Z:%.1f\n" % z_spacing + + if assign_a_name == "Images matching rules": + for rule in nameandtypes["con_assign_a_name_to"]["r_match_rule"]: + + rule_str = "" + if len(rule["r_match"]) > 0: + for r in rule["r_match"]: + if r["con_match"]["rule_type"] == "file" or r["con_match"]["rule_type"] == "directory": + rule_str += " (" + r["con_match"]["rule_type"] + " " + r["con_match"]["operator"] + " " + \ + r["con_match"]["contain"] + " \"" + r["con_match"]["match_value"] + "\")" + else: + rule_str += " (" + r["con_match"]["rule_type"] + " " + r["con_match"]["operator"] + " " + \ + r["con_match"]["match_type"] + ")" + else: + rule_str = " (file does contain \"\")" # need to have a value even if it is not used + + _str += FOURSPACES + "Select the rule criteria:" + rule["match_all_any"] + rule_str + "\n" + + img_or_obj = rule["con_select_image_type"]["select_image_type"] + + if img_or_obj == "Objects": + _str += FOURSPACES + "Name to assign these images:DNA\n" + _str += FOURSPACES + "Name to assign these objects:%s\n" % rule["con_select_image_type"]["name_to_assign"] + else: + _str += FOURSPACES + "Name to assign these images:%s\n" % rule["con_select_image_type"]["name_to_assign"] + _str += FOURSPACES + "Name to assign these objects:Cell\n" + + _str += FOURSPACES + "Select the image type:%s\n" % img_or_obj + + intensity_range = "Image metadata" # default value + if img_or_obj == "Grayscale image" or img_or_obj == "Color image": + intensity_range = rule["con_select_image_type"]["con_set_intensity"]["set_intensity_range_from"] + + _str += FOURSPACES + "Set intensity range from:%s\n" % intensity_range + + if intensity_range == "Manual": + _str += FOURSPACES + "Maximum intensity:%s\n" % rule["con_select_image_type"]["con_set_intensity"]["maximum_intensity"] + else: + _str += FOURSPACES + "Maximum intensity:255.0\n" + + return _str + + +def write_groups(): + groups = params['groups'] + + _str = "\nGroups:[module_num:4|svn_version:\\'Unknown\\'|variable_revision_number:2|show_window:False|notes:\\x5B\\\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\\'\\x5D|batch_state:array(\\x5B\\x5D, dtype=uint8)|enabled:True|wants_pause:False]\n" + + group_images = groups["con_groups"]["group_images"] + + _str += FOURSPACES + "Do you want to group your images?:%s\n" % group_images + _str += FOURSPACES + "grouping metadata count:1\n" + + if group_images == "Yes": + _str += FOURSPACES + "Metadata category:%s\n" % groups["con_groups"]["group_category"] + else: + _str += FOURSPACES + "Metadata category:None\n" + + return _str + + +with open("output.cppipe", "w") as f: + headers = ["CellProfiler Pipeline: http://www.cellprofiler.org\n", + "Version:3\n", + "DateRevision:319\n", + "GitHash:\n", + "ModuleCount:4\n", + "HasImagePlaneDetails:False", + "\n"] + + f.writelines(headers) + + img_str = write_images() + metadata_str = write_metadata() + nameandtypes_str = write_nameandtypes() + groups_str = write_groups() + + output_str = img_str + metadata_str + nameandtypes_str + groups_str + + f.write(output_str) + f.close() diff -r 000000000000 -r 33bf7aa4e684 starting_modules_groups.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/starting_modules_groups.xml Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,32 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
\ No newline at end of file diff -r 000000000000 -r 33bf7aa4e684 starting_modules_image.xml diff -r 000000000000 -r 33bf7aa4e684 starting_modules_images.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/starting_modules_images.xml Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,10 @@ + + +
+ + + + +
+
+
\ No newline at end of file diff -r 000000000000 -r 33bf7aa4e684 starting_modules_metadata.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/starting_modules_metadata.xml Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
diff -r 000000000000 -r 33bf7aa4e684 starting_modules_nameandtypes.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/starting_modules_nameandtypes.xml Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
diff -r 000000000000 -r 33bf7aa4e684 test-data/ExampleHuman.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/ExampleHuman.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,246 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:300 +GitHash: +ModuleCount:14 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot containregexp "\x5B\\\\\\\\\\\\\\\\/\x5D\\\\\\\\.") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:No + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:^(?P.*)_(?P\x5BA-P\x5D\x5B0-9\x5D{2})_s(?P\x5B0-9\x5D)_w(?P\x5B0-9\x5D) + Regular expression to extract from folder name:(?P\x5B0-9\x5D{4}_\x5B0-9\x5D{2}_\x5B0-9\x5D{2})$ + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:\x5B\x5D + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'DNA\x3A DNA stained with DAPI\', \'PH3\x3A An antibody for phosphorylated histone H3 correlated with mitosis\', \'cellbody\x3A \'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:\x5B\x5D + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:3 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does contain "d0.tif") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Maximum intensity:255.0 + Select the rule criteria:and (file does contain "d1.tif") + Name to assign these images:PH3 + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Maximum intensity:255.0 + Select the rule criteria:and (file does contain "d2.tif") + Name to assign these images:cellbody + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:No + grouping metadata count:1 + Metadata category:None + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nuclei + Typical diameter of objects, in pixel units (Min,Max):8,80 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Intensity + Method to draw dividing lines between clumped objects:Intensity + Size of smoothing filter:10 + Suppress local maxima that are closer than this minimum allowed distance:7.0 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After declumping only + Automatically calculate size of smoothing filter for declumping?:Yes + Automatically calculate minimum allowed distance between local maxima?:Yes + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:No + Threshold setting version:10 + Threshold strategy:Global + Thresholding method:Minimum cross entropy + Threshold smoothing scale:1.3488 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0.0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.0 + Thresholding method:Otsu + +IdentifyPrimaryObjects:[module_num:6|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:PH3 + Name the primary objects to be identified:PH3 + Typical diameter of objects, in pixel units (Min,Max):8,80 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Intensity + Method to draw dividing lines between clumped objects:Intensity + Size of smoothing filter:10 + Suppress local maxima that are closer than this minimum allowed distance:7.0 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After declumping only + Automatically calculate size of smoothing filter for declumping?:Yes + Automatically calculate minimum allowed distance between local maxima?:Yes + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:No + Threshold setting version:10 + Threshold strategy:Global + Thresholding method:Minimum cross entropy + Threshold smoothing scale:1.3488 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0.0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.0 + Thresholding method:Otsu + +RelateObjects:[module_num:7|svn_version:\'Unknown\'|variable_revision_number:3|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Parent objects:Nuclei + Child objects:PH3 + Calculate child-parent distances?:None + Calculate per-parent means for all child measurements?:No + Calculate distances to other parents?:No + Parent name:None + +IdentifySecondaryObjects:[module_num:8|svn_version:\'Unknown\'|variable_revision_number:10|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input objects:Nuclei + Name the objects to be identified:Cells + Select the method to identify the secondary objects:Propagation + Select the input image:cellbody + Number of pixels by which to expand the primary objects:10 + Regularization factor:0.05 + Discard secondary objects touching the border of the image?:No + Discard the associated primary objects?:No + Name the new primary objects:FilteredNuclei + Fill holes in identified objects?:Yes + Threshold setting version:10 + Threshold strategy:Global + Thresholding method:Otsu + Threshold smoothing scale:0.0 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0.0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Three classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.0 + Thresholding method:Otsu + +IdentifyTertiaryObjects:[module_num:9|svn_version:\'Unknown\'|variable_revision_number:3|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the larger identified objects:Cells + Select the smaller identified objects:Nuclei + Name the tertiary objects to be identified:Cytoplasm + Shrink smaller object prior to subtraction?:Yes + +MeasureObjectIntensity:[module_num:10|svn_version:\'Unknown\'|variable_revision_number:3|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Hidden:2 + Select an image to measure:DNA + Select an image to measure:PH3 + Select objects to measure:Nuclei + Select objects to measure:Cells + Select objects to measure:Cytoplasm + +MeasureObjectSizeShape:[module_num:11|svn_version:\'Unknown\'|variable_revision_number:1|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select objects to measure:Nuclei + Select objects to measure:Cells + Select objects to measure:Cytoplasm + Calculate the Zernike features?:Yes + +OverlayOutlines:[module_num:12|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Display outlines on a blank image?:No + Select image on which to display outlines:DNA + Name the output image:OrigOverlay + Outline display mode:Color + Select method to determine brightness of outlines:Max of image + How to outline:Thick + Select outline color:#0080FF + Select objects to display:Cells + Select outline color:blue + Select objects to display:Nuclei + Select outline color:yellow + Select objects to display:PH3 + +SaveImages:[module_num:13|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the type of image to save:Image + Select the image to save:OrigOverlay + Select method for constructing file names:From image filename + Select image name for file prefix:DNA + Enter single file name:OrigBlue + Number of digits:4 + Append a suffix to the image file name?:Yes + Text to append to the image name:_Overlay + Saved file format:png + Output file location:Default Output Folder\x7C + Image bit depth:8-bit integer + Overwrite existing files without warning?:Yes + When to save:Every cycle + Record the file and path information to the saved image?:Yes + Create subfolders in the output folder?:No + Base image folder:Elsewhere...\x7C + +ExportToSpreadsheet:[module_num:14|svn_version:\'Unknown\'|variable_revision_number:12|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the column delimiter:Comma (",") + Add image metadata columns to your object data file?:No + Select the measurements to export:No + Calculate the per-image mean values for object measurements?:No + Calculate the per-image median values for object measurements?:No + Calculate the per-image standard deviation values for object measurements?:No + Output file location:Default Output Folder\x7C + Create a GenePattern GCT file?:No + Select source of sample row name:Metadata + Select the image to use as the identifier:None + Select the metadata to use as the identifier:None + Export all measurement types?:Yes + Press button to select measurements: + Representation of Nan/Inf:NaN + Add a prefix to file names?:No + Filename prefix:MyExpt_ + Overwrite existing files without warning?:Yes + Data to export:Do not use + Combine these object measurements with those of the previous object?:No + File name:DATA.csv + Use the object name for the file name?:Yes diff -r 000000000000 -r 33bf7aa4e684 test-data/color_to_gray.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/color_to_gray.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,79 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +ColorToGray:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\'Convert the color image to grayscale.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:OrigColor + Conversion method:Combine + Image type:RGB + Name the output image:OrigGray + Relative weight of the red channel:1.0 + Relative weight of the green channel:1.0 + Relative weight of the blue channel:1.0 + Convert red to gray?:Yes + Name the output image:OrigRed + Convert green to gray?:Yes + Name the output image:OrigGreen + Convert blue to gray?:Yes + Name the output image:OrigBlue + Convert hue to gray?:Yes + Name the output image:OrigHue + Convert saturation to gray?:Yes + Name the output image:OrigSaturation + Convert value to gray?:Yes + Name the output image:OrigValue + Channel count:1 + Channel number:Red\x3A 1 + Relative weight of the channel:1.0 + Image name:Channel1 + diff -r 000000000000 -r 33bf7aa4e684 test-data/color_to_gray_combine_channels.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/color_to_gray_combine_channels.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,82 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +ColorToGray:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\'Convert the color image to grayscale.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Conversion method:Combine + Image type:Channels + Name the output image:OrigGray + Relative weight of the red channel:1.0 + Relative weight of the green channel:1.0 + Relative weight of the blue channel:1.0 + Convert red to gray?:Yes + Name the output image:OrigRed + Convert green to gray?:Yes + Name the output image:OrigGreen + Convert blue to gray?:Yes + Name the output image:OrigBlue + Convert hue to gray?:Yes + Name the output image:OrigHue + Convert saturation to gray?:Yes + Name the output image:OrigSaturation + Convert value to gray?:Yes + Name the output image:OrigValue + Channel count:2 + Channel number:2 + Relative weight of the channel:0.2 + Image name:Channel1 + Channel number:3 + Relative weight of the channel:0.5 + Image name:Channel1 + diff -r 000000000000 -r 33bf7aa4e684 test-data/color_to_gray_split_channels.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/color_to_gray_split_channels.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,82 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +ColorToGray:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\'Convert the color image to grayscale.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Conversion method:Split + Image type:Channels + Name the output image:OrigGray + Relative weight of the red channel:1.0 + Relative weight of the green channel:1.0 + Relative weight of the blue channel:1.0 + Convert red to gray?:Yes + Name the output image:OrigRed + Convert green to gray?:Yes + Name the output image:OrigGreen + Convert blue to gray?:Yes + Name the output image:OrigBlue + Convert hue to gray?:Yes + Name the output image:OrigHue + Convert saturation to gray?:Yes + Name the output image:OrigSaturation + Convert value to gray?:Yes + Name the output image:OrigValue + Channel count:2 + Channel number:2 + Relative weight of the channel:1.0 + Image name:Image2 + Channel number:3 + Relative weight of the channel:1.0 + Image name:Image3 + diff -r 000000000000 -r 33bf7aa4e684 test-data/color_to_gray_split_hsv.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/color_to_gray_split_hsv.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,79 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +ColorToGray:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\'Convert the color image to grayscale.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Conversion method:Split + Image type:HSV + Name the output image:OrigGray + Relative weight of the red channel:1.0 + Relative weight of the green channel:1.0 + Relative weight of the blue channel:1.0 + Convert red to gray?:Yes + Name the output image:OrigRed + Convert green to gray?:Yes + Name the output image:OrigGreen + Convert blue to gray?:Yes + Name the output image:OrigBlue + Convert hue to gray?:Yes + Name the output image:OutputHue + Convert saturation to gray?:No + Name the output image: + Convert value to gray?:Yes + Name the output image:OutputValue + Channel count:1 + Channel number:Red\x3A 1 + Relative weight of the channel:1.0 + Image name:Channel1 + diff -r 000000000000 -r 33bf7aa4e684 test-data/color_to_gray_split_rgb.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/color_to_gray_split_rgb.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,79 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +ColorToGray:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\'Convert the color image to grayscale.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Conversion method:Split + Image type:RGB + Name the output image:OrigGray + Relative weight of the red channel:1.0 + Relative weight of the green channel:1.0 + Relative weight of the blue channel:1.0 + Convert red to gray?:Yes + Name the output image:OutputRed + Convert green to gray?:Yes + Name the output image:OutputGreen + Convert blue to gray?:No + Name the output image: + Convert hue to gray?:Yes + Name the output image:OrigHue + Convert saturation to gray?:Yes + Name the output image:OrigSaturation + Convert value to gray?:Yes + Name the output image:OrigValue + Channel count:1 + Channel number:Red\x3A 1 + Relative weight of the channel:1.0 + Image name:Channel1 + diff -r 000000000000 -r 33bf7aa4e684 test-data/common-complicated.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/common-complicated.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,73 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:4 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:2 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:Images matching a rule + Select the filtering criteria:and (file does contain "im") (extension does istif) + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + Metadata extraction method:Extract from file/folder names + Metadata source:Folder name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*)_(?P[a-zA-Z0-9]+) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:3 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does contain "im") (image doesnot ismonochrome) + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Objects + Set intensity range from:Image metadata + Maximum intensity:255.0 + Select the rule criteria:and (file does contain "") + Name to assign these images:GFP + Name to assign these objects:Cell + Select the image type:Illumination function + Set intensity range from:Image metadata + Maximum intensity:255.0 + Select the rule criteria:or (extension does istif) + Name to assign these images:Actin + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 diff -r 000000000000 -r 33bf7aa4e684 test-data/common-nogroup.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/common-nogroup.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,73 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:4 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:2 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:Images matching a rule + Select the filtering criteria:and (file does contain "im") (extension does istif) + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + Metadata extraction method:Extract from file/folder names + Metadata source:Folder name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*)_(?P[a-zA-Z0-9]+) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:3 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does contain "im") (image doesnot ismonochrome) + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Objects + Set intensity range from:Image metadata + Maximum intensity:255.0 + Select the rule criteria:and (file does contain "") + Name to assign these images:GFP + Name to assign these objects:Cell + Select the image type:Illumination function + Set intensity range from:Image metadata + Maximum intensity:255.0 + Select the rule criteria:or (extension does istif) + Name to assign these images:Actin + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:No + grouping metadata count:1 + Metadata category:None diff -r 000000000000 -r 33bf7aa4e684 test-data/common.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/common.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,53 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:4 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 diff -r 000000000000 -r 33bf7aa4e684 test-data/common_image_math.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/common_image_math.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,94 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:6 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:Screen + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nucleus + Typical diameter of objects, in pixel units (Min,Max):15,200 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Intensity + Method to draw dividing lines between clumped objects:Intensity + Size of smoothing filter:10 + Suppress local maxima that are closer than this minimum allowed distance:7.0 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After both thresholding and declumping + Automatically calculate size of smoothing filter for declumping?:Yes + Automatically calculate minimum allowed distance between local maxima?:Yes + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:No + Threshold setting version:10 + Threshold strategy:Global + Thresholding method:Minimum cross entropy + Threshold smoothing scale:1.3488 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0.0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.0 + Thresholding method:Otsu + +ConvertObjectsToImage:[module_num:6|svn_version:\'Unknown\'|variable_revision_number:1|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input objects:Nucleus + Name the output image:CellImage + Select the color format:Binary (black & white) + Select the colormap:Default diff -r 000000000000 -r 33bf7aa4e684 test-data/convert_objects_to_image.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/convert_objects_to_image.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,59 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +ConvertObjectsToImage:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:1|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input objects:Nuclei + Name the output image:MaskNuclei + Select the color format:Binary (black & white) + Select the colormap:Default diff -r 000000000000 -r 33bf7aa4e684 test-data/display_data_on_image.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/display_data_on_image.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,70 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +DisplayDataOnImage:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:6|show_window:False|notes:\x5B\'Add nuclei id as label\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Display object or image measurements?:Object + Select the input objects:Nuclei + Measurement to display:Number_Object_Number + Select the image on which to display the measurements:DNA + Text color:#ff0000 + Name the output image that has the measurements displayed:ImageDisplay + Font size (points):11 + Number of decimals:0 + Image elements to save:Image + Annotation offset (in pixels):0 + Display mode:Text + Color map:Default + Display background image?:Yes + Color map scale:Use this image's measurement range + Color map range:0.0,1.0 diff -r 000000000000 -r 33bf7aa4e684 test-data/enhance_or_suppress_features.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/enhance_or_suppress_features.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,66 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +EnhanceOrSuppressFeatures:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:6|show_window:False|notes:\x5B\'Identify nucleoli\', \'PARAMS\x3A Range of hole sizes'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the output image:DNAdarkholes + Select the operation:Enhance + Feature size:10 + Feature type:Dark holes + Range of hole sizes:1,15 + Smoothing scale:2.0 + Shear angle:0.0 + Decay:0.95 + Enhancement method:Tubeness + Speed and accuracy:Fast diff -r 000000000000 -r 33bf7aa4e684 test-data/export_to_spreadsheet.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/export_to_spreadsheet.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,76 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +ExportToSpreadsheet:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:12|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the column delimiter:Tab + Add image metadata columns to your object data file?:Yes + Select the measurements to export:No + Calculate the per-image mean values for object measurements?:Yes + Calculate the per-image median values for object measurements?:Yes + Calculate the per-image standard deviation values for object measurements?:Yes + Output file location:Default Output Folder\x7C + Create a GenePattern GCT file?:No + Select source of sample row name:Metadata + Select the image to use as the identifier:None + Select the metadata to use as the identifier:None + Export all measurement types?:Yes + Press button to select measurements: + Representation of Nan/Inf:NaN + Add a prefix to file names?:No + Filename prefix:MyPrefix_ + Overwrite existing files without warning?:Yes + Data to export:Do not use + Combine these object measurements with those of the previous object?:No + File name:DATA.csv + Use the object name for the file name?:Yes diff -r 000000000000 -r 33bf7aa4e684 test-data/export_to_spreadsheet_create_gene.cppipe diff -r 000000000000 -r 33bf7aa4e684 test-data/export_to_spreadsheet_create_gene_image_filename.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/export_to_spreadsheet_create_gene_image_filename.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,76 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +ExportToSpreadsheet:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:12|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the column delimiter:Tab + Add image metadata columns to your object data file?:Yes + Select the measurements to export:No + Calculate the per-image mean values for object measurements?:Yes + Calculate the per-image median values for object measurements?:Yes + Calculate the per-image standard deviation values for object measurements?:Yes + Output file location:Default Output Folder\x7C + Create a GenePattern GCT file?:Yes + Select source of sample row name:Image filename + Select the image to use as the identifier:DNA + Select the metadata to use as the identifier:None + Export all measurement types?:No + Press button to select measurements: + Representation of Nan/Inf:NaN + Add a prefix to file names?:Yes + Filename prefix:MyExpt_ + Overwrite existing files without warning?:Yes + Data to export:Image + Combine these object measurements with those of the previous object?:No + File name:data.csv + Use the object name for the file name?:No diff -r 000000000000 -r 33bf7aa4e684 test-data/export_to_spreadsheet_create_gene_metadata.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/export_to_spreadsheet_create_gene_metadata.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,76 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +ExportToSpreadsheet:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:12|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the column delimiter:Tab + Add image metadata columns to your object data file?:Yes + Select the measurements to export:No + Calculate the per-image mean values for object measurements?:Yes + Calculate the per-image median values for object measurements?:Yes + Calculate the per-image standard deviation values for object measurements?:Yes + Output file location:Default Output Folder\x7C + Create a GenePattern GCT file?:Yes + Select source of sample row name:Metadata + Select the image to use as the identifier:None + Select the metadata to use as the identifier:FileName_DNA + Export all measurement types?:Yes + Press button to select measurements: + Representation of Nan/Inf:NaN + Add a prefix to file names?:No + Filename prefix:MyPrefix_ + Overwrite existing files without warning?:Yes + Data to export:Do not use + Combine these object measurements with those of the previous object?:No + File name:DATA.csv + Use the object name for the file name?:Yes diff -r 000000000000 -r 33bf7aa4e684 test-data/export_to_spreadsheet_multi.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/export_to_spreadsheet_multi.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,80 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +ExportToSpreadsheet:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:12|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the column delimiter:Tab + Add image metadata columns to your object data file?:Yes + Select the measurements to export:No + Calculate the per-image mean values for object measurements?:Yes + Calculate the per-image median values for object measurements?:Yes + Calculate the per-image standard deviation values for object measurements?:Yes + Output file location:Default Output Folder\x7C + Create a GenePattern GCT file?:Yes + Select source of sample row name:Image filename + Select the image to use as the identifier:DNA + Select the metadata to use as the identifier:None + Export all measurement types?:No + Press button to select measurements: + Representation of Nan/Inf:NaN + Add a prefix to file names?:Yes + Filename prefix:MyExpt_ + Overwrite existing files without warning?:Yes + Data to export:Image + Combine these object measurements with those of the previous object?:No + File name:data.csv + Use the object name for the file name?:No + Data to export:Experiment + Combine these object measurements with those of the previous object?:No + File name:DATA.csv + Use the object name for the file name?:Yes diff -r 000000000000 -r 33bf7aa4e684 test-data/gray_to_color.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/gray_to_color.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,75 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +GrayToColor:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:3|show_window:False|notes:\x5B\'Combine masks nuclei + nucleoli with colors\'\x5D|batch_state:array(\x5B], dtype=uint8)|enabled:True|wants_pause:False] + Select a color scheme:RGB + Select the image to be colored red:MaskNucleoli + Select the image to be colored green:Leave this black + Select the image to be colored blue:MaskNuclei + Name the output image:CombinedMask + Relative weight for the red image:0.8 + Relative weight for the green image:1.0 + Relative weight for the blue image:0.5 + Select the image to be colored cyan:Leave this black + Select the image to be colored magenta:Leave this black + Select the image to be colored yellow:Leave this black + Select the image that determines brightness:Leave this black + Relative weight for the cyan image:1.0 + Relative weight for the magenta image:1.0 + Relative weight for the yellow image:1.0 + Relative weight for the brightness image:1.0 + Hidden:1 + Image name:None + Color:#FF0000 + Weight:1.0 diff -r 000000000000 -r 33bf7aa4e684 test-data/identify_primary_objects.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/identify_primary_objects.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,88 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\'Identify the nuclei from the DNA channel.\', \'PARAMS\x3A\', \'- Typical diameter of objects (Min,Max)\', \'- Method to distinguish clumped objects\x3A Shape/None. With Shape, the distance between the 2 centers can be changed.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nuclei + Typical diameter of objects, in pixel units (Min,Max):15,200 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Shape + Method to draw dividing lines between clumped objects:Shape + Size of smoothing filter:0 + Suppress local maxima that are closer than this minimum allowed distance:7 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After both thresholding and declumping + Automatically calculate size of smoothing filter for declumping?:Yes + Automatically calculate minimum allowed distance between local maxima?:Yes + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:Yes + Threshold settings version:10 + Threshold strategy:Global + Thresholding method:Otsu + Threshold smoothing scale:1.3488 + Threshold correction factor:0.9 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:500 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.0 + Thresholding method:Otsu diff -r 000000000000 -r 33bf7aa4e684 test-data/identify_primary_objects_adv_adaptive_otsu.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/identify_primary_objects_adv_adaptive_otsu.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,88 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\'Identify the nuclei from the DNA channel.\', \'PARAMS\x3A\', \'- Typical diameter of objects (Min,Max)\', \'- Method to distinguish clumped objects\x3A Shape/None. With Shape, the distance between the 2 centers can be changed.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nuclei + Typical diameter of objects, in pixel units (Min,Max):15,200 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Shape + Method to draw dividing lines between clumped objects:Shape + Size of smoothing filter:1 + Suppress local maxima that are closer than this minimum allowed distance:1 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After both thresholding and declumping + Automatically calculate size of smoothing filter for declumping?:No + Automatically calculate minimum allowed distance between local maxima?:No + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:Yes + Threshold settings version:10 + Threshold strategy:Adaptive + Thresholding method:Otsu + Threshold smoothing scale:1.5000 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Three classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.00 + Thresholding method:Otsu diff -r 000000000000 -r 33bf7aa4e684 test-data/identify_primary_objects_adv_global_manual.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/identify_primary_objects_adv_global_manual.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,88 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\'Identify the nuclei from the DNA channel.\', \'PARAMS\x3A\', \'- Typical diameter of objects (Min,Max)\', \'- Method to distinguish clumped objects\x3A Shape/None. With Shape, the distance between the 2 centers can be changed.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nuclei + Typical diameter of objects, in pixel units (Min,Max):5,20 + Discard objects outside the diameter range?:No + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Shape + Method to draw dividing lines between clumped objects:Shape + Size of smoothing filter:1 + Suppress local maxima that are closer than this minimum allowed distance:1 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After both thresholding and declumping + Automatically calculate size of smoothing filter for declumping?:No + Automatically calculate minimum allowed distance between local maxima?:No + Handling of objects if excessive number of objects identified:Erase + Maximum number of objects:499 + Use advanced settings?:Yes + Threshold settings version:10 + Threshold strategy:Global + Thresholding method:Manual + Threshold smoothing scale:1.3488 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:1 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.00 + Thresholding method:Manual diff -r 000000000000 -r 33bf7aa4e684 test-data/identify_primary_objects_adv_global_mce.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/identify_primary_objects_adv_global_mce.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,88 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\'Identify the nuclei from the DNA channel.\', \'PARAMS\x3A\', \'- Typical diameter of objects (Min,Max)\', \'- Method to distinguish clumped objects\x3A Shape/None. With Shape, the distance between the 2 centers can be changed.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nuclei + Typical diameter of objects, in pixel units (Min,Max):15,40 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Shape + Method to draw dividing lines between clumped objects:Shape + Size of smoothing filter:1 + Suppress local maxima that are closer than this minimum allowed distance:7 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After both thresholding and declumping + Automatically calculate size of smoothing filter for declumping?:No + Automatically calculate minimum allowed distance between local maxima?:No + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:Yes + Threshold settings version:10 + Threshold strategy:Global + Thresholding method:Minimum cross entropy + Threshold smoothing scale:1.5000 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.00 + Thresholding method:Minimum cross entropy diff -r 000000000000 -r 33bf7aa4e684 test-data/identify_primary_objects_adv_global_measurement.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/identify_primary_objects_adv_global_measurement.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,88 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\'Identify the nuclei from the DNA channel.\', \'PARAMS\x3A\', \'- Typical diameter of objects (Min,Max)\', \'- Method to distinguish clumped objects\x3A Shape/None. With Shape, the distance between the 2 centers can be changed.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nuclei + Typical diameter of objects, in pixel units (Min,Max):5,20 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:No + Method to distinguish clumped objects:Intensity + Method to draw dividing lines between clumped objects:Shape + Size of smoothing filter:0 + Suppress local maxima that are closer than this minimum allowed distance:6 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After both thresholding and declumping + Automatically calculate size of smoothing filter for declumping?:Yes + Automatically calculate minimum allowed distance between local maxima?:No + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:Yes + Threshold settings version:10 + Threshold strategy:Global + Thresholding method:Measurement + Threshold smoothing scale:1.3488 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.1,0.4 + Manual threshold:0 + Select the measurement to threshold with:FileName_DNA + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.00 + Thresholding method:Measurement diff -r 000000000000 -r 33bf7aa4e684 test-data/identify_primary_objects_adv_global_rb.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/identify_primary_objects_adv_global_rb.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,88 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\'Identify the nuclei from the DNA channel.\', \'PARAMS\x3A\', \'- Typical diameter of objects (Min,Max)\', \'- Method to distinguish clumped objects\x3A Shape/None. With Shape, the distance between the 2 centers can be changed.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nuclei + Typical diameter of objects, in pixel units (Min,Max):10,40 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Shape + Method to draw dividing lines between clumped objects:Shape + Size of smoothing filter:1 + Suppress local maxima that are closer than this minimum allowed distance:7 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After both thresholding and declumping + Automatically calculate size of smoothing filter for declumping?:No + Automatically calculate minimum allowed distance between local maxima?:No + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:Yes + Threshold settings version:10 + Threshold strategy:Global + Thresholding method:RobustBackground + Threshold smoothing scale:1.4000 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.06 + Upper outlier fraction:0.07 + Averaging method:Median + Variance method:Median absolute deviation + # of deviations:3.00 + Thresholding method:RobustBackground diff -r 000000000000 -r 33bf7aa4e684 test-data/identify_primary_objects_noadv.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/identify_primary_objects_noadv.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,88 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\'Identify the nuclei from the DNA channel.\', \'PARAMS\x3A\', \'- Typical diameter of objects (Min,Max)\', \'- Method to distinguish clumped objects\x3A Shape/None. With Shape, the distance between the 2 centers can be changed.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nuclei + Typical diameter of objects, in pixel units (Min,Max):15,200 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Intensity + Method to draw dividing lines between clumped objects:Intensity + Size of smoothing filter:1 + Suppress local maxima that are closer than this minimum allowed distance:7 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After both thresholding and declumping + Automatically calculate size of smoothing filter for declumping?:Yes + Automatically calculate minimum allowed distance between local maxima?:Yes + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:No + Threshold settings version:10 + Threshold strategy:Global + Thresholding method:Minimum cross entropy + Threshold smoothing scale:1.3488 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.00 + Thresholding method:Minimum cross entropy diff -r 000000000000 -r 33bf7aa4e684 test-data/image_math.xml diff -r 000000000000 -r 33bf7aa4e684 test-data/image_math_1.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/image_math_1.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,112 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:7 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:Screen + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nucleus + Typical diameter of objects, in pixel units (Min,Max):15,200 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Intensity + Method to draw dividing lines between clumped objects:Intensity + Size of smoothing filter:10 + Suppress local maxima that are closer than this minimum allowed distance:7.0 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After both thresholding and declumping + Automatically calculate size of smoothing filter for declumping?:Yes + Automatically calculate minimum allowed distance between local maxima?:Yes + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:No + Threshold setting version:10 + Threshold strategy:Global + Thresholding method:Minimum cross entropy + Threshold smoothing scale:1.3488 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0.0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.0 + Thresholding method:Otsu + +ConvertObjectsToImage:[module_num:6|svn_version:\'Unknown\'|variable_revision_number:1|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input objects:Nucleus + Name the output image:CellImage + Select the color format:Binary (black & white) + Select the colormap:Default + +ImageMath:[module_num:7|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Operation:Add + Raise the power of the result by:1.0 + Multiply the result by:1.0 + Add to result:0.0 + Set values less than 0 equal to 0?:Yes + Set values greater than 1 equal to 1?:Yes + Ignore the image masks?:No + Name the output image:ImageAfterMath + Image or measurement?:Image + Select the first image:DNA + Multiply the first image by:1.0 + Measurement: + Image or measurement?:Image + Select the second image:CellImage + Multiply the second image by:2.0 + Measurement: diff -r 000000000000 -r 33bf7aa4e684 test-data/image_math_2.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/image_math_2.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,112 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:7 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:Screen + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nucleus + Typical diameter of objects, in pixel units (Min,Max):15,200 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Intensity + Method to draw dividing lines between clumped objects:Intensity + Size of smoothing filter:10 + Suppress local maxima that are closer than this minimum allowed distance:7.0 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After both thresholding and declumping + Automatically calculate size of smoothing filter for declumping?:Yes + Automatically calculate minimum allowed distance between local maxima?:Yes + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:No + Threshold setting version:10 + Threshold strategy:Global + Thresholding method:Minimum cross entropy + Threshold smoothing scale:1.3488 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0.0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.0 + Thresholding method:Otsu + +ConvertObjectsToImage:[module_num:6|svn_version:\'Unknown\'|variable_revision_number:1|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input objects:Nucleus + Name the output image:CellImage + Select the color format:Binary (black & white) + Select the colormap:Default + +ImageMath:[module_num:7|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Operation:Subtract + Raise the power of the result by:1.0 + Multiply the result by:1.0 + Add to result:0.0 + Set values less than 0 equal to 0?:Yes + Set values greater than 1 equal to 1?:No + Ignore the image masks?:No + Name the output image:ImageAfterMath + Image or measurement?:Image + Select the first image:DNA + Multiply the first image by:1.0 + Measurement: + Image or measurement?:Measurement + Select the second image: + Multiply the second image by:5.0 + Measurement:FileName_DNA diff -r 000000000000 -r 33bf7aa4e684 test-data/image_math_3.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/image_math_3.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,112 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:7 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:Screen + +IdentifyPrimaryObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNA + Name the primary objects to be identified:Nucleus + Typical diameter of objects, in pixel units (Min,Max):15,200 + Discard objects outside the diameter range?:Yes + Discard objects touching the border of the image?:Yes + Method to distinguish clumped objects:Intensity + Method to draw dividing lines between clumped objects:Intensity + Size of smoothing filter:10 + Suppress local maxima that are closer than this minimum allowed distance:7.0 + Speed up by using lower-resolution image to find local maxima?:Yes + Fill holes in identified objects?:After both thresholding and declumping + Automatically calculate size of smoothing filter for declumping?:Yes + Automatically calculate minimum allowed distance between local maxima?:Yes + Handling of objects if excessive number of objects identified:Continue + Maximum number of objects:500 + Use advanced settings?:No + Threshold setting version:10 + Threshold strategy:Global + Thresholding method:Minimum cross entropy + Threshold smoothing scale:1.3488 + Threshold correction factor:1.0 + Lower and upper bounds on threshold:0.0,1.0 + Manual threshold:0.0 + Select the measurement to threshold with:None + Two-class or three-class thresholding?:Two classes + Assign pixels in the middle intensity class to the foreground or the background?:Foreground + Size of adaptive window:50 + Lower outlier fraction:0.05 + Upper outlier fraction:0.05 + Averaging method:Mean + Variance method:Standard deviation + # of deviations:2.0 + Thresholding method:Otsu + +ConvertObjectsToImage:[module_num:6|svn_version:\'Unknown\'|variable_revision_number:1|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input objects:Nucleus + Name the output image:CellImage + Select the color format:Binary (black & white) + Select the colormap:Default + +ImageMath:[module_num:7|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Operation:Not + Raise the power of the result by: + Multiply the result by: + Add to result: + Set values less than 0 equal to 0?: + Set values greater than 1 equal to 1?: + Ignore the image masks?:No + Name the output image:ImageAfterMath + Image or measurement?:Image + Select the first image:DNA + Multiply the first image by: + Measurement: + Image or measurement?: + Select the second image: + Multiply the second image by: + Measurement: diff -r 000000000000 -r 33bf7aa4e684 test-data/images.tar Binary file test-data/images.tar has changed diff -r 000000000000 -r 33bf7aa4e684 test-data/images/AS_09125_050116030001_D03f00d0.tif Binary file test-data/images/AS_09125_050116030001_D03f00d0.tif has changed diff -r 000000000000 -r 33bf7aa4e684 test-data/images/AS_09125_050116030001_D03f00d1.tif Binary file test-data/images/AS_09125_050116030001_D03f00d1.tif has changed diff -r 000000000000 -r 33bf7aa4e684 test-data/images/AS_09125_050116030001_D03f00d2.tif Binary file test-data/images/AS_09125_050116030001_D03f00d2.tif has changed diff -r 000000000000 -r 33bf7aa4e684 test-data/mask_image.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/mask_image.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,61 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +MaskImage:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:3|show_window:False|notes:\x5B'Keep only nucleoli inside the nuclei\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the input image:DNAdarkholes + Name the output image:MaskDNAdarkholes + Use objects or an image as a mask?:Objects + Select object for mask:Nuclei + Select image for mask:None + Invert the mask?:No diff -r 000000000000 -r 33bf7aa4e684 test-data/measure_granularity.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/measure_granularity.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,62 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +MeasureGranularity:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:3|show_window:False|notes:\x5B\'PARAMS\x3A\', \'- Radius\', '- Range\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Image count:1 + Object count:0 + Select an image to measure:DNA + Subsampling factor for granularity measurements:0.25 + Subsampling factor for background reduction:0.25 + Radius of structuring element:10 + Range of the granular spectrum:16 diff -r 000000000000 -r 33bf7aa4e684 test-data/measure_image_area_occupied.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/measure_image_area_occupied.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,62 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +MeasureImageAreaOccupied:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Hidden:2 + Measure the area occupied in a binary image, or in objects?:Objects + Select objects to measure:Nuclei + Select a binary image to measure:None + Measure the area occupied in a binary image, or in objects?:Objects + Select objects to measure:Nucleoli + Select a binary image to measure:None diff -r 000000000000 -r 33bf7aa4e684 test-data/measure_image_intensity.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/measure_image_intensity.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,61 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +MeasureImageIntensity:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the image to measure:DNA + Measure the intensity only from areas enclosed by objects?:No + Select the input objects:None + Select the image to measure:DNA + Measure the intensity only from areas enclosed by objects?:Yes + Select the input objects:Nuclei diff -r 000000000000 -r 33bf7aa4e684 test-data/measure_image_quality.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/measure_image_quality.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,72 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +MeasureImageQuality:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:5|show_window:False|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Calculate metrics for which images?:All loaded images + Image count:1 + Scale count:1 + Threshold count:1 + Select the images to measure: + Include the image rescaling value?:Yes + Calculate blur metrics?:Yes + Spatial scale for blur measurements:20 + Calculate saturation metrics?:Yes + Calculate intensity metrics?:Yes + Calculate thresholds?:Yes + Use all thresholding methods?:No + Select a thresholding method:Otsu + Typical fraction of the image covered by objects:0.1 + Two-class or three-class thresholding?:Two classes + Minimize the weighted variance or the entropy:Weighted variance + Assign pixels in the middle intensity class to the foreground or the background?:Foreground diff -r 000000000000 -r 33bf7aa4e684 test-data/measure_object_intensity.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/measure_object_intensity.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,58 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +MeasureObjectIntensity:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:3|show_window:False|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Hidden:1 + Select an image to measure:DNA + Select objects to measure:Nuclei diff -r 000000000000 -r 33bf7aa4e684 test-data/measure_object_size_shape.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/measure_object_size_shape.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,58 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +MeasureObjectSizeShape:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:1|show_window:False|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select objects to measure:Nuclei + Select objects to measure:Nucleoli + Calculate the Zernike features?:Yes diff -r 000000000000 -r 33bf7aa4e684 test-data/measure_texture.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/measure_texture.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,62 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +MeasureTexture:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:5|show_window:False|notes:\x5B\'PARAMS\x3A\', \'- Texture scale']|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Hidden:1 + Hidden:1 + Hidden:1 + Select an image to measure:DNA + Select objects to measure:Nuclei + Texture scale to measure:3 + Measure images or objects?:Objects diff -r 000000000000 -r 33bf7aa4e684 test-data/overlay_outlines.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/overlay_outlines.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,63 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +OverlayOutlines:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\'Overlay the embryo outlines on the grayscale image.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Display outlines on a blank image?:No + Select image on which to display outlines:OrigGray + Name the output image:OutlineImage + Outline display mode:Color + Select method to determine brightness of outlines:Max of image + How to outline:Inner + Select outline color:#FF0000 + Select objects to display:Embryos diff -r 000000000000 -r 33bf7aa4e684 test-data/overlay_outlines_blank_color.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/overlay_outlines_blank_color.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,65 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +OverlayOutlines:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\'Overlay the embryo outlines on the grayscale image.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Display outlines on a blank image?:Yes + Select image on which to display outlines:None + Name the output image:OutputImage + Outline display mode:Color + Select method to determine brightness of outlines:Max of image + How to outline:Inner + Select outline color:#548dd4 + Select objects to display:DNA1 + Select outline color:#000000 + Select objects to display:DNA3 diff -r 000000000000 -r 33bf7aa4e684 test-data/overlay_outlines_blank_grayscale.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/overlay_outlines_blank_grayscale.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,65 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +OverlayOutlines:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\'Overlay the embryo outlines on the grayscale image.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Display outlines on a blank image?:Yes + Select image on which to display outlines:None + Name the output image:OutputImage + Outline display mode:Grayscale + Select method to determine brightness of outlines:Max of image + How to outline:Outer + Select outline color:#FF0000 + Select objects to display:DNA + Select outline color:#FF0000 + Select objects to display:DNA1 diff -r 000000000000 -r 33bf7aa4e684 test-data/overlay_outlines_non_blank_color.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/overlay_outlines_non_blank_color.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,63 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +OverlayOutlines:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\'Overlay the embryo outlines on the grayscale image.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Display outlines on a blank image?:No + Select image on which to display outlines:OrigGray + Name the output image:OutlineImage + Outline display mode:Color + Select method to determine brightness of outlines:Max of image + How to outline:Inner + Select outline color:#FF0000 + Select objects to display:Embryos diff -r 000000000000 -r 33bf7aa4e684 test-data/overlay_outlines_non_blank_grayscale.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/overlay_outlines_non_blank_grayscale.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,65 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +OverlayOutlines:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\'Overlay the embryo outlines on the grayscale image.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Display outlines on a blank image?:No + Select image on which to display outlines:DNA1 + Name the output image:OutputImage + Outline display mode:Grayscale + Select method to determine brightness of outlines:Max possible + How to outline:Thick + Select outline color:#FF0000 + Select objects to display:Object1 + Select outline color:#FF0000 + Select objects to display:Object2 diff -r 000000000000 -r 33bf7aa4e684 test-data/relate_objects.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/relate_objects.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,62 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +RelateObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:5|show_window:False|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Parent objects:Nuclei + Child objects:Nucleoli + Calculate child-parent distances?:Both + Calculate per-parent means for all child measurements?:Yes + Calculate distances to other parents?:No + Do you want to save the children with parents as a new object set?:Yes + Name the output object:RelateObjects diff -r 000000000000 -r 33bf7aa4e684 test-data/save_images.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/save_images.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,71 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +SaveImages:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:13|show_window:False|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select the type of image to save:Image + Select the image to save:ImageDisplay + Select method for constructing file names:From image filename + Select image name for file prefix:DNA + Enter single file name:OrigBlue + Number of digits:4 + Append a suffix to the image file name?:Yes + Text to append to the image name:_nucleiNumbers + Saved file format:tiff + Output file location:Default Output Folder\x7Coutput + Image bit depth:8-bit integer + Overwrite existing files without warning?:Yes + When to save:Every cycle + Record the file and path information to the saved image?:No + Create subfolders in the output folder?:No + Base image folder:Elsewhere... diff -r 000000000000 -r 33bf7aa4e684 test-data/tile.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/tile.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,68 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +Tile:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:1|show_window:True|notes:\x5B\'Tile the original color image, the outlined image and the image of tracked labels together.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select an input image:OrigColor + Name the output image:AdjacentImage + Tile assembly method:Within cycles + Final number of rows:1 + Final number of columns:12 + Image corner to begin tiling:top left + Direction to begin tiling:row + Use meander mode?:No + Automatically calculate number of rows?:No + Automatically calculate number of columns?:Yes + Select an additional image to tile:OutlineImage + Select an additional image to tile:TrackedCells + diff -r 000000000000 -r 33bf7aa4e684 test-data/tile_across_cycles.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/tile_across_cycles.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,66 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +Tile:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:1|show_window:True|notes:\x5B\'Tile the original color image, the outlined image and the image of tracked labels together.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select an input image:DNA + Name the output image:TiledImage + Tile assembly method:Across cycles + Final number of rows:8 + Final number of columns:5 + Image corner to begin tiling:top right + Direction to begin tiling:column + Use meander mode?:No + Automatically calculate number of rows?:Yes + Automatically calculate number of columns?:No + diff -r 000000000000 -r 33bf7aa4e684 test-data/tile_across_cyles.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/tile_across_cyles.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,65 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +Tile:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:1|show_window:True|notes:\x5B\'Tile the original color image, the outlined image and the image of tracked labels together.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Select an input image:DNA + Name the output image:TiledImage + Tile assembly method:Across cycles + Final number of rows:8 + Final number of columns:5 + Image corner to begin tiling:top right + Direction to begin tiling:column + Use meander mode?:No + Automatically calculate number of rows?:Yes + Automatically calculate number of columns?:No diff -r 000000000000 -r 33bf7aa4e684 test-data/track_object.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/track_object.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,85 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +TrackObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:7|show_window:True|notes:\x5B\'Track the embryos across images using the Overlap method\x3A tracked objects are identified by the amount of frame-to-frame overlap. Save an image of embryos labeled with a unique number across time.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Choose a tracking method:Overlap + Select the objects to track:Embryos + Select object measurement to use for tracking:None + Maximum pixel distance to consider matches:50 + Select display option:Color and Number + Save color-coded image?:Yes + Name the output image:TrackedCells + Select the movement model:Both + Number of standard deviations for search radius:3.0 + Search radius limit, in pixel units (Min,Max):2.0,10.0 + Run the second phase of the LAP algorithm?:Yes + Gap closing cost:40 + Split alternative cost:40 + Merge alternative cost:40 + Maximum gap displacement, in pixel units:5 + Maximum split score:50 + Maximum merge score:50 + Maximum temporal gap, in frames:5 + Filter objects by lifetime?:No + Filter using a minimum lifetime?:Yes + Minimum lifetime:1 + Filter using a maximum lifetime?:No + Maximum lifetime:100 + Mitosis alternative cost:80 + Maximum mitosis distance, in pixel units:40 + Average cell diameter in pixels:35.0 + Use advanced configuration parameters:No + Cost of cell to empty matching:15.0 + Weight of area difference in function matching cost:25.0 + diff -r 000000000000 -r 33bf7aa4e684 test-data/track_object_distance_no_filter_min.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/track_object_distance_no_filter_min.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,85 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +TrackObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:7|show_window:True|notes:\x5B\'Track the embryos across images using the Overlap method\x3A tracked objects are identified by the amount of frame-to-frame overlap. Save an image of embryos labeled with a unique number across time.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Choose a tracking method:Distance + Select the objects to track:DNA + Select object measurement to use for tracking:None + Maximum pixel distance to consider matches:50 + Select display option:Color and Number + Save color-coded image?:Yes + Name the output image:OutputImage + Select the movement model:Both + Number of standard deviations for search radius:3.0 + Search radius limit, in pixel units (Min,Max):2.0,10.0 + Run the second phase of the LAP algorithm?:Yes + Gap closing cost:40 + Split alternative cost:40 + Merge alternative cost:40 + Maximum gap displacement, in pixel units:5 + Maximum split score:50 + Maximum merge score:50 + Maximum temporal gap, in frames:5 + Filter objects by lifetime?:Yes + Filter using a minimum lifetime?:No + Minimum lifetime:1 + Filter using a maximum lifetime?:Yes + Maximum lifetime:80 + Mitosis alternative cost:80 + Maximum mitosis distance, in pixel units:40 + Average cell diameter in pixels:35.0 + Use advanced configuration parameters:No + Cost of cell to empty matching:15.0 + Weight of area difference in function matching cost:25.0 + diff -r 000000000000 -r 33bf7aa4e684 test-data/track_object_follow_neighbors.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/track_object_follow_neighbors.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,85 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +TrackObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:7|show_window:True|notes:\x5B\'Track the embryos across images using the Overlap method\x3A tracked objects are identified by the amount of frame-to-frame overlap. Save an image of embryos labeled with a unique number across time.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Choose a tracking method:Follow Neighbors + Select the objects to track:DNA + Select object measurement to use for tracking:None + Maximum pixel distance to consider matches:60 + Select display option:Color only + Save color-coded image?:Yes + Name the output image:OutputImage + Select the movement model:Both + Number of standard deviations for search radius:3.0 + Search radius limit, in pixel units (Min,Max):2.0,10.0 + Run the second phase of the LAP algorithm?:Yes + Gap closing cost:40 + Split alternative cost:40 + Merge alternative cost:40 + Maximum gap displacement, in pixel units:5 + Maximum split score:50 + Maximum merge score:50 + Maximum temporal gap, in frames:5 + Filter objects by lifetime?:Yes + Filter using a minimum lifetime?:No + Minimum lifetime:1 + Filter using a maximum lifetime?:No + Maximum lifetime:100 + Mitosis alternative cost:80 + Maximum mitosis distance, in pixel units:40 + Average cell diameter in pixels:36.0 + Use advanced configuration parameters:Yes + Cost of cell to empty matching:11.0 + Weight of area difference in function matching cost:20.0 + diff -r 000000000000 -r 33bf7aa4e684 test-data/track_object_lap_velocity.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/track_object_lap_velocity.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,85 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +TrackObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:7|show_window:True|notes:\x5B\'Track the embryos across images using the Overlap method\x3A tracked objects are identified by the amount of frame-to-frame overlap. Save an image of embryos labeled with a unique number across time.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Choose a tracking method:LAP + Select the objects to track:DNA + Select object measurement to use for tracking:None + Maximum pixel distance to consider matches:50 + Select display option:Color and Number + Save color-coded image?:Yes + Name the output image:OutputImage + Select the movement model:Velocity + Number of standard deviations for search radius:4.0 + Search radius limit, in pixel units (Min,Max):5.0,11.0 + Run the second phase of the LAP algorithm?:Yes + Gap closing cost:6 + Split alternative cost:6 + Merge alternative cost:6 + Maximum gap displacement, in pixel units:6 + Maximum split score:6 + Maximum merge score:6 + Maximum temporal gap, in frames:6 + Filter objects by lifetime?:Yes + Filter using a minimum lifetime?:Yes + Minimum lifetime:1 + Filter using a maximum lifetime?:Yes + Maximum lifetime:100 + Mitosis alternative cost:6 + Maximum mitosis distance, in pixel units:6 + Average cell diameter in pixels:35.0 + Use advanced configuration parameters:No + Cost of cell to empty matching:15.0 + Weight of area difference in function matching cost:25.0 + diff -r 000000000000 -r 33bf7aa4e684 test-data/track_object_measurement_intensity.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/track_object_measurement_intensity.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,85 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +TrackObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:7|show_window:True|notes:\x5B\'Track the embryos across images using the Overlap method\x3A tracked objects are identified by the amount of frame-to-frame overlap. Save an image of embryos labeled with a unique number across time.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Choose a tracking method:Measurements + Select the objects to track:DNA + Select object measurement to use for tracking:Intensity_MADIntensity_Image1 + Maximum pixel distance to consider matches:40 + Select display option:Color only + Save color-coded image?:No + Name the output image:TrackedCells + Select the movement model:Both + Number of standard deviations for search radius:3.0 + Search radius limit, in pixel units (Min,Max):2.0,10.0 + Run the second phase of the LAP algorithm?:Yes + Gap closing cost:40 + Split alternative cost:40 + Merge alternative cost:40 + Maximum gap displacement, in pixel units:5 + Maximum split score:50 + Maximum merge score:50 + Maximum temporal gap, in frames:5 + Filter objects by lifetime?:Yes + Filter using a minimum lifetime?:No + Minimum lifetime:1 + Filter using a maximum lifetime?:Yes + Maximum lifetime:120 + Mitosis alternative cost:80 + Maximum mitosis distance, in pixel units:40 + Average cell diameter in pixels:35.0 + Use advanced configuration parameters:No + Cost of cell to empty matching:15.0 + Weight of area difference in function matching cost:25.0 + diff -r 000000000000 -r 33bf7aa4e684 test-data/track_object_overlap_no_filter_max.cppipe --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/track_object_overlap_no_filter_max.cppipe Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,85 @@ +CellProfiler Pipeline: http://www.cellprofiler.org +Version:3 +DateRevision:319 +GitHash: +ModuleCount:5 +HasImagePlaneDetails:False + +Images:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'To begin creating your project, use the Images module to compile a list of files and/or folders that you want to analyze. You can also specify a set of rules to include only the desired files in your selected folders.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + : + Filter images?:Images only + Select the rule criteria:and (extension does isimage) (directory doesnot startwith ".") + +Metadata:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:False|notes:\x5B\'The Metadata module optionally allows you to extract information describing your images (i.e, metadata) which will be stored along with your measurements. This information can be contained in the file name and/or location, or in an external file.\']|batch_state:array([], dtype=uint8)|enabled:True|wants_pause:False] + Extract metadata?:Yes + Metadata data type:Text + Metadata types:{} + Extraction method count:1 + Metadata extraction method:Extract from file/folder names + Metadata source:File name + Regular expression to extract from file name:(?P.*)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+)_(?P[a-zA-Z0-9]+) + Regular expression to extract from folder name:(?P.*) + Extract metadata from:All images + Select the filtering criteria:and (file does contain "") + Metadata file location: + Match file and image metadata:[] + Use case insensitive matching?:No + +NamesAndTypes:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:8|show_window:False|notes:\x5B\'The NamesAndTypes module allows you to assign a meaningful name to each image by which other modules will refer to it.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Assign a name to:Images matching rules + Select the image type:Grayscale image + Name to assign these images:DNA + Match metadata:[] + Image set matching method:Order + Set intensity range from:Image metadata + Assignments count:1 + Single images count:0 + Maximum intensity:255.0 + Process as 3D?:No + Relative pixel spacing in X:1.0 + Relative pixel spacing in Y:1.0 + Relative pixel spacing in Z:1.0 + Select the rule criteria:and (file does startwith "im") + Name to assign these images:DNA + Name to assign these objects:Cell + Select the image type:Grayscale image + Set intensity range from:Image metadata + Select the image type:Grayscale image + Maximum intensity:255.0 + +Groups:[module_num:4|svn_version:\'Unknown\'|variable_revision_number:2|show_window:False|notes:\x5B\'The Groups module optionally allows you to split your list of images into image subsets (groups) which will be processed independently of each other. Examples of groupings include screening batches, microtiter plates, time-lapse movies, etc.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Do you want to group your images?:Yes + grouping metadata count:1 + Metadata category:field1 + +TrackObjects:[module_num:5|svn_version:\'Unknown\'|variable_revision_number:7|show_window:True|notes:\x5B\'Track the embryos across images using the Overlap method\x3A tracked objects are identified by the amount of frame-to-frame overlap. Save an image of embryos labeled with a unique number across time.\'\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False] + Choose a tracking method:Overlap + Select the objects to track:DNA + Select object measurement to use for tracking:None + Maximum pixel distance to consider matches:40 + Select display option:Color only + Save color-coded image?:Yes + Name the output image:ColorCodedImage + Select the movement model:Both + Number of standard deviations for search radius:3.0 + Search radius limit, in pixel units (Min,Max):2.0,10.0 + Run the second phase of the LAP algorithm?:Yes + Gap closing cost:40 + Split alternative cost:40 + Merge alternative cost:40 + Maximum gap displacement, in pixel units:5 + Maximum split score:50 + Maximum merge score:50 + Maximum temporal gap, in frames:5 + Filter objects by lifetime?:Yes + Filter using a minimum lifetime?:Yes + Minimum lifetime:2 + Filter using a maximum lifetime?:No + Maximum lifetime:100 + Mitosis alternative cost:80 + Maximum mitosis distance, in pixel units:40 + Average cell diameter in pixels:35.0 + Use advanced configuration parameters:No + Cost of cell to empty matching:15.0 + Weight of area difference in function matching cost:25.0 + diff -r 000000000000 -r 33bf7aa4e684 tile.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tile.py Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,100 @@ +#!/usr/bin/env python + +import argparse +import json + +from cp_common_functions import get_json_value +from cp_common_functions import get_pipeline_lines +from cp_common_functions import get_total_number_of_modules +from cp_common_functions import INDENTATION +from cp_common_functions import update_module_count +from cp_common_functions import write_pipeline + + +MODULE_NAME = "Tile" +OUTPUT_FILENAME = "output.cppipe" + + +def build_header(module_name, module_number): + result = "|".join([f"{module_name}:[module_num:{module_number}", + "svn_version:\\'Unknown\\'", + "variable_revision_number:1", + "show_window:True", + "notes:\\x5B\\'Tile the original color image, the outlined image and the image of tracked labels together.\\'\\x5D", + "batch_state:array(\\x5B\\x5D, dtype=uint8)", + "enabled:True", + "wants_pause:False]\n"]) + return result + + +def build_main_block(input_params): + result = INDENTATION.join([f"{INDENTATION}Select an input image:{get_json_value(input_params,'input_image')}\n", + f"Name the output image:{get_json_value(input_params,'output_image_name')}\n", + f"Tile assembly method:{get_json_value(input_params,'con_assembly_method.assembly_method')}\n" + ]) + + calc_rows = get_json_value(input_params, 'con_assembly_method.con_calc_no_row.calc_no_row') + no_of_rows = 8 + + calc_cols = get_json_value(input_params, 'con_assembly_method.con_calc_no_cols.calc_no_cols') + no_of_cols = 12 + + if calc_rows == "No": + no_of_rows = get_json_value(input_params, 'con_assembly_method.con_calc_no_row.no_of_row') + + if calc_cols == "No": + no_of_cols = get_json_value(input_params, 'con_assembly_method.con_calc_no_cols.no_of_cols') + + corner_to_begin = get_json_value(input_params, 'con_assembly_method.corner_to_begin') + direction_tiling = get_json_value(input_params, 'con_assembly_method.direction') + meander = get_json_value(input_params, 'con_assembly_method.meander_mode') + + assembly_method = get_json_value(input_params, 'con_assembly_method.assembly_method') + + result += INDENTATION.join( + [f"{INDENTATION}Final number of rows:{str(no_of_rows)}\n", + f"Final number of columns:{str(no_of_cols)}\n", + f"Image corner to begin tiling:{corner_to_begin}\n", + f"Direction to begin tiling:{direction_tiling}\n", + f"Use meander mode?:{meander}\n", + f"Automatically calculate number of rows?:{calc_rows}\n", + f"Automatically calculate number of columns?:{calc_cols}\n" + ]) + + if assembly_method == "Within cycles": + additionals = input_params['con_assembly_method']['rpt_additional_image'] + + for img in additionals: + result += INDENTATION.join( + [f"{INDENTATION}Select an additional image to tile:{get_json_value(img, 'additional_img')}\n" + ]) + + return result + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + '-p', '--pipeline', + help='CellProfiler pipeline' + ) + parser.add_argument( + '-i', '--inputs', + help='JSON inputs from Galaxy' + ) + args = parser.parse_args() + + pipeline_lines = get_pipeline_lines(args.pipeline) + inputs_galaxy = json.load(open(args.inputs, "r")) + + current_module_num = get_total_number_of_modules(pipeline_lines) + current_module_num += 1 + pipeline_lines = update_module_count(pipeline_lines, current_module_num) + + header_block = build_header(MODULE_NAME, current_module_num) + main_block = build_main_block(inputs_galaxy) + + module_pipeline = f"\n{header_block}{main_block}\n" + pipeline_lines.append(module_pipeline) + + write_pipeline(OUTPUT_FILENAME, pipeline_lines) diff -r 000000000000 -r 33bf7aa4e684 tile.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tile.xml Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,143 @@ + + tiles images together to form large montage images + + macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 000000000000 -r 33bf7aa4e684 track_objects.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/track_objects.py Sat Feb 06 10:00:59 2021 +0000 @@ -0,0 +1,199 @@ +#!/usr/bin/env python + +import argparse +import json + +from cp_common_functions import get_json_value +from cp_common_functions import get_pipeline_lines +from cp_common_functions import get_total_number_of_modules +from cp_common_functions import INDENTATION +from cp_common_functions import update_module_count +from cp_common_functions import write_pipeline + +MODULE_NAME = "TrackObjects" +OUTPUT_FILENAME = "output.cppipe" + + +def build_header(module_name, module_number): + result = "|".join([f"{module_name}:[module_num:{module_number}", + "svn_version:\\'Unknown\\'", + "variable_revision_number:7", + "show_window:True", + "notes:\\x5B\\'Track the embryos across images using the Overlap method\\x3A tracked objects are identified by the amount of frame-to-frame overlap. Save an image of embryos labeled with a unique number across time.\\'\\x5D", + "batch_state:array(\\x5B\\x5D, dtype=uint8)", + "enabled:True", + "wants_pause:False]\n"]) + return result + + +def build_main_block(input_params): + result = INDENTATION.join([f"{INDENTATION}Choose a tracking method:{get_json_value(input_params,'con_tracking_method.tracking_method')}\n", + f"Select the objects to track:{get_json_value(input_params,'object_to_track')}\n" + ]) + + tracking_method = get_json_value(input_params, 'con_tracking_method.tracking_method') + + obj_measurement = "None" # default value + if tracking_method == "Measurements": + measurement_category = get_json_value(input_params, 'con_tracking_method.con_measurement_category.measurement_category') + measurement = get_json_value(input_params, 'con_tracking_method.con_measurement_category.measurement') + + if measurement_category == "Intensity" or measurement_category == "Location": + img_measure = get_json_value(input_params, 'con_tracking_method.con_measurement_category.img_measure') + obj_measurement = f"{measurement_category}_{measurement}_{img_measure}" + else: + obj_measurement = f"{measurement_category}_{measurement}" + + result += INDENTATION.join([f"{INDENTATION}Select object measurement to use for tracking:{obj_measurement}\n"]) + + if tracking_method == "LAP": # no max distance required, set default for pipeline + max_distance = 50 + else: + max_distance = get_json_value(input_params, 'con_tracking_method.max_distance') + + result += INDENTATION.join([f"{INDENTATION}Maximum pixel distance to consider matches:{max_distance}\n"]) + + display_option = get_json_value(input_params, 'con_tracking_method.display_option') + + output_img_name = "TrackedCells" # default value, required by cppipe regardless of its presence in UI + save = get_json_value(input_params, 'con_tracking_method.con_save_coded_img.save_coded_img') + if save == "Yes": + output_img_name = get_json_value(input_params, 'con_tracking_method.con_save_coded_img.name_output_img') + + result += INDENTATION.join( + [f"{INDENTATION}Select display option:{display_option}\n", + f"Save color-coded image?:{save}\n", + f"Name the output image:{output_img_name}\n" + ]) + + # LAP method default values + movement_model = "Both" + no_std = 3.0 + radius_limit_max = 10.0 + radius_limit_min = 2.0 + radius = "2.0,10.0" + run_second = "Yes" + gap_closing = 40 + split_alt = 40 + merge_alt = 40 + max_gap_displacement = 5 + max_split = 50 + max_merge = 50 + max_temporal = 5 + max_mitosis_dist = 40 + mitosis_alt = 80 + + # LAP method + if tracking_method == "LAP": + movement_model = get_json_value(input_params, 'con_tracking_method.movement_method') + no_std = get_json_value(input_params, 'con_tracking_method.no_std_radius') + radius_limit_max = get_json_value(input_params, 'con_tracking_method.max_radius') + radius_limit_min = get_json_value(input_params, 'con_tracking_method.min_radius') + radius = f"{radius_limit_min},{radius_limit_max}" + + run_second = get_json_value(input_params, 'con_tracking_method.con_second_lap.second_lap') + if run_second == "Yes": + gap_closing = get_json_value(input_params, 'con_tracking_method.con_second_lap.gap_closing') + split_alt = get_json_value(input_params, 'con_tracking_method.con_second_lap.split_alt') + merge_alt = get_json_value(input_params, 'con_tracking_method.con_second_lap.merge_alt') + max_gap_displacement = get_json_value(input_params, 'con_tracking_method.con_second_lap.max_gap_displacement') + max_split = get_json_value(input_params, 'con_tracking_method.con_second_lap.max_split') + max_merge = get_json_value(input_params, 'con_tracking_method.con_second_lap.max_merge') + max_temporal = get_json_value(input_params, 'con_tracking_method.con_second_lap.max_temporal') + max_mitosis_dist = get_json_value(input_params, 'con_tracking_method.con_second_lap.max_mitosis_distance') + mitosis_alt = get_json_value(input_params, 'con_tracking_method.con_second_lap.mitosis_alt') + + result += INDENTATION.join( + [f"{INDENTATION}Select the movement model:{movement_model}\n", + f"Number of standard deviations for search radius:{no_std}\n", + f"Search radius limit, in pixel units (Min,Max):{radius}\n", + f"Run the second phase of the LAP algorithm?:{run_second}\n", + f"Gap closing cost:{gap_closing}\n", + f"Split alternative cost:{split_alt}\n", + f"Merge alternative cost:{merge_alt}\n", + f"Maximum gap displacement, in pixel units:{max_gap_displacement}\n", + f"Maximum split score:{max_split}\n", + f"Maximum merge score:{max_merge}\n", + f"Maximum temporal gap, in frames:{max_temporal}\n" + ]) + + # common section + filter_by_lifetime = get_json_value(input_params, 'con_tracking_method.con_filter_by_lifetime.filter_by_lifetime') + use_min = "Yes" # default + min_life = 1 # default + use_max = "No" # default + max_life = 100 # default + + if filter_by_lifetime == "Yes": + use_min = get_json_value(input_params, 'con_tracking_method.con_filter_by_lifetime.con_use_min.use_min') + if use_min == "Yes": + min_life = get_json_value(input_params, 'con_tracking_method.con_filter_by_lifetime.con_use_min.min_lifetime') + + use_max = get_json_value(input_params, 'con_tracking_method.con_filter_by_lifetime.con_use_max.use_max') + if use_max == "Yes": + max_life = get_json_value(input_params, 'con_tracking_method.con_filter_by_lifetime.con_use_max.max_lifetime') + + result += INDENTATION.join( + [f"{INDENTATION}Filter objects by lifetime?:{filter_by_lifetime}\n", + f"Filter using a minimum lifetime?:{use_min}\n", + f"Minimum lifetime:{min_life}\n", + f"Filter using a maximum lifetime?:{use_max}\n", + f"Maximum lifetime:{max_life}\n" + ]) + + # print 2 leftover from LAP + result += INDENTATION.join( + [f"{INDENTATION}Mitosis alternative cost:{mitosis_alt}\n", + f"Maximum mitosis distance, in pixel units:{max_mitosis_dist}\n" + ]) + + # Follow Neighbors + # defaults + avg_cell_diameter = 35.0 + use_adv = "No" + cost_of_cell = 15.0 + weight_of_area_diff = 25.0 + + if tracking_method == "Follow Neighbors": + avg_cell_diameter = get_json_value(input_params, 'con_tracking_method.avg_diameter') + use_adv = get_json_value(input_params, 'con_tracking_method.con_adv_parameter.adv_parameter') + if use_adv == "Yes": + cost_of_cell = get_json_value(input_params, 'con_tracking_method.con_adv_parameter.cost') + weight_of_area_diff = get_json_value(input_params, 'con_tracking_method.con_adv_parameter.weight') + + result += INDENTATION.join( + [f"{INDENTATION}Average cell diameter in pixels:{avg_cell_diameter}\n", + f"Use advanced configuration parameters:{use_adv}\n", + f"Cost of cell to empty matching:{cost_of_cell}\n", + f"Weight of area difference in function matching cost:{weight_of_area_diff}\n" + ]) + + return result + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + '-p', '--pipeline', + help='CellProfiler pipeline' + ) + parser.add_argument( + '-i', '--inputs', + help='JSON inputs from Galaxy' + ) + args = parser.parse_args() + + pipeline_lines = get_pipeline_lines(args.pipeline) + inputs_galaxy = json.load(open(args.inputs, "r")) + + current_module_num = get_total_number_of_modules(pipeline_lines) + current_module_num += 1 + pipeline_lines = update_module_count(pipeline_lines, current_module_num) + + header_block = build_header(MODULE_NAME, current_module_num) + main_block = build_main_block(inputs_galaxy) + + module_pipeline = f"\n{header_block}{main_block}\n" + pipeline_lines.append(module_pipeline) + + write_pipeline(OUTPUT_FILENAME, pipeline_lines)