view bedtools_genomecov/macros.xml @ 13:e956573b9f5a draft

Uploaded
author jackcurragh
date Fri, 27 Jan 2023 11:01:08 +0000
parents e54b9793e28d
children 163cc2b61d5e
line wrap: on
line source

<macros>
    <xml name="requirements">
        <requirements>
            <requirement type="package" version="@TOOL_VERSION@">bedtools</requirement>
            <yield/>
        </requirements>
    </xml>
    <xml name="bio_tools">
        <xrefs>
            <xref type="bio.tools">bedtools</xref>
        </xrefs>
    </xml>
    <token name="@TOOL_VERSION@">2.30.2</token>
    <token name="@SAMTOOLS_VERSION@">1.9</token>
    <token name="@STD_BEDTOOLS_INPUTS@">bed,bedgraph,gff,vcf,encodepeak</token>
    <token name="@STD_BEDTOOLS_INPUT_LABEL@">BED/bedGraph/GFF/VCF/EncodePeak</token>
    <token name="@PROFILE@">20.05</token>
    <xml name="stdio">
        <stdio>
            <!-- Anything other than zero is an error -->
            <exit_code range="1:" />
            <exit_code range=":-1" />
            <!-- In case the return code has not been set propery check stderr too -->
            <regex match="Error:" />
            <regex match="Exception:" />
        </stdio>
        <version_command>bedtools --version</version_command>
    </xml>
    <xml name="reciprocal">
        <param name="reciprocal" argument="-r" type="select" label="Require that the fraction of overlap be reciprocal for A and B" help="In other words, if -f is 0.90 and -r is used, this requires that B overlap at least 90% of A and that A also overlaps at least 90% of B.">
            <option value="" selected="true">No</option>
            <option value="-r">Yes</option>
        </param>
    </xml>
    <xml name="fraction" token_name="" token_argument="" token_label="" token_help="" >
        <param name="@NAME@" argument="@ARGUMENT@" type="float" min="0" max="1" optional="true" label="@LABEL@" help="@HELP@" />
    </xml>
    <xml name="overlap" token_name="overlap" token_argument="-f" token_fracof="A">
        <expand macro="fraction" name="@NAME@" argument="@ARGUMENT@" label="Minimum overlap required as a fraction of @FRACOF@" help="Default is 1E-9, i.e. 1bp."/>
    </xml>
    <token name="@OVERLAP@"><![CDATA[
        #if str($overlap):
            -f $overlap
        #end if
    ]]></token>
    <xml name="strand2">
        <param name="strand" type="select" label="Calculation based on strandedness?">
            <option value="" selected="true">Overlaps on either strand</option>
            <option value="-s">Only overlaps occurring on the **same** strand.</option>
            <option value="-S">Only overlaps occurring on the **opposite** strand.</option>
        </param>
    </xml>
    <xml name="seed">
        <conditional name="seed">
            <param name="seed_choose" type="select" label="Choose Seed?">
                <option value="False" selected="true">Random Shuffling</option>
                <option value="True">Choose fixed seed</option>
            </param>
            <when value="True">
                <param argument="-seed" type="integer" value="12345" label="Enter Seed" />
            </when>
            <when value="False" />
        </conditional>
    </xml>
    <xml name="split">
        <param argument="-split" type="boolean" truevalue="-split" falsevalue="" checked="false"
            label="Treat split/spliced BAM or BED12 entries as distinct BED intervals when computing coverage."
            help="If set, the coverage will be calculated based the spliced intervals only. For BAM files, this inspects the CIGAR N operation to infer the blocks for computing coverage. For BED12 files, this inspects the BlockCount, BlockStarts, and BlockEnds fields (i.e., columns 10,11,12). If this option is not set, coverage will be calculated based on the interval's START/END coordinates, and would include introns in the case of RNAseq data." />
    </xml>
    <xml name="input_conditional_genome_file" token_optional="false" token_help="">
        <conditional name="genome_file_opts">
            <param name="genome_file_opts_selector" type="select" label="Genome file" help="@HELP@">
                <!-- <option value="loc" selected="true">Locally installed Genome file</option> -->
                <option value="hist">Genome file from your history</option>
            </param>
            <!-- <when value="loc">
                <param name="genome" type="select" optional="@OPTIONAL@" multiple="false" label="Genome file">
                    <options from_data_table="__dbkeys__" />
                </param>
            </when> -->
            <when value="hist">
                <param name="genome" type="data" optional="@OPTIONAL@" format="tabular" label="Genome file" />
            </when>
        </conditional>
    </xml>
    <token name="@GENOME_FILE@">
