view varscan_mpileup2snp.xml @ 51:11292b6c3c6c draft

Uploaded
author yhoogstrate
date Wed, 05 Mar 2014 08:47:37 -0500
parents 48c78adade03
children b2dc8ab51a79
line wrap: on
line source

<?xml version="1.0" encoding="UTF-8"?>
<tool id="varscan_mpileup2snp" name="VarScan2 Call SNPs from mpileup file(s)">
	<description>VarScan2 SNP/SNV detection; directly reading *.mpileup file(s).</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
					 mpileup2snp
		 
		#if $extended_parameters.parameters == "extended"
				 --min-coverage	 $varscan_min_coverage
				 --min-reads2	   $varscan_min_reads2
				 --min-avg-qual	 $varscan_min_avg_qual
				 --min-var-freq	 $varscan_min_var_freq
				 --min-freq-for-hom $varscan_min_freq_for_hom
				 --p-value		  $varscan_p_value
				$varscan_strand_filter
				$varscan_output_vcf
				$varscan_variants
		#end if
		
		 --output-vcf $varscan_output_vcf
		 > $snv_output
		 2> &amp;1
	</command>
	
	<inputs>
		<param format="mpileup" name="mpileup_input" type="data" label="Alignment file" help="Mapped reads in BAM or SAM format."/>
		
		<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 type="boolean" name="varscan_output_vcf" falsevalue="0" truevalue="1"  label="VarScan: If set to 1, outputs in VCF format" />
	</inputs>
	
	<outputs>
		<data format="tabular" name="snv_output" label="${tool.name} on ${mpileup_input.hid}: ${mpileup_input.name}">
			<change_format>
				<when input="varscan_output_vcf" value="1" format="vcf" />
			</change_format>
		</data>
	</outputs>
	
	<tests>
		<test>
			<param name="mpileup_input" value="hg19_mutant.mpileup" dbkey="hg19" ftype="bam" />
			<param name="extended_parameters.parameters" value="default" />
			<param name="varscan_output_vcf" value="1" />
			
			<output name="snv_output" file="hg19_mutant.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.
http://dx.doi.org/10.1101/gr.129684.111
http://www.ncbi.nlm.nih.gov/pubmed/19542151

*VarScan* requires mpileup formatted input files, which are generally derived from BAM files. Since mpileup files can become humongous, the interim step of storing it is bypassed. Thus, in this wrapper one or multiple BAM/SAM files go in, get processed into a mpileup file and get directly linked to VarScan.
The samtools package is not able to parallelize the mpileup generation which make it a very slow process.
Other people were aware of this and have written a version that can do parallelization:
https://github.com/mydatascience/parallel-mpileup

Consequently, when a BAM files gets processed by this wrapper, it's processed by *parallel-mpileup* before its send to VarScan.

.. _VarScan: http://varscan.sourceforge.net/

**Input formats**

VarScan2 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**

Make sure your reference genomes are properly annotated in "tool-data/all_fasta.loc", and linked to the names of the reference used for alignment.

**License**

* 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**

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>