view snap_caller.xml @ 0:7da2c9654a83 draft default tip

Uploaded
author wolma
date Tue, 12 Aug 2014 11:26:15 -0400
parents
children
line wrap: on
line source

<tool id="snap_caller" name="SNAP Read Alignment">
  <description>Map sequence reads to a reference genome using SNAP</description>
  <requirements>
    <requirement type="package" version="3.4.1">python3</requirement>
    <requirement type="package" version="0.1.3_9af04e0e9125">MiModD</requirement>
  </requirements>
  <command> 
	mimodd snap_batch -s
	## SNAP calls (considering different cases)

	#for $i in $datasets
		"snap ${i.mode_choose.mode} $ref_genome
		#if $str($i.mode_choose.mode) == "paired" and $str($i.mode_choose.input.iformat) in ("fastq", "gz"):
${i.mode_choose.input.ifile1} ${i.mode_choose.input.ifile2}
		#else:
${i.mode_choose.input.ifile}
		#end if
--outputfile $outputfile --iformat ${i.mode_choose.input.iformat} --oformat $oformat
--idx_seedsize $set.seedsize
--idx_slack $set.slack --maxseeds $set.maxseeds --maxhits $set.maxhits --clipping=$set.clipping --maxdist $set.maxdist --confdiff $set.confdiff
		#if $i.mode_choose.input.header:
--header ${i.mode_choose.input.header}
		#end if
		#if $str($i.mode_choose.mode) == "paired":
--spacing $set.sp_min $set.sp_max
		#end if
		#if $str($set.selectivity) != "off":
--selectivity $set.selectivity
		#end if
		#if $str($set.filter_output) != "off":
--filter_output $set.filter_output
		#end if
		#if $str($set.sort) != "off":
--sort $set.sort
		#end if
		#if $str($set.mmatch_notation) == "general":
-M
		#end if