#if $genome_file_opts.genome
    -g 
    #if $genome_file_opts.genome_file_opts_selector == "loc":
        '$genome_file_opts.genome.fields.len_path'
    #elif $genome_file_opts.genome_file_opts_selector == "hist":
        '$genome_file_opts.genome'
    #end if
#end if
    </token>
    <token name="@GENOME_FILE_MAKEWINDOWS@">
#if $type.type_select == "genome":
    #if $type.genome_file_opts.genome_file_opts_selector == "loc":
        -g '$type.genome_file_opts.genome.fields.len_path'
    #elif $type.genome_file_opts.genome_file_opts_selector == "hist":
        -g '$type.genome_file_opts.genome'
    #end if
#end if
    </token>
    <token name="@GENOME_FILE_UNION@">
#if $empty.empty_selector == "-empty":
    #if $empty.genome_file_opts.genome_file_opts_selector == "loc":
        -g '$empty.genome_file_opts.genome.fields.len_path'
    #elif $empty.genome_file_opts.genome_file_opts_selector == "hist":
        -g '$empty.genome_file_opts.genome'
    #end if
#end if
    </token>
    <token name="@GENOME_FILE_COVERAGE@">
#if $input_type.input_type_select == "bam":
    -ibam '$input_type.input'
#else:
    -i '$input_type.input'
    #if $input_type.genome_file_opts.genome_file_opts_selector == "loc":
        -g '$input_type.genome_file_opts.genome.fields.len_path'
    #elif $input_type.genome_file_opts.genome_file_opts_selector == "hist":
        -g '$input_type.genome_file_opts.genome'
    #end if
