changeset 7:0ad9733e22a4

Uploaded
author bgruening
date Fri, 29 Nov 2013 09:27:22 -0500
parents eb394dd65c98
children aecbd8878923
files lib/galaxy/datatypes/snpeff.pyc snpEff.xml snpEff_download.xml snpEff_macros.xml snpSift_annotate.xml snpSift_caseControl.xml snpSift_filter.xml snpSift_int.xml
diffstat 8 files changed, 335 insertions(+), 345 deletions(-) [+]
line wrap: on
line diff
Binary file lib/galaxy/datatypes/snpeff.pyc has changed
--- a/snpEff.xml	Thu Nov 28 08:16:11 2013 -0600
+++ b/snpEff.xml	Fri Nov 29 09:27:22 2013 -0500
@@ -1,72 +1,73 @@
 <tool id="snpEff" name="SnpEff" version="3.4">
     <description>Variant effect and annotation</description>
-    <requirements>
-        <requirement type="package" version="3.4">snpEff</requirement>
-    </requirements>
+    <expand macro="requirements" />
+    <macros>
+        <import>snpEff_macros.xml</import>
+    </macros>
     <command>
-java -Xmx6G -jar \$SNPEFF_JAR_PATH/snpEff.jar eff 
--c \$SNPEFF_JAR_PATH/snpEff.config 
--i $inputFormat -o $outputFormat -upDownStreamLen $udLength 
-#if $spliceSiteSize and $spliceSiteSize.__str__ != '':
-  -spliceSiteSize $spliceSiteSize
-#end if
-#if $filterIn and $filterIn.__str__ != 'no_filter':
-  $filterIn 
-#end if
-#if $filterHomHet and $filterHomHet.__str__ != 'no_filter':
-  $filterHomHet 
-#end if
-#if $annotations and $annotations.__str__ != '':
-  #echo " "
-  #echo ' '.join($annotations.__str__.split(','))
-#end if
-#if $filterOut and $filterOut.__str__ != '':
-  #echo " "
-  #echo ' '.join($filterOut.__str__.split(','))
-#end if
-#if str( $transcripts ) != 'None':
-  -onlyTr $transcripts
-#end if
-#if str( $intervals ) != 'None':     ### fix this for multiple dataset input
-  -interval $intervals
-#end if
-#if $statsFile:
-  -stats $statsFile 
-#end if
-#if $offset.__str__ != '':
-  ${offset} 
-#end if
-#if $chr.__str__.strip() != '':
-  -chr "$chr" 
-#end if
-  $noLog 
-#if $snpDb.genomeSrc == 'cached':
-  -dataDir ${snpDb.genomeVersion.fields.path}
-  #if $snpDb.extra_annotations and $snpDb.extra_annotations.__str__ != '':
-    #echo " "
-    #echo ' '.join($snpDb.extra_annotations.__str__.split(','))
-  #end if
-  #if $snpDb.regulation and $snpDb.regulation.__str__ != '':
-    -reg #echo ' -reg '.join($snpDb.regulation.__str__.split(','))#
-  #end if
-  $snpDb.genomeVersion
-#elif $snpDb.genomeSrc == 'history':
-  -dataDir ${snpDb.snpeff_db.extra_files_path}
-  #if $snpDb.extra_annotations and $snpDb.extra_annotations.__str__ != '':
-    #set annotations = [' '] + $snpDb.extra_annotations.__str__.split(',')
-    #echo " "
-    #echo ' -'.join($annotations)
-  #end if
-  #if $snpDb.regulation and $snpDb.regulation.__str__ != '':
-    -reg #echo ' -reg '.join($snpDb.regulation.__str__.split(','))#
-  #end if
-  ${snpDb.snpeff_db.metadata.genome_version}
-#else 
-  -download
-  $snpDb.genome_version
-#end if
-$input > $snpeff_output 
-</command>
+        java -Xmx6G -jar \$SNPEFF_JAR_PATH/snpEff.jar eff 
+        -c \$SNPEFF_JAR_PATH/snpEff.config 
+        -i $inputFormat -o $outputFormat -upDownStreamLen $udLength 
+        #if $spliceSiteSize and $spliceSiteSize.__str__ != '':
+          -spliceSiteSize $spliceSiteSize
+        #end if
+        #if $filterIn and $filterIn.__str__ != 'no_filter':
+          $filterIn 
+        #end if
+        #if $filterHomHet and $filterHomHet.__str__ != 'no_filter':
+          $filterHomHet 
+        #end if
+        #if $annotations and $annotations.__str__ != '':
+          #echo " "
+          #echo ' '.join($annotations.__str__.split(','))
+        #end if
+        #if $filterOut and $filterOut.__str__ != '':
+          #echo " "
+          #echo ' '.join($filterOut.__str__.split(','))
+        #end if
+        #if str( $transcripts ) != 'None':
+          -onlyTr $transcripts
+        #end if
+        #if str( $intervals ) != 'None':     ### fix this for multiple dataset input
+          -interval $intervals
+        #end if
+        #if $statsFile:
+          -stats $statsFile 
+        #end if
+        #if $offset.__str__ != '':
+          ${offset} 
+        #end if
+        #if $chr.__str__.strip() != '':
+          -chr "$chr" 
+        #end if
+          $noLog 
+        #if $snpDb.genomeSrc == 'cached':
+          -dataDir ${snpDb.genomeVersion.fields.path}
+          #if $snpDb.extra_annotations and $snpDb.extra_annotations.__str__ != '':
+            #echo " "
+            #echo ' '.join($snpDb.extra_annotations.__str__.split(','))
+          #end if
+          #if $snpDb.regulation and $snpDb.regulation.__str__ != '':
+            -reg #echo ' -reg '.join($snpDb.regulation.__str__.split(','))#
+          #end if
+          $snpDb.genomeVersion
+        #elif $snpDb.genomeSrc == 'history':
+          -dataDir ${snpDb.snpeff_db.extra_files_path}
+          #if $snpDb.extra_annotations and $snpDb.extra_annotations.__str__ != '':
+            #set annotations = [' '] + $snpDb.extra_annotations.__str__.split(',')
+            #echo " "
+            #echo ' -'.join($annotations)
+          #end if
+          #if $snpDb.regulation and $snpDb.regulation.__str__ != '':
+            -reg #echo ' -reg '.join($snpDb.regulation.__str__.split(','))#
+          #end if
+          ${snpDb.snpeff_db.metadata.genome_version}
+        #else 
+          -download
+          $snpDb.genome_version
+        #end if
+        $input > $snpeff_output 
+    </command>
     <inputs>
         <param format="vcf,tabular,pileup,bed" name="input" type="data" label="Sequence changes (SNPs, MNPs, InDels)"/>
 
