# HG changeset patch
# User iuc
# Date 1528747529 14400
# Node ID c2109956641895bf7d2fe38a788031fdb4211f38
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ggplot2 commit f9fb73a88ab8b52ce11c25a966d4fe99e67c9fbf
diff -r 000000000000 -r c21099566418 ggplot2_pca.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ggplot2_pca.xml Mon Jun 11 16:05:29 2018 -0400
@@ -0,0 +1,395 @@
+
+
+ macros.xml
+
+
+ r-ggfortify
+ r-svglite
+
+
+
+ 0){
+ df <- read.table(input, header = header, row.names = rowname_index, sep = "\t")
+}else{
+ df <- read.table(input, header = header, sep = "\t")
+}
+
+## check if indices are out of range
+num_cols <- length(names(df))
+if(group_type == "define_groups"){
+ check_col_indices <- as.integer(unlist(strsplit(group_cols, split = ",")))
+ if(any(check_col_indices > num_cols)){
+ stop("Error: column indices for grouping are out of range! Check help!")
+ }
+}
+
+## check if table has only numbers
+if(any(!sapply(df, is.numeric))){
+ stop("Error: table contains not only numbers!")
+}
+
+## check if group_names are unique
+if(length(unique(c(group_name, "no_group"))) != length(c(group_name, "no_group"))){
+ stop("Error: group_names must be unique: ", paste(group_name, "no_group", collapse = ","), " is not unique!")
+}
+
+## prepare group_features for grouping of samples accouring to orientation
+if(horizontal){
+ num_cols <- length(names(df))
+ group_feature <- rep("no_group", num_cols)
+}else{
+ num_rows <- nrow(df)
+ group_feature <- rep("no_group", num_rows)
+}
+
+default_ggplot_colors <- ""
+default_ggplot_colors_autoplot <- ""
+## split group elements and assign indexes
+if(group_type == "define_groups"){
+ ## set up colors
+ color_names <- c(group_name, "no_group")
+ cat("\ncolor_names: ", color_names)
+ default_ggplot_colors <- hue_pal()(length(color_names))
+ names(default_ggplot_colors) <- color_names
+ cat("\ndefault_ggplot_colors: ", default_ggplot_colors)
+ names(group_colors) <- group_name
+ group_colors <- group_colors[group_colors != "none"]
+ default_ggplot_colors[names(group_colors)] <- group_colors
+ cat("\ndefault_ggplot_colors: ", default_ggplot_colors)
+ group_string <- lapply(seq_along(group_name), function(k){
+ gname <- group_name[k]
+ gindex <- as.integer(strsplit(group_cols[k], split = ",")[[1]])
+ gnames <- rep(gname, length(gindex))
+ names(gindex) <- gnames
+ gindex
+ })
+ group_string <- do.call(c, group_string)
+ group_feature[group_string] <- names(group_string)
+ ## subset colors on groups if and check if there is "no_group" present
+ default_ggplot_colors <- default_ggplot_colors[unique(group_feature)]
+ default_ggplot_colors_autoplot <- default_ggplot_colors[group_feature]
+ cat("\ndefault_ggplot_colors: ", default_ggplot_colors)
+}
+
+@LEGEND@
+
+@XY_SCALING@
+
+@THEME@
+
+## transpose data.frame for plotting if sample names are horizontal
+if(horizontal){
+ df <- as.data.frame(t(df))
+}
+
+plot_df <- df
+## set group column if wanted
+if(group_type %in% "no_groups"){
+ groups <- FALSE
+}else{
+ plot_df\$group <- group_feature
+ group_name <- "group"
+}
+
+## set boolean elipes_value to plot circle options
+if(circles %in% "no"){
+ circles_boolean <- FALSE
+}
+
+plot_mat <- df
+
+## transform dataset
+if(transform == "log2"){
+ plot_mat <- log2(plot_mat)
+ cat("\n ", transform, " transformed")
+}else if(transform == "log2plus1"){
+ plot_mat <- log2(plot_mat+1)
+ cat("\n ", transform, " transformed")
+}else if(transform == "log10"){
+ plot_mat <- log10(plot_mat)
+ cat("\n ", transform, " transformed")
+}else if(transform == "log10plus1"){
+ plot_mat <- log10(plot_mat+1)
+ cat("\n ", transform, " transformed")
+}else{
+ plot_mat <- plot_mat
+}
+
+## plot with or without groups and set more plotting options using autoplot
+if(groups){
+ if(circles_boolean){
+ plot_out <- autoplot(prcomp(plot_mat), data = plot_df, colour = group_name,
+ frame = T, frame.type=circles, shape = plot_options[1],
+ label = plot_options[2])
+ }else{
+ plot_out <- autoplot(prcomp(plot_mat), data = plot_df, colour = group_name,
+ frame = F, shape = plot_options[1], label = plot_options[2])
+ }
+}else{
+ if(!circles_boolean){
+ plot_out <- autoplot(prcomp(plot_mat), data = plot_df, frame = F, shape = plot_options[1], label = plot_options[2])
+ }else{
+ plot_out <- autoplot(prcomp(plot_mat), data = plot_df, frame = F, shape = plot_options[1], label = plot_options[2])
+ }
+}
+
+## add advanced plotting options for final plot
+plot_out <- plot_out +
+ scale_color_manual(values=default_ggplot_colors) +
+ scale_fill_manual(values=default_ggplot_colors) +
+ gg_theme +
+ gg_legend +
+ ggtitle('$title') +
+ theme(plot.title = element_text(hjust = 0.5))
+
+@SAVE_OUTPUT@
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @article{tang2016ggfortify,
+ title={ggfortify: unified interface to visualize statistical results of popular R packages},
+ author={Tang, Yuan and Horikoshi, Masaaki and Li, Wenxuan},
+ journal={The R Journal},
+ volume={8},
+ number={2},
+ pages={478-489},
+ year={2016},
+ url = {https://journal.r-project.org/archive/2016/RJ-2016-060/RJ-2016-060.pdf}
+ }
+
+ @manual{gu2016getoptlong,
+ title = {GetoptLong: Parsing Command-Line Arguments and Variable Interpolation},
+ author = {Zuguang Gu},
+ year = {2016},
+ note = {R package version 0.1.5},
+ url = {https://CRAN.R-project.org/package=GetoptLong},
+ }
+
+
+
diff -r 000000000000 -r c21099566418 macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml Mon Jun 11 16:05:29 2018 -0400
@@ -0,0 +1,291 @@
+
+
+
+
+ r-ggplot2
+
+
+
+ 2.2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @book{wickham2009ggplot2,
+ author = {Hadley Wickham},
+ title = {ggplot2: Elegant Graphics for Data Analysis},
+ publisher = {Springer-Verlag New York},
+ year = {2009},
+ isbn = {978-0-387-98140-6},
+ url = {http://ggplot2.org},
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ out['additional_output_format'] != "none"
+
+
+
diff -r 000000000000 -r c21099566418 test-data/ggplot_heatmap2_result1.pdf
Binary file test-data/ggplot_heatmap2_result1.pdf has changed
diff -r 000000000000 -r c21099566418 test-data/ggplot_heatmap_result1.pdf
Binary file test-data/ggplot_heatmap_result1.pdf has changed
diff -r 000000000000 -r c21099566418 test-data/ggplot_histogram_result1.pdf
Binary file test-data/ggplot_histogram_result1.pdf has changed
diff -r 000000000000 -r c21099566418 test-data/ggplot_pca_result1.pdf
Binary file test-data/ggplot_pca_result1.pdf has changed
diff -r 000000000000 -r c21099566418 test-data/ggplot_point_result1.pdf
Binary file test-data/ggplot_point_result1.pdf has changed
diff -r 000000000000 -r c21099566418 test-data/ggplot_violin_result1.pdf
Binary file test-data/ggplot_violin_result1.pdf has changed
diff -r 000000000000 -r c21099566418 test-data/mtcars.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/mtcars.txt Mon Jun 11 16:05:29 2018 -0400
@@ -0,0 +1,33 @@
+brand mpg cyl disp hp drat wt qsec vs am gear carb
+Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
+Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
+Datsun 710 22.8 4 108 93 3.85 2.32 18.61 1 1 4 1
+Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
+Hornet Sportabout 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
+Valiant 18.1 6 225 105 2.76 3.46 20.22 1 0 3 1
+Duster 360 14.3 8 360 245 3.21 3.57 15.84 0 0 3 4
+Merc 240D 24.4 4 146.7 62 3.69 3.19 20 1 0 4 2
+Merc 230 22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2
+Merc 280 19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4
+Merc 280C 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4
+Merc 450SE 16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3
+Merc 450SL 17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3
+Merc 450SLC 15.2 8 275.8 180 3.07 3.78 18 0 0 3 3
+Cadillac Fleetwood 10.4 8 472 205 2.93 5.25 17.98 0 0 3 4
+Lincoln Continental 10.4 8 460 215 3 5.424 17.82 0 0 3 4
+Chrysler Imperial 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
+Fiat 128 32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1
+Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
+Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1
+Toyota Corona 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1
+Dodge Challenger 15.5 8 318 150 2.76 3.52 16.87 0 0 3 2
+AMC Javelin 15.2 8 304 150 3.15 3.435 17.3 0 0 3 2
+Camaro Z28 13.3 8 350 245 3.73 3.84 15.41 0 0 3 4
+Pontiac Firebird 19.2 8 400 175 3.08 3.845 17.05 0 0 3 2
+Fiat X1-9 27.3 4 79 66 4.08 1.935 18.9 1 1 4 1
+Porsche 914-2 26 4 120.3 91 4.43 2.14 16.7 0 1 5 2
+Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2
+Ford Pantera L 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
+Ferrari Dino 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6
+Maserati Bora 15 8 301 335 3.54 3.57 14.6 0 1 5 8
+Volvo 142E 21.4 4 121 109 4.11 2.78 18.6 1 1 4 2