#end if
    </token>
    <xml name="closest_D_option">
        <param argument="-iu" type="boolean" truevalue="-iu" falsevalue="" checked="false"
            label="Ignore features in B that are upstream of features in A"
            help="This option requires -D and follows its orientation rules for determining what is 'upstream'" />

        <param argument="-id" type="boolean" truevalue="-id" falsevalue="" checked="false"
            label="Ignore features in B that are downstream of features in A"
            help="This option requires -D and follows its orientation rules for determining what is 'downstream'" />

        <param argument="-fu" type="boolean" truevalue="-fu" falsevalue="" checked="false"
            label="Choose first from features in B that are upstream of features in A"
            help="This option requires -D and follows its orientation rules for determining what is 'upstream'" />

        <param argument="-fd" type="boolean" truevalue="-fd" falsevalue="" checked="false"
            label="Choose first from features in B that are downstream of features in A"
            help="This option requires -D and follows its orientation rules for determining what is 'downstream'" />
    </xml>
    <xml name="addition">
        <conditional name="addition">
            <param name="addition_select" type="select" label="Choose what you want to do">
                <option value="b" selected="true">Increase the @STD_BEDTOOLS_INPUT_LABEL@ entry by the same number base pairs in each direction.</option>
                <option value="lr">Increase by Start Coordinate and End Coordinate</option>
            </param>
            <when value="b">
                <param name="b" value="1" label="Number of base pairs" type="integer" />
            </when>
            <when value="lr">
                <param name="l" type="integer" value="0" label="The number of base pairs to subtract from the start coordinate" />
                <param name="r" type="integer" value="0" label="The number of base pairs to add to the end coordinate" />
            </when>
        </conditional>
    </xml>
    <xml name="print_header">
        <param argument="-header" type="boolean" truevalue="-header" falsevalue="" checked="false"
            label="Print the header from the A file prior to results" />
    </xml>
    <!-- TODO this is currently not used, but we should make use of it -->
    <xml name="genome_validator">
        <validator type="unspecified_build" />
        <validator type="dataset_metadata_in_data_table" table_name="fasta_indexes" metadata_name="dbkey" metadata_column="1" message="Sequences are not currently available for the specified build." />
    </xml>

    <!-- ToDo column_picker -->
    <xml name="choose_columns">
        <param name="cols" argument="-c" type="text" value=""
            label="Specify the column(s) that should be summarized"
            help="Comma separated">
            <sanitizer invalid_char="">
                <valid initial="string.digits"><add value=","/></valid>
            </sanitizer>
        </param>
    </xml>

    <token name="@C_AND_O_ARGUMENT@">
        #set $col = list()
        #set $op = list()
        #for $item in $c_and_o_argument_repeat:
            #silent $col.append( str($item.col) )
            #silent $op.append( str($item.operation) )
        #end for
        #if $col:
            -c #echo ','.join($col)#
            -o #echo ','.join($op)#
        #end if
    </token>

    <xml name="c_and_o_argument">
        <repeat name="c_and_o_argument_repeat" title="Applying operations to columns from merged intervals" min="0">
            <yield />
            <expand macro="choose_operations">
                <expand macro="math_options" />
                <expand macro="additional_math_options" />
            </expand>
        </repeat>
    </xml>

    <xml name="choose_operations">
        <param name="operation" type="select" label="Specify the operation">
            <yield />
        </param>
    </xml>

    <xml name="math_options">
        <option value="sum" selected="true">Sum - numeric only</option>
        <option value="min">Min - numeric only</option>
        <option value="max">Max - numeric only</option>
        <option value="absmin">AbsMin - numeric only</option>
        <option value="absmax">AbsMax - numeric only</option>
        <option value="mean">Mean - numeric only</option>
        <option value="median">Median - numeric only</option>
        <option value="mode">Mode - numeric only</option>
        <option value="antimode">Antimode - numeric only</option>
        <option value="collapse">collapse (i.e., print a comma separated list) - numeric or text</option>
    </xml>
    <xml name="additional_math_options">
        <option value="count">Count - numeric or text</option>
        <option value="count_disctinct">Count Distinct - numeric or text</option>
        <option value="distinct">distinct (i.e., print a comma separated list) - numeric or text</option>
        <option value="concat">concat (i.e., print a comma separated list) - numeric or text</option>
    </xml>
    <xml name="sorted">
        <!-- -sorted -g  -->
        <param argument="-sorted" type="boolean" truevalue="-sorted" falsevalue="" checked="false"
            label="For coordinate sorted input file the more efficient sweeping algorithm is enabled."/>
    </xml>
    <token name="@SORTED@">
<![CDATA[
$sorted
#if str($sorted) != '':
    #if str($reduce_or_iterate.reduce_or_iterate_selector) == 'iterate' and $reduce_or_iterate.inputB.is_of_type('bam'):
        -g <(samtools view -H $reduce_or_iterate.inputB | tr ':' '\t' | grep SN | cut -f 3,5)
    #else if str($reduce_or_iterate.reduce_or_iterate_selector) == 'reduce' and str($reduce_or_iterate.inputB) != 'None' and $reduce_or_iterate.inputB[0].is_of_type('bam'):
        -g <(samtools view -H $reduce_or_iterate.inputB[0] | tr ':' '\t' | grep SN | cut -f 3,5)
    #end if
#end if
]]>
    </token>
    <token name="@REFERENCES@">
<![CDATA[
------

This tool is part of the `bedtools package`_ from the `Quinlan laboratory`_.

.. _bedtools package: https://github.com/arq5x/bedtools2
.. _Quinlan laboratory: http://quinlanlab.org


**Citation**

If you use this tool in Galaxy, please cite:

Bjoern A. Gruening (2014), `Galaxy wrapper <https://github.com/bgruening/galaxytools>`_
]]>
    </token>
    <xml name="citations">
        <citations>
            <citation type="doi">10.1093/bioinformatics/btq033</citation>
            <yield />
        </citations>
    </xml>
</macros>