--max_mate_overlap $set.max_mate_overlap
--verbose
"							
	#end for
  </command>

  <inputs>
    ## mandatory arguments (and mode-conditionals)

    <param name="ref_genome" type="data" format="fasta" label="reference genome" help="The fasta reference genome that SNAP should align reads against; a SNAP index will be built by the tool automatically."/>
    
    <repeat name="datasets" title="datasets" default="1" min="1">    
        <conditional name="mode_choose">
            <param name="mode" type="select" label="choose mode" help="Reads obtained from single-end sequencing runs should be aligned in 'single' mode, paired-end reads in 'paired' mode. **WARNING**: if the read input file is in SAM/BAM format, the current version of this tool will **not** verify the mode and may produce erroneous alignments with wrong settings!">
	        <option value="single">single-end</option>
	        <option value="paired">paired-end</option>
            </param>
      
        <when value="single">
	    <conditional name="input">
                <param name="iformat" type="select" label="input file format">
                    <option value="bam">BAM</option>
                    <option value="sam">SAM</option>
                    <option value="gz">gz</option>
		    <option value="fastq">fastq</option>
	        </param>
	        <when value="bam">
		    <param name="ifile" type="data" format="bam" label="input file"/>
                    <param name="header" type="data" optional="true" format="sam" label="custom header file" />
	        </when>
	        <when value="sam">
		    <param name="ifile" type="data" format="sam" label="input file"/>
                    <param name="header" type="data" optional="true" format="sam" label="custom header file" />
	        </when>            
	        <when value="gz">
		    <param name="ifile" type="data" label="input file"/>
		    <param name="header" type="data" format="sam" label="header file" />
		</when>
	        <when value="fastq">
		    <param name="ifile" type="data" format="fastq" label="input file"/>
		    <param name="header" type="data" format="sam" label="header file" />
		</when>
            </conditional>
        </when>
        <when value="paired">	
	    <conditional name="input">
                <param name="iformat" type="select" label="input file format">
                    <option value="bam">BAM</option>
                    <option value="sam">SAM</option>
		    <option value="gz">gz</option>
                    <option value="fastq">fastq</option>
	        </param>
                <when value="bam">
		    <param name="ifile" type="data" format="bam" label="input file"/>
                    <param name="header" type="data" optional="true" format="sam" label="custom header file" />
		</when>
                <when value="sam">
		    <param name="ifile" type="data" format="sam" label="input file"/>
		    <param name="header" type="data" optional="true" format="sam" label="custom header file" />
                </when>
 	        <when value="fastq">
		    <param name="ifile1" type="data" format="fastq" label="input file 1"/>
	            <param name="ifile2" type="data" format="fastq" label="input file 2"/>
		    <param name="header" type="data" format="sam" label="header file" />
		</when>
	        <when value="gz">
		    <param name="ifile1" type="data" label="input file 1"/>
	            <param name="ifile2" type="data" label="input file 2"/>
		    <param name="header" type="data" format="sam" label="header file" />
		</when>
            </conditional>
	</when>
        </conditional>
    </repeat>

    <param name="oformat" type="select" label="output file format">
        <option value="bam">BAM</option>
        <option value="sam">SAM</option>
    </param>	
    
    ## optional arguments

    <conditional name="set">
        <param name="settings_mode" type="select" label="further parameter settings" help="This section lets you specify the detailed parameter settings for the SNAP aligner. Only change them if you know what you are doing, i.e., read the SNAP manual first.">
            <option value="default">default settings</option>
	    <option value="change">change settings</option>
        </param>

      ## default settings   
  
        <when value="default">
	    <param name="seedsize" type="hidden" value="20"/>
    	    <param name="slack" type="hidden" value="0.3"/>
    	    <param name="sp_min" type="hidden" value="100"/>
	    <param name="sp_max" type="hidden" value="10000"/>
    	    <param name="maxdist" type="hidden" value="8"/>
	    <param name="confdiff" type="hidden" value="2"/>  
	    
	    <param name="maxseeds" type="hidden" value="25"/>
	    <param name="maxhits" type="hidden" value="250"/>
	    <param name="clipping" type="hidden" value="++"/>

	    <param name="selectivity" type="hidden" value="off"/>
	    <param name="filter_output" type="hidden" value="off"/>
	    <param name="sort" type="hidden" value="0"/>
	    <param name="mmatch_notation" type="hidden" value="general"/>
	    <param name="max_mate_overlap" type="hidden" value="0" />
        </when>
      
      ## change settings

        <when value="change">
	    <param name="seedsize" type="integer" value="20" label="seed size (default: 20)" help="Length of the seeds used in the reference genome hash table (SNAP index option -s)."/>
    	    <param name="slack" type="float" value="0.3" label="hash table slack size (default: 0.3)" help="Corresponds to the -h option of SNAP index."/>	

      ## paired-end specific options
    	    <param name="sp_min" type="integer" value="100" label="minimum spacing to allow between paired ends (default: 100)" help="Corresponds to the first value of the SNAP option -s."/>
	    <param name="sp_max" type="integer" value="10000" label="maximum spacing to allow between paired ends (default: 10000)" help="Corresponds to the second value of the SNAP option -s."/>
	    <param name="max_mate_overlap" type="float" value="0" label="Maximal overlap between the reads in a pair (as a fraction of their combined length; default: 0, no overlap allowed)" help="If the reads of a read pair overlap by more than this fraction of their combined length, they are filtered out" />

    	    <param name="maxdist" type="integer" value="8" label="edit distance (default: 8)" help="maximum edit distance allowed per read or pair (SNAP option -d); higher values allow more divergent alignments to be found, but increase the rate of misalignments."/>
	    <param name="confdiff" type="integer" value="2" label="confidence threshold (default: 2)" help="Confidence threshold (SNAP option -c); the minimum edit distance difference between two alternate alignments required to reject the poorer alignment as suboptimal; higher values increase the rate of ambiguously aligned reads."/>  
    	    <param name="maxseeds" type="integer" value="25" label="maximum seeds per read (default: 25)" help="Number of seeds to use per read (SNAP option -n) when trying to match it to the reference genome; higher numbers will increase the rate of aligned reads and reduce the rate of misalignments, but will reduce performance."/>
	    <param name="maxhits" type="integer" value="250" label="maximum hits per seed (default: 250)" help="Maximum hits to consider per seed (SNAP option -h); don't use a seed region in the alignment process if it matches more than maxhits regions in the reference genome. Higher values reduce the rate of misalignments, but reduce performance."/>
	    <param name="clipping" type="select" label="read clipping (default: from back and front)" help="Specifies from which end of a read low-quality bases should be clipped (SNAP option -Cxx)">
	        <option value="++">from back and front</option>
	        <option value="-+">from back only</option>
	        <option value="+-">from front only</option>
	        <option value="--">no clipping</option>
	    </param>
	    <param name="selectivity" type="integer" value="1" label="selectivity (default: 1)" help="randomly choose 1/selectivity of the reads to score (SNAP option -S). The tool uses the default of 1 (or a 0 setting) to indicate that all reads should be worked with." />
	    <param name="filter_output" type="select" label="filter output (default: no filtering)" help="filter output (SNAP option -F for certain classes of reads.">
	        <option value="off">no filtering</option>
	        <option value="a">aligned only</option>
	        <option value="s">single-aligned only</option>
	        <option value="u">unaligned only</option>
	    </param>
	    <param name="sort" type="select" label="output sorting (default: sort by read coordinates)" help="Sort the output file by alignment location (SNAP option --so).">
	        <option value="0">sort by read coordinates</option>	  
	        <option value="off">no sorting</option>
	    </param>
	    <param name="mmatch_notation" type="select" label="CIGAR symbols for alignment matches/mismatches (default: M notation)" help="Indicates whether CIGAR strings in the generated SAM/BAM file should use M (alignment match) rather than = and X (sequence (mis-)match). Warning: Downstream variant calling based on samtools currently relies on the old-style M notation!!" >
	        <option value="general">use M for both matches and mismatches</option>
	        <option value="differentiate">use = for matches, X for mismatches</option>
	    </param>
        </when>
    </conditional>
</inputs>

<outputs>
    <data name="outputfile" format="bam" label="Aligned reads from MiModd ${tool.name} on ${on_string}">
        <change_format>
	    <when input="oformat" value="sam" format="sam"/>
	</change_format>
    </data>
</outputs>

<help>
.. class:: infomark

   **What it does**

The tool aligns the sequenced reads in an arbitrary number of input files against a common reference genome and stores the results in a single, possibly multi-sample output file.

It does so by using the ultrafast, hashtable-based aligner SNAP, but unless you want to change aligner-specific options you do not have to know anything about this implementation detail.

**Notes:**

1) The tool requires that each input file contains adequate header information (i.e. metadata about the read groups and samples it encodes). The *custom header file* is offered as an **optional choice** for input files that **may** contain such header information, but you **must** specify it if your specific file does not provide the information. You **can** also provide a header file for an input file with header information, in which case the custom header will overwrite the existing header of the input file.

2) Currently, you cannot configure aligner-specific options separately for specific input files from within this Galaxy tool. If you need this advanced level of control, you should use the command line tool ``mimodd snap_batch``.

</help>
</tool>