@@ -85,10 +86,10 @@
         </param>
 
         <conditional name="snpDb">
-            <param name="genomeSrc" type="select" label="">
-                <option value="cached">Locally cached</option>
-                <option value="history">history</option>
-                <option value="named">named on demand</option>
+            <param name="genomeSrc" type="select" label="Genome source">
+                <option value="cached">Locally installed reference genome</option>
+                <option value="history">Reference genome from your history</option>
+                <option value="named">Named on demand</option>
             </param>
             <when value="cached">
                 <param name="genomeVersion" type="select" label="Genome">
@@ -142,7 +143,7 @@
             <option value="20000">20000 bases</option>
         </param>
 
-        <param name="spliceSiteSize" type="select" optional="true" label="Set size for splice sites (donor and acceptor) in bases. Default: 2">
+        <param name="spliceSiteSize" type="select" optional="true" label="Set size for splice sites (donor and acceptor) in bases" help="Default: 2">
             <option value="1">1 base</option>
             <option value="2">2 bases</option>
             <option value="3">3 bases</option>
@@ -170,23 +171,23 @@
         </param>
 
         <param name="annotations" type="select" display="checkboxes" multiple="true" label="Annotation options">
-            <option value="-cancer">Perform 'cancer' comparissons (Somatic vs Germline). Default: false</option>
-            <option value="-canon">Only use canonical transcripts.</option>
-            <option value="-geneId">Use gene ID instead of gene name (VCF output). Default: false</option>
-            <option value="-hgvs">Use HGVS annotations for amino acid sub-field. Default: false</option>
-            <option value="-lof">Add loss of function (LOF) and Nonsense mediated decay (NMD) tags.</option>
-            <option value="-oicr">Add OICR tag in VCF file. Default: false</option>
-            <option value="-onlyReg">Only use regulation tracks.</option>
-            <option value="-sequenceOntolgy">Use Sequence Ontolgy terms. Default: false</option>
+            <option value="-cancer">Perform 'cancer' comparissons (Somatic vs Germline)</option>
+            <option value="-canon" selected="true">Only use canonical transcripts</option>
+            <option value="-geneId">Use gene ID instead of gene name (VCF output)</option>
+            <option value="-hgvs">Use HGVS annotations for amino acid sub-field</option>
+            <option value="-lof" selected="true">Add loss of function (LOF) and Nonsense mediated decay (NMD) tags</option>
+            <option value="-oicr">Add OICR tag in VCF file</option>
+            <option value="-onlyReg" selected="true">Only use regulation tracks</option>
+            <option value="-sequenceOntolgy">Use Sequence Ontolgy terms.</option>
         </param>
         <param name="intervals" format="bed" type="data" optional="true" label="Use custom interval file for annotation"/>
-        <param name="transcripts" format="tabular" type="data" optional="true" label="Only use the transcripts in this file. Format: One transcript ID per line."/>
+        <param name="transcripts" format="tabular" type="data" optional="true" label="Only use the transcripts in this file." help="Format is one transcript ID per line."/>
         <param name="filterOut" type="select" display="checkboxes" multiple="true" label="Filter output">
