22
|
1 <tool id="iuc_deseq2" name="DESeq2" version="2.1.6.0">
|
|
2 <description>Determines differentially expressed features from count tables</description>
|
1
|
3 <requirements>
|
13
|
4 <requirement type="binary">Rscript</requirement>
|
|
5 <requirement type="R-module">DESeq2</requirement>
|
24
|
6 <!-- odering is crucial, otherwise R will override the ENV variables from deseq2 -->
|
23
|
7 <requirement type="package" version="3.1.0">R</requirement>
|
22
|
8 <requirement type="package" version="1.6.1">deseq2</requirement>
|
1
|
9 </requirements>
|
22
|
10 <code file="helper.py" />
|
13
|
11 <command interpreter="Rscript">
|
20
|
12 #import json
|
13
|
13 deseq2.R
|
|
14 -o "$deseq_out"
|
17
|
15 --outfilefiltered "$deseq_out_filtered"
|
14
|
16
|
|
17 #if $pdf:
|
17
|
18 -p "$plots"
|
14
|
19 #end if
|
22
|
20
|
|
21 #set $temp_factor_names = list()
|
17
|
22 #for $factor in $rep_factorName:
|
22
|
23
|
|
24 #set $temp_factor = list()
|
17
|
25 #for $level in $factor.rep_factorLevel:
|
22
|
26 #set $count_files = list()
|
|
27 #for $file in $level.rep_countsFile:
|
|
28 $count_files.append(str($file.countsFile))
|
|
29 #end for
|
|
30 $temp_factor.append( {str($level.factorLevel): $count_files} )
|
17
|
31 #end for
|
22
|
32 $temp_factor_names.append([str($factor.factorName), $temp_factor])
|
14
|
33
|
|
34 #end for
|
|
35
|
22
|
36 -m '#echo json.dumps(temp_factor_names)#'
|
|
37 #if str($filtermode.mode) == "absolute":
|
|
38 -c $filtermode.count_abs
|
|
39 #elif str($filtermode.mode) == "quantile":
|
|
40 -c $filtermode.count_quant
|
|
41 #end if
|
|
42 --filtermode $filtermode.mode
|
0
|
43 </command>
|
14
|
44 <stdio>
|
22
|
45 <exit_code range="1:" />
|
|
46 <exit_code range=":-1" />
|
|
47 <regex match="Error:" />
|
|
48 <regex match="Exception:" />
|
14
|
49 </stdio>
|
0
|
50 <inputs>
|
22
|
51 <repeat name="rep_factorName" title="Factor" min="1">
|
|
52 <param name="factorName" type="text" value="FactorName" label="Specify a factor name"
|
|
53 help="Only letters, numbers and underscores will be retained in this field">
|
|
54 <sanitizer>
|
|
55 <valid initial="string.letters,string.digits"><add value="_" /></valid>
|
|
56 </sanitizer>
|
|
57 </param>
|
|
58 <repeat name="rep_factorLevel" title="Factor level" min="2" max="2" default="2">
|
|
59 <param name="factorLevel" type="text" value="FactorLevel" label="Specify a factor level"
|
|
60 help="Only letters, numbers and underscores will be retained in this field">
|
|
61 <sanitizer>
|
|
62 <valid initial="string.letters,string.digits"><add value="_" /></valid>
|
|
63 </sanitizer>
|
13
|
64 </param>
|
22
|
65 <repeat name="rep_countsFile" title="Biological replicate" min="1">
|
|
66 <param name="countsFile" type="data" label="Counts file"/>
|
|
67 </repeat>
|
17
|
68 </repeat>
|
|
69 </repeat>
|
22
|
70 <conditional name="filtermode">
|
|
71 <param name="mode" type="select" label="Filter out features with following criteria">
|
|
72 <option value="absolute">Filter based on absolute normalized mean counts</option>
|
|
73 <option value="quantile">Filter based on quantiles</option>
|
17
|
74 </param>
|
22
|
75 <when value="absolute">
|
|
76 <param name="count_abs" size="10" type="float" value="10.0" label="Filter out features with mean normalized counts lower than this value"/>
|
|
77 </when>
|
|
78 <when value="quantile">
|
|
79 <param name="count_quant" size="10" type="float" value="10.0" min="0" max="100" label="Filter out features with mean normalized counts lower than this % of values" />
|
|
80 </when>
|
|
81 </conditional>
|
|
82 <param name="pdf" type="boolean" truevalue="" falsevalue="" checked="true" label="Visualising the analysis results"
|
20
|
83 help="output an additional PDF files" />
|
0
|
84 </inputs>
|
|
85
|
17
|
86 <outputs>
|
22
|
87 <data format="tabular" name="deseq_out" label="DESeq2 result file on ${on_string}"/>
|
|
88 <data format="tabular" name="deseq_out_filtered" label="Independent filtering result file on ${on_string}"/>
|
17
|
89 <data format="pdf" name="plots" label="DESeq2 plots on ${on_string}">
|
|
90 <filter>pdf == True</filter>
|
|
91 </data>
|
|
92 </outputs>
|
0
|
93
|
24
|
94 <tests>
|
|
95 <test>
|
|
96 <param name="factorName" value="Treatment"/>
|
|
97 <param name="factorLevel" value="Treated"/>
|
|
98 <param name="countsFile" value="GSM461179_treat_single.counts"/>
|
|
99 <param name="countsFile" value="GSM461180_treat_paired.counts"/>
|
|
100 <param name="countsFile" value="GSM461181_treat_paired.counts"/>
|
|
101 <param name="factorLevel" value="Untreated"/>
|
|
102 <param name="countsFile" value="GSM461176_untreat_single.counts"/>
|
|
103 <param name="countsFile" value="GSM461177_untreat_paired.counts"/>
|
|
104 <param name="countsFile" value="GSM461178_untreat_paired.counts"/>
|
|
105 <param name="countsFile" value="GSM461182_untreat_single.counts"/>
|
|
106 <output name="deseq_out" file="deseq2_out.txt"/>
|
|
107 <output name="deseq_out_filtered" file="deseq_out_filtered.txt"/>
|
|
108 <output name="plots" file="deseq_plots.pdf"/>
|
|
109 </test>
|
|
110 </tests>
|
|
111
|
17
|
112 <help>
|
13
|
113
|
|
114 .. class:: infomark
|
0
|
115
|
13
|
116 **What it does**
|
|
117
|
14
|
118 Estimate variance-mean dependence in count data from high-throughput sequencing assays and test for differential expression based on a model using the negative binomial distribution
|
0
|
119
|
|
120
|
13
|
121 **Inputs**
|
0
|
122
|
22
|
123 DESeq2_ takes count tables that generated from the htseq-count as input. Count tables must be generated for each sample individually. DESeq2 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.
|
|
124
|
|
125 The following table gives some examples of factors and their levels:
|
13
|
126
|
22
|
127 ========= ============== ===============
|
|
128 Factor Factor level 1 Factor level 2
|
|
129 --------- -------------- ---------------
|
|
130 Treatment Treated Untreated
|
|
131 --------- -------------- ---------------
|
|
132 Condition Knockdown Wildtype
|
|
133 --------- -------------- ---------------
|
|
134 TimePoint Day4 Day1
|
|
135 --------- -------------- ---------------
|
|
136 SeqType SingleEnd PairedEnd
|
|
137 --------- -------------- ---------------
|
|
138 Gender Female Male
|
|
139 ========= ============== ===============
|
14
|
140
|
22
|
141 *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 'Treatment' given in above table, DESeq2 computes fold changes of 'Treated' samples against 'Untreated', i.e. the values correspond to up or down regulations of genes in Treated samples.
|
13
|
142
|
|
143 **Output**
|
|
144
|
14
|
145 DESeq2_ generates a tabular file containing the different columns and optional visualized results as PDF.
|
|
146
|
|
147 ====== ==========================================================
|
|
148 Column Description
|
|
149 ------ ----------------------------------------------------------
|
17
|
150 1 Gene Identifiers
|
|
151 2 mean normalised counts, averaged over all samples from both conditions
|
22
|
152 3 the logarithm (to basis 2) of the fold change (See the note in inputs section)
|
17
|
153 4 standard error estimate for the log2 fold change estimate
|
|
154 5 p value for the statistical significance of this change
|
|
155 6 p value adjusted for multiple testing with the Benjamini-Hochberg procedure
|
14
|
156 which controls false discovery rate (FDR)
|
|
157 ====== ==========================================================
|
|
158
|
13
|
159
|
14
|
160 .. _DESeq2: http://master.bioconductor.org/packages/release/bioc/html/DESeq2.html
|
13
|
161
|
17
|
162 </help>
|
22
|
163 <citations>
|
|
164 <citation type="doi">10.1101/002832</citation>
|
|
165 </citations>
|
0
|
166 </tool>
|