view tb_profiler_profile.xml @ 16:2c68b0c38785 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/blob/master/tools/tb-profiler commit b6d3c87b5000ddfef726e72ba00b0b3bf2978acd
author iuc
date Sun, 22 Jan 2023 10:48:05 +0000
parents 45083d070fb8
children d03af1c7002c
line wrap: on
line source

<tool id="tb_profiler_profile" name="TB-Profiler Profile" version="@TOOL_VERSION@+galaxy0" profile="20.09">
    <description>Infer strain types and drug resistance markers from sequences</description>
    <macros>
        <token name="@TOOL_VERSION@">4.4.1</token>
    </macros>
    <requirements>
        <requirement type="package" version="@TOOL_VERSION@">tb-profiler</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
        #if str($fastq_or_bam.input_select.value) in ("paired_fastq", "paired_collection_fastq", "single_fastq")
            #if str($fastq_or_bam.input_select.value) == "paired_fastq"
                #set r1_ext = $fastq_or_bam.read1.extension
                #set r2_ext = $fastq_or_bam.read2.extension
                ln -s '$fastq_or_bam.read1' fastq_r1.'$r1_ext' &&
                ln -s '$fastq_or_bam.read2' fastq_r2.'$r2_ext' &&
            #else if str($fastq_or_bam.input_select.value) == "single_fastq"
                #set r1_ext = $fastq_or_bam.fastq.extension
                ln -s '$fastq_or_bam.fastq' fastq_r1.'$r1_ext' &&
            #else if str($fastq_or_bam.input_select.value) == "paired_collection_fastq"
                #set r1_ext = $fastq_or_bam.fastq_collection.forward.extension
                #set r2_ext = $fastq_or_bam.fastq_collection.reverse.extension
                ln -s '$fastq_or_bam.fastq_collection.forward' fastq_r1.'$r1_ext' &&
                ln -s '$fastq_or_bam.fastq_collection.reverse' fastq_r2.'$r2_ext' &&
            #end if
        #else if str($fastq_or_bam.input_select.value) == "bam"
            ln -s '$fastq_or_bam.bam_input' input.bam &&
        #end if

        tb-profiler profile
            --platform '${platform.value}'
        #if str($fastq_or_bam.input_select.value) in ("paired_fastq", "paired_collection_fastq", "single_fastq")
            -1 fastq_r1.'$r1_ext'
        #end if
        #if str($fastq_or_bam.input_select.value) in ("paired_fastq", "paired_collection_fastq")
            -2 fastq_r2.'$r1_ext'
        #else if str($fastq_or_bam.input_select.value) == "bam"
            --bam input.bam
        #end if

            --threads "\${GALAXY_SLOTS:-1}"
        #if $advanced.options == 'yes'
            --mapper '${advanced.mapper}'
            --caller '${advanced.caller}'
            --min_depth '${advanced.min_depth}'
            --af '${advanced.min_allele_freq}'
            --reporting_af '${advanced.min_allele_freq_reporting}'
        #end if

        #if $output_format == "pdf"
            --pdf
        #else if $output_format == "txt"
            --txt
        #end if
        && mv results/tbprofiler.results.json $results_json
        #if str($fastq_or_bam.input_select) != "bam"
            && mv bam/tbprofiler.bam '${output_bam}'
        #end if
        && bcftools view -Ov -o'${output_vcf}' vcf/tbprofiler.targets.csq.vcf.gz
        #if $output_format == "pdf"
            && mv results/tbprofiler.results.pdf '${output_pdf}'
        #else if $output_format == "txt"
            && mv results/tbprofiler.results.txt '${output_txt}'
        #end if 

    ]]>    </command>
    <inputs>
        <param name="platform" type="select" label="Platform">
            <option value="illumina" selected="true">Illumina</option>
            <option value="nanopore">Nanopore</option>
            <option value="pacbio">PacBio</option>
        </param>
        <conditional name="fastq_or_bam">
            <param name="input_select" type="select" label="Input File Type">
                <option value="paired_fastq">Paired Fastq</option>
                <option value="paired_collection_fastq">Paired Collection Fastq</option>
                <option value="single_fastq">Single Fastq</option>
                <option value="bam">BAM</option>
            </param>
            <when value="paired_fastq">
                <param name="read1" type="data" format="fastq" label="Read1" help="First read file (default: None)"/>
                <param name="read2" type="data" format="fastq" optional="true" label="Read2" help="Second read file (default: None)"/>
            </when>
            <when value="paired_collection_fastq">
                <param label="Reads (collection)" name="fastq_collection" type="data_collection" collection_type="paired" format="fastq,fastq.gz,fastqsanger,fastqsanger.gz" />
            </when>
            <when value="single_fastq">
                <param label="Reads" name="fastq" type="data" format="fastq,fastq.gz,fastqsanger,fastqsanger.gz" />
            </when>
            <when value="bam">
                <param name="bam_input" type="data" format="bam" label="Bam" help="Warning!!!: The BAM files must have been created using the ensembl version of the genome."/>
            </when>
        </conditional>
        <param name="output_format" label="Output format" type="select">
            <option value="txt" selected="true">Text</option>
            <option value="pdf">PDF</option>
        </param>
        <conditional name="advanced">
            <param label="Select advanced options" type="select" name="options">
                <option value="yes">Yes</option>
                <option value="no" selected="true">No</option>
            </param>
            <when value="no">
            </when>
            <when value="yes">
                <param argument="mapper" label="Mapper" type="select" help="Mapping tools to use (default: bwa)">
                    <option value="bwa" selected="true">bwa</option>
                    <option value="minimap2">minimap2</option>
                    <option value="bowtie2">bowtie2</option>
                    <option value="bwa-mem2">bwa-mem2</option>
                </param>
                <param argument="caller" label="Variant caller" help="Variant calling tool to use" type="select">
                    <option value="freebayes" selected="true">freebayes</option>
                    <option value="bcftools">bcftools</option>
                    <option value="gatk">gatk</option>
                    <option value="pilon">pilon</option>
                    <option value="lofreq">lofreq</option>
                </param>
                <param name="min_depth" label="Min Depth" type="integer" value="10" help="Minimum depth required to call variant. Bases with depth below this cutoff will be marked as missing (default: 10)"/>
                <param name="min_allele_freq" argument="--af" type="float" value="0.1" label="Minimum allele frequency to call variants" help=" Minimum allele frequency to call variants (default: 0.1)" />
                <param name="min_allele_freq_reporting" argument="--reporting_af" value="0.1" label="Reporting Minimum allele frequency to call variants" type="float" help=" Minimum allele frequency to call variants (default: 0.1)"/>
            </when>
        </conditional>
    </inputs>
    <outputs>
        <data name="results_json" format="json" from_work_dir="results/tbprofiler.results.json" label="${tool.name} on ${on_string}: Results.json"/>
        <data format="vcf" name="output_vcf" label="${tool.name} VCF on ${on_string}" />
        <data format="bam" name="output_bam" label="${tool.name} BAM on ${on_string}">
            <filter>fastq_or_bam['input_select'] != 'bam'</filter>
        </data>
        <data format="pdf" name="output_pdf" label="${tool.name} PDF report on ${on_string}">
            <filter>output_format == 'pdf'</filter>
        </data>
        <data format="txt" name="output_txt" label="${tool.name} report on ${on_string}">
            <filter>output_format == 'txt'</filter>
        </data>

    </outputs>
    <tests>
        <test expect_num_outputs="4">
            <param name="input_select" value="single_fastq"/>
            <param name="fastq" ftype="fastq.gz" value="rif_resistant.fastq.gz" />
            <param name="output_format" value="txt" />
            <param name="platform" value="illumina" />
            <param name="options" value="no" />
            <output name="output_txt">
                <assert_contents>
                    <has_line line="Drug-resistance: RR-TB" />
                    <has_line line="lineage2.2.2&#009;1.000&#009;Beijing-RD105/RD207&#009;RD105;RD207" />
                    <has_line line="Rifampicin&#009;R&#009;rpoB p.Asp435Val (1.00)" />
                    <has_line line="761110&#009;Rv0667&#009;rpoB&#009;missense_variant&#009;p.Asp435Val&#009;1.000&#009;rifampicin&#009;type=who_confidence|drug=rifampicin|who_confidence=Assoc w R" />
                </assert_contents>
            </output>
        </test>
        <test expect_num_outputs="3">
            <param name="input_select" value="bam"/>
            <param name="bam_input" ftype="bam" value="rif_resistant.bam" />
            <param name="output_format" value="txt" />
            <param name="platform" value="illumina" />
            <param name="options" value="no" />
            <output name="output_txt">
                <assert_contents>
                    <has_line line="Drug-resistance: RR-TB" />
                    <has_line line="lineage2.2.2&#009;1.000&#009;Beijing-RD105/RD207&#009;RD105;RD207" />
                    <has_line line="Rifampicin&#009;R&#009;rpoB p.Asp435Val (1.00)" />
                    <has_line line="761110&#009;Rv0667&#009;rpoB&#009;missense_variant&#009;p.Asp435Val&#009;1.000&#009;rifampicin&#009;type=who_confidence|drug=rifampicin|who_confidence=Assoc w R" />
                </assert_contents>
            </output>
        </test>
        <test expect_num_outputs="4">
            <param name="input_select" value="single_fastq"/>
            <param name="fastq" ftype="fastq.gz" value="rif_resistant.fastq.gz" />
            <param name="output_format" value="txt" />
            <param name="platform" value="illumina" />
            <param name="options" value="yes" />
            <param name="min_allele_freq" value="0.25" />
            <param name="min_allele_freq_reporting" value="0.33" />
            <output name="output_txt">
                <assert_contents>
                    <has_line line="Drug-resistance: RR-TB" />
                    <has_line line="lineage2.2.2&#009;1.000&#009;Beijing-RD105/RD207&#009;RD105;RD207" />
                    <has_line line="Rifampicin&#009;R&#009;rpoB p.Asp435Val (1.00)" />
                    <has_line line="761110&#009;Rv0667&#009;rpoB&#009;missense_variant&#009;p.Asp435Val&#009;1.000&#009;rifampicin&#009;type=who_confidence|drug=rifampicin|who_confidence=Assoc w R" />
                </assert_contents>
            </output>
        </test>
    </tests>
    <help><![CDATA[    
Summary
=======

The pipeline aligns reads to the H37Rv reference using BWA, bowtie2 or minimap2 and then calls variants 
(using bcftools, GATK4 or freebayes). These variants are then compared to a drug-resistance database. 
TB-Profiler also predicts the number of reads supporting drug resistance variants as an insight into
hetero-resistance (not applicable for MinION data).

Produces a JSON output file by default.

    ]]>    </help>
    <citations>
        <citation type="doi">10.1186/s13073-019-0650-x</citation>
    </citations>
</tool>