view bcftools_call.xml @ 6:3296c3680d96 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/bcftools commit 9d03fe38504a35d11660dadb44cb1beee32fcf4e
author iuc
date Thu, 13 Apr 2017 17:43:02 -0400
parents 0a564427739d
children 0fba2c15b40d
line wrap: on
line source

<?xml version='1.0' encoding='utf-8'?>
<tool name="bcftools @EXECUTABLE@" id="bcftools_@EXECUTABLE@" version="@VERSION@">
    <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
#set $section = $sec_restrict
@PREPARE_REGIONS_FILE@

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 str($section.prior_freqs) != '':
  --prior-freqs $section.prior_freqs
 #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="prior_freqs" type="text" value="" optional="true" label="Use prior knowledge of population allele frequencies">
                        <help>
<![CDATA[
For example: --prior-freqs REF_AN,REF_AC 
<br>if the input VCF has the following INFO tags:
<br>##INFO=&lt;ID=REF_AN,Number=1,Type=Integer,Description="Total number of alleles in reference genotypes"&gt;
<br>##INFO=&lt;ID=REF_AC,Number=A,Type=Integer,Description="Allele count in reference genotypes for each ALT allele"&gt;
]]>
                        </help>
                        <validator type="regex" message="The INFO tags (separated by a comma), e.g. AN,AC">^(\w+,\w+)?$</validator>
                    </param>
                    <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>