view measure_image_intensity.xml @ 1:2a404d72850f draft

"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools commit 6a3036d24b5ec074936f8f8283b7e176f6f1ce70"
author bgruening
date Thu, 09 Apr 2020 08:15:21 -0400
parents e87d1fd2d673
children 20525bc7f6f4
line wrap: on
line source

<tool id="cp_measure_image_intensity" name="MeasureImageIntensity" version="@CP_VERSION@">
    <description>measures several intensity features across an entire image (excluding masked pixels)</description>
  
    <macros>
        <import>macros.xml</import>
    </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 writemii():
    _str = "\nMeasureImageIntensity:[module_num:%d|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]\n" % new_count

    for intensity in params['rpt_intensity']:
        obj_flag = intensity['con_intensity']['only_from_objects']

        _str += FOURSPACES + "Select the image to measure:%s\n" % intensity['image_to_measure']
        _str += FOURSPACES + "Measure the intensity only from areas enclosed by objects?:%s\n" % obj_flag

        if obj_flag == "No":
            _str += FOURSPACES + "Select the input objects:None\n"
        else:
            _str += FOURSPACES + "Select the input objects:%s\n" % intensity['con_intensity']['input_objects']

    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(writemii())

f.close()
        </configfile>    
    </configfiles>

    <inputs>

        <expand macro="input_pipeline_macro" />
        <repeat name="rpt_intensity" title="Add another image">
            <param name="image_to_measure" label="Select image to measure" type="text" >
                <expand macro="text_validator" />
            </param>
            <conditional name="con_intensity">
                <param name="only_from_objects" label="Measure the intensity only from areas enclosed by objects?" display="radio" type="select">
                    <option value="Yes">Yes</option>
                    <option value="No">No</option>
                </param>
                <when value="Yes">
                    <param name="input_objects" label="Select the input objects" type="text">
                        <expand macro="text_validator" />
                    </param>
                </when>
                <when value="No" />
            </conditional>
        </repeat>
    </inputs>

    <outputs>
        <expand macro="output_pipeline_macro" />
    </outputs>

    <tests>
        <test>
            <expand macro="test_input_pipeline_param" />
            <repeat name="rpt_intensity">
                <param name="image_to_measure" value="DNA" />
                <conditional name="con_intensity">
                    <param name="only_from_objects" value="No" />
                </conditional>
            </repeat>
            <repeat name="rpt_intensity">
                <param name="image_to_measure" value="DNA" />
                <conditional name="con_intensity">
                    <param name="only_from_objects" value="Yes" />
                    <param name="input_objects" value="Nuclei" />
                </conditional>
            </repeat>
            <expand macro="test_out_file" file="measure_image_intensity.txt" />
        </test>
    </tests>
    <expand macro="help" module="MeasureImageIntensity" />
    <expand macro="citations" />
</tool>