changeset 2:bf2b29b033b1

Uploaded
author gregory-minevich
date Mon, 26 Mar 2012 19:28:37 -0400
parents 1e329f924450
children f8172d3236be
files ._bcftools_view.py ._bcftools_view.xml bcftools_view.py bcftools_view.xml
diffstat 4 files changed, 204 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file ._bcftools_view.py has changed
Binary file ._bcftools_view.xml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bcftools_view.py	Mon Mar 26 19:28:37 2012 -0400
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+
+"""
+Wrapper that execute a program and its arguments but reports standard error
+messages only if the program exit status was not 0
+Example: ./stderr_wrapper.py myprog arg1 -f arg2
+"""
+
+import sys, subprocess
+
+assert sys.version_info[:2] >= ( 2, 4 )
+
+def stop_err( msg ):
+    sys.stderr.write( "%s\n" % msg )
+    sys.exit()
+
+def __main__():
+    # Get command-line arguments
+    args = sys.argv
+    # Remove name of calling program, i.e. ./stderr_wrapper.py
+    args.pop(0)
+    # If there are no arguments left, we're done
+    if len(args) == 0:
+        return
+
+    # If one needs to silence stdout 
+    #args.append( ">" )
+    #args.append( "/dev/null" )
+
+    cmdline = " ".join(args)
+    try:
+        # Run program
+        proc = subprocess.Popen( args=cmdline, shell=True, stderr=subprocess.PIPE )
+        returncode = proc.wait()
+        # Capture stderr, allowing for case where it's very large
+        stderr = ''
+        buffsize = 1048576
+        try:
+            while True:
+                stderr += proc.stderr.read( buffsize )
+                if not stderr or len( stderr ) % buffsize != 0:
+                    break
+        except OverflowError:
+            pass
+        # Running Grinder failed: write error message to stderr
+        if returncode != 0:
+            raise Exception, stderr
+    except Exception, e:
+        # Running Grinder failed: write error message to stderr
+        stop_err( 'Error:\n' + str( e ) )
+
+
+if __name__ == "__main__": __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bcftools_view.xml	Mon Mar 26 19:28:37 2012 -0400
@@ -0,0 +1,151 @@
+<tool id="bcftools_view" name="bcftools view" version="0.0.1">
+    <description>Converts BCF format to VCF format</description>
+    <requirements>
+        <requirements type="package">samtools</requirements>
+    </requirements>
+    <command interpreter="python">
+        bcftools_view.py bcftools view 
+            #if str( $A ) == "true": 
+                -A
+            #end if
+            #if str( $b ) == "true":
+                -b
+            #end if
+	    #if $D.seq_dictionary == "true":
+                -D "$D.input"
+	    #end if
+            #if str( $F ) == "true":
+                -F
+	    #end if
+            #if str( $G ) == "true":
+                -G
+	    #end if
+            #if str( $N ) == "true":
+                -N
+	    #end if
+            #if str( $S ) == "true":
+                -S
+	    #end if
+            #if str( $u)  == "true":
+                -u
+	    #end if
+            #if str( $c ) == "true":
+                -c
+	    #end if
+            #if str( $e ) == "true":
+                -e
+	    #end if
+            #if str( $g ) == "true":
+                -g
+	    #end if
+            #if $i.alt_indel_snp_ratio == "true":
+                -i $i.ratio
+	    #end if
+            #if $p.variant_filter == "true":
+                -p $p.float_value
+	    #end if
+            #if $t.mutation_rate == "true":
+                -t $t.rate
+	    #end if
+            #if str( $v ) == "true":
+                -v
+	    #end if	
+	$input
+        > $output
+    </command>
+    <inputs>
+        <param name="input" type="data" format="bcf" label="Choose a bcf file to view" />
+        <param name="A" type="select" label="Retain all possible alternate alleles at variant sites">
+            <option value="true">Yes</option>
+            <option value="false" selected="true">No</option>
+        </param>
+        <param name="b" type="select" label="Output in the BCF format. The default is VCF.">
+            <option value="true">Yes</option>
+            <option value="false" selected="true">No</option>
+        </param>
+        <conditional name="D">
+            <param name="seq_dictionary" type="select" label="Sequence dictionary (list of chromosome names) for VCF->BCF conversion.">
+                <option value="true">Yes</option>
+                <option value="false" selected="true">No</option>
+            </param>
+            <when value="true">
+                <param name="input" type="data" format="tabular" label="Sequence dictionary" />
+            </when>
+        </conditional>
+        <param name="F" type="select" label="Indicate PL is generated by r921 or before (ordering is different).">
+            <option value="true">Yes</option>
+            <option value="false" selected="true">No</option>
+        </param>
+        <param name="G" type="select" label="Suppress all individual genotype information.">
+            <option value="true">Yes</option>
+            <option value="false" selected="true">No</option>
+        </param>
+        <param name="N" type="select" label="Skip sites where the REF field is not A/C/G/T">
+            <option value="true">Yes</option>
+            <option value="false" selected="true">No</option>
+        </param>
+        <param name="S" type="select" label="The input is VCF instead of BCF.">
+            <option value="true">Yes</option>
+            <option value="false" selected="true">No</option>
+        </param>
+        <param name="u" type="select" label="Uncompressed BCF output.">
+            <option value="true">Yes</option>
+            <option value="false" selected="true">No</option>
+        </param>
+        <param name="c" type="select" label="Call variants using Bayesian inference. Automatically performs max-likelihood inference only">
+            <option value="true" selected="true">Yes</option>
+            <option value="false">No</option>
+        </param>
+        <param name="e" type="select" label="Perform max-likelihood inference only, including estimating the site allele frequency, testing Hardy-Weinberg equilibrium and testing associations with LRT.">
+            <option value="true">Yes</option>
+            <option value="false" selected="true">No</option>
+        </param>
+        <param name="g" type="select" label="Call per-sample genotypes at variant sites">
+            <option value="true" selected="true">Yes</option>
+            <option value="false">No</option>
+        </param>
+        <conditional name="i">
+            <param name="alt_indel_snp_ratio" type="select" label="Use alternate INDEL-to-SNP mutation rate, default 0.15.">
+                <option value="true">Yes</option>
+                <option value="false" selected="true">No</option>
+            </param>
+            <when value="true">
+                <param name="ratio" type="float" label="Ratio (float)" value="0.15" />
+            </when>
+        </conditional>
+        <conditional name="p">
+            <param name="variant_filter" type="select" >
+                <option value="true">Yes</option>
+                <option value="false" selected="true">No</option>
+            </param>
+            <when value="true">
+                <param name="float_value" type="float" label="Float" value="0.5" />
+            </when>
+        </conditional>
+	<conditional name="t">
+            <param name="mutation_rate" type="select" label="Specify scaled mutation rate for variant calling, default is 0.001.">
+                <option value="true">Yes</option>
+                <option value="false" selected="true">No</option>
+            </param>
+            <when value="true">
+                <param name="rate" type="float" label="Mutation Rate (float)" value="0.001" />
+            </when>
+        </conditional>
+        <param name="v" type="select" label="Output variant sites only.">
+            <option value="true" selected="true">Yes</option>
+            <option value="false">No</option>
+        </param>
+    </inputs>
+    <outputs>
+        <data format="tabular" name="output" />
+    </outputs>
+    <help>
+**What it does:** 
+
+This tool converts BCF files into VCF files using BCFtools view from the SAMtools set of utilities:
+
+http://samtools.sourceforge.net/samtools.shtml#4
+
+
+    </help>
+</tool>