Mercurial > repos > gregory-minevich > bcftools_view
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
--- /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>