Mercurial > repos > recetox > rcx_boxplot
view rcx_boxplot.xml @ 0:92325ed91115 draft default tip
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools commit 68159a987b0597222625834e235441b95e8c3a5e
author | recetox |
---|---|
date | Mon, 03 Feb 2025 16:18:52 +0000 |
parents | |
children |
line wrap: on
line source
<tool id="rcx_boxplot" name="recetox-boxplot" version="@TOOL_VERSION@+galaxy0" profile="23.0"> <description>Boxplot visualization tool using ggplot2</description> <macros> <import>macros.xml</import> <import>help.xml</import> </macros> <expand macro="creator" /> <expand macro="requirements" /> <command detect_errors="exit_code"><![CDATA[ Rscript '${run_script}' #if $export_R_script && cat ${run_script} >> $script #end if ]]></command> <configfiles> <configfile name="run_script"><![CDATA[ #if $input_data.ext == "csv" data_input <- read.csv("$input_data", check.names = "false") #else if $input_data.ext in ["tsv", "txt", "tabular"] data_input <- read.delim("$input_data", sep="\t", check.names = "false") #else if $input_data.ext == "parquet" data_input <- arrow::read_parquet("$input_data") #end if #if $has_rownames rownames(data_input) <- data_input[, 1] data_input <- data_input[ ,-1] #end if y_colname <- "intensity" data_long <- tidyr::pivot_longer(data_input, cols = c(1:ncol(data_input)), names_to = "samples", values_to = y_colname) #if $transform_data == "replace_zero" data_long[data_long == 0] <- NA #else if $transform_data == "log2" data_long[[y_colname]] <- log2(data_long[[y_colname]]) #else if $transform_data == "log10" data_long[[y_colname]] <- log10(data_long[[y_colname]]) #end if #if $grouping_boxplot.use_grouping == "yes" metadata_input <- read.delim("$grouping_boxplot.input_metadata", sep="\t", check.names = "false") sampleID_column <- colnames(metadata_input)[$grouping_boxplot.sampleID] plotting_column <- colnames(metadata_input)[$grouping_boxplot.groupingCol] metadata_input <- data.frame(lapply(metadata_input, as.factor)) data_long <- dplyr::left_join(data_long, metadata_input, by = c("samples" = sampleID_column), keep = TRUE) #if $grouping_boxplot.facet_x facet_x <- rlang::sym(colnames(metadata_input)[$grouping_boxplot.facet_x]) #else facet_x <- NULL #end if #if $grouping_boxplot.facet_y facet_y <- rlang::sym(colnames(metadata_input)[$grouping_boxplot.facet_y]) #else facet_y <- NULL #end if plot_boxplot <- ggplot2::ggplot(data_long, ggplot2::aes( x = !!rlang::sym(plotting_column), y = intensity, #if $grouping_boxplot.colorCol fill = !!rlang::sym(colnames(metadata_input)[$grouping_boxplot.colorCol]) #end if )) + ggplot2::geom_boxplot() + ggplot2::theme_bw()+ ggplot2::theme(axis.text.x = ggplot2::element_text(angle = 45, hjust=1)) + ggplot2::facet_grid(rows = if(!is.null(facet_y)) dplyr::vars(!!facet_y) else NULL, cols = if(!is.null(facet_x)) dplyr::vars(!!facet_x) else NULL, scales = "free") #else plot_boxplot <- ggplot2::ggplot(data_long, ggplot2::aes(x = samples, y = intensity)) + ggplot2::geom_boxplot() + ggplot2::theme_bw()+ ggplot2::theme(axis.text.x = ggplot2::element_text(angle = 45, hjust=1)) #end if #if $xlab plot_boxplot <- plot_boxplot + ggplot2::xlab("$xlab") #end if #if $ylab plot_boxplot <- plot_boxplot + ggplot2::ylab("$ylab") #end if #if $flip_axes == "true" plot_boxplot <- plot_boxplot + ggplot2::coord_flip() #end if ggplot2::ggsave(filename = "boxplot.png", plot_boxplot) ]]></configfile> </configfiles> <inputs> <expand macro="boxplot_param"/> </inputs> <outputs> <data name="boxplot" format="png" label="Boxplot on ${on_string}" from_work_dir="boxplot.png"/> <data name="script" format="txt" label="R script"> <filter>export_R_script</filter> </data> </outputs> <tests> <test expect_num_outputs="1"> <param name="input_data" value="test_data.txt"/> <param name="has_rownames" value="true"/> <output name="boxplot" ftype="png"> <assert_contents> <has_size size="1164615" delta="200"/> </assert_contents> </output> </test> <test expect_num_outputs="2"> <param name="input_data" value="test_data.txt"/> <param name="has_rownames" value="true"/> <param name="use_grouping" value="yes"/> <param name="input_metadata" value="test_expDesign.txt"/> <param name="sampleID" value="1"/> <param name="groupingCol" value="1"/> <param name="export_R_script" value="TRUE"/> <output name="boxplot" ftype="png"> <assert_contents> <has_size size="1164615" delta="200"/> </assert_contents> </output> </test> </tests> <help><![CDATA[ @GENERAL_HELP@ ]]></help> <expand macro="citations" /> </tool>