diff enhance_or_suppress_features.xml @ 0:e28d0b4ed79a draft

"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools commit 6d73056a625002d0275b5a9a90a9fae329ce47f1"
author bgruening
date Thu, 26 Mar 2020 20:07:02 +0000
parents
children b7014aafa455
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/enhance_or_suppress_features.xml	Thu Mar 26 20:07:02 2020 +0000
@@ -0,0 +1,249 @@
+<tool id="cp_enhance_or_suppress_features" name="EnhanceOrSuppressFeatures" version="@CP_VERSION@">
+    <description>enhances or suppresses certain image features, which can improve subsequent identification of objects</description>
+
+    <macros>
+        <import>macros.xml</import>
+
+        <xml name="feature_speckles">
+            <param name="speckles_feature_size" label="Feature size" type="integer" value="10" />
+            <param name="speed_accuracy" label="Speed and accuracy" type="select">
+                <option value="Fast">Fast</option>
+                <option value="Slow">Slow</option>
+            </param>
+        </xml>
+        <xml name="feature_neurites">
+            <conditional name="con_feature_neurites">
+                <param name="enhancement_method" label="Enhancement method" type="select">
+                    <option value="Tubeness">Tubeness</option>
+                    <option value="Line structures">Line structures</option>
+                </param>
+                <when value="Tubeness">
+                    <param name="tube_smoothing_scale" label="Smoothing scale" type="float" value="2.0" min="0.0" />
+                </when>
+                <when value="Line structures">
+                    <param name="line_structures_feature_size" label="Feature size" type="integer" value="10" />
+                </when>
+            </conditional>
+        </xml>
+        <xml name="feature_darkholes">
+            <param name="min_hole_size" label="Minimum hole size" type="integer" value="1" min="0"/>
+            <param name="max_hole_size" label="Maximum hole size" type="integer" value="15"/>
+        </xml>  
+        <xml name="feature_circle">
+            <param name="circle_feature_size" label="Feature size" type="integer" value="10"/>
+        </xml>     
+        <xml name="feature_texture">
+            <param name="texture_smoothing_scale" label="Smoothing scale" type="float" value="2.0"  min="0.0"/>
+        </xml>
+        <xml name="feature_dic">
+            <param name="dic_smoothing_scale" label="Smoothing scale" type="float" value="2.0" min="0.0" />
+            <param name="dic_shear_angle" label="Shear angle" type="float" value="0.0" min="0.0" />
+            <param name="dic_decay" label="Decay" type="float" value="0.95" min="0.0" />
+        </xml>      
+    </macros>
+
+    <expand macro="py_requirements"/>
+    <expand macro="cmd_modules" /> 
+
+    <configfiles>
+        <inputs name="inputs" />
+        <configfile name="script_file">
+import json
+import sys
+import os
+
+FOURSPACES=@SPACES@
+
+input_json_path = sys.argv[1]
+input_pipeline= sys.argv[2]
+
+params = json.load(open(input_json_path, "r"))
+
+def writeesf():
+    _str = "\nEnhanceOrSuppressFeatures:[module_num:%d|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]\n" % new_count
+    _str += FOURSPACES + "Select the input image:%s\n" % params['input_image']
+    _str += FOURSPACES + "Name the output image:%s\n" % params['name_output_image']
+
+    operation = params['con_enhance_suppress']['select_operation']
+    _str += FOURSPACES + "Select the operation:%s\n" % operation
+
+    con_feature_type = params['con_enhance_suppress']['con_feature_type']
+
+    if operation == "Suppress":
+        _str += FOURSPACES + "Feature size:%s\n" % params['con_enhance_suppress']['feature_size']
+        ## Below values are not used in this case, but required by CP pipeline file to be
+        ## present as some sorts of "default" values
+        _str += FOURSPACES + "Feature type:Speckles"
+        _str += FOURSPACES + "Range of hole sizes:1,10"
+        _str += FOURSPACES + "Smoothing scale:2.0"
+        _str += FOURSPACES + "Shear angle:0.0"
+        _str += FOURSPACES + "Decay:0.95"
+        _str += FOURSPACES + "Enhancement method:Tubeness"
+        _str += FOURSPACES + "Speed and accuracy:Fast"
+    elif operation == "Enhance":
+        feature_type = con_feature_type['feature_type']
+
+        if feature_type == "Speckles":
+            _str += FOURSPACES + "Feature size:%d\n" % con_feature_type['speckles_feature_size']
+            _str += FOURSPACES + "Feature type:%s\n" % feature_type
+            _str += FOURSPACES + "Range of hole sizes:1,10\n"
+            _str += FOURSPACES + "Smoothing scale:2.0\n"
+            _str += FOURSPACES + "Shear angle:0.0\n"
+            _str += FOURSPACES + "Decay:0.95\n"
+            _str += FOURSPACES + "Enhancement method:Tubeness\n"
+            _str += FOURSPACES + "Speed and accuracy:%s\n" % con_feature_type['speed_accuracy']
+        elif feature_type == "Neurites":
+            enhancement_method = con_feature_type['con_feature_neurites']['enhancement_method']
+            if enhancement_method == "Tubeness":
+                _str += FOURSPACES + "Feature size:10\n"
+                _str += FOURSPACES + "Feature type:%s\n" % feature_type
+                _str += FOURSPACES + "Range of hole sizes:1,10\n"
+                _str += FOURSPACES + "Smoothing scale:%.1f\n" % con_feature_type['con_feature_neurites']['tube_smoothing_scale']
+                _str += FOURSPACES + "Shear angle:0.0\n"
+                _str += FOURSPACES + "Decay:0.95\n"
+                _str += FOURSPACES + "Enhancement method:%s\n" % enhancement_method
+                _str += FOURSPACES + "Speed and accuracy:Fast\n"
+            elif enhancement_method == "Line structures":
+                _str += FOURSPACES + "Feature size:%s\n" % con_feature_type['con_feature_neurites']['line_structures_feature_size']
+                _str += FOURSPACES + "Feature type:%s\n" % feature_type
+                _str += FOURSPACES + "Range of hole sizes:1,10\n"
+                _str += FOURSPACES + "Smoothing scale:2.0\n"
+                _str += FOURSPACES + "Shear angle:0.0\n"
+                _str += FOURSPACES + "Decay:0.9\n5"
+                _str += FOURSPACES + "Enhancement method:%s\n" % enhancement_method
+                _str += FOURSPACES + "Speed and accuracy:Fast\n"
+        elif feature_type == "Dark holes":
+            _str += FOURSPACES + "Feature size:10\n"
+            _str += FOURSPACES + "Feature type:%s\n" % feature_type
+            _str += FOURSPACES + "Range of hole sizes:%d,%d\n" %(con_feature_type['min_hole_size'],con_feature_type['max_hole_size'])
+            _str += FOURSPACES + "Smoothing scale:2.0\n"
+            _str += FOURSPACES + "Shear angle:0.0\n"
+            _str += FOURSPACES + "Decay:0.95\n"
+            _str += FOURSPACES + "Enhancement method:Tubeness\n"
+            _str += FOURSPACES + "Speed and accuracy:Fast\n"
+        elif feature_type == "Circles":
+            _str += FOURSPACES + "Feature size:%d\n" % con_feature_type['circle_feature_size']
+            _str += FOURSPACES + "Feature type:%s\n" % feature_type
+            _str += FOURSPACES + "Range of hole sizes:1,10\n"
+            _str += FOURSPACES + "Smoothing scale:2.0\n"
+            _str += FOURSPACES + "Shear angle:0.0\n"
+            _str += FOURSPACES + "Decay:0.95\n"
+            _str += FOURSPACES + "Enhancement method:Tubeness\n"
+            _str += FOURSPACES + "Speed and accuracy:Fast\n"
+        elif feature_type == "Texture":
+            _str += FOURSPACES + "Feature size:%d\n" % con_feature_type['circle_feature_size']
+            _str += FOURSPACES + "Feature type:%s\n" % feature_type
+            _str += FOURSPACES + "Range of hole sizes:1,10\n"
+            _str += FOURSPACES + "Smoothing scale:%.1f\n" % con_feature_type['texture_smoothing_scale']
+            _str += FOURSPACES + "Shear angle:0.0\n"
+            _str += FOURSPACES + "Decay:0.95\n"
+            _str += FOURSPACES + "Enhancement method:Tubeness\n"
+            _str += FOURSPACES + "Speed and accuracy:Fast\n"
+        elif feature_type == "DIC":
+            _str += FOURSPACES + "Feature size:10\n"
+            _str += FOURSPACES + "Feature type:%s\n" % feature_type
+            _str += FOURSPACES + "Range of hole sizes:1,10\n"
+            _str += FOURSPACES + "Smoothing scale:%.1f\n" % con_feature_type['texture_smoothing_scale']
+            _str += FOURSPACES + "Shear angle:%.1f\n" % con_feature_type['dic_shear_angle']
+            _str += FOURSPACES + "Decay:%.2f\n" % con_feature_type['dic_decay']
+            _str += FOURSPACES + "Enhancement method:Tubeness\n"
+            _str += FOURSPACES + "Speed and accuracy:Fast\n"
+
+    return _str
+
+
+with open(input_pipeline) as fin:
+    lines = fin.readlines()
+
+    k, v = lines[4].strip().split(':')
+
+    module_count = int(v)
+    new_count = module_count + 1
+    lines[4] = k + ":%d\n" % new_count
+
+    with open("output", "w") as f:
+        f.writelines(lines)
+        f.write(writeesf())
+
+f.close()
+        </configfile>    
+    </configfiles>
+
+    <inputs>
+
+      <expand macro="input_pipeline_macro"/>
+      <param name="input_image" type="text" label="Select the input image" />
+
+      <param name="name_output_image" type="text" label="Name the output image" />
+
+      <conditional name="con_enhance_suppress">
+        <param name="select_operation" label="Select the operation" type="select">
+          <option value="Enhance">Enhance</option>
+          <option value="Suppress">Suppress</option>
+        </param>
+
+        <when value="Enhance">
+           <conditional name="con_feature_type">
+            <param name="feature_type" type="select" label="Feature type">
+              <option value="Speckles">Speckles</option>
+              <option value="Neurites">Neurites</option>
+              <option value="Dark holes">Dark holes</option>
+              <option value="Circles">Circles</option>
+              <option value="Texture">Texture</option>
+              <option value="DIC">DIC</option>
+            </param>
+             <when value="Speckles">
+              <expand macro="feature_speckles" />
+            </when>
+            <when value="Neurites">
+              <expand macro="feature_neurites" />
+            </when>
+            <when value="Dark holes">
+              <expand macro="feature_darkholes" />
+            </when>
+            <when value="Circles">
+              <expand macro="feature_circle" />
+            </when>
+            <when value="Texture">
+              <expand macro="feature_texture" />
+            </when>
+            <when value="DIC">
+              <expand macro="feature_dic" />
+            </when> 
+          </conditional>
+        </when>
+
+        <when value="Suppress">
+          <param name="feature_size" type="integer" label="Feature size" value="10"/>
+        </when>
+
+      </conditional>
+      
+  </inputs>
+
+  <outputs>
+      <expand macro="output_pipeline_macro" />
+  </outputs>
+
+
+  <tests>
+      <test>
+        <expand macro="test_input_pipeline_param" />
+        <param name="input_image" value="DNA" />
+        <param name="name_output_image" value="DNAdarkholes" />
+        <conditional name="con_enhance_suppress">
+            <param name="select_operation" value="Enhance" />
+            <conditional name="con_feature_type">
+                <param name="feature_type" value="Dark holes" />
+                <param name="min_hole_size" value="1" />
+                <param name="max_hole_size" value="15" />
+            </conditional>
+        </conditional>
+
+        <expand macro="test_out_file" file="enhance_or_suppress_features.txt" />
+      </test>
+  </tests>
+
+  <expand macro="help" module="EnhanceOrSuppressFeatures" />
+  <expand macro="citations" />
+</tool>