-            <option value="-no-downstream">Do not show DOWNSTREAM changes </option>
-            <option value="-no-intergenic">Do not show INTERGENIC changes </option>
-            <option value="-no-intron">Do not show INTRON changes </option>
-            <option value="-no-upstream">Do not show UPSTREAM changes </option>
-            <option value="-no-utr">Do not show 5_PRIME_UTR or 3_PRIME_UTR changes </option>
+            <option value="-no-downstream">Do not show DOWNSTREAM changes</option>
+            <option value="-no-intergenic">Do not show INTERGENIC changes</option>
+            <option value="-no-intron">Do not show INTRON changes</option>
+            <option value="-no-upstream">Do not show UPSTREAM changes</option>
+            <option value="-no-utr">Do not show 5_PRIME_UTR or 3_PRIME_UTR changes</option>
         </param>
 
         <param name="offset" type="select" display="radio" optional="true" label="Chromosomal position">
@@ -195,12 +196,11 @@
             <option value="-1">Force one-based positions (both input and output)</option>
         </param>
         <param name="chr" type="text" optionl="true" label="Text to prepend to chromosome name">
-              <help>
-               By default SnpEff simplifies all chromosome names. For instance 'chr1' is just '1'.  
-               You can prepend any string you want to the chromosome name."
-              </help>
-                       <validator type="regex" message="No whitespace allows">^\S*$</validator>
-
+            <help>
+               By default SnpEff simplifies all chromosome names. For instance 'chr1' is just '1'.
+               You can prepend any string you want to the chromosome name.
+            </help>
+            <validator type="regex" message="No whitespace allowed">^\S*$</validator>
         </param>
         <param name="generate_stats" type="boolean" truevalue="" falsevalue="-noStats" checked="true" label="Produce Summary Stats"/>
         <param name="noLog" type="boolean" truevalue="-noLog" falsevalue="" checked="true" label="Do not report usage statistics to server"/>
@@ -214,15 +214,11 @@
                 <when input="outputFormat" value="bedAnn" format="bed" />
             </change_format>
         </data>
-        
         <data format="html" name="statsFile">
             <filter>generate_stats == True</filter>
         </data>
     </outputs>
-    <stdio>
-      <exit_code range="1:"  level="fatal"   description="Error" />
-      <exit_code range="-1"  level="fatal"   description="Error: Cannot open file" />
-    </stdio>
+    <expand macro="stdio" />
     <tests>
         <!-- Check that an effect was added in out VCF -->
         <!-- Check for a HTML header indicating that this was successful -->
@@ -323,13 +319,9 @@
 
 This tool calculate the effect of variants (SNPs/MNPs/Insertions) and deletions.
 
-For details about this tool, please go to http://snpEff.sourceforge.net
+@EXTERNAL_DOCUMENTATION@
 
-SnpEff citation:
-"A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff: SNPs in the genome of Drosophila melanogaster strain w1118; iso-2; iso-3.", Cingolani P, Platts A, Wang le L, Coon M, Nguyen T, Wang L, Land SJ, Lu X, Ruden DM. Fly (Austin). 2012 Apr-Jun;6(2):80-92. PMID: 22728672 [PubMed - in process]
-
-SnpSift citation:
-"Using Drosophila melanogaster as a model for genotoxic chemical mutational studies with a new program, SnpSift", Cingolani, P., et. al., Frontiers in Genetics, 3, 2012.
+@CITATION_SECTION@
 
     </help>
 </tool>
--- a/snpEff_download.xml	Thu Nov 28 08:16:11 2013 -0600
+++ b/snpEff_download.xml	Fri Nov 29 09:27:22 2013 -0500
@@ -1,14 +1,15 @@
 <tool id="snpEff_download" name="SnpEff Download" version="3.4">
     <description>Download a new database</description>
-    <requirements>
-        <requirement type="package" version="3.4">snpEff</requirement>
-    </requirements>
+    <expand macro="requirements" />
+    <macros>
+        <import>snpEff_macros.xml</import>
+    </macros>
     <command>
     echo $genomeVersion > $snpeff_db; 
     java -jar \$SNPEFF_JAR_PATH/snpEff.jar download -c \$SNPEFF_JAR_PATH/snpEff.config -dataDir $snpeff_db.extra_files_path -v $genomeVersion > $logfile 
     </command>
     <inputs>
-        <param name="genomeVersion" type="select" label="Genome Version">
+        <param name="genomeVersion" type="select" label="Select the genome version you want to download">
             <options from_data_table="snpeff_databases">
                 <filter type="sort_by" column="0" />
             </options>
@@ -18,18 +19,12 @@
         <data format="txt" name="logfile" />
         <data format="snpeffdb" name="snpeff_db" label="${genomeVersion}" />
     </outputs>
-    <stdio>
-        <exit_code range=":-1"  level="fatal"   description="Error: Cannot open file" />
-        <exit_code range="1:"  level="fatal"   description="Error" />
-     </stdio>
+    <expand macro="stdio" />
     <help>
 
-This tool downloads a SnpEff database into the users history for use by snpEff.
+@EXTERNAL_DOCUMENTATION@
 
