comparison stacks_tsv2bam.xml @ 4:60c1c4d7d2c1 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit 4e87a14a5479800df9675c1cbcdbe1b11f63653b-dirty
author matthias
date Wed, 27 Feb 2019 09:53:30 -0500
parents 56eb0bc12179
children 852044374da1
comparison
equal deleted inserted replaced
3:56eb0bc12179 4:60c1c4d7d2c1
1 <tool id="stacks2_tsv2bam" name="Stacks2: tsv2bam" version="@STACKS_VERSION@+galaxy@WRAPPER_VERSION@"> 1 <tool id="stacks2_tsv2bam" name="Stacks2: tsv2bam" profile="@PROFILE@" version="@STACKS_VERSION@+galaxy@WRAPPER_VERSION@">
2 <description>oriented data by locus</description> 2 <description>Sort reads by RAD locus</description>
3 <macros> 3 <macros>
4 <import>macros.xml</import> 4 <import>macros.xml</import>
5 </macros> 5 </macros>
6 <expand macro="requirements"/> 6 <expand macro="requirements"/>
7 <expand macro="stdio"/> 7 <expand macro="version_cmd"/>
8 <command><![CDATA[ 8 <command detect_errors="aggressive"><![CDATA[
9 @CLEAN_EXT@ 9 @FASTQ_INPUT_FUNCTIONS@
10 10
11 mkdir stacks_inputs stacks_outputs && 11 mkdir stacks_inputs stacks_outputs &&
12 12
13 ## TODO make token 13 @LINK_STACKS_INPUT@
14 #set $catalog = "" 14 @LINK_CAT_INPUT@
15 #for $input_file in $input_cat 15 @LINK_MATCHES_INPUT@
16 #set $filename = str($input_file.element_identifier)
17 #if not filename.endswith('.tsv')
18 #set $filename = $filename + ".tsv"
19 #end if
20 #if re.search('catalog\.[a-z]+(\.tsv)?$', $filename)
21 ln -s '${input_file}' 'stacks_inputs/$filename' &&
22 #if $filename.endswith('.tags.tsv')
23 #set catalog += " -c 'stacks_inputs/'"
24 #end if
25 #end if
26 #end for
27
28 ## TODO make token
29 #set $samples = ""
30 #for $input_file in $input_tags
31 #set $filename = str($input_file.element_identifier)
32 #if not filename.endswith('.tsv')
33 #set $filename = $filename + ".tsv"
34 #end if
35 #if not re.search('catalog\.[a-z]+(\.tsv)?$', $filename)
36 ln -s '${input_file}' 'stacks_inputs/$filename' &&
37 #if $filename.endswith('.tags.tsv')
38 #set samples += " -s '"+$filename[:-9] + "'"
39 #end if
40 #end if
41 #end for
42
43 ## TODO make token
44 #for $input_file in $input_matches
45 #set $filename = str($input_file.element_identifier)
46 #if not filename.endswith('.tsv')
47 #set $filename = $filename + ".tsv"
48 #end if
49 #if re.search('matches.tsv$', $filename)
50 ln -s '${input_file}' 'stacks_inputs/$filename' &&
51 #end if
52 #end for
53 16
54 ## link fastq files into stacks_inputs/ 17 ## link fastq files into stacks_inputs/
55 #set $paired_reads=False 18 #set $paired_reads=False
56 #for $sample in $input_type.samples: 19 #for $sample in $input_type.fqinputs:
57 #if not $sample: 20 #if not $sample:
58 #continue 21 #continue
59 #end if 22 #end if
60 #set $paired_reads=True 23 #set $paired_reads=True
61 #set $read_direction="reverse" 24 #set ($link_cmd, $data_path, $name, $inputype) = $fastq_input_foo($sample, "reverse", ".2")
62 @FASTQ_INPUT@ 25 $link_cmd
63 #end for 26 #end for
64 27
65 tsv2bam 28 tsv2bam
66 -P stacks_inputs 29 -P stacks_inputs
67 #if $popmap 30 #if $popmap
68 -M '$popmap' 31 -M '$popmap'
69 #else 32 #else
70 $samples 33 #for $sample in $samples
34 -s '$sample'
35 #end for
71 #end if 36 #end if
72 #if $paired_reads 37 #if $paired_reads
73 --pe-reads-dir stacks_inputs 38 --pe-reads-dir stacks_inputs
74 #end if 39 #end if
75 -t \${GALAXY_SLOTS:-1} 40 -t \${GALAXY_SLOTS:-1}
76 ## tsv2bam writes to stdout and creates a log file 41 ## tsv2bam writes to stdout and creates a log file
77 ## - make stdout stderr 42 ## - make stdout stderr
78 ## - move the additional log file 43 ## - move the additional log file
79 2>&1 44 2>&1
80 && mv stacks_inputs/tsv2bam.log $output_log 45
46 #if $output_log
47 && mv stacks_inputs/tsv2bam.log $output_log
48 #end if
81 && mv stacks_inputs/*matches.bam stacks_outputs 49 && mv stacks_inputs/*matches.bam stacks_outputs
82
83 ]]></command> 50 ]]></command>
84 51
85 <inputs> 52 <inputs>
86 <!-- TODO make the inputs macros and use in other tools --> 53 <expand macro="input_stacks_macro"/>
87 <expand macro="input_cat_macro"/> 54 <expand macro="input_cat_macro"/>
88 <expand macro="input_tags_macro"/>
89 <expand macro="input_matches_macro"/> 55 <expand macro="input_matches_macro"/>
90 <!-- TODO add BAM? --> 56 <!-- TODO add BAM? -->
91 <expand macro="fastq_input_macro" fastq_optional="true"/> 57 <expand macro="fastq_input" fastq_optional="true" help="Paired end data or reverse reads. If a paired list is provided only the reverse reads are used in tsv2bam"/>
92 <param name="popmap" type="data" format="tabular,txt" label="Population map" help="If set, matching will be done only for samples listed in this file" optional="true" argument="-M" /> 58 <param name="popmap" type="data" format="tabular,txt" label="Population map" help="If set, matching will be done only for samples listed in this file" optional="true" argument="-M" />
93 <expand macro="in_log"/> 59 <expand macro="in_log"/>
94 </inputs> 60 </inputs>
95 61
96 <outputs> 62 <outputs>
101 <tests> 67 <tests>
102 <!-- test wo paired end data --> 68 <!-- test wo paired end data -->
103 <test> 69 <test>
104 <param name="input_cat"> 70 <param name="input_cat">
105 <collection type="list"> 71 <collection type="list">
106 <element name="catalog.alleles.tsv" ftype="tabular" value="cstacks/catalog.alleles.tsv" /> 72 <element name="catalog.alleles" ftype="tabular" value="cstacks/catalog.alleles.tsv" />
107 <element name="catalog.snps.tsv" ftype="tabular" value="cstacks/catalog.snps.tsv" /> 73 <element name="catalog.snps" ftype="tabular" value="cstacks/catalog.snps.tsv" />
108 <element name="catalog.tags.tsv" ftype="tabular" value="cstacks/catalog.tags.tsv" /> 74 <element name="catalog.tags" ftype="tabular" value="cstacks/catalog.tags.tsv" />
109 </collection> 75 </collection>
110 </param> 76 </param>
111 <param name="input_tags"> 77 <param name="input_stacks">
112 <collection type="list"> 78 <collection type="list">
113 <element name="PopA_01.alleles.tsv" ftype="tabular" value="ustacks/PopA_01.alleles.tsv" /> 79 <element name="PopA_01.alleles" ftype="tabular" value="ustacks/PopA_01.alleles.tsv" />
114 <element name="PopA_01.snps.tsv" ftype="tabular" value="ustacks/PopA_01.snps.tsv" /> 80 <element name="PopA_01.snps" ftype="tabular" value="ustacks/PopA_01.snps.tsv" />
115 <element name="PopA_01.tags.tsv" ftype="tabular" value="ustacks/PopA_01.tags.tsv" /> 81 <element name="PopA_01.tags" ftype="tabular" value="ustacks/PopA_01.tags.tsv" />
116 <element name="PopA_02.alleles.tsv" ftype="tabular" value="ustacks/PopA_02.alleles.tsv" /> 82 <element name="PopA_02.alleles" ftype="tabular" value="ustacks/PopA_02.alleles.tsv" />
117 <element name="PopA_02.snps.tsv" ftype="tabular" value="ustacks/PopA_02.snps.tsv" /> 83 <element name="PopA_02.snps" ftype="tabular" value="ustacks/PopA_02.snps.tsv" />
118 <element name="PopA_02.tags.tsv" ftype="tabular" value="ustacks/PopA_02.tags.tsv" /> 84 <element name="PopA_02.tags" ftype="tabular" value="ustacks/PopA_02.tags.tsv" />
119 </collection> 85 </collection>
120 </param> 86 </param>
121 <param name="input_matches"> 87 <param name="input_matches">
122 <collection type="list"> 88 <collection type="list">
123 <element name="PopA_01.matches" ftype="tabular" value="sstacks/PopA_01.matches.tsv" /> 89 <element name="PopA_01.matches" ftype="tabular" value="sstacks/PopA_01.matches.tsv" />
125 </collection> 91 </collection>
126 </param> 92 </param>
127 <param name="add_log" value="yes" /> 93 <param name="add_log" value="yes" />
128 <output name="output_log" ftype="txt" file="tsv2bam/tsv2bam.log" lines_diff="2"/> 94 <output name="output_log" ftype="txt" file="tsv2bam/tsv2bam.log" lines_diff="2"/>
129 <output_collection name="bams" type="list" count="2"> 95 <output_collection name="bams" type="list" count="2">
130 <element name="PopA_01.matches" file="tsv2bam/PopA_01.matches.bam" ftype="bam" compare="sim_size"/> 96 <element name="PopA_01.matches" file="tsv2bam/PopA_01.matches.bam" ftype="bam"/>
131 <element name="PopA_02.matches" file="tsv2bam/PopA_02.matches.bam" ftype="bam" compare="sim_size" /> 97 <element name="PopA_02.matches" file="tsv2bam/PopA_02.matches.bam" ftype="bam"/>
132 </output_collection> 98 </output_collection>
133 </test> 99 </test>
134 <!-- test w popmap, w reverse reads as multiple selection --> 100 <!-- test w popmap, w reverse reads as multiple selection -->
135 <test> 101 <test>
136 <param name="input_cat"> 102 <param name="input_cat">
137 <collection type="list"> 103 <collection type="list">
138 <element name="catalog.alleles.tsv" ftype="tabular" value="cstacks/catalog.alleles.tsv" /> 104 <element name="catalog.alleles" ftype="tabular" value="cstacks/catalog.alleles.tsv" />
139 <element name="catalog.snps.tsv" ftype="tabular" value="cstacks/catalog.snps.tsv" /> 105 <element name="catalog.snps" ftype="tabular" value="cstacks/catalog.snps.tsv" />
140 <element name="catalog.tags.tsv" ftype="tabular" value="cstacks/catalog.tags.tsv" /> 106 <element name="catalog.tags" ftype="tabular" value="cstacks/catalog.tags.tsv" />
141 </collection> 107 </collection>
142 </param> 108 </param>
143 <param name="input_tags"> 109 <param name="input_stacks">
144 <collection type="list"> 110 <collection type="list">
145 <element name="PopA_01.alleles.tsv" ftype="tabular" value="ustacks/PopA_01.alleles.tsv" /> 111 <element name="PopA_01.alleles" ftype="tabular" value="ustacks/PopA_01.alleles.tsv" />
146 <element name="PopA_01.snps.tsv" ftype="tabular" value="ustacks/PopA_01.snps.tsv" /> 112 <element name="PopA_01.snps" ftype="tabular" value="ustacks/PopA_01.snps.tsv" />
147 <element name="PopA_01.tags.tsv" ftype="tabular" value="ustacks/PopA_01.tags.tsv" /> 113 <element name="PopA_01.tags" ftype="tabular" value="ustacks/PopA_01.tags.tsv" />
148 <element name="PopA_02.alleles.tsv" ftype="tabular" value="ustacks/PopA_02.alleles.tsv" /> 114 <element name="PopA_02.alleles" ftype="tabular" value="ustacks/PopA_02.alleles.tsv" />
149 <element name="PopA_02.snps.tsv" ftype="tabular" value="ustacks/PopA_02.snps.tsv" /> 115 <element name="PopA_02.snps" ftype="tabular" value="ustacks/PopA_02.snps.tsv" />
150 <element name="PopA_02.tags.tsv" ftype="tabular" value="ustacks/PopA_02.tags.tsv" /> 116 <element name="PopA_02.tags" ftype="tabular" value="ustacks/PopA_02.tags.tsv" />
151 </collection> 117 </collection>
152 </param> 118 </param>
153 <param name="input_matches"> 119 <param name="input_matches">
154 <collection type="list"> 120 <collection type="list">
155 <element name="PopA_01.matches" ftype="tabular" value="sstacks/PopA_01.matches.tsv" /> 121 <element name="PopA_01.matches" ftype="tabular" value="sstacks/PopA_01.matches.tsv" />
156 <element name="PopA_02.matches" ftype="tabular" value="sstacks/PopA_02.matches.tsv" /> 122 <element name="PopA_02.matches" ftype="tabular" value="sstacks/PopA_02.matches.tsv" />
157 </collection> 123 </collection>
158 </param> 124 </param>
159 <param name="popmap" ftype="tabular" value="denovo_map/popmap_cstacks.tsv" /> 125 <param name="popmap" ftype="tabular" value="denovo_map/popmap_cstacks.tsv" />
160 <param name="input_type|input_type_selector" value="manual"/> 126 <param name="input_type|input_type_select" value="single"/>
161 <param name="input_type|samples" value="demultiplexed/PopA_01.2.fq,demultiplexed/PopA_02.2.fq" ftype="fastqsanger" /> 127 <param name="input_type|fqinputs" value="demultiplexed/PopA_01.2.fq,demultiplexed/PopA_02.2.fq" ftype="fastqsanger" />
162 <param name="add_log" value="yes" /> 128 <param name="add_log" value="yes" />
163 <output name="output_log"><assert_contents><has_text text="done." /></assert_contents></output> 129 <output name="output_log"><assert_contents><has_text text="done." /></assert_contents></output>
164 <output_collection name="bams" type="list" count="2"> 130 <output_collection name="bams" type="list" count="2"/>
165 <element name="PopA_01.matches" file="tsv2bam/PopA_01.matches.bam" ftype="bam" compare="sim_size"/>
166 <element name="PopA_02.matches" file="tsv2bam/PopA_02.matches.bam" ftype="bam" compare="sim_size" />
167 </output_collection>
168 </test> 131 </test>
169 <!-- test w reverse reads as list --> 132 <!-- test w reverse reads as list -->
170 <test> 133 <test>
171 <param name="input_cat"> 134 <param name="input_cat">
172 <collection type="list"> 135 <collection type="list">
173 <element name="catalog.alleles.tsv" ftype="tabular" value="cstacks/catalog.alleles.tsv" /> 136 <element name="catalog.alleles" ftype="tabular" value="cstacks/catalog.alleles.tsv" />
174 <element name="catalog.snps.tsv" ftype="tabular" value="cstacks/catalog.snps.tsv" /> 137 <element name="catalog.snps" ftype="tabular" value="cstacks/catalog.snps.tsv" />
175 <element name="catalog.tags.tsv" ftype="tabular" value="cstacks/catalog.tags.tsv" /> 138 <element name="catalog.tags" ftype="tabular" value="cstacks/catalog.tags.tsv" />
176 </collection> 139 </collection>
177 </param> 140 </param>
178 <param name="input_tags"> 141 <param name="input_stacks">
179 <collection type="list"> 142 <collection type="list">
180 <element name="PopA_01.alleles.tsv" ftype="tabular" value="ustacks/PopA_01.alleles.tsv" /> 143 <element name="PopA_01.alleles" ftype="tabular" value="ustacks/PopA_01.alleles.tsv" />
181 <element name="PopA_01.snps.tsv" ftype="tabular" value="ustacks/PopA_01.snps.tsv" /> 144 <element name="PopA_01.snps" ftype="tabular" value="ustacks/PopA_01.snps.tsv" />
182 <element name="PopA_01.tags.tsv" ftype="tabular" value="ustacks/PopA_01.tags.tsv" /> 145 <element name="PopA_01.tags" ftype="tabular" value="ustacks/PopA_01.tags.tsv" />
183 <element name="PopA_02.alleles.tsv" ftype="tabular" value="ustacks/PopA_02.alleles.tsv" /> 146 <element name="PopA_02.alleles" ftype="tabular" value="ustacks/PopA_02.alleles.tsv" />
184 <element name="PopA_02.snps.tsv" ftype="tabular" value="ustacks/PopA_02.snps.tsv" /> 147 <element name="PopA_02.snps" ftype="tabular" value="ustacks/PopA_02.snps.tsv" />
185 <element name="PopA_02.tags.tsv" ftype="tabular" value="ustacks/PopA_02.tags.tsv" /> 148 <element name="PopA_02.tags" ftype="tabular" value="ustacks/PopA_02.tags.tsv" />
186 </collection> 149 </collection>
187 </param> 150 </param>
188 <param name="input_matches"> 151 <param name="input_matches">
189 <collection type="list"> 152 <collection type="list">
190 <element name="PopA_01.matches" ftype="tabular" value="sstacks/PopA_01.matches.tsv" /> 153 <element name="PopA_01.matches" ftype="tabular" value="sstacks/PopA_01.matches.tsv" />
191 <element name="PopA_02.matches" ftype="tabular" value="sstacks/PopA_02.matches.tsv" /> 154 <element name="PopA_02.matches" ftype="tabular" value="sstacks/PopA_02.matches.tsv" />
192 </collection> 155 </collection>
193 </param> 156 </param>
194 <param name="input_type|input_type_selector" value="list"/> 157 <param name="input_type|input_type_select" value="paired"/>
195 <param name="input_type|samples"> 158 <param name="input_type|fqinputs">
196 <collection type="list"> 159 <collection type="list">
197 <element name="PopA_01" value="demultiplexed/PopA_01.2.fq" ftype="fastqsanger" /> 160 <element name="PopA_01" value="demultiplexed/PopA_01.2.fq" ftype="fastqsanger" />
198 <element name="PopA_02" value="demultiplexed/PopA_02.2.fq" ftype="fastqsanger"/> 161 <element name="PopA_02" value="demultiplexed/PopA_02.2.fq" ftype="fastqsanger"/>
199 </collection> 162 </collection>
200 </param> 163 </param>
201 <param name="add_log" value="yes" /> 164 <param name="add_log" value="yes" />
202 <output name="output_log"><assert_contents><has_text text="done." /></assert_contents></output> 165 <output name="output_log"><assert_contents><has_text text="done." /></assert_contents></output>
203 <output_collection name="bams" type="list" count="2"> 166 <output_collection name="bams" type="list" count="2"/>
204 <element name="PopA_01.matches" file="tsv2bam/PopA_01.matches.bam" ftype="bam" compare="sim_size"/> 167 </test>
205 <element name="PopA_02.matches" file="tsv2bam/PopA_02.matches.bam" ftype="bam" compare="sim_size" /> 168 <!-- test w paired reads as paired dataset list -->
206 </output_collection> 169 <test>
207 </test> 170 <param name="input_cat">
208 <!-- test w paired reads as paired data set list --> 171 <collection type="list">
209 <test> 172 <element name="catalog.alleles" ftype="tabular" value="cstacks/catalog.alleles.tsv" />
210 <param name="input_cat"> 173 <element name="catalog.snps" ftype="tabular" value="cstacks/catalog.snps.tsv" />
211 <collection type="list"> 174 <element name="catalog.tags" ftype="tabular" value="cstacks/catalog.tags.tsv" />
212 <element name="catalog.alleles.tsv" ftype="tabular" value="cstacks/catalog.alleles.tsv" /> 175 </collection>
213 <element name="catalog.snps.tsv" ftype="tabular" value="cstacks/catalog.snps.tsv" /> 176 </param>
214 <element name="catalog.tags.tsv" ftype="tabular" value="cstacks/catalog.tags.tsv" /> 177 <param name="input_stacks">
215 </collection> 178 <collection type="list">
216 </param> 179 <element name="PopA_01.alleles" ftype="tabular" value="ustacks/PopA_01.alleles.tsv" />
217 <param name="input_tags"> 180 <element name="PopA_01.snps" ftype="tabular" value="ustacks/PopA_01.snps.tsv" />
218 <collection type="list"> 181 <element name="PopA_01.tags" ftype="tabular" value="ustacks/PopA_01.tags.tsv" />
219 <element name="PopA_01.alleles.tsv" ftype="tabular" value="ustacks/PopA_01.alleles.tsv" /> 182 <element name="PopA_02.alleles" ftype="tabular" value="ustacks/PopA_02.alleles.tsv" />
220 <element name="PopA_01.snps.tsv" ftype="tabular" value="ustacks/PopA_01.snps.tsv" /> 183 <element name="PopA_02.snps" ftype="tabular" value="ustacks/PopA_02.snps.tsv" />
221 <element name="PopA_01.tags.tsv" ftype="tabular" value="ustacks/PopA_01.tags.tsv" /> 184 <element name="PopA_02.tags" ftype="tabular" value="ustacks/PopA_02.tags.tsv" />
222 <element name="PopA_02.alleles.tsv" ftype="tabular" value="ustacks/PopA_02.alleles.tsv" /> 185 </collection>
223 <element name="PopA_02.snps.tsv" ftype="tabular" value="ustacks/PopA_02.snps.tsv" /> 186 </param>
224 <element name="PopA_02.tags.tsv" ftype="tabular" value="ustacks/PopA_02.tags.tsv" /> 187 <param name="input_matches">
225 </collection> 188 <collection type="list">
226 </param> 189 <element name="PopA_01.matches" ftype="tabular" value="sstacks/PopA_01.matches.tsv" />
227 <param name="input_matches"> 190 <element name="PopA_02.matches" ftype="tabular" value="sstacks/PopA_02.matches.tsv" />
228 <collection type="list"> 191 </collection>
229 <element name="PopA_01.matches" ftype="tabular" value="sstacks/PopA_01.matches.tsv" /> 192 </param>
230 <element name="PopA_02.matches" ftype="tabular" value="sstacks/PopA_02.matches.tsv" /> 193 <param name="input_type|input_type_select" value="paired"/>
231 </collection> 194 <param name="input_type|fqinputs">
232 </param>
233 <param name="input_type|input_type_selector" value="list"/>
234 <param name="input_type|samples">
235 <collection type="list:paired"> 195 <collection type="list:paired">
236 <element name="PopA_01"> 196 <element name="PopA_01">
237 <collection type="paired"> 197 <collection type="paired">
238 <element name="forward" value="demultiplexed/PopA_01.1.fq" ftype="fastqsanger" /> 198 <element name="forward" value="demultiplexed/PopA_01.1.fq" ftype="fastqsanger" />
239 <element name="reverse" value="demultiplexed/PopA_01.2.fq" ftype="fastqsanger"/> 199 <element name="reverse" value="demultiplexed/PopA_01.2.fq" ftype="fastqsanger"/>
247 </element> 207 </element>
248 </collection> 208 </collection>
249 </param> 209 </param>
250 <param name="add_log" value="yes" /> 210 <param name="add_log" value="yes" />
251 <output name="output_log"><assert_contents><has_text text="done." /></assert_contents></output> 211 <output name="output_log"><assert_contents><has_text text="done." /></assert_contents></output>
252 <output_collection name="bams" type="list" count="2"> 212 <output_collection name="bams" type="list" count="2"/>
253 <element name="PopA_01.matches" file="tsv2bam/PopA_01.matches.bam" ftype="bam" compare="sim_size"/>
254 <element name="PopA_02.matches" file="tsv2bam/PopA_02.matches.bam" ftype="bam" compare="sim_size" />
255 </output_collection>
256 </test> 213 </test>
257 </tests> 214 </tests>
258 215
259 <help> 216 <help>
260 <![CDATA[ 217 <![CDATA[