view extract_ipm_date_interval.xml @ 5:d62034b36200 draft default tip

Uploaded
author greg
date Thu, 09 Aug 2018 10:15:32 -0400
parents 2c517a58544c
children
line wrap: on
line source

<tool id="ipm_date_interval" name="Extract date interval" version="1.1.0">
    <description>from insect phenology model data</description>
    <requirements>
        <requirement type="package" version="1.10.4">r-data.table</requirement>
        <requirement type="package" version="2.2.6">r-hash</requirement>
        <requirement type="package" version="1.4.4">r-optparse</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
#import os
#set input_data_dir = 'input_data_dir'
#set output_data_dir = "output_data_dir"
#set output_plots_dir = "output_plots_dir"
#set error_file = $os.path.join($output_data_dir, "04_combined_generations.csv")
#set job = $input_data[0].creating_job
#set tool_parameters = ""
#for $p in $job.parameters:
    #set tool_parameters = $tool_parameters + "__SeP__" + $p.name
    #set tool_parameters = $tool_parameters + "__SeP__" + $p.value
#end for
mkdir $input_data_dir &&
mkdir output_data_dir &&
mkdir output_plots_dir &&
#for $i in $input_data:
    #set filename = $i.file_name
    #set name = $i.name
    ln -s $filename $input_data_dir/$name &&
#end for
Rscript '$__tool_directory__/extract_ipm_date_interval.R'
--end_date '$end_date'
--input_data_dir '$input_data_dir'
--script_dir '$__tool_directory__'
--start_date '$start_date'
--tool_parameters '$tool_parameters'
&>eipmdi_log.txt;
if [[ $? -ne 0 ]]; then
    cp eipmdi_log.txt '$error_file';
    exit 1;
fi]]></command>
    <inputs>
        <param name="input_data" type="data_collection" format="csv" collection_type="list" label="Insect phenology model data files" />
        <param name="start_date" type="text" value="" label="Start date" help="Format must be yyyy-mm-dd">
            <validator type="expression" message="Date must have the format yyyy-mm-dd">len(value.split('-')[0])==4 and int(value.split('-')[0]) and len(value.split('-')[1])==2 and int(value.split('-')[1]) and len(value.split('-')[2])==2 and int(value.split('-')[2])</validator>
        </param>
        <param name="end_date" type="text" value="" label="End date" help="Format must be yyyy-mm-dd, and the date must be between 1 and 50 days after the start date">
            <validator type="expression" message="Date must have the format yyyy-mm-dd">len(value.split('-')[0])==4 and int(value.split('-')[0]) and len(value.split('-')[1])==2 and int(value.split('-')[1]) and len(value.split('-')[2])==2 and int(value.split('-')[2])</validator>
        </param>
    </inputs>
    <outputs>
        <collection name="output_data_collection" type="list" label="${tool.name} (data), on ${on_string}">
            <discover_datasets pattern="__name__" directory="output_data_dir" format="csv"/>
        </collection>
        <collection name="output_plot_collection" type="list" label="${tool.name} (plots), on ${on_string}">
            <discover_datasets pattern="__name__" directory="output_plots_dir" format="pdf"/>
        </collection>
    </outputs>
    <tests>
        <test>
            <!--
            FIXME: Here is a sort of layout for a test, but since the input collection will be uploaded, the test
            will fail bacused the job parameters for the inputs will not be those produced by the insect_phenology_model
            tool.  Testing this tool will require using the workflow testing approach.
            <param name="input_data">
                <collection type="list">
                    <element name="input_p_1.csv" value="input_p_1.csv" ftype="csv"/>
                    <element name="input_f1_1.csv" value="input_f1_1.csv" ftype="csv"/>
                    <element name="input_f2_1.csv" value="input_f2_1.csv" ftype="csv"/>
                    <element name="input_combined1.csv" value="input_combined1.csv" ftype="csv"/>
                </collection>
            </param>
            <param name="start_date" value="2017-04-01"/>
            <param name="end_date" value="2017-04-15"/>
            <output_collection name="output_data_collection" type="list">
                <element name="01_generation_P.csv" file="output_p_1.csv" ftype="csv" compare="contains"/>
                <element name="02_generation_F1.csv" file="output_f1_1.csv" ftype="csv" compare="contains"/>
                <element name="03_generation_F2.csv" file="output_f2_1.csv" ftype="csv" compare="contains"/>
                <element name="04_combined_generations.csv" file="output_combined1.csv" ftype="csv" compare="contains"/>
            </output_collection>
            <output_collection name="output_plot_collection" type="list">
                <element name="01_egg_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
                <element name="04_total_nymph_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
                <element name="08_total_adult_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
                <element name="09_total_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
            </output_collection>
            -->
        </test>
    </tests>
    <help>
**What it does**

Extracts a date interval from the data produced by the Insect Phenology Model tool, providing a "zoomed in" view of the plots.

The Insect Phenology Model tool produces 2 dataset collections, one consisting of the the analyzed data files and another consisting
of plots based on the data files.  The data consists of a complete year, and the X axis displays weekly tick marks (on Sundays)
as well as the first day of each month.

This tool accepts the Insect Phenology Model collection of data files as input and extracts the user-specified date interval from
the files, producing a collection of data files with the same names, but containing only the extracted date interval.  A collection
of plots is also produced, each with the same name as those produced by the Insect Phenology Model tool, but restricted to the
date interval, which is cannot be more than 50 days.  The X axis displays daily tick marks, essentially zooming in on the original
data.

This tool inspects the parameter values that were specified when the Insect Phenology Model tool was executed in order to
generate the plots, so it is essential that the dataset collection selected as the input to this tool was produced by the
Insect Phenology Model tool.

-----

**Required options**

 * **Insect phenology model data files** - select the collection of data files produced by the Insect Phenology Model tool.
 * **Start date** - enter a start date for the interval using the format YYYY-MM-DD, making sure that the year coincides with the selected collection of input data files.
 * **End date** - enter an end date for the interval using the format YYYY-MM-DD which is between 1 and 50 days after the start date.
    </help>
    <citations>
        <citation type="doi">10.3389/fphys.2016.00165</citation>
        <citation type="doi">10.1175/JTECH-D-11-00103.1</citation>
        <citation type="doi">10.7289/V5D21VHZ</citation>
    </citations>
</tool>