# 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