view dexseq.xml @ 11:9a7c5b6d8f1e draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/dexseq commit 0ccfadf8ac4bc6514836c4efe6f605973a08d1ed
author iuc
date Tue, 02 Apr 2024 12:59:54 +0000
parents df929f257179
children
line wrap: on
line source

<tool id="dexseq" name="DEXSeq" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
    <description>Determines differential exon usage from count tables</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="xrefs"/>
    <expand macro="requirements"/>
    <code file="dexseq_helper.py" />
    <stdio>
        <regex match="Execution halted"
            source="both"
            level="fatal"
            description="Execution halted." />
        <regex match="Input-Error 01"
            source="both"
            level="fatal"
            description="Error in your input parameters: Make sure you only apply factors to selected samples." />
        <regex match="Error in"
            source="both"
            level="fatal"
            description="An undefined error occured, please check your input carefully and contact your administrator." />
        <regex match="Error:"
            source="both"
            level="fatal"
            description="Error in the R script." />
    </stdio>
    <version_command><![CDATA[
echo $(R --version | grep version | grep -v GNU)", DEXSeq version" $(R --vanilla --slave -e "library(DEXSeq); cat(sessionInfo()\$otherPkgs\$DEXSeq\$Version)" 2> /dev/null | grep -v -i "WARNING: ")" (depends on DESeq2 "$(R --vanilla --slave -e "library(DESeq2); cat(sessionInfo()\$otherPkgs\$DESeq2\$Version)" 2> /dev/null | grep -v -i "WARNING: ")")"
    ]]></version_command>
    <command><![CDATA[
 mkdir ./html_out &&
 #import json
 Rscript '$__tool_directory__/dexseq.R'
     -o '$dexseq_out'
     -p \${GALAXY_SLOTS:-4}
     #set $temp_factor_names = list()
     #for $factor in $rep_factorName:
         #set $temp_factor = list()
         #set $count_files1 = list()
         #for $file in $factor.countFiles1:
             $count_files1.append(str($file))
         #end for
         $temp_factor.append( {str($factor.factorLevel1): $count_files1} )

         #set $count_files2 = list()
         #for $file in $factor.countFiles2:
             $count_files2.append(str($file))
         #end for
         $temp_factor.append( {str($factor.factorLevel2): $count_files2} )
         $temp_factor_names.append([str($factor.factorName), $temp_factor])
     #end for
     -f '#echo json.dumps(temp_factor_names)#'
     -a $gtf
     -c $fdr_cutoff
     -d $rds

     #if $report:
         -r ./html_out
         &&
         mkdir '$htmlreport.extra_files_path'
         &&
         cp ./html_out/testForDEU.html $htmlreport
         &&
         cp -r ./html_out/* '$htmlreport.extra_files_path'
     #end if
    ]]></command>
    <inputs>
        <param name="gtf" type="data" format="gtf,gff" label="GTF file created from DEXSeq-Count tool"/>
        <repeat name="rep_factorName" title="Factor" min="1">
            <param name="factorName" type="text" value="FactorName" label="Specify a factor name"
                help="Only letters, numbers and underscores will be retained in this field">
                <sanitizer>
                    <valid initial="string.letters,string.digits"><add value="_" /></valid>
                </sanitizer>
            </param>
            <param name="factorLevel1" type="text" value="FactorLevel1" label="Specify a factor level"
                help="Only letters, numbers and underscores will be retained in this field">
                <sanitizer>
                    <valid initial="string.letters,string.digits"><add value="_" /></valid>
                </sanitizer>
            </param>
            <param name="countFiles1" type="data" format="tabular" multiple="true" label="Count file for factor level 1"/>

            <param name="factorLevel2" type="text" value="FactorLevel2" label="Specify a factor level"
                help="Only letters, numbers and underscores will be retained in this field">
                <sanitizer>
                    <valid initial="string.letters,string.digits"><add value="_" /></valid>
                </sanitizer>
            </param>
            <param name="countFiles2" type="data" format="tabular" multiple="true" label="Count files for factor level 2"/>
        </repeat>
        <param name="report" type="boolean" truevalue="True" falsevalue="False" checked="true"
            label="Visualise the analysis results?"
            help="Output an additional HTML file." />
        <param name="rds" type="boolean" truevalue="True" falsevalue="False" checked="false"
            label="Output rds file for plotDEXSeq?" help="Can be used to generate plots for individual genes with plotDEXSeq" />
        <param name="fdr_cutoff" type="float" min="0.0" max="1.0" value="0.05" label="All the genes under this FDR threshold will be shown in the html report"/>
    </inputs>
    <outputs>
        <data name="dexseq_out" format="tabular" label="${tool.name} on ${on_string}: result">
            <actions>
                <action name="column_names" type="metadata" default="GeneID,ExonID,Exon base mean,Dispersion,Stat,p-value,p-adj,X1_group1,X2_group2,log2(FC),Chr. name,Start,End,Width,Strand,Raw counts"/>
            </actions>
        </data>
        <data name="htmlreport" format="html" label="${tool.name} on ${on_string}: report">
            <filter>report is True</filter>
        </data>
        <data name="rds_out" format="rds" from_work_dir="DEXSeqResults.rds" label="${tool.name} on ${on_string}: rds file">
            <filter>rds is True</filter>
        </data>
    </outputs>
    <tests>
        <!-- Ensure default output works-->
        <test expect_num_outputs="1">
            <param name="gtf" value="dexseq.gtf" ftype="gtf"/>
            <repeat name="rep_factorName">
                <param name="factorName" value="condition"/>
                <param name="factorLevel1" value="knockdown"/>
                <param name="countFiles1" value="treated1fb.txt,treated2fb.txt,treated3fb.txt" ftype="tabular"/>
                <param name="factorLevel2" value="control"/>
                <param name="countFiles2" value="untreated1fb.txt,untreated2fb.txt,untreated3fb.txt,untreated4fb.txt" ftype="tabular"/>
            </repeat>
            <param name="report" value="False"/>
            <param name="fdr_cutoff" value="1"/>
            <output name="dexseq_out" file="dexseq_result.tabular" ftype="tabular" compare="sim_size"/>
        </test>
        <!-- Ensure report works-->
        <test expect_num_outputs="2">
            <param name="gtf" value="dexseq.gtf" ftype="gtf"/>
            <repeat name="rep_factorName">
                <param name="factorName" value="Treatment"/>
                <param name="factorLevel1" value="knockdown"/>
                <param name="countFiles1" value="treated1fb.txt,treated2fb.txt,treated3fb.txt" ftype="tabular"/>
                <param name="factorLevel2" value="control"/>
                <param name="countFiles2" value="untreated1fb.txt,untreated2fb.txt,untreated3fb.txt,untreated4fb.txt" ftype="tabular"/>
            </repeat>
            <param name="report" value="True"/>
            <param name="fdr_cutoff" value="1"/>
            <output name="dexseq_out" file="dexseq_result.tabular" ftype="tabular" compare="sim_size"/>
        </test>
        <!-- Ensure two factors works-->
        <test expect_num_outputs="1">
            <param name="gtf" value="dexseq.gtf" ftype="gtf"/>
            <repeat name="rep_factorName">
                <param name="factorName" value="condition"/>
                <param name="factorLevel1" value="knockdown"/>
                <param name="countFiles1" value="treated1fb.txt,treated2fb.txt,treated3fb.txt" ftype="tabular"/>
                <param name="factorLevel2" value="control"/>
                <param name="countFiles2" value="untreated1fb.txt,untreated2fb.txt,untreated3fb.txt,untreated4fb.txt" ftype="tabular"/>
            </repeat>
            <repeat name="rep_factorName">
                <param name="factorName" value="libtype"/>
                <param name="factorLevel1" value="singleend"/>
                <param name="countFiles1" value="treated1fb.txt,untreated1fb.txt,untreated2fb.txt" ftype="tabular"/>
                <param name="factorLevel2" value="pairedend"/>
                <param name="countFiles2" value="treated2fb.txt,treated3fb.txt,untreated3fb.txt,untreated4fb.txt" ftype="tabular"/>
            </repeat>
            <param name="report" value="False"/>
            <param name="fdr_cutoff" value="0.05"/>
            <output name="dexseq_out" file="dexseq_result_2fact.tabular" ftype="tabular" compare="sim_size"/>
        </test>
        <!-- Ensure rds output works-->
        <test expect_num_outputs="2">
            <param name="gtf" value="dexseq.gtf" ftype="gtf"/>
            <repeat name="rep_factorName">
                <param name="factorName" value="condition"/>
                <param name="factorLevel1" value="knockdown"/>
                <param name="countFiles1" value="treated1fb.txt,treated2fb.txt,treated3fb.txt" ftype="tabular"/>
                <param name="factorLevel2" value="control"/>
                <param name="countFiles2" value="untreated1fb.txt,untreated2fb.txt,untreated3fb.txt,untreated4fb.txt" ftype="tabular"/>
            </repeat>
            <param name="report" value="False"/>
            <param name="rds" value="True"/>
            <param name="fdr_cutoff" value="0.05"/>
            <output name="dexseq_out" ftype="tabular" file="dexseq_result.tabular" compare="sim_size"/>
            <output name="rds_out" ftype="rds" file="dexseq.rds" compare="sim_size"/>
        </test>
    </tests>
    <help><![CDATA[
.. class:: infomark

**What it does**

Inference of differential exon usage in RNA-Seq.


**Inputs**

DEXSeq_ takes count tables generated from the dexseq_count as input. Count tables must be generated for each sample individually.
DEXSeq_ is capable of handling multiple factors that affect your experiment. The first factor you input is considered to be the primary
factor that affects gene expressions. You can also input several secondary factors that might
influence your experiment but the final output will be changes in genes due to primary factor in the presence of secondary factors. Each factor has two levels/states.
You need to select an appropriate count table from your history for each factor level.

The following table gives some examples of factors and their levels:

========= ============== ===============
Factor    Factor level 1 Factor level 2
--------- -------------- ---------------
condition Knockdown      Wildtype
--------- -------------- ---------------
treatment Treated        Untreated
--------- -------------- ---------------
timePoint Day4           Day1
--------- -------------- ---------------
SeqType   SingleEnd      PairedEnd
--------- -------------- ---------------
Gender    Female         Male
========= ============== ===============

*Note*: Output log2 fold changes are based on primary factor level 1 vs. factor level 2. Here the order of factor levels is important. For example, for the factor 'condition' given in the above table, DEXSeq computes fold changes of 'Knockdown' samples against 'Wildtype', i.e. the values correspond to up or down regulations of genes in Knockdown samples.

**Output**

DEXSeq_ generates a tabular file containing the different columns and an optional html report. It can also ouput the DEXSeqResults R object that can be used with the plotDEXSeq tool to visualise individual genes.

====== ==========================================================
Column Description
------ ----------------------------------------------------------
     1 Gene and exon Identifiers
     2 group/gene identifier
     3 feature/exon identifier
     4 mean of the counts across samples in each feature/exon
     5 exon dispersion estimate
     6 LRT statistic
     7 LRT p-value
     8 BH adjusted p-values
     9 exon usage coefficient factorLevel 2
    10 exon usage coefficient factorLevel 1
    11 relative exon usage fold changes
    12 GRanges object of the coordinates of the exon/feature
    13 matrix of integer counts, of each column containing a sample
    14 list of transcripts overlapping with the exon
====== ==========================================================


.. _DEXSeq: http://master.bioconductor.org/packages/release/bioc/html/DEXSeq.html
    ]]></help>
    <citations>
        <citation type="doi">10.1101/gr.133744.111</citation>
    </citations>
</tool>