view dexseq.xml @ 2:6e8b61c54ff3 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/dexseq commit 0a56599c36b4968095ec5a3cb589f94fb139466c
author iuc
date Sun, 28 Jan 2018 04:04:39 -0500
parents f1c406f9554c
children 251393b72616
line wrap: on
line source

<tool id="dexseq" name="DEXSeq" version="@VERSION@.0">
    <description>Determines differential exon usage from count tables</description>
     <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="requirements">
        <requirement type="package" version="1.20.0">r-getopt</requirement>
        <requirement type="package" version="0.2.15">r-rjson</requirement>
    </expand>
    <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

     #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="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 format="tabular" name="dexseq_out" label="DEXSeq result file on ${on_string}" />
        <data format="html" name="htmlreport" label="DEXSeq report on ${on_string}">
            <filter>report 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"/>
        </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"/>
        </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"/>
        </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 effect your experiment. The first factor you input is considered as the primary
factor that affects gene expressions. You also input several secondary factors that might
influence your experiment. But the final output will be changes in genes due to primary factor in presence of secondary factors. Each factor has two levels/states.
You need to select 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 level2. Here the order of factor levels is important. For example, for the factor 'condition' given in 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.

====== ==========================================================
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>