annotate deseq2.R @ 17:d9e5cadc7f0b draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
author iuc
date Wed, 05 Sep 2018 15:54:03 -0400
parents a416957ee305
children 3bf1b3ec1ddf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
1 #!/usr/bin/env Rscript
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
2
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
3 # A command-line interface to DESeq2 for use with Galaxy
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
4 # written by Bjoern Gruening and modified by Michael Love 2016.03.30
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
5 #
14
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
6 # This argument is required:
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
7 #
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
8 # 'factors' a JSON list object from Galaxy
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
9 #
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
10 # the output file has columns:
15
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
11 #
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
12 # baseMean (mean normalized count)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
13 # log2FoldChange (by default a moderated LFC estimate)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
14 # lfcSE (the standard error)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
15 # stat (the Wald statistic)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
16 # pvalue (p-value from comparison of Wald statistic to a standard Normal)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
17 # padj (adjusted p-value, Benjamini Hochberg correction on genes which pass the mean count filter)
15
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
18 #
14
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
19 # the first variable in 'factors' will be the primary factor.
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
20 # the levels of the primary factor are used in the order of appearance in factors.
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
21 #
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
22 # by default, levels in the order A,B,C produces a single comparison of B vs A, to a single file 'outfile'
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
23 #
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
24 # for the 'many_contrasts' flag, levels in the order A,B,C produces comparisons C vs A, B vs A, C vs B,
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
25 # to a number of files using the 'outfile' prefix: 'outfile.condition_C_vs_A' etc.
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
26 # all plots will still be sent to a single PDF, named by the arg 'plots', with extra pages.
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
27 #
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
28 # fit_type is an integer valued argument, with the options from ?estimateDisperions
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
29 # 1 "parametric"
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
30 # 2 "local"
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
31 # 3 "mean"
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
32
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
33 # setup R error handling to go to stderr
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
34 options( show.error.messages=F, error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } )
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
35
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
36 # we need that to not crash galaxy with an UTF8 error on German LC settings.
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
37 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
38
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
39 library("getopt")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
40 library("tools")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
41 options(stringAsFactors = FALSE, useFancyQuotes = FALSE)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
42 args <- commandArgs(trailingOnly = TRUE)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
43
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
44 # get options, using the spec as defined by the enclosed list.
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
45 # we read the options from the default: commandArgs(TRUE).
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
46 spec <- matrix(c(
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
47 "quiet", "q", 0, "logical",
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
48 "help", "h", 0, "logical",
17
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
49 "batch_factors", "", 1, "character",
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
50 "outfile", "o", 1, "character",
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
51 "countsfile", "n", 1, "character",
15
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
52 "header", "H", 0, "logical",
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
53 "factors", "f", 1, "character",
12
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
54 "files_to_labels", "l", 1, "character",
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
55 "plots" , "p", 1, "character",
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
56 "tximport", "i", 0, "logical",
11
25204a860b79 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 0a56599c36b4968095ec5a3cb589f94fb139466c
iuc
parents: 9
diff changeset
57 "txtype", "y", 1, "character",
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
58 "tx2gene", "x", 1, "character", # a space-sep tx-to-gene map or GTF file (auto detect .gtf/.GTF)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
59 "fit_type", "t", 1, "integer",
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
60 "many_contrasts", "m", 0, "logical",
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
61 "outlier_replace_off" , "a", 0, "logical",
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
62 "outlier_filter_off" , "b", 0, "logical",
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
63 "auto_mean_filter_off", "c", 0, "logical",
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
64 "beta_prior_off", "d", 0, "logical"),
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
65 byrow=TRUE, ncol=4)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
66 opt <- getopt(spec)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
67
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
68 # if help was asked for print a friendly message
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
69 # and exit with a non-zero error code
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
70 if (!is.null(opt$help)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
71 cat(getopt(spec, usage=TRUE))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
72 q(status=1)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
73 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
74
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
75 # enforce the following required arguments
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
76 if (is.null(opt$outfile)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
77 cat("'outfile' is required\n")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
78 q(status=1)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
79 }
14
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
80 if (is.null(opt$factors)) {
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
81 cat("'factors' is required\n")
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
82 q(status=1)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
83 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
84
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
85 verbose <- if (is.null(opt$quiet)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
86 TRUE
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
87 } else {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
88 FALSE
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
89 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
90
17
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
91 source_local <- function(fname){
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
92 argv <- commandArgs(trailingOnly = FALSE)
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
93 base_dir <- dirname(substring(argv[grep("--file=", argv)], 8))
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
94 source(paste(base_dir, fname, sep="/"))
15
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
95 }
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
96
17
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
97 source_local('get_deseq_dataset.R')
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
98
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
99 suppressPackageStartupMessages({
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
100 library("DESeq2")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
101 library("RColorBrewer")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
102 library("gplots")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
103 })
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
104
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
105 # build or read sample table
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
106
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
107 trim <- function (x) gsub("^\\s+|\\s+$", "", x)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
108
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
109 # switch on if 'factors' was provided:
14
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
110 library("rjson")
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
111 parser <- newJSONParser()
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
112 parser$addData(opt$factors)
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
113 factorList <- parser$getObject()
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
114 filenames_to_labels <- fromJSON(opt$files_to_labels)
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
115 factors <- sapply(factorList, function(x) x[[1]])
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
116 primaryFactor <- factors[1]
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
117 filenamesIn <- unname(unlist(factorList[[1]][[2]]))
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
118 labs = unname(unlist(filenames_to_labels[basename(filenamesIn)]))
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
119 sampleTable <- data.frame(sample=basename(filenamesIn),
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
120 filename=filenamesIn,
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
121 row.names=filenamesIn,
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
122 stringsAsFactors=FALSE)
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
123 for (factor in factorList) {
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
124 factorName <- trim(factor[[1]])
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
125 sampleTable[[factorName]] <- character(nrow(sampleTable))
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
126 lvls <- sapply(factor[[2]], function(x) names(x))
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
127 for (i in seq_along(factor[[2]])) {
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
128 files <- factor[[2]][[i]][[1]]
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
129 sampleTable[files,factorName] <- trim(lvls[i])
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
130 }
14
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
131 sampleTable[[factorName]] <- factor(sampleTable[[factorName]], levels=lvls)
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
132 }
14
d0c39b5e78cf planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents: 12
diff changeset
133 rownames(sampleTable) <- labs
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
134
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
135 primaryFactor <- factors[1]
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
136 designFormula <- as.formula(paste("~", paste(rev(factors), collapse=" + ")))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
137
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
138 # these are plots which are made once for each analysis
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
139 generateGenericPlots <- function(dds, factors) {
12
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
140 library("ggplot2")
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
141 library("ggrepel")
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
142 library("pheatmap")
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
143
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
144 rld <- rlog(dds)
12
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
145 p <- plotPCA(rld, intgroup=rev(factors))
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
146 print(p + geom_text_repel(aes_string(x = "PC1", y = "PC2", label = factor(colnames(dds))), size=3) + geom_point())
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
147 dat <- assay(rld)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
148 distsRL <- dist(t(dat))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
149 mat <- as.matrix(distsRL)
12
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
150 colors <- colorRampPalette( rev(brewer.pal(9, "Blues")) )(255)
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
151 pheatmap(mat,
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
152 clustering_distance_rows=distsRL,
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
153 clustering_distance_cols=distsRL,
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
154 col=colors,
bd06df00180a planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents: 11
diff changeset
155 main="Sample-to-sample distances")
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
156 plotDispEsts(dds, main="Dispersion estimates")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
157 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
158
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
159 # these are plots which can be made for each comparison, e.g.
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
160 # once for C vs A and once for B vs A
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
161 generateSpecificPlots <- function(res, threshold, title_suffix) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
162 use <- res$baseMean > threshold
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
163 if (sum(!use) == 0) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
164 h <- hist(res$pvalue, breaks=0:50/50, plot=FALSE)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
165 barplot(height = h$counts,
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
166 col = "powderblue", space = 0, xlab="p-values", ylab="frequency",
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
167 main=paste("Histogram of p-values for",title_suffix))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
168 text(x = c(0, length(h$counts)), y = 0, label=paste(c(0,1)), adj=c(0.5,1.7), xpd=NA)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
169 } else {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
170 h1 <- hist(res$pvalue[!use], breaks=0:50/50, plot=FALSE)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
171 h2 <- hist(res$pvalue[use], breaks=0:50/50, plot=FALSE)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
172 colori <- c("filtered (low count)"="khaki", "not filtered"="powderblue")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
173 barplot(height = rbind(h1$counts, h2$counts), beside = FALSE,
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
174 col = colori, space = 0, xlab="p-values", ylab="frequency",
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
175 main=paste("Histogram of p-values for",title_suffix))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
176 text(x = c(0, length(h1$counts)), y = 0, label=paste(c(0,1)), adj=c(0.5,1.7), xpd=NA)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
177 legend("topright", fill=rev(colori), legend=rev(names(colori)), bg="white")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
178 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
179 plotMA(res, main= paste("MA-plot for",title_suffix), ylim=range(res$log2FoldChange, na.rm=TRUE))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
180 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
181
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
182 if (verbose) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
183 cat(paste("primary factor:",primaryFactor,"\n"))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
184 if (length(factors) > 1) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
185 cat(paste("other factors in design:",paste(factors[-length(factors)],collapse=","),"\n"))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
186 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
187 cat("\n---------------------\n")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
188 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
189
17
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
190 dds <- get_deseq_dataset(sampleTable, header=opt$header, designFormula=designFormula, tximport=opt$tximport, txtype=opt$txtype, tx2gene=opt$tx2gene)
15
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
191
17
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
192 apply_batch_factors <- function (dds, batch_factors) {
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
193 rownames(batch_factors) <- batch_factors$identifier
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
194 batch_factors <- subset(batch_factors, select = -c(identifier, condition))
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
195 dds_samples <- colnames(dds)
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
196 batch_samples <- rownames(batch_factors)
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
197 if (!setequal(batch_samples, dds_samples)) {
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
198 stop("Batch factor names don't correspond to input sample names, check input files")
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
199 }
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
200 dds_data <- colData(dds)
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
201 # Merge dds_data with batch_factors using indexes, which are sample names
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
202 # Set sort to False, which maintains the order in dds_data
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
203 reordered_batch <- merge(dds_data, batch_factors, by.x = 0, by.y = 0, sort=F)
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
204 batch_factors <- reordered_batch[, ncol(dds_data):ncol(reordered_batch)]
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
205 for (factor in colnames(batch_factors)) {
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
206 dds[[factor]] <- batch_factors[[factor]]
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
207 }
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
208 colnames(dds) <- reordered_batch[,1]
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
209 return(dds)
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
210 }
15
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
211
17
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
212 if (!is.null(opt$batch_factors)) {
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
213 batch_factors <- read.table(opt$batch_factors, sep="\t", header=T)
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
214 dds <- apply_batch_factors(dds = dds, batch_factors = batch_factors)
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
215 batch_design <- colnames(batch_factors)[-c(1,2)]
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
216 designFormula <- as.formula(paste("~", paste(c(batch_design, rev(factors)), collapse=" + ")))
d9e5cadc7f0b planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents: 16
diff changeset
217 design(dds) <- designFormula
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
218 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
219
15
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
220 if (verbose) {
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
221 cat("DESeq2 run information\n\n")
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
222 cat("sample table:\n")
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
223 print(sampleTable[,-c(1:2),drop=FALSE])
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
224 cat("\ndesign formula:\n")
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
225 print(designFormula)
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
226 cat("\n\n")
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
227 cat(paste(ncol(dds), "samples with counts over", nrow(dds), "genes\n"))
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
228 }
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
229
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
230 # optional outlier behavior
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
231 if (is.null(opt$outlier_replace_off)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
232 minRep <- 7
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
233 } else {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
234 minRep <- Inf
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
235 if (verbose) cat("outlier replacement off\n")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
236 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
237 if (is.null(opt$outlier_filter_off)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
238 cooksCutoff <- TRUE
15
9a616afdbda5 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents: 14
diff changeset
239 } else {
6
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
240 cooksCutoff <- FALSE
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
241 if (verbose) cat("outlier filtering off\n")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
242 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
243
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
244 # optional automatic mean filtering
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
245 if (is.null(opt$auto_mean_filter_off)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
246 independentFiltering <- TRUE
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
247 } else {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
248 independentFiltering <- FALSE
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
249 if (verbose) cat("automatic filtering on the mean off\n")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
250 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
251
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
252 # shrinkage of LFCs
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
253 if (is.null(opt$beta_prior_off)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
254 betaPrior <- TRUE
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
255 } else {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
256 betaPrior <- FALSE
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
257 if (verbose) cat("beta prior off\n")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
258 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
259
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
260 # dispersion fit type
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
261 if (is.null(opt$fit_type)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
262 fitType <- "parametric"
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
263 } else {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
264 fitType <- c("parametric","local","mean")[opt$fit_type]
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
265 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
266
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
267 if (verbose) cat(paste("using disperion fit type:",fitType,"\n"))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
268
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
269 # run the analysis
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
270 dds <- DESeq(dds, fitType=fitType, betaPrior=betaPrior, minReplicatesForReplace=minRep)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
271
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
272 # create the generic plots and leave the device open
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
273 if (!is.null(opt$plots)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
274 if (verbose) cat("creating plots\n")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
275 pdf(opt$plots)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
276 generateGenericPlots(dds, factors)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
277 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
278
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
279 n <- nlevels(colData(dds)[[primaryFactor]])
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
280 allLevels <- levels(colData(dds)[[primaryFactor]])
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
281
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
282 if (!is.null(opt$countsfile)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
283 normalizedCounts<-counts(dds,normalized=TRUE)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
284 write.table(normalizedCounts, file=opt$countsfile, sep="\t", col.names=NA, quote=FALSE)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
285 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
286
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
287 if (is.null(opt$many_contrasts)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
288 # only contrast the first and second level of the primary factor
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
289 ref <- allLevels[1]
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
290 lvl <- allLevels[2]
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
291 res <- results(dds, contrast=c(primaryFactor, lvl, ref),
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
292 cooksCutoff=cooksCutoff,
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
293 independentFiltering=independentFiltering)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
294 if (verbose) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
295 cat("summary of results\n")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
296 cat(paste0(primaryFactor,": ",lvl," vs ",ref,"\n"))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
297 print(summary(res))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
298 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
299 resSorted <- res[order(res$padj),]
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
300 outDF <- as.data.frame(resSorted)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
301 outDF$geneID <- rownames(outDF)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
302 outDF <- outDF[,c("geneID", "baseMean", "log2FoldChange", "lfcSE", "stat", "pvalue", "padj")]
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
303 filename <- opt$outfile
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
304 write.table(outDF, file=filename, sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
305 if (independentFiltering) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
306 threshold <- unname(attr(res, "filterThreshold"))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
307 } else {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
308 threshold <- 0
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
309 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
310 title_suffix <- paste0(primaryFactor,": ",lvl," vs ",ref)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
311 if (!is.null(opt$plots)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
312 generateSpecificPlots(res, threshold, title_suffix)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
313 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
314 } else {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
315 # rotate through the possible contrasts of the primary factor
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
316 # write out a sorted table of results with the contrast as a suffix
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
317 # add contrast specific plots to the device
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
318 for (i in seq_len(n-1)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
319 ref <- allLevels[i]
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
320 contrastLevels <- allLevels[(i+1):n]
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
321 for (lvl in contrastLevels) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
322 res <- results(dds, contrast=c(primaryFactor, lvl, ref),
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
323 cooksCutoff=cooksCutoff,
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
324 independentFiltering=independentFiltering)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
325 resSorted <- res[order(res$padj),]
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
326 outDF <- as.data.frame(resSorted)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
327 outDF$geneID <- rownames(outDF)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
328 outDF <- outDF[,c("geneID", "baseMean", "log2FoldChange", "lfcSE", "stat", "pvalue", "padj")]
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
329 filename <- paste0(opt$outfile,".",primaryFactor,"_",lvl,"_vs_",ref)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
330 write.table(outDF, file=filename, sep="\t", quote=FALSE, row.names=FALSE, col.names=FALSE)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
331 if (independentFiltering) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
332 threshold <- unname(attr(res, "filterThreshold"))
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
333 } else {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
334 threshold <- 0
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
335 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
336 title_suffix <- paste0(primaryFactor,": ",lvl," vs ",ref)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
337 if (!is.null(opt$plots)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
338 generateSpecificPlots(res, threshold, title_suffix)
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
339 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
340 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
341 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
342 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
343
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
344 # close the plot device
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
345 if (!is.null(opt$plots)) {
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
346 cat("closing plot device\n")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
347 dev.off()
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
348 }
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
349
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
350 cat("Session information:\n\n")
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
351
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
352 sessionInfo()
4939397c4706 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 3bc8d91ee546682ef8e9303bd1044bb14cf21b07
iuc
parents:
diff changeset
353