diff tools/naive_variant_detector.xml @ 1:55b4460cd0ce

Add naive variant detector tool.
author Daniel Blankenberg <dan@bx.psu.edu>
date Tue, 14 May 2013 10:14:52 -0400
parents
children 1c23da12b768
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/naive_variant_detector.xml	Tue May 14 10:14:52 2013 -0400
@@ -0,0 +1,145 @@
+<tool id="naive_variant_detector" name="Naive Variant Detector" version="0.0.1">
+  <description>on BAM files</description>
+  <requirements>
+    <requirement type="package" version="1.7.1">numpy</requirement>
+    <requirement type="package" version="0.0.1">pyBamParser</requirement>
+    <requirement type="package" version="0.0.1">pyBamTools</requirement>
+  </requirements>
+  <stdio>
+    <exit_code range="1:" err_level="fatal" />
+    <exit_code range=":-1" err_level="fatal" />
+  </stdio>
+  <command interpreter="python">naive_variant_detector.py
+      -o "${output_vcf}"
+     
+     #for $input_bam in $reference_source.input_bams:
+         -b "${input_bam.input_bam}"
+         -i "${input_bam.input_bam.metadata.bam_index}"
+     #end for
+     
+     #if $reference_source.reference_source_selector != "history":
+         -r "${reference_source.ref_file.fields.path}"
+     #elif $reference_source.ref_file:
+         -r "${reference_source.ref_file}"
+     #end if
+     
+     #for $region in $regions:
+         --region "${region.chromosome}:${region.start}-${region.end}"
+     #end for
+     
+     ${variants_only}
+     
+     ${use_strand}
+     
+     --ploidy "${$ploidy}"
+     
+     --min_support_depth "${min_support_depth}"
+     
+     #if str($min_base_quality):
+         --min_base_quality "${min_base_quality}"
+     #end if
+     
+     #if str($min_mapping_quality):
+         --min_mapping_quality "${min_mapping_quality}"
+     #end if
+     
+     --coverage_dtype "${coverage_dtype}"
+     
+  </command>
+  <inputs>
+    <conditional name="reference_source">
+      <param name="reference_source_selector" type="select" label="Choose the source for the reference list">
+        <option value="cached">Locally cached</option>
+        <option value="history">History</option>
+      </param>
+      <when value="cached">
+        <repeat name="input_bams" title="BAM file" min="1" >
+            <param name="input_bam" type="data" format="bam" label="BAM file">
+              <validator type="unspecified_build" />
+              <validator type="dataset_metadata_in_data_table" table_name="sam_fa_indexes" metadata_name="dbkey" metadata_column="value" message="Sequences are not currently available for the specified build." /> <!-- fixme!!! this needs to be a select -->
+            </param>
+        </repeat>
+        <param name="ref_file" type="select" label="Using reference genome" >
+          <options from_data_table="sam_fa_indexes">
+            <!-- <filter type="data_meta" key="dbkey" ref="input_bam" column="dbkey"/> does not yet work in a repeat...--> 
+          </options>
+          <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file"/>
+        </param>
+      </when>
+      <when value="history"> <!-- FIX ME!!!! -->
+        <repeat name="input_bams" title="BAM file" min="1" >
+            <param name="input_bam" type="data" format="bam" label="BAM file" >
+            </param>
+        </repeat>
+        <param name="ref_file" type="data" format="fasta" label="Using reference file" optional="True" />
+      </when>
+    </conditional>
+
+    <repeat name="regions" title="Restrict to regions" min="0" >
+        <param name="chromosome" type="text" value="" optional="False" label="Chromosome" />
+        <param name="start" type="integer" value="" optional="True" label="Start" />
+        <param name="end" type="integer" value="" optional="True" label="End" />
+    </repeat>
+
+    <!-- TODO: enhance filtering -->
+    <param name="min_support_depth" type="integer" value="0" min="0" label="Minimum number of reads needed to consider a REF/ALT" />
+    <param name="min_base_quality" type="integer" value="" label="Minimum base quality" optional="True" />
+    <param name="min_mapping_quality" type="integer" value="" label="Minimum mapping quality" optional="True" />
+    
+        
+    <param name="ploidy" type="integer" value="2" min="1" label="Ploidy" />
+    <param name="variants_only" type="boolean" truevalue="--variants_only" falsevalue="" checked="False" label="Only write out positions with with possible alternate alleles"/>
+    
+    <param name="use_strand" type="boolean" truevalue="--use_strand" falsevalue="" checked="False" label="Report counts by strand"/>
+    
+    <param name="coverage_dtype" type="select" label="Choose the dtype to use for storing coverage information" help="This affects the maximum recorded value for a position, e.g. uint8 would be 255 coverage, but will require the least amount of RAM">
+      <option value="uint8" selected="True">uint8</option>
+      <option value="uint16">uint16</option>
+      <option value="uint32">uint32</option>
+      <option value="uint64">uint64</option>
+    </param>
+    
+  </inputs>
+  <outputs>
+    <data format="vcf" name="output_vcf" />
+  </outputs>
+  <help>
+**What it does**
+
+This tool is a naive variant detector. 
+
+------
+
+**Inputs**
+
+Accepts one or more BAM input files.
+
+
+**Outputs**
+
+The output is in VCF format.
+
+------
+
+**Citation**
+
+If you use this tool, please cite Blankenberg D, et al. *In preparation.*
+
+  </help>
+  <tests>
+      <test>
+          <param name="reference_source_selector" value="history" />
+          <param name="input_bam" value="test-data/fake_phiX174_reads_1.bam" ftype="bam" /> 
+          <param name="ref_file" value="test-data/phiX174.fasta" ftype="fasta" />
+          <param name="min_support_depth" value="0" />
+          <param name="min_base_quality" value="" />
+          <param name="min_mapping_quality" value="" />
+          <param name="ploidy" value="2" />
+          <param name="variants_only" value="False" />
+          <param name="use_strand" value="False" />
+          <param name="coverage_dtype" value="uint8" />
+          <output name="output_vcf" file="test-data/fake_phiX174_reads_1_test_out_1.vcf" compare="contains" />
+      </test>
+  </tests>
+  
+</tool>