view bcftools_concat.xml @ 16:6b6c992d3a14 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/bcftools commit c45135e52ae5039e09272ac6f504d0ceb574aa70
author iuc
date Sat, 23 Jul 2022 13:44:41 +0000
parents fc47ffec447e
children 03e0645395d2
line wrap: on
line source

<?xml version='1.0' encoding='utf-8'?>
<tool name="bcftools @EXECUTABLE@" id="bcftools_@EXECUTABLE@" version="@TOOL_VERSION@">
    <description>Concatenate or combine VCF/BCF files</description>
    <macros>
        <token name="@EXECUTABLE@">concat</token>
        <import>macros.xml</import>
    </macros>
    <expand macro="bio_tools" />
    <expand macro="requirements" />
    <expand macro="version_command" />
    <command detect_errors="aggressive"><![CDATA[
@PREPARE_ENV@
@PREPARE_INPUT_FILES@
#set $section = $sec_restrict
@PREPARE_REGIONS_FILE@

bcftools @EXECUTABLE@

## Default section
#set $section = $sec_default

#if $section.mode.naive == "yes":
    --naive
#else:
    #if $section.mode.overlaps.allow_overlaps == 'yes':
        --allow-overlaps
        #if $section.mode.overlaps.rm_dups:
            --rm-dups $section.mode.overlaps.rm_dups
        #end if
    #end if
    ${section.mode.ligate}
#end if
${section.compact_PS}
#if str($section.min_PQ):
    --min-PQ ${section.min_PQ}
#end if

#set $section = $sec_restrict
@REGIONS@

@OUTPUT_TYPE@
@THREADS@

## Primary Input/Outputs
@INPUT_FILES@
#if $sec_default.mode.naive == "yes" and $output_type == 'v':
    > output.gz && bcftools index output.gz && bcftools view -O v -o '$output_file' output.gz
#else:
    > '$output_file'
#end if
    ]]></command>
    <inputs>
        <expand macro="macro_inputs" />
        <section name="sec_restrict" expanded="false" title="Restrict to">
            <expand macro="macro_restrict" />
        </section>
        <section name="sec_default" expanded="true" title="Concat Options">
            <conditional name="mode">
                <param name="naive" type="select" label="naive concat">
                    <help><![CDATA[
--naive concatenates VCF or BCF files without recompression. This can be used used to combine results that were generated separately for each chromosome.  This is very fast but requires that all files are of the same type (all VCF or all BCF) and have the same headers. This is because all tags and chromosome names in the BCF body rely on the implicit order of the contig and tag definitions in the header. Currently no sanity checks are in place. Dangerous, use with caution.
                    ]]></help>
                    <option value="no">No </option>
                    <option value="yes">Yes </option>
                </param>
                <when value="yes"/>
                <when value="no">
                    <conditional name="overlaps">
                        <param name="allow_overlaps" type="select" label="Allow Overlaps">
                            <help>
                            First coordinate of the next file can precede last record of the current file.
                            </help>
                            <option value="yes">Yes </option>
                            <option value="no">No </option>
                        </param>
                        <when value="yes">
                            <param name="rm_dups" type="select" label="Remove duplicate" optional="true">
                                <help><![CDATA[
                                 Output duplicate records present in multiple files only once:
                                   rm-dups <snps|indels|both|all|none>
                                ]]></help>
                                <option value="snps">snps - SNP records</option>
                                <option value="indels">indels - indel records</option>
                                <option value="both">both - both SNP and indel records</option>
                                <option value="all">all - records</option>
                                <option value="none">none - output multiple records instead</option>
                            </param>
                        </when>
                        <when value="no"/>
                    </conditional>
                    <param name="ligate" type="boolean" truevalue="--ligate" falsevalue="" label="Ligate"
                           help="Ligate phased VCFs by matching phase at overlapping haplotypes" />
                </when>
            </conditional>
            <param name="compact_PS" type="boolean" truevalue="--compact-PS" falsevalue="" label="Compact Ps"
                   help="Do not output PS tag at each site, only at the start of a new phase set block." />
            <param name="min_PQ" type="integer" label="Min Pq" value="30" optional="true"
                   help="Break phase set if phasing quality is lower than &lt;int&gt;" />
        </section>
        <expand macro="macro_select_output_type" />
    </inputs>
    <outputs>
        <expand macro="macro_vcf_output"/>
    </outputs>
    <tests>
        <test>
            <param name="input_files" ftype="vcf" value="concat.1.b.vcf,concat.1.a.vcf" />
            <param name="output_type" value="v" />
            <output name="output_file">
                <assert_contents>
                    <has_text_matching expression="1\t100"/>
                    <has_text_matching expression="3\t192"/>
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="input_files" ftype="vcf" value="concat.1.b.vcf,concat.1.a.vcf" />
            <param name="naive" value="yes" />
            <param name="output_type" value="v" />
            <output name="output_file">
                <assert_contents>
                    <has_text_matching expression="1\t100"/>
                    <has_text_matching expression="3\t192"/>
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="input_files" ftype="vcf" value="concat.2.b.vcf,concat.2.a.vcf" />
            <param name="allow_overlaps" value="yes" />
            <param name="output_type" value="v" />
            <output name="output_file">
                <assert_contents>
                    <has_text_matching expression="2\t140\t.\tA\tG"/>
                    <has_text_matching expression="2\t140\t.\tGT\tG"/>
                </assert_contents>
            </output>
        </test>
        <test>
            <param name="input_files" ftype="vcf" value="concat.2.b.vcf,concat.2.a.vcf" />
            <param name="allow_overlaps" value="yes" />
            <param name="rm_dups" value="none" />
            <param name="output_type" value="v" />
            <output name="output_file">
                <assert_contents>
                    <has_text_matching expression="2\t160\t.\tTAAAA"/>
                </assert_contents>
            </output>
        </test>
    </tests>
    <help><![CDATA[
=====================================
 bcftools @EXECUTABLE@ plugin
=====================================

Concatenate or combine VCF/BCF files. All source files must have the same sample columns appearing in the same order. The program can be used, for example, to concatenate chromosome VCFs into one VCF, or combine a SNP VCF and an indel VCF into one. The input files must be sorted by chr and position. The files must be given in the correct order to produce sorted VCF on output unless the -a, --allow-overlaps option is specified.


Naive concatenation is useful when using a galaxy workflow that splits a BAM file by chromosome, processes each in parallel, then bcftools concat merges the results into a single VCF file:

BAM -> bamtools split => bcftools mpileup => bcftools call => bcftools concat -> VCF


@REGIONS_HELP@

@BCFTOOLS_MANPAGE@#@EXECUTABLE@

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