Mercurial > repos > iuc > deseq2
annotate deseq2.R @ 44:1cb33de18af5 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
| author | iuc |
|---|---|
| date | Tue, 09 Dec 2025 17:43:58 +0000 |
| parents | 621ddf5967d2 |
| children |
| rev | line source |
|---|---|
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
1 #!/usr/bin/env Rscript |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
2 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
3 # A command-line interface to DESeq2 for use with Galaxy |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
4 # written by Bjoern Gruening and modified by Michael Love 2016.03.30 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
5 # |
|
26
47267a044ef1
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents:
24
diff
changeset
|
6 # This argument is required: |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
7 # |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
8 # 'factors' a JSON list object from Galaxy |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
9 # |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
10 # the output file has columns: |
|
27
dc6bc19f05ab
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents:
26
diff
changeset
|
11 # |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
12 # baseMean (mean normalized count) |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
13 # log2FoldChange (by default a moderated LFC estimate) |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
14 # lfcSE (the standard error) |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
15 # stat (the Wald statistic) |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
16 # pvalue (p-value from comparison of Wald statistic to a standard Normal) |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
17 # padj (adjusted p-value, Benjamini Hochberg correction on genes which pass the mean count filter) |
|
27
dc6bc19f05ab
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents:
26
diff
changeset
|
18 # |
|
26
47267a044ef1
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents:
24
diff
changeset
|
19 # the first variable in 'factors' will be the primary factor. |
|
47267a044ef1
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents:
24
diff
changeset
|
20 # the levels of the primary factor are used in the order of appearance in factors. |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
21 # |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
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' |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
23 # |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
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, |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
25 # to a number of files using the 'outfile' prefix: 'outfile.condition_C_vs_A' etc. |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
26 # all plots will still be sent to a single PDF, named by the arg 'plots', with extra pages. |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
27 # |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
28 # fit_type is an integer valued argument, with the options from ?estimateDisperions |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
29 # 1 "parametric" |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
30 # 2 "local" |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
31 # 3 "mean" |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
32 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
33 # setup R error handling to go to stderr |
|
42
6ef2cba4e35a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 6868b66f73ddbe947986d1a20b546873cbd515a9
iuc
parents:
41
diff
changeset
|
34 options(show.error.messages = FALSE, error = function() { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
35 cat(geterrmessage(), file = stderr()) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
36 q("no", 1, FALSE) |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
37 }) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
38 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
39 library("getopt") |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
40 library("tools") |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
41 options(stringAsFactors = FALSE, useFancyQuotes = FALSE) |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
42 args <- commandArgs(trailingOnly = TRUE) |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
43 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
44 # get options, using the spec as defined by the enclosed list. |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
45 # we read the options from the default: commandArgs(TRUE). |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
46 spec <- matrix(c( |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
47 "quiet", "q", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
48 "help", "h", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
49 "cores", "s", 0, "integer", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
50 "batch_factors", "w", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
51 "outfile", "o", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
52 "countsfile", "n", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
53 "sizefactorsfile", "F", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
54 "rlogfile", "r", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
55 "vstfile", "v", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
56 "header", "H", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
57 "factors", "f", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
58 "files_to_labels", "l", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
59 "plots", "p", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
60 "tximport", "i", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
61 "txtype", "y", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
62 "tx2gene", "x", 1, "character", # a space-sep tx-to-gene map or GTF/GFF3 file |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
63 "esf", "e", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
64 "fit_type", "t", 1, "integer", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
65 "many_contrasts", "m", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
66 "outlier_replace_off", "a", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
67 "outlier_filter_off", "b", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
68 "auto_mean_filter_off", "c", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
69 "use_beta_priors", "d", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
70 "alpha_ma", "A", 1, "numeric", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
71 "prefilter", "P", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
72 "prefilter_value", "V", 1, "numeric", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
73 "sample_sheet_mode", "S", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
74 "sample_sheet", "g", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
75 "factor_columns", "j", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
76 "reference_level", "R", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
77 "target_level", "T", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
78 "collection_files", "C", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
79 "custom_design_formula", "D", 0, "logical", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
80 "design_formula", "G", 1, "character", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
81 "contrast_definition", "K", 1, "character" |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
82 ), byrow = TRUE, ncol = 4) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
83 opt <- getopt(spec) |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
84 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
85 # if help was asked for print a friendly message |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
86 # and exit with a non-zero error code |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
87 if (!is.null(opt$help)) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
88 cat(getopt(spec, usage = TRUE)) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
89 q(status = 1) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
90 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
91 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
92 # enforce the following required arguments |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
93 if (is.null(opt$outfile)) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
94 cat("'outfile' is required\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
95 q(status = 1) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
96 } |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
97 if (is.null(opt$factors) && is.null(opt$sample_sheet_mode)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
98 cat("'factors' is required when not using sample_sheet_mode\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
99 q(status = 1) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
100 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
101 |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
102 verbose <- is.null(opt$quiet) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
103 |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
104 source_local <- function(fname) { |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
105 argv <- commandArgs(trailingOnly = FALSE) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
106 base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
107 source(paste(base_dir, fname, sep = "/")) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
108 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
109 |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
110 source_local("get_deseq_dataset.R") |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
111 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
112 suppressPackageStartupMessages({ |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
113 library("DESeq2") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
114 library("RColorBrewer") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
115 library("gplots") |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
116 }) |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
117 |
|
33
4f497a8a72e8
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 05bc13637dc9f8e523bc72844ff6eb0794f98ad3
iuc
parents:
31
diff
changeset
|
118 if (opt$cores > 1) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
119 library("BiocParallel") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
120 register(MulticoreParam(opt$cores)) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
121 parallel <- TRUE |
|
33
4f497a8a72e8
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 05bc13637dc9f8e523bc72844ff6eb0794f98ad3
iuc
parents:
31
diff
changeset
|
122 } else { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
123 parallel <- FALSE |
|
33
4f497a8a72e8
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 05bc13637dc9f8e523bc72844ff6eb0794f98ad3
iuc
parents:
31
diff
changeset
|
124 } |
|
4f497a8a72e8
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 05bc13637dc9f8e523bc72844ff6eb0794f98ad3
iuc
parents:
31
diff
changeset
|
125 |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
126 # build or read sample table |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
127 |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
128 trim <- function(x) gsub("^\\s+|\\s+$", "", x) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
129 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
130 # switch on if 'factors' was provided: |
|
26
47267a044ef1
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit e811a7887db870f4f94f620f52bce656c8d5ba23
iuc
parents:
24
diff
changeset
|
131 library("rjson") |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
132 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
133 if (!is.null(opt$sample_sheet_mode)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
134 # Sample sheet mode: build factor_list from sample sheet |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
135 filenames_to_labels <- fromJSON(opt$files_to_labels) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
136 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
137 # Read sample sheet |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
138 sample_sheet <- read.table(opt$sample_sheet, sep = "\t", header = TRUE, stringsAsFactors = FALSE) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
139 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
140 # Parse collection files |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
141 collection_files <- strsplit(opt$collection_files, ",")[[1]] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
142 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
143 # First column of sample sheet should contain sample identifiers |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
144 sample_id_col <- colnames(sample_sheet)[1] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
145 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
146 if (!is.null(opt$custom_design_formula)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
147 # Custom design formula mode |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
148 # Extract variable names from formula (remove ~, +, *, :, whitespace) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
149 formula_str <- gsub("^~\\s*", "", opt$design_formula) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
150 formula_vars <- unique(trimws(unlist(strsplit(formula_str, "[+*:]")))) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
151 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
152 # Validate all variables exist in sample sheet |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
153 missing_vars <- setdiff(formula_vars, colnames(sample_sheet)) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
154 if (length(missing_vars) > 0) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
155 cat(paste0("Error: Variables not found in sample sheet: ", paste(missing_vars, collapse = ", "), "\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
156 cat(paste0("Available columns: ", paste(colnames(sample_sheet), collapse = ", "), "\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
157 q(status = 1) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
158 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
159 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
160 # Use all formula variables as factor columns |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
161 factor_col_names <- formula_vars |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
162 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
163 # Automatic mode: Parse factor columns (comma-separated column numbers, 1-indexed) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
164 factor_col_nums <- as.integer(strsplit(opt$factor_columns, ",")[[1]]) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
165 factor_col_names <- colnames(sample_sheet)[factor_col_nums] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
166 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
167 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
168 # Validate sample sheet matches collection before building factor_list |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
169 # Get element identifiers from collection |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
170 collection_element_ids <- character(length(collection_files)) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
171 for (idx in seq_along(collection_files)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
172 file <- collection_files[idx] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
173 file_basename <- basename(file) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
174 if (file_basename %in% names(filenames_to_labels)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
175 collection_element_ids[idx] <- filenames_to_labels[[file_basename]] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
176 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
177 cat("Error: Sample sheet validation failed\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
178 cat(paste0("Collection file '", file_basename, "' does not have a corresponding element identifier.\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
179 cat("This is an internal error - please report this issue.\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
180 q(status = 1) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
181 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
182 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
183 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
184 # Get sample identifiers from sample sheet |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
185 sample_sheet_ids <- sample_sheet[[sample_id_col]] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
186 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
187 # Check for mismatches |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
188 collection_not_in_sheet <- setdiff(collection_element_ids, sample_sheet_ids) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
189 sheet_not_in_collection <- setdiff(sample_sheet_ids, collection_element_ids) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
190 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
191 if (length(collection_not_in_sheet) > 0 || length(sheet_not_in_collection) > 0) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
192 cat("Error: Sample sheet does not match the input collection\n\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
193 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
194 if (length(collection_not_in_sheet) > 0) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
195 cat("The following samples are in the collection but NOT in the sample sheet:\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
196 for (id in collection_not_in_sheet) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
197 cat(paste0(" - ", id, "\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
198 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
199 cat("\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
200 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
201 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
202 if (length(sheet_not_in_collection) > 0) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
203 cat("The following samples are in the sample sheet but NOT in the collection:\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
204 for (id in sheet_not_in_collection) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
205 cat(paste0(" - ", id, "\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
206 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
207 cat("\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
208 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
209 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
210 cat("Please ensure that:\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
211 cat(paste0("1. The first column ('", sample_id_col, "') of the sample sheet contains sample identifiers\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
212 cat("2. These identifiers exactly match the element identifiers in your collection\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
213 cat("3. All samples in the collection are listed in the sample sheet\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
214 cat("4. All samples in the sample sheet exist in the collection\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
215 q(status = 1) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
216 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
217 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
218 # Determine which factor will be the primary factor for contrasts |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
219 # In custom mode, the primary factor is the last one in the formula (rightmost term) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
220 # In automatic mode, the first selected factor is primary (formula gets reversed) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
221 if (!is.null(opt$custom_design_formula)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
222 primary_factor_index <- length(factor_col_names) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
223 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
224 primary_factor_index <- 1 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
225 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
226 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
227 # Build factor_list structure |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
228 factor_list <- list() |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
229 for (i in seq_along(factor_col_names)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
230 factor_name <- factor_col_names[i] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
231 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
232 # Group files by factor level, preserving the order of first appearance |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
233 level_to_files <- list() |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
234 level_order <- character(0) # Track order of first appearance |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
235 for (file in collection_files) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
236 element_id <- filenames_to_labels[[basename(file)]] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
237 # Find matching row in sample sheet |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
238 matching_row <- which(sample_sheet[[sample_id_col]] == element_id) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
239 if (length(matching_row) > 0) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
240 level <- sample_sheet[[factor_name]][matching_row[1]] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
241 if (!(level %in% names(level_to_files))) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
242 level_to_files[[level]] <- character(0) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
243 level_order <- c(level_order, level) # Record order of first appearance |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
244 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
245 level_to_files[[level]] <- c(level_to_files[[level]], file) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
246 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
247 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
248 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
249 # Get all levels in order of first appearance (not alphabetically sorted) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
250 all_levels <- level_order |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
251 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
252 # Handle reference and target levels for the primary contrast factor |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
253 # In custom mode: this is the LAST factor in the formula |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
254 # In automatic mode: this is the FIRST factor selected (formula will be reversed) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
255 if (i == primary_factor_index) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
256 # This is the primary factor for contrasts: handle reference/target |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
257 # Determine reference level |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
258 if (!is.null(opt$reference_level) && nchar(opt$reference_level) > 0) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
259 ref_level <- trim(opt$reference_level) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
260 # Validate that reference level exists |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
261 if (!(ref_level %in% all_levels)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
262 cat(paste0("Error: Reference level '", ref_level, "' not found in factor '", factor_name, "'. Available levels: ", paste(all_levels, collapse = ", "), "\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
263 q(status = 1) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
264 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
265 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
266 # Default: use first level encountered in sample sheet as reference |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
267 ref_level <- all_levels[1] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
268 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
269 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
270 # Build factor levels with reference first, then others |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
271 # This applies to both automatic and custom modes |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
272 if (!is.null(opt$target_level) && nchar(opt$target_level) > 0) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
273 target_level <- trim(opt$target_level) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
274 # Validate that target level exists |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
275 if (!(target_level %in% all_levels)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
276 cat(paste0("Error: Target level '", target_level, "' not found in factor '", factor_name, "'. Available levels: ", paste(all_levels, collapse = ", "), "\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
277 q(status = 1) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
278 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
279 # Explicit target: reference first, target second |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
280 levels_to_use <- c(ref_level, target_level) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
281 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
282 # Reference first, then others in order of appearance |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
283 other_levels <- all_levels[all_levels != ref_level] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
284 levels_to_use <- c(ref_level, other_levels) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
285 # Target is the first non-reference level |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
286 target_level <- other_levels[1] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
287 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
288 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
289 # Store reference and target levels for later contrast specification |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
290 # This ensures we use the intended levels, not whatever order files happened to be in |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
291 primary_ref_level <- ref_level |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
292 primary_target_level <- target_level |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
293 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
294 # For secondary factors, use all levels in order of appearance |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
295 levels_to_use <- all_levels |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
296 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
297 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
298 # Build factor structure in the order specified by levels_to_use |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
299 # Following standard DESeq2 convention: reference level is first |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
300 factor_levels <- list() |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
301 for (level in levels_to_use) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
302 if (level %in% names(level_to_files)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
303 level_entry <- list() |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
304 level_entry[[level]] <- level_to_files[[level]] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
305 factor_levels[[length(factor_levels) + 1]] <- level_entry |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
306 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
307 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
308 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
309 factor_list[[length(factor_list) + 1]] <- list(factor_name, factor_levels) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
310 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
311 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
312 # Set primary_factor for sample sheet mode |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
313 # This is the factor that will be used for contrasts |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
314 if (!is.null(opt$custom_design_formula)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
315 # Custom mode: primary factor is the last one in the formula (rightmost term) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
316 primary_factor <- factor_col_names[length(factor_col_names)] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
317 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
318 # Automatic mode: primary factor is the first selected factor (formula will be reversed) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
319 primary_factor <- factor_col_names[1] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
320 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
321 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
322 # Parse contrast_definition if in custom mode |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
323 if (!is.null(opt$custom_design_formula) && !is.null(opt$contrast_definition) && nchar(opt$contrast_definition) > 0) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
324 contrast_parts <- strsplit(opt$contrast_definition, ",")[[1]] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
325 if (length(contrast_parts) != 3) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
326 cat("Error: contrast_definition must be in format 'factor,target,reference'\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
327 q(status = 1) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
328 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
329 custom_contrast <- list( |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
330 factor = trim(contrast_parts[1]), |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
331 target = trim(contrast_parts[2]), |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
332 reference = trim(contrast_parts[3]) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
333 ) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
334 # Validate the contrast |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
335 if (!(custom_contrast$factor %in% factor_col_names)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
336 cat(paste0("Error: Contrast factor '", custom_contrast$factor, "' not found in design formula.\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
337 cat(paste0("Available factors: ", paste(factor_col_names, collapse = ", "), "\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
338 q(status = 1) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
339 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
340 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
341 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
342 # Original mode: factors provided directly |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
343 parser <- newJSONParser() |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
344 parser$addData(opt$factors) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
345 factor_list <- parser$getObject() |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
346 filenames_to_labels <- fromJSON(opt$files_to_labels) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
347 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
348 # For original mode, extract reference and target levels from the first factor |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
349 # In original mode: ref=level1 (denominator), target=level2 (numerator) -> log2(level2/level1) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
350 # So we swap the naming to match the contrast direction used below |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
351 primary_factor_data <- factor_list[[1]] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
352 primary_levels <- sapply(primary_factor_data[[2]], function(x) names(x)) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
353 primary_target_level <- primary_levels[1] # First level becomes "target" for the swap below |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
354 primary_ref_level <- if (length(primary_levels) >= 2) primary_levels[2] else primary_levels[1] # Second level becomes "ref" |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
355 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
356 |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
357 factors <- sapply(factor_list, function(x) x[[1]]) |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
358 # For original mode (not sample_sheet_mode), set primary_factor to first factor |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
359 # In sample_sheet_mode, it's already set correctly above |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
360 if (is.null(opt$sample_sheet_mode)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
361 primary_factor <- factors[1] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
362 } |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
363 filenames_in <- unname(unlist(factor_list[[1]][[2]])) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
364 labs <- unname(unlist(filenames_to_labels[basename(filenames_in)])) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
365 sample_table <- data.frame( |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
366 sample = basename(filenames_in), |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
367 filename = filenames_in, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
368 row.names = filenames_in, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
369 stringsAsFactors = FALSE |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
370 ) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
371 for (factor in factor_list) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
372 factor_name <- trim(factor[[1]]) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
373 sample_table[[factor_name]] <- character(nrow(sample_table)) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
374 lvls <- sapply(factor[[2]], function(x) names(x)) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
375 for (i in seq_along(factor[[2]])) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
376 files <- factor[[2]][[i]][[1]] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
377 sample_table[files, factor_name] <- trim(lvls[i]) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
378 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
379 sample_table[[factor_name]] <- factor(sample_table[[factor_name]], levels = lvls) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
380 # Explicitly set the reference level using relevel() for the primary factor in sample_sheet_mode |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
381 # This ensures DESeq2 knows the reference regardless of factor level order |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
382 # In original mode, we don't relevel because the order from factor_list is already correct |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
383 # Note: primary_factor is already set correctly in sample_sheet_mode before we get here |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
384 if (exists("primary_factor") && factor_name == primary_factor && exists("primary_ref_level") && !is.null(opt$sample_sheet_mode)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
385 sample_table[[factor_name]] <- relevel(sample_table[[factor_name]], ref = primary_ref_level) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
386 } |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
387 } |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
388 rownames(sample_table) <- labs |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
389 |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
390 # Build design formula |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
391 if (!is.null(opt$custom_design_formula)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
392 # Custom mode: use user-provided formula |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
393 design_formula <- as.formula(opt$design_formula) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
394 # In original mode (not sample_sheet), set primary factor to last variable in formula |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
395 # In sample_sheet_mode, it's already set correctly above |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
396 if (is.null(opt$sample_sheet_mode)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
397 primary_factor <- factors[length(factors)] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
398 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
399 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
400 # Automatic mode: build from selected factors |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
401 design_formula <- as.formula(paste("~", paste(rev(factors), collapse = " + "))) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
402 } |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
403 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
404 # these are plots which are made once for each analysis |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
405 generate_generic_plots <- function(dds, factors) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
406 library("ggplot2") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
407 library("ggrepel") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
408 library("pheatmap") |
|
24
1a34aec44d60
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 62e9101c1e7b8467e395f31ccbd9321de01a6418
iuc
parents:
23
diff
changeset
|
409 |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
410 rld <- rlog(dds) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
411 p <- plotPCA(rld, intgroup = rev(factors)) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
412 print(p + geom_text_repel(aes_string(x = "PC1", y = "PC2", label = factor(colnames(dds))), size = 3) + geom_point()) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
413 dat <- assay(rld) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
414 dists_rl <- dist(t(dat)) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
415 mat <- as.matrix(dists_rl) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
416 colors <- colorRampPalette(rev(brewer.pal(9, "Blues")))(255) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
417 pheatmap( |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
418 mat, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
419 clustering_distance_rows = dists_rl, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
420 clustering_distance_cols = dists_rl, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
421 col = colors, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
422 main = "Sample-to-sample distances" |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
423 ) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
424 plotDispEsts(dds, main = "Dispersion estimates") |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
425 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
426 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
427 # these are plots which can be made for each comparison, e.g. |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
428 # once for C vs A and once for B vs A |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
429 generate_specific_plots <- function(res, threshold, title_suffix) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
430 use <- res$baseMean > threshold |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
431 if (sum(!use) == 0) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
432 h <- hist(res$pvalue, breaks = 0:50 / 50, plot = FALSE) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
433 barplot( |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
434 height = h$counts, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
435 col = "powderblue", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
436 space = 0, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
437 xlab = "p-values", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
438 ylab = "frequency", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
439 main = paste("Histogram of p-values for", title_suffix) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
440 ) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
441 text(x = c(0, length(h$counts)), y = 0, label = paste(c(0, 1)), adj = c(0.5, 1.7), xpd = NA) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
442 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
443 h1 <- hist(res$pvalue[!use], breaks = 0:50 / 50, plot = FALSE) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
444 h2 <- hist(res$pvalue[use], breaks = 0:50 / 50, plot = FALSE) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
445 colori <- c("filtered (low count)" = "khaki", "not filtered" = "powderblue") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
446 barplot( |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
447 height = rbind(h1$counts, h2$counts), |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
448 beside = FALSE, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
449 col = colori, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
450 space = 0, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
451 xlab = "p-values", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
452 ylab = "frequency", |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
453 main = paste("Histogram of p-values for", title_suffix) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
454 ) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
455 text(x = c(0, length(h1$counts)), y = 0, label = paste(c(0, 1)), adj = c(0.5, 1.7), xpd = NA) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
456 legend("topright", fill = rev(colori), legend = rev(names(colori)), bg = "white") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
457 } |
|
39
b30a443484ab
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit c8e7020d39d581d7374a13cf94c64998a6481e05"
iuc
parents:
37
diff
changeset
|
458 plotMA(res, main = paste("MA-plot for", title_suffix), ylim = range(res$log2FoldChange, na.rm = TRUE), alpha = opt$alpha_ma) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
459 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
460 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
461 if (verbose) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
462 cat(paste("primary factor:", primary_factor, "\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
463 if (length(factors) > 1) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
464 cat(paste("other factors in design:", paste(factors[-length(factors)], collapse = ","), "\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
465 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
466 cat("\n---------------------\n") |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
467 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
468 |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
469 dds <- get_deseq_dataset(sample_table, header = opt$header, design_formula = design_formula, tximport = opt$tximport, txtype = opt$txtype, tx2gene = opt$tx2gene) |
|
43
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
470 |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
471 # use/estimate size factors with the chosen method |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
472 if (!is.null(opt$esf)) { |
|
43
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
473 if (opt$esf %in% list("ratio", "poscounts", "iterate")) { |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
474 cat("Calculating size factors de novo\n") |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
475 dds <- estimateSizeFactors(dds, type = opt$esf) |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
476 } else { |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
477 sf_table <- read.table(opt$esf) |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
478 # Sort the provided size factors just in case the order differs from the input file order. |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
479 merged_table <- merge(sample_table, sf_table, by.x = 0, by.y = 1, sort = FALSE) |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
480 sf_values <- as.numeric(unlist(merged_table[5])) |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
481 "sizeFactors"(dds) <- sf_values |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
482 |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
483 cat("Using user-provided size factors:\n") |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
484 print(sf_values) |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
485 } |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
486 } else { |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
487 cat("No size factor was used\n") |
|
30
3b9af9a27b5b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 448dccb0c02aba00d8301247b0f0f406ab3d4fa2
iuc
parents:
29
diff
changeset
|
488 } |
|
41
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
489 |
|
43
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
490 |
|
41
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
491 # estimate size factors for each sample |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
492 # - https://support.bioconductor.org/p/97676/ |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
493 if (!is.null(opt$sizefactorsfile)) { |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
494 nm <- assays(dds)[["avgTxLength"]] |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
495 if (!is.null(nm)) { |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
496 ## Recommended: takes into account tximport data |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
497 cat("\nsize factors for samples: taking tximport data into account\n") |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
498 size_factors <- estimateSizeFactorsForMatrix(counts(dds) / nm) |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
499 } else { |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
500 norm_factors <- normalizationFactors(dds) |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
501 if (!is.null(norm_factors)) { |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
502 ## In practice, gives same results as above. |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
503 cat("\nsize factors for samples: no tximport data, using derived normalization factors\n") |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
504 size_factors <- estimateSizeFactorsForMatrix(norm_factors) |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
505 } else { |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
506 ## If we have no other information, estimate from raw. |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
507 cat("\nsize factors for samples: no tximport data, no normalization factors, estimating from raw data\n") |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
508 size_factors <- estimateSizeFactorsForMatrix(counts(dds)) |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
509 } |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
510 } |
|
42
6ef2cba4e35a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 6868b66f73ddbe947986d1a20b546873cbd515a9
iuc
parents:
41
diff
changeset
|
511 write.table(size_factors, file = opt$sizefactorsfile, sep = "\t", col.names = FALSE, quote = FALSE) |
|
41
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
512 } |
|
0a0a3388e3f2
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit cbeb1c4c436be04323bd9a809a6393d00b168d07"
iuc
parents:
39
diff
changeset
|
513 |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
514 apply_batch_factors <- function(dds, batch_factors) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
515 rownames(batch_factors) <- batch_factors$identifier |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
516 batch_factors <- subset(batch_factors, select = -c(identifier, condition)) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
517 dds_samples <- colnames(dds) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
518 batch_samples <- rownames(batch_factors) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
519 if (!setequal(batch_samples, dds_samples)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
520 stop("Batch factor names don't correspond to input sample names, check input files") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
521 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
522 dds_data <- colData(dds) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
523 # Merge dds_data with batch_factors using indexes, which are sample names |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
524 # Set sort to False, which maintains the order in dds_data |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
525 reordered_batch <- merge(dds_data, batch_factors, by.x = 0, by.y = 0, sort = FALSE) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
526 batch_factors <- reordered_batch[, ncol(dds_data):ncol(reordered_batch)] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
527 for (factor in colnames(batch_factors)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
528 dds[[factor]] <- batch_factors[[factor]] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
529 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
530 colnames(dds) <- reordered_batch[, 1] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
531 return(dds) |
|
29
66203279224f
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents:
28
diff
changeset
|
532 } |
|
27
dc6bc19f05ab
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents:
26
diff
changeset
|
533 |
|
29
66203279224f
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit b95582cea8320d5488056a9576474f79cec53be8
iuc
parents:
28
diff
changeset
|
534 if (!is.null(opt$batch_factors)) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
535 batch_factors <- read.table(opt$batch_factors, sep = "\t", header = TRUE) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
536 dds <- apply_batch_factors(dds = dds, batch_factors = batch_factors) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
537 batch_design <- colnames(batch_factors)[-c(1, 2)] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
538 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
539 if (!is.null(opt$custom_design_formula)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
540 # Custom mode: prepend batch factors to user's formula |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
541 user_formula_rhs <- gsub("^~\\s*", "", opt$design_formula) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
542 design_formula <- as.formula(paste("~", paste(c(batch_design, user_formula_rhs), collapse = " + "))) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
543 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
544 # Automatic mode: prepend batch factors to generated formula |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
545 design_formula <- as.formula(paste("~", paste(c(batch_design, rev(factors)), collapse = " + "))) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
546 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
547 design(dds) <- design_formula |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
548 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
549 |
|
27
dc6bc19f05ab
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents:
26
diff
changeset
|
550 if (verbose) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
551 cat("DESeq2 run information\n\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
552 cat("sample table:\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
553 print(sample_table[, -c(1:2), drop = FALSE]) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
554 cat("\ndesign formula:\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
555 print(design_formula) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
556 cat("\n\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
557 cat(paste(ncol(dds), "samples with counts over", nrow(dds), "genes\n")) |
|
27
dc6bc19f05ab
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents:
26
diff
changeset
|
558 } |
|
dc6bc19f05ab
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents:
26
diff
changeset
|
559 |
|
42
6ef2cba4e35a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 6868b66f73ddbe947986d1a20b546873cbd515a9
iuc
parents:
41
diff
changeset
|
560 # minimal pre-filtering |
|
6ef2cba4e35a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 6868b66f73ddbe947986d1a20b546873cbd515a9
iuc
parents:
41
diff
changeset
|
561 if (!is.null(opt$prefilter)) { |
|
6ef2cba4e35a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 6868b66f73ddbe947986d1a20b546873cbd515a9
iuc
parents:
41
diff
changeset
|
562 keep <- rowSums(counts(dds)) >= opt$prefilter_value |
|
6ef2cba4e35a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 6868b66f73ddbe947986d1a20b546873cbd515a9
iuc
parents:
41
diff
changeset
|
563 dds <- dds[keep, ] |
|
6ef2cba4e35a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 6868b66f73ddbe947986d1a20b546873cbd515a9
iuc
parents:
41
diff
changeset
|
564 } |
|
6ef2cba4e35a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 6868b66f73ddbe947986d1a20b546873cbd515a9
iuc
parents:
41
diff
changeset
|
565 |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
566 # optional outlier behavior |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
567 if (is.null(opt$outlier_replace_off)) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
568 min_rep <- 7 |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
569 } else { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
570 min_rep <- Inf |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
571 if (verbose) cat("outlier replacement off\n") |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
572 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
573 if (is.null(opt$outlier_filter_off)) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
574 cooks_cutoff <- TRUE |
|
27
dc6bc19f05ab
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 83eb5b2665d87c02b270596f8175499e69061032
iuc
parents:
26
diff
changeset
|
575 } else { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
576 cooks_cutoff <- FALSE |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
577 if (verbose) cat("outlier filtering off\n") |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
578 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
579 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
580 # optional automatic mean filtering |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
581 if (is.null(opt$auto_mean_filter_off)) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
582 independent_filtering <- TRUE |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
583 } else { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
584 independent_filtering <- FALSE |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
585 if (verbose) cat("automatic filtering on the mean off\n") |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
586 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
587 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
588 # shrinkage of LFCs |
|
43
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
589 if (is.null(opt$use_beta_priors)) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
590 beta_prior <- FALSE |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
591 if (verbose) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
592 cat("Applied default - beta prior off\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
593 } |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
594 } else { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
595 beta_prior <- opt$use_beta_priors |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
596 } |
|
43
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
597 sprintf("use_beta_prior is set to %s", beta_prior) |
|
621ddf5967d2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 469558ddf5bc6249874fe5826637fd6ee81588cf
iuc
parents:
42
diff
changeset
|
598 |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
599 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
600 # dispersion fit type |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
601 if (is.null(opt$fit_type)) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
602 fit_type <- "parametric" |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
603 } else { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
604 fit_type <- c("parametric", "local", "mean")[opt$fit_type] |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
605 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
606 |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
607 if (verbose) cat(paste("using disperion fit type:", fit_type, "\n")) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
608 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
609 # run the analysis |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
610 dds <- DESeq(dds, fitType = fit_type, betaPrior = beta_prior, minReplicatesForReplace = min_rep, parallel = parallel) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
611 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
612 # create the generic plots and leave the device open |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
613 if (!is.null(opt$plots)) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
614 if (verbose) cat("creating plots\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
615 pdf(opt$plots) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
616 generate_generic_plots(dds, factors) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
617 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
618 |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
619 n <- nlevels(colData(dds)[[primary_factor]]) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
620 all_levels <- levels(colData(dds)[[primary_factor]]) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
621 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
622 if (!is.null(opt$countsfile)) { |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
623 normalized_counts <- counts(dds, normalized = TRUE) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
624 write.table(normalized_counts, file = opt$countsfile, sep = "\t", col.names = NA, quote = FALSE) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
625 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
626 |
|
30
3b9af9a27b5b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 448dccb0c02aba00d8301247b0f0f406ab3d4fa2
iuc
parents:
29
diff
changeset
|
627 if (!is.null(opt$rlogfile)) { |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
628 rlog_normalized <- rlogTransformation(dds) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
629 rlog_normalized_mat <- assay(rlog_normalized) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
630 write.table(rlog_normalized_mat, file = opt$rlogfile, sep = "\t", col.names = NA, quote = FALSE) |
|
30
3b9af9a27b5b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 448dccb0c02aba00d8301247b0f0f406ab3d4fa2
iuc
parents:
29
diff
changeset
|
631 } |
|
3b9af9a27b5b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 448dccb0c02aba00d8301247b0f0f406ab3d4fa2
iuc
parents:
29
diff
changeset
|
632 |
|
3b9af9a27b5b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 448dccb0c02aba00d8301247b0f0f406ab3d4fa2
iuc
parents:
29
diff
changeset
|
633 if (!is.null(opt$vstfile)) { |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
634 vst_normalized <- varianceStabilizingTransformation(dds) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
635 vst_normalized_mat <- assay(vst_normalized) |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
636 write.table(vst_normalized_mat, file = opt$vstfile, sep = "\t", col.names = NA, quote = FALSE) |
|
30
3b9af9a27b5b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 448dccb0c02aba00d8301247b0f0f406ab3d4fa2
iuc
parents:
29
diff
changeset
|
637 } |
|
3b9af9a27b5b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 448dccb0c02aba00d8301247b0f0f406ab3d4fa2
iuc
parents:
29
diff
changeset
|
638 |
|
3b9af9a27b5b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 448dccb0c02aba00d8301247b0f0f406ab3d4fa2
iuc
parents:
29
diff
changeset
|
639 |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
640 if (is.null(opt$many_contrasts)) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
641 # Single contrast mode |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
642 if (!is.null(opt$custom_design_formula) && exists("custom_contrast")) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
643 # Use explicit custom contrast |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
644 ref <- custom_contrast$reference |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
645 lvl <- custom_contrast$target |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
646 contrast_factor <- custom_contrast$factor |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
647 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
648 # Default: contrast using stored reference and target levels |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
649 # This ensures we use the intended reference, not whatever order files happened to be in |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
650 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
651 # Check if we have more than 2 levels without explicit target |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
652 if (length(all_levels) > 2 && is.null(opt$target_level)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
653 cat("Error: Multiple factor levels detected without explicit target_level specification.\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
654 cat(paste0("Factor '", primary_factor, "' has ", length(all_levels), " levels: ", paste(all_levels, collapse = ", "), "\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
655 cat("Please either:\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
656 cat(" 1. Specify target_level to indicate which level to compare against the reference, or\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
657 cat(" 2. Use many_contrasts mode to compare all levels pairwise\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
658 q(status = 1) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
659 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
660 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
661 # Use stored reference and target levels |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
662 # contrast = c(factor, level1, level2) computes log2(level1 / level2) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
663 # In original mode: variable names were swapped for backward compatibility |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
664 # In sample_sheet_mode: use them directly (ref=denominator, target=numerator) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
665 if (!is.null(opt$sample_sheet_mode)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
666 # Sample sheet mode: use natural order |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
667 ref <- primary_ref_level # Reference is denominator |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
668 lvl <- primary_target_level # Target is numerator |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
669 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
670 # Original mode: swap for backward compatibility |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
671 ref <- primary_target_level # This becomes the denominator |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
672 lvl <- primary_ref_level # This becomes the numerator |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
673 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
674 contrast_factor <- primary_factor |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
675 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
676 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
677 res <- results( |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
678 dds, |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
679 contrast = c(contrast_factor, lvl, ref), |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
680 cooksCutoff = cooks_cutoff, |
|
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
681 independentFiltering = independent_filtering |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
682 ) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
683 if (verbose) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
684 cat("summary of results\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
685 cat(paste0(contrast_factor, ": ", lvl, " vs ", ref, "\n")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
686 print(summary(res)) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
687 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
688 res_sorted <- res[order(res$padj), ] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
689 out_df <- as.data.frame(res_sorted) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
690 out_df$geneID <- rownames(out_df) # nolint |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
691 out_df <- out_df[, c("geneID", "baseMean", "log2FoldChange", "lfcSE", "stat", "pvalue", "padj")] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
692 filename <- opt$outfile |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
693 write.table(out_df, file = filename, sep = "\t", quote = FALSE, row.names = FALSE, col.names = FALSE) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
694 if (independent_filtering) { |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
695 threshold <- unname(attr(res, "filterThreshold")) |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
696 } else { |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
697 threshold <- 0 |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
698 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
699 title_suffix <- paste0(primary_factor, ": ", lvl, " vs ", ref) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
700 if (!is.null(opt$plots)) { |
|
37
951876579237
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 9eb6d07510ccf27d6499172d62c81661078ec57b"
iuc
parents:
36
diff
changeset
|
701 generate_specific_plots(res, threshold, title_suffix) |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
702 } |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
703 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
704 # rotate through the possible contrasts of the primary factor |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
705 # write out a sorted table of results with the contrast as a suffix |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
706 # add contrast specific plots to the device |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
707 for (i in seq_len(n - 1)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
708 ref <- all_levels[i] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
709 contrast_levels <- all_levels[(i + 1):n] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
710 for (lvl in contrast_levels) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
711 res <- results( |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
712 dds, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
713 contrast = c(primary_factor, lvl, ref), |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
714 cooksCutoff = cooks_cutoff, |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
715 independentFiltering = independent_filtering |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
716 ) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
717 res_sorted <- res[order(res$padj), ] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
718 out_df <- as.data.frame(res_sorted) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
719 out_df$geneID <- rownames(out_df) # nolint |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
720 out_df <- out_df[, c("geneID", "baseMean", "log2FoldChange", "lfcSE", "stat", "pvalue", "padj")] |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
721 filename <- paste0(primary_factor, "_", lvl, "_vs_", ref) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
722 write.table(out_df, file = filename, sep = "\t", quote = FALSE, row.names = FALSE, col.names = FALSE) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
723 if (independent_filtering) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
724 threshold <- unname(attr(res, "filterThreshold")) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
725 } else { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
726 threshold <- 0 |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
727 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
728 title_suffix <- paste0(primary_factor, ": ", lvl, " vs ", ref) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
729 if (!is.null(opt$plots)) { |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
730 generate_specific_plots(res, threshold, title_suffix) |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
731 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
732 } |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
733 } |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
734 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
735 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
736 # close the plot device |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
737 if (!is.null(opt$plots)) { |
|
44
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
738 cat("closing plot device\n") |
|
1cb33de18af5
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 5bf5011af827e93ddeecbfba4815fe9b85f02594
iuc
parents:
43
diff
changeset
|
739 dev.off() |
|
17
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
740 } |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
741 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
742 cat("Session information:\n\n") |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
743 |
|
24930eeff731
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deseq2 commit 23559e873291b04840f186edb0b4b85e76359e05
iuc
parents:
diff
changeset
|
744 sessionInfo() |
