comparison CEMiTool.R @ 0:3f9ff31c88bb draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/cemitool commit 07372bcbc3a94f886436a7263f4cfcb01981c7f3
author iuc
date Mon, 10 Oct 2022 16:55:19 +0000
parents
children 81bffdf16b71
comparison
equal deleted inserted replaced
-1:000000000000 0:3f9ff31c88bb
1 # Load all required libraries
2 library(CEMiTool, quietly = TRUE, warn.conflicts = FALSE)
3 library(ggplot2, quietly = TRUE, warn.conflicts = FALSE)
4 library(getopt, quietly = TRUE, warn.conflicts = FALSE)
5 # setup R error handling to go to stderr
6 options(
7 show.error.messages = FALSE,
8 error = function() {
9 cat(geterrmessage(), file = stderr())
10 q("no", 1, FALSE)
11 }
12 )
13
14 # we need that to not crash galaxy with an UTF8 error on German LC settings.
15 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")
16
17 ################################################################################
18 ### Input Processing
19 ################################################################################
20
21 # Collect arguments from command line
22 args <- commandArgs(trailingOnly = TRUE)
23
24 # Get options, using the spec as defined by the enclosed list.
25 # Read the options from the default: commandArgs(TRUE).
26 spec <- matrix(c(
27 "expressionMatrix", "M", 1, "character",
28 "sampleAnnotation", "A", 2, "character",
29 "pathwayList", "P", 2, "character",
30 "interactions", "I", 2, "character",
31 "filter", "f", 1, "logical",
32 "filter_pval", "i", 1, "numeric",
33 "apply_vst", "a", 1, "logical",
34 "n_genes", "n", 1, "integer",
35 "eps", "e", 1, "numeric",
36 "cor_method", "c", 1, "character",
37 "cor_function", "y", 1, "character",
38 "network_type", "x", 1, "character",
39 "tom_type", "t", 1, "character",
40 "merge_similar", "m", 1, "logical",
41 "rank_method", "r", 1, "character",
42 "min_ngen", "g", 1, "integer",
43 "diss_thresh", "d", 1, "numeric",
44 "center_func", "h", 1, "character",
45 "ora_pval", "o", 1, "numeric",
46 "gsea_scale", "l", 1, "logical",
47 "gsea_min_size", "w", 1, "integer",
48 "gsea_max_size", "z", 1, "integer",
49 "sample_column_name", "v", 1, "character"),
50 byrow = TRUE, ncol = 4
51 )
52
53 opt <- getopt(spec)
54 counts <- read.table(
55 opt$expressionMatrix,
56 header = TRUE,
57 sep = "\t",
58 strip.white = TRUE,
59 stringsAsFactors = FALSE,
60 check.names = FALSE
61 )
62
63
64 # Run CEMiTool
65
66 if (is.null(opt$sampleAnnotation)) {
67 cem <- cemitool(
68 counts,
69 filter = opt$filter,
70 filter_pval = opt$filter_pval,
71 apply_vst = opt$apply_vst,
72 n_genes = opt$n_genes,
73 eps = opt$eps,
74 cor_method = opt$cor_method,
75 cor_function = opt$cor_function,
76 network_type = opt$network_type,
77 tom_type = opt$tom_type,
78 merge_similar = opt$merge_similar,
79 min_ngen = opt$min_ngen,
80 diss_thresh = opt$diss_thresh,
81 center_func = opt$center_func,
82 verbose = TRUE,
83 ora_pval = opt$ora_pval
84 )
85 } else {
86 annotation <- read.table(
87 opt$sampleAnnotation,
88 header = TRUE,
89 sep = "\t",
90 strip.white = TRUE,
91 stringsAsFactors = FALSE,
92 check.names = FALSE
93 )
94 cem <- cemitool(
95 counts,
96 annotation,
97 filter = opt$filter,
98 filter_pval = opt$filter_pval,
99 apply_vst = opt$apply_vst,
100 n_genes = opt$n_genes,
101 eps = opt$eps,
102 cor_method = opt$cor_method,
103 cor_function = opt$cor_function,
104 network_type = opt$network_type,
105 tom_type = opt$tom_type,
106 merge_similar = opt$merge_similar,
107 min_ngen = opt$min_ngen,
108 diss_thresh = opt$diss_thresh,
109 center_func = opt$center_func,
110 verbose = TRUE,
111 ora_pval = opt$ora_pval,
112 sample_name_column = opt$sample_column_name,
113 class_column = "Class",
114 order_by_class = TRUE
115 )
116 cem <- mod_gsea(
117 cem,
118 gsea_scale = opt$gsea_scale,
119 gsea_min_size = opt$gsea_min_size,
120 gsea_max_size = opt$gsea_max_size,
121 rank_method = opt$rank_method
122 )
123 cem <- plot_gsea(cem)
124 }
125
126 if (!is.null(opt$pathwayList)) {
127 gmt_in <- read_gmt(opt$pathwayList)
128 cem <- mod_ora(cem, gmt_in)
129 cem <- plot_ora(cem)
130 }
131
132 if (!is.null(opt$interactions)) {
133 interactions <- read.table(
134 opt$interactions,
135 header = TRUE,
136 sep = "\t",
137 strip.white = TRUE,
138 stringsAsFactors = FALSE,
139 check.names = FALSE
140 )
141 interactions_data(cem) <- interactions # add interactions
142 cem <- plot_interactions(cem)
143 }
144
145 ## Write analysis results into files
146 write_files(cem,
147 directory = "./Tables",
148 force = TRUE)
149
150 generate_report(cem)
151
152 save_plots(cem,
153 value = "all",
154 directory = "./Plots",
155 force = TRUE)