view bcftools_call.xml @ 5:0a564427739d draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/bcftools commit 3edcac645f34d5a94884dedaf95c5774f4afc5c7
author iuc
date Sat, 11 Mar 2017 17:57:29 -0500
parents 6d2a5f0859cf
children 3296c3680d96
line wrap: on
line source

<?xml version='1.0' encoding='utf-8'?>
<tool name="bcftools @EXECUTABLE@" id="bcftools_@EXECUTABLE@" version="1.3.2.0">
    <description>SNP/indel variant calling from VCF/BCF</description>
    <macros>
        <token name="@EXECUTABLE@">call</token>
        <import>macros.xml</import>
        <xml name="macro_novel_rate">
            <param name="novel_rate_snp" type="float" label="Novel Rate SNP" value="" optional="true" 
                   help="likelihood of novel mutation for constrained trio calling, see man page for details" />
            <param name="novel_rate_del" type="float" label="Novel Rate Deletions" value="" optional="true" 
                   help="likelihood of novel mutation for constrained trio calling, see man page for details" />
            <param name="novel_rate_ins" type="float" label="Novel Rate Insertions" value="" optional="true" 
                   help="likelihood of novel mutation for constrained trio calling, see man page for details" />
        </xml>
        <token name="@NOVEL_RATE@">
            #set $novel_rate = []
            #if str($section.genotypes.novel_rate_snp):
              #silent $novel_rate.append(str($section.genotypes.novel_rate_snp))
            #end if
            #if str($section.genotypes.novel_rate_del):
              #silent $novel_rate.append(str($section.genotypes.novel_rate_del))
            #end if
            #if str($section.genotypes.novel_rate_ins):
              #silent $novel_rate.append(str($section.genotypes.novel_rate_ins))
            #end if
            #if len($novel_rate) > 0:
               --novel-rate '#echo ','.join($novel_rate)#'
            #end if
        </token>
    </macros>
    <expand macro="requirements" />
    <expand macro="version_command" />
    <command detect_errors="aggressive"><![CDATA[
@PREPARE_ENV@
@PREPARE_INPUT_FILE@
#set $section = $sec_consensus_variant_calling.variant_calling
#set $targets_path = None
#if $section.method == 'multiallelic':
 #if $section.genotypes.constrain == 'alleles':  
  #set $section = $sec_consensus_variant_calling.variant_calling.genotypes
  @PREPARE_TARGETS_FILE@
 #end if
#end if

bcftools @EXECUTABLE@

#set $section = $sec_consensus_variant_calling.variant_calling
#if $section.method == 'multiallelic':
 -m
 #if str($section.gvcf) != '':
  --gvcf $section.gvcf
 #end if
 #if $section.genotypes.constrain == 'alleles':  
  --constrain alleles $section.genotypes.insert_missed
  #set $section = $sec_consensus_variant_calling.variant_calling.genotypes
  @TARGETS_FILE@
 #else
   #if $section.genotypes.constrain == 'trio':
    --constrain trio
    @NOVEL_RATE@
   #end if
   #set $section = $sec_consensus_variant_calling.variant_calling.genotypes
   @TARGETS@
 #end if
#else 
 -c
#end if

#set $section = $sec_restrict
@REGIONS@
@SAMPLES@

#set $section = $sec_consensus_variant_calling
#if $section.pval_threshold:
  --pval-threshold  "$section.pval_threshold"
#end if
#if $section.prior:
  --prior "$section.prior"
#end if

## File format section
#set $section = $sec_file_format
#if $section.ploidy:
  --ploidy "${section.ploidy}"
#end if
#if $section.ploidy_file:
  --ploidy-file "${section.ploidy_file}"
#end if

## Input/output section
#set $section = $sec_input_output
${section.keep_alts}
## #if section.format_fields:
##   --format-fields "${section.format_fields}"
## #end if
${section.keep_masked_ref}
#if $section.skip_variants:
  --skip-variants "${section.skip_variants}"
#end if
${section.variants_only}

@OUTPUT_TYPE@
@THREADS@

## Primary Input/Outputs
@INPUT_FILE@
> "$output_file"
]]>
    </command>
    <inputs>
        <expand macro="macro_input" />
        <section name="sec_restrict" expanded="false" title="Restrict to">
            <expand macro="macro_regions" />
            <expand macro="macro_samples" />
        </section>
        <section name="sec_consensus_variant_calling" expanded="true" title="Consensus/variant calling Options">
            <conditional name="variant_calling">
                <param name="method" type="select" label="calling method">
                    <option value="multiallelic">Multiallelic and rare-variant Caller</option>
                    <option value="consensus">Consensus Caller</option>
                </param>
                <when value="multiallelic">
                    <conditional name="genotypes">
                        <param name="constrain" type="select" label="Constrain" help="one of: alleles, trio (see manual)">
                            <option value="none">Do not constrain</option>
                            <option value="alleles">alleles - call genotypes given alleles</option>
                            <option value="trio">trio - call genotypes given the father-mother-child constraint</option>
                        </param>
                        <when value="none">
                            <expand macro="macro_targets" />
                        </when>
                        <when value="alleles">
                            <expand macro="macro_targets_file"/>
                            <param name="insert_missed" type="boolean" truevalue="--insert-missed" falsevalue="" label="Insert Missed" help="output also sites missed by mpileup but present in -T" />
                        </when>
                        <when value="trio">
                            <expand macro="macro_targets" />
                            <expand macro="macro_novel_rate" />
                        </when>
                    </conditional>
                    <param name="gvcf" type="integer" label="gvcf" optional="True" help="group non-variant sites into gVCF blocks by minimum per-sample DP" />
                </when>
                <when value="consensus">
                    <conditional name="genotypes">
                        <param name="constrain" type="select" label="Constrain" help="one of: alleles, trio (see manual)">
                            <option value="none">Do not constrain</option>
                            <option value="trio">trio - call genotypes given the father-mother-child constraint</option>
                        </param>
                        <when value="none">
                        </when>
                        <when value="trio">
                            <expand macro="macro_novel_rate" />
                        </when>
                    </conditional>
                    <expand macro="macro_targets" />
                </when>
            </conditional>
            <param name="pval_threshold" type="float" label="Pval Threshold" value="0.5" optional="True" help="variant if P(ref|D)&lt;FLOAT with -c" />
            <param name="prior" type="float" label="Prior" value="1.1e-3" optional="True" help="mutation rate (use bigger for greater sensitivity)" />
        </section>
        <section name="sec_file_format" expanded="false" title="File format Options">
            <param name="ploidy" type="select" label="Select Predefined Ploidy" optional="true">
                <option value="GRCh37">GRCh37 - Human Genome reference assembly GRCh37 / hg19</option>
                <option value="GRCh38">GRCh37 - Human Genome reference assembly GRCh38 / hg38</option>
                <option value="X">X - Treat male samples as haploid and female as diploid regardless of the chromosome name</option>
                <option value="Y">Y - Treat male samples as haploid and female as no-copy, regardless of the chromosome name"</option>
                <option value="1">1 - Treat all samples as haploid</option>
            </param>
            <param name="ploidy_file" type="data" format="tabular" label="Ploidy File" optional="True" help="space/tab-delimited list of CHROM,FROM,TO,SEX,PLOIDY" />
            <expand macro="macro_regions" />
            <expand macro="macro_samples" />
        </section>
        <section name="sec_input_output" expanded="false" title="Input/output Options">
            <param name="keep_alts" type="boolean" truevalue="--keep-alts" falsevalue="" label="Keep Alts" help="keep all possible alternate alleles at variant sites" />
            <param name="format_fields" type="text" value="" optional="true" label="Format Fields" 
               help="output format fields: GQ,GP" >
                <validator type="regex" message="FORMAT terms separated by commas">^([A-Za-z]+(,[A-Za-z]+)*)?$</validator>
            </param>
            <param name="keep_masked_ref" type="boolean" truevalue="--keep-masked-ref" falsevalue="" label="Keep Masked Ref" help="keep sites with masked reference allele (REF=N)" />
            <param name="skip_variants" type="select" label="Skip Variants" optional="True" help="skip indels/snps">
                <option value="indels">indels</option>
                <option value="snps">snps</option>
            </param>
            <param name="variants_only" type="boolean" truevalue="--variants-only" falsevalue="" label="Variants Only" help="output variant sites only" />
        </section>
        <expand macro="macro_select_output_type" />
    </inputs>
    <outputs>
        <expand macro="macro_vcf_output"/>
    </outputs>
    <tests>
        <test>
            <param name="input_file" ftype="vcf" value="mpileup.vcf" />
            <param name="method" value="multiallelic" />
            <param name="variants_only" value="true" />
            <param name="output_type" value="v" />
            <output name="output_file">
                <assert_contents>
                    <has_text text="DP4=2,4,8,11;MQ=49" />
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="input_file" ftype="vcf" value="mpileup.vcf" />
            <param name="method" value="multiallelic" />
            <param name="gvcf" value="0" />
            <param name="output_type" value="v" />
            <output name="output_file">
                <assert_contents>
                    <has_text text="MinDP" />
                    <has_text text="DP4=2,4,8,11;MQ=49" />
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="input_file" ftype="vcf" value="mpileup.X.vcf" />
            <param name="method" value="multiallelic" />
            <param name="ploidy_file" value="mpileup.ploidy" />
            <param name="samples_file" value="mpileup.samples" />
            <param name="output_type" value="v" />
            <output name="output_file">
                <assert_contents>
                    <has_text text="DP4=2,4,8,11;MQ=49" />
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="input_file" ftype="vcf" value="mpileup.X.vcf" />
            <param name="method" value="consensus" />
            <param name="output_type" value="v" />
            <param name="ploidy_file" value="mpileup.ploidy" />
            <output name="output_file">
                <assert_contents>
                    <has_text text="DP4=2,4,8,11" />
                    <has_text text="PV4=1,1,1,1" />
                </assert_contents>
            </output>
        </test>
    </tests>
    <help><![CDATA[
==================================
 bcftools @EXECUTABLE@
==================================

SNP/indel variant calling from VCF/BCF. To be used in conjunction with samtools mpileup. 

  - This command replaces the former "bcftools view" caller. 
  - Some of the original functionality has been temporarily lost in the process of transition to htslib, but will be added back on popular demand. 
  - The original calling model can be invoked with the -c option.

The novel-rate option can be set to modify the likelihood of novel mutation for constrained -C trio calling. The trio genotype calling maximizes likelihood of a particular combination of genotypes for father, mother and the child P(F=i,M=j,C=k) = P(unconstrained) * Pn + P(constrained) * (1-Pn). By providing three values, the mutation rate Pn is set explicitly for SNPs, deletions and insertions, respectively. If two values are given, the first is interpreted as the mutation rate of SNPs and the second is used to calculate the mutation rate of indels according to their length as Pn=float*exp(-a-b*len), where a=22.8689, b=0.2994 for insertions and a=21.9313, b=0.2856 for deletions [pubmed:23975140]. If only one value is given, the same mutation rate Pn is used for SNPs and indels. 

@REGIONS_HELP@
@TARGETS_HELP@

@BCFTOOLS_MANPAGE@#@EXECUTABLE@

@BCFTOOLS_WIKI@
]]>
    </help>
    <expand macro="citations" />
</tool>