0
|
1 <tool id="ipm_date_interval" name="Extract date interval" version="1.1.0">
|
|
2 <description>from insect phenology model data</description>
|
|
3 <requirements>
|
|
4 <requirement type="package" version="1.10.4">r-data.table</requirement>
|
|
5 <requirement type="package" version="2.2.6">r-hash</requirement>
|
|
6 <requirement type="package" version="1.4.4">r-optparse</requirement>
|
|
7 </requirements>
|
|
8 <command detect_errors="exit_code"><![CDATA[
|
|
9 #import os
|
|
10 #set input_data_dir = 'input_data_dir'
|
|
11 #set output_data_dir = "output_data_dir"
|
|
12 #set output_plots_dir = "output_plots_dir"
|
|
13 #set error_file = $os.path.join($output_data_dir, "04_combined_generations.csv")
|
|
14 #set job = $input_data[0].creating_job
|
|
15 #set tool_parameters = ""
|
|
16 #for $p in $job.parameters:
|
|
17 #set tool_parameters = $tool_parameters + "__SeP__" + $p.name
|
|
18 #set tool_parameters = $tool_parameters + "__SeP__" + $p.value
|
|
19 #end for
|
|
20 mkdir $input_data_dir &&
|
|
21 mkdir output_data_dir &&
|
|
22 mkdir output_plots_dir &&
|
|
23 #for $i in $input_data:
|
|
24 #set filename = $i.file_name
|
|
25 #set name = $i.name
|
|
26 ln -s $filename $input_data_dir/$name &&
|
|
27 #end for
|
|
28 Rscript '$__tool_directory__/extract_ipm_date_interval.R'
|
|
29 --end_date '$end_date'
|
|
30 --input_data_dir '$input_data_dir'
|
|
31 --script_dir '$__tool_directory__'
|
|
32 --start_date '$start_date'
|
|
33 --tool_parameters '$tool_parameters'
|
|
34 &>eipmdi_log.txt;
|
|
35 if [[ $? -ne 0 ]]; then
|
|
36 cp eipmdi_log.txt '$error_file';
|
|
37 exit 1;
|
|
38 fi]]></command>
|
|
39 <inputs>
|
|
40 <param name="input_data" type="data_collection" format="csv" collection_type="list" label="Insect phenology model data files" />
|
|
41 <param name="start_date" type="text" value="" label="Start date" help="Format must be yyyy-mm-dd">
|
|
42 <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>
|
|
43 </param>
|
2
|
44 <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">
|
0
|
45 <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>
|
|
46 </param>
|
|
47 </inputs>
|
|
48 <outputs>
|
|
49 <collection name="output_data_collection" type="list" label="${tool.name} (data), on ${on_string}">
|
|
50 <discover_datasets pattern="__name__" directory="output_data_dir" format="csv"/>
|
|
51 </collection>
|
|
52 <collection name="output_plot_collection" type="list" label="${tool.name} (plots), on ${on_string}">
|
|
53 <discover_datasets pattern="__name__" directory="output_plots_dir" format="pdf"/>
|
|
54 </collection>
|
|
55 </outputs>
|
|
56 <tests>
|
|
57 <test>
|
|
58 <!--
|
|
59 FIXME: Here is a sort of layout for a test, but since the input collection will be uploaded, the test
|
|
60 will fail bacused the job parameters for the inputs will not be those produced by the insect_phenology_model
|
|
61 tool. Testing this tool will require using the workflow testing approach.
|
|
62 <param name="input_data">
|
|
63 <collection type="list">
|
|
64 <element name="input_p_1.csv" value="input_p_1.csv" ftype="csv"/>
|
|
65 <element name="input_f1_1.csv" value="input_f1_1.csv" ftype="csv"/>
|
|
66 <element name="input_f2_1.csv" value="input_f2_1.csv" ftype="csv"/>
|
|
67 <element name="input_combined1.csv" value="input_combined1.csv" ftype="csv"/>
|
|
68 </collection>
|
|
69 </param>
|
|
70 <param name="start_date" value="2017-04-01"/>
|
|
71 <param name="end_date" value="2017-04-15"/>
|
|
72 <output_collection name="output_data_collection" type="list">
|
|
73 <element name="01_generation_P.csv" file="output_p_1.csv" ftype="csv" compare="contains"/>
|
|
74 <element name="02_generation_F1.csv" file="output_f1_1.csv" ftype="csv" compare="contains"/>
|
|
75 <element name="03_generation_F2.csv" file="output_f2_1.csv" ftype="csv" compare="contains"/>
|
|
76 <element name="04_combined_generations.csv" file="output_combined1.csv" ftype="csv" compare="contains"/>
|
|
77 </output_collection>
|
|
78 <output_collection name="output_plot_collection" type="list">
|
|
79 <element name="01_egg_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
|
|
80 <element name="04_total_nymph_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
|
|
81 <element name="08_total_adult_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
|
|
82 <element name="09_total_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
|
|
83 </output_collection>
|
|
84 -->
|
|
85 </test>
|
|
86 </tests>
|
|
87 <help>
|
|
88 **What it does**
|
|
89
|
2
|
90 Extracts a date interval from the data produced by the Insect Phenology Model tool, providing a "zoomed in" view of the plots.
|
|
91
|
5
|
92 The Insect Phenology Model tool produces 2 dataset collections, one consisting of the the analyzed data files and another consisting
|
2
|
93 of plots based on the data files. The data consists of a complete year, and the X axis displays weekly tick marks (on Sundays)
|
|
94 as well as the first day of each month.
|
|
95
|
|
96 This tool accepts the Insect Phenology Model collection of data files as input and extracts the user-specified date interval from
|
|
97 the files, producing a collection of data files with the same names, but containing only the extracted date interval. A collection
|
|
98 of plots is also produced, each with the same name as those produced by the Insect Phenology Model tool, but restricted to the
|
|
99 date interval, which is cannot be more than 50 days. The X axis displays daily tick marks, essentially zooming in on the original
|
|
100 data.
|
|
101
|
5
|
102 This tool inspects the parameter values that were specified when the Insect Phenology Model tool was executed in order to
|
2
|
103 generate the plots, so it is essential that the dataset collection selected as the input to this tool was produced by the
|
|
104 Insect Phenology Model tool.
|
|
105
|
|
106 -----
|
|
107
|
|
108 **Required options**
|
|
109
|
|
110 * **Insect phenology model data files** - select the collection of data files produced by the Insect Phenology Model tool.
|
|
111 * **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.
|
|
112 * **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.
|
0
|
113 </help>
|
|
114 <citations>
|
|
115 <citation type="doi">10.3389/fphys.2016.00165</citation>
|
|
116 <citation type="doi">10.1175/JTECH-D-11-00103.1</citation>
|
|
117 <citation type="doi">10.7289/V5D21VHZ</citation>
|
|
118 </citations>
|
|
119 </tool>
|