changeset 4:23e5913327b4 draft default tip

planemo upload for repository https://bitbucket.org/EMCbioinf/galaxy-tool-shed-tools commit 0bc9864516071632199ddf9a4ff403893060c99f
author yhoogstrate
date Thu, 05 Nov 2015 09:57:03 -0500
parents d2424abb9404
children
files README.rst example.fa.1.bed example.fa.2.bed samtools-parallel-mpileup.xml test-data/GSM1244822_Control_Rep7.hg18.subset.chr10_8136673-8157170.bam test-data/example.bam test-data/example.fa test-data/example.fa.1.bed test-data/example.fa.2.bed test-data/example.fa.fai test-data/example.mpileup test-data/example.mpileup.parallel test-data/example.vcf tool_dependencies.xml varscan_mpileup2indel.xml varscan_mpileup2indel_from_bam.tar.xz varscan_mpileup2indel_from_bam.xml
diffstat 17 files changed, 690 insertions(+), 676 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.rst	Thu Nov 05 09:57:03 2015 -0500
@@ -0,0 +1,102 @@
+VarScan2 mpileup2snp wrapper for Galaxy
+=======================================
+
+http://sourceforge.net/projects/varscan/
+
+This wrapper is optimized for direct access to BAM files such that the
+big mpileup files are not saved.
+
+Development
+-----------
+
+Repository-Maintainer: Youri Hoogstrate
+
+Repository-Development: https://bitbucket.org/EMCbioinf/galaxy-tool-shed-tools
+
+
+License
+-------
+
+**VarScan2**:
+
+Non-Profit Open Software License 3.0 (Non-Profit OSL 3.0): http://sourceforge.net/directory/os:linux/license:nposl3/freshness:recently-updated/ http://opensource.org/licenses/NPOSL-3.0
+
+**samtools**:
+
+MIT/Expat License: https://raw.githubusercontent.com/samtools/samtools/develop/LICENSE
+
+    The MIT/Expat License
+
+    Copyright (C) 2008-2014 Genome Research Ltd.
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be included in
+    all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+    THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+    DEALINGS IN THE SOFTWARE.
+
+    [The use of a range of years within a copyright notice in this distribution
+    should be interpreted as being equivalent to a list of years including the
+    first and last year specified and all consecutive years between them.
+
+    For example, a copyright notice that reads "Copyright (C) 2005, 2007-2009,
+    2011-2012" should be interpreted as being identical to a notice that reads
+    "Copyright (C) 2005, 2007, 2008, 2009, 2011, 2012" and a copyright notice
+    that reads "Copyright (C) 2005-2012" should be interpreted as being identical
+    to a notice that reads "Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010,
+    2011, 2012".]
+
+**samtools-parallel-mpileup**:
+
+MIT License: https://raw.githubusercontent.com/mydatascience/parallel-mpileup/master/samtools-0.1.19/COPYING
+
+The MIT License
+
+    Copyright (c) 2008-2009 Genome Research Ltd.
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be included in
+    all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+    THE SOFTWARE.
+
+**This wrapper**:
+
+    Copyright (C) 2013-2014  Youri Hoogstrate
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example.fa.1.bed	Thu Nov 05 09:57:03 2015 -0500
@@ -0,0 +1,1 @@
+chr1	0	330
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example.fa.2.bed	Thu Nov 05 09:57:03 2015 -0500
@@ -0,0 +1,1 @@
+chr1	330	600
--- a/samtools-parallel-mpileup.xml	Wed Nov 19 10:04:52 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,261 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<tool id="samtools_parallel_mpileup" name="Samtools parallel mpileup">
-	<description>Samtools mpileup (supporting parallelization)</description>
-	<requirements>
-		<requirement type="package" version="5.9">ncurses</requirement>
-		<requirement type="package" version="0.1.19a">samtools_parallel_mpileup_0_1_19a</requirement>
-		<requirement type="package" version="0.1.19">package_samtools_0_1_19</requirement>
-	</requirements>
-	<command>
-		#if $reference_genome_source.source_select == "attribute" and len({ alignment.metadata.dbkey:True for alignment in $alignments }.keys()) != 1
-			echo "Invalid number of dbkeys are found: ${ len({ alignment.metadata.dbkey:True for alignment in $alignments }.keys()) }, while only one should be used. Make sure that the alignments are done on the same reference genome and that 'tool-data/all_fasta.loc' is configured properly!" >&amp;2
-		#else
-			#if $mpileup_parallelization.mpileup_parallelization_select == "true"
-				samtools-parallel-mpileup mpileup
-				-t $mpileup_parallelization.samtools_threads
-			#else
-				samtools mpileup
-			#end if
-				-f 
-					#if $reference_genome_source.source_select == "indexed_filtered"
-						"$reference_genome_source.reference_genome"
-					#else if $reference_genome_source.source_select == "indexed_all"
-						"$reference_genome_source.reference_genome"
-					#else if $reference_genome_source.source_select == "history"
-						"$reference_genome_source.reference_genome"
-					#else
-						<!--
-							This is a workaround to obtain the "genome.fa" file that
-							corresponds to the dbkey of the alignments.
-							Because this file is "calculated" during run-time, it can
-							be used in a workflow.
-						-->
-						"${ filter( lambda x: str( x[0] ) == str( { alignment.metadata.dbkey:True for alignment in $alignments }.keys()[0] ), $__app__.tool_data_tables[ 'all_fasta' ].get_fields() )[0][-1] }"
-					#end if
-			
-			#if $extended_parameters_regions.samtools_regions == "region"
-				-r $extended_parameters_regions.$samtools_r
-			#elif $extended_parameters_regions.samtools_regions == "regions_file_pos" or $extended_parameters_regions.samtools_regions == "regions_file_bed"
-				-l $extended_parameters_regions.$samtools_l
-			#end if
-			
-			#if $extended_parameters.parameters == "extended"
-				$extended_parameters.samtools_6
-				$extended_parameters.samtools_A
-				$extended_parameters.samtools_B
-				 -C $extended_parameters.samtools_C
-				 -d $extended_parameters.samtools_d
-				$extended_parameters.samtools_E
-				 -M $extended_parameters.samtools_M
-				$extended_parameters.samtools_R
-				 -q $extended_parameters.samtools_q
-				 -Q $extended_parameters.samtools_Q
-				
-				 -e $extended_parameters.samtools_e
-				 -F $extended_parameters.samtools_F
-				 -h $extended_parameters.samtools_h
-				$extended_parameters.samtools_I
-				 -L $extended_parameters.samtools_L
-				 -m $extended_parameters.samtools_m
-				 -o $extended_parameters.samtools_o
-				$extended_parameters.samtools_p
-				 -P $extended_parameters.samtools_P
-			#end if
-			
-			#for $alignment in $alignments
-				 ${alignment}
-			#end for
-			
-			 2> stderr_1.txt
-			
-			#if $sort_mpileup
-			 | sort -k 1,1 -k 2,2 
-			#end if
-			
-			 > $output ;
-			 cat stderr_1.txt
-		#end if
-	</command>
-	
-	<inputs>
-		<param format="bam,sam" multiple="true" name="alignments" type="data" label="Alignment file" help="Mapped reads in BAM or SAM format."/>
-		
-		<!-- Find out how to access the reference genome from the BAM file(s) -->
-		<conditional name="reference_genome_source">
-			<param name="source_select" type="select" label="Fasta Source">
-				<option value="indexed_filtered">Use a built-in index (which fits your reference)</option>
-				<option value="history">Use reference from the history</option>
-				<option value="indexed_all">Use a built-in index (entire list) - avoid this option if possible; only useful if you design a workflow</option>
-				<option value="attribute">Use a built-in index based on the 'metadata.dbkey' attribute; ideal in workflows</option>
-			</param>
-			<when value="indexed_filtered">
-				<param name="reference_genome" type="select" label="Reference Genome used during alignment (fasta)" >
-					<options from_data_table="all_fasta">
-						<column name="name" index="2"/>
-						<column name="dbkey" index="1"/>
-						<column name="value" index="3"/><!-- Value is the path of the fasta file -->
-						<filter type="data_meta" ref="alignments" multiple="false" key="dbkey" column="1" />
-						<validator type="no_options" message="No indexes are available for the selected input dataset" />
-					</options>
-				</param>
-			</when>
-			<when value="history">
-				<param name="reference_genome" format="fasta" type="data" label="Reference Genome used during alignment (fasta)" help="Reference genome (genome.fa) that corresponds to the *.bam file." />
-			</when>
-			<when value="indexed_all">
-				<param name="reference_genome" type="select" label="Reference Genome used during alignment (fasta)" >
-					<options from_data_table="all_fasta">
-						<column name="name"  index="2"/>
-						<column name="dbkey" index="1"/>
-						<column name="value" index="3"/><!-- Value is the path of the fasta file -->
-						<validator type="no_options" message="No indexes are available for the selected input dataset" />
-					</options>
-				</param>
-			</when>
-			<when value="attribute" />
-		</conditional>
-		
-		<conditional name="extended_parameters_regions">
-			<param name="samtools_regions" type="select" label="Region specific parameters" help="Let samtools target specific genomic locations.">
-				<option value="entire_genome">Entire genome</option>
-				<option value="region">Specific region</option>
-				<option value="regions_file_pos">Specific positions (file); list of positions</option>
-				<option value="regions_file_bed">Specific regions (file); list of regions in BED</option>
-			</param>
-			<when value="entire_genome">
-			</when>
-			<when value="region">
-				<param type="text" name="samtools_r" label="Samtools: region in which pileup is generated" help="chr:pos or chr:start-end" />
-			</when>
-			<when value="regions_file_pos">
-				<param type="data" name="samtools_l" format="tabular" label="Samtools: list of positions (chr pos)" />
-			</when>
-			<when value="regions_file_bed">
-				<param type="data" name="samtools_l" format="bed"     label="Samtools: specific regions (BED)" />
-			</when>
-		</conditional>
-		
-		<conditional name="mpileup_parallelization">
-			<param name="mpileup_parallelization_select" type="select" label="Use parallelization for the mpileup generation (experimental)" help="Especially if larger numbers of bam/sam files are processed, or the file infrastructure is optimized for IO-paralellization, this feature might improve performance.">
-				<option value="false" >False - uses classical samtools</option>
-				<option value="true">True - uses (experimental) samtools mpileup-parallel</option>
-			</param>
-			<when value="false" />
-			<when value="true">
-				<param type="integer" name="samtools_threads" value="2" min="1" label="Samtools: mpileup threads" />
-			</when>
-		</conditional>
-		
-		<param name="sort_mpileup" type="boolean" truevalue="true" falsevalue="false" label="Sort mpileup file" help="Because parallelization may disrupt the outputs order, sorting can be conveniet for e.g. testing. Notice that this function has only use in a limited number of situations but consumes (much) resources. Only use it if it's really neccesairy." />
-		
-		<conditional name="extended_parameters">
-			<param name="parameters" type="select" label="Advanced parameters" help="For more advanced VarScan and samtools settings.">
-				<option value="default">Default settings</option>
-				<option value="extended">Extended settings</option>
-			</param>
-			<when value="default" />
-			<when value="extended">
-				<param type="boolean" name="samtools_6" falsevalue="" truevalue=" -6" label="Samtools: assume the quality is in the Illumina-1.3+ encoding" />
-				<param type="boolean" name="samtools_A" falsevalue="" truevalue=" -A" label="Samtools: count anomalous read pairs" />
-				<param type="boolean" name="samtools_B" falsevalue="" truevalue=" -B" label="Samtools: disable BAQ computation" />
-				<param type="integer" name="samtools_C" value="0"                     label="Samtools: parameter for adjusting mapQ; 0 to disable [0]" />
-				<param type="integer" name="samtools_d" value="250"                   label="Samtools: max per-BAM depth to avoid excessive memory usage [250]" />
-				<param type="boolean" name="samtools_E" falsevalue="" truevalue=" -E" label="Samtools: recalculate extended BAQ on the fly thus ignoring existing BQs" />
-				<param type="integer" name="samtools_M" value="60"                    label="cap mapping quality at INT [60]" />
-				<param type="boolean" name="samtools_R" falsevalue="" truevalue=" -R" label="Samtools: ignore RG tags" />
-				<param type="integer" name="samtools_q" value="0"                     label="Samtools: skip alignments with mapQ smaller than INT [0]" />
-				<param type="integer" name="samtools_Q" value="13"                    label="Samtools: skip bases with baseQ/BAQ smaller than INT [13]" />
-				
-				<param type="integer" name="samtools_e" value="20"                    label="Samtools: Phred-scaled gap extension seq error probability [20]" />
-				<param type="float"   name="samtools_F" value="0.002"                 label="Samtools: minimum fraction of gapped reads for candidates [0.002]" help="Alias: -F" />
-				<param type="integer" name="samtools_h" value="100"                   label="Samtools: coefficient for homopolymer errors [100]" />
-				<param type="boolean" name="samtools_I" falsevalue="" truevalue=" -I" label="Samtools: do not perform indel calling" />
-				<param type="integer" name="samtools_L" value="250"                   label="Samtools: max per-sample depth for INDEL calling [250]" />
-				<param type="integer" name="samtools_m" value="1"                     label="Samtools: minimum gapped reads for indel candidates [1]" help="Alias: -m" />
-				<param type="integer" name="samtools_o" value="40"                    label="Samtools: Phred-scaled gap open sequencing error probability [40]" />
-				<param type="boolean" name="samtools_p" falsevalue="" truevalue=" -p" label="Samtools: apply -m and -F per-sample to increase sensitivity" />
-				<param type="text"    name="samtools_P" value="all"                   label="Samtools: comma separated list of platforms for indels [all]" />
-			</when>
-		</conditional>
-	</inputs>
-	
-	<outputs>
-		<data format="mpileup" name="output" label="${tool.name} on ${', '.join([ str(a.hid)+': '+a.name for a in $alignments ])}" />
-	</outputs>
-	
-	<tests>
-		<test><!-- Use classical samtools -->
-			<param name="alignments" value="hg19_mutant.bam.txt" dbkey="hg19" ftype="bam" />
-			<param name="source_select" value="attribute" />
-			<param name="samtools_regions" value="entire_genome" />
-			
-			<param name="mpileup_parallelization_select" value="false" />
-			<param name="sort_mpileup" value="true" />
-			
-			<param name="parameters" value="default" />
-			
-			
-			<output name="output" file="hg19_mutant.mpileup" /> 
-		</test>
-		<test><!-- Use parallelized samtools -->
-			<param name="alignments" value="hg19_mutant.bam.txt" dbkey="hg19" ftype="bam" />
-			<param name="source_select" value="attribute" />
-			<param name="samtools_regions" value="entire_genome" />
-			
-			<param name="mpileup_parallelization_select" value="true" />
-			<param name="samtools_threads" value="2" />
-			<param name="sort_mpileup" value="true" />
-			
-			<param name="parameters" value="default" />
-			
-			
-			<output name="output" file="hg19_mutant.mpileup" /> 
-		</test>
-	</tests>
-	
-	<help>
-**Samtools mpileup (supporting parallelization)**
-
-SAM (Sequence Alignment/Map) format is a generic format for storing large nucleotide sequence alignments. SAM aims to be a format that:
-
-Is flexible enough to store all the alignment information generated by various alignment programs;
-Is simple enough to be easily generated by alignment programs or converted from existing alignment formats;
-Is compact in file size;
-Allows most of operations on the alignment to work on a stream without loading the whole alignment into memory;
-Allows the file to be indexed by genomic position to efficiently retrieve all reads aligning to a locus.
-SAM Tools provide various utilities for manipulating alignments in the SAM format, including sorting, merging, indexing and generating alignments in a per-position format.
-
-SAMtools is hosted by SourceForge.net. The project page is http://samtools.sourceforge.net/. The source code releases are available from the download page. You can check out the most recent source code from the github project page with:
-git clone git://github.com/samtools/samtools.git 
-https://github.com/mydatascience/parallel-mpileup/
-
-Because samtools does not support parallization of the mpileup command, the project was forked to include paralellization support:
-
-
-However, since the project seems to lack support and contains fatal bugs this project was continued at:
-https://github.com/yhoogstrate/parallel-mpileup/
-
-
-**Input formats**
-
-Satmools accepts sequencing alignments in the same, either SAM or BAM format (http://samtools.sourceforge.net/). The alignment files have to be linked to a reference genome by galaxy. This is indicated under every history item with e.g.: *"database: hg19"* for a link to hg19, or *"database: ?"* if the link is missing.
-
-**Installation**
-
-The installation is fully automatic.
-
-**License**
-
-* parallel-mpileup: MIT License (https://github.com/yhoogstrate/parallel-mpileup/blob/master/samtools-0.1.19/COPYING)
-* samtool: MIT License
-
-
-**Contact**
-
-The tool wrapper has been written by Youri Hoogstrate from the Erasmus Medical Center (Rotterdam, Netherlands) on behalf of the Translational Research IT (TraIT) project:
-http://www.ctmm.nl/en/programmas/infrastructuren/traitprojecttranslationeleresearch
-
-More tools by the Translational Research IT (TraIT) project can be found in the following repository:
-http://toolshed.dtls.nl/
-</help>
-</tool>
\ No newline at end of file
Binary file test-data/GSM1244822_Control_Rep7.hg18.subset.chr10_8136673-8157170.bam has changed
Binary file test-data/example.bam has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example.fa	Thu Nov 05 09:57:03 2015 -0500
@@ -0,0 +1,11 @@
+>chr1
+aaataggtcccaaacgttacgcactctatgcctgacaaagttgcgaccacttcctctgcc
+ttgtgtgacacgccggagatagggcatcagcaagtacgttaagtacactgaacgaactgg
+aggtttctacatcgtgcgtgatggctctaggagaagtgggtgtatctgcacagcataagt
+tataagacggaagtaaagcgtcttcaccgttcagcaccccacgctcatagtcaatgctgg
+ttcagcatagtcaagcgccggtggcctccaaaaagacgcactgagtagcttagctacttt
+gctccgcttgcggaagcactaagaggagattgaatttccaaatcccccccgatacctgtg
+cggtcgctacgtaagtgcgaagttctgttagatacgctccccttagtatatgggcgttaa
+tcggaccgtcggtactcactgcattccaggtctcatatagttcgccctagaagcctggga
+tgaacgttgaactatagctgatgtaaaccccgcgtgccaattccaggcgtcatgggggca
+acccctcgcagcctccctcttgctgttggtgcctagtatttcatgatttcgagccgacat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example.fa.1.bed	Thu Nov 05 09:57:03 2015 -0500
@@ -0,0 +1,1 @@
+chr1	0	330
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example.fa.2.bed	Thu Nov 05 09:57:03 2015 -0500
@@ -0,0 +1,1 @@
+chr1	330	600
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example.fa.fai	Thu Nov 05 09:57:03 2015 -0500
@@ -0,0 +1,1 @@
+chr1	600	6	60	61
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example.mpileup	Thu Nov 05 09:57:03 2015 -0500
@@ -0,0 +1,70 @@
+chr1	1	a	8	^],^].^],^].^],^],^].^],	~~~~~~~~
+chr1	2	a	8	,.,.,,.,	~~~~~~~~
+chr1	3	a	8	,.,.,,.,	~~~~~~~~
+chr1	4	t	8	,.,.,,.,	~~~~~~~~
+chr1	5	a	8	,.,.,,.,	~~~~~~~~
+chr1	6	g	8	,.,.,,.,	~~~~~~~~
+chr1	7	g	8	,.,.,,.,	~~~~~~~~
+chr1	8	t	8	,.,.,,.,	~~~~~~~~
+chr1	9	c	8	,.,.,,.,	~~~~~~~~
+chr1	10	c	8	,.,.,,.,	~~~~~~~~
+chr1	11	c	8	,.,.,,.,	~~~~~~~~
+chr1	12	a	8	,.,.,,.,	~~~~~~~~
+chr1	13	a	8	,.,.,,.,	~~~~~~~~
+chr1	14	a	8	,.,.,,.,	~~~~~~~~
+chr1	15	c	8	,.,.,,.,	~~~~~~~~
+chr1	16	g	8	,.,.,,.,	~~~~~~~~
+chr1	17	t	8	,-1t.-1T,-1t.-1T,-1t,-1t.-1T,-1t	~~~~~~~~
+chr1	18	t	8	********	~~~~~~~~
+chr1	19	a	8	,.,.,,.,	~~~~~~~~
+chr1	20	c	8	,.,.,,.,	~~~~~~~~
+chr1	21	g	8	,.,.,,.,	~~~~~~~~
+chr1	22	c	8	,.,.,,.,	~~~~~~~~
+chr1	23	a	8	,.,.,,.,	~~~~~~~~
+chr1	24	c	8	gGgGggGg	~~~~~~~~
+chr1	25	t	8	,.,.,,.,	~~~~~~~~
+chr1	26	c	8	,.,.,,.,	~~~~~~~~
+chr1	27	t	8	,.,.,,.,	~~~~~~~~
+chr1	28	a	8	,.,.,,.,	~~~~~~~~
+chr1	29	t	8	,.,.,,.,	~~~~~~~~
+chr1	30	g	8	,.,.,,.,	~~~~~~~~
+chr1	31	c	8	,.,.,,.,	~~~~~~~~
+chr1	32	c	8	,.,.,,.,	~~~~~~~~
+chr1	33	t	8	,.,.,,.,	~~~~~~~~
+chr1	34	g	8	,.,.,,.,	~~~~~~~~
+chr1	35	a	8	,$.$,$.$,$,$.$,$	~~~~~~~~
+chr1	61	t	8	^],^],^],^],^],^],^],^],	~BBBBBBB
+chr1	62	t	8	,,,,,,,,	~EEEEEEE
+chr1	63	g	8	,,,,,,,,	~bbbbbbb
+chr1	64	t	8	,,,,,,,,	~eeeeeee
+chr1	65	g	8	,,,,,,,,	~ooooooo
+chr1	66	t	8	,,,,,,,,	~ppppppp
+chr1	67	g	8	,,,,,,,,	~sssssss
+chr1	68	a	8	,,,,,,,,	~xxxxxxx
+chr1	69	c	8	,,,,,,,,	~xxxxxxx
+chr1	70	a	8	,,,,,,,,	~xxxxxxx
+chr1	71	c	8	,,,,,,,,	~xxxxxxx
+chr1	72	g	8	,,,,,,,,	~{{{{{{{
+chr1	73	c	8	,,,,,,,,	~aaaaaaa
+chr1	74	c	8	,,,,,,,,	~aaaaaaa
+chr1	75	g	8	,,,,,,,,	~RRRRRRR
+chr1	76	g	8	,,,,,,,,	~RRRRRRR
+chr1	77	a	1	,+1a	~
+chr1	78	g	8	,,,,,,,,	~RRRRRRR
+chr1	79	a	8	,,,,,,,,	~RRRRRRR
+chr1	80	t	8	,,,,,,,,	~[[[[[[[
+chr1	81	a	8	,,,,,,,,	~[[[[[[[
+chr1	82	g	8	,,,,,,,,	~[[[[[[[
+chr1	83	g	8	,,,,,,,,	~[[[[[[[
+chr1	84	g	8	aaaaaaaa	~[[[[[[[
+chr1	85	c	8	,,,,,,,,	~[[[[[[[
+chr1	86	a	8	,,,,,,,,	~[[[[[[[
+chr1	87	t	8	,,,,,,,,	~iiiiiii
+chr1	88	c	8	,,,,,,,,	~iiiiiii
+chr1	89	a	8	,,,,,,,,	~lllllll
+chr1	90	g	8	,,,,,,,,	~~~~~~~~
+chr1	91	c	8	,,,,,,,,	~~~~~~~~
+chr1	92	a	8	,,,,,,,,	~aaaaaaa
+chr1	93	a	8	,,,,,,,,	~_______
+chr1	94	g	8	,,,,,,,,	~UUUUUUU
+chr1	95	t	8	,$,$,$,$,$,$,$,$	~EEEEEEE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example.mpileup.parallel	Thu Nov 05 09:57:03 2015 -0500
@@ -0,0 +1,70 @@
+achr1	77	a	1	,+1a	~
+chr1	1	a	8	^],^].^],^].^],^],^].^],	~~~~~~~~
+chr1	2	a	8	,.,.,,.,	~~~~~~~~
+chr1	3	a	8	,.,.,,.,	~~~~~~~~
+chr1	4	t	8	,.,.,,.,	~~~~~~~~
+chr1	5	a	8	,.,.,,.,	~~~~~~~~
+chr1	6	g	8	,.,.,,.,	~~~~~~~~
+chr1	7	g	8	,.,.,,.,	~~~~~~~~
+chr1	8	t	8	,.,.,,.,	~~~~~~~~
+chr1	9	c	8	,.,.,,.,	~~~~~~~~
+chr1	10	c	8	,.,.,,.,	~~~~~~~~
+chr1	11	c	8	,.,.,,.,	~~~~~~~~
+chr1	12	a	8	,.,.,,.,	~~~~~~~~
+chr1	13	a	8	,.,.,,.,	~~~~~~~~
+chr1	14	a	8	,.,.,,.,	~~~~~~~~
+chr1	15	c	8	,.,.,,.,	~~~~~~~~
+chr1	16	g	8	,.,.,,.,	~~~~~~~~
+chr1	17	t	8	,-1t.-1T,-1t.-1T,-1t,-1t.-1T,-1t	~~~~~~~~
+chr1	18	t	8	********	~~~~~~~~
+chr1	19	a	8	,.,.,,.,	~~~~~~~~
+chr1	20	c	8	,.,.,,.,	~~~~~~~~
+chr1	21	g	8	,.,.,,.,	~~~~~~~~
+chr1	22	c	8	,.,.,,.,	~~~~~~~~
+chr1	23	a	8	,.,.,,.,	~~~~~~~~
+chr1	24	c	8	gGgGggGg	~~~~~~~~
+chr1	25	t	8	,.,.,,.,	~~~~~~~~
+chr1	26	c	8	,.,.,,.,	~~~~~~~~
+chr1	27	t	8	,.,.,,.,	~~~~~~~~
+chr1	28	a	8	,.,.,,.,	~~~~~~~~
+chr1	29	t	8	,.,.,,.,	~~~~~~~~
+chr1	30	g	8	,.,.,,.,	~~~~~~~~
+chr1	31	c	8	,.,.,,.,	~~~~~~~~
+chr1	32	c	8	,.,.,,.,	~~~~~~~~
+chr1	33	t	8	,.,.,,.,	~~~~~~~~
+chr1	34	g	8	,.,.,,.,	~~~~~~~~
+chr1	35	a	8	,$.$,$.$,$,$.$,$	~~~~~~~~
+chr1	61	t	8	^],^],^],^],^],^],^],^],	~BBBBBBB
+chr1	62	t	8	,,,,,,,,	~EEEEEEE
+chr1	63	g	8	,,,,,,,,	~bbbbbbb
+chr1	64	t	8	,,,,,,,,	~eeeeeee
+chr1	65	g	8	,,,,,,,,	~ooooooo
+chr1	66	t	8	,,,,,,,,	~ppppppp
+chr1	67	g	8	,,,,,,,,	~sssssss
+chr1	68	a	8	,,,,,,,,	~xxxxxxx
+chr1	69	c	8	,,,,,,,,	~xxxxxxx
+chr1	70	a	8	,,,,,,,,	~xxxxxxx
+chr1	71	c	8	,,,,,,,,	~xxxxxxx
+chr1	72	g	8	,,,,,,,,	~{{{{{{{
+chr1	73	c	8	,,,,,,,,	~aaaaaaa
+chr1	74	c	8	,,,,,,,,	~aaaaaaa
+chr1	75	g	8	,,,,,,,,	~RRRRRRR
+chr1	76	g	8	,,,,,,,,	~RRRRRRR
+chr1	78	g	8	,,,,,,,,	~RRRRRRR
+chr1	79	a	8	,,,,,,,,	~RRRRRRR
+chr1	80	t	8	,,,,,,,,	~[[[[[[[
+chr1	81	a	8	,,,,,,,,	~[[[[[[[
+chr1	82	g	8	,,,,,,,,	~[[[[[[[
+chr1	83	g	8	,,,,,,,,	~[[[[[[[
+chr1	84	g	8	aaaaaaaa	~[[[[[[[
+chr1	85	c	8	,,,,,,,,	~[[[[[[[
+chr1	86	a	8	,,,,,,,,	~[[[[[[[
+chr1	87	t	8	,,,,,,,,	~iiiiiii
+chr1	88	c	8	,,,,,,,,	~iiiiiii
+chr1	89	a	8	,,,,,,,,	~lllllll
+chr1	90	g	8	,,,,,,,,	~~~~~~~~
+chr1	91	c	8	,,,,,,,,	~~~~~~~~
+chr1	92	a	8	,,,,,,,,	~aaaaaaa
+chr1	93	a	8	,,,,,,,,	~_______
+chr1	94	g	8	,,,,,,,,	~UUUUUUU
+chr1	95	t	8	,$,$,$,$,$,$,$,$	~EEEEEEE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example.vcf	Thu Nov 05 09:57:03 2015 -0500
@@ -0,0 +1,25 @@
+##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
+chr1	17	.	TT	T	.	PASS	ADP=8;WT=0;HET=0;HOM=1;NC=0	GT:GQ:SDP:DP:RD:AD:FREQ:PVAL:RBQ:ABQ:RDF:RDR:ADF:ADR	1/1:41:8:8:0:8:100%:7.77E-5:0:93:0:0:3:5
--- a/tool_dependencies.xml	Wed Nov 19 10:04:52 2014 -0500
+++ b/tool_dependencies.xml	Thu Nov 05 09:57:03 2015 -0500
@@ -1,55 +1,14 @@
 <?xml version="1.0"?>
 <tool_dependency>
-	<!--
-	<package name="ncurses" version="5.9">
-		<repository name="package_ncurses_5_9" owner="iuc" prior_installation_required="True" />
-	</package>
-	-->
-	
-	<package name="ncurses" version="5.9">
-		<repository changeset_revision="632f1a03db92" name="package_samtools_0_1_19" owner="iuc" prior_installation_required="True" toolshed="https://testtoolshed.g2.bx.psu.edu" />
-	</package>
-	
-	<package name="samtools" version="0.1.19">
-		<repository changeset_revision="632f1a03db92" name="package_samtools_0_1_19" owner="iuc" prior_installation_required="True" toolshed="https://testtoolshed.g2.bx.psu.edu" />
-	</package>
-	
-	<package name="samtools_parallel_mpileup_0_1_19a" version="0.1.19a">
-		<install version="1.0">
-			<actions>
-				<action type="set_environment_for_install">
-					<repository changeset_revision="c0735727b530" name="package_ncurses_5_9" owner="iuc" toolshed="https://testtoolshed.g2.bx.psu.edu">
-						<package name="ncurses" version="5.9" />
-					</repository>
-				</action>
-				
-				<action type="shell_command">
-				svn checkout https://github.com/yhoogstrate/parallel-mpileup/trunk samtools-parallel-mpileup ;
-				
-				cd samtools-parallel-mpileup ;
-				cd $(ls |grep samtools-) ;
-				
-				sed -i 's/-lcurses/-lncurses/' Makefile ;
-                sed -i -e "s|CFLAGS=\s*-g\s*-Wall\s*-O2\s*|CFLAGS= -g -Wall -O2 -I$NCURSES_INCLUDE_PATH/ncurses/ -I$NCURSES_INCLUDE_PATH -L$NCURSES_LIB_PATH|g" Makefile ;
-				
-				make ;
-				cp samtools ../samtools-parallel-mpileup</action>
-				<action type="move_file">
-					<source>samtools-parallel-mpileup/samtools-parallel-mpileup</source>
-					<destination>$INSTALL_DIR/bin</destination>
-				</action>
-				<action type="set_environment">
-					<environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable>
-					<environment_variable action="prepend_to" name="PATH">$REPOSITORY_INSTALL_DIR</environment_variable>
-				</action>
-			</actions>
-		</install>
-		<readme>
-			Downloads and installs a modified version of samtools, able to paralellize the mpileup function.
-		</readme>
-	</package>
-	
-	<package name="varscan" version="2.3.6">
-		<repository changeset_revision="f82940004c84" name="varscan_version_2" owner="devteam" prior_installation_required="True" toolshed="https://testtoolshed.g2.bx.psu.edu" />
-	</package>
+    <package name="samtools" version="0.1.19">
+        <repository changeset_revision="0e56e4dac6e7" name="package_samtools_0_1_19" owner="iuc" toolshed="https://testtoolshed.g2.bx.psu.edu" />
+    </package>
+
+    <package name="samtools_parallel_mpileup" version="0.1.19-a">
+        <repository changeset_revision="8eea1a2bd1f2" name="package_samtools_parallel_mpileup_0_1_19_a" owner="yhoogstrate" toolshed="https://testtoolshed.g2.bx.psu.edu" />
+    </package>
+
+    <package name="varscan" version="2.3.6">
+        <repository changeset_revision="f82940004c84" name="varscan_version_2" owner="devteam" prior_installation_required="True" toolshed="https://testtoolshed.g2.bx.psu.edu" />
+    </package>
 </tool_dependency>
--- a/varscan_mpileup2indel.xml	Wed Nov 19 10:04:52 2014 -0500
+++ b/varscan_mpileup2indel.xml	Thu Nov 05 09:57:03 2015 -0500
@@ -1,82 +1,86 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<tool id="varscan_mpileup2indel" name="VarScan2 Call INDELs from a mpileup file">
-	<description>VarScan2 INDEL detection; directly from a *.mpileup file.</description>
-	<requirements>
-		<requirement type="package" version="2.3.6">varscan</requirement>
-	</requirements>
-	<command>
-		cat $mpileup_input | java
-			 -Xmx64G
-			 -jar \$JAVA_JAR_PATH/VarScan.v2.3.6.jar
-				 mpileup2indel
-		 
-		#if $extended_parameters.parameters == "extended"
-			 --min-coverage     $extended_parameters.varscan_min_coverage
-			 --min-reads2       $extended_parameters.varscan_min_reads2
-			 --min-avg-qual     $extended_parameters.varscan_min_avg_qual
-			 --min-var-freq     $extended_parameters.varscan_min_var_freq
-			 --min-freq-for-hom $extended_parameters.varscan_min_freq_for_hom
-			 --p-value          $extended_parameters.varscan_p_value
-			                    $extended_parameters.varscan_strand_filter 
-			                    $extended_parameters.varscan_variants 
-		#end if
-		
-		#if $varscan_output == "vcf" or $varscan_output.value == "vcf"
-		 --output-vcf 1 
-		#end if
-		
-		 2> stderr.txt 
-		 > $snv_output ;
-		 cat stderr.txt
-	</command>
-	
-	<inputs>
-		<param format="pileup" name="mpileup_input" type="data" label="Alignment file" help="Mapped reads in mpileup format."/><!-- datatype "mpileup" does not exist.. it seems to be common to use pileup instead? -->
-		
-		<conditional name="extended_parameters">
-			<param name="parameters" type="select" label="VarScan parameters" help="For more advanced VarScan settings.">
-				<option value="default">Default settings</option>
-				<option value="extended">Extended settings</option>
-			</param>
-			<when value="default">
-			</when>
-			<when value="extended">
-				<param type="integer" name="varscan_min_coverage"     value="8"       label="VarScan: Minimum read depth at a position to make a call [8]" />
-				<param type="integer" name="varscan_min_reads2"	      value="2"       label="VarScan: PMinimum supporting reads at a position to call variants [2]" />
-				<param type="integer" name="varscan_min_avg_qual"     value="15"      label="VarScan: Minimum base quality at a position to count a read [15]" />
-				<param type="float"   name="varscan_min_var_freq"     value="0.01"    label="VarScan: minimum fraction of gapped reads for candidates [0.002]" help="Alias: -F" />
-				<param type="float"   name="varscan_min_freq_for_hom" value="0.75"    label="VarScan: Minimum frequency to call homozygote [0.75]" />
-				<param type="float"   name="varscan_p_value"          value="0.99"    label="VarScan: Default p-value threshold for calling variants [99e-02]" />
-				<param type="boolean" name="varscan_strand_filter"    falsevalue=" --strand_filter 0" truevalue=" --strand_filter 1" checked="true"  label="VarScan: Ignore variants with >90% support on one strand [1]" />
-				<param type="boolean" name="varscan_variants"         falsevalue=" --variants 0"      truevalue=" --variants 1"      checked="false" label="VarScan: Report only variant (SNP/indel) positions [0]" />
-			</when>
-		</conditional>
-		
-		<param name="varscan_output" type="select" label="Output format">
-			<option value="vcf">VCF</option>
-			<option value="tabular">tabular</option>
-		</param>
-	</inputs>
-	
-	<outputs>
-		<data format="tabular" name="snv_output" label="${tool.name} on ${mpileup_input.hid}: ${mpileup_input.name}">
-			<change_format>
-				<when input="varscan_output" value="vcf" format="vcf" />
-			</change_format>
-		</data>
-	</outputs>
-	
-	<tests>
-		<test>
-			<param name="mpileup_input" value="hg19_mutant.mpileup" dbkey="hg19" ftype="pileup" />
-			<param name="parameters" value="default" />
-			<param name="varscan_output_vcf" value="1" />
-			
-			<output name="snv_output" file="hg19_mutant.vcf" />
-		</test>
-	</tests>
-	
-	<help>
+<tool id="varscan_mpileup2indel" name="VarScan2 Call INDELs from a mpileup file" version="2.3.6.a">
+    <description>VarScan2 INDEL detection; directly from a *.mpileup file.</description>
+    
+    <requirements>
+        <requirement type="package" version="2.3.6">varscan</requirement>
+    </requirements>
+    
+    <version_command>java -jar $JAVA_JAR_PATH/VarScan.v2.3.6.jar 2>&amp;1 | head -n 1</version_command>
+    
+    <command>
+        cat $mpileup_input | java
+             -Xmx64G
+             -jar \$JAVA_JAR_PATH/VarScan.v2.3.6.jar
+                 mpileup2indel
+         
+        #if $extended_parameters.parameters == "extended"
+             --min-coverage     $extended_parameters.varscan_min_coverage
+             --min-reads2       $extended_parameters.varscan_min_reads2
+             --min-avg-qual     $extended_parameters.varscan_min_avg_qual
+             --min-var-freq     $extended_parameters.varscan_min_var_freq
+             --min-freq-for-hom $extended_parameters.varscan_min_freq_for_hom
+             --p-value          $extended_parameters.varscan_p_value
+                                $extended_parameters.varscan_strand_filter 
+                                $extended_parameters.varscan_variants 
+        #end if
+        
+        #if $varscan_output == "vcf" or $varscan_output.value == "vcf"
+         --output-vcf 1 
+        #end if
+        
+         2> stderr.txt 
+         > $snv_output ;
+         cat stderr.txt
+    </command>
+    
+    <inputs>
+        <param format="pileup" name="mpileup_input" type="data" label="Alignment file" help="Mapped reads in mpileup format."/><!-- datatype "mpileup" does not exist.. it seems to be common to use pileup instead? -->
+        
+        <conditional name="extended_parameters">
+            <param name="parameters" type="select" label="VarScan parameters" help="For more advanced VarScan settings.">
+                <option value="default">Default settings</option>
+                <option value="extended">Extended settings</option>
+            </param>
+            <when value="default">
+            </when>
+            <when value="extended">
+                <param type="integer" name="varscan_min_coverage"     value="8"       label="VarScan: Minimum read depth at a position to make a call [8]" />
+                <param type="integer" name="varscan_min_reads2"	      value="2"       label="VarScan: PMinimum supporting reads at a position to call variants [2]" />
+                <param type="integer" name="varscan_min_avg_qual"     value="15"      label="VarScan: Minimum base quality at a position to count a read [15]" />
+                <param type="float"   name="varscan_min_var_freq"     value="0.01"    label="VarScan: minimum fraction of gapped reads for candidates [0.002]" help="Alias: -F" />
+                <param type="float"   name="varscan_min_freq_for_hom" value="0.75"    label="VarScan: Minimum frequency to call homozygote [0.75]" />
+                <param type="float"   name="varscan_p_value"          value="0.99"    label="VarScan: Default p-value threshold for calling variants [99e-02]" />
+                <param type="boolean" name="varscan_strand_filter"    falsevalue=" --strand_filter 0" truevalue=" --strand_filter 1" checked="true"  label="VarScan: Ignore variants with >90% support on one strand [1]" />
+                <param type="boolean" name="varscan_variants"         falsevalue=" --variants 0"      truevalue=" --variants 1"      checked="false" label="VarScan: Report only variant (SNP/indel) positions [0]" />
+            </when>
+        </conditional>
+        
+        <param name="varscan_output" type="select" label="Output format">
+            <option value="vcf">VCF</option>
+            <option value="tabular">tabular</option>
+        </param>
+    </inputs>
+    
+    <outputs>
+        <data format="tabular" name="snv_output" label="${tool.name} on ${mpileup_input.hid}: ${mpileup_input.name}">
+            <change_format>
+                <when input="varscan_output" value="vcf" format="vcf" />
+            </change_format>
+        </data>
+    </outputs>
+    
+    <tests>
+        <test>
+            <param name="mpileup_input" value="example.mpileup" ftype="pileup" />
+            <param name="parameters" value="default" />
+            <param name="varscan_output_vcf" value="1" />
+            
+            <output name="snv_output" file="example.vcf" />
+        </test>
+    </tests>
+    
+    <help>
 **VarScan 2.3.6**
 
 VarScan is a platform-independent mutation caller for targeted, exome, and whole-genome resequencing data generated on Illumina, SOLiD, Life/PGM, Roche/454, and similar instruments. The newest version, VarScan 2, is written in Java, so it runs on most operating systems.
@@ -105,13 +109,23 @@
 * VarScan2.3.6: Non-Profit Open Software License 3.0 (Non-Profit OSL 3.0)
 * parallel-mpileup: MIT License (https://github.com/mydatascience/parallel-mpileup/blob/master/samtools-0.1.19/COPYING)
 
+Contact
+-------
 
-**Contact**
+The tool wrapper has been written by Youri Hoogstrate from the Erasmus
+Medical Center (Rotterdam, Netherlands) on behalf of the Translational
+Research IT (TraIT) project:
 
-The tool wrapper has been written by Youri Hoogstrate from the Erasmus Medical Center (Rotterdam, Netherlands) on behalf of the Translational Research IT (TraIT) project:
 http://www.ctmm.nl/en/programmas/infrastructuren/traitprojecttranslationeleresearch
 
-More tools by the Translational Research IT (TraIT) project can be found in the following repository:
-http://toolshed.dtls.nl/
+More tools by the Translational Research IT (TraIT) project can be found
+in the following toolsheds:
+
+http://toolshed.g2.bx.psu.edu/
+
+http://testtoolshed.g2.bx.psu.edu/
 </help>
+    <citations>
+        <citation type="doi">10.1101/gr.129684.111</citation>
+    </citations>
 </tool>
\ No newline at end of file
Binary file varscan_mpileup2indel_from_bam.tar.xz has changed
--- a/varscan_mpileup2indel_from_bam.xml	Wed Nov 19 10:04:52 2014 -0500
+++ b/varscan_mpileup2indel_from_bam.xml	Thu Nov 05 09:57:03 2015 -0500
@@ -1,280 +1,288 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<tool id="varscan_mpileup2indel_from_bam" name="VarScan2 Call INDELs from BAM">
-	<description>VarScan2 INDEL detection; directly reading *.bam file(s) &amp; using parallel mpileup generation, to avoid unnecessairy I/O overhead and increase performance.</description>
-	<requirements>
-		<requirement type="package" version="5.9">ncurses</requirement>
-		<requirement type="package" version="0.1.19a">samtools_parallel_mpileup_0_1_19a</requirement>
-		<requirement type="package" version="2.3.6">varscan</requirement>
-		<requirement type="package" version="5.9">ncurses</requirement>
-		<requirement type="package" version="0.1.19">samtools</requirement>
-	</requirements>
-	<command>
-		#if $reference_genome_source.source_select == "attribute" and len({ alignment.metadata.dbkey:True for alignment in $alignments }.keys()) != 1
-			echo "Invalid number of dbkeys are found: ${ len({ alignment.metadata.dbkey:True for alignment in $alignments }.keys()) }, while only one should be used. Make sure that the alignments are done on the same reference genome and that 'tool-data/all_fasta.loc' is configured properly!" >&amp;2
-		#else
-			#import os.path
-			#for $alignment in $alignments
-				<!-- @todo use the existence of $alignment.metadata.bam_index or $alignment.metadata['bam_index'] -->
-				#if not os.path.isfile(str($alignment)+".bai")
-				 echo "- Indexing alignment file: $alignment.name " ; 
-				 samtools index $alignment 2>&amp;1 ; 
-				#else
-				 echo "- Skiping indexing: $alignment.name " ; 
-				#end if
-			#end for
-			
-			#if $mpileup_parallelization.mpileup_parallelization_select == "true"
-				samtools-parallel-mpileup mpileup
-				-t $mpileup_parallelization.samtools_threads
-			#else
-				samtools mpileup
-			#end if
-				-f 
-					#if $reference_genome_source.source_select == "indexed_filtered"
-						"$reference_genome_source.reference_genome"
-					#else if $reference_genome_source.source_select == "indexed_all"
-						"$reference_genome_source.reference_genome"
-					#else if $reference_genome_source.source_select == "history"
-						"$reference_genome_source.reference_genome"
-					#else
-						<!--
-							This is a workaround to obtain the "genome.fa" file that
-							corresponds to the dbkey of the alignments.
-							Because this file is "calculated" during run-time, it can
-							be used in a workflow.
-						-->
-						"${ filter( lambda x: str( x[0] ) == str( { alignment.metadata.dbkey:True for alignment in $alignments }.keys()[0] ), $__app__.tool_data_tables[ 'all_fasta' ].get_fields() )[0][-1] }"
-					#end if
-			
-			#if $extended_parameters_regions.samtools_regions == "region"
-				 -r $extended_parameters_regions.samtools_r
-			#elif $extended_parameters_regions.samtools_regions == "regions_file_pos" or $extended_parameters_regions.samtools_regions == "regions_file_bed"
-				 -l $extended_parameters_regions.samtools_l
-			#end if
-			
-			#if $extended_parameters.parameters == "extended"
-				$extended_parameters.samtools_6
-				$extended_parameters.samtools_A
-				$extended_parameters.samtools_B
-				 -C $extended_parameters.samtools_C
-				 -d $extended_parameters.samtools_d
-				$extended_parameters.samtools_E
-				 -M $extended_parameters.samtools_M
-				$extended_parameters.samtools_R
-				 -q $extended_parameters.samtools_q
-				 -Q $extended_parameters.samtools_Q
-				
-				 -e $extended_parameters.samtools_e
-				 -F $extended_parameters.samtools_F
-				 -h $extended_parameters.samtools_h
-				$extended_parameters.samtools_I
-				 -L $extended_parameters.samtools_L
-				 -m $extended_parameters.samtools_m
-				 -o $extended_parameters.samtools_o
-				$extended_parameters.samtools_p
-				 -P $extended_parameters.samtools_P
-			#end if
-			
-			#for $alignment in $alignments
-				 ${alignment}
-			#end for
-			 2>stderr_1.txt
-			
-			#if $mpileup_parallelization.mpileup_parallelization_select == "true"
-				#if $mpileup_parallelization.sort_mpileup
-				 | sort -k 1,1 -k 2,2 
-				#end if
-			#end if
-			
-			 | java
-					 -Xmx64G
-					 -jar \$JAVA_JAR_PATH/VarScan.v2.3.6.jar
-						 mpileup2indel
-			 
-			#if $extended_parameters.parameters == "extended"
-					 --min-coverage     $extended_parameters.varscan_min_coverage
-					 --min-reads2       $extended_parameters.varscan_min_reads2
-					 --min-avg-qual     $extended_parameters.varscan_min_avg_qual
-					 --min-var-freq     $extended_parameters.varscan_min_var_freq
-					 --min-freq-for-hom $extended_parameters.varscan_min_freq_for_hom
-					 --p-value          $extended_parameters.varscan_p_value
-					                    $extended_parameters.varscan_strand_filter 
-					                    $extended_parameters.varscan_variants 
-			#end if
-			
-			#if $varscan_output == "vcf" or $varscan_output.value == "vcf"
-			 --output-vcf 1 
-			#end if
-			
-			 2>stderr_2.txt 
-			 > $snv_output ;
-			 
-			 
-			 echo "---------------[ mpileup generation ]---------------" ;
-			 cat stderr_1.txt ;
-			 echo "" ;
-			 echo "---------------[ VarScan INDEL detect ]---------------" ;
-			 cat stderr_2.txt ;
-			 echo "" ;
-			 echo "----------------------------------------------------" ;
-		#end if
-	</command>
-	
-	<inputs>
-		<param format="bam,sam" multiple="true" name="alignments" type="data" label="Alignment file(s)" help="Mapped reads in BAM or SAM format."/>
-		
-		<!-- Find out how to access the reference genome from the BAM file(s) -->
-		<conditional name="reference_genome_source">
-			<param name="source_select" type="select" label="Fasta Source">
-				<option value="indexed_filtered">Use a built-in index (which fits your reference)</option>
-				<option value="history">Use reference from the history</option>
-				<option value="indexed_all">Use a built-in index (entire list) - avoid this option if possible; only useful if you design a workflow</option>
-				<option value="attribute">Use a built-in index based on the 'metadata.dbkey' attribute; ideal in workflows</option>
-			</param>
-			<when value="history">
-				<param name="reference_genome" format="fasta" type="data" label="Reference Genome used during alignment (FASTA)" help="Reference genome (genome.fa) that corresponds to the *.bam file." />
-			</when>
-			<when value="indexed_filtered">
-				<param name="reference_genome" type="select" label="Reference Genome used during alignment (FASTA)" >
-					<options from_data_table="all_fasta">
-						<column name="name"  index="2"/>
-						<column name="dbkey" index="1"/>
-						<column name="value" index="3"/><!-- Value is the path of the fasta file -->
-						<filter type="data_meta" ref="alignments" multiple="false" key="dbkey" column="1" />
-						<validator type="no_options" message="No indexes are available for the selected input dataset" />
-					</options>
-				</param>
-			</when>
-			<when value="indexed_all">
-				<param name="reference_genome" type="select" label="Reference Genome used during alignment (FASTA)" >
-					<options from_data_table="all_fasta">
-						<column name="name"  index="2"/>
-						<column name="dbkey" index="1"/>
-						<column name="value" index="3"/><!-- Value is the path of the fasta file -->
-						<validator type="no_options" message="No indexes are available for the selected input dataset" />
-					</options>
-				</param>
-			</when>
-			<when value="attribute" />
-		</conditional>
-		
-		<conditional name="extended_parameters_regions">
-			<param name="samtools_regions" type="select" label="Region specific parameters" help="Let samtools target specific genomic locations.">
-				<option value="entire_genome">Entire genome</option>
-				<option value="region">Specific region</option>
-				<option value="regions_file_pos">Specific positions (file); list of positions</option>
-				<option value="regions_file_bed">Specific regions (file); list of regions in BED</option>
-			</param>
-			<when value="entire_genome" />
-			<when value="region">
-				<param type="text" name="samtools_r" label="Samtools: region in which pileup is generated" help="e.g. chrX or chr:pos or chr:start-end" />
-			</when>
-			<when value="regions_file_pos">
-				<param type="data" name="samtools_l" format="tabular" label="Samtools: list of positions (chr pos)" />
-			</when>
-			<when value="regions_file_bed">
-				<param type="data" name="samtools_l" format="bed"     label="Samtools: specific regions (BED)" />
-			</when>
-		</conditional>
-		
-		<conditional name="mpileup_parallelization">
-			<param name="mpileup_parallelization_select" type="select" label="Use parallelization for the mpileup generation (experimental)" help="Especially if larger numbers of bam/sam files are processed, or the file infrastructure is optimized for IO-paralellization, this feature might improve performance.">
-				<option value="false" >False - uses classical samtools</option>
-				<option value="true">True - uses (experimental) samtools mpileup-parallel</option>
-			</param>
-			<when value="false" />
-			<when value="true">
-				<param type="integer" name="samtools_threads" value="2" min="1" label="Samtools: mpileup threads" />
-				<param type="boolean" name="sort_mpileup" truevalue="true" falsevalue="false" label="Sort mpileup file (SLOW)" help="Because parallelization may disrupt the outputs order, sorting can be conveniet for e.g. testing. Notice that this function has only use in a limited number of situations but consumes (much) resources. Only use it if it's really neccesairy." />
-			</when>
-		</conditional>
-		
-		<conditional name="extended_parameters">
-			<param name="parameters" type="select" label="Advanced parameters" help="For more advanced VarScan and samtools settings.">
-				<option value="default">Default settings</option>
-				<option value="extended">Extended settings</option>
-			</param>
-			<when value="default" />
-			<when value="extended">
-				<param type="boolean" name="samtools_6" falsevalue="" truevalue=" -6" label="Samtools: assume the quality is in the Illumina-1.3+ encoding" />
-				<param type="boolean" name="samtools_A" falsevalue="" truevalue=" -A" label="Samtools: count anomalous read pairs" />
-				<param type="boolean" name="samtools_B" falsevalue="" truevalue=" -B" label="Samtools: disable BAQ computation" />
-				<param type="integer" name="samtools_C" value="0"                     label="Samtools: parameter for adjusting mapQ; 0 to disable [0]" />
-				<param type="integer" name="samtools_d" value="250"                   label="Samtools: max per-BAM depth to avoid excessive memory usage [250]" />
-				<param type="boolean" name="samtools_E" falsevalue="" truevalue=" -E" label="Samtools: recalculate extended BAQ on the fly thus ignoring existing BQs" />
-				<param type="integer" name="samtools_M" value="60"                    label="cap mapping quality at INT [60]" />
-				<param type="boolean" name="samtools_R" falsevalue="" truevalue=" -R" label="Samtools: ignore RG tags" />
-				<param type="integer" name="samtools_q" value="0"                     label="Samtools: skip alignments with mapQ smaller than INT [0]" />
-				<param type="integer" name="samtools_Q" value="13"                    label="Samtools: skip bases with baseQ/BAQ smaller than INT [13]" />
-				
-				<param type="integer" name="samtools_e" value="20"                    label="Samtools: Phred-scaled gap extension seq error probability [20]" />
-				<param type="float"   name="samtools_F" value="0.002"                 label="Samtools: minimum fraction of gapped reads for candidates [0.002]" help="Alias: -F" />
-				<param type="integer" name="samtools_h" value="100"                   label="Samtools: coefficient for homopolymer errors [100]" />
-				<param type="boolean" name="samtools_I" falsevalue="" truevalue=" -I" label="Samtools: do not perform indel calling" />
-				<param type="integer" name="samtools_L" value="250"                   label="Samtools: max per-sample depth for INDEL calling [250]" />
-				<param type="integer" name="samtools_m" value="1"                     label="Samtools: minimum gapped reads for indel candidates [1]" help="Alias: -m" />
-				<param type="integer" name="samtools_o" value="40"                    label="Samtools: Phred-scaled gap open sequencing error probability [40]" />
-				<param type="boolean" name="samtools_p" falsevalue="" truevalue=" -p" label="Samtools: apply -m and -F per-sample to increase sensitivity" />
-				<param type="text"    name="samtools_P" value="all"                   label="Samtools: comma separated list of platforms for indels [all]" />
-				
-				<param type="integer" name="varscan_min_coverage"     value="8"       label="VarScan: Minimum read depth at a position to make a call [8]" />
-				<param type="integer" name="varscan_min_reads2"	      value="2"       label="VarScan: PMinimum supporting reads at a position to call variants [2]" />
-				<param type="integer" name="varscan_min_avg_qual"     value="15"      label="VarScan: Minimum base quality at a position to count a read [15]" />
-				<param type="float"   name="varscan_min_var_freq"     value="0.01"    label="VarScan: minimum fraction of gapped reads for candidates [0.002]" help="Alias: -F" />
-				<param type="float"   name="varscan_min_freq_for_hom" value="0.75"    label="VarScan: Minimum frequency to call homozygote [0.75]" />
-				<param type="float"   name="varscan_p_value"          value="0.99"    label="VarScan: Default p-value threshold for calling variants [99e-02]" />
-				<param type="boolean" name="varscan_strand_filter"    falsevalue=" --strand_filter 0" truevalue=" --strand_filter 1" checked="true"  label="VarScan: Ignore variants with >90% support on one strand [1]" />
-				<param type="boolean" name="varscan_variants"         falsevalue=" --variants 0"      truevalue=" --variants 1"      checked="false" label="VarScan: Report only variant (SNP/indel) positions [0]" />
-			</when>
-		</conditional>
-		
-		<param name="varscan_output" type="select" label="Output format">
-			<option value="vcf">VCF</option>
-			<option value="tabular">tabular</option>
-		</param>
-	</inputs>
-	
-	<outputs>
-		<data format="tabular" name="snv_output" label="${tool.name} on ${', '.join([ str(a.hid)+': '+a.name for a in $alignments ])}">
-			<change_format>
-				<when input="varscan_output" value="vcf" format="vcf" />
-			</change_format>
-		</data>
-	</outputs>
-	
-	<tests>
-		<test><!-- Use classical samtools -->
-			<param name="alignments" value="hg19_mutant.bam.txt" dbkey="hg19" ftype="bam" />
-			<param name="source_select" value="attribute" />
-			<param name="samtools_regions" value="entire_genome" />
-			
-			<param name="mpileup_parallelization_select" value="false" />
-			<param name="sort_mpileup" value="true" />
-			
-			<param name="parameters" value="default" />
-			<param name="varscan_output_vcf" value="1" />
-			
-			
-			<output name="snv_output" file="hg19_mutant.vcf" />
-		</test>
-		<test><!-- Use parallelized samtools -->
-			<param name="alignments" value="hg19_mutant.bam.txt" dbkey="hg19" ftype="bam" />
-			<param name="source_select" value="attribute" />
-			<param name="samtools_regions" value="entire_genome" />
-			
-			<param name="mpileup_parallelization_select" value="true" />
-			<param name="samtools_threads" value="2" />
-			<param name="sort_mpileup" value="true" />
-			
-			<param name="parameters" value="default" />
-			<param name="varscan_output_vcf" value="1" />
-			
-			
-			<output name="snv_output" file="hg19_mutant.vcf" />
-		</test>
-	</tests>
-	
-	<help>
+<tool id="varscan_mpileup2indel_from_bam" name="VarScan2 Call INDELs from BAM" version="2.3.6.a">
+    <description>VarScan2 INDEL detection; directly reading *.bam file(s) &amp; using parallel mpileup generation, to avoid unnecessairy I/O overhead and increase performance.</description>
+    
+    <requirements>
+        <requirement type="package" version="0.1.19a">samtools_parallel_mpileup_0_1_19a</requirement>
+        <requirement type="package" version="0.1.19">samtools</requirement>
+        <requirement type="package" version="2.3.6">varscan</requirement>
+    </requirements>
+    
+    <version_command>java -jar $JAVA_JAR_PATH/VarScan.v2.3.6.jar 2>&amp;1 | head -n 1</version_command>
+    
+    <command>
+        #if $reference_genome_source.source_select == "attribute" and len({ alignment.metadata.dbkey:True for alignment in $alignments }.keys()) != 1
+            echo "Invalid number of dbkeys are found: ${ len({ alignment.metadata.dbkey:True for alignment in $alignments }.keys()) }, while only one should be used. Make sure that the alignments are done on the same reference genome and that 'tool-data/all_fasta.loc' is configured properly!" >&amp;2
+        #else
+            #import os.path
+            #for $alignment in $alignments
+                <!-- @todo use the existence of $alignment.metadata.bam_index or $alignment.metadata['bam_index'] -->
+                #if not os.path.isfile(str($alignment)+".bai")
+                 echo "- Indexing alignment file: $alignment.name " ; 
+                 samtools index $alignment 2>&amp;1 ; 
+                #else
+                 echo "- Skiping indexing: $alignment.name " ; 
+                #end if
+            #end for
+            
+            #if $mpileup_parallelization.mpileup_parallelization_select == "true"
+                samtools-parallel-mpileup mpileup
+                -t $mpileup_parallelization.samtools_threads
+            #else
+                samtools mpileup
+            #end if
+                -f 
+                    #if $reference_genome_source.source_select == "indexed_filtered"
+                        "$reference_genome_source.reference_genome"
+                    #else if $reference_genome_source.source_select == "indexed_all"
+                        "$reference_genome_source.reference_genome"
+                    #else if $reference_genome_source.source_select == "history"
+                        "$reference_genome_source.reference_genome"
+                    #else
+                        <!--
+                            This is a workaround to obtain the "genome.fa" file that
+                            corresponds to the dbkey of the alignments.
+                            Because this file is "calculated" during run-time, it can
+                            be used in a workflow.
+                        -->
+                        "${ filter( lambda x: str( x[0] ) == str( { alignment.metadata.dbkey:True for alignment in $alignments }.keys()[0] ), $__app__.tool_data_tables[ 'all_fasta' ].get_fields() )[0][-1] }"
+                    #end if
+            
+            #if $extended_parameters_regions.samtools_regions == "region"
+                 -r $extended_parameters_regions.samtools_r
+            #elif $extended_parameters_regions.samtools_regions == "regions_file_pos" or $extended_parameters_regions.samtools_regions == "regions_file_bed"
+                 -l $extended_parameters_regions.samtools_l
+            #end if
+            
+            #if $extended_parameters.parameters == "extended"
+                $extended_parameters.samtools_6
+                $extended_parameters.samtools_A
+                $extended_parameters.samtools_B
+                 -C $extended_parameters.samtools_C
+                 -d $extended_parameters.samtools_d
+                $extended_parameters.samtools_E
+                 -M $extended_parameters.samtools_M
+                $extended_parameters.samtools_R
+                 -q $extended_parameters.samtools_q
+                 -Q $extended_parameters.samtools_Q
+                
+                 -e $extended_parameters.samtools_e
+                 -F $extended_parameters.samtools_F
+                 -h $extended_parameters.samtools_h
+                $extended_parameters.samtools_I
+                 -L $extended_parameters.samtools_L
+                 -m $extended_parameters.samtools_m
+                 -o $extended_parameters.samtools_o
+                $extended_parameters.samtools_p
+                 -P $extended_parameters.samtools_P
+            #end if
+            
+            #for $alignment in $alignments
+                 ${alignment}
+            #end for
+             2>stderr_1.txt
+            
+            #if $mpileup_parallelization.mpileup_parallelization_select == "true"
+                #if $mpileup_parallelization.sort_mpileup
+                 | sort -k1,1V -k2,2g 
+                #end if
+            #end if
+            
+             | java
+                     -Xmx64G
+                     -jar \$JAVA_JAR_PATH/VarScan.v2.3.6.jar
+                         mpileup2indel
+             
+            #if $extended_parameters.parameters == "extended"
+                     --min-coverage     $extended_parameters.varscan_min_coverage
+                     --min-reads2       $extended_parameters.varscan_min_reads2
+                     --min-avg-qual     $extended_parameters.varscan_min_avg_qual
+                     --min-var-freq     $extended_parameters.varscan_min_var_freq
+                     --min-freq-for-hom $extended_parameters.varscan_min_freq_for_hom
+                     --p-value          $extended_parameters.varscan_p_value
+                                        $extended_parameters.varscan_strand_filter 
+                                        $extended_parameters.varscan_variants 
+            #end if
+            
+            #if $varscan_output == "vcf" or $varscan_output.value == "vcf"
+             --output-vcf 1 
+            #end if
+            
+             2>stderr_2.txt 
+             > $snv_output ;
+             
+             
+             echo "---------------[ mpileup generation ]---------------" ;
+             cat stderr_1.txt ;
+             echo "" ;
+             echo "---------------[ VarScan INDEL detect ]-------------" ;
+             cat stderr_2.txt ;
+             echo "" ;
+             echo "----------------------------------------------------" ;
+        #end if
+    </command>
+    
+    <inputs>
+        <param format="bam,sam" multiple="true" name="alignments" type="data" label="Alignment file(s)" help="Mapped reads in BAM or SAM format."/>
+        
+        <!-- Find out how to access the reference genome from the BAM file(s) -->
+        <conditional name="reference_genome_source">
+            <param name="source_select" type="select" label="Fasta Source">
+                <option value="indexed_filtered">Use a built-in index (which fits your reference)</option>
+                <option value="history">Use reference from the history</option>
+                <option value="indexed_all">Use a built-in index (entire list) - avoid this option if possible; only useful if you design a workflow</option>
+                <option value="attribute">Use a built-in index based on the 'metadata.dbkey' attribute; ideal in workflows</option>
+            </param>
+            <when value="history">
+                <param name="reference_genome" format="fasta" type="data" label="Reference Genome used during alignment (FASTA)" help="Reference genome (genome.fa) that corresponds to the *.bam file." />
+            </when>
+            <when value="indexed_filtered">
+                <param name="reference_genome" type="select" label="Reference Genome used during alignment (FASTA)" >
+                    <options from_data_table="all_fasta">
+                        <column name="name"  index="2"/>
+                        <column name="dbkey" index="1"/>
+                        <column name="value" index="3"/><!-- Value is the path of the fasta file -->
+                        <filter type="data_meta" ref="alignments" multiple="false" key="dbkey" column="1" />
+                        <validator type="no_options" message="No indexes are available for the selected input dataset" />
+                    </options>
+                </param>
+            </when>
+            <when value="indexed_all">
+                <param name="reference_genome" type="select" label="Reference Genome used during alignment (FASTA)" >
+                    <options from_data_table="all_fasta">
+                        <column name="name"  index="2"/>
+                        <column name="dbkey" index="1"/>
+                        <column name="value" index="3"/><!-- Value is the path of the fasta file -->
+                        <validator type="no_options" message="No indexes are available for the selected input dataset" />
+                    </options>
+                </param>
+            </when>
+            <when value="attribute" />
+        </conditional>
+        
+        <conditional name="extended_parameters_regions">
+            <param name="samtools_regions" type="select" label="Region specific parameters" help="Let samtools target specific genomic locations.">
+                <option value="entire_genome">Entire genome</option>
+                <option value="region">Specific region</option>
+                <option value="regions_file_pos">Specific positions (file); list of positions</option>
+                <option value="regions_file_bed">Specific regions (file); list of regions in BED</option>
+            </param>
+            <when value="entire_genome" />
+            <when value="region">
+                <param type="text" name="samtools_r" label="Samtools: region in which pileup is generated" help="e.g. chrX or chr:pos or chr:start-end" />
+            </when>
+            <when value="regions_file_pos">
+                <param type="data" name="samtools_l" format="tabular" label="Samtools: list of positions (chr pos)" />
+            </when>
+            <when value="regions_file_bed">
+                <param type="data" name="samtools_l" format="bed"     label="Samtools: specific regions (BED)" />
+            </when>
+        </conditional>
+        
+        <conditional name="mpileup_parallelization">
+            <param name="mpileup_parallelization_select" type="select" label="Use parallelization for the mpileup generation (experimental)" help="Especially if larger numbers of bam/sam files are processed, or the file infrastructure is optimized for IO-paralellization, this feature might improve performance.">
+                <option value="false" >False - uses classical samtools</option>
+                <option value="true">True - uses (experimental) samtools mpileup-parallel</option>
+            </param>
+            <when value="false" />
+            <when value="true">
+                <param type="integer" name="samtools_threads" value="2" min="1" label="Samtools: mpileup threads" />
+                <param type="boolean" name="sort_mpileup" truevalue="true" falsevalue="false" label="Sort mpileup file (SLOW)" help="Because parallelization may disrupt the outputs order, sorting can be conveniet for e.g. testing. Notice that this function has only use in a limited number of situations but consumes (much) resources. Only use it if it's really neccesairy." />
+            </when>
+        </conditional>
+        
+        <conditional name="extended_parameters">
+            <param name="parameters" type="select" label="Advanced parameters" help="For more advanced VarScan and samtools settings.">
+                <option value="default">Default settings</option>
+                <option value="extended">Extended settings</option>
+            </param>
+            <when value="default" />
+            <when value="extended">
+                <param type="boolean" name="samtools_6" falsevalue="" truevalue=" -6" label="Samtools: assume the quality is in the Illumina-1.3+ encoding" />
+                <param type="boolean" name="samtools_A" falsevalue="" truevalue=" -A" label="Samtools: count anomalous read pairs" />
+                <param type="boolean" name="samtools_B" falsevalue="" truevalue=" -B" label="Samtools: disable BAQ computation" />
+                <param type="integer" name="samtools_C" value="0"                     label="Samtools: parameter for adjusting mapQ; 0 to disable [0]" />
+                <param type="integer" name="samtools_d" value="250"                   label="Samtools: max per-BAM depth to avoid excessive memory usage [250]" />
+                <param type="boolean" name="samtools_E" falsevalue="" truevalue=" -E" label="Samtools: recalculate extended BAQ on the fly thus ignoring existing BQs" />
+                <param type="integer" name="samtools_M" value="60"                    label="cap mapping quality at INT [60]" />
+                <param type="boolean" name="samtools_R" falsevalue="" truevalue=" -R" label="Samtools: ignore RG tags" />
+                <param type="integer" name="samtools_q" value="0"                     label="Samtools: skip alignments with mapQ smaller than INT [0]" />
+                <param type="integer" name="samtools_Q" value="13"                    label="Samtools: skip bases with baseQ/BAQ smaller than INT [13]" />
+                
+                <param type="integer" name="samtools_e" value="20"                    label="Samtools: Phred-scaled gap extension seq error probability [20]" />
+                <param type="float"   name="samtools_F" value="0.002"                 label="Samtools: minimum fraction of gapped reads for candidates [0.002]" help="Alias: -F" />
+                <param type="integer" name="samtools_h" value="100"                   label="Samtools: coefficient for homopolymer errors [100]" />
+                <param type="boolean" name="samtools_I" falsevalue="" truevalue=" -I" label="Samtools: do not perform indel calling" />
+                <param type="integer" name="samtools_L" value="250"                   label="Samtools: max per-sample depth for INDEL calling [250]" />
+                <param type="integer" name="samtools_m" value="1"                     label="Samtools: minimum gapped reads for indel candidates [1]" help="Alias: -m" />
+                <param type="integer" name="samtools_o" value="40"                    label="Samtools: Phred-scaled gap open sequencing error probability [40]" />
+                <param type="boolean" name="samtools_p" falsevalue="" truevalue=" -p" label="Samtools: apply -m and -F per-sample to increase sensitivity" />
+                <param type="text"    name="samtools_P" value="all"                   label="Samtools: comma separated list of platforms for indels [all]" />
+                
+                <param type="integer" name="varscan_min_coverage"     value="8"       label="VarScan: Minimum read depth at a position to make a call [8]" />
+                <param type="integer" name="varscan_min_reads2"	      value="2"       label="VarScan: PMinimum supporting reads at a position to call variants [2]" />
+                <param type="integer" name="varscan_min_avg_qual"     value="15"      label="VarScan: Minimum base quality at a position to count a read [15]" />
+                <param type="float"   name="varscan_min_var_freq"     value="0.01"    label="VarScan: minimum fraction of gapped reads for candidates [0.002]" help="Alias: -F" />
+                <param type="float"   name="varscan_min_freq_for_hom" value="0.75"    label="VarScan: Minimum frequency to call homozygote [0.75]" />
+                <param type="float"   name="varscan_p_value"          value="0.99"    label="VarScan: Default p-value threshold for calling variants [99e-02]" />
+                <param type="boolean" name="varscan_strand_filter"    falsevalue=" --strand_filter 0" truevalue=" --strand_filter 1" checked="true"  label="VarScan: Ignore variants with >90% support on one strand [1]" />
+                <param type="boolean" name="varscan_variants"         falsevalue=" --variants 0"      truevalue=" --variants 1"      checked="false" label="VarScan: Report only variant (SNP/indel) positions [0]" />
+            </when>
+        </conditional>
+        
+        <param name="varscan_output" type="select" label="Output format">
+            <option value="vcf">VCF</option>
+            <option value="tabular">tabular</option>
+        </param>
+    </inputs>
+    
+    <outputs>
+        <data format="tabular" name="snv_output" label="${tool.name} on ${', '.join([ str(a.hid)+': '+a.name for a in $alignments ])}">
+            <change_format>
+                <when input="varscan_output" value="vcf" format="vcf" />
+            </change_format>
+        </data>
+    </outputs>
+    
+    <tests>
+        <test><!-- Use classical samtools -->
+            <param name="alignments" value="example.bam" ftype="bam" />
+            
+            <param name="source_select" value="history" />
+            <param name="reference_genome" value="example.fa" ftype="fasta" />
+
+            <param name="samtools_regions" value="entire_genome" />
+            
+            <param name="mpileup_parallelization_select" value="false" />
+            <param name="sort_mpileup" value="true" />
+            
+            <param name="parameters" value="default" />
+            <param name="varscan_output_vcf" value="1" />
+            
+            
+            <output name="snv_output" file="example.vcf" />
+        </test>
+        <test><!-- Use parallelized samtools -->
+            <param name="alignments" value="example.bam" ftype="bam" />
+            
+            <param name="source_select" value="history" />
+            <param name="reference_genome" value="example.fa" ftype="fasta" />
+            
+            <param name="samtools_regions" value="entire_genome" />
+            
+            <param name="mpileup_parallelization_select" value="true" />
+            <param name="samtools_threads" value="2" />
+            <param name="sort_mpileup" value="true" />
+            
+            <param name="parameters" value="default" />
+            <param name="varscan_output_vcf" value="1" />
+            
+            
+            <output name="snv_output" file="example.vcf" />
+        </test>
+    </tests>
+    
+    <help>
 **VarScan 2.3.6**
 
 VarScan is a platform-independent mutation caller for targeted, exome, and whole-genome resequencing data generated on Illumina, SOLiD, Life/PGM, Roche/454, and similar instruments. The newest version, VarScan 2, is written in Java, so it runs on most operating systems.
@@ -304,12 +312,23 @@
 * parallel-mpileup: MIT License (https://github.com/mydatascience/parallel-mpileup/blob/master/samtools-0.1.19/COPYING)
 
 
-**Contact**
+Contact
+-------
 
-The tool wrapper has been written by Youri Hoogstrate from the Erasmus Medical Center (Rotterdam, Netherlands) on behalf of the Translational Research IT (TraIT) project:
+The tool wrapper has been written by Youri Hoogstrate from the Erasmus
+Medical Center (Rotterdam, Netherlands) on behalf of the Translational
+Research IT (TraIT) project:
+
 http://www.ctmm.nl/en/programmas/infrastructuren/traitprojecttranslationeleresearch
 
-More tools by the Translational Research IT (TraIT) project can be found in the following repository:
-http://toolshed.dtls.nl/
-</help>
+More tools by the Translational Research IT (TraIT) project can be found
+in the following toolsheds:
+
+http://toolshed.g2.bx.psu.edu/
+
+http://testtoolshed.g2.bx.psu.edu/
+    </help>
+    <citations>
+        <citation type="doi">10.1101/gr.129684.111</citation>
+    </citations>
 </tool>
\ No newline at end of file