Mercurial > repos > bgruening > cp_common
diff starting_modules.xml @ 3:27396311a314 draft
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools commit c3917e27eb1c1deeb381aa0dc8161c07699562fb"
author | bgruening |
---|---|
date | Mon, 11 May 2020 07:45:07 -0400 |
parents | 3c3cd68d6d5a |
children | 670975e92458 |
line wrap: on
line diff
--- a/starting_modules.xml Thu Apr 16 05:29:02 2020 -0400 +++ b/starting_modules.xml Mon May 11 07:45:07 2020 -0400 @@ -1,418 +1,78 @@ -<tool id="cp_common" name="Starting modules" version="@CP_VERSION@"> +<tool id="cp_common" name="Starting Modules" version="@CP_VERSION@"> <description>load images and metadata into CellProfiler (Images, Metadata, NamesAndTypes, Groups)</description> <macros> <import>macros.xml</import> - <xml name="image_type_condition"> - <conditional name="con_set_intensity"> - <param name="set_intensity_range_from" type="select" label="Set intensity range from"> - <option value="Image metadata">Image metadata</option> - <option value="Image bit-depth">Image bit-depth</option> - <option value="Manual">Manual</option> - </param> - <when value="Manual"> - <param name="maximum_intensity" type="float" value="255.0" label="Maximum intensity"/> - </when> - <when value="Image metadata" /> - <when value="Image bit-depth" /> - </conditional> - </xml> - <xml name="name_type_rule_matching_file"> - <param name="operator" type="select"> - <option value="does">Does</option> - <option value="doesnot">Does not</option> - </param> - <param name="contain" type="select"> - <option value="contain">Contain</option> - <option value="Contain regular expression">Contain regular expression</option> - <option value="startwith">Start with</option> - <option value="endwith">End with</option> - <option value="Exactly match">Exactly match</option> - </param> - <param name="match_value" type="text"/> - </xml> - <xml name="image_matching_rules"> - <repeat name="r_match_rule" title="Rules"> - <param name="match_all_any" type="select" display="radio" label="Match the following rules"> - <option value="and">All</option> - <option value="or">Any</option> - </param> - <conditional name="con_match"> - <param name="rule_type" type="select" label="Select rule criteria"> - <option value="file">File</option> - <option value="directory">Directory</option> - <option value="extension">Extension</option> - <option value="image">Image</option> - <option value="metadata">Metadata</option> - </param> - <when value="file"> - <expand macro="name_type_rule_matching_file"/> - </when> - <when value="directory"> - <expand macro="name_type_rule_matching_file"/> - </when> - <when value="extension" /> - <when value="image"/> - <when value="metadata"/> - </conditional> - <param name="name_to_assign" label="Name to assign these images" type="text" /> - <conditional name="con_select_image_type"> - <param name="select_image_type" type="select" label="Select the image type"> - <option value="Grayscale image">Grayscale image</option> - <option value="Color image">Color image</option> - <option value="Binary mask">Binary mask</option> - </param> - <when value ="Grayscale image"> - <expand macro="image_type_condition" /> - </when> - <when value="Color image"> - <expand macro="image_type_condition" /> - </when> - <when value="Binary mask"> - </when> - </conditional> - </repeat> - </xml> + <import>starting_modules_images.xml</import> + <import>starting_modules_metadata.xml</import> + <import>starting_modules_nameandtypes.xml</import> + <import>starting_modules_groups.xml</import> </macros> + <expand macro="py_requirements"/> <command detect_errors="aggressive"><![CDATA[ - python '$script_file' '$inputs' + python '$__tool_directory__/starting_modules.py' '$inputs' ]]></command> <configfiles> <inputs name="inputs"/> - <configfile name="script_file"> -import json -import sys -import os - -FOURSPACES = @SPACES@ - -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<Plate>.*)_(?P<Well>\x5BA-P\x5D\x5B0-9\x5D{2})_s(?P<Site>\x5B0-9\x5D)_w(?P<ChannelNumber>\x5B0-9\x5D)\n" - _str += FOURSPACES + "Regular expression to extract from folder name:(?P<Date>\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:%s\n" % metadata_extraction['metadata_type'] - _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["metadata_source"] - _str += FOURSPACES + "Regular expression to extract from file name:%s\n" % methods["file_name_regex"] - _str += FOURSPACES + "Regular expression to extract from folder name:%s\n" % methods["folder_name_regex"] - _str += FOURSPACES + "Extract metadata from:%s\n" % methods["extract_metadata_from"] - _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" - - 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['r_match_rule']) if "r_match_rule" in nameandtypes 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 + </configfiles> - 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 - - _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 - else: - _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:1.0\n" - _str += FOURSPACES + "Relative pixel spacing in Y:1.0\n" - _str += FOURSPACES + "Relative pixel spacing in Z:1.0\n" - - for rule in nameandtypes["con_assign_a_name_to"]["r_match_rule"]: - _str += FOURSPACES + "Select the rule criteria:%s%s%s%s%s%s%s%s%s%s\n" % (rule["match_all_any"], " (",rule["con_match"]["rule_type"], " ",rule["con_match"]["operator"]," ",rule["con_match"]["contain"]," \"",rule["con_match"]["match_value"],"\")") - _str += FOURSPACES + "Name to assign these images:%s\n" % rule["name_to_assign"] - _str += FOURSPACES + "Name to assign these objects:Cell\n" - _str += FOURSPACES + "Select the image type:%s\n" % rule["con_select_image_type"]["select_image_type"] - - intensity_range = rule["con_select_image_type"]["con_set_intensity"]["set_intensity_range_from"] - - _str += FOURSPACES + "Set intensity range from:%s\n" % intensity_range - _str += FOURSPACES + "Select the image type:%s\n" % rule["con_select_image_type"]["select_image_type"] - - 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" - - if process_3d == "Yes": - _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 - - 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" - - _str += FOURSPACES + "Do you want to group your images?:%s\n" % groups["con_groups"]["group_images"] - _str += FOURSPACES + "grouping metadata count:1\n" - _str += FOURSPACES + "Metadata category:%s\n" % groups["con_groups"]["group_category"] - - return _str - - -with open("output", "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() - - </configfile> - </configfiles> <inputs> <!-- Images module--> - <section name="images" title="Images" expanded="false"> - <param name="filter_images" type="select" label="Filter images?"> - <option value="Images only">Images only</option> - <option value="No filtering">No filtering</option> - </param> - </section> + <expand macro="starting_modules_images" /> <!-- Metadata module--> - <section name="metadata" title="Metadata" expanded="false"> - <conditional name="con_metadata_extraction"> - <param name="extract" type="select" display="radio" label="Extract metadata?"> - <option value="No">No</option> - <option value="Yes">Yes</option> - </param> - <when value="Yes"> - <repeat name="extraction_method" title="metadata"> - <param name="metadata_extraction_method" type="select" label="Metadata extraction method"> - <option value="Extract from file/folder names">Extract from file/folder names</option> - <option value="Import from file">Import from file</option> - <option value="Extract from image file headers">Extract from image file headers</option> - </param> - <param name="metadata_source" type="select" label="Metadata source"> - <option value="File name">File name</option> - <option value="Folder name">Folder name</option> - </param> - <param name="file_name_regex" type="select" label="Select file name pattern to extract from file name" help="Image file names must comply with one of the patterns.For example, AS_09125_050116030001_D03f00d0.tif matches the pattern field1_filed2_field3_field4. If none of the patterns are suitable, please use other Galaxy tools to rename your files first. "> - <sanitizer sanitize="false"/> - <option value="(?P<field1>.*)">field1</option> - <option value="(?P<field1>.*)-(?P<field2>[a-zA-Z0-9]+)">field1-field2</option> - <option value="(?P<field1>.*)_(?P<field2>[a-zA-Z0-9]+)">field1_field2</option> - <option value="(?P<field1>.*)__(?P<field2>[a-zA-Z0-9]+)">field1__field2</option> - <option value="(?P<field1>.*)-(?P<field2>[a-zA-Z0-9]+)-(?P<field3>[a-zA-Z0-9]+)">field1-field2-field3</option> - <option value="(?P<field1>.*)_(?P<field2>[a-zA-Z0-9]+)_(?P<field3>[a-zA-Z0-9]+)">field1_field2_field3</option> - <option value="(?P<field1>.*)__(?P<field2>[a-zA-Z0-9]+)__(?P<field3>[a-zA-Z0-9]+)">field1__field2__field3</option> - <option value="(?P<field1>.*)-(?P<field2>[a-zA-Z0-9]+)-(?P<field3>[a-zA-Z0-9]+)-(?P<field4>[a-zA-Z0-9]+)">field1-field2-field3-field4</option> - <option value="(?P<field1>.*)_(?P<field2>[a-zA-Z0-9]+)_(?P<field3>[a-zA-Z0-9]+)_(?P<field4>[a-zA-Z0-9]+)">field1_field2_field3_field4</option> - <option value="(?P<field1>.*)__(?P<field2>[a-zA-Z0-9]+)__(?P<field3>[a-zA-Z0-9]+)__(?P<field4>[a-zA-Z0-9]+)">field1__field2__field3__field4</option> - <option value="(?P<field1>.*)-(?P<field2>[a-zA-Z0-9]+)-(?P<field3>[a-zA-Z0-9]+)-(?P<field4>[a-zA-Z0-9]+)-(?P<field5>[a-zA-Z0-9]+)">field1-field2-field3-field4-field5</option> - <option value="(?P<field1>.*)_(?P<field2>[a-zA-Z0-9]+)_(?P<field3>[a-zA-Z0-9]+)_(?P<field4>[a-zA-Z0-9]+)_(?P<field5>[a-zA-Z0-9]+)">field1_field2_field3_field4_field5</option> - <option value="(?P<field1>.*)__(?P<field2>[a-zA-Z0-9]+)__(?P<field3>[a-zA-Z0-9]+)__(?P<field4>[a-zA-Z0-9]+)__(?P<field5>[a-zA-Z0-9]+)">field1__field2__field3__field4__field5</option> - <option value="(?P<field1>.*)-(?P<field2>[a-zA-Z0-9]+)-(?P<field3>[a-zA-Z0-9]+)-(?P<field4>[a-zA-Z0-9]+)-(?P<field5>[a-zA-Z0-9]+)-(?P<field6>[a-zA-Z0-9]+)">field1-field2-field3-field4-field5-field6</option> - <option value="(?P<field1>.*)_(?P<field2>[a-zA-Z0-9]+)_(?P<field3>[a-zA-Z0-9]+)_(?P<field4>[a-zA-Z0-9]+)_(?P<field5>[a-zA-Z0-9]+)_(?P<field6>[a-zA-Z0-9]+)">field1_field2_field3_field4_field5_field6</option> - <option value="(?P<field1>.*)__(?P<field2>[a-zA-Z0-9]+)__(?P<field3>[a-zA-Z0-9]+)__(?P<field4>[a-zA-Z0-9]+)__(?P<field5>[a-zA-Z0-9]+)__(?P<field6>[a-zA-Z0-9]+)">field1__field2__field3__field4__field5__field6</option> - </param> - <param name="folder_name_regex" type="select" label="Select folder name pattern to extract from folder name" help="Folder names must comply with one of the patterns.For example, folder name images-exp1 matches the pattern field1-field2. If none of the patterns are suitable, please use other Galaxy tools to rename your folder first. "> - <sanitizer sanitize="false"/> - <option value="(?P<field1>.*)">field1</option> - <option value="(?P<field1>.*)-(?P<field2>[a-zA-Z0-9]+)">field1-field2</option> - <option value="(?P<field1>.*)_(?P<field2>[a-zA-Z0-9]+)">field1_field2</option> - </param> - <param name="extract_metadata_from" type="select" label="Extract metadata from"> - <option value="All images">All images</option> - <option value="Images matching a rule">Images matching a rule</option> - </param> - </repeat> - <param name="metadata_type" type="select" label="Metadata data type"> - <option value="Text">Text</option> - </param> - </when> - <when value="No"> - </when> - </conditional> - </section> + <expand macro="starting_modules_metadata" /> <!-- NamesAndTypes--> - <section name="nameandtypes" title="NamesAndTypes" expanded="false"> - <conditional name="pixel_space"> - <param name="process_3d" type="select" display="radio" label="Process 3D"> - <option value="No">No</option> - <option value="Yes">Yes</option> - </param> - <when value="Yes"> - <param name="x_spacing" type="float" value="1.0" label="Relative pixel spacing in X"/> - <param name="y_spacing" type="float" value="1.0" label="Relative pixel spacing in Y"/> - <param name="z_spacing" type="float" value="1.0" label="Relative pixel spacing in Z"/> - </when> - <when value="No"> - </when> - </conditional> - <conditional name="con_assign_a_name_to"> - <param name="assign_a_name_to" type="select" label="Assign a name to"> - <option value="All images">All images</option> - <option value="Images matching rules">Images matching rules</option> - </param> - <when value="All images"> - <param name="name_to_assign" type="text" value="DNA" label="Name to assign these images"/> - <conditional name="con_select_image_type"> - <param name="select_image_type" type="select" label="Select the image type"> - <option value="Grayscale image">Grayscale image</option> - <option value="Color image">Color image</option> - <option value="Binary mask">Binary mask</option> - </param> - <when value ="Grayscale image"> - <expand macro="image_type_condition" /> - </when> - <when value="Color image"> - <expand macro="image_type_condition" /> - </when> - <when value="Binary mask"> - </when> - </conditional> - </when> - <when value="Images matching rules"> - <expand macro="image_matching_rules"/> - <param name="matching_method" type="select" label="Image set matching method"> - <option value="Order">Order</option> - <option value="Metadata">Metadata</option> - </param> - </when> - </conditional> - </section> + <expand macro="starting_modules_nameandtypes" /> <!-- Groups --> - <section name="groups" title="Groups" expanded="false"> - <conditional name="con_groups"> - <param name="group_images" type="select" value="No" label="Do you want to group your images?" display="radio"> - <option value="Yes">Yes</option> - <option value="No">No</option> - </param> - <when value="Yes"> - <param name="group_category" type="select" label="Metadata category"> - <option value="FileLocation">FileLocation</option> - <option value="Frame">Frame</option> - <option value="ImageId">ImageId</option> - <option value="Screen">Screen</option> - <option value="Series">Series</option> - <option value="field1">field1</option> - <option value="field2">field2</option> - <option value="field3">field3</option> - <option value="field4">field4</option> - <option value="field5">field5</option> - <option value="field6">field6</option> - </param> - </when> - <when value="No"> - </when> - </conditional> - </section> + <expand macro="starting_modules_groups" /> </inputs> <outputs> - <expand macro="output_pipeline_macro" /> + <expand macro="output_pipeline_param" /> </outputs> <tests> <test> + <!-- one big test case for various inputs scenarios --> <param name="filter_images" value="Images only"/> <conditional name="con_metadata_extraction"> <param name="extract" value="Yes"/> <repeat name="extraction_method"> <param name="metadata_extraction_method" value="Extract from file/folder names"/> - <param name="metadata_source" value="File name" /> - <param name="file_name_regex" value="(?P<field1>.*)_(?P<field2>[a-zA-Z0-9]+)_(?P<field3>[a-zA-Z0-9]+)_(?P<field4>[a-zA-Z0-9]+)" /> - <param name="extract_metadata_from" value="All images" /> + <conditional name="con_metadata_extract_from"> + <param name="match_all_any" value="and" /> + <repeat name="r_match"> + <conditional name="con_match"> + <param name="operator" value="does"/> + <param name="rule_type" value="file"/> + <param name="match_value" value="im"/> + <param name="contain" value="contain"/> + </conditional> + </repeat> + <repeat name="r_match"> + <conditional name="con_match"> + <param name="operator" value="does"/> + <param name="rule_type" value="extension"/> + <param name="match_type" value="istif"/> + </conditional> + </repeat> + <param name="extract_metadata_from" value="Images matching a rule" /> + </conditional> + <conditional name="con_metadata_source"> + <param name="metadata_source" value="File name" /> + <param name="file_name_regex" value="(?P<field1>.*)_(?P<field2>[a-zA-Z0-9]+)_(?P<field3>[a-zA-Z0-9]+)_(?P<field4>[a-zA-Z0-9]+)" /> + </conditional> </repeat> - <param name="metadata_type" value="Text" /> + <repeat name="extraction_method"> + <param name="metadata_extraction_method" value="Extract from file/folder names"/> + <conditional name="con_metadata_extract_from"> + <param name="extract_metadata_from" value="All images" /> + </conditional> + <conditional name="con_metadata_source"> + <param name="metadata_source" value="Folder name" /> + <param name="folder_name_regex" value="(?P<folderField1>.*)_(?P<folderField2>[a-zA-Z0-9]+)" /> + </conditional> + </repeat> </conditional> <conditional name="pixel_space"> <param name="process_3d" value="No"/> @@ -421,14 +81,47 @@ <param name="assign_a_name_to" value="Images matching rules"/> <repeat name="r_match_rule"> <param name="match_all_any" value="and" /> - <conditional name="con_match"> - <param name="rule_type" value="file" /> - <param name="operator" value="does" /> - <param name="contain" value="startwith" /> - <param name="match_value" value="im" /> + <repeat name="r_match"> + <conditional name="con_match"> + <param name="rule_type" value="file" /> + <param name="operator" value="does" /> + <param name="contain" value="contain" /> + <param name="match_value" value="im" /> + </conditional> + </repeat> + <repeat name="r_match"> + <conditional name="con_match"> + <param name="rule_type" value="image" /> + <param name="operator" value="doesnot" /> + <param name="match_type" value="ismonochrome" /> + </conditional> + </repeat> + <conditional name="con_select_image_type"> + <param name="name_to_assign" value="Cell" /> + <param name="select_image_type" value="Objects" /> </conditional> - <param name="name_to_assign" value="DNA" /> + </repeat> + + <repeat name="r_match_rule"> + <param name="match_all_any" value="and" /> + <repeat name="r_match" /> <conditional name="con_select_image_type"> + <param name="name_to_assign" value="GFP" /> + <param name="select_image_type" value="Illumination function" /> + </conditional> + </repeat> + + <repeat name="r_match_rule"> + <param name="match_all_any" value="or" /> + <repeat name="r_match"> + <conditional name="con_match"> + <param name="rule_type" value="extension" /> + <param name="operator" value="does" /> + <param name="match_type" value="istif" /> + </conditional> + </repeat> + <conditional name="con_select_image_type"> + <param name="name_to_assign" value="Actin" /> <param name="select_image_type" value="Grayscale image" /> <conditional name="con_set_intensity"> <param name="set_intensity_range_from" value="Image metadata" /> @@ -439,26 +132,151 @@ </conditional> <conditional name="con_groups"> <param name="group_images" value="Yes" /> - <param name="group_category" value="Screen" /> + <param name="group_category" value="field1" /> + </conditional> + <expand macro="test_out_file" file="common-complicated.cppipe"/> + </test> + <test> + <!-- Repeat test for no grouping --> + <param name="filter_images" value="Images only"/> + <conditional name="con_metadata_extraction"> + <param name="extract" value="Yes"/> + <repeat name="extraction_method"> + <param name="metadata_extraction_method" value="Extract from file/folder names"/> + <conditional name="con_metadata_extract_from"> + <param name="match_all_any" value="and" /> + <repeat name="r_match"> + <conditional name="con_match"> + <param name="operator" value="does"/> + <param name="rule_type" value="file"/> + <param name="match_value" value="im"/> + <param name="contain" value="contain"/> + </conditional> + </repeat> + <repeat name="r_match"> + <conditional name="con_match"> + <param name="operator" value="does"/> + <param name="rule_type" value="extension"/> + <param name="match_type" value="istif"/> + </conditional> + </repeat> + <param name="extract_metadata_from" value="Images matching a rule" /> + </conditional> + <conditional name="con_metadata_source"> + <param name="metadata_source" value="File name" /> + <param name="file_name_regex" value="(?P<field1>.*)_(?P<field2>[a-zA-Z0-9]+)_(?P<field3>[a-zA-Z0-9]+)_(?P<field4>[a-zA-Z0-9]+)" /> + </conditional> + </repeat> + <repeat name="extraction_method"> + <param name="metadata_extraction_method" value="Extract from file/folder names"/> + <conditional name="con_metadata_extract_from"> + <param name="extract_metadata_from" value="All images" /> + </conditional> + <conditional name="con_metadata_source"> + <param name="metadata_source" value="Folder name" /> + <param name="folder_name_regex" value="(?P<folderField1>.*)_(?P<folderField2>[a-zA-Z0-9]+)" /> + </conditional> + </repeat> + </conditional> + <conditional name="pixel_space"> + <param name="process_3d" value="No"/> </conditional> - <expand macro="test_out_file" /> + <conditional name="con_assign_a_name_to"> + <param name="assign_a_name_to" value="Images matching rules"/> + <repeat name="r_match_rule"> + <param name="match_all_any" value="and" /> + <repeat name="r_match"> + <conditional name="con_match"> + <param name="rule_type" value="file" /> + <param name="operator" value="does" /> + <param name="contain" value="contain" /> + <param name="match_value" value="im" /> + </conditional> + </repeat> + <repeat name="r_match"> + <conditional name="con_match"> + <param name="rule_type" value="image" /> + <param name="operator" value="doesnot" /> + <param name="match_type" value="ismonochrome" /> + </conditional> + </repeat> + <conditional name="con_select_image_type"> + <param name="name_to_assign" value="Cell" /> + <param name="select_image_type" value="Objects" /> + </conditional> + </repeat> + + <repeat name="r_match_rule"> + <param name="match_all_any" value="and" /> + <repeat name="r_match" /> + <conditional name="con_select_image_type"> + <param name="name_to_assign" value="GFP" /> + <param name="select_image_type" value="Illumination function" /> + </conditional> + </repeat> + + <repeat name="r_match_rule"> + <param name="match_all_any" value="or" /> + <repeat name="r_match"> + <conditional name="con_match"> + <param name="rule_type" value="extension" /> + <param name="operator" value="does" /> + <param name="match_type" value="istif" /> + </conditional> + </repeat> + <conditional name="con_select_image_type"> + <param name="name_to_assign" value="Actin" /> + <param name="select_image_type" value="Grayscale image" /> + <conditional name="con_set_intensity"> + <param name="set_intensity_range_from" value="Image metadata" /> + </conditional> + </conditional> + </repeat> + <param name="matching_method" value="Order" /> + </conditional> + <conditional name="con_groups"> + <param name="group_images" value="No" /> + </conditional> + <expand macro="test_out_file" file="common-nogroup.cppipe" /> </test> </tests> <help> - This tool builds a CellProfiler pipeline file with headers and 4 compulsory modules, 'Images', 'Metadata', 'NamesAndTypes' and 'Groups'. + <![CDATA[ + + .. class:: infomark + + **What it does** + + This tool is the first in a CellProfiler pipeline and includes the first four modules: - No input parameters are needed for this tool. The rest CP modules will build based on the output of this file. + *Images*: use the Images module to compile a list of files that you want to analyze. + + *Metadata*: optionally allows you to extract information describing your images (i.e., metadata) which will be stored along with your measurements. - - Images: use the Images module to compile a list of files that you want to analyze. + *NamesAndTypes*: allows you to assign a meaningful name to each image by which other modules will refer to it. + + *Groups*: 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. + + .. class:: infomark - Metadata: optionally allows you to extract information describing your images (i.e., metadata) which will be stored along with your measurements. + **Input** + + No input parameters are needed for this tool. + + .. class:: infomark + + **Output** - NamesAndTypes: allows you to assign a meaningful name to each image by which other modules will refer to it. + A CellProfiler pipeline file *(.cppipe)* with the settings of the 4 modules. + + .. class:: warningmark - Groups: 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. + **IMPORTANT** + This tool has to be the first one in a CellProfiler workflow and the last one **CellProfiler**. + + ]]> </help> <expand macro="citations" /> </tool>