-For details about this tool, please go to http://snpEff.sourceforge.net
-
-Please cite:
-"A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff: SNPs in the genome of Drosophila melanogaster strain w1118; iso-2; iso-3.", Cingolani P, Platts A, Wang le L, Coon M, Nguyen T, Wang L, Land SJ, Lu X, Ruden DM. Fly (Austin). 2012 Apr-Jun;6(2):80-92. PMID: 22728672 [PubMed - in process]
+@CITATION_SECTION@
 
     </help>
 </tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/snpEff_macros.xml	Fri Nov 29 09:27:22 2013 -0500
@@ -0,0 +1,45 @@
+<macros>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="3.4">snpEff</requirement>
+        </requirements>
+    </xml>
+  <xml name="stdio">
+    <conditional name="analysis_param_type">
+      <param name="analysis_param_type_selector" type="select" label="Basic or Advanced Analysis options">
+        <option value="basic" selected="True">Basic</option>
+        <option value="advanced">Advanced</option>
+      </param>
+      <when value="basic">
+        <!-- Do nothing here -->
+      </when>
+      <when value="advanced">
+        <yield />
+      </when>
+    </conditional>
+  </xml>
+  <xml name="reference_source_selector_param">
+    <stdio>
+        <exit_code range=":-1"  level="fatal" description="Error: Cannot open file" />
+        <exit_code range="1:"  level="fatal" description="Error" />
+    </stdio>
+  </xml>
+  <token name="@EXTERNAL_DOCUMENTATION@">
+
+For details about this tool, please go to http://snpeff.sourceforge.net/SnpSift.html#intervals
+
+  </token>
+  <token name="@CITATION_SECTION@">------
+
+**Citation**
+
+For the underlying tool, please cite the following two publications:
+
+SnpEff citation:
+"A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff: SNPs in the genome of Drosophila melanogaster strain w1118; iso-2; iso-3.", Cingolani P, Platts A, Wang le L, Coon M, Nguyen T, Wang L, Land SJ, Lu X, Ruden DM. Fly (Austin). 2012 Apr-Jun;6(2):80-92. PMID: 22728672 [PubMed - in process]
+
+SnpSift citation:
+"Using Drosophila melanogaster as a model for genotoxic chemical mutational studies with a new program, SnpSift", Cingolani, P., et. al., Frontiers in Genetics, 3, 2012.
+
+  </token>
+</macros>
--- a/snpSift_annotate.xml	Thu Nov 28 08:16:11 2013 -0600
+++ b/snpSift_annotate.xml	Fri Nov 29 09:27:22 2013 -0500
@@ -1,13 +1,13 @@
 <tool id="snpSift_annotate" name="SnpSift Annotate" version="3.4">
-	<description>Annotate SNPs from dbSnp</description>
-	<!-- 
-	    You will need to change the path to wherever your installation is.
-		You can change the amount of memory used, just change the -Xmx parameter (e.g. use -Xmx2G for 2Gb of memory)
-	-->
-	<requirements>
-                <requirement type="package" version="3.4">snpEff</requirement>
-	</requirements>
-	<command>
+    <description>SNPs from dbSnp</description>
+    <!-- 
+        You can change the amount of memory used, just change the -Xmx parameter (e.g. use -Xmx2G for 2Gb of memory)
+    -->
+    <expand macro="requirements" />
+    <macros>
+        <import>snpEff_macros.xml</import>
+    </macros>
+    <command>
         java -Xmx6G -jar \$SNPEFF_JAR_PATH/SnpSift.jar $annotate_cmd 
         #if $annotate.id :
           -id
@@ -15,55 +15,49 @@
           -info "$annotate.info_ids"
         #end if          
         -q $dbSnp $input > $output 
-        </command>
-	<inputs>
-		<param format="vcf" name="input" type="data" label="VCF input"/>
-		<param format="vcf" name="dbSnp" type="data" label="VCF File with ID field annotated (e.g. dnSNP.vcf)" 
-                       help="The ID field for a variant in input will be assigned from a matching variant in this file."/>
-                <conditional name="annotate">
-			<param name="id" type="boolean" truevalue="id" falsevalue="info" checked="True" label="Only annotate ID field (do not add INFO field)" help=""/>
-			<when value="id"/>
-			<when value="info">
-				<param name="info_ids" type="text" value="" size="60" optional="true" label="Limit INFO annotation to these INFO IDs"
-                                       help="list is a comma separated list of fields. When blank, all INFO fields are included">	
-					<validator type="regex" message="IDs separted by commas">^(([a-zA-Z][a-zA-Z0-9_-]*)(,[a-zA-Z][a-zA-Z0-9_-]*)*)?$</validator>
-				</param>
-			</when>
-                </conditional>
-		<param name="annotate_cmd" type="boolean" truevalue="annMem" falsevalue="annotate" checked="false" label="Annotate in Memory"> 
-                       <help>
-                       Allows unsorted VCF files, but it loads the entire 'database' VCF file into memory (which may not be practical for large 'database' VCF files).
-                       Otherwise, both the database and the input VCF files should be sorted by position (Chromosome sort order can differ between files). 
-                       </help>
+    </command>
+    <inputs>
+        <param format="vcf" name="input" type="data" label="Variant input file in VCF format"/>
+        <param format="vcf" name="dbSnp" type="data" label="VCF File with ID field annotated (e.g. dnSNP.vcf)" 
+            help="The ID field for a variant in input will be assigned from a matching variant in this file."/>
+        <conditional name="annotate">
+            <param name="id" type="boolean" truevalue="id" falsevalue="info" checked="True" label="Only annotate ID field (do not add INFO field)" help=""/>
+            <when value="id"/>
+            <when value="info">
+                <param name="info_ids" type="text" value="" size="60" optional="true" label="Limit INFO annotation to these INFO IDs"
+                    help="list is a comma separated list of fields. When blank, all INFO fields are included">    
+                    <validator type="regex" message="IDs separted by commas">^(([a-zA-Z][a-zA-Z0-9_-]*)(,[a-zA-Z][a-zA-Z0-9_-]*)*)?$</validator>
                 </param>
