view calibrator.xml @ 13:d050c79597f5 draft default tip

planemo upload for repository https://github.com/brsynth/icfree-ml commit 16315dee62caf50b1820964b0536c1cf61c67ceb
author tduigou
date Fri, 07 Feb 2025 11:06:49 +0000
parents 2e6a3489d472
children
line wrap: on
line source

<tool id="icfree_calibrator" name="iCFree calibrator" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" license="MIT">
    <description>Calculate yield based on fluorescence data and optionally apply calibration</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="requirements"/>
    <command detect_errors="exit_code"><![CDATA[
        cp '$extractor_file' 'extractor.csv' &&
        cp '$ref_file' 'reference.csv' &&
        python -m icfree.learner.calibrator
            --output 'calibrated.csv'
            --plot '$output_graph'
            --jove_plus '$jove_plus'
            --jove_minus '$jove_minus'
            --r2_limit '$adv.r2_limit'
            #if str($adv.num_control_points) != ''
                --num_control_points '$adv.num_control_points'
            #end if
            'extractor.csv' 'reference.csv' &&
        mv 'calibrated.csv' '$output_calibrated' &&
        mv 'calibrated_control_points.csv' '$output_control_points'
    ]]></command>
    <inputs>
        <param name="extractor_file" type="data" format="csv" label="Extracted fluo/lumi values"/>
        <param name="ref_file" type="data" format="csv" label="Reference input file" />
        <param argument="jove_plus" type="integer" value="3" label="Line number for Jove+ (1-based index)" />
        <param argument="jove_minus" type="integer" value="2" label="Line number for Jove- (1-based index)" />
        <section name="adv" title="Advanced Options" expanded="false">
            <!-- Calibrator -->
            <param argument="r2_limit" type="float" value="0.8" label="R-squared limit for the regression" />
            <param argument="num_control_points" type="integer" optional="true" label="Number of control points to select" />
        </section>
    </inputs>
    <outputs>
        <data name="output_calibrated" format="csv" label="${tool.name} - Calibrated yields" />
        <data name="output_control_points" format="csv" label="${tool.name} - Control points" />
        <data name="output_graph" format="png" label="${tool.name} - Graph" />
    </outputs>
    <tests>
        <test expect_num_outputs="3">
            <!-- python -m icfree.learner.calibrator -output calibrator.output.calibrated.1.csv -jove_plus 3 -jove_minus 2 -plot calibrator.output.1.png extractor.output.1.csv calibrator.input.ref.csv -->
            <param name="extractor_file" value="extractor.output.1.csv" />
            <param name="ref_file" value="calibrator.input.ref.csv" />
            <param name="jove_plus" value="3" />
            <param name="jove_minus" value="2" />
            <output name="output_calibrated" ftype="csv">
                <assert_contents>
                    <has_n_lines n="58" />
                </assert_contents>
            </output>
            <output name="output_control_points" ftype="csv">
                <assert_contents>
                    <has_n_lines n="6" />
                </assert_contents>
            </output>
            <output name="output_graph" ftype="png" >
                <assert_contents>
                    <has_size value="45000" delta="2000" />
                </assert_contents>
            </output>
        </test>
        <test expect_num_outputs="3">
            <!-- python -m icfree.learner.calibrator -output calibrator.output.calibrated.2.csv -jove_plus 4 -jove_minus 3 -r2_limit 0.9 -num 20 -num_control_points 4 -plot calibrator.output.2.png extractor.output.2.csv calibrator.input.ref.csv -->
            <param name="extractor_file" value="extractor.output.2.csv" />
            <param name="ref_file" value="calibrator.input.ref.csv" />
            <param name="r2_limit" value="0.9" />
            <param name="num_control_points" value="4" />
            <param name="jove_plus" value="4" />
            <param name="jove_minus" value="3" />
            <output name="output_calibrated" ftype="csv">
                <assert_contents>
                    <has_n_lines n="21" />
                </assert_contents>
            </output>
            <output name="output_control_points" ftype="csv">
                <assert_contents>
                    <has_n_lines n="5" />
                </assert_contents>
            </output>
            <output name="output_graph" ftype="png" >
                <assert_contents>
                    <has_size value="38000" delta="1000" />
                </assert_contents>
            </output>
        </test>
    </tests>
    <help><![CDATA[
Calibrator
==========
Calculate yield based on fluorescence data and apply calibration.

]]></help>
    <expand macro="creator"/>
    <expand macro="citation"/>
</tool>