annotate plot_pca.R @ 0:610e86c430a9 draft default tip

planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
author vmarcon
date Mon, 23 Oct 2017 09:34:56 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
1 #!/usr/bin/env Rscript
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
2
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
3 # DEFAULT OPTIONS
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
4
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
5 opt = list()
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
6 opt$log10 = FALSE
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
7 opt$pseudocount = 1e-04
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
8 opt$row_as_variables = FALSE
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
9
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
10 suppressPackageStartupMessages(library("optparse"))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
11
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
12 options(stringsAsFactors=F)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
13
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
14 ##################
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
15 # OPTION PARSING
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
16 ##################
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
17
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
18 option_list <- list(
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
19 make_option(c("-i", "--input_matrix"), help="the matrix you want to analyze. Can be stdin"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
20 make_option(c("-l", "--log10"), action="store_true", default=FALSE, help="apply the log [default=FALSE]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
21 make_option(c("-p", "--pseudocount"), type="double", help="specify a pseudocount for the log [default=%default]", default=1e-04),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
22 make_option(c("-m", "--metadata"), help="A list of tsv files with metadata on matrix experiment.\n\t\tThey must be in the format 'file1.tsv,file2.tsv' and contain a key column named 'labExpId'. Can be omitted"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
23
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
24 make_option(c("--merge_mdata_on"), default="labExpId",
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
25 help="[default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
26
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
27 #make_option(c("-o", "--output"), help="additional info you want to put in the output file name", default="out"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
28 make_option(c("-c", "--color_by"), help="choose the fields in the metadata you want to color by", type='character'),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
29
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
30 make_option(c("--sort_color"), type='character',
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
31 help="A field for sorting colors. Can be omitted [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
32
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
33 make_option(c("-s", "--shape_by"), default=NULL, type="character", help="choose the fields in the metadata you want to shape by"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
34
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
35 make_option(c("--no_legend"), action="store_true", default=FALSE,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
36 help="Do not show the legend [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
37
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
38 make_option(c("-r", "--row_as_variables"), action="store_true", help="select this if you want rows as variables [default=%default]", default=FALSE),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
39 make_option(c("-C", "--princomp"), help="choose the principal components you want to plot. With 3 PC it gives a 3d plot [default='PC1,PC2']", default="PC1,PC2"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
40
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
41 make_option(c("--print_scores"), action="store_true", default=FALSE,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
42 help="Output the resuling PCs as a separate file with the extension PCs.tsv [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
43
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
44 make_option(c("--print_loadings"), action="store_true", default=FALSE,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
45 help="Output the resulting loadings as a separate file with the extension loadings.tsv [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
46
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
47 make_option(c("--print_lambdas"), action="store_true", default=FALSE,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
48 help="Output the resulting lambdas (stdev) as a separate file with the extension lambdas.tsv [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
49
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
50 make_option(c("--biplot"), default=FALSE, action="store_true",
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
51 help="If active, the factor of the color is used as grouping factor.
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
52 Centroids are computed and the first <top> loadings are plotted wrt to the two specified components [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
53
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
54 make_option(c("--palette"), default="/users/rg/abreschi/R/palettes/cbbPalette1.15.txt",
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
55 help="File with the color palette [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
56
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
57 make_option(c("--border"), default=FALSE, action="store_true",
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
58 help="Black border to dots [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
59
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
60 make_option(c("--shapes"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
61 help="File with the shapes [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
62
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
63 make_option(c("-L", "--labels"), default=NULL, type="character",
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
64 help="The metadata field with the labels [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
65
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
66 make_option(c("-B", "--base_size"), default=16, type='numeric',
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
67 help="Base font size [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
68
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
69 make_option(c("-H", "--height"), default=7,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
70 help="Height of the plot in inches [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
71
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
72 make_option(c("-W", "--width"), default=7,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
73 help="Width of the plot in inches [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
74
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
75 make_option(c("-o", "--output"), default="pca.out",
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
76 help="output file name [default=%default]"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
77
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
78 make_option(c("-v", "--verbose"), action='store_true', default=FALSE,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
79 help="verbose output [default=%default]")
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
80 )
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
81
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
82 parser <- OptionParser(usage = "%prog [options] file", option_list=option_list)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
83 arguments <- parse_args(parser, positional_arguments = TRUE)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
84 opt <- arguments$options
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
85
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
86 if (opt$verbose) {print(opt)}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
87 ##------------
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
88 ## LIBRARIES
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
89 ##------------
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
90 suppressPackageStartupMessages(library("reshape"))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
91 suppressPackageStartupMessages(library("ggplot2"))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
92 suppressPackageStartupMessages(library("grid"))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
93
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
94
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
95 ###############
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
96 # BEGIN
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
97 ##############
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
98
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
99 # read input tables
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
100 inF = opt$input_matrix; if (opt$input_matrix == "stdin") {inF = file("stdin")}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
101 m = read.table(inF, h=T, sep="\t")
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
102 if (opt$verbose) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
103 cat("Sample of input matrix:\n")
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
104 print(head(m[,1:10]))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
105 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
106
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
107
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
108 # Read the color palette
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
109 my_palette = read.table(opt$palette, h=F, comment.char="%", sep="\t")$V1
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
110
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
111 # Read the color ordering
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
112 if (is.null(opt$sort_color)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
113 sort_color=NULL
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
114 }else{
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
115 sort_color = strsplit(opt$sort_color, ",")[[1]]
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
116 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
117
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
118 # Read the shapes
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
119 if (!is.null(opt$shapes)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
120 my_shapes = read.table(opt$shapes, h=F, comment.char="%")$V1
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
121 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
122
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
123 # remove potential gene id columns
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
124 char_cols <- which(sapply(m, class) == 'character')
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
125 if (length(char_cols) == 0) {genes = rownames(m)}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
126 if (length(char_cols) != 0) {genes = m[,char_cols]; m = m[,-(char_cols)]}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
127
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
128 if (opt$verbose) {sprintf("WARNING: column %s is character, so it is removed from the analysis", char_cols)}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
129
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
130 # apply the log if required
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
131 if (opt$log10) {m = log10(replace(m, is.na(m), 0) + opt$pseudocount)}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
132
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
133 # apply pca
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
134 #if (opt$row_as_variable) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
135 #m_pca = prcomp(na.omit(m), center=FALSE, scale.=FALSE)} else{
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
136 #m_pca = prcomp(t(na.omit(m)), center=FALSE, scale.=FALSE)}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
137 #Modified by Gaelle Lefort
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
138 # apply pca
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
139 if (opt$row_as_variable) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
140 m_pca = prcomp(t(na.omit(m)), center=FALSE, scale.=FALSE)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
141 } else {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
142 m_pca = prcomp(na.omit(m), center=FALSE, scale.=FALSE)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
143 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
144
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
145
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
146 # Scale the scores for biplot
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
147 #scaledScores = sweep(m_pca$x, 2, m_pca$sdev / sqrt(nrow(m_pca$x)), "/")
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
148 scaledScores = m_pca$x
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
149
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
150 if (opt$verbose) {print(dim(na.omit(m)))}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
151
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
152 # HANDLING METADATA
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
153
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
154 # add metadata to pca results, they should be input in the command line in the future
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
155 if (is.null(opt$color_by)) {color_by=NULL
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
156 }else{color_by = color_by = strsplit(opt$color_by, ",")[[1]]}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
157 if (is.null(opt$shape_by)) {shape_by=NULL
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
158 }else{shape_by = strsplit(opt$shape_by, ",")[[1]]}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
159
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
160 # read metadata, one or more table to be merged on labExpId
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
161 if (!is.null(opt$metadata)){
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
162 mdata = read.table(opt$metadata, h=T, sep="\t", row.names=NULL, comment.char="", quote="");
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
163 if (opt$merge_mdata_on %in% colnames(mdata)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
164 mdata[,opt$merge_mdata_on] <- gsub("[,-]", ".", mdata[,opt$merge_mdata_on])
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
165 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
166
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
167 if (opt$verbose) {cat('append metadata...')}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
168
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
169 df = merge(as.data.frame(scaledScores),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
170 unique(mdata[c(color_by, shape_by, opt$merge_mdata_on, opt$labels)]), by.x='row.names', by.y=opt$merge_mdata_on, all.x=T)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
171 if (opt$verbose) {cat("DONE\n")}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
172 }else{
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
173 df = as.data.frame(scaledScores)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
174 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
175
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
176
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
177 if (opt$verbose) {print(head(df))}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
178
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
179 #########
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
180 # OUTPUT
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
181 #########
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
182
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
183 output_name = opt$output
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
184
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
185 # Print text outputs if required
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
186
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
187 # -- principal components --
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
188 if (opt$print_scores) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
189 write.table(m_pca$x, sprintf("%s.PCs.tsv", output_name), quote=F, sep="\t")
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
190 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
191
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
192 # -- loadings --
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
193 if (opt$print_loadings) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
194 write.table(m_pca$rotation, sprintf("%s.loadings.tsv", output_name), quote=F, sep="\t")
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
195 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
196
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
197 # -- lambdas --
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
198 if (opt$print_lambdas) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
199 perc = round(100*m_pca$sdev/sum(m_pca$sdev), 2)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
200 variances = round(m_pca$sdev^2/sum(m_pca$sdev^2)*100, 2)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
201 out_df = data.frame(lambda=m_pca$sdev, perc=perc, var_perc=variances)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
202 write.table(out_df, sprintf("%s.lambdas.tsv", output_name), quote=F, sep="\t")
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
203 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
204
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
205 # Read the required components
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
206 prinComp = strsplit(opt$princomp, ",")[[1]]
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
207 prinComp_i = as.numeric(gsub("PC", "", prinComp))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
208
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
209 # Get a vector with all the variance percentages
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
210 variances = round(m_pca$sdev^2/sum(m_pca$sdev^2)*100, 2)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
211
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
212 if (opt$biplot) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
213
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
214 aggrVar = opt$color_by
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
215
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
216 # === Centroids ===
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
217
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
218 centroids = aggregate (
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
219 formula(sprintf(".~%s", aggrVar)),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
220 df[,c(colnames(df)[grep("^PC", colnames(df))], aggrVar)],
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
221 mean
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
222 )
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
223 centroidsM = centroids[,-1]
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
224
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
225 # === Loadings ===
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
226
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
227 vecNorm = function(x) {sqrt(sum(x**2))}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
228
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
229 scaledLoadings = sweep(m_pca$rotation, 2, m_pca$sdev * nrow(m_pca$x), "*")
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
230
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
231 centroidsNorm = apply(centroidsM[,prinComp], 1, vecNorm) # DIM: number of levels x 1
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
232 loadingsNorm = apply(scaledLoadings[,prinComp], 1, vecNorm) # DIM: number of variables x 1
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
233
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
234 cosine = ( scaledLoadings[,prinComp] %*% t(centroidsM[,prinComp]) ) / (loadingsNorm %*% t(centroidsNorm))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
235 cosine = setNames(data.frame(cosine), centroids[,1])
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
236
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
237 closest = setNames(melt(apply(1-cosine, 2, rank)), c("variable", aggrVar, "rank"))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
238 write.table( closest, file=sprintf("%s.cosine.tsv", opt$output), quote=F, row.names=F, sep="\t");
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
239
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
240 closest_df = data.frame(merge(closest, scaledLoadings, by.x="variable", by.y="row.names"))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
241
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
242
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
243 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
244
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
245
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
246
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
247 #############
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
248 # PLOT
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
249 #############
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
250
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
251 # plot parameters
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
252 pts = 5
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
253
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
254 l_col = opt$labels
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
255 base_size = opt$base_size
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
256
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
257 theme_set(theme_bw(base_size = base_size))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
258 theme_update(legend.text=element_text(size=0.9*base_size),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
259 legend.key.size=unit(0.9*base_size, "points"),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
260 legend.key = element_blank()
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
261 )
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
262
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
263 top = 30
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
264
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
265
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
266 # Open device for plotting
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
267 pdf(sprintf("%s.pdf", output_name), w=opt$width, h=opt$height)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
268
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
269 if (length(prinComp) == 2){
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
270
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
271 geom_params = list()
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
272 geom_params$size = pts
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
273 # geom_params$alpha = opt$alpha
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
274
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
275 mapping = list()
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
276 mapping <- modifyList(mapping, aes_string(x=prinComp[1], y=prinComp[2]))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
277
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
278 if (!is.null(opt$color_by)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
279 gp_color_by=interaction(df[color_by])
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
280 if (!is.null(opt$sort_color)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
281 gp_color_by = factor(gp_color_by, levels=sort_color)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
282 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
283 mapping = modifyList(mapping, aes_string(color=gp_color_by, order=gp_color_by))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
284 } else {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
285 gp_color_by=NULL
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
286 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
287
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
288 if (!is.null(opt$shape_by)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
289 gp_shape_by=interaction(df[shape_by])
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
290 if (!is.null(opt$sort_shape)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
291 gp_shape_by = factor(gp_shape_by, levels=sort_shape)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
292 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
293 mapping = modifyList(mapping, aes_string(shape=gp_shape_by, order=gp_shape_by))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
294 } else {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
295 gp_shape_by=NULL
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
296 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
297
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
298 # if (!is.na(opt$shape_by)) {gp_shape_by=interaction(df[shape_by]);
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
299 # gp_shape_by <- factor(gp_shape_by, levels=sort(levels(gp_shape_by)))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
300 # mapping = modifyList(mapping, aes_string(shape=S_col))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
301
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
302 class(mapping) <- "uneval"
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
303
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
304 pointLayer <- layer(
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
305 geom = "point",
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
306 # geom_params = geom_params,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
307 params = geom_params,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
308 mapping = mapping,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
309 stat = "identity",
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
310 position = "identity"
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
311 )
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
312
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
313
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
314
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
315
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
316 # plotting...
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
317 gp = ggplot(df, aes_string(x=prinComp[1],y=prinComp[2]));
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
318
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
319 if (opt$biplot) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
320 gp = gp + geom_point(data=centroids, aes_string(x=prinComp[1], y=prinComp[2], color=opt$color_by), shape=8, size=7)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
321 gp = gp + geom_segment(
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
322 data=subset(closest_df, rank <= top),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
323 aes_string(x=0, y=0, xend=prinComp[1], yend=prinComp[2], color=opt$color_by)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
324 )
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
325 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
326
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
327
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
328 if (opt$border) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
329 if (!is.null(opt$shape_by)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
330 gp = gp + geom_point(aes(shape=gp_shape_by), col='black', size=pts+1.0);
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
331 } else {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
332 gp = gp + geom_point(col="black", size=pts+1.0)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
333 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
334 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
335
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
336 gp = gp + pointLayer
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
337
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
338 # gp = gp + geom_point(aes(color=gp_color_by))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
339 # gp = gp + geom_point(aes(col=gp_color_by, shape=gp_shape_by), size=pts);
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
340 #
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
341 gp = gp + labs(title="");
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
342 gp = gp + labs(x=sprintf('%s (%s%%)', prinComp[1], variances[prinComp_i[1]]));
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
343 gp = gp + labs(y=sprintf('%s (%s%%)', prinComp[2], variances[prinComp_i[2]]));
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
344
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
345 gp = gp + scale_color_manual(name=opt$color_by, values=my_palette)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
346 if (!is.null(opt$shapes)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
347 gp = gp + scale_shape_manual(name=opt$shape_by, values=my_shapes);
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
348 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
349 if (opt$no_legend) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
350 gp = gp + guides(shape=FALSE, color=FALSE)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
351
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
352 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
353 if (!is.null(opt$labels)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
354 gp = gp + geom_text(aes_string(label=l_col), size=pts)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
355 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
356
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
357 gp
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
358 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
359
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
360
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
361
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
362
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
363 # --------------------
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
364 #
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
365 # 3d scatterplot
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
366 #
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
367 # --------------------
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
368
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
369
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
370 if (length(prinComp) == 3) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
371
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
372 suppressPackageStartupMessages(library(scatterplot3d))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
373
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
374 par(xpd=NA, omi=c(0.5, 0.5, 0.5, 1.0))
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
375
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
376 if (!is.na(opt$color_by)) {gp_color=my_palette[interaction(df[color_by])]} else {gp_color="black"}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
377 if (!is.null(opt$shape_by)) {gp_shape_by=interaction(df[shape_by]);
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
378 gp_shape_by <- factor(gp_shape_by, levels=sort(intersect(levels(gp_shape_by), gp_shape_by))); gp_shape=my_shapes[gp_shape_by]} else {gp_shape_by=NULL}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
379
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
380 plot3d = scatterplot3d(df[prinComp],
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
381 color = gp_color,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
382 pch = gp_shape,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
383 xlab = sprintf('%s (%s%%)', prinComp[1], variances[prinComp_i[1]]),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
384 ylab = sprintf('%s (%s%%)', prinComp[2], variances[prinComp_i[2]]),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
385 zlab = sprintf('%s (%s%%)', prinComp[3], variances[prinComp_i[3]]),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
386 cex.symbols = 1.5,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
387 lab = c(5,4)
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
388 )
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
389
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
390 # !!! To be removed after the mouse paper !!!
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
391 #i=0; for(sample in interaction(df[color_by])) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
392 #i=i+1; plot3d$points3d(subset(df, General_category == sample, select=prinComp), type='l', col=gp_color[i])}
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
393
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
394 if (!is.na(opt$color_by)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
395 legend(
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
396 x = log(max(df[prinComp[1]])) + 3,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
397 # x = 5,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
398 y = 5.5,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
399 legend = levels(interaction(df[color_by])),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
400 fill = my_palette[seq_along(levels(interaction(df[color_by])))]
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
401 )
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
402 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
403
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
404 if (!is.na(opt$shape_by)) {
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
405 legend(
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
406 # x = -log(abs(min(df[prinComp[1]]))) - 1.5,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
407 x = -3,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
408 y = 6,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
409 # y = 7.2,
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
410 legend = levels(gp_shape_by),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
411 pch = my_shapes[seq_along(levels(gp_shape_by))]
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
412 )
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
413 # legend(-log(abs(min(df[prinComp[1]])))+1.5,7.2,levels(gp_shape_by),
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
414 # pch=shapes[seq_along(levels(gp_shape_by))])
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
415 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
416 }
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
417
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
418
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
419 dev.off()
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
420 q(save='no')
610e86c430a9 planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
vmarcon
parents:
diff changeset
421