-	</inputs>
-        <stdio>
-          <exit_code range=":-1"  level="fatal"   description="Error: Cannot open file" />
-          <exit_code range="1:"  level="fatal"   description="Error" />
-        </stdio>
-
-	<outputs>
-		<data format="vcf" name="output" />
-	</outputs>
-	<tests>
-	    <test>
-                <param name="input" ftype="vcf" value="annotate_1.vcf"/>
-                <param name="dbSnp" ftype="vcf" value="db_test_1.vcf"/>
-                <param name="annotate_cmd" value="False"/>
-                <param name="id" value="True"/>
-                <output name="output">
-                    <assert_contents>
-                        <has_text text="rs76166080" />
-                    </assert_contents>
-                </output>
-	    </test>
-	</tests>
-	<help>
+            </when>
+        </conditional>
+        <param name="annotate_cmd" type="boolean" truevalue="annMem" falsevalue="annotate" checked="false" label="Allow unsorted VCF files"> 
+            <help>
+                This option will load the entire 'database' VCF file into memory (which may not be practical for large 'database' VCF files).
+                Otherwise, both the database and the input VCF files should be sorted by position (Chromosome sort order can differ between files). 
+            </help>
+            </param>
+    </inputs>
+    <expand macro="stdio" />
+    <outputs>
+        <data format="vcf" name="output" />
+    </outputs>
+    <tests>
+        <test>
+            <param name="input" ftype="vcf" value="annotate_1.vcf"/>
+            <param name="dbSnp" ftype="vcf" value="db_test_1.vcf"/>
+            <param name="annotate_cmd" value="False"/>
+            <param name="id" value="True"/>
+            <output name="output">
+                <assert_contents>
+                    <has_text text="rs76166080" />
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help>
 
 This is typically used to annotate IDs from dbSnp.
 
-For details about this tool, please go to http://snpeff.sourceforge.net/SnpSift.html#annotate
-
 Annotatating only the ID field from dbSnp137.vcf ::
 
     Input VCF:
@@ -95,13 +89,11 @@
     22      16350245    rs2905295    C    A    0.0    FAIL    NS=192;RSPOS=16350245;GMAF=0.230804387568556;dbSNPBuildID=101;SSR=1;SAO=0;VP=050000000000000100000140;WGT=0;VC=SNV;GNO
 
 
-SnpEff citation:
-"A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff: SNPs in the genome of Drosophila melanogaster strain w1118; iso-2; iso-3.", Cingolani P, Platts A, Wang le L, Coon M, Nguyen T, Wang L, Land SJ, Lu X, Ruden DM. Fly (Austin). 2012 Apr-Jun;6(2):80-92. PMID: 22728672 [PubMed - in process]
+@EXTERNAL_DOCUMENTATION@
 
-SnpSift citation:
-"Using Drosophila melanogaster as a model for genotoxic chemical mutational studies with a new program, SnpSift", Cingolani, P., et. al., Frontiers in Genetics, 3, 2012.
+@CITATION_SECTION@
 
 
-	</help>
+    </help>
 </tool>
 
--- a/snpSift_caseControl.xml	Thu Nov 28 08:16:11 2013 -0600
+++ b/snpSift_caseControl.xml	Fri Nov 29 09:27:22 2013 -0500
@@ -1,13 +1,13 @@
 <tool id="snpSift_caseControl" name="SnpSift CaseControl" version="3.4">
-  <description>Count samples are in 'case' and 'control' groups.</description>
-  <!-- 
-    You will need to change the path to wherever your installation is.
-    You can change the amount of memory used, just change the -Xmx parameter (e.g. use -Xmx2G for 2Gb of memory)
-  -->
-  <requirements>
-                <requirement type="package" version="3.4">snpEff</requirement>
-  </requirements>
-  <command>
+    <description>Count samples are in 'case' and 'control' groups.</description>
+    <!-- 
+        You can change the amount of memory used, just change the -Xmx parameter (e.g. use -Xmx2G for 2Gb of memory)
+    -->
+    <expand macro="requirements" />
+    <macros>
+        <import>snpEff_macros.xml</import>
+    </macros>
+    <command>
     java -Xmx1G -jar \$SNPEFF_JAR_PATH/SnpSift.jar caseControl -q 
     #if $name.__str__.strip() != '':
       -name $name
