view geneBody_coverage.xml @ 63:27e16a30667a draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/rseqc commit d7544582d5599c67a284faf9232cd2ccc4daa1de
author iuc
date Tue, 09 Apr 2024 11:24:55 +0000
parents 5968573462fa
children
line wrap: on
line source

<tool id="rseqc_geneBody_coverage" name="Gene Body Coverage (BAM)" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@GALAXY_VERSION@">
    <description>read coverage over gene body</description>
    <macros>
        <import>rseqc_macros.xml</import>
    </macros>
    <expand macro="bio_tools"/>
    <expand macro="requirements"/>
    <expand macro="stdio"/>
    <version_command><![CDATA[geneBody_coverage.py --version]]></version_command>
    <command><![CDATA[
    #if str($batch_mode.batch_mode_selector) == "merge":
        #import re
        #set $input_list = []
        #for $i, $input in enumerate($batch_mode.inputs):
            #set $safename = re.sub('[^\w\-_]', '_', $input.element_identifier)
            #if $safename in $input_list:
                #set $safename = str($safename) + "." + str($i)
            #end if
            $input_list.append($safename)
            ln -sf '${input}' '${safename}.bam' &&
            ln -sf '${input.metadata.bam_index}' '${safename}.bam.bai' &&
            echo '${safename}.bam' >> 'input_list.txt' &&
        #end for
        geneBody_coverage.py -i 'input_list.txt' -r '${refgene}' --minimum_length ${minimum_length} -o output
    #else
        #set $safename = re.sub('[^\w\-_]', '_', $batch_mode.input.element_identifier)
        ln -sf '${batch_mode.input}' '${safename}.bam' &&
        ln -sf '${batch_mode.input.metadata.bam_index}' '${safename}.bam.bai' &&
        geneBody_coverage.py -i '${safename}.bam' -r '${refgene}' --minimum_length ${minimum_length} -o output
    #end if
    ]]>
  </command>
    <inputs>
        <conditional name="batch_mode">
            <param name="batch_mode_selector" type="select" label="Run each sample separately, or combine mutiple samples into one plot">
                <option value="batch" selected="true">Run each sample separately</option>
                <option value="merge">Combine multiple samples into a single plot</option>
            </param>
            <when value="batch">
                <param name="input" type="data" label="Input .bam file" format="bam" help="(--input-file)"/>
            </when>
            <when value="merge">
                <param name="inputs" type="data" label="Input .bam file(s)" format="bam" help="(--input-file)" multiple="true"/>
            </when>
        </conditional>
        <expand macro="refgene_param"/>
        <param name="minimum_length" type="integer" value="100" label="Minimum mRNA length (default: 100)" help="Minimum mRNA length in bp, mRNA that are shorter than this value will be skipped (--minimum_length)."/>
        <expand macro="rscript_output_param"/>
    </inputs>
    <outputs>
        <data name="outputcurvespdf" format="pdf" from_work_dir="output.geneBodyCoverage.curves.pdf" label="${tool.name} on ${on_string}: curves (PDF)"/>
        <data name="outputheatmappdf" format="pdf" from_work_dir="output.geneBodyCoverage.heatMap.pdf" label="${tool.name} on ${on_string}: heatmap (PDF)">
            <filter>batch_mode['batch_mode_selector'] == 'merge' and len(inputs) &gt;= 3</filter>
        </data>
        <expand macro="rscript_output_data" filename="output.geneBodyCoverage.r" label="${tool.name} on ${on_string}: Rscript"/>
        <data name="outputtxt" format="txt" from_work_dir="output.geneBodyCoverage.txt" label="${tool.name} on ${on_string}: stats (TXT)"/>
    </outputs>
    <!-- PDF Files contain R version, must avoid checking for diff -->
    <tests>
        <test expect_num_outputs="3">
            <conditional name="batch_mode">
                <param name="batch_mode_selector" value="batch"/>
                <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/>
            </conditional>
            <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed"/>
            <param name="rscript_output" value="true"/>
            <output name="outputcurvespdf" file="output.geneBodyCoverage.curves.pdf" compare="sim_size"/>
            <output name="outputr" file="output.geneBodyCoverage_r"/>
            <output name="outputtxt" file="output.geneBodyCoverage.txt"/>
        </test>
        <test expect_num_outputs="4">
            <conditional name="batch_mode">
                <param name="batch_mode_selector" value="merge"/>
                <param name="inputs" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam,pairend_strandspecific_51mer_hg19_chr1_1-100000.bam,pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/>
            </conditional>
            <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed" ftype="bed12"/>
            <param name="rscript_output" value="true"/>
            <output name="outputcurvespdf" file="output2.geneBodyCoverage.curves.pdf" compare="sim_size"/>
            <output name="outputheatmappdf" file="output2.geneBodyCoverage.heatMap.pdf" compare="sim_size"/>
            <output name="outputr" file="output2.geneBodyCoverage_r"/>
            <output name="outputtxt" file="output2.geneBodyCoverage.txt"/>
        </test>
    </tests>
    <help><![CDATA[
## geneBody_coverage.py

Read coverage over gene body. This module is used to check if read coverage is uniform and if there is any 5\'/3\' bias. This module scales all transcripts to 100 nt and calculates the number of reads covering each nucleotide position. Finally, it generates plots illustrating the coverage profile along the gene body.

If 3 or more BAM files were provided. This program generates a lineGraph and a heatmap. If fewer than 3 BAM files were provided, only lineGraph is generated. See below for examples.

When heatmap is generated, samples are ranked by the "skewness" of the coverage: Sample with best (worst) coverage will be displayed at the top (bottom) of the heatmap.
Coverage skewness was measured by `Pearson’s skewness coefficients <http://en.wikipedia.org/wiki/Skewness#Pearson.27s_skewness_coefficients>`_

.. image:: $PATH_TO_IMAGES/geneBody_workflow.png
    :width: 800 px
    :scale: 80 %


## Inputs

Input BAM/SAM file
    Alignment file in BAM/SAM format.

Reference gene model
    Gene Model in BED format.

Minimum mRNA length
    Minimum mRNA length (bp). mRNA that are shorter than this value will be skipped (default is 100).

## Outputs

Text
    Table that includes the data used to generate the plots

R Script
    R script file that reads the data and generates the plot

PDF
    The final plot, in PDF format

Example plots:
.. image:: $PATH_TO_IMAGES/Aug_26.geneBodyCoverage.curves.png
:height: 600 px
:width: 600 px
:scale: 80 %

.. image:: $PATH_TO_IMAGES/Aug_26.geneBodyCoverage.heatMap.png
    :height: 600 px
    :width: 600 px
    :scale: 80 %

@ABOUT@

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