annotate oncoprintplus.R @ 4:2877b1ba1250 draft default tip

planemo upload for repository https://github.com/morinlab/tools-morinlab/tree/master/tools/oncoprintplus commit 4ef2d91b7c1686a2696b92fe538d4aec51d05e40-dirty
author morinlab
date Tue, 11 Oct 2016 14:26:04 -0400
parents 62e8263df333
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
62e8263df333 Uploaded
morinlab
parents:
diff changeset
1 suppressMessages(library(BoutrosLab.plotting.general));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
2 suppressMessages(library(dplyr));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
3
62e8263df333 Uploaded
morinlab
parents:
diff changeset
4 ### GET ARGUMENTS ##################################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
5
62e8263df333 Uploaded
morinlab
parents:
diff changeset
6 suppressMessages(library(argparse));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
7 parser <- ArgumentParser(description="Create a Gene by Patient Heatmap BPGs multiplot fucntion");
62e8263df333 Uploaded
morinlab
parents:
diff changeset
8
62e8263df333 Uploaded
morinlab
parents:
diff changeset
9 ### VARIANT INPUT ARGUMENTS ########################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
10
62e8263df333 Uploaded
morinlab
parents:
diff changeset
11 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
12 "--input_snv", "-snv",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
13 required="True",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
14 help="Input SNV files in MAF format"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
15 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
16
62e8263df333 Uploaded
morinlab
parents:
diff changeset
17 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
18 "--input_cnv", "-cnv",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
19 help="Input CNV files in MAF format"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
20 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
21
62e8263df333 Uploaded
morinlab
parents:
diff changeset
22
62e8263df333 Uploaded
morinlab
parents:
diff changeset
23 ### GENE INPUT ARGUMENTS ###########################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
24
62e8263df333 Uploaded
morinlab
parents:
diff changeset
25 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
26 "--gene_list", "-gl",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
27 help=""
62e8263df333 Uploaded
morinlab
parents:
diff changeset
28 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
29
62e8263df333 Uploaded
morinlab
parents:
diff changeset
30 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
31 "--gene_oncodrive", "-go",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
32 help=""
62e8263df333 Uploaded
morinlab
parents:
diff changeset
33 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
34
62e8263df333 Uploaded
morinlab
parents:
diff changeset
35 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
36 "--gene_mutsig", "-gc",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
37 help=""
62e8263df333 Uploaded
morinlab
parents:
diff changeset
38 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
39
62e8263df333 Uploaded
morinlab
parents:
diff changeset
40 ### GENERAL ARGUMENTS ##############################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
41
62e8263df333 Uploaded
morinlab
parents:
diff changeset
42 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
43 "--center_plot",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
44 choices=c('impact', 'variant_classification'),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
45 required=TRUE,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
46 help="What should be displayed in the Center Heatmap?"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
47 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
48
62e8263df333 Uploaded
morinlab
parents:
diff changeset
49 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
50 "--cancer_genomics_functions_path", "-cgfp",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
51 required='True',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
52 help="Path to cancer genomics functions in R"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
53 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
54
62e8263df333 Uploaded
morinlab
parents:
diff changeset
55 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
56 "--output", "-o",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
57 required="True",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
58 help="Output Image File"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
59 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
60
62e8263df333 Uploaded
morinlab
parents:
diff changeset
61 ### PATIENT ARGUMENTS ##############################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
62
62e8263df333 Uploaded
morinlab
parents:
diff changeset
63 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
64 "--patient_covariate_data",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
65 help="Input Patient Covariate Matrix"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
66 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
67
62e8263df333 Uploaded
morinlab
parents:
diff changeset
68 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
69 "--plot_patient_covariate",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
70 action="append",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
71 help="Should We Plot the Input Covariate Data?"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
72 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
73
62e8263df333 Uploaded
morinlab
parents:
diff changeset
74 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
75 "--plot_patient_snv_counts",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
76 action='store_true',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
77 help="Should We Plot Patient SNV Counts?"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
78 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
79
62e8263df333 Uploaded
morinlab
parents:
diff changeset
80 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
81 "--plot_patient_snv_distribution",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
82 action='store_true',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
83 help="Should We Plot Patient SNV Distribution?"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
84 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
85
62e8263df333 Uploaded
morinlab
parents:
diff changeset
86 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
87 "--patient_order",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
88 action="append",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
89 help="How Should We Determine Patient Order?"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
90 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
91
62e8263df333 Uploaded
morinlab
parents:
diff changeset
92
62e8263df333 Uploaded
morinlab
parents:
diff changeset
93 ### GENE ARGUMENTS #################################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
94
62e8263df333 Uploaded
morinlab
parents:
diff changeset
95 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
96 "--plot_gene_snv_counts",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
97 action="store_true",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
98 help="Should We Plot Gene SNV Counts?"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
99 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
100
62e8263df333 Uploaded
morinlab
parents:
diff changeset
101 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
102 "--plot_gene_mutsig",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
103 action="store_true",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
104 help="Should We Plot Gene Significance?"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
105 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
106
62e8263df333 Uploaded
morinlab
parents:
diff changeset
107 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
108 "--plot_gene_oncodrive",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
109 action="store_true",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
110 help="How Should We Determine Gene Order?"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
111 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
112
62e8263df333 Uploaded
morinlab
parents:
diff changeset
113 parser$add_argument(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
114 "--gene_order",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
115 choices=c('mutsig', 'oncodrive', 'snv_counts', 'gene_list'),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
116 help="How Should We Determine Gene Order?"
62e8263df333 Uploaded
morinlab
parents:
diff changeset
117 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
118
62e8263df333 Uploaded
morinlab
parents:
diff changeset
119 ####################################################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
120
62e8263df333 Uploaded
morinlab
parents:
diff changeset
121 args <- parser$parse_args();
62e8263df333 Uploaded
morinlab
parents:
diff changeset
122
62e8263df333 Uploaded
morinlab
parents:
diff changeset
123 source(paste(args$cancer_genomics_functions_path, "functions.R", sep="/"));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
124
62e8263df333 Uploaded
morinlab
parents:
diff changeset
125 ### ORGANIZE GENE DATA #############################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
126
62e8263df333 Uploaded
morinlab
parents:
diff changeset
127 snv_data <- read_vcf2maf_maf(args$input_snv);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
128
62e8263df333 Uploaded
morinlab
parents:
diff changeset
129 snv_data$patient
62e8263df333 Uploaded
morinlab
parents:
diff changeset
130
62e8263df333 Uploaded
morinlab
parents:
diff changeset
131 snv_counts <- calculate_gene_snv_counts(snv_data);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
132
62e8263df333 Uploaded
morinlab
parents:
diff changeset
133 patient_covariate_data <- calculate_patient_snv_counts(snv_data);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
134
62e8263df333 Uploaded
morinlab
parents:
diff changeset
135 patient_snv_distribution <- calculate_patient_snv_frequency(snv_data);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
136
62e8263df333 Uploaded
morinlab
parents:
diff changeset
137 if (!is.null(args$patient_covariate_data)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
138 tmp_patient_covariate_data <- read_patient_covariate_data(args$patient_covariate_data);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
139
62e8263df333 Uploaded
morinlab
parents:
diff changeset
140 if (!all(rownames(patient_covariate_data) %in% rownames(tmp_patient_covariate_data))) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
141 stop("Some patients identified in the MAF file are not present in patient covariate data file");
62e8263df333 Uploaded
morinlab
parents:
diff changeset
142 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
143 indexes <- which( rownames(patient_covariate_data) %in% rownames(tmp_patient_covariate_data))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
144 current_names <- colnames(patient_covariate_data);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
145 patient_covariate_data <- cbind(patient_covariate_data, tmp_patient_covariate_data[rownames(patient_covariate_data)[indexes],-1]);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
146 colnames(patient_covariate_data) <- c(current_names, colnames(tmp_patient_covariate_data)[-1]);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
147 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
148
62e8263df333 Uploaded
morinlab
parents:
diff changeset
149
62e8263df333 Uploaded
morinlab
parents:
diff changeset
150 ##################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
151
62e8263df333 Uploaded
morinlab
parents:
diff changeset
152 gene_list <- NULL;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
153 mutsig <- NULL;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
154 mutsig_sig <- NULL;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
155 oncodrive <- NULL;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
156 oncodrive_sig <- NULL;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
157
62e8263df333 Uploaded
morinlab
parents:
diff changeset
158 if (!is.null(args$gene_list)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
159 gene_list <- read_gene_list(args$gene_list);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
160 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
161 if (!is.null(args$gene_mutsig)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
162 mutsig <- read_mutsigCV_genes(args$gene_mutsig);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
163 mutsig_sig <- filter_gene_list(mutsig);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
164 };
62e8263df333 Uploaded
morinlab
parents:
diff changeset
165 if (!is.null(args$gene_oncodrive)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
166 oncodrive <- read_oncodriveFM_genes(args$gene_oncodrive);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
167 oncodrive_sig <- filter_gene_list(oncodrive);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
168 };
62e8263df333 Uploaded
morinlab
parents:
diff changeset
169
62e8263df333 Uploaded
morinlab
parents:
diff changeset
170 genes_of_interest <- c(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
171 gene_list$gene,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
172 mutsig_sig$gene,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
173 oncodrive_sig$gene
62e8263df333 Uploaded
morinlab
parents:
diff changeset
174 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
175
62e8263df333 Uploaded
morinlab
parents:
diff changeset
176 if (!is.null(args$gene_list)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
177 genes_of_interest <- gene_list$gene
62e8263df333 Uploaded
morinlab
parents:
diff changeset
178 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
179
62e8263df333 Uploaded
morinlab
parents:
diff changeset
180 genes_of_interest <- unique(genes_of_interest);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
181
62e8263df333 Uploaded
morinlab
parents:
diff changeset
182 if (is.null(genes_of_interest)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
183 genes_of_interest <- calculate_gene_snv_counts(snv_data, best=TRUE)$gene
62e8263df333 Uploaded
morinlab
parents:
diff changeset
184 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
185
62e8263df333 Uploaded
morinlab
parents:
diff changeset
186 gene_data <- data.frame(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
187 gene = genes_of_interest,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
188 user = genes_of_interest %in% gene_list,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
189 mutsig = genes_of_interest %in% mutsig_sig$gene,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
190 oncodrive = genes_of_interest %in% oncodrive_sig$gene,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
191 stringsAsFactors = F
62e8263df333 Uploaded
morinlab
parents:
diff changeset
192 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
193
62e8263df333 Uploaded
morinlab
parents:
diff changeset
194 gene_order <- NULL;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
195
62e8263df333 Uploaded
morinlab
parents:
diff changeset
196 if (is.null(args$gene_order)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
197 gene_order <- gene_data$gene;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
198
62e8263df333 Uploaded
morinlab
parents:
diff changeset
199 } else if (args$gene_order == 'mutsig') {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
200 add_to_end <- NULL;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
201 if (!all(gene_data$gene %in% mutsig$gene)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
202 warning("mutsigCV input file is missing some genes, assuming a p value of 1");
62e8263df333 Uploaded
morinlab
parents:
diff changeset
203 add_to_end <- gene_data$gene[!gene_data$gene %in% mutsig$gene]
62e8263df333 Uploaded
morinlab
parents:
diff changeset
204 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
205
62e8263df333 Uploaded
morinlab
parents:
diff changeset
206 gene_order <- c(mutsig$gene[mutsig$gene %in% gene_data$gene], add_to_end);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
207
62e8263df333 Uploaded
morinlab
parents:
diff changeset
208 } else if (args$gene_order == 'oncodrive') {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
209 add_to_end <- NULL;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
210 if (!all(gene_data$gene %in% oncodrive$gene)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
211 warning("oncodriveFM input file is missing some genes, assuming a p value of 1");
62e8263df333 Uploaded
morinlab
parents:
diff changeset
212 add_to_end <- gene_data$gene[!gene_data$gene %in% oncodrive$gene]
62e8263df333 Uploaded
morinlab
parents:
diff changeset
213 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
214
62e8263df333 Uploaded
morinlab
parents:
diff changeset
215 gene_order <- c(oncodrive$gene[oncodrive$gene %in% gene_data$gene], add_to_end);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
216
62e8263df333 Uploaded
morinlab
parents:
diff changeset
217 } else if (args$gene_order == 'snv_counts') {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
218 add_to_end <- NULL;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
219 if ( !all(gene_data$gene %in% snv_counts$gene)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
220 warning("snv input file is missing some genes, assuming snv count of 0");
62e8263df333 Uploaded
morinlab
parents:
diff changeset
221 add_to_end <- gene_data$gene[!gene_data$gene %in% snv_counts$gene]
62e8263df333 Uploaded
morinlab
parents:
diff changeset
222 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
223
62e8263df333 Uploaded
morinlab
parents:
diff changeset
224 gene_order <- c( snv_counts[snv_counts$gene %in% gene_data$gene,]$gene, add_to_end);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
225 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
226
62e8263df333 Uploaded
morinlab
parents:
diff changeset
227 patient_order <- NULL;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
228
62e8263df333 Uploaded
morinlab
parents:
diff changeset
229
62e8263df333 Uploaded
morinlab
parents:
diff changeset
230
62e8263df333 Uploaded
morinlab
parents:
diff changeset
231 if ( is.null(args$patient_order) ) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
232 patient_order <- unique(snv_data$patient);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
233 patient_covariate_data <- patient_covariate_data[patient_order,];
62e8263df333 Uploaded
morinlab
parents:
diff changeset
234
62e8263df333 Uploaded
morinlab
parents:
diff changeset
235 } else {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
236 for (covariate in args$patient_order) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
237 print(covariate)
62e8263df333 Uploaded
morinlab
parents:
diff changeset
238 print(colnames(patient_covariate_data))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
239 current_order <- order(patient_covariate_data[,covariate]);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
240 patient_covariate_data <- patient_covariate_data[current_order,];
62e8263df333 Uploaded
morinlab
parents:
diff changeset
241 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
242
62e8263df333 Uploaded
morinlab
parents:
diff changeset
243 patient_order <- rownames(patient_covariate_data);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
244
62e8263df333 Uploaded
morinlab
parents:
diff changeset
245 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
246
62e8263df333 Uploaded
morinlab
parents:
diff changeset
247 ### GENE PLOTS #####################################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
248
62e8263df333 Uploaded
morinlab
parents:
diff changeset
249 gene_plots <- list();
62e8263df333 Uploaded
morinlab
parents:
diff changeset
250
62e8263df333 Uploaded
morinlab
parents:
diff changeset
251
62e8263df333 Uploaded
morinlab
parents:
diff changeset
252 if (args$plot_gene_snv_counts) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
253
62e8263df333 Uploaded
morinlab
parents:
diff changeset
254 plot_data <- data.frame(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
255 gene = gene_order,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
256 order = length(gene_order):1,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
257 counts = log10(snv_counts[gene_order,]$counts)
62e8263df333 Uploaded
morinlab
parents:
diff changeset
258 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
259
62e8263df333 Uploaded
morinlab
parents:
diff changeset
260 max <- ceiling(max(plot_data$counts))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
261 middle <- round(median(plot_data$counts))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
262
62e8263df333 Uploaded
morinlab
parents:
diff changeset
263 plot <- create.barplot(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
264 data = plot_data,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
265 formula = order ~ counts,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
266 plot.horizontal = TRUE,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
267 xlimits = c(-0.1, max+0.1),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
268 xat = c(0, middle, max),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
269 xaxis.lab = c( expression(10^0), bquote(10^.(middle)), bquote(10^.(max)) ),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
270 yat = 0
62e8263df333 Uploaded
morinlab
parents:
diff changeset
271 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
272
62e8263df333 Uploaded
morinlab
parents:
diff changeset
273 gene_plots <- c(gene_plots, list(plot));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
274
62e8263df333 Uploaded
morinlab
parents:
diff changeset
275 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
276
62e8263df333 Uploaded
morinlab
parents:
diff changeset
277
62e8263df333 Uploaded
morinlab
parents:
diff changeset
278 if (args$plot_gene_mutsig) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
279
62e8263df333 Uploaded
morinlab
parents:
diff changeset
280 plot_data <- data.frame(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
281 gene = gene_order,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
282 order = length(gene_order):1,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
283 p.value = -1*log10(mutsig[gene_order,]$p.value),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
284 q.value = mutsig[gene_order,]$q.value,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
285 stringsAsFactors=F
62e8263df333 Uploaded
morinlab
parents:
diff changeset
286 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
287
62e8263df333 Uploaded
morinlab
parents:
diff changeset
288 if (any( is.infinite(plot_data$p.value) ) ) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
289 plot_data$p.value[is.infinite(plot_data$p.value)] <- max( c( plot_data$p.value[!is.infinite(plot_data$p.value)], 10) );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
290 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
291
62e8263df333 Uploaded
morinlab
parents:
diff changeset
292 plot_data$p.value[is.na(plot_data$p.value)] <- 1
62e8263df333 Uploaded
morinlab
parents:
diff changeset
293 plot_data$q.value[is.na(plot_data$q.value)] <- 1
62e8263df333 Uploaded
morinlab
parents:
diff changeset
294 plot_data$colour = c("black", "grey80")[(plot_data$q.value <= 0.05) + 1]
62e8263df333 Uploaded
morinlab
parents:
diff changeset
295
62e8263df333 Uploaded
morinlab
parents:
diff changeset
296 max <- ceiling(max(plot_data$p.value))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
297 middle <- round(median(plot_data$p.value))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
298
62e8263df333 Uploaded
morinlab
parents:
diff changeset
299 plot <- create.barplot(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
300 data = plot_data,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
301 formula = order ~ p.value,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
302 col = rev(plot_data$colour),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
303 plot.horizontal = TRUE,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
304 xlimits = c(-1, max+1),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
305 xat = c(0, middle, max),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
306 xaxis.lab = c( expression(10^-0), bquote(10^-.(middle)), bquote(10^-.(max)) ) ,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
307 yat = 0,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
308 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
309
62e8263df333 Uploaded
morinlab
parents:
diff changeset
310 gene_plots <- c(gene_plots, list(plot))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
311
62e8263df333 Uploaded
morinlab
parents:
diff changeset
312 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
313
62e8263df333 Uploaded
morinlab
parents:
diff changeset
314
62e8263df333 Uploaded
morinlab
parents:
diff changeset
315 if (args$plot_gene_oncodrive) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
316
62e8263df333 Uploaded
morinlab
parents:
diff changeset
317 plot_data <- data.frame(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
318 gene = gene_order,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
319 order = length(gene_order):1,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
320 p.value = -1 * log10(oncodrive[gene_order,]$p.value),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
321 q.value = oncodrive[gene_order,]$q.value,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
322 stringsAsFactors=F
62e8263df333 Uploaded
morinlab
parents:
diff changeset
323 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
324
62e8263df333 Uploaded
morinlab
parents:
diff changeset
325 plot_data$p.value[is.na(plot_data$p.value)] <- 1
62e8263df333 Uploaded
morinlab
parents:
diff changeset
326 plot_data$q.value[is.na(plot_data$q.value)] <- 1
62e8263df333 Uploaded
morinlab
parents:
diff changeset
327 plot_data$colour = c("black", "grey80")[(plot_data$q.value <= 0.05) + 1]
62e8263df333 Uploaded
morinlab
parents:
diff changeset
328
62e8263df333 Uploaded
morinlab
parents:
diff changeset
329 max <- ceiling(max(plot_data$p.value))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
330 middle <- round(median(plot_data$p.value))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
331
62e8263df333 Uploaded
morinlab
parents:
diff changeset
332 plot <- create.barplot(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
333 data = plot_data,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
334 formula = order ~ p.value,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
335 col = rev(plot_data$colour),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
336 plot.horizontal = TRUE,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
337 xlimits = c(-1, max),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
338 xat = c(0, middle, max),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
339 xaxis.lab = c( expression(10^-0), bquote(10^-.(middle)), bquote(10^-.(max)) ),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
340 yat = 0
62e8263df333 Uploaded
morinlab
parents:
diff changeset
341 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
342
62e8263df333 Uploaded
morinlab
parents:
diff changeset
343 gene_plots <- c(gene_plots, list(plot))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
344
62e8263df333 Uploaded
morinlab
parents:
diff changeset
345 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
346
62e8263df333 Uploaded
morinlab
parents:
diff changeset
347
62e8263df333 Uploaded
morinlab
parents:
diff changeset
348 ### PATIENT PLOTS ##################################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
349
62e8263df333 Uploaded
morinlab
parents:
diff changeset
350 patient_plots <- list();
62e8263df333 Uploaded
morinlab
parents:
diff changeset
351
62e8263df333 Uploaded
morinlab
parents:
diff changeset
352 if (args$plot_patient_snv_counts) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
353
62e8263df333 Uploaded
morinlab
parents:
diff changeset
354 plot_data <- data.frame(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
355 patient = patient_order,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
356 order = 1:length(patient_order),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
357 counts = log10(patient_covariate_data[patient_order,]$snv_counts)
62e8263df333 Uploaded
morinlab
parents:
diff changeset
358 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
359
62e8263df333 Uploaded
morinlab
parents:
diff changeset
360 middle <- round(median(plot_data$counts))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
361 max <- ceiling(max(plot_data$counts))
62e8263df333 Uploaded
morinlab
parents:
diff changeset
362
62e8263df333 Uploaded
morinlab
parents:
diff changeset
363 plot <- create.barplot(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
364 data = plot_data,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
365 formula = counts ~ order,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
366 ylimits = c(-0.1, max+0.1),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
367 yaxis.lab = c(expression(10^0), bquote(10^.(middle)), bquote(10^.(max)) ),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
368 yat = c(0,middle,max),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
369 xat=0
62e8263df333 Uploaded
morinlab
parents:
diff changeset
370 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
371
62e8263df333 Uploaded
morinlab
parents:
diff changeset
372 patient_plots <- c(patient_plots, list(plot));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
373
62e8263df333 Uploaded
morinlab
parents:
diff changeset
374 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
375
62e8263df333 Uploaded
morinlab
parents:
diff changeset
376 if (args$plot_patient_snv_distribution) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
377
62e8263df333 Uploaded
morinlab
parents:
diff changeset
378 patient_to_order <- data.frame(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
379 order = 1:length(patient_order)
62e8263df333 Uploaded
morinlab
parents:
diff changeset
380 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
381
62e8263df333 Uploaded
morinlab
parents:
diff changeset
382 rownames(patient_to_order) <- patient_order;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
383
62e8263df333 Uploaded
morinlab
parents:
diff changeset
384 plot_data <- data.frame(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
385 patient = patient_snv_distribution$patient,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
386 category = patient_snv_distribution$category,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
387 counts = patient_snv_distribution$counts,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
388 order = patient_to_order[patient_snv_distribution$patient,],
62e8263df333 Uploaded
morinlab
parents:
diff changeset
389 colours = rep(c("#0e8efa", "#010101","#fe0000", "#bfbfbf", "#00f100", "#ffbfcb"), by=6),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
390 stringsAsFactors=F
62e8263df333 Uploaded
morinlab
parents:
diff changeset
391 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
392
62e8263df333 Uploaded
morinlab
parents:
diff changeset
393 plot <- create.barplot(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
394 data = plot_data,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
395 formula = counts ~ order,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
396 groups = category,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
397 stack = TRUE,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
398 xat = 0,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
399 yaxis.lab = c("0.0", "0.2", "0.4", "0.6", "0.8", "1.0"),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
400 ylimits = c(-0.1, 1.1),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
401 yat = c(0, .2, .4, .6, .8, 1.0),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
402 col = plot_data$colours
62e8263df333 Uploaded
morinlab
parents:
diff changeset
403 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
404
62e8263df333 Uploaded
morinlab
parents:
diff changeset
405 patient_plots <- c(patient_plots, list(plot));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
406
62e8263df333 Uploaded
morinlab
parents:
diff changeset
407 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
408
62e8263df333 Uploaded
morinlab
parents:
diff changeset
409 ### PATIENT COVARIATE PLOT #########################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
410
62e8263df333 Uploaded
morinlab
parents:
diff changeset
411 patient_covariate_plots <- list();
62e8263df333 Uploaded
morinlab
parents:
diff changeset
412 patient_covariate_legend <- list();
62e8263df333 Uploaded
morinlab
parents:
diff changeset
413
62e8263df333 Uploaded
morinlab
parents:
diff changeset
414 if (!is.null(args$plot_patient_covariate)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
415
62e8263df333 Uploaded
morinlab
parents:
diff changeset
416 cov.data <- patient_covariate_data[patient_order,c('snv_counts', args$plot_patient_covariate)];
62e8263df333 Uploaded
morinlab
parents:
diff changeset
417
62e8263df333 Uploaded
morinlab
parents:
diff changeset
418 cov.colors <- c();
62e8263df333 Uploaded
morinlab
parents:
diff changeset
419 for (cov in args$plot_patient_covariate) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
420 tmp <- paste0(cov, "_col");
62e8263df333 Uploaded
morinlab
parents:
diff changeset
421 if ( any(tmp == colnames(patient_covariate_data)) ) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
422 tmp.colors <- unique(patient_covariate_data[,tmp]);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
423 for (col_index in (length(cov.colors)+1):((length(cov.colors)+1)+length(tmp.colors))) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
424 col <- tmp.colors[col_index - length(cov.colors)];
62e8263df333 Uploaded
morinlab
parents:
diff changeset
425 cov.data[which(col == patient_covariate_data[,tmp]), cov] <- col_index;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
426 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
427 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
428 cov.colors <- c(cov.colors, tmp.colors);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
429 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
430 cov.data <- cov.data[,-1];
62e8263df333 Uploaded
morinlab
parents:
diff changeset
431
62e8263df333 Uploaded
morinlab
parents:
diff changeset
432 covariates <- create.heatmap(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
433 x = matrix(as.numeric(as.matrix(cov.data)), ncol=length(args$plot_patient_covariate)),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
434 clustering.method = 'none',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
435 colour.scheme = as.vector(cov.colors),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
436 total.colours = length(cov.colors)+1,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
437 row.colour = 'white',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
438 col.colour = 'white',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
439 grid.row = TRUE,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
440 grid.col = TRUE,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
441 yaxis.lab = args$plot_patient_covariate,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
442 yat = 1:length(args$plot_patient_covariate),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
443 xaxis.lab = patient_order,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
444 xat = 1:length(patient_order),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
445 yaxis.tck = 0,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
446 print.colour.key = FALSE
62e8263df333 Uploaded
morinlab
parents:
diff changeset
447 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
448
62e8263df333 Uploaded
morinlab
parents:
diff changeset
449 patient_covariate_plots <- c(patient_covariate_plots, list(covariates));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
450
62e8263df333 Uploaded
morinlab
parents:
diff changeset
451 for ( cov in args$plot_patient_covariate) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
452
62e8263df333 Uploaded
morinlab
parents:
diff changeset
453 legend <- list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
454 legend = list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
455 colours = rev(unique(patient_covariate_data[, paste0(cov, "_col")])),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
456 labels = rev(unique(patient_covariate_data[, cov])),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
457 border = 'white',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
458 title = cov,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
459 pch = 15
62e8263df333 Uploaded
morinlab
parents:
diff changeset
460 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
461 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
462
62e8263df333 Uploaded
morinlab
parents:
diff changeset
463 patient_covariate_legend <- c(patient_covariate_legend, legend);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
464
62e8263df333 Uploaded
morinlab
parents:
diff changeset
465 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
466
62e8263df333 Uploaded
morinlab
parents:
diff changeset
467 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
468
62e8263df333 Uploaded
morinlab
parents:
diff changeset
469 ### CENTRAL PLOT ###################################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
470
62e8263df333 Uploaded
morinlab
parents:
diff changeset
471 central_plot <- NULL;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
472
62e8263df333 Uploaded
morinlab
parents:
diff changeset
473 if ( args$center_plot == 'impact' ) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
474
62e8263df333 Uploaded
morinlab
parents:
diff changeset
475 plot_data <- matrix(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
476 data = rep(0, length(patient_order) * length(gene_order)),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
477 nrow = length(gene_order)
62e8263df333 Uploaded
morinlab
parents:
diff changeset
478 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
479
62e8263df333 Uploaded
morinlab
parents:
diff changeset
480 rownames(plot_data) <- rev(gene_order);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
481 colnames(plot_data) <- patient_order;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
482
62e8263df333 Uploaded
morinlab
parents:
diff changeset
483 for (patient in patient_order) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
484 for (gene in gene_order) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
485 truth <- snv_data$patient == patient & snv_data$gene == gene;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
486 if (any(truth)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
487 if (any(snv_data$impact[truth] == "HIGH")) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
488 plot_data[gene, patient] <- 3;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
489 } else if (any(snv_data$impact[truth] == "MODERATE")) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
490 plot_data[gene, patient] <- 2;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
491 } else if (any(snv_data$impact[truth] == "LOW")) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
492 plot_data[gene, patient] <- 1;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
493 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
494 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
495 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
496 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
497
62e8263df333 Uploaded
morinlab
parents:
diff changeset
498 gene.labs <- rownames(plot_data);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
499 patient.labs <- colnames(plot_data);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
500 if (!is.null(args$plot_patient_covariate)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
501 patient.labs <- rep("", length(patient.labs));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
502 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
503
62e8263df333 Uploaded
morinlab
parents:
diff changeset
504 plot <- create.heatmap(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
505 t(plot_data),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
506 clustering.method = "none",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
507 colour.scheme = c('grey95',c('#ffeda0', '#feb24c','#f03b20')),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
508 total.colours = 5,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
509 xaxis.tck = 0,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
510 yaxis.tck = 0,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
511 print.colour.key = F,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
512 xaxis.lab = patient.labs,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
513 yaxis.lab = gene.labs,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
514 row.colour = 'white',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
515 col.colour = 'white',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
516 grid.row = TRUE,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
517 grid.col = TRUE
62e8263df333 Uploaded
morinlab
parents:
diff changeset
518 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
519
62e8263df333 Uploaded
morinlab
parents:
diff changeset
520 central_plot <- list(plot);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
521
62e8263df333 Uploaded
morinlab
parents:
diff changeset
522 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
523
62e8263df333 Uploaded
morinlab
parents:
diff changeset
524 which_present <- rep(FALSE, 9)
62e8263df333 Uploaded
morinlab
parents:
diff changeset
525
62e8263df333 Uploaded
morinlab
parents:
diff changeset
526 if (args$center_plot == 'variant_classification') {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
527
62e8263df333 Uploaded
morinlab
parents:
diff changeset
528 plot_data <- matrix(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
529 data = rep(0, length(patient_order) * length(gene_order)),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
530 nrow = length(gene_order)
62e8263df333 Uploaded
morinlab
parents:
diff changeset
531 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
532
62e8263df333 Uploaded
morinlab
parents:
diff changeset
533 rownames(plot_data) <- rev(gene_order);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
534 colnames(plot_data) <- patient_order;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
535
62e8263df333 Uploaded
morinlab
parents:
diff changeset
536 order.of.variants <- data.frame(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
537 Truncation = 'Truncation',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
538 Splicing = 'Splicing',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
539 Missense = 'Missense',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
540 UTR = 'UTR',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
541 Non_coding = "Non_coding",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
542 Regulatory = "Regulatory",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
543 miRNA = "miRNA",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
544 Synonymous = "Synonymous",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
545 stringsAsFactors = F
62e8263df333 Uploaded
morinlab
parents:
diff changeset
546 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
547
62e8263df333 Uploaded
morinlab
parents:
diff changeset
548 categories <- recode(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
549 snv_data[,]$ensembl_variant_class,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
550 # Truncating variants
62e8263df333 Uploaded
morinlab
parents:
diff changeset
551 stop_gained = "Truncation",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
552 frameshift_variant = "Truncation",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
553 stop_lost = "Truncation",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
554 start_lost = "Truncation",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
555 incomplete_terminal_codon_variant = "Truncation",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
556 transcript_ablation = "Truncation",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
557 # Missense(-ish) variants
62e8263df333 Uploaded
morinlab
parents:
diff changeset
558 missense_variant = "Missense",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
559 inframe_deletion = "Missense",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
560 inframe_insertion = "Missense",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
561 protein_altering_variant = "Missense",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
562 # UTR Variants
62e8263df333 Uploaded
morinlab
parents:
diff changeset
563 `5_prime_UTR_variant` = "UTR",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
564 `3_prime_UTR_variant` = "UTR",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
565 # Splicing variants
62e8263df333 Uploaded
morinlab
parents:
diff changeset
566 splice_acceptor_variant = "Splicing",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
567 splice_donor_variant = "Splicing",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
568 splice_region_variant = "Splicing",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
569 # Non-coding variants
62e8263df333 Uploaded
morinlab
parents:
diff changeset
570 non_coding_transcript_exon_variant = "Non_coding",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
571 intron_variant = "Non_coding",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
572 upstream_gene_variant = "Non_coding",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
573 downstream_gene_variant = "Non_coding",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
574 intergenic_variant = "Non_coding",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
575 # Regulatory variants
62e8263df333 Uploaded
morinlab
parents:
diff changeset
576 TF_binding_site_variant = "Regulatory",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
577 regulatory_region_variant = "Regulatory",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
578 # Synonymous variants
62e8263df333 Uploaded
morinlab
parents:
diff changeset
579 synonymous_variant = "Synonymous",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
580 coding_sequence_variant = "Synonymous",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
581 stop_retained_variant = "Synonymous",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
582 # miRNA variants
62e8263df333 Uploaded
morinlab
parents:
diff changeset
583 mature_miRNA_variant = "miRNA",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
584 # Default
62e8263df333 Uploaded
morinlab
parents:
diff changeset
585 .default = NA_character_)
62e8263df333 Uploaded
morinlab
parents:
diff changeset
586
62e8263df333 Uploaded
morinlab
parents:
diff changeset
587 for( gene in gene_order ) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
588 for( patient in patient_order ) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
589 truth <- snv_data$patient == patient & snv_data$gene == gene;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
590 if (gene == "SRSF7" && any(truth)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
591 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
592 if (any(truth)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
593 vars <- colnames(order.of.variants) %in% categories[truth]
62e8263df333 Uploaded
morinlab
parents:
diff changeset
594 if(any(vars)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
595 plot_data[gene, patient] <- which(vars)[1]
62e8263df333 Uploaded
morinlab
parents:
diff changeset
596 which_present[which(vars)[1]] <- TRUE
62e8263df333 Uploaded
morinlab
parents:
diff changeset
597 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
598 else {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
599 which_present[9] <- TRUE
62e8263df333 Uploaded
morinlab
parents:
diff changeset
600 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
601 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
602 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
603 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
604
62e8263df333 Uploaded
morinlab
parents:
diff changeset
605 col_one <- "#512C6F";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
606 col_two <- "#0F6A99";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
607 col_thr <- "#46823C";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
608 col_fou <- "#B367A7";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
609 col_fiv <- "#64B4D5";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
610 col_six <- "#F7D72E";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
611 col_sev <- "#EF922A";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
612 col_eig <- "#B12025";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
613
62e8263df333 Uploaded
morinlab
parents:
diff changeset
614 gene.labs <- rownames(plot_data);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
615 patient.labs <- colnames(plot_data);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
616 if (!is.null(args$plot_patient_covariate)) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
617 patient.labs <- rep("", length(patient.labs));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
618 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
619
62e8263df333 Uploaded
morinlab
parents:
diff changeset
620 plot <- create.heatmap(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
621 t(plot_data),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
622 clustering.method = "none",
62e8263df333 Uploaded
morinlab
parents:
diff changeset
623 colour.scheme = c('grey95', c(col_one, col_two, col_thr, col_fou, col_fiv, col_six, col_sev, col_eig) ),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
624 total.colours = 10,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
625 xaxis.tck = 0,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
626 yaxis.tck = 0,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
627 print.colour.key = F,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
628 xaxis.lab = patient.labs,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
629 yaxis.lab = gene.labs,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
630 row.colour = 'white',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
631 col.colour = 'white',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
632 grid.row = TRUE,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
633 grid.col = TRUE
62e8263df333 Uploaded
morinlab
parents:
diff changeset
634 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
635
62e8263df333 Uploaded
morinlab
parents:
diff changeset
636 central_plot <- list(plot);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
637
62e8263df333 Uploaded
morinlab
parents:
diff changeset
638 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
639
62e8263df333 Uploaded
morinlab
parents:
diff changeset
640 ### LEGENDS ########################################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
641
62e8263df333 Uploaded
morinlab
parents:
diff changeset
642 legends <- list();
62e8263df333 Uploaded
morinlab
parents:
diff changeset
643
62e8263df333 Uploaded
morinlab
parents:
diff changeset
644 if (args$plot_patient_snv_distribution ) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
645
62e8263df333 Uploaded
morinlab
parents:
diff changeset
646 legend <- list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
647 legend = list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
648 colours = rev(c("#0e8efa", "#010101","#fe0000", "#bfbfbf", "#00f100", "#ffbfcb" )),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
649 labels = rev(expression(C > A,C > G,C > T, T > A, T > C, T > G)),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
650 border = 'white',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
651 title = 'Mutation Frequencies',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
652 pch = 15
62e8263df333 Uploaded
morinlab
parents:
diff changeset
653 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
654 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
655
62e8263df333 Uploaded
morinlab
parents:
diff changeset
656 legends <- c(legends, legend);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
657
62e8263df333 Uploaded
morinlab
parents:
diff changeset
658 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
659
62e8263df333 Uploaded
morinlab
parents:
diff changeset
660 if (args$plot_gene_mutsig || args$plot_gene_oncodrive) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
661
62e8263df333 Uploaded
morinlab
parents:
diff changeset
662 legend <- list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
663 legend = list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
664 colours = c('grey80', 'black'),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
665 labels = expression(Q <= 10^-1, Q > 10^-1),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
666 border = 'white',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
667 title = 'Q-value Groupings',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
668 pch=15
62e8263df333 Uploaded
morinlab
parents:
diff changeset
669 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
670 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
671
62e8263df333 Uploaded
morinlab
parents:
diff changeset
672 legends <- c(legends, legend);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
673
62e8263df333 Uploaded
morinlab
parents:
diff changeset
674 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
675
62e8263df333 Uploaded
morinlab
parents:
diff changeset
676 if ( args$center_plot == 'impact' ) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
677
62e8263df333 Uploaded
morinlab
parents:
diff changeset
678 legend <- list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
679 legend = list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
680 colours = c('grey95',c('#ffeda0', '#feb24c','#f03b20')),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
681 labels = c("None", "Low", "Moderate", "High"),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
682 border = 'white',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
683 title = 'SNV Impact',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
684 pch = 15
62e8263df333 Uploaded
morinlab
parents:
diff changeset
685 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
686 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
687
62e8263df333 Uploaded
morinlab
parents:
diff changeset
688 legends <- c(legends, legend);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
689
62e8263df333 Uploaded
morinlab
parents:
diff changeset
690 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
691
62e8263df333 Uploaded
morinlab
parents:
diff changeset
692 if ( args$center_plot == 'variant_classification' ) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
693
62e8263df333 Uploaded
morinlab
parents:
diff changeset
694 col_one <- "#512C6F";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
695 col_two <- "#0F6A99";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
696 col_thr <- "#46823C";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
697 col_fou <- "#B367A7";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
698 col_fiv <- "#64B4D5";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
699 col_six <- "#F7D72E";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
700 col_sev <- "#EF922A";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
701 col_eig <- "#B12025";
62e8263df333 Uploaded
morinlab
parents:
diff changeset
702
62e8263df333 Uploaded
morinlab
parents:
diff changeset
703 legend <- list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
704 legend = list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
705 colours = c(c(col_one, col_two, col_thr, col_fou, col_fiv, col_six, col_sev, col_eig), 'grey95' )[which_present],
62e8263df333 Uploaded
morinlab
parents:
diff changeset
706 labels = c("Truncation", "Splicing", "Missense", "UTR", "Non-coding", "Regulatory", "miRNA", "Synonymous", "None")[which_present],
62e8263df333 Uploaded
morinlab
parents:
diff changeset
707 border = 'white',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
708 title = 'SNV Category',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
709 pch = 15
62e8263df333 Uploaded
morinlab
parents:
diff changeset
710 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
711 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
712
62e8263df333 Uploaded
morinlab
parents:
diff changeset
713 legends <- c(legends, legend);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
714
62e8263df333 Uploaded
morinlab
parents:
diff changeset
715 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
716
62e8263df333 Uploaded
morinlab
parents:
diff changeset
717 if (length(patient_covariate_legend) > 0) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
718
62e8263df333 Uploaded
morinlab
parents:
diff changeset
719 legends <- c(legends, patient_covariate_legend);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
720
62e8263df333 Uploaded
morinlab
parents:
diff changeset
721 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
722
62e8263df333 Uploaded
morinlab
parents:
diff changeset
723 legend_grob <- legend.grob(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
724 legends = legends,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
725 title.just = 'left',
62e8263df333 Uploaded
morinlab
parents:
diff changeset
726 label.cex = 1.0,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
727 title.cex = 1.0
62e8263df333 Uploaded
morinlab
parents:
diff changeset
728 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
729
62e8263df333 Uploaded
morinlab
parents:
diff changeset
730 ### MULTIPLOT ######################################################################################
62e8263df333 Uploaded
morinlab
parents:
diff changeset
731
62e8263df333 Uploaded
morinlab
parents:
diff changeset
732 plots <- c(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
733 patient_covariate_plots,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
734 central_plot,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
735 gene_plots,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
736 patient_plots
62e8263df333 Uploaded
morinlab
parents:
diff changeset
737 );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
738
62e8263df333 Uploaded
morinlab
parents:
diff changeset
739 plot.layout <- c(1 + length(gene_plots), 1 + length(patient_plots));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
740 layout.skip <- c(F, rep(F, length(gene_plots)), rep(c(F, rep(T, length(gene_plots))), length(patient_plots)));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
741 panel.heights <- c(rep(3, length(patient_plots)),20);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
742 panel.widths <- c(20,rep(3, length(gene_plots)));
62e8263df333 Uploaded
morinlab
parents:
diff changeset
743 if (length(patient_covariate_plots) > 0) {
62e8263df333 Uploaded
morinlab
parents:
diff changeset
744 plot.layout[2] <- plot.layout[2] + 1;
62e8263df333 Uploaded
morinlab
parents:
diff changeset
745 layout.skip <- c(F, rep(T, length(gene_plots)), layout.skip);
62e8263df333 Uploaded
morinlab
parents:
diff changeset
746 panel.heights <- c(panel.heights, 0.5 * length(args$plot_patient_covariate) );
62e8263df333 Uploaded
morinlab
parents:
diff changeset
747 }
62e8263df333 Uploaded
morinlab
parents:
diff changeset
748
62e8263df333 Uploaded
morinlab
parents:
diff changeset
749 create.multiplot(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
750 filename = args$output,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
751 res = 300,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
752 plot.objects = plots,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
753 plot.layout = plot.layout,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
754 layout.skip = layout.skip,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
755 panel.heights = panel.heights,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
756 panel.widths = panel.widths,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
757 height = 16,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
758 width = 16,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
759 x.spacing = -.8,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
760 y.spacing = -.33 * max(nchar(patient_order)),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
761 left.padding = 4,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
762 xaxis.cex = .65,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
763 yaxis.cex = .9,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
764 xaxis.rot = 90,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
765 retrieve.plot.labels=T,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
766 legend = list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
767 right = list(
62e8263df333 Uploaded
morinlab
parents:
diff changeset
768 x = 0.10,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
769 y = 0.50,
62e8263df333 Uploaded
morinlab
parents:
diff changeset
770 fun = legend_grob
62e8263df333 Uploaded
morinlab
parents:
diff changeset
771 )
62e8263df333 Uploaded
morinlab
parents:
diff changeset
772 ),
62e8263df333 Uploaded
morinlab
parents:
diff changeset
773
62e8263df333 Uploaded
morinlab
parents:
diff changeset
774 print.new.legend= TRUE
62e8263df333 Uploaded
morinlab
parents:
diff changeset
775
62e8263df333 Uploaded
morinlab
parents:
diff changeset
776 );