@@ -18,79 +18,73 @@
       -tfam "$ctrl.tfam"
     #end if
     $input > $output
-  </command>
-  <inputs>
-    <param format="vcf" name="input" type="data" label="VCF input"/>
-    <conditional name="ctrl">
-      <param name="ctrl_src" type="select" label="Case Control defined in">
-        <option value="caseString">Case Control String</option>
-        <option value="tfam">TFAM</option>
-      </param>
-      <when value="caseString">
-        <param name="caseControlStr" type="text" label="Case / Control column designation" size="50">
-          <help>
-             Case and control are defined by a string containing plus and minus symbols {'+', '-', '0'} where '+' is case, '-' is control and '0' is neutral
-          </help>
-          <validator type="regex" message="must be  only plus(+), minus(-), or zero(0) characters">[+-0]+</validator>
+    </command>
+    <inputs>
+        <param format="vcf" name="input" type="data" label="Variant input file in VCF format"/>
+        <conditional name="ctrl">
+            <param name="ctrl_src" type="select" label="Case Control defined in">
+            <option value="caseString">Case Control String</option>
+            <option value="tfam">TFAM file</option>
         </param>
-      </when>
-      <when value="tfam">
-        <param format="tabular" name="tfam" type="data" label="PLINK TFAM file"/>
-      </when>
-    </conditional>
-    <param name="name" type="text" optional="true" label="name" help="name to append to the 'Cases' or 'Controls' tags">
-        <validator type="regex" message="Use only valid ID characters">[_a-zA-Z0-9]+</validator>
-    </param>
-  </inputs>
-  <outputs>
-    <data format="vcf" name="output" />
-  </outputs>
-        <stdio>
-          <exit_code range=":-1"  level="fatal"   description="Error: Cannot open file" />
-          <exit_code range="1:"  level="fatal"   description="Error" />
-        </stdio>
-        <tests>
+        <when value="caseString">
+            <param name="caseControlStr" type="text" label="Case / Control column designation" size="50">
+            <help>
+                Case and control are defined by a string containing plus and minus symbols {'+', '-', '0'} where '+' is case, '-' is control and '0' is neutral
+            </help>
+            <validator type="regex" message="must be  only plus(+), minus(-), or zero(0) characters">[+-0]+</validator>
+            </param>
+        </when>
+        <when value="tfam">
+            <param format="tabular" name="tfam" type="data" label="PLINK TFAM file" help="Read more about TFAM at http://pngu.mgh.harvard.edu/~purcell/plink/data.shtml#tr"/>
+        </when>
+        </conditional>
+        <param name="name" type="text" optional="true" label="name" help="name to append to the 'Cases' or 'Controls' tags">
+            <validator type="regex" message="Use only valid ID characters">[_a-zA-Z0-9]+</validator>
+        </param>
+    </inputs>
+    <outputs>
+        <data format="vcf" name="output" />
+    </outputs>
+    <expand macro="stdio" />
+    <tests>
+        <test>
+            <param name="input" ftype="vcf" value="test.private.01.vcf"/>
+            <param name="ctrl_src" value="caseString"/>
+            <param name="caseControlStr" value="--"/>
+            <output name="output">
+                <assert_contents>
+                    <has_text text="Cases=0,0,0;" />
+                    <has_text text="Controls=0,0,0;" />
+                </assert_contents>
+            </output>
+        </test>
 
-            <test>
-                <param name="input" ftype="vcf" value="test.private.01.vcf"/>
-                <param name="ctrl_src" value="caseString"/>
-                <param name="caseControlStr" value="--"/>
-                <output name="output">
-                    <assert_contents>
-                        <has_text text="Cases=0,0,0;" />
-                        <has_text text="Controls=0,0,0;" />
-                    </assert_contents>
-                </output>
-            </test>
+        <test>
+            <param name="input" ftype="vcf" value="test.private.02.vcf"/>
+            <param name="ctrl_src" value="caseString"/>
+            <param name="caseControlStr" value="--"/>
+            <output name="output">
+                <assert_contents>
+                    <has_text text="Cases=0,0,0;" />
+                    <has_text text="Controls=2,0,4;" />
+                </assert_contents>
+            </output>
+        </test>
 
-            <test>
-                <param name="input" ftype="vcf" value="test.private.02.vcf"/>
-                <param name="ctrl_src" value="caseString"/>
-                <param name="caseControlStr" value="--"/>
-                <output name="output">
-                    <assert_contents>
-                        <has_text text="Cases=0,0,0;" />
-                        <has_text text="Controls=2,0,4;" />
-                    </assert_contents>
-                </output>
-            </test>
-
-            <test>
-                <param name="input" ftype="vcf" value="test.private.02.vcf"/>
-                <param name="name" value=""/>
-                <param name="ctrl_src" value="caseString"/>
-                <param name="caseControlStr" value="-+"/>
-                <output name="output">
-                    <assert_contents>
-                        <has_text text="Cases=1,0,2;" />
-                        <has_text text="Controls=1,0,2;" />
-                    </assert_contents>
-                </output>
-            </test>
-
-        </tests>
-
-  <help>
+        <test>
+            <param name="input" ftype="vcf" value="test.private.02.vcf"/>
+            <param name="name" value=""/>
+            <param name="ctrl_src" value="caseString"/>
+            <param name="caseControlStr" value="-+"/>
+            <output name="output">
+                <assert_contents>
+                    <has_text text="Cases=1,0,2;" />
+                    <has_text text="Controls=1,0,2;" />
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help>
 
 **SnpSift CaseControl**
 
