comparison limma_voom.xml @ 3:38aab66ae5cb draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/limma_voom commit 1640914b9812b0482a3cf684f05465f8d9cfdc65
author iuc
date Wed, 31 Jan 2018 12:45:42 -0500
parents a330ddf43861
children a61a6e62e91f
comparison
equal deleted inserted replaced
2:a330ddf43861 3:38aab66ae5cb
1 <tool id="limma_voom" name="limma-voom" version="1.2.0"> 1 <tool id="limma_voom" name="limma" version="3.34.6.0">
2 <description> 2 <description>
3 Differential expression with optional sample weights 3 Perform differential expression with limma-voom or limma-trend
4 </description> 4 </description>
5 5
6 <requirements> 6 <requirements>
7 <requirement type="package" version="3.16.5">bioconductor-edger</requirement> 7 <requirement type="package" version="3.34.6">bioconductor-limma</requirement>
8 <requirement type="package" version="3.30.13">bioconductor-limma</requirement> 8 <requirement type="package" version="3.20.7">bioconductor-edger</requirement>
9 <requirement type="package" version="1.4.29">r-statmod</requirement> 9 <requirement type="package" version="1.4.30">r-statmod</requirement>
10 <requirement type="package" version="0.4.1">r-scales</requirement> 10 <requirement type="package" version="0.5.0">r-scales</requirement>
11 <requirement type="package" version="0.2.15">r-rjson</requirement>
12 <requirement type="package" version="1.20.0">r-getopt</requirement>
11 </requirements> 13 </requirements>
12 14
13 <version_command><![CDATA[ 15 <version_command><![CDATA[
14 echo $(R --version | grep version | grep -v GNU)", limma version" $(R --vanilla --slave -e "library(limma); cat(sessionInfo()\$otherPkgs\$limma\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", edgeR version" $(R --vanilla --slave -e "library(edgeR); cat(sessionInfo()\$otherPkgs\$edgeR\$Version)" 2> /dev/null | grep -v -i "WARNING: ") 16 echo $(R --version | grep version | grep -v GNU)", limma version" $(R --vanilla --slave -e "library(limma); cat(sessionInfo()\$otherPkgs\$limma\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", edgeR version" $(R --vanilla --slave -e "library(edgeR); cat(sessionInfo()\$otherPkgs\$edgeR\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", statmod version" $(R --vanilla --slave -e "library(statmod); cat(sessionInfo()\$otherPkgs\$statmod\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", scales version" $(R --vanilla --slave -e "library(scales); cat(sessionInfo()\$otherPkgs\$scales\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", rjson version" $(R --vanilla --slave -e "library(rjson); cat(sessionInfo()\$otherPkgs\$rjson\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", getopt version" $(R --vanilla --slave -e "library(getopt); cat(sessionInfo()\$otherPkgs\$getopt\$Version)" 2> /dev/null | grep -v -i "WARNING: ")
15 ]]></version_command> 17 ]]></version_command>
16 18
17 <command detect_errors="exit_code"><![CDATA[ 19 <command detect_errors="exit_code"><![CDATA[
20 #import json
18 Rscript '$__tool_directory__/limma_voom.R' 21 Rscript '$__tool_directory__/limma_voom.R'
19 '$counts' 22
23 -R '$outReport'
24 -o '$outReport.files_path'
25
26 #if $input.format=="files":
27
28 ## Adapted from DESeq2 wrapper
29 #set $temp_factor_names = list()
30 #for $fact in $input.rep_factor:
31 #set $temp_factor = list()
32 #for $g in $fact.rep_group:
33 #set $count_files = list()
34 #for $file in $g.countsFile:
35 $count_files.append(str($file))
36 #end for
37 $temp_factor.append( {str($g.groupName): $count_files} )
38 #end for
39
40 $temp_factor.reverse()
41 $temp_factor_names.append([str($fact.factorName), $temp_factor])
42 #end for
43 -j '#echo json.dumps(temp_factor_names)#'
44
45 #elif $input.format=="matrix":
46 -m '$input.counts'
47 #if $input.fact.ffile=='yes':
48 -f '$input.fact.finfo'
49 #else:
50 -i '${ '|'.join( ['%s::%s' % ($x.factorName, $x.groupNames) for x in $input.fact.rep_factor] ) }'
51 #end if
52 #end if
20 53
21 #if $anno.annoOpt=='yes': 54 #if $anno.annoOpt=='yes':
22 '$geneanno' 55 -a '$anno.geneanno'
23 #else:
24 None
25 #end if 56 #end if
26 57
27 '$outReport' 58 -C '${ ','.join( ['%s' % $x.contrast for x in $rep_contrast] ) }'
28 '$outReport.files_path' 59
29 $rdaOption 60 #if $f.filt.filt_select == 'yes':
30 $normalisationOption 61 #if $f.filt.cformat.format_select == 'cpm':
31 $weightOption 62 -c '$f.filt.cformat.cpmReq'
32 '$contrast' 63 -s '$f.filt.cformat.cpmSampleReq'
33 64 #elif $f.filt.cformat.format_select == 'counts':
34 #if $filterCPM.filterLowCPM=='yes': 65 -z '$f.filt.cformat.cntReq'
35 '$filterCPM.cpmReq' 66 #if $f.filt.cformat.samples.count_select == 'total':
36 '$filterCPM.sampleReq' 67 -y
37 #else: 68 #elif $f.filt.cformat.samples.count_select == 'sample':
38 0 69 -s '$f.filt.cformat.samples.cntSampleReq'
39 0 70 #end if
71 #end if
40 #end if 72 #end if
41 73
42 #if $testOpt.wantOpt=='yes': 74 #if $out.normCounts:
43 '$testOpt.pAdjust' 75 -x
44 '$testOpt.pVal'
45 '$testOpt.lfc'
46 #else:
47 "BH"
48 0.05
49 0
50 #end if 76 #end if
51 77
52 $normCounts 78 #if $out.rdaOption:
53 79 -r
54 #if $fact.ffile=='yes': 80 #end if
55 '$finfo' 81
56 'None' 82 -l '$adv.lfc'
57 #else: 83 -p '$adv.pVal'
58 'None' 84 -d '$adv.pAdjust'
59 '$fact.pfactName::$fact.pfactLevel' 85
60 #for $sfact in $fact.sfactors: 86 #if $deMethod.de_select == 'voom':
61 '$sfact.sfactName::$sfact.sfactLevel' 87 #if $deMethod.weightOption:
62 #end for 88 -w
89 #end if
90 #elif $deMethod.de_select == 'trend':
91 -t $deMethod.prior_count
92 #end if
93
94 -n '$adv.normalisationOption'
95
96 #if $adv.robOption:
97 -b
63 #end if 98 #end if
64 99
65 && 100 &&
66 mkdir ./output_dir 101 mkdir ./output_dir
67 102
68 && 103 &&
69 cp '$outReport.files_path'/*.tsv output_dir/ 104 cp '$outReport.files_path'/*.tsv output_dir/
70 ]]></command> 105 ]]></command>
71 106
72 <inputs> 107 <inputs>
73 <param name="counts" type="data" format="tabular" label="Counts Data"/> 108
74 109 <!-- DE Method Option -->
110 <conditional name="deMethod">
111 <param name="de_select" type="select" label="Differential Expression Method" help="Select the limma-voom or limma-trend method. See Help section below for more information. Default: limma-voom">
112 <option value="voom" selected="True">limma-voom</option>
113 <option value="trend">limma-trend</option>
114 </param>
115 <when value="voom">
116 <param name="weightOption" type="boolean" truevalue="1" falsevalue="0" checked="false" label="Apply voom with sample quality weights?"
117 help="Apply weights if outliers are present (voomWithQualityWeights). Default: False.">
118 </param>
119 </when>
120 <when value="trend">
121 <param name="prior_count" type="float" min="0" value="3" label="Prior count" help="Average count to be added to each observation to avoid taking log of zero. Default: 3." />
122 </when>
123 </conditional>
124 <!-- Counts and Factors -->
125 <conditional name="input">
126 <param name="format" type="select" label="Count Files or Matrix?"
127 help="You can choose to input either separate count files (one per sample) or a single count matrix">
128 <option value="files">Separate Count Files</option>
129 <option value="matrix">Single Count Matrix</option>
130 </param>
131
132 <when value="files">
133 <repeat name="rep_factor" title="Factor" min="1">
134 <param name="factorName" type="text" label="Name" help="Name of experiment factor of interest (e.g. Genotype). One factor must be entered and there must be two or more groups per factor. Optional additional factors (e.g. Batch) can be entered using the Insert Factor button below, see Help section for more information. NOTE: Please only use letters, numbers or underscores.">
135 <sanitizer>
136 <valid initial="string.letters,string.digits"><add value="_" /></valid>
137 </sanitizer>
138 </param>
139 <repeat name="rep_group" title="Group" min="2" default="2">
140 <param name="groupName" type="text" label="Name"
141 help="Name of group that the counts files(s) belong to (e.g. WT or Mut). NOTE: Please only use letters, numbers or underscores (case sensitive).">
142 <sanitizer>
143 <valid initial="string.letters,string.digits"><add value="_" /></valid>
144 </sanitizer>
145 </param>
146 <param name="countsFile" type="data" format="tabular" multiple="true" label="Counts file(s)"/>
147 </repeat>
148 </repeat>
149 </when>
150
151 <when value="matrix">
152 <param name="counts" type="data" format="tabular" label="Count Matrix"/>
153
154 <conditional name="fact">
155 <param name="ffile" type="select" label="Input factor information from file?"
156 help="You can choose to input the factor and group information for the samples from a file or manually enter below.">
157 <option value="no">No</option>
158 <option value="yes">Yes</option>
159 </param>
160 <when value="yes">
161 <param name="finfo" type="data" format="tabular" label="Factor File"/>
162 </when>
163 <when value="no" >
164 <repeat name="rep_factor" title="Factor" min="1">
165 <param name="factorName" type="text" label="Factor Name"
166 help="Name of experiment factor of interest (e.g. Genotype). One factor must be entered and there must be two or more groups per factor. Additional factors (e.g. Batch) can be entered using the Insert Factor button below, see Help section below. NOTE: Please only use letters, numbers or underscores.">
167 <validator type="empty_field" />
168 <validator type="regex" message="Please only use letters, numbers or underscores">^[\w]+$</validator>
169 </param>
170 <param name="groupNames" type="text" label="Groups"
171 help="Enter the group names for the samples separated with commas e.g. WT,WT,WT,Mut,Mut,Mut. The order of the names must match the order of the samples in the columns of the count matrix. NOTE: Please only use letters, numbers or underscores (case sensitive).">
172 <validator type="empty_field" />
173 <validator type="regex" message="Please only use letters, numbers or underscores, and separate levels by commas">^[\w,]+$</validator>
174 </param>
175 </repeat>
176 </when>
177 </conditional>
178 </when>
179 </conditional>
180
181 <!-- Gene Annotations -->
75 <conditional name="anno"> 182 <conditional name="anno">
76 <param name="annoOpt" type="select" label="Use Gene Annotations?" 183 <param name="annoOpt" type="select" label="Use Gene Annotations?"
77 help="If an annotation file is provided, annotations will be added to the table of differential expression results to provide descriptions for each gene."> 184 help="If you provide an annotation file, annotations will be added to the table(s) of differential expression results to provide descriptions for each gene. See Help section below.">
78 <option value="no">No</option> 185 <option value="no">No</option>
79 <option value="yes">Yes</option> 186 <option value="yes">Yes</option>
80 </param> 187 </param>
81 <when value="yes"> 188 <when value="yes">
82 <param name="geneanno" type="data" format="tabular" label="Gene Annotations"/> 189 <param name="geneanno" type="data" format="tabular" label="Gene Annotations"/>
83 </when> 190 </when>
84 <when value="no" /> 191 <when value="no" />
85 </conditional> 192 </conditional>
86 193
87 <conditional name="fact"> 194 <!-- Contrasts -->
88 <param name="ffile" type="select" label="Input Factor Information from file?" 195 <repeat name="rep_contrast" title="Contrast" min="1" default="1">
89 help="You can choose to input the factor information from a file or manually enter below."> 196 <param name="contrast" type="text" label="Contrast of Interest" help="Names of two groups to compare separated by a hyphen e.g. Mut-WT. If the order is Mut-WT the fold changes in the results will be up/down in Mut relative to WT. If you have more than one contrast enter each separately using the Insert Contrast button below. For more info, see Chapter 8 in the limma User's guide: https://www.bioconductor.org/packages/release/bioc/vignettes/limma/inst/doc/usersguide.pdf">
90 <option value="no">No</option> 197 <validator type="empty_field" />
91 <option value="yes">Yes</option> 198 <validator type="regex" message="Please only use letters, numbers or underscores">^[\w-]+$</validator>
92 </param> 199 </param>
93 <when value="yes"> 200 </repeat>
94 <param name="finfo" type="data" format="tabular" label="Factor Information"/> 201
95 </when> 202 <!-- Filter Options -->
96 <when value="no" > 203 <section name="f" expanded="false" title="Filter Low Counts">
97 <param name="pfactName" type="text" label="Primary Factor Name" 204 <conditional name="filt">
98 help="Eg. Genotype NOTE: Please only use letters, numbers or underscores."> 205 <param name="filt_select" type="select" label="Filter lowly expressed genes?" help="Treat genes with very low expression as unexpressed and filter out. See the Filter Low Counts section below for more information. Default: No">
99 <validator type="empty_field" /> 206 <option value="no" selected="true">No</option>
100 <validator type="regex" message="Please only use letters, numbers or underscores">^[\w]+$</validator> 207 <option value="yes">Yes</option>
101 </param> 208 </param>
102 <param name="pfactLevel" type="text" label="Primary Factor Levels" 209 <when value="yes">
103 help="Eg. WT,WT,WT,Mut,Mut,Mut NOTE: Please only use letters, numbers or underscores and ensure that the same levels are typed identically with cases matching."> 210 <conditional name="cformat">
104 <validator type="empty_field" /> 211 <param name="format_select" type="select" label="Filter on CPM or Count values?" help="It is slightly better to base the filtering on count-per-million (CPM) rather than the raw count values so as to avoid favoring genes expressed in samples sequenced to a higher depth. ">
105 <validator type="regex" message="Please only use letters, numbers or underscores, and separate levels by commas">^[\w,]+$</validator> 212 <option value="cpm">CPM</option>
106 </param> 213 <option value="counts">Counts</option>
107 <repeat name="sfactors" title="Secondary Factor" > 214 </param>
108 <param name="sfactName" type="text" label="Secondary Factor Name" help="Eg. Batch"> 215 <when value="cpm">
109 <validator type="empty_field" /> 216 <param name="cpmReq" type="float" value="1" min="0" label="Minimum CPM" help="Treat genes with CPM below this value as unexpressed and filter out. See the Filter Low Counts section below for more information."/>
110 <validator type="regex" message="Please only use letters, numbers or underscores">^[\w]+$</validator> 217 <param name="cpmSampleReq" type="integer" value="0" min="0" label="Minimum Samples"
111 </param> 218 help="Filter out all genes that do not meet the Minimum CPM in at least this many samples. See the Filter Low Counts section below for more information."/>
112 <param name="sfactLevel" type="text" label="Secondary Factor Levels" 219 </when>
113 help="Eg. b1,b2,b3,b1,b2,b3 NOTE: Please only use letters, numbers or underscores and ensure that the same levels are typed identically with cases matching."> 220 <when value="counts">
114 <validator type="empty_field" /> 221 <param name="cntReq" type="integer" value="0" min="0" label="Minimum Count" help="Filter out all genes that do not meet this minimum count. You can choose below to apply this filter to the total count for all samples or specify the number of samples under Minimum Samples. See the Filter Low Counts section below for more information." />
115 <validator type="regex" message="Please only use letters, numbers or underscores">^[\w,]+$</validator> 222 <conditional name="samples">
116 </param> 223 <param name="count_select" type="select" label="Filter on Total Count or per Sample Count values?" >
117 </repeat> 224 <option value="total">Total</option>
118 </when> 225 <option value="sample">Sample</option>
119 </conditional> 226 </param>
120 227 <when value="total">
121 <param name="contrast" type="text" label="Contrasts of interest" help="Eg. Mut-WT,KD-Control"> 228 <param name="totReq" type="boolean" truevalue="1" falsevalue="0" checked="false" label="Filter on Total Count" help="Apply the Minimum Count filter to genes after summing counts for all samples. See the Filter Low Counts section below for more information." />
122 <validator type="empty_field" /> 229 </when>
123 <validator type="regex" message="Please only use letters, numbers or underscores">^[\w,-]+$</validator> 230 <when value="sample">
124 </param> 231 <param name="cntSampleReq" type="integer" value="0" min="0" label="Minimum Samples"
125 232 help="Filter out all genes that do not meet the Minimum Count in at least this many samples. See the Filter Low Counts section below for more information."/>
126 <conditional name="filterCPM"> 233 </when>
127 <param name="filterLowCPM" type="select" label="Filter Low CPM?" 234 </conditional>
128 help="Treat genes with very low expression as unexpressed and filter out to speed up computation."> 235 </when>
129 <option value="yes" selected="True">Yes</option> 236 </conditional>
130 <option value="no">No</option> 237 </when>
238 <when value="no" />
239 </conditional>
240 </section>
241
242 <!-- Output Options -->
243 <section name="out" expanded="false" title="Output Options">
244 <param name="normCounts" type="boolean" truevalue="1" falsevalue="0" checked="false"
245 label="Output Normalised Counts Table?"
246 help="Output a file containing the normalised counts, these are in log2 counts per million (logCPM). Default: No">
131 </param> 247 </param>
132 <when value="yes"> 248 <param name="rdaOption" type="boolean" truevalue="1" falsevalue="0" checked="false"
133 <param name="cpmReq" type="float" value="0.5" min="0" label="Minimum CPM"/> 249 label="Output RData file?"
134 <param name="sampleReq" type="integer" value="1" min="0" label="Minimum Samples" 250 help="Output all the data used by R to construct the plots and tables, can be loaded into R. A link to the RData file will be provided in the HTML report. Default: No">
135 help="Filter out all the genes that do not meet the minimum CPM in at least this many samples."/>
136 </when>
137 <when value="no"/>
138 </conditional>
139
140 <param name="weightOption" type="boolean" truevalue="yes" falsevalue="no" checked="false" label="Apply sample weights?"
141 help="Apply weights if outliers are present.">
142 </param>
143
144 <param name="normalisationOption" type="select" label="Normalisation Method">
145 <option value="TMM">TMM</option>
146 <option value="RLE">RLE</option>
147 <option value="upperquartile">Upperquartile</option>
148 <option value="none">None (Don't normalise)</option>
149 </param>
150
151 <param name="normCounts" type="boolean" truevalue="yes" falsevalue="no" checked="false"
152 label="Output normalised counts table?"
153 help="Output a file containing the normalised counts, these are in log2 counts per million (logCPM).">
154 </param>
155
156 <param name="rdaOption" type="boolean" truevalue="yes" falsevalue="no" checked="false"
157 label="Output RData?"
158 help="Output all the data used by R to construct the plots and tables, can be loaded into R. A link to the RData file will be provided in the HTML report.">
159 </param>
160
161 <conditional name="testOpt">
162 <param name="wantOpt" type="select" label="Use Advanced Testing Options?"
163 help="Enable choices for p-value adjustment method, p-value threshold and log2-fold-change threshold.">
164 <option value="no" selected="True">No</option>
165 <option value="yes">Yes</option>
166 </param> 251 </param>
167 <when value="yes"> 252 </section>
168 <param name="pAdjust" type="select" label="P-Value Adjustment Method."> 253
169 <option value="BH">Benjamini and Hochberg (1995)</option> 254 <!-- Advanced Options -->
170 <option value="BY">Benjamini and Yekutieli (2001)</option> 255 <section name="adv" expanded="false" title="Advanced Options">
171 <option value="holm">Holm (1979)</option> 256 <param name="lfc" type="float" value="0" min="0"
172 <option value="none">None</option> 257 label="Minimum Log2 Fold Change"
173 </param> 258 help="Genes above this threshold and below the p-value threshold are considered significant and highlighted in the MD plot. Default: 0."/>
174 <param name="pVal" type="float" value="0.05" min="0" max="1" 259 <param name="pVal" type="float" value="0.05" min="0" max="1"
175 label="Adjusted Threshold" 260 label="P-Value Adjusted Threshold"
176 help="Genes below this threshold are considered significant and highlighted in the MA plot. If either BH(1995) or BY(2001) were selected then this value is a false-discovery-rate control. If Holm(1979) was selected then this is an adjusted p-value for family-wise error rate."/> 261 help="Genes below this threshold are considered significant and highlighted in the MD plot. If either BH(1995) or BY(2001) are selected then this value is a false-discovery-rate control. If Holm(1979) is selected then this is an adjusted p-value for family-wise error rate. Default: 0.05."/>
177 <param name="lfc" type="float" value="0" min="0" 262 <param name="pAdjust" type="select" label="P-Value Adjustment Method" help="Default: BH">
178 label="Minimum log2-fold-change Required" 263 <option value="BH" selected="true">Benjamini and Hochberg (1995)</option>
179 help="Genes above this threshold and below the p-value threshold are considered significant and highlighted in the MA plot."/> 264 <option value="BY">Benjamini and Yekutieli (2001)</option>
180 </when> 265 <option value="holm">Holm (1979)</option>
181 <when value="no"/> 266 <option value="none">None</option>
182 </conditional> 267 </param>
268 <param name="normalisationOption" type="select" label="Normalisation Method" help="Default: TMM">
269 <option value="TMM" selected="true">TMM</option>
270 <option value="RLE">RLE</option>
271 <option value="upperquartile">Upperquartile</option>
272 <option value="none">None (Don't normalise)</option>
273 </param>
274 <param name="robOption" type="boolean" truevalue="1" falsevalue="0" checked="true" label="Use Robust Settings?" help="Using robust settings is usually recommended to protect against outlier genes. Default: Yes" />
275 </section>
183 276
184 </inputs> 277 </inputs>
185 278
186 <outputs> 279 <outputs>
187 <data name="outReport" format="html" label="${tool.name} on ${on_string}: Report" /> 280 <data name="outReport" format="html" label="${tool.name} on ${on_string}: Report" />
189 <discover_datasets pattern="(?P&lt;name&gt;.+)\.tsv$" format="tabular" directory="output_dir" visible="false" /> 282 <discover_datasets pattern="(?P&lt;name&gt;.+)\.tsv$" format="tabular" directory="output_dir" visible="false" />
190 </collection> 283 </collection>
191 </outputs> 284 </outputs>
192 285
193 <tests> 286 <tests>
287 <!-- Ensure report is output -->
194 <test> 288 <test>
289 <param name="format" value="matrix" />
195 <param name="counts" value="matrix.txt" /> 290 <param name="counts" value="matrix.txt" />
196 <param name="pfactName" value="Genotype" /> 291 <repeat name="rep_factor">
197 <param name="pfactLevel" value="WT,WT,WT,Mut,Mut,Mut" /> 292 <param name="factorName" value="Genotype"/>
198 <param name="contrast" value="Mut-WT,WT-Mut" /> 293 <param name="groupNames" value="Mut,Mut,Mut,WT,WT,WT" />
294 </repeat>
295 <repeat name="rep_contrast">
296 <param name="contrast" value="Mut-WT" />
297 </repeat>
298 <repeat name="rep_contrast">
299 <param name="contrast" value="WT-Mut" />
300 </repeat>
199 <param name="normalisationOption" value="TMM" /> 301 <param name="normalisationOption" value="TMM" />
200 <output_collection name="outTables" count="2"> 302 <output_collection name="outTables" count="2">
201 <element name="limma-voom_Mut-WT" ftype="tabular" file="limma-voom_Mut-WT.tsv" /> 303 <element name="limma-voom_Mut-WT" ftype="tabular" file="limma-voom_Mut-WT.tsv" />
202 <element name="limma-voom_WT-Mut" ftype="tabular" file="limma-voom_WT-Mut.tsv" /> 304 <element name="limma-voom_WT-Mut" ftype="tabular" file="limma-voom_WT-Mut.tsv" />
203 </output_collection> 305 </output_collection>
204 <output name="outReport" > 306 <output name="outReport" >
205 <assert_contents> 307 <assert_contents>
206 <has_text text="Limma-voom Analysis Output" /> 308 <has_text text="Limma Analysis Output" />
207 <not_has_text text="RData" /> 309 <not_has_text text="RData" />
208 </assert_contents> 310 </assert_contents>
209 </output> 311 </output>
210 </test> 312 </test>
313 <!-- Ensure annotation file input works -->
211 <test> 314 <test>
315 <param name="format" value="matrix" />
212 <param name="annoOpt" value="yes" /> 316 <param name="annoOpt" value="yes" />
213 <param name="geneanno" value="anno.txt" /> 317 <param name="geneanno" value="anno.txt" />
214 <param name="counts" value="matrix.txt" /> 318 <param name="counts" value="matrix.txt" />
215 <param name="pfactName" value="Genotype" /> 319 <repeat name="rep_factor">
216 <param name="pfactLevel" value="WT,WT,WT,Mut,Mut,Mut" /> 320 <param name="factorName" value="Genotype"/>
217 <param name="contrast" value="Mut-WT" /> 321 <param name="groupNames" value="Mut,Mut,Mut,WT,WT,WT" />
322 </repeat>
323 <repeat name="rep_contrast">
324 <param name="contrast" value="Mut-WT" />
325 </repeat>
218 <param name="normalisationOption" value="TMM" /> 326 <param name="normalisationOption" value="TMM" />
219 <output_collection name="outTables" > 327 <output_collection name="outTables" count="1">
220 <element name="limma-voom_Mut-WT" ftype="tabular" file="limma-voom_Mut-WTanno.tsv" /> 328 <element name="limma-voom_Mut-WT" ftype="tabular" file="limma-voom_Mut-WT_anno.tsv" />
221 </output_collection> 329 </output_collection>
222 </test> 330 </test>
331 <!-- Ensure RData file can be output -->
223 <test> 332 <test>
224 <param name="rdaOption" value="yes" /> 333 <param name="format" value="matrix" />
334 <param name="rdaOption" value="true" />
225 <param name="counts" value="matrix.txt" /> 335 <param name="counts" value="matrix.txt" />
226 <param name="pfactName" value="Genotype" /> 336 <repeat name="rep_factor">
227 <param name="pfactLevel" value="WT,WT,WT,Mut,Mut,Mut" /> 337 <param name="factorName" value="Genotype"/>
228 <param name="contrast" value="Mut-WT" /> 338 <param name="groupNames" value="Mut,Mut,Mut,WT,WT,WT" />
339 </repeat>
340 <repeat name="rep_contrast">
341 <param name="contrast" value="Mut-WT" />
342 </repeat>
229 <param name="normalisationOption" value="TMM" /> 343 <param name="normalisationOption" value="TMM" />
230 <output name="outReport" > 344 <output name="outReport" >
231 <assert_contents> 345 <assert_contents>
232 <has_text text="RData" /> 346 <has_text text="RData" />
233 </assert_contents> 347 </assert_contents>
234 </output> 348 </output>
235 </test> 349 </test>
350 <!-- Ensure secondary factors work -->
236 <test> 351 <test>
352 <param name="format" value="matrix" />
237 <param name="counts" value="matrix.txt" /> 353 <param name="counts" value="matrix.txt" />
238 <param name="pfactName" value="Genotype"/> 354 <repeat name="rep_factor">
239 <param name="pfactLevel" value="WT,WT,WT,Mut,Mut,Mut"/> 355 <param name="factorName" value="Genotype"/>
240 <repeat name="sfactors"> 356 <param name="groupNames" value="Mut,Mut,Mut,WT,WT,WT" />
241 <param name="sfactName" value="Batch"/> 357 </repeat>
242 <param name="sfactLevel" value="b1,b2,b3,b1,b2,b3"/> 358 <repeat name="rep_factor">
243 </repeat> 359 <param name="factorName" value="Batch"/>
244 <param name="contrast" value="Mut-WT" /> 360 <param name="groupNames" value="b1,b2,b3,b1,b2,b3"/>
361 </repeat>
362 <repeat name="rep_contrast">
363 <param name="contrast" value="Mut-WT" />
364 </repeat>
245 <param name="normalisationOption" value="TMM" /> 365 <param name="normalisationOption" value="TMM" />
246 <output_collection name="outTables" > 366 <output_collection name="outTables" count="1" >
247 <element name="limma-voom_Mut-WT" ftype="tabular" file="limma-voom_Mut-WTmultifact.tsv" /> 367 <element name="limma-voom_Mut-WT" ftype="tabular" file="limma-voom_Mut-WT_2fact.tsv" />
248 </output_collection> 368 </output_collection>
249 </test> 369 </test>
370 <!-- Ensure factors file input works -->
250 <test> 371 <test>
372 <param name="format" value="matrix" />
251 <param name="ffile" value="yes" /> 373 <param name="ffile" value="yes" />
252 <param name="finfo" value="factorinfo.txt" /> 374 <param name="finfo" value="factorinfo.txt" />
253 <param name="counts" value="matrix.txt" /> 375 <param name="counts" value="matrix.txt" />
254 <param name="contrast" value="Mut-WT" /> 376 <repeat name="rep_contrast">
377 <param name="contrast" value="Mut-WT" />
378 </repeat>
255 <param name="normalisationOption" value="TMM" /> 379 <param name="normalisationOption" value="TMM" />
256 <output_collection name="outTables" > 380 <output_collection name="outTables" count="1">
257 <element name="limma-voom_Mut-WT" ftype="tabular" file="limma-voom_Mut-WTmultifact.tsv" /> 381 <element name="limma-voom_Mut-WT" ftype="tabular" file="limma-voom_Mut-WT_2fact.tsv" />
258 </output_collection> 382 </output_collection>
259 </test> 383 </test>
384 <!-- Ensure normalised counts file output works-->
260 <test> 385 <test>
261 <param name="normCounts" value="yes" /> 386 <param name="format" value="matrix" />
387 <param name="normCounts" value="true" />
262 <param name="counts" value="matrix.txt" /> 388 <param name="counts" value="matrix.txt" />
263 <param name="pfactName" value="Genotype" /> 389 <repeat name="rep_factor">
264 <param name="pfactLevel" value="WT,WT,WT,Mut,Mut,Mut" /> 390 <param name="factorName" value="Genotype"/>
265 <param name="contrast" value="Mut-WT" /> 391 <param name="groupNames" value="Mut,Mut,Mut,WT,WT,WT" />
392 </repeat>
393 <repeat name="rep_contrast">
394 <param name="contrast" value="Mut-WT" />
395 </repeat>
266 <param name="normalisationOption" value="TMM" /> 396 <param name="normalisationOption" value="TMM" />
267 <output_collection name="outTables" count="2"> 397 <output_collection name="outTables" count="2">
268 <element name="limma-voom_Mut-WT" ftype="tabular" file="limma-voom_Mut-WT.tsv" /> 398 <element name="limma-voom_Mut-WT" ftype="tabular" file="limma-voom_Mut-WT.tsv" />
269 <element name="limma-voom_normcounts" ftype="tabular" file="limma-voom_normcounts.tsv" /> 399 <element name="limma-voom_normcounts" ftype="tabular" file="limma-voom_normcounts.tsv" />
270 </output_collection> 400 </output_collection>
271 </test> 401 </test>
402 <!-- Ensure multiple counts files input works -->
403 <test>
404 <param name="format" value="files" />
405 <repeat name="rep_factor">
406 <param name="factorName" value="Genotype"/>
407 <repeat name="rep_group">
408 <param name="groupName" value="WT"/>
409 <param name="countsFile" value="WT1.counts,WT2.counts,WT3.counts"/>
410 </repeat>
411 <repeat name="rep_group">
412 <param name="groupName" value="Mut"/>
413 <param name="countsFile" value="Mut1.counts,Mut2.counts,Mut3.counts"/>
414 </repeat>
415 </repeat>
416 <repeat name="rep_factor">
417 <param name="factorName" value="Batch"/>
418 <repeat name="rep_group">
419 <param name="groupName" value="b1"/>
420 <param name="countsFile" value="WT1.counts,Mut1.counts"/>
421 </repeat>
422 <repeat name="rep_group">
423 <param name="groupName" value="b2"/>
424 <param name="countsFile" value="WT2.counts,Mut2.counts"/>
425 </repeat>
426 <repeat name="rep_group">
427 <param name="groupName" value="b3"/>
428 <param name="countsFile" value="WT3.counts,Mut3.counts"/>
429 </repeat>
430 </repeat>
431 <param name="annoOpt" value="yes" />
432 <param name="geneanno" value="anno.txt" />
433 <repeat name="rep_contrast">
434 <param name="contrast" value="Mut-WT" />
435 </repeat>
436 <repeat name="rep_contrast">
437 <param name="contrast" value="WT-Mut" />
438 </repeat>
439 <param name="normCounts" value="true" />
440 <output_collection name="outTables" count="3">
441 <element name="limma-voom_Mut-WT" ftype="tabular" file="limma-voom_Mut-WT_2fact_anno.tsv" />
442 <element name="limma-voom_WT-Mut" ftype="tabular" file="limma-voom_WT-Mut_2fact_anno.tsv" />
443 <element name="limma-voom_normcounts" ftype="tabular" file="limma-voom_normcounts_anno.tsv" />
444 </output_collection>
445 </test>
446 <!-- Ensure limma-trend option works -->
447 <test>
448 <param name="format" value="matrix" />
449 <param name="counts" value="matrix.txt" />
450 <repeat name="rep_factor">
451 <param name="factorName" value="Genotype"/>
452 <param name="groupNames" value="Mut,Mut,Mut,WT,WT,WT" />
453 </repeat>
454 <repeat name="rep_contrast">
455 <param name="contrast" value="Mut-WT" />
456 </repeat>
457 <param name="normalisationOption" value="TMM" />
458 <param name="de_select" value="trend" />
459 <param name="rdaOption" value="true" />
460 <output name="outReport" >
461 <assert_contents>
462 <has_text text="The limma-trend method was used" />
463 </assert_contents>
464 </output>
465 <output_collection name="outTables" count="1">
466 <element name="limma-trend_Mut-WT" ftype="tabular" file="limma-trend_Mut-WT.tsv" />
467 </output_collection>
468 </test>
272 </tests> 469 </tests>
273 470
274 <help><![CDATA[ 471 <help><![CDATA[
275 .. class:: infomark 472 .. class:: infomark
276 473
277 **What it does** 474 **What it does**
278 475
279 Given a matrix of counts (e.g. from featureCounts) and optional information about the genes, this tool 476 Given a matrix of counts (e.g. from featureCounts) and optional information about the genes, performs differential expression (DE) using the limma_ Bioconductor package and produces plots and tables useful in DE analysis.
280 produces plots and tables useful in the analysis of differential gene 477
281 expression. 478 In the `limma approach`_ to RNA-seq, read counts are converted to log2-counts-per-million (logCPM) and the mean-variance relationship is modelled either with precision weights or with an empirical Bayes prior trend. The precision weights approach is called “voom” and the prior trend approach is called “limma-trend”. For more information, see the Help section below.
282 479
283 ----- 480 -----
284 481
285 **Inputs** 482 **Inputs**
286 483
484 **Differential Expression Method:**
485 Option to use the limma-voom or limma-trend approach for differential expression. The default is limma-voom.
486 If the sequencing depth is reasonably consistent across the RNA samples, then the simplest and most
487 robust approach to differential expression is to use limma-trend. This approach will usually work well if the
488 ratio of the largest library size to the smallest is not more than about 3-fold. When the library sizes are quite variable between samples, then the voom approach is theoretically more powerful than limma-trend. For more information see the excellent `limma User's Guide`_.
489
287 **Counts Data:** 490 **Counts Data:**
288 A matrix of counts, with rows corresponding to genes 491
289 and columns corresponding to counts for the samples. 492 The counts data can either be input as separate counts files (one sample per file) or a single count matrix (one sample per column). The rows correspond to genes, and columns correspond to the counts for the samples. Values must be tab separated, with the first row containing the sample/column labels and the first column containing the row/gene labels. Gene identifiers can be of any type but must be unique and not repeated within a counts file.
290 Values must be tab separated, with the first row containing the sample/column 493
291 labels and the first column containing the row/gene labels. 494 Example - **Separate Count Files**:
292 495
293 Example: 496 ========== =======
497 **GeneID** **WT1**
498 ---------- -------
499 11287 1699
500 11298 1905
501 11302 6
502 11303 2099
503 11304 356
504 11305 2528
505 ========== =======
506
507 Example - **Single Count Matrix**:
294 508
295 ========== ======= ======= ======= ======== ======== ======== 509 ========== ======= ======= ======= ======== ======== ========
296 **GeneID** **WT1** **WT2** **WT3** **Mut1** **Mut2** **Mut3** 510 **GeneID** **WT1** **WT2** **WT3** **Mut1** **Mut2** **Mut3**
297 ---------- ------- ------- ------- -------- -------- -------- 511 ---------- ------- ------- ------- -------- -------- --------
298 11287 1699 1528 1601 1463 1441 1495 512 11287 1699 1528 1601 1463 1441 1495
320 1304 Abca4 ATP-binding cassette, sub-family A (ABC1), member 4 534 1304 Abca4 ATP-binding cassette, sub-family A (ABC1), member 4
321 1305 Abca2 ATP-binding cassette, sub-family A (ABC1), member 2 535 1305 Abca2 ATP-binding cassette, sub-family A (ABC1), member 2
322 ========== ========== =================================================== 536 ========== ========== ===================================================
323 537
324 **Factor Information:** 538 **Factor Information:**
325 Enter Factor Names and Levels in the tool form or provide a tab-separated file that has the samples in the same order as listed in the columns of the counts matrix. The second column should contain the Primary Factor levels (e.g. Genotype) with optional additional columns for any Secondary Factors (e.g. Batch). 539 Enter factor names and groups in the tool form, or provide a tab-separated file that has the samples in the same order as listed in the columns of the counts matrix. The second column should contain the primary factor levels (e.g. WT, Mut) with optional additional columns for any secondary factors.
326 540
327 Example: 541 Example:
328 542
329 ========== ============ ========= 543 ========== ============ =========
330 **Sample** **Genotype** **Batch** 544 **Sample** **Genotype** **Batch**
335 Mut1 Mut b1 549 Mut1 Mut b1
336 Mut2 Mut b2 550 Mut2 Mut b2
337 Mut3 Mut b3 551 Mut3 Mut b3
338 ========== ============ ========= 552 ========== ============ =========
339 553
340 **Primary Factor Name:** The name of the primary factor being investigated e.g. Genotype. One primary factor must be entered and spaces must not be used. 554 *Factor Name:* The name of the experimental factor being investigated e.g. Genotype, Treatment. One factor must be entered and spaces must not be used. Optionally, additional factors can be included, these are variables that might influence your experiment e.g. Batch, Gender, Subject. If additional factors are entered, edgeR will fit an additive linear model.
341 555
342 **Primary Factor Levels:** The levels of the primary factor of interest, these must be entered in the same order as the samples to which the levels correspond, as listed in the columns of the counts matrix. Spaces must not be used and if entered in the tool form the values should be separated by commas. 556 *Groups:* The names of the groups for the factor. These must be entered in the same order as the samples (to which the groups correspond) are listed in the columns of the counts matrix. Spaces must not be used and if entered into the tool form above, the values should be separated by commas.
343 557
344 **Secondary Factor Name:** Optionally, one or more secondary factors can be included. These are variables that might influence your experiment e.g. Batch, Gender. Spaces must not be used. 558
345 559 **Gene Annotations:**
346 **Secondary Factor Levels:** The levels of the secondary factor of interest, these must be entered in the same order as the samples to which the levels correspond, as listed in the columns of the counts matrix. Spaces must not be used and if entered in the tool form the values should be separated by commas. 560 Optional input for gene annotations, this can contain more
347 561 information about the genes than just an ID number. The annotations will
562 be available in the differential expression results table and the optional normalised counts table.
563
564 Example:
565
566 ========== ========== ===================================================
567 **GeneID** **Symbol** **GeneName**
568 ---------- ---------- ---------------------------------------------------
569 1287 Pzp pregnancy zone protein
570 1298 Aanat arylalkylamine N-acetyltransferase
571 1302 Aatk apoptosis-associated tyrosine kinase
572 1303 Abca1 ATP-binding cassette, sub-family A (ABC1), member 1
573 1304 Abca4 ATP-binding cassette, sub-family A (ABC1), member 4
574 1305 Abca2 ATP-binding cassette, sub-family A (ABC1), member 2
575 ========== ========== ===================================================
348 576
349 **Contrasts of Interest:** 577 **Contrasts of Interest:**
350 The contrasts you wish to make between levels. 578 The contrasts you wish to make between levels.
351 A common contrast would be a simple difference between two levels: "Mut-WT" 579 A common contrast would be a simple difference between two levels: "Mut-WT"
352 represents the difference between the mutant and wild type genotypes. 580 represents the difference between the mutant and wild type genotypes.
353 Multiple contrasts should be separated by commas and spaces must not be used. 581 Multiple contrasts must be entered separately using the Insert Contrast button, spaces must not be used.
354 582
355 **Filter Low CPM:** 583 **Filter Low Counts:**
584 Genes with very low counts across all libraries provide little evidence for differential expression.
585 In the biological point of view, a gene must be expressed at some minimal level before
586 it is likely to be translated into a protein or to be biologically important. In addition, the
587 pronounced discreteness of these counts interferes with some of the statistical approximations
588 that are used later in the pipeline. These genes should be filtered out prior to further
589 analysis.
590 As a rule of thumb, genes are dropped if they can’t possibly be expressed in all the samples
591 for any of the conditions. Users can set their own definition of genes being expressed. Usually
592 a gene is required to have a count of 5-10 in a library to be considered expressed in that
593 library. Users should also filter with count-per-million (CPM) rather than filtering on the
594 counts directly, as the latter does not account for differences in library sizes between samples.
595
356 Option to ignore the genes that do not show significant levels of 596 Option to ignore the genes that do not show significant levels of
357 expression, this filtering is dependent on two criteria: 597 expression, this filtering is dependent on two criteria: CPM/count and number of samples. You can specify to filter on CPM (Minimum CPM) or count (Minimum Count) values:
358 598
359 * **Minimum CPM:** This is the counts per million that a gene must have in at 599 * **Minimum CPM:** This is the minimum count per million that a gene must have in at
360 least some specified number of samples. 600 least the number of samples specified under Minimum Samples.
361 601
362 * **Minumum Samples:** This is the number of samples in which the CPM 602 * **Minimum Count:** This is the minimum count that a gene must have. It can be combined with either Filter
363 requirement must be met in order for that gene to be acknowledged. 603 on Total Count or Minimum Samples.
364 604
365 Only genes that exhibit a CPM greater than the required amount in at least the 605 * **Filter on Total Count:** This can be used with the Minimum Count filter to keep genes
366 number of samples specified will be used for analysis. Care should be taken to 606 with a minimum total read count.
607
608 * **Minimum Samples:** This is the number of samples in which the Minimum CPM/Count
609 requirement must be met in order for that gene to be kept.
610
611 If the Minimum Samples filter is applied, only genes that exhibit a CPM/count greater than the required amount in at least the number of samples specified will be used for analysis. Care should be taken to
367 ensure that the sample requirement is appropriate. In the case of an experiment 612 ensure that the sample requirement is appropriate. In the case of an experiment
368 with two experimental groups each with two members, if there is a change from 613 with two experimental groups each with two members, if there is a change from
369 insignificant cpm to significant cpm but the sample requirement is set to 3, 614 insignificant CPM/count to significant CPM/count but the sample requirement is set to 3,
370 then this will cause that gene to fail the criteria. When in doubt simply do not 615 then this will cause that gene to fail the criteria. When in doubt simply do not
371 filter. 616 filter or consult the `limma User's Guide`_ for filtering recommendations.
372 617
373 **Normalisation Method:** 618 **Advanced Options:**
374 Option for using different methods to rescale the raw library 619
375 size. For more information, see calcNormFactor section in the edgeR_ user's
376 manual.
377
378 **Apply Sample Weights:**
379 Option to downweight outlier samples such that their information is still
380 used in the statistical analysis but their impact is reduced. Use this
381 whenever significant outliers are present. The MDS plotting tool in this package
382 is useful for identifying outliers. For more information on this option see Liu et al. (2015).
383
384 **Use Advanced Testing Options?:**
385 By default error rate for multiple testing is controlled using Benjamini and 620 By default error rate for multiple testing is controlled using Benjamini and
386 Hochberg's false discovery rate control at a threshold value of 0.05. However 621 Hochberg's false discovery rate control at a threshold value of 0.05. However
387 there are options to change this to custom values. 622 there are options to change this to custom values.
623
624 * **Minimum log2-fold-change Required:**
625 In addition to meeting the requirement for the adjusted statistic for
626 multiple testing, the observation must have an absolute log2-fold-change
627 greater than this threshold to be considered significant, thus highlighted
628 in the MD plot.
629
630 * **Adjusted Threshold:**
631 Set the threshold for the resulting value of the multiple testing control
632 method. Only observations whose statistic falls below this value is
633 considered significant, thus highlighted in the MD plot.
388 634
389 * **P-Value Adjustment Method:** 635 * **P-Value Adjustment Method:**
390 Change the multiple testing control method, the options are BH(1995) and 636 Change the multiple testing control method, the options are BH(1995) and
391 BY(2001) which are both false discovery rate controls. There is also 637 BY(2001) which are both false discovery rate controls. There is also
392 Holm(1979) which is a method for family-wise error rate control. 638 Holm(1979) which is a method for family-wise error rate control.
393 639
394 * **Adjusted Threshold:** 640 **Normalisation Method:**
395 Set the threshold for the resulting value of the multiple testing control 641 The most obvious technical factor that affects the read counts, other than gene expression
396 method. Only observations whose statistic falls below this value is 642 levels, is the sequencing depth of each RNA sample. edgeR adjusts any differential expression
397 considered significant, thus highlighted in the MA plot. 643 analysis for varying sequencing depths as represented by differing library sizes. This is
398 644 part of the basic modeling procedure and flows automatically into fold-change or p-value
399 * **Minimum log2-fold-change Required:** 645 calculations. It is always present, and doesn’t require any user intervention.
400 In addition to meeting the requirement for the adjusted statistic for 646 The second most important technical influence on differential expression is one that is less
401 multiple testing, the observation must have an absolute log2-fold-change 647 obvious. RNA-seq provides a measure of the relative abundance of each gene in each RNA
402 greater than this threshold to be considered significant, thus highlighted 648 sample, but does not provide any measure of the total RNA output on a per-cell basis.
403 in the MA plot. 649 This commonly becomes important when a small number of genes are very highly expressed
650 in one sample, but not in another. The highly expressed genes can consume a substantial
651 proportion of the total library size, causing the remaining genes to be under-sampled in that
652 sample. Unless this RNA composition effect is adjusted for, the remaining genes may falsely
653 appear to be down-regulated in that sample . The edgeR `calcNormFactors` function normalizes for RNA composition by finding a set of scaling factors for the library sizes that minimize the log-fold changes between the samples for most genes. The default method for computing these scale factors uses a trimmed mean of M values (TMM) between each pair of samples. We call the product of the original library size and the scaling factor the *effective library size*. The effective library size replaces the original library size in all downsteam analyses. TMM is the recommended method for most RNA-Seq data where the majority (more than half) of the genes are believed not differentially expressed between any pair of the samples. You can change the normalisation method under **Advanced Options** above. For more information, see the `calcNormFactors` section in the `edgeR User's Guide`_.
654
655 **Robust Settings**
656 Option to use robust settings with eBayes, used by both liamm-voom and limma-trend. Using robust settings is usually recommended to protect against outlier genes, for more information see the `limma User's Guide`_. This is turned on by default.
657
658 **Prior Count:**
659 If the limma-trend method is used, a count (`prior.count`) is added to all counts to avoid taking a log of zero, and damp down the variances of logarithms of low counts. A default of 3 is used, as recommended in the `limma User's Guide`_.
660
661 **Apply Sample Weights:**
662 If the limma-voom method is used, an option is available to downweight outlier samples, such that their information is still
663 used in the statistical analysis but their impact is reduced. Use this
664 whenever significant outliers are present. The MDS plotting tool in this package
665 is useful for identifying outliers. For more information on this option see Liu et al. (2015).
666
404 667
405 **Outputs** 668 **Outputs**
406 669
407 This tool outputs a table of differentially expressed genes for each contrast of interest and a HTML report with plots and additional information. Optionally you can choose to output the normalised counts table and the RData file. 670 This tool outputs
671
672 * a table of differentially expressed genes for each contrast of interest
673 * a HTML report with plots and additional information
674
675 Optionally, under **Output Options** you can choose to output
676
677 * a normalised counts table
678 * an RData file
408 679
409 ----- 680 -----
410 681
411 **Citations:** 682 **Citations:**
412 683
413 .. class:: infomark 684 Please try to cite the appropriate articles when you publish results obtained using software, as such citation is the main means by which the authors receive credit for their work.
414 685
415 limma 686 limma
416 687
417 Please cite the paper below for the limma software itself. Please also try 688 Please cite the paper below for the limma software itself. Please also try
418 to cite the appropriate methodology articles that describe the statistical 689 to cite the appropriate methodology articles that describe the statistical
419 methods implemented in limma, depending on which limma functions you are 690 methods implemented in limma, depending on which limma functions you are
420 using. The methodology articles are listed in Section 2.1 of the limma 691 using. The methodology articles are listed in Section 2.1 of the `limma
421 User's Guide. 692 User's Guide`_.
422 693
423 * Smyth GK (2005). Limma: linear models for microarray data. In: 694 * Smyth GK (2005). Limma: linear models for microarray data. In:
424 'Bioinformatics and Computational Biology Solutions using R and 695 'Bioinformatics and Computational Biology Solutions using R and
425 Bioconductor'. R. Gentleman, V. Carey, S. Dudoit, R. Irizarry, 696 Bioconductor'. R. Gentleman, V. Carey, S. Dudoit, R. Irizarry,
426 W. Huber (eds), Springer, New York, pages 397-420. 697 W. Huber (eds), Springer, New York, pages 397-420.
433 704
434 * Ritchie, M. E., Diyagama, D., Neilson, J., van Laar, R., Dobrovic, 705 * Ritchie, M. E., Diyagama, D., Neilson, J., van Laar, R., Dobrovic,
435 A., Holloway, A., and Smyth, G. K. (2006). Empirical array quality weights 706 A., Holloway, A., and Smyth, G. K. (2006). Empirical array quality weights
436 for microarray data. BMC Bioinformatics 7, Article 261. 707 for microarray data. BMC Bioinformatics 7, Article 261.
437 708
438 .. class:: infomark
439 709
440 edgeR 710 edgeR
441 711
442 Please cite the first paper for the software itself and the other papers for 712 Please cite the first paper for the software itself and the other papers for
443 the various original statistical methods implemented in edgeR. See 713 the various original statistical methods implemented in edgeR. See
444 Section 1.2 in the User's Guide for more detail. 714 Section 1.2 in the `edgeR User's Guide`_ for more detail.
445 715
446 * Robinson MD, McCarthy DJ and Smyth GK (2010). edgeR: a Bioconductor 716 * Robinson MD, McCarthy DJ and Smyth GK (2010). edgeR: a Bioconductor
447 package for differential expression analysis of digital gene expression 717 package for differential expression analysis of digital gene expression
448 data. Bioinformatics 26, 139-140 718 data. Bioinformatics 26, 139-140
449 719
458 of multifactor RNA-Seq experiments with respect to biological variation. 728 of multifactor RNA-Seq experiments with respect to biological variation.
459 Nucleic Acids Research 40, 4288-4297 729 Nucleic Acids Research 40, 4288-4297
460 730
461 Please report problems or suggestions to: su.s@wehi.edu.au 731 Please report problems or suggestions to: su.s@wehi.edu.au
462 732
733 .. _limma: http://www.bioconductor.org/packages/release/bioc/html/limma.html
734 .. _limma approach: https://www.ncbi.nlm.nih.gov/pubmed/25605792
735 .. _limma User's Guide: http://bioconductor.org/packages/release/bioc/vignettes/limma/inst/doc/usersguide.pdf
463 .. _edgeR: http://www.bioconductor.org/packages/release/bioc/html/edgeR.html 736 .. _edgeR: http://www.bioconductor.org/packages/release/bioc/html/edgeR.html
464 .. _limma: http://www.bioconductor.org/packages/release/bioc/html/limma.html 737 .. _edgeR User's Guide: https://bioconductor.org/packages/release/bioc/vignettes/edgeR/inst/doc/edgeRUsersGuide.pdf
465 ]]></help> 738 ]]></help>
466 <citations> 739 <citations>
740 <citation type="doi">10.1186/gb-2014-15-2-r29</citation>
467 <citation type="doi">10.1093/nar/gkv412</citation> 741 <citation type="doi">10.1093/nar/gkv412</citation>
468 </citations> 742 </citations>
469 </tool> 743 </tool>