Mercurial > repos > iuc > deseq2
annotate deseq2.R @ 3:1ae1da9a5e66 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 521ea70d49fee701db4d832823644c8c3050f8f2-dirty
| author | iuc |
|---|---|
| date | Fri, 04 Sep 2015 07:15:37 -0400 |
| parents | 5b1ce9db498e |
| children |
| rev | line source |
|---|---|
|
0
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
1 # A command-line interface to DESeq2 for use with Galaxy |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
2 # written by Bjoern Gruening and modified by Michael Love 2015.01.11 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
3 # |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
4 # one of these arguments is required: |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
5 # |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
6 # 'factors' a JSON list object from Galaxy |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
7 # |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
8 # 'sample_table' is a sample table as described in ?DESeqDataSetFromHTSeq |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
9 # with columns: sample name, filename, then factors (variables) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
10 # |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
11 # the output file has columns: |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
12 # |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
13 # baseMean (mean normalized count) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
14 # log2FoldChange (by default a moderated LFC estimate) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
15 # lfcSE (the standard error) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
16 # stat (the Wald statistic) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
17 # pvalue (p-value from comparison of Wald statistic to a standard Normal) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
18 # padj (adjusted p-value, Benjamini Hochberg correction on genes which pass the mean count filter) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
19 # |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
20 # the first variable in 'factors' and first column in 'sample_table' will be the primary factor. |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
21 # the levels of the primary factor are used in the order of appearance in factors or in sample_table. |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
22 # |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
23 # by default, levels in the order A,B,C produces a single comparison of B vs A, to a single file 'outfile' |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
24 # |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
25 # for the 'many_contrasts' flag, levels in the order A,B,C produces comparisons C vs A, B vs A, C vs B, |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
26 # to a number of files using the 'outfile' prefix: 'outfile.condition_C_vs_A' etc. |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
27 # all plots will still be sent to a single PDF, named by the arg 'plots', with extra pages. |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
28 # |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
29 # fit_type is an integer valued argument, with the options from ?estimateDisperions |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
30 # 1 "parametric" |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
31 # 2 "local" |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
32 # 3 "mean" |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
33 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
34 # setup R error handling to go to stderr |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
35 options( show.error.messages=F, error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } ) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
36 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
37 # we need that to not crash galaxy with an UTF8 error on German LC settings. |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
38 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
39 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
40 library("getopt") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
41 options(stringAsfactors = FALSE, useFancyQuotes = FALSE) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
42 args <- commandArgs(trailingOnly = TRUE) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
43 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
44 # get options, using the spec as defined by the enclosed list. |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
45 # we read the options from the default: commandArgs(TRUE). |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
46 spec <- matrix(c( |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
47 "quiet", "q", 0, "logical", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
48 "help", "h", 0, "logical", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
49 "outfile", "o", 1, "character", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
50 "factors", "f", 1, "character", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
51 "plots" , "p", 1, "character", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
52 "sample_table", "s", 1, "character", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
53 "fit_type", "t", 1, "integer", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
54 "many_contrasts", "m", 0, "logical", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
55 "outlier_replace_off" , "a", 0, "logical", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
56 "outlier_filter_off" , "b", 0, "logical", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
57 "auto_mean_filter_off", "c", 0, "logical", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
58 "beta_prior_off", "d", 0, "logical"), |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
59 byrow=TRUE, ncol=4) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
60 opt <- getopt(spec) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
61 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
62 # if help was asked for print a friendly message |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
63 # and exit with a non-zero error code |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
64 if (!is.null(opt$help)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
65 cat(getopt(spec, usage=TRUE)) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
66 q(status=1) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
67 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
68 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
69 # enforce the following required arguments |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
70 if (is.null(opt$outfile)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
71 cat("'outfile' is required\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
72 q(status=1) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
73 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
74 if (is.null(opt$sample_table) & is.null(opt$factors)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
75 cat("'factors' or 'sample_table' is required\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
76 q(status=1) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
77 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
78 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
79 verbose <- if (is.null(opt$quiet)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
80 TRUE |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
81 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
82 FALSE |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
83 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
84 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
85 suppressPackageStartupMessages({ |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
86 library("DESeq2") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
87 library("RColorBrewer") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
88 library("gplots") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
89 }) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
90 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
91 # build or read sample table |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
92 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
93 trim <- function (x) gsub("^\\s+|\\s+$", "", x) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
94 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
95 # switch on if 'factors' was provided: |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
96 if (!is.null(opt$factors)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
97 library("rjson") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
98 parser <- newJSONParser() |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
99 parser$addData(opt$factors) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
100 factorList <- parser$getObject() |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
101 factors <- sapply(factorList, function(x) x[[1]]) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
102 primaryFactor <- factors[1] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
103 filenamesIn <- unname(unlist(factorList[[1]][[2]])) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
104 sampleTable <- data.frame(sample=basename(filenamesIn), filename=filenamesIn, row.names=filenamesIn) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
105 for (factor in factorList) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
106 factorName <- trim(factor[[1]]) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
107 sampleTable[[factorName]] <- character(nrow(sampleTable)) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
108 lvls <- sapply(factor[[2]], function(x) names(x)) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
109 for (i in seq_along(factor[[2]])) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
110 files <- factor[[2]][[i]][[1]] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
111 sampleTable[files,factorName] <- trim(lvls[i]) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
112 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
113 sampleTable[[factorName]] <- factor(sampleTable[[factorName]], levels=lvls) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
114 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
115 rownames(sampleTable) <- sampleTable$sample |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
116 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
117 # read the sample_table argument |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
118 # this table is described in ?DESeqDataSet |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
119 # one column for the sample name, one for the filename, and |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
120 # the remaining columns for factors in the analysis |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
121 sampleTable <- read.delim(opt$sample_table) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
122 factors <- colnames(sampleTable)[-c(1:2)] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
123 for (factor in factors) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
124 lvls <- unique(as.character(sampleTable[[factor]])) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
125 sampleTable[[factor]] <- factor(sampleTable[[factor]], levels=lvls) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
126 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
127 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
128 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
129 primaryFactor <- factors[1] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
130 designFormula <- as.formula(paste("~", paste(rev(factors), collapse=" + "))) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
131 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
132 if (verbose) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
133 cat("DESeq2 run information\n\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
134 cat("sample table:\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
135 print(sampleTable[,-c(1:2),drop=FALSE]) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
136 cat("\ndesign formula:\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
137 print(designFormula) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
138 cat("\n\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
139 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
140 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
141 # these are plots which are made once for each analysis |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
142 generateGenericPlots <- function(dds, factors) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
143 rld <- rlog(dds) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
144 print(plotPCA(rld, intgroup=rev(factors))) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
145 # need meaningful labels, because from Galaxy, sample names are random |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
146 labs <- paste0(seq_len(ncol(dds)), ": ", do.call(paste, as.list(colData(dds)[factors]))) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
147 dat <- assay(rld) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
148 colnames(dat) <- labs |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
149 distsRL <- dist(t(dat)) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
150 mat <- as.matrix(distsRL) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
151 hc <- hclust(distsRL) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
152 hmcol <- colorRampPalette(brewer.pal(9, "GnBu"))(100) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
153 heatmap.2(mat, Rowv=as.dendrogram(hc), symm=TRUE, trace="none", col = rev(hmcol), |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
154 main="Sample-to-sample distances", margin=c(13,13)) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
155 plotDispEsts(dds, main="Dispersion estimates") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
156 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
157 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
158 # these are plots which can be made for each comparison, e.g. |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
159 # once for C vs A and once for B vs A |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
160 generateSpecificPlots <- function(res, threshold, title_suffix) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
161 use <- res$baseMean > threshold |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
162 if (sum(!use) == 0) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
163 h <- hist(res$pvalue, breaks=0:50/50, plot=FALSE) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
164 barplot(height = h$counts, |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
165 col = "powderblue", space = 0, xlab="p-values", ylab="frequency", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
166 main=paste("Histogram of p-values for",title_suffix)) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
167 text(x = c(0, length(h1$counts)), y = 0, label=paste(c(0,1)), adj=c(0.5,1.7), xpd=NA) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
168 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
169 h1 <- hist(res$pvalue[!use], breaks=0:50/50, plot=FALSE) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
170 h2 <- hist(res$pvalue[use], breaks=0:50/50, plot=FALSE) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
171 colori <- c("filtered (low count)"="khaki", "not filtered"="powderblue") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
172 barplot(height = rbind(h1$counts, h2$counts), beside = FALSE, |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
173 col = colori, space = 0, xlab="p-values", ylab="frequency", |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
174 main=paste("Histogram of p-values for",title_suffix)) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
175 text(x = c(0, length(h1$counts)), y = 0, label=paste(c(0,1)), adj=c(0.5,1.7), xpd=NA) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
176 legend("topright", fill=rev(colori), legend=rev(names(colori)), bg="white") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
177 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
178 plotMA(res, main= paste("MA-plot for",title_suffix), ylim=range(res$log2FoldChange, na.rm=TRUE)) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
179 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
180 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
181 if (verbose) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
182 cat(paste("primary factor:",primaryFactor,"\n")) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
183 if (length(factors) > 1) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
184 cat(paste("other factors in design:",paste(factors[-length(factors)],collapse=","),"\n")) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
185 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
186 cat("\n---------------------\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
187 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
188 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
189 # if JSON input from Galaxy, path is absolute |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
190 # otherwise, from sample_table, assume it is relative |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
191 dir <- if (is.null(opt$factors)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
192 "." |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
193 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
194 "" |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
195 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
196 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
197 # construct the object |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
198 dds <- DESeqDataSetFromHTSeqCount(sampleTable = sampleTable, |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
199 directory = dir, |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
200 design = designFormula) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
201 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
202 if (verbose) cat(paste(ncol(dds), "samples with counts over", nrow(dds), "genes\n")) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
203 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
204 # optional outlier behavior |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
205 if (is.null(opt$outlier_replace_off)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
206 minRep <- 7 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
207 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
208 minRep <- Inf |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
209 if (verbose) cat("outlier replacement off\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
210 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
211 if (is.null(opt$outlier_filter_off)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
212 cooksCutoff <- TRUE |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
213 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
214 cooksCutoff <- FALSE |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
215 if (verbose) cat("outlier filtering off\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
216 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
217 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
218 # optional automatic mean filtering |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
219 if (is.null(opt$auto_mean_filter_off)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
220 independentFiltering <- TRUE |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
221 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
222 independentFiltering <- FALSE |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
223 if (verbose) cat("automatic filtering on the mean off\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
224 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
225 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
226 # shrinkage of LFCs |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
227 if (is.null(opt$beta_prior_off)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
228 betaPrior <- TRUE |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
229 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
230 betaPrior <- FALSE |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
231 if (verbose) cat("beta prior off\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
232 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
233 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
234 # dispersion fit type |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
235 if (is.null(opt$fit_type)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
236 fitType <- "parametric" |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
237 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
238 fitType <- c("parametric","local","mean")[opt$fit_type] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
239 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
240 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
241 if (verbose) cat(paste("using disperion fit type:",fitType,"\n")) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
242 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
243 # run the analysis |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
244 dds <- DESeq(dds, fitType=fitType, betaPrior=betaPrior, minReplicatesForReplace=minRep) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
245 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
246 # create the generic plots and leave the device open |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
247 if (!is.null(opt$plots)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
248 if (verbose) cat("creating plots\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
249 pdf(opt$plots) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
250 generateGenericPlots(dds, factors) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
251 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
252 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
253 n <- nlevels(colData(dds)[[primaryFactor]]) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
254 allLevels <- levels(colData(dds)[[primaryFactor]]) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
255 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
256 if (is.null(opt$many_contrasts)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
257 # only contrast the first and second level of the primary factor |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
258 ref <- allLevels[1] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
259 lvl <- allLevels[2] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
260 res <- results(dds, contrast=c(primaryFactor, lvl, ref), |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
261 cooksCutoff=cooksCutoff, |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
262 independentFiltering=independentFiltering) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
263 if (verbose) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
264 cat("summary of results\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
265 cat(paste0(primaryFactor,": ",lvl," vs ",ref,"\n")) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
266 print(summary(res)) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
267 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
268 resSorted <- res[order(res$padj),] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
269 outDF <- as.data.frame(resSorted) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
270 outDF$geneID <- rownames(outDF) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
271 outDF <- outDF[,c("geneID", "baseMean", "log2FoldChange", "lfcSE", "stat", "pvalue", "padj")] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
272 filename <- opt$outfile |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
273 write.table(outDF, file=filename, sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
274 if (independentFiltering) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
275 threshold <- unname(attr(res, "filterThreshold")) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
276 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
277 threshold <- 0 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
278 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
279 title_suffix <- paste0(primaryFactor,": ",lvl," vs ",ref) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
280 if (!is.null(opt$plots)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
281 generateSpecificPlots(res, threshold, title_suffix) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
282 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
283 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
284 # rotate through the possible contrasts of the primary factor |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
285 # write out a sorted table of results with the contrast as a suffix |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
286 # add contrast specific plots to the device |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
287 for (i in seq_len(n-1)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
288 ref <- allLevels[i] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
289 contrastLevels <- allLevels[(i+1):n] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
290 for (lvl in contrastLevels) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
291 res <- results(dds, contrast=c(primaryFactor, lvl, ref), |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
292 cooksCutoff=cooksCutoff, |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
293 independentFiltering=independentFiltering) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
294 resSorted <- res[order(res$padj),] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
295 outDF <- as.data.frame(resSorted) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
296 outDF$geneID <- rownames(outDF) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
297 outDF <- outDF[,c("geneID", "baseMean", "log2FoldChange", "lfcSE", "stat", "pvalue", "padj")] |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
298 filename <- paste0(opt$outfile,".",primaryFactor,"_",lvl,"_vs_",ref) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
299 write.table(outDF, file=filename, sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
300 if (independentFiltering) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
301 threshold <- unname(attr(res, "filterThreshold")) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
302 } else { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
303 threshold <- 0 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
304 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
305 title_suffix <- paste0(primaryFactor,": ",lvl," vs ",ref) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
306 if (!is.null(opt$plots)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
307 generateSpecificPlots(res, threshold, title_suffix) |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
308 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
309 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
310 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
311 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
312 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
313 # close the plot device |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
314 if (!is.null(opt$plots)) { |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
315 cat("closing plot device\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
316 dev.off() |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
317 } |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
318 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
319 cat("Session information:\n\n") |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
320 |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
321 sessionInfo() |
|
5b1ce9db498e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 76d0758966bde7c15f5224913cee5e8ce28314ff
iuc
parents:
diff
changeset
|
322 |