@@ -119,15 +113,9 @@
   - Case / Control column designation = ""++++------"
 
 
-For details about this tool, please go to http://snpeff.sourceforge.net/SnpSift.html#casecontrol
-
-SnpEff citation:
-"A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff: SNPs in the genome of Drosophila melanogaster strain w1118; iso-2; iso-3.", Cingolani P, Platts A, Wang le L, Coon M, Nguyen T, Wang L, Land SJ, Lu X, Ruden DM. Fly (Austin). 2012 Apr-Jun;6(2):80-92. PMID: 22728672 [PubMed - in process]
+@EXTERNAL_DOCUMENTATION@
 
-SnpSift citation:
-"Using Drosophila melanogaster as a model for genotoxic chemical mutational studies with a new program, SnpSift", Cingolani, P., et. al., Frontiers in Genetics, 3, 2012.
-
-
+@CITATION_SECTION@
 
   </help>
 </tool>
--- a/snpSift_filter.xml	Thu Nov 28 08:16:11 2013 -0600
+++ b/snpSift_filter.xml	Fri Nov 29 09:27:22 2013 -0500
@@ -1,9 +1,10 @@
 <tool id="snpSift_filter" name="SnpSift Filter" version="3.4">
     <options sanitize="False" />
     <description>Filter variants using arbitrary expressions</description>
-    <requirements>
-        <requirement type="package" version="3.4">snpEff</requirement>
-    </requirements>
+    <expand macro="requirements" />
+    <macros>
+        <import>snpEff_macros.xml</import>
+    </macros>
     <command>
         java -Xmx6G -jar \$SNPEFF_JAR_PATH/SnpSift.jar filter -f $input -e $exprFile $inverse 
         #if $filtering.mode == 'field':
@@ -23,11 +24,11 @@
          > $output
     </command>
     <inputs>
-        <param format="vcf" name="input" type="data" label="VCF input"/>
-        <param name="expr" type="text" label="Expression" size="160"/>
-        <param name="inverse" type="boolean" truevalue="--inverse" falsevalue="" checked="false" label="Inverse. Show lines that do not match filter expression"/>
+        <param format="vcf" name="input" type="data" label="Variant input file in VCF format"/>
+        <param name="expr" type="text" label="Filter criteria" size="160" help="Need help? See below a few examples." />
+        <param name="inverse" type="boolean" truevalue="--inverse" falsevalue="" checked="false" label="Inverse filter" help="Show lines that do not match filter expression" />
         <conditional name="filtering">
-            <param name="mode" type="select" labael="Filter mode">
+            <param name="mode" type="select" label="Filter mode">
                 <option value="entries" selected="true">Retain entries that pass filter, remove other entries</option>
                 <option value="field">Change the FILTER field, but retain all entries</option>
             </param> 
@@ -56,13 +57,8 @@
     <outputs>
         <data format="vcf" name="output" />
     </outputs>
-    <stdio>
-      <exit_code range=":-1"  level="fatal"   description="Error: Cannot open file" />
-      <exit_code range="1:"  level="fatal"   description="Error" />
-    </stdio>
-
+    <expand macro="stdio" />
     <tests>
-
         <test>
         <param name="input" ftype="vcf" value="test01.vcf"/>
         <param name="expr" value="QUAL >= 50"/>
@@ -114,9 +110,7 @@
             </assert_contents>
         </output>
         </test>
-
     </tests>
-
     <help>
 
 **SnpSift filter**
@@ -146,14 +140,9 @@
     * **isHom( GEN[0] ) &amp; isVariant( GEN[0] ) &amp; isRef( GEN[1] )**
 
 
-For complete details about this tool and epressions that can be used, please go to http://snpeff.sourceforge.net/SnpSift.html#filter
+@EXTERNAL_DOCUMENTATION@
 
-SnpEff citation:
-"A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff: SNPs in the genome of Drosophila melanogaster strain w1118; iso-2; iso-3.", Cingolani P, Platts A, Wang le L, Coon M, Nguyen T, Wang L, Land SJ, Lu X, Ruden DM. Fly (Austin). 2012 Apr-Jun;6(2):80-92. PMID: 22728672 [PubMed - in process]
-
-SnpSift citation:
-"Using Drosophila melanogaster as a model for genotoxic chemical mutational studies with a new program, SnpSift", Cingolani, P., et. al., Frontiers in Genetics, 3, 2012.
-
+@CITATION_SECTION@
 
     </help>
 </tool>
--- a/snpSift_int.xml	Thu Nov 28 08:16:11 2013 -0600
+++ b/snpSift_int.xml	Fri Nov 29 09:27:22 2013 -0500
@@ -1,67 +1,56 @@
 <tool id="snpSift_int" name="SnpSift Intervals" version="3.4">
-	<description>Filter variants using intervals </description>
-	<!-- 
-	    You will need to change the path to wherever your installation is.
-		You can change the amount of memory used, just change the -Xmx parameter (e.g. use -Xmx2G for 2Gb of memory)
-	-->
-	<requirements>
-                <requirement type="package" version="3.4">snpEff</requirement>
-	</requirements>
-	<command>
-		java -Xmx2G -jar \$SNPEFF_JAR_PATH/SnpSift.jar intervals -i $input $exclude $bedFile > $output
-	</command>
-	<inputs>
-		<param format="vcf" name="input" type="data" label="VCF input"/>
-		<param format="bed" name="bedFile" type="data" label="Intervals (BED file)"/>
-		<param name="exclude" type="boolean" truevalue="-x" falsevalue="" checked="false" label="Exclude Intervals" 
-                       help="Filter out (exclude) VCF entries that match any interval in the BED files"/>
-	</inputs>
-	<outputs>
-		<data format="vcf" name="output" />
-	</outputs>
-        <stdio>
-          <exit_code range=":-1"  level="fatal"   description="Error: Cannot open file" />
-          <exit_code range="1:"  level="fatal"   description="Error" />
-        </stdio>
-        <tests>
+    <description>Filter variants using intervals</description>
+    <!-- 
+        You can change the amount of memory used, just change the -Xmx parameter (e.g. use -Xmx2G for 2Gb of memory)
+    -->
+    <expand macro="requirements" />
+    <macros>
+        <import>snpEff_macros.xml</import>
+    </macros>
+    <command>
+        java -Xmx2G -jar \$SNPEFF_JAR_PATH/SnpSift.jar intervals -i $input $exclude $bedFile > $output
+    </command>
+    <inputs>
+        <param format="vcf" name="input" type="data" label="Variant input file in VCF format"/>
+        <param format="bed" name="bedFile" type="data" label="Intervals (BED file)"/>
+        <param name="exclude" type="boolean" truevalue="-x" falsevalue="" checked="false" label="Exclude Intervals" 
+            help="Filter out (exclude) VCF entries that match any interval in the BED files"/>
+    </inputs>
+    <outputs>
+        <data format="vcf" name="output" />
+    </outputs>
+    <expand macro="stdio" />
+    <tests>
+        <test>
+            <param name="input" ftype="vcf" value="annotate_5.vcf"/>
+            <param name="bedFile" ftype="bed" value="interval.bed"/>
+            <param name="exclude" value="False"/>
+            <output name="output">
+                <assert_contents>
+                    <has_text text="872687" />
+                    <not_has_text text="1195966" />
+                </assert_contents>
+            </output>
+        </test>
+        <test>
+            <param name="input" ftype="vcf" value="annotate_5.vcf"/>
+            <param name="bedFile" ftype="bed" value="interval.bed"/>
+            <param name="exclude" value="True"/>
+            <output name="output">
+                <assert_contents>
+                    <has_text text="1195966" />
+                    <not_has_text text="872687" />
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help>
 
-            <test>
-                <param name="input" ftype="vcf" value="annotate_5.vcf"/>
-                <param name="bedFile" ftype="bed" value="interval.bed"/>
-                <param name="exclude" value="False"/>
-                <output name="output">
-                    <assert_contents>
-                        <has_text text="872687" />
-                        <not_has_text text="1195966" />
-                    </assert_contents>
-                </output>
-            </test>
+You can filter using intervals (BED file).
+
+@EXTERNAL_DOCUMENTATION@
 
-            <test>
-                <param name="input" ftype="vcf" value="annotate_5.vcf"/>
-                <param name="bedFile" ftype="bed" value="interval.bed"/>
-                <param name="exclude" value="True"/>
-                <output name="output">
-                    <assert_contents>
-                        <has_text text="1195966" />
-                        <not_has_text text="872687" />
-                    </assert_contents>
-                </output>
-            </test>
-
-        </tests>
+@CITATION_SECTION@
 
-	<help>
-
-You can filter using intervals (BED file)
-
-For details about this tool, please go to http://snpeff.sourceforge.net/SnpSift.html#intervals
-
-SnpEff citation:
-"A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff: SNPs in the genome of Drosophila melanogaster strain w1118; iso-2; iso-3.", Cingolani P, Platts A, Wang le L, Coon M, Nguyen T, Wang L, Land SJ, Lu X, Ruden DM. Fly (Austin). 2012 Apr-Jun;6(2):80-92. PMID: 22728672 [PubMed - in process]
-
-SnpSift citation:
-"Using Drosophila melanogaster as a model for genotoxic chemical mutational studies with a new program, SnpSift", Cingolani, P., et. al., Frontiers in Genetics, 3, 2012.
-
-	</help>
+    </help>
 </tool>