changeset 7:5a26589d95ad draft default tip

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/slamdunk commit b5aa6e762b55a9793dc7514efcda05eb2ccd529c"
author iuc
date Sat, 25 Sep 2021 18:21:39 +0000
parents 141f65f7c7c8
children
files alleyoop.xml macros.xml slamdunk.xml test-data/reads_slamdunk_mapped_filtered_snp.vcf test-data/reads_slamdunk_mapped_filtered_tcount.tsv
diffstat 5 files changed, 180 insertions(+), 142 deletions(-) [+]
line wrap: on
line diff
--- a/alleyoop.xml	Tue Jul 13 14:01:12 2021 +0000
+++ b/alleyoop.xml	Sat Sep 25 18:21:39 2021 +0000
@@ -1,9 +1,9 @@
-<tool id="alleyoop" name="Alleyoop" version="@TOOL_VERSION@+galaxy1" profile="@PROFILE@">
+<tool id="alleyoop" name="Alleyoop" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
     <description>- post-processing and QC of Slamdunk analyses</description>
     <macros>
         <import>macros.xml</import>
     </macros>
-    <expand macro="requirements" />
+    <expand macro="requirements"/>
     <version_command>alleyoop --version</version_command>
     <command detect_errors="exit_code"><![CDATA[
 #import re
@@ -49,11 +49,11 @@
 
 alleyoop rates -o ./stats -r reference.fa -mq $mq ./filter/*bam &&
 
-alleyoop utrrates -o ./stats -r reference.fa -b $Reference -t \${GALAXY_SLOTS:-1} -l $l -mq $mq ./filter/*bam &&
+alleyoop utrrates -o ./stats -r reference.fa -b $reference -t \${GALAXY_SLOTS:-1} -l $l -mq $mq ./filter/*bam &&
 
 alleyoop tcperreadpos -o ./stats -r reference.fa -s ./snp -t \${GALAXY_SLOTS:-1} -l $l -mq $mq ./filter/*bam &&
 
-alleyoop tcperutrpos -o ./stats -r reference.fa -s ./snp -t \${GALAXY_SLOTS:-1} -l $l -b $Reference -mq $mq ./filter/*bam
+alleyoop tcperutrpos -o ./stats -r reference.fa -s ./snp -t \${GALAXY_SLOTS:-1} -l $l -b $reference -mq $mq ./filter/*bam
 
 #if $bams:
     && alleyoop read-separator -o ./splitbams -s ./snp -r reference.fa ./filter/*bam
@@ -61,62 +61,62 @@
 
     ]]></command>
     <inputs>
-        <expand macro="reference_files" />
-        <param name="reads" type="data" format="sam,bam" multiple="True" label="Slamdunk BAM files" />
-        <param name="count_tsvs" type="data" format="tabular" multiple="True" label="Slamdunk Count TSV files" />
-        <param name="variants" type="data" format="vcf" multiple="True" label="Slamdunk VCF files" />
-        <param argument="-mq" type="integer" label="Minimum base quality"
+        <expand macro="reference_files"/>
+        <param name="reads" type="data" format="sam,bam" multiple="True" label="Slamdunk BAM files"/>
+        <param name="count_tsvs" type="data" format="tabular" multiple="True" label="Slamdunk Count TSV files"/>
+        <param name="variants" type="data" format="vcf" multiple="True" label="Slamdunk VCF files"/>
+        <param name="mq" argument="--min-basequality" type="integer" label="Minimum base quality"
                 value="27" min="0"
-                help="Minimum base quality for T>C conversions (default: 27)." />
-        <param argument="-l" type="integer" label="Read length"
-            value="50" min="50" help="Maximum read length (before trimming)." />
+                help="Minimum base quality for T>C conversions (default: 27)."/>
+        <param name="l" argument="--max-read-length" type="integer" label="Read length"
+            value="50" min="50" help="Maximum read length (before trimming)."/>
         <param name="bams" type="boolean" truevalue="True" falsevalue="False" checked="False" label="Output T>C separated BAM files?" help="If this option is set to Yes, the Alleyoop read-separator module will be run to output BAM files of separated T>C reads from non T>C reads. Default: No"/>
     </inputs>
     <outputs>
          <collection name="outputSummary" type="list" label="${tool.name} on ${on_string}: Summary tables">
-            <discover_datasets pattern="(?P&lt;name&gt;.+)\.txt$" format="tabular" directory="." visible="false" />
+            <discover_datasets pattern="(?P&lt;name&gt;.+)\.txt$" format="tabular" directory="." visible="false"/>
         </collection>
         <collection name="outputStats" type="list" label="${tool.name} on ${on_string}: Stats tables">
-            <discover_datasets pattern="(?P&lt;name&gt;.+)\.csv$" format="tabular" directory="./stats" visible="false" />
+            <discover_datasets pattern="(?P&lt;name&gt;.+)\.csv$" format="tabular" directory="./stats" visible="false"/>
         </collection>
         <collection name="outputTCReads" type="list" label="${tool.name} on ${on_string}: TC Reads">
-            <discover_datasets pattern="(?P&lt;name&gt;.+)_TCReads.bam$" format="bam" directory="./splitbams" visible="false" />
+            <discover_datasets pattern="(?P&lt;name&gt;.+)_TCReads.bam$" format="bam" directory="./splitbams" visible="false"/>
             <filter>bams</filter>
         </collection>
         <collection name="outputbkgdReads" type="list" label="${tool.name} on ${on_string}: Background Reads">
-            <discover_datasets pattern="(?P&lt;name&gt;.+)_backgroundReads.bam$" format="bam" directory="./splitbams" visible="false" />
+            <discover_datasets pattern="(?P&lt;name&gt;.+)_backgroundReads.bam$" format="bam" directory="./splitbams" visible="false"/>
             <filter>bams</filter>
         </collection>
     </outputs>
     <tests>
         <!-- Ensure default output works -->
         <test expect_num_outputs="2">
-            <param name="reference_source_selector" value="history" />
-            <param name="ref_file" ftype="fasta" value="ref.fa" />
-            <param name="Reference" ftype="bed" value="actb.bed" />
-            <param name="reads" ftype="bam" value="reads1.bam,reads2.bam" />
-            <param name="count_tsvs" ftype="tabular" value="reads1_tcount.tsv,reads2_tcount.tsv" />
-            <param name="variants" ftype="vcf" value="reads1_snp.vcf,reads2_snp.vcf" />
-            <param name="l" value="100" />
-            <param name="mq" value="27" />
+            <param name="reference_source_selector" value="history"/>
+            <param name="ref_file" ftype="fasta" value="ref.fa"/>
+            <param name="reference" ftype="bed" value="actb.bed"/>
+            <param name="reads" ftype="bam" value="reads1.bam,reads2.bam"/>
+            <param name="count_tsvs" ftype="tabular" value="reads1_tcount.tsv,reads2_tcount.tsv"/>
+            <param name="variants" ftype="vcf" value="reads1_snp.vcf,reads2_snp.vcf"/>
+            <param name="l" value="100"/>
+            <param name="mq" value="27"/>
             <output_collection name="outputSummary" count="2">
-                <element name="summary" ftype="tabular" file="summary.txt" />
+                <element name="summary" ftype="tabular" file="summary.txt" lines_diff="2"/>
             </output_collection>
             <output_collection name="outputStats" count="8">
-                <element name="reads1_overallrates" ftype="tabular" file="reads1_overallrates.csv"  />
+                <element name="reads1_overallrates" ftype="tabular" file="reads1_overallrates.csv" lines_diff="2"/>
             </output_collection>
         </test>
         <!-- Ensure BAM output works -->
         <test expect_num_outputs="4">
-            <param name="reference_source_selector" value="history" />
-            <param name="ref_file" ftype="fasta" value="ref.fa" />
-            <param name="Reference" ftype="bed" value="actb.bed" />
-            <param name="reads" ftype="bam" value="reads1.bam,reads2.bam" />
-            <param name="count_tsvs" ftype="tabular" value="reads1_tcount.tsv,reads2_tcount.tsv" />
-            <param name="variants" ftype="vcf" value="reads1_snp.vcf,reads2_snp.vcf" />
-            <param name="l" value="100" />
-            <param name="mq" value="27" />
-            <param name="bams" value="True" />
+            <param name="reference_source_selector" value="history"/>
+            <param name="ref_file" ftype="fasta" value="ref.fa"/>
+            <param name="reference" ftype="bed" value="actb.bed"/>
+            <param name="reads" ftype="bam" value="reads1.bam,reads2.bam"/>
+            <param name="count_tsvs" ftype="tabular" value="reads1_tcount.tsv,reads2_tcount.tsv"/>
+            <param name="variants" ftype="vcf" value="reads1_snp.vcf,reads2_snp.vcf"/>
+            <param name="l" value="100"/>
+            <param name="mq" value="27"/>
+            <param name="bams" value="True"/>
             <output_collection name="outputTCReads" count="2">
                 <element name="reads1" ftype="bam" file="reads1_TCReads.bam" lines_diff="8"/>
             </output_collection>
@@ -163,6 +163,6 @@
 
     ]]></help>
     <citations>
-        <expand macro="citations" />
+        <expand macro="citations"/>
     </citations>
 </tool>
--- a/macros.xml	Tue Jul 13 14:01:12 2021 +0000
+++ b/macros.xml	Sat Sep 25 18:21:39 2021 +0000
@@ -1,6 +1,7 @@
 <?xml version="1.0"?>
 <macros>
-    <token name="@TOOL_VERSION@">0.4.1</token>
+    <token name="@TOOL_VERSION@">0.4.3</token>
+    <token name="@VERSION_SUFFIX@">1</token>
     <token name="@PROFILE@">20.05</token>
     <xml name="requirements">
         <requirements>
@@ -14,7 +15,7 @@
                 <option value="history">Use a FASTA from history</option>
             </param>
             <when value="cached">
-                <param name="ref_file" type="select" label="Use built-in FASTA" help="Select genome from the list">
+                <param name="ref_file" argument="--reference" type="select" label="Use built-in FASTA" help="Select genome from the list">
                     <options from_data_table="all_fasta">
                         <filter type="sort_by" column="2" />
                         <validator type="no_options" message="No reference genomes are available" />
@@ -23,10 +24,10 @@
                 </param>
             </when>
             <when value="history">
-                <param name="ref_file" type="data" format="fasta" label="Use the following dataset as the FASTA" help="You can upload a FASTA sequence to the history and use it as reference" />
+                <param name="ref_file" argument="--reference" type="data" format="fasta" label="Use the following dataset as the FASTA" help="You can upload a FASTA sequence to the history and use it as reference" />
             </when>
         </conditional>
-        <param name="Reference" type="data" format="bed" label="Reference 3'UTRs BED file" />
+        <param argument="--reference" type="data" format="bed" label="Reference 3'UTRs BED file" />
     </xml>
     <xml name="citations">
         <citation type="doi">
--- a/slamdunk.xml	Tue Jul 13 14:01:12 2021 +0000
+++ b/slamdunk.xml	Sat Sep 25 18:21:39 2021 +0000
@@ -1,159 +1,172 @@
-<tool id="slamdunk" name="Slamdunk" version="@TOOL_VERSION@+galaxy3" profile="@PROFILE@">
+<tool id="slamdunk" name="Slamdunk" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
     <description>- streamlining SLAM-seq analysis with ultra-high sensitivity</description>
     <macros>
         <import>macros.xml</import>
     </macros>
-    <expand macro="requirements" />
+    <expand macro="requirements"/>
     <version_command>slamdunk --version</version_command>
     <command detect_errors="exit_code"><![CDATA[
 #import re
 
+mkdir fastq &&
+#set $reads_id = re.sub('[^\w\-\.]', '_', str($reads.element_identifier))
+ln -s '$reads' './fastq/$reads_id' &&
+
 #if $reference_source.reference_source_selector == 'history':
     ln -f -s '$reference_source.ref_file' reference.fa &&
 #else:
     ln -f -s '$reference_source.ref_file.fields.path' reference.fa &&
 #end if
 
-mkdir ./fastq &&
-#for $fastq in $reads:
-    #set $fastq_name = re.sub('[^\w\-\.]', '_', str($fastq.element_identifier))
-    ln -s '$fastq' './fastq/${fastq_name}' &&
-#end for
-
-    slamdunk all -r reference.fa -b '$Reference' -o ./out
+    slamdunk all -r reference.fa -b '$reference' -o ./out
        -t \${GALAXY_SLOTS:-1}
        -n $multimapper.multimappers
-       $multimapper.multimap
-       #if $multimapper.filterbed.bedtofilter:
-        -fb $multimapper.filterbed.bedtofilter
-       #end if
-       -5 $quantseq.trim5
-       -a $quantseq.maxpolyA
-       $advanced.endtoend
-       -mq $advanced.minMQ
-       -mi $advanced.minID
-       -nm=$advanced.maxNM
-       -mc $advanced.minCov
-       -mv $advanced.minVar
-       -mbq $advanced.minBaseQual
-    -rl $readLength
-    -c $covThresh
-    ./fastq/*
+        $multimapper.multimap
+        #if $multimapper.filterbed.bedtofilter:
+            -fb $multimapper.filterbed.bedtofilter
+        #end if
+        -5 $quantseq.trim5
+        -a $quantseq.maxpolyA
+        $advanced.endtoend
+        -mq $advanced.minMQ
+        -mi $advanced.minID
+        -nm=$advanced.maxNM
+        -mc $advanced.minCov
+        -mv $advanced.minVar
+        -mbq $advanced.minBaseQual
+        -rl $readLength
+        -c $covThresh
+        #if $advanced.vcf
+            --vcf $advanced.vcf
+        #end if
+        './fastq/$reads_id'
+
+        && mv out/filter/*_slamdunk_mapped_filtered.bam '$outputBam'
+        && mv out/count/*_slamdunk_mapped_filtered_tcount.tsv '$outputTsv'
+        #if not $advanced.vcf
+            && mv out/snp/*_slamdunk_mapped_filtered_snp.vcf '$outputVcf'
+        #end if
     ]]></command>
     <inputs>
-        <expand macro="reference_files" />
-        <param name="reads" type="data" format="fastqsanger,fastqsanger.gz" multiple="True" label="FASTQ files"/>
+        <expand macro="reference_files"/>
+        <param name="reads" type="data" format="fastqsanger,fastqsanger.gz" label="FASTQ files"/>
         <section name="multimapper" title="Multimapper recovery"
             expanded="false">
             <section name="filterbed"
                 title="Use separate 3' UTR bed to filter multimappers." expanded="false">
-                <param name="bedtofilter" type="data" format="bed" optional="true"
-                    label="Bed to filter" />
+                <param name="bedtofilter" argument="--filterbed" type="data" format="bed" optional="true"
+                    label="Bed to filter"/>
             </section>
-            <param name="multimappers" type="integer" min="1" value="1"
+            <param name="multimappers" argument="--topn" type="integer" min="1" value="1"
                 label="Maximum number of alignments to report per read"
-                help="The maximum number of alignments is used to track multimapping read alignments. The more are allowed, the more sensitive the multimapper filtering will be, but also the longer the runtime will be. 100 was used in previous publications." />
-            <param name="multimap" type="boolean" truevalue="--multimap" falsevalue=""
+                help="The maximum number of alignments is used to track multimapping read alignments. The more are allowed, the more sensitive the multimapper filtering will be, but also the longer the runtime will be. 100 was used in previous publications."/>
+            <param name="multimap" argument="--multimap" type="boolean" truevalue="--multimap" falsevalue=""
                 label="Use reference bed file to resolve multimappers."
-                help="Enable multimapper recovery, requires -n to be set to a value > 1 to have impact." />
+                help="Enable multimapper recovery, requires -n to be set to a value > 1 to have impact."/>
         </section>
         <section name="quantseq" title="Quantseq" expanded="false">
-            <param name="trim5" type="integer" min="0" value="12"
+            <param name="trim5" argument="--trim-5p" type="integer" min="0" value="12"
                 label="Number of bp to remove from the 5' end of all reads"
-                help="For Lexogen's Quantseq kit and previous SLAM-seq papers a clipping of 12 bp from the 5' end is recommended." />
-            <param name="maxpolyA" type="integer" min="0" value="4"
+                help="For Lexogen's Quantseq kit and previous SLAM-seq papers a clipping of 12 bp from the 5' end is recommended."/>
+            <param name="maxpolyA" argument="--max-polya" type="integer" min="0" value="4"
                 label="Maximum number of As at the 3' end of a read"
-                help="The maximum number of allowed As at the 3' end of a read. All A-stretches that exceed this threshold are clipped because they are likely part of the poly-A tail." />
+                help="The maximum number of allowed As at the 3' end of a read. All A-stretches that exceed this threshold are clipped because they are likely part of the poly-A tail."/>
         </section>
         <section name="advanced" title="Advanced settings." expanded="false">
-            <param name="endtoend" type="boolean" truevalue="--endtoend" falsevalue=""
+            <param name="endtoend" argument="--endtoend" type="boolean" truevalue="--endtoend" falsevalue=""
                 label="Enable end-to-end alignments for mapping."
-                help="Enable end-to-end alignments for mapping in slamdunk with --endtoend" />
-            <param name="minMQ" type="integer" min="0" value="2"
+                help="Enable end-to-end alignments for mapping in slamdunk with --endtoend"/>
+            <param name="minMQ" argument="--min-mq" type="integer" min="0" value="2"
                 label="Minimum mapping quality"
-                help="Minimum mapping quality to consider alignments (default: 2)." />
-            <param name="minID" type="float" min="0" value="0.95"
+                help="Minimum mapping quality to consider alignments (default: 2)."/>
+            <param name="minID" argument="--min-identity" type="float" min="0" value="0.95"
                 label="Minimum alignment identity"
-                help="Minimum alignment-identity to consider alignments (default: 0.95)." />
-            <param name="maxNM" type="integer" value="-1"
+                help="Minimum alignment-identity to consider alignments (default: 0.95)."/>
+            <param name="maxNM" argument="--max-nm" type="integer" value="-1"
                 label="Maximum number of mismatches"
-                help="Maximum number of mismatches to consider alignments. Negative numbers deactivate filter (default: -1)." />
-            <param name="minCov" type="integer" min="0" value="10"
+                help="Maximum number of mismatches to consider alignments. Negative numbers deactivate filter (default: -1)."/>
+            <param name="minCov" argument="--min-coverage" type="integer" min="0" value="10"
                 label="Minimum coverage to call variant"
-                help="Minimum coverage to call variant (default: 10)." />
-            <param name="minVar" type="float" min="0" value="0.8"
+                help="Minimum coverage to call variant (default: 10)."/>
+            <param name="minVar" argument="--var-fraction" type="float" min="0" value="0.8"
                 label="Minimum variant fraction to call variant"
-                help="Minimum variant fraction to call variant (default: 0.8)." />
-            <param name="minBaseQual" type="integer" min="0" value="27"
+                help="Minimum variant fraction to call variant (default: 0.8)."/>
+            <param name="minBaseQual" argument="--min-base-qual" type="integer" min="0" value="27"
                 label="Minimum base quality"
-                help="Minimum base quality for T>C conversions (default: 27)." />
+                help="Minimum base quality for T>C conversions (default: 27)."/>
+            <param argument="--vcf" type="data" format="vcf" optional="true" label="Skip SNP step and provide custom variant file."/>
         </section>
-        <param name="covThresh" type="integer" min="1" value="1"
+        <param name="covThresh" argument="--conversion-threshold" type="integer" min="1" value="1"
             label="T>C conversion threshold"
-            help="Number of T>C conversions required to count a read as a T>C read (default: 1)." />
-        <param name="readLength" type="integer" min="50" value="50"
+            help="Number of T>C conversions required to count a read as a T>C read (default: 1)."/>
+        <param name="readLength" argument="--max-read-length" type="integer" min="50" value="50"
             label="Read length"
-            help="Maximum read length (before trimming)." />
+            help="Maximum read length (before trimming)."/>
     </inputs>
     <outputs>
-        <collection name="outputBam" type="list" label="${tool.name} on ${on_string}: BAM">
-            <discover_datasets pattern="(?P&lt;name&gt;.+)\.bam$" format="bam" directory="./out/filter" visible="false" />
-        </collection>
-        <collection name="outputTsv" type="list" label="${tool.name} on ${on_string}: Count TSV">
-            <discover_datasets pattern="(?P&lt;name&gt;.+)_tcount.tsv$" format="tabular" directory="./out/count" visible="false" />
-        </collection>
-        <collection name="outputVcf" type="list" label="${tool.name} on ${on_string}: VCF">
-            <discover_datasets pattern="(?P&lt;name&gt;.+)_snp.vcf$" format="vcf" directory="./out/snp" visible="false" />
-        </collection>
+        <data name="outputBam" format="bam" label="${tool.name} on ${on_string}: BAM"/>
+        <data name="outputTsv" format="tabular" label="${tool.name} on ${on_string}: Count TSV"/>
+        <data name="outputVcf" format="vcf" label="${tool.name} on ${on_string}: VCF">
+            <filter>advanced['vcf'] == None</filter>
+        </data>
     </outputs>
     <tests>
-        <test>
+        <test expect_num_outputs="3">
             <!--Ensure default outputs work -->
-            <param name="reference_source_selector" value="history" />
-            <param name="ref_file" value="ref.fa" />
-            <param name="Reference" value="actb.bed" />
-            <param name="reads" value="reads.fq" />
-            <param name="readLength" value="100" />
+            <param name="reference_source_selector" value="history"/>
+            <param name="ref_file" value="ref.fa"/>
+            <param name="reference" value="actb.bed"/>
+            <param name="reads" value="reads.fq"/>
+            <param name="readLength" value="100"/>
             <section name="quantseq">
-                <param name="trim5" value="0" />
+                <param name="trim5" value="0"/>
             </section>
             <section name="advanced">
-                <param name="minBaseQual" value="27" />
+                <param name="minBaseQual" value="27"/>
             </section>
-            <output_collection name="outputBam">
-                <element name="reads_slamdunk_mapped_filtered" ftype="bam" file="reads1.bam" compare="sim_size" />
-            </output_collection>
-            <output_collection name="outputTsv">
-                <element name="reads_slamdunk_mapped_filtered" ftype="tabular" file="reads_slamdunk_mapped_filtered_tcount.tsv"
-                compare="re_match"  />
-            </output_collection>
-            <output_collection name="outputVcf">
-                <element name="reads_slamdunk_mapped_filtered" ftype="vcf" file="reads1_snp.vcf" compare="sim_size" />
-            </output_collection>
+            <output name="outputBam" ftype="bam" value="reads1.bam" compare="sim_size"/>
+            <output name="outputTsv" ftype="tabular" value="reads_slamdunk_mapped_filtered_tcount.tsv" compare="re_match"/>
+            <output name="outputVcf" ftype="vcf" file="reads1_snp.vcf" compare="sim_size"/>
         </test>
-        <test>
+        <test expect_num_outputs="3">
             <!--Ensure built-in fasta works -->
-            <param name="reference_source_selector" value="cached" />
-            <param name="ref_file" value="hg38full" />
-            <param name="Reference" value="actb.bed" />
-            <param name="reads" ftype="fastqsanger" dbkey="hg38" value="reads.fq" />
-            <param name="readLength" value="100" />
+            <param name="reference_source_selector" value="cached"/>
+            <param name="ref_file" value="hg38full"/>
+            <param name="reference" value="actb.bed"/>
+            <param name="reads" ftype="fastqsanger" dbkey="hg38" value="reads.fq"/>
+            <param name="readLength" value="100"/>
             <section name="quantseq">
-                <param name="trim5" value="0" />
+                <param name="trim5" value="0"/>
             </section>
             <section name="advanced">
-                <param name="minBaseQual" value="27" />
+                <param name="minBaseQual" value="27"/>
             </section>
-            <output_collection name="outputBam">
-                <element name="reads_slamdunk_mapped_filtered" ftype="bam" file="reads1.bam" compare="sim_size" />
-            </output_collection>
-            <output_collection name="outputTsv">
-                <element name="reads_slamdunk_mapped_filtered" ftype="tabular" file="reads_slamdunk_mapped_filtered_tcount.tsv"
-                compare="re_match"  />
-            </output_collection>
-            <output_collection name="outputVcf">
-                <element name="reads_slamdunk_mapped_filtered" ftype="vcf" file="reads1_snp.vcf" compare="sim_size" />
-            </output_collection>
+            <output name="outputBam" ftype="bam" value="reads1.bam" compare="sim_size"/>
+            <output name="outputTsv" ftype="tabular" value="reads_slamdunk_mapped_filtered_tcount.tsv" compare="re_match"/>
+            <output name="outputVcf" ftype="vcf" file="reads1_snp.vcf" compare="sim_size"/>
+        </test>
+        <test expect_num_outputs="2">
+            <!-- test with vcf -->
+            <param name="reference_source_selector" value="history"/>
+            <param name="ref_file" value="ref.fa"/>
+            <param name="reference" value="actb.bed"/>
+            <param name="reads" value="reads.fq"/>
+            <param name="readLength" value="100"/>
+            <section name="quantseq">
+                <param name="trim5" value="0"/>
+            </section>
+            <section name="advanced">
+                <param name="vcf" value="reads_slamdunk_mapped_filtered_snp.vcf" ftype="vcf"/>
+                <param name="minBaseQual" value="27"/>
+            </section>
+            <output name="outputBam" ftype="bam" value="reads1.bam" compare="sim_size"/>
+            <output name="outputTsv" ftype="tabular" value="reads_slamdunk_mapped_filtered_tcount.tsv" compare="re_match"/>
+            <assert_stderr>
+                <not_has_text text="Running slamDunk SNP"/>
+            </assert_stderr>
+            <assert_command>
+                <has_text text="--vcf"/>
+            </assert_command>
         </test>
     </tests>
     <help><![CDATA[
@@ -221,6 +234,6 @@
 
     ]]></help>
     <citations>
-        <expand macro="citations" />
+        <expand macro="citations"/>
     </citations>
 </tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/reads_slamdunk_mapped_filtered_snp.vcf	Sat Sep 25 18:21:39 2021 +0000
@@ -0,0 +1,24 @@
+##fileformat=VCFv4.1
+##source=VarScan2
+##INFO=<ID=ADP,Number=1,Type=Integer,Description="Average per-sample depth of bases with Phred score >= 15">
+##INFO=<ID=WT,Number=1,Type=Integer,Description="Number of samples called reference (wild-type)">
+##INFO=<ID=HET,Number=1,Type=Integer,Description="Number of samples called heterozygous-variant">
+##INFO=<ID=HOM,Number=1,Type=Integer,Description="Number of samples called homozygous-variant">
+##INFO=<ID=NC,Number=1,Type=Integer,Description="Number of samples not called">
+##FILTER=<ID=str10,Description="Less than 10% or more than 90% of variant supporting reads on one strand">
+##FILTER=<ID=indelError,Description="Likely artifact due to indel reads at this position">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=SDP,Number=1,Type=Integer,Description="Raw Read Depth as reported by SAMtools">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Quality Read Depth of bases with Phred score >= 15">
+##FORMAT=<ID=RD,Number=1,Type=Integer,Description="Depth of reference-supporting bases (reads1)">
+##FORMAT=<ID=AD,Number=1,Type=Integer,Description="Depth of variant-supporting bases (reads2)">
+##FORMAT=<ID=FREQ,Number=1,Type=String,Description="Variant allele frequency">
+##FORMAT=<ID=PVAL,Number=1,Type=String,Description="P-value from Fisher's Exact Test">
+##FORMAT=<ID=RBQ,Number=1,Type=Integer,Description="Average quality of reference-supporting bases (qual1)">
+##FORMAT=<ID=ABQ,Number=1,Type=Integer,Description="Average quality of variant-supporting bases (qual2)">
+##FORMAT=<ID=RDF,Number=1,Type=Integer,Description="Depth of reference-supporting bases on forward strand (reads1plus)">
+##FORMAT=<ID=RDR,Number=1,Type=Integer,Description="Depth of reference-supporting bases on reverse strand (reads1minus)">
+##FORMAT=<ID=ADF,Number=1,Type=Integer,Description="Depth of variant-supporting bases on forward strand (reads2plus)">
+##FORMAT=<ID=ADR,Number=1,Type=Integer,Description="Depth of variant-supporting bases on reverse strand (reads2minus)">
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	Sample1
--- a/test-data/reads_slamdunk_mapped_filtered_tcount.tsv	Tue Jul 13 14:01:12 2021 +0000
+++ b/test-data/reads_slamdunk_mapped_filtered_tcount.tsv	Sat Sep 25 18:21:39 2021 +0000
@@ -1,4 +1,4 @@
-#slamdunk v0.4.1	3	sample info:	sample_0	0	NA	-1
+#slamdunk v[.0-9]+	3	sample info:	.+	[-0-9]+	.+	[-0-9]+
 #annotation:	dataset_.*.dat	.*
 Chromosome	Start	End	Name	Length	Strand	ConversionRate	ReadsCPM	Tcontent	CoverageOnTs	ConversionsOnTs	ReadCount	TcReadCount	multimapCount	ConversionRateLower	ConversionRateUpper
 chr5	120498	122492	Actb	1994	\+	0.022\d*	666666.66\d*	445	90	2	8	4	0	-1\.0	-1\.0