comparison stacks_gstacks.xml @ 4:285e1f85c11a 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:56:44 -0500
parents 4301ded2ea50
children aa645d419016
comparison
equal deleted inserted replaced
3:5421b9528827 4:285e1f85c11a
1 <tool id="stacks2_gstacks" name="Stacks2: gstacks" version="@STACKS_VERSION@+galaxy@WRAPPER_VERSION@"> 1 <tool id="stacks2_gstacks" name="Stacks2: gstacks" profile="@PROFILE@" version="@STACKS_VERSION@+galaxy@WRAPPER_VERSION@">
2 <description>match stacks to a catalog</description> 2 <description>Call variants, genotypes and haplotype</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 <requirement type="package" version="1.9">samtools</requirement>
8 <command><![CDATA[ 8 </expand>
9 @CLEAN_EXT@ 9 <expand macro="version_cmd"/>
10 <command detect_errors="aggressive"><![CDATA[
11 @FASTQ_INPUT_FUNCTIONS@
10 12
11 mkdir bam_inputs stacks_outputs && 13 mkdir bam_inputs stacks_outputs &&
12 #if $mode_cond.mode_select == "denovo" and not $popmap: 14 #if $mode_cond.mode_select == "denovo" and not $popmap:
13 ## since collections have no len .. yet 15 ## since collections have no len .. yet
14 #try: 16 #try:
16 #except: 18 #except:
17 #set count = len($input_bam.keys()) 19 #set count = len($input_bam.keys())
18 #end try 20 #end try
19 #if count == 1: 21 #if count == 1:
20 #for $bam in $input_bam: 22 #for $bam in $input_bam:
21 ln -s '$bam' bam_inputs/catalog.bam && 23 ln -s '$bam' bam_inputs/catalog.bam &&
22 #end for 24 #end for
23 #else 25 #else
24 >&2 echo "exactly one (merged) bam file is needed in denovo mode if no population map is given" && 26 >&2 echo "exactly one (merged) bam file is needed in denovo mode if no population map is given" &&
25 exit 1 && 27 exit 1 &&
26 #end if 28 #end if
35 $mode_cond.ignore_pe_reads 37 $mode_cond.ignore_pe_reads
36 #if $mode_cond.advanced_cond.advanced_select == "yes": 38 #if $mode_cond.advanced_cond.advanced_select == "yes":
37 --kmer-length $mode_cond.advanced_cond.kmer_length 39 --kmer-length $mode_cond.advanced_cond.kmer_length
38 --max-debruijn-reads $mode_cond.advanced_cond.max_debruijn_reads 40 --max-debruijn-reads $mode_cond.advanced_cond.max_debruijn_reads
39 --min-kmer-cov $mode_cond.advanced_cond.min_kmer_cov 41 --min-kmer-cov $mode_cond.advanced_cond.min_kmer_cov
42 $mode_cond.advanced_cond.write_alignments
40 #end if 43 #end if
41 #else: 44 #else:
42 #if $popmap 45 #if $popmap
43 -I bam_inputs 46 -I bam_inputs
44 #else 47 #else
64 #end if 67 #end if
65 -O stacks_outputs 68 -O stacks_outputs
66 -t \${GALAXY_SLOTS:-1} 69 -t \${GALAXY_SLOTS:-1}
67 70
68 ##Model options: 71 ##Model options:
69 --model $model_cond.model 72 --model $model_cond.model
70 #if $model_cond.model != "snp": 73 --var-alpha $model_cond.var_alpha
71 --var-alpha $model_cond.var_alpha
72 #end if
73 --gt-alpha $model_cond.gt_alpha 74 --gt-alpha $model_cond.gt_alpha
74 75
75 ## annoyingly gstacks creates stacks_output/population.log 76
77 ## the bam files generated by gstacks (--write-alignments) are seemingly buggy
78 ## (https://groups.google.com/d/msg/stacks-users/CazwJY1DPGA/7vuahiB2GgAJ)
79 ## so we fix them temporarily by piping them through samtools view (disabling all
80 ## exit codes and stderr output) this adds the samtools requirement
81 ## for later versions where this is fixed the output bam files could just be moved
82 ## to stacks_outputs if this is still necessary
83 #if $mode_cond.mode_select == "denovo" and $mode_cond.advanced_cond.advanced_select == "yes" and $mode_cond.advanced_cond.write_alignments != ""
84 #if $popmap:
85 && for b in bam_inputs/*alns.bam; do (samtools view -b "\$b" || true) 2> /dev/null > stacks_outputs/\$(basename "\$b"); done
86 #else
87 && (samtools view -b bam_inputs/alignments.bam || true) 2> /dev/null > stacks_outputs/alignments.bam
88 #end if
89 #end if
90
91
92 ## annoyingly gstacks creates stacks_output/gstacks.log
76 ## instead of just writing to stderr as the other tools 93 ## instead of just writing to stderr as the other tools
77 ## hence we do not use the tokens and return populations.log as log file and take the stderr 94 ## hence we do not use the tokens and return populations.log as log file and take the stderr
78 && mv stacks_outputs/gstacks.log $output_log 95 #if $output_log
79 96 && mv stacks_outputs/gstacks.log $output_log
80 ## the catalog.calls output is a gzip-ed vcf extract it 97 #end if
81 ## to make it usable in Galaxy (with the downside that we 98
82 ## need to gzip it again for downstream calls like populations) 99 @EXTRACT_VCF@
83 && gunzip -c stacks_outputs/catalog.calls > stacks_outputs/catalog.calls.vcf
84
85 100
86 ## TODO extract individual distributions from stacks_outputs/gstacks.log.distribs 101 ## TODO extract individual distributions from stacks_outputs/gstacks.log.distribs
87 ## alternative extra tool 102 ## alternative extra tool
88 ## for i in \$(stacks-dist-extract stacks_outputs/gstacks.log.distribs) 103 ## for i in \$(stacks-dist-extract stacks_outputs/gstacks.log.distribs)
89 ## do 104 ## do
90 ## stacks-dist-extract stacks_outputs/gstacks.log.distribs $i > stacks_outputs/gstacks.log.\$i.tsv 105 ## stacks-dist-extract stacks_outputs/gstacks.log.distribs $i > stacks_outputs/gstacks.log.\$i.tsv
91 ## done 106 ## done
92 ## TODO make optional output collection 107 ## TODO make optional output collection
93 ]]></command> 108 ]]></command>
100 <param name="mode_select" type="select" label="Mode"> 115 <param name="mode_select" type="select" label="Mode">
101 <option value="denovo" selected="true">De novo mode</option> 116 <option value="denovo" selected="true">De novo mode</option>
102 <option value="refbased">Reference-based</option> 117 <option value="refbased">Reference-based</option>
103 </param> 118 </param>
104 <when value="denovo"> 119 <when value="denovo">
105 <param argument="--ignore-pe-reads" name="ignore_pe_reads" type="boolean" checked="false" truevalue="--ignore-pe-reads" falsevalue="" label="ignore paired-end reads" help="ignore paired-end reads even if present in the input" /> 120 <param argument="--ignore-pe-reads" name="ignore_pe_reads" type="boolean" checked="false" truevalue="--ignore-pe-reads" falsevalue="" label="Ignore paired-end reads" help="ignore paired-end reads even if present in the input" />
106 <conditional name="advanced_cond"> 121 <conditional name="advanced_cond">
107 <param name="advanced_select" type="select" label="Advanced options"> 122 <param name="advanced_select" type="select" label="Advanced options">
108 <option value="no">No</option> 123 <option value="no">No</option>
109 <option value="yes">Yes</option> 124 <option value="yes">Yes</option>
110 </param> 125 </param>
111 <when value="yes"> 126 <when value="yes">
112 <param argument="--kmer-length" name="kmer_length" type="integer" value="31" min="2" max="31" label="kmer length for the de Bruijn graph" /> 127 <param argument="--kmer-length" name="kmer_length" type="integer" value="31" min="2" max="31" label="K-mer length for the de Bruijn graph" />
113 <param argument="--max-debruijn-reads" name="max_debruijn_reads" type="integer" value="1000" min="1" label="maximum number of reads to use in the de Bruijn graph" /> 128 <param argument="--max-debruijn-reads" name="max_debruijn_reads" type="integer" value="1000" min="1" label="Maximum number of reads to use in the de Bruijn graph" />
114 <param argument="--min-kmer-cov" name="min_kmer_cov" type="integer" value="2" label="minimum coverage to consider a kmer" /> 129 <param argument="--min-kmer-cov" name="min_kmer_cov" type="integer" value="2" label="Minimum coverage to consider a kmer" />
130 <param argument="--write-alignments" name="write_alignments" type="boolean" checked="false" truevalue="--write-alignments" falsevalue="" label="save read alignments" help="heavy BAM files"/>
115 </when> 131 </when>
116 <when value="no"/> 132 <when value="no"/>
117 </conditional> 133 </conditional>
118 </when> 134 </when>
119 <when value="refbased"> 135 <when value="refbased">
120 <conditional name="paired_cond"> 136 <conditional name="paired_cond">
121 <param name="paired_select" type="select" label="paired end options" help="select single/paired for single end data or to select advanced paired end options, --unpaired: treat reverse reads as if they were forward reads; --ignore-pe-reads: ignore paired-end reads even if present in the input"> 137 <param name="paired_select" type="select" label="Paired end options" help="select single/paired for single end data or to select advanced paired end options, --unpaired: treat reverse reads as if they were forward reads; --ignore-pe-reads: ignore paired-end reads even if present in the input">
122 <option value="" selected="true">single/paired</option> 138 <option value="" selected="true">single/paired</option>
123 <option value="--unpaired" selected="true">ignore read pairing (--unpaired)</option> 139 <option value="--unpaired" selected="true">ignore read pairing (--unpaired)</option>
124 <option value="--ignore-pe-reads" selected="true">ignore paired-end reads (--ignore-pe-reads)</option> 140 <option value="--ignore-pe-reads" selected="true">ignore paired-end reads (--ignore-pe-reads)</option>
125 </param> 141 </param>
126 <when value=""> 142 <when value="">
127 <param argument="--rm-unpaired-reads" name="rm_unpaired_reads" type="boolean" checked="false" truevalue="--rm-unpaired-reads" falsevalue="" label="discard unpaired reads" /> 143 <param argument="--rm-unpaired-reads" name="rm_unpaired_reads" type="boolean" checked="false" truevalue="--rm-unpaired-reads" falsevalue="" label="Discard unpaired reads" />
128 <param argument="--rm-pcr-duplicates" name="rm_pcr_duplicates" type="boolean" checked="false" truevalue="--rm-pcr-duplicates" falsevalue="" label="remove read pairs of the same sample that have the same insert length" help="implies --rm-unpaired-reads" /> 144 <param argument="--rm-pcr-duplicates" name="rm_pcr_duplicates" type="boolean" checked="false" truevalue="--rm-pcr-duplicates" falsevalue="" label="Remove read pairs of the same sample that have the same insert length" help="implies --rm-unpaired-reads" />
129 </when> 145 </when>
130 <when value="--unpaired"/> 146 <when value="--unpaired"/>
131 <when value="--ignore-pe-reads"/> 147 <when value="--ignore-pe-reads"/>
132 </conditional> 148 </conditional>
133 <conditional name="advanced_cond"> 149 <conditional name="advanced_cond">
134 <param name="advanced_select" type="select" label="Advanced options"> 150 <param name="advanced_select" type="select" label="Advanced options">
135 <option value="no">No</option> 151 <option value="no">No</option>
136 <option value="yes">Yes</option> 152 <option value="yes">Yes</option>
137 </param> 153 </param>
138 <when value="yes"> 154 <when value="yes">
139 <param argument="--min-mapq" name="min_mapq" type="integer" value="10" min="0" max="255" label="minimum PHRED-scaled mapping quality to consider a read" /> 155 <param argument="--min-mapq" name="min_mapq" type="integer" value="10" min="0" max="255" label="Minimum PHRED-scaled mapping quality to consider a read" />
140 <param argument="--max-clipped" name="max_clipped" type="float" value="0.2" min="0.0" max="1.1" label="maximum soft-clipping level" help="in fraction of read length" /> 156 <param argument="--max-clipped" name="max_clipped" type="float" value="0.2" min="0.0" max="1.1" label="Maximum soft-clipping level" help="in fraction of read length" />
141 <param argument="--max-insert-len" name="max_insert_len" type="integer" value="1000" min="0" label="maximum allowed sequencing insert length" /> 157 <param argument="--max-insert-len" name="max_insert_len" type="integer" value="1000" min="0" label="Maximum allowed sequencing insert length" />
142 <param argument="--details" type="boolean" checked="false" truevalue="--details" falsevalue="" label="write a heaview output" /> 158 <param argument="--details" type="boolean" checked="false" truevalue="--details" falsevalue="" label="Write a heaview output" />
143 <param name="phasing_cooccurrences_thr_min" type="integer" value="1" min="0" label="edge coverage min" help="(--phasing-cooccurrences-thr-range)" /> 159 <param name="phasing_cooccurrences_thr_min" type="integer" value="1" min="0" label="Edge coverage min" help="(--phasing-cooccurrences-thr-range)" />
144 <param name="phasing_cooccurrences_thr_max" type="integer" value="2" min="0" label="edge coverage max" help="range of edge coverage thresholds to iterate over when building the graph of allele cooccurrences for SNP phasing (--phasing-cooccurrences-thr-range)"/> 160 <param name="phasing_cooccurrences_thr_max" type="integer" value="2" min="0" label="Edge coverage max" help="range of edge coverage thresholds to iterate over when building the graph of allele cooccurrences for SNP phasing (--phasing-cooccurrences-thr-range)"/>
145 <param argument="--phasing-dont-prune-hets" name="phasing_dont_prune_hets" type="boolean" checked="false" truevalue="--phasing-dont-prune-hets" falsevalue="" label="don't try to ignore dubious heterozygote genotypes during phasing" /> 161 <param argument="--phasing-dont-prune-hets" name="phasing_dont_prune_hets" type="boolean" checked="false" truevalue="--phasing-dont-prune-hets" falsevalue="" label="Don't try to ignore dubious heterozygote genotypes during phasing" />
146 </when> 162 </when>
147 <when value="no"/> 163 <when value="no"/>
148 </conditional> 164 </conditional>
149 </when> 165 </when>
150 </conditional> 166 </conditional>
151 167
152 <conditional name="model_cond"> 168 <conditional name="model_cond">
153 <param argument="--model" type="select" label="model to use to call variants and genotypes"> 169 <param argument="--model" type="select" label="Model to use to call variants and genotypes">
154 <option value="marukilow" selected="true">marukilow</option> 170 <option value="marukilow" selected="true">marukilow</option>
155 <option value="marukihigh">marukihigh</option> 171 <option value="marukihigh">marukihigh</option>
156 <option value="snp">snp</option> 172 <option value="snp">snp</option>
157 </param> 173 </param>
158 <when value="marukilow"> 174 <when value="marukilow">
160 </when> 176 </when>
161 <when value="marukihigh"> 177 <when value="marukihigh">
162 <expand macro="variant_calling_options_vg"/> 178 <expand macro="variant_calling_options_vg"/>
163 </when> 179 </when>
164 <when value="snp"> 180 <when value="snp">
165 <expand macro="variant_calling_options_g"/> 181 <expand macro="variant_calling_options_vg"/>
166 </when> 182 </when>
167 </conditional> 183 </conditional>
168 184 <param name="add_log_distribs" type="boolean" checked="false" truevalue="yes" falsevalue="no" label="Add log distribs output as dataset" />
169 <expand macro="in_log"/> 185 <expand macro="in_log"/>
170 </inputs> 186 </inputs>
171 <outputs> 187 <outputs>
172 <expand macro="out_log"/> 188 <expand macro="out_log"/>
173 <data format="txt" name="distribs" label="${tool.name} on ${on_string} distribs" from_work_dir="gstacks.log.distribs" /> 189 <expand macro="gstacks_outputs_full_macro"/>
174 <expand macro="gstacks_outputs_macro"/>
175 </outputs> 190 </outputs>
176 191
177 <tests> 192 <tests>
178 <!-- denovomode, w popmap --> 193 <!-- denovomode, w popmap -->
179 <test> 194 <test expect_num_outputs="3">
180 <param name="input_bam" ftype="bam" value="tsv2bam/PopA_01.matches.bam,tsv2bam/PopA_02.matches.bam"/> 195 <param name="input_bam" ftype="bam" value="tsv2bam/PopA_01.matches.bam,tsv2bam/PopA_02.matches.bam"/>
181 <param name="popmap" ftype="tabular" value="denovo_map/popmap_cstacks.tsv" /> 196 <param name="popmap" ftype="tabular" value="denovo_map/popmap_cstacks.tsv" />
182 <conditional name="mode_cond"> 197 <conditional name="mode_cond">
183 <param name="mode_select" value="denovo"/> 198 <param name="mode_select" value="denovo"/>
184 </conditional> 199 </conditional>
185 <param name="add_log" value="yes" /> 200 <param name="add_log" value="yes" />
186 <output name="output_log" ftype="txt" file="gstacks/gstacks.log" lines_diff="8"/> 201 <param name="add_log_distribs" value="yes" />
202 <output name="output_log" ftype="txt" file="gstacks/gstacks.log" lines_diff="6"/>
203 <output name="distribs" ftype="txt" file="gstacks/gstacks.log.distribs" compare="sim_size"/>
187 <output_collection name="gstacks_out" type="list" count="2"> 204 <output_collection name="gstacks_out" type="list" count="2">
188 <element name="catalog.calls.vcf" file="gstacks/catalog.calls.tsv" ftype="vcf" lines_diff="2"/> 205 <element name="catalog.calls.vcf" file="gstacks/catalog.calls.vcf" ftype="vcf" lines_diff="2"/>
189 <element name="catalog.fa.gz" file="gstacks/catalog.fa.gz" ftype="fasta.gz" compare="sim_size"/> 206 <element name="catalog.fa.gz" file="gstacks/catalog.fa.gz" ftype="fasta.gz"/>
190 </output_collection> 207 </output_collection>
191 </test> 208 </test>
209 <!-- denovomode, w popmap, write alignments -->
210 <test expect_num_outputs="3">
211 <param name="input_bam" ftype="bam" value="tsv2bam/PopA_01.matches.bam,tsv2bam/PopA_02.matches.bam"/>
212 <param name="popmap" ftype="tabular" value="denovo_map/popmap_cstacks.tsv" />
213 <conditional name="mode_cond">
214 <param name="mode_select" value="denovo"/>
215 <conditional name="advanced_cond">
216 <param name="advanced_select" value="yes"/>
217 <param name="write_alignments" value="--write-alignments" />
218 </conditional>
219 </conditional>
220 <param name="add_log" value="yes" />
221 <assert_command>
222 <has_text text="--write-alignments" />
223 </assert_command>
224 <output name="output_log" ftype="txt"><assert_contents><has_text text="done." /></assert_contents></output>
225 <output_collection name="gstacks_out" type="list" count="2"/>
226 <output_collection name="gstacks_alns_out" type="list" count="2">
227 <element name="PopA_01" file="gstacks/PopA_01.alns.bam" ftype="bam" />
228 <element name="PopA_02" file="gstacks/PopA_02.alns.bam" ftype="bam" />
229 </output_collection>
230 </test>
192 <!-- denovomode, wo popmap (allows for only one input), ignore PE, advanced, alt model --> 231 <!-- denovomode, wo popmap (allows for only one input), ignore PE, advanced, alt model -->
193 <test> 232 <test expect_num_outputs="3">
194 <param name="input_bam" value="tsv2bam/PopA_01.matches.bam" ftype="bam"/> 233 <param name="input_bam" value="tsv2bam/PopA_01.matches.bam" ftype="bam"/>
195 <conditional name="mode_cond"> 234 <conditional name="mode_cond">
196 <param name="mode_select" value="denovo" /> 235 <param name="mode_select" value="denovo" />
197 <param name="ignore_pe_reads" value="--ignore-pe-reads" /> 236 <param name="ignore_pe_reads" value="--ignore-pe-reads" />
198 <conditional name="advanced_cond"> 237 <conditional name="advanced_cond">
199 <param name="advanced_select" value="yes"/> 238 <param name="advanced_select" value="yes"/>
200 <param name="kmer_length" value="23" /> 239 <param name="kmer_length" value="23" />
201 <param name="max_debruijn_reads" value="666"/> 240 <param name="max_debruijn_reads" value="666"/>
202 <param name="min_kmer_cov" value="3" /> 241 <param name="min_kmer_cov" value="3" />
242 <param name="write_alignments" value="--write-alignments" />
203 </conditional> 243 </conditional>
204 </conditional> 244 </conditional>
205 <conditional name="model_cond"> 245 <conditional name="model_cond">
206 <param name="model" value="marukihigh"/> 246 <param name="model" value="marukihigh"/>
207 <param name="var_alpha" value="0.1" /> 247 <param name="var_alpha" value="0.1" />
212 <has_text text="--ignore-pe-reads" /> 252 <has_text text="--ignore-pe-reads" />
213 <has_text text="--rm-pcr-duplicates" /> 253 <has_text text="--rm-pcr-duplicates" />
214 <has_text text="--kmer-length 23" /> 254 <has_text text="--kmer-length 23" />
215 <has_text text="--max-debruijn-reads 666" /> 255 <has_text text="--max-debruijn-reads 666" />
216 <has_text text="--min-kmer-cov 3" /> 256 <has_text text="--min-kmer-cov 3" />
257 <has_text text="--write-alignments" />
217 <has_text text="--model marukihigh" /> 258 <has_text text="--model marukihigh" />
218 <has_text text="--var-alpha 0.1" /> 259 <has_text text="--var-alpha 0.1" />
219 <has_text text="--gt-alpha 0.1" /> 260 <has_text text="--gt-alpha 0.1" />
220 </assert_command> 261 </assert_command>
221 <output name="output_log"><assert_contents><has_text text="gstacks is done." /></assert_contents></output> 262 <output name="output_log" ftype="txt"><assert_contents><has_text text="done." /></assert_contents></output>
222 <output_collection name="gstacks_out" type="list" count="2"/> 263 <output_collection name="gstacks_out" type="list" count="2"/>
264 <output name="gstacks_aln_out" ftype="bam" file="gstacks/alignments.bam" />
223 </test> 265 </test>
224 <!-- refbased wo popmap, paired options, removing all unpaired reads results in an error --> 266 <!-- refbased wo popmap, paired options, removing all unpaired reads results in an error -->
225 <test expect_failure="true" expect_exit_code="1"> 267 <test expect_failure="true" expect_exit_code="1">
226 <param name="input_bam" value="tsv2bam/PopA_01.matches.bam,tsv2bam/PopA_02.matches.bam"/> 268 <param name="input_bam" value="tsv2bam/PopA_01.bam,tsv2bam/PopA_02.bam"/>
227 <conditional name="mode_cond"> 269 <conditional name="mode_cond">
228 <param name="mode_select" value="refbased"/> 270 <param name="mode_select" value="refbased"/>
229 <conditional name="paired_cond"> 271 <conditional name="paired_cond">
230 <param name="paired_select" value=""/> 272 <param name="paired_select" value=""/>
231 <!--<param name="rm_unpaired_reads" value="\-\-rm-unpaired-reads" /> removes to much of the test data and gstacks fails--> 273 <!--<param name="rm_unpaired_reads" value="\-\-rm-unpaired-reads" /> removes to much of the test data and gstacks fails-->
239 <has_text text="--rm-unpaired-reads" /> 281 <has_text text="--rm-unpaired-reads" />
240 <has_text text="--rm-pcr-duplicates" /> 282 <has_text text="--rm-pcr-duplicates" />
241 </assert_command> 283 </assert_command>
242 </test> 284 </test>
243 <!-- refbased w popmap (here bam names need to be equal to sample names in popmap), \-\-unpaired, advanced, snp model --> 285 <!-- refbased w popmap (here bam names need to be equal to sample names in popmap), \-\-unpaired, advanced, snp model -->
244 <test> 286 <test expect_num_outputs="2">
245 <param name="input_bam" ftype="bam" value="refmap/PopA_01.bam,refmap/PopA_02.bam"/> 287 <param name="input_bam" ftype="bam" value="tsv2bam/PopA_01.bam,tsv2bam/PopA_02.bam"/>
246 <param name="popmap" ftype="tabular" value="denovo_map/popmap_cstacks.tsv" /> 288 <param name="popmap" ftype="tabular" value="denovo_map/popmap_cstacks.tsv" />
247 <conditional name="mode_cond"> 289 <conditional name="mode_cond">
248 <param name="mode_select" value="refbased"/> 290 <param name="mode_select" value="refbased"/>
249 <conditional name="paired_cond"> 291 <conditional name="paired_cond">
250 <param name="paired_select" value="--unpaired"/> 292 <param name="paired_select" value="--unpaired"/>
274 <has_text text="--phasing-cooccurrences-thr-range 2,3" /> 316 <has_text text="--phasing-cooccurrences-thr-range 2,3" />
275 <has_text text="--phasing-dont-prune-hets" /> 317 <has_text text="--phasing-dont-prune-hets" />
276 <has_text text="--model snp" /> 318 <has_text text="--model snp" />
277 <has_text text="--gt-alpha 0.1" /> 319 <has_text text="--gt-alpha 0.1" />
278 </assert_command> 320 </assert_command>
279 <output name="output_log"><assert_contents><has_text text="gstacks is done." /></assert_contents></output> 321 <output name="output_log" ftype="txt"><assert_contents><has_text text="done." /></assert_contents></output>
280 <output_collection name="gstacks_out" type="list" count="2"/> 322 <output_collection name="gstacks_out" type="list" count="2"/>
281 </test> 323 </test>
282 <!-- refbased wo popmap (here bam names don't matter), \-\-ignorepe --> 324 <!-- refbased wo popmap (here bam names don't matter), \-\-ignorepe -->
283 <test> 325 <test expect_num_outputs="2">
284 <param name="input_bam" ftype="bam" value="tsv2bam/PopA_01.matches.bam,tsv2bam/PopA_02.matches.bam"/> 326 <param name="input_bam" ftype="bam" value="tsv2bam/PopA_01.bam,tsv2bam/PopA_02.bam"/>
285 <conditional name="mode_cond"> 327 <conditional name="mode_cond">
286 <param name="mode_select" value="refbased"/> 328 <param name="mode_select" value="refbased"/>
287 <conditional name="paired_cond"> 329 <conditional name="paired_cond">
288 <param name="paired_select" value="--ignore-pe-reads"/> 330 <param name="paired_select" value="--ignore-pe-reads"/>
289 </conditional> 331 </conditional>
293 <has_text text="-I bam_inputs" /> 335 <has_text text="-I bam_inputs" />
294 <not_has_text text="-B " /> 336 <not_has_text text="-B " />
295 <has_text text="--ignore-pe-reads" /> 337 <has_text text="--ignore-pe-reads" />
296 </assert_command> 338 </assert_command>
297 <output name="output_log"><assert_contents><has_text text="gstacks is done." /></assert_contents></output> 339 <output name="output_log"><assert_contents><has_text text="gstacks is done." /></assert_contents></output>
298 <output_collection name="gstacks_out" type="list" count="2"> 340 <output_collection name="gstacks_out" type="list" count="2"/>
299 <element name="catalog.calls.vcf" file="gstacks/catalog.calls.tsv" ftype="vcf" lines_diff="2"/>
300 <element name="catalog.fa.gz" file="gstacks/catalog.fa.gz" ftype="fasta.gz" compare="sim_size"/>
301 </output_collection>
302 </test> 341 </test>
303 </tests> 342 </tests>
304 343
305 <help> 344 <help>
306 <![CDATA[ 345 <![CDATA[
316 and/or paired-end reads before calling SNPs. The single- and paired-end reads 355 and/or paired-end reads before calling SNPs. The single- and paired-end reads
317 must be aligned and stored together in the intput BAM or SAM files and the 356 must be aligned and stored together in the intput BAM or SAM files and the
318 reads must be sorted. The gstacks program will detect if single- or paired-end 357 reads must be sorted. The gstacks program will detect if single- or paired-end
319 reads are present. 358 reads are present.
320 359
321 In either mode, gstacks is able to remove PCR duplicates if requested. 360 In either mode, gstacks is able to remove PCR duplicates if requested.
322 361
323 -------- 362 --------
324 363
325 **Input files** 364 **Input files**
326 365