Mercurial > repos > iuc > ggplot2_barplot
changeset 0:41e9114cc7cd draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ggplot2 commit 57b86418a4f032a5664b8dc1c9585a11be629158
author | iuc |
---|---|
date | Thu, 15 May 2025 13:01:57 +0000 |
parents | |
children | |
files | ggplot2_barplot.xml macros.xml test-data/barplot_test_data.txt test-data/boxplot_test_data.txt test-data/boxplot_test_expDesign.txt test-data/ggplot_heatmap_result1.pdf test-data/ggplot_histogram_result1.pdf test-data/ggplot_line_result1.pdf test-data/ggplot_pca_result1.pdf test-data/ggplot_point_result1.pdf test-data/ggplot_point_result2.pdf test-data/ggplot_point_result3.pdf test-data/ggplot_violin_result1.pdf test-data/mtcars.txt utils.r |
diffstat | 15 files changed, 581 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ggplot2_barplot.xml Thu May 15 13:01:57 2025 +0000 @@ -0,0 +1,142 @@ +<tool id="ggplot2_barplot" name="Barplot w ggplot2" version="@TOOL_VERSION@+galaxy0" profile="23.0"> + <description>Barplot visualization tool using ggplot2</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements"> + <requirement type="package" version="1.3.1">r-tidyr</requirement> + <requirement type="package" version="19.0.0">r-arrow</requirement> + <requirement type="package" version="1.1.5">r-rlang</requirement> + </expand> + <required_files> + <include path="utils.r" /> + </required_files> + <creator> + <person + givenName="Kristina" + familyName="Gomoryova" + url="https://github.com/KristinaGomoryova" + identifier="0000-0003-4407-3917" /> + <person + givenName="Helge" + familyName="Hecht" + url="https://github.com/hechth" + identifier="0000-0001-6744-996X" /> + <organization + url="https://www.recetox.muni.cz/" + email="GalaxyToolsDevelopmentandDeployment@space.muni.cz" + name="RECETOX MUNI" /> + </creator> + + <command detect_errors="exit_code"><![CDATA[ + Rscript -e 'source("${__tool_directory__}/utils.r")' -e 'source("${run_script}")' + #if $export_R_script + && cat ${run_script} >> $script + #end if + ]]></command> + + <configfiles> + <configfile name="run_script"><![CDATA[ + file_name <- "$input_data" + file_extension <- "$input_data.ext" + data_input <- load_data(file_name, file_extension) + + quant_col <- colnames(data_input)[$quant_col] + grouping_col <- colnames(data_input)[$grouping_col] + data_input[[grouping_col]] <- as.factor(data_input[[grouping_col]]) + + #if $color_col + color_col <- colnames(data_input)[$color_col] + data_input[[color_col]] <- as.factor(data_input[[color_col]]) + #end if + + plot_barplot <- ggplot2::ggplot(data_input, + ggplot2::aes(x = !!rlang::sym(grouping_col), + y = !!rlang::sym(quant_col), + #if $color_col + fill = !!rlang::sym(color_col) + #end if + )) + + ggplot2::geom_bar(stat="identity" + #if $position + , position = ggplot2::position_dodge() + #end if + ) + + ggplot2::theme_bw()+ + ggplot2::theme(axis.text.x = ggplot2::element_text(angle = 45, hjust=1)) + + #if $xlab + plot_barplot <- plot_barplot + ggplot2::xlab("$xlab") + #end if + + #if $ylab + plot_barplot <- plot_barplot + ggplot2::ylab("$ylab") + #end if + + ggplot2::ggsave(filename = "barplot.png", plot_barplot) + + ]]></configfile> + </configfiles> + + <inputs> + <param name="input_data" type="data" format="csv,tsv,txt,tabular,parquet" label="Input table in a long format" help= "Input file in a tabular/tsv/csv/parquet format"/> + <param name="quant_col" type="data_column" data_ref="input_data" use_header_names="true" label="Which column contains the quantitative information?" help="Select the column containing quantitative information."/> + <param name="grouping_col" type="data_column" data_ref="input_data" use_header_names="true" label="Which column contains the categories?" help="Select the column which contains the categories."/> + <param name="color_col" type="data_column" data_ref="input_data" use_header_names="true" optional="true" label="Which column to color according to?" help="Select the column which contains levels for color."/> + <param name="position" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Use position dodge?" help="If a column for color is specified, should be the categories placed side-by-side or stacked (default)?"/> + <expand macro="axes_labels"/> + <expand macro="export_data"/> + </inputs> + + <outputs> + <data name="barplot" format="png" label="Barplot on ${on_string}" from_work_dir="barplot.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="barplot_test_data.txt"/> + <param name="quant_col" value="3"/> + <param name="grouping_col" value="4"/> + <output name="barplot" ftype="png"> + <assert_contents> + <has_image_channels channels="1"/> + <has_image_height height="2100"/> + <has_image_width width="2100" /> + <has_image_center_of_mass center_of_mass="1030.12, 1008.25" eps="0.1"/> + </assert_contents> + </output> + </test> + </tests> + + <help><![CDATA[ +recetox-barplot help +===================== + +Overview +-------- + +recetox-barplot allows creating barplots from tabular/csv/parquet data. On the input, data in a long format are expected, meaning that each column represents a variable, each row represents an observation as shown below. + +User has to define which column holds the quantitative information (e.g. counts for particular category) and which column contains the categories to be plotted. It is also possible to use another variable to color the bars. Finally, `Use position dodge?` parameter defines whether the bars will be stacked above each other (default behavior when set to FALSE) or will be placed side-by-side (when set to TRUE). If no color column is supplied, setting this parameter will have no effect on the resulting barplots. + +Example barplot input +---------------------- + ++----------------------+-------------------+-----------------------+--------------------+ +| SampleName | replicate | condition | Value | ++======================+===================+=======================+====================+ +| sample1 | 1 | control | 20 | ++----------------------+-------------------+-----------------------+--------------------+ +| sample2 | 1 | treatment | 40 | ++----------------------+-------------------+-----------------------+--------------------+ +| sample3 | 2 | treatment | 10 | ++----------------------+-------------------+-----------------------+--------------------+ +| ... | ... | ... | ... | ++----------------------+-------------------+-----------------------+--------------------+ + ]]></help> + + <expand macro="citations" /> +</tool> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/macros.xml Thu May 15 13:01:57 2025 +0000 @@ -0,0 +1,358 @@ +<?xml version="1.0"?> +<macros> + <xml name="requirements"> + <requirements> + <requirement type="package" version="@TOOL_VERSION@">r-ggplot2</requirement> + <yield /> + </requirements> + </xml> + <xml name="bio_tools"> + <xrefs> + <xref type="bio.tools">ggplot2</xref> + </xrefs> + </xml> + <token name="@TOOL_VERSION@">3.5.1</token> + <token name="@VERSION_SUFFIX@">1</token> + + <token name="@R_INIT@"><![CDATA[ + ## Setup R error handling to go to stderr + options(show.error.messages=F, error=function(){cat(geterrmessage(), file=stderr()); q("no",1,F)}) + + ## Unify locale settings + loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") + ]]></token> + + <token name="@TRANSFORM@"><![CDATA[ + #if $adv.transform == "log2" + input["value"] <- log2(input["value"]) + #elif $adv.transform == "log2plus1" + input["value"] <- log2(input["value"]+1) + #elif $adv.transform == "log10" + input["value"] <- log10(input["value"]) + #elif $adv.transform == "log10plus1" + input["value"] <- log10(input["value"]+1) + #end if + ]]></token> + + <token name="@XY_SCALING@"><![CDATA[ + #Choose between automatically scaled x and y axis or user defined + #if $adv.scaling.plot_scaling == "Automatic" + gg_scalex = NULL + gg_scaley = NULL + #else + gg_scalex = xlim($adv.scaling.xaxismin, $adv.scaling.xaxismax) + gg_scaley = ylim($adv.scaling.yaxismin, $adv.scaling.yaxismax) + cat("\n xaxismin: ", $adv.scaling.xaxismin) + cat("\n xaxismax: ", $adv.scaling.xaxismax) + cat("\n yaxismin: ", $adv.scaling.yaxismin) + cat("\n yaxismax: ", $adv.scaling.yaxismax) + #end if + ]]></token> + + <token name="@THEME@"><![CDATA[ + ## Choose theme for plot + #if $adv.theme == "bw" + gg_theme = theme_bw() + #else + gg_theme = NULL + #end if + ]]></token> + + <token name="@LEGEND@"><![CDATA[ + ## Show/hide legend + #if $adv.legend == "yes" + gg_legend = theme(legend.position="right") + #else + gg_legend = theme(legend.position="none") + cat("\n no legend") + #end if + ]]></token> + <token name="@SAVE_OUTPUT@"><![CDATA[ + ## output options need to be in out section + gg_width <- as.double('$out.width_output_dim') + gg_height <- as.double('$out.height_output_dim') + gg_unit <- '$out.unit_output_dim' + gg_dpi <- as.double('$out.dpi_output_dim') + gg_add_device <- '$out.additional_output_format' + output1 <- '$output1' + output2 <- '$output2' + + ## ggsave to png + ggsave(filename = output1, plot = plot_out, width = gg_width, height = gg_height, units = gg_unit, dpi = gg_dpi, device = "png") + if(gg_add_device != "none"){ + ggsave(filename = output2, plot = plot_out, width = gg_width, height = gg_height, units = gg_unit, dpi = gg_dpi, device = gg_add_device) + } + ]]></token> + <xml name="read_complex_input"> + <param name="input1" type="data" format="tabular" label="Select table"/> + <conditional name="inputdata"> + <param name="input_type" type="select" label="Select input dataset options" help="specific dataset input for reading"> + <option value="with_header" selected="true">Dataset with header</option> + <option value="with_rownames">Dataset with row names</option> + <option value="with_header_rownames">Dataset with header and row names</option> + <option value="no_header_rownames">Dataset without header or row names</option> + </param> + <when value="with_header"> + <param name="header" type="hidden" value="TRUE"/> + <param name="row_names_index" type="hidden" value="0"/> + <param name="sample_name_orientation" type="select" display="radio" multiple="false" label="Sample names orientation" help="Default horizontal: header names are interpreted as sample names"> + <option value="TRUE" selected="true">horizontal</option> + <option value="FALSE">vertial</option> + </param> + </when> + <when value="with_rownames"> + <param name="header" type="hidden" value="FALSE"/> + <param name="row_names_index" type="data_column" data_ref="input1" label="Select column, for row names" help="WARNING: please consider that using row names might shift the grouping columns"/> + <param name="sample_name_orientation" type="select" display="radio" label="Sample names orientation" help="default vertial: row names are interpreted as sample names"> + <option value="TRUE">horizontal</option> + <option value="FALSE" selected="true">vertial</option> + </param> + </when> + <when value="with_header_rownames"> + <param name="header" type="hidden" value="TRUE"/> + <param name="row_names_index" type="data_column" data_ref="input1" label="Select column, for row names" help="WARNING: please consider that using row names might shift the grouping columns"/> + <param name="sample_name_orientation" type="select" label="Sample names orientation" display="radio" multiple="false" help="deside whether header names or row names are interpreted as sample names"> + <option value="TRUE" selected="true">horizontal</option> + <option value="FALSE">vertial</option> + </param> + </when> + <when value="no_header_rownames"> + <param name="header" type="hidden" value="FALSE"/> + <param name="row_names_index" type="hidden" value="0"/> + <param name="sample_name_orientation" type="hidden" value="TRUE"/> + </when> + </conditional> + </xml> + <xml name="transform"> + <param name="transform" type="select" label="Data transformation"> + <option value="none">Plot the data as it is</option> + <option value="log2">Log2(value) transform my data</option> + <option value="log2plus1">Log2(value+1) transform my data</option> + <option value="log10">Log10(value) transform my data</option> + <option value="log10plus1">Log10(value+1) transform my data</option> + </param> + </xml> + <xml name="xy_scaling"> + <conditional name="scaling"> + <param name="plot_scaling" type="select" label="Axis scaling"> + <option value="Automatic" selected="true">Automatic axis scaling</option> + <option value="Defined">User-defined axis scales</option> + </param> + <when value="Automatic"/> + <when value="Defined"> + <param name="xaxismin" type="float" value="0" label="minimal range of x-axis" /> + <param name="xaxismax" type="float" value="3" label="maximal range of x-axis" /> + <param name="yaxismin" type="float" value="0" label="minimal range of y-axis" /> + <param name="yaxismax" type="float" value="3" label="maximal range of y-axis" /> + </when> + </conditional> + </xml> + <xml name="title"> + <param name="title" type="text" value="" label="Plot title"> + <!--<sanitizer sanitize="false"/> --> + </param> + </xml> + <xml name="xy_lab"> + <param name="xlab" type="text" value="Title of x-axis" label="Label for x axis"> + <sanitizer sanitize="false"/> + </param> + <param name="ylab" type="text" value="Title of y-axis" label="Label for y axis"> + <sanitizer sanitize="false"/> + </param> + </xml> + <xml name="legend"> + <param name="legend" type="select" label="Legend options"> + <option value="yes">Include legend on plot</option> + <option value="no">Hide legend</option> + </param> + </xml> + <xml name="theme"> + <param name="theme" type="select" label="Backgound theme for plot"> + <option value="bw">Black and white</option> + <option value="Default">Default (grey)</option> + </param> + </xml> + <xml name="dimensions"> + <param name="unit_output_dim" type="select" label="Unit of output dimensions" help="Default: inches."> + <option value="in" selected="true">Inches (in)</option> + <option value="cm">Centimeters (cm)</option> + <option value="mm">Millimeters (mm)</option> + </param> + <param name="width_output_dim" type="float" value="7" label="width of output"/> + <param name="height_output_dim" type="float" value="7" label="height of output"/> + <param name="dpi_output_dim" type="float" value="300" label="dpi of output" help="Plot resolution. Applies only to raster output types."/> + <param name="additional_output_format" type="select" label="Additional output format" help="PNG is always selected as output format."> + <option value="none" selected="true">Only PNG</option> + <option value="pdf">PDF</option> + <option value="svg">SVG</option> + <option value="eps">EPS</option> + <option value="ps">PS</option> + <option value="tex">TEX (pictex)</option> + <option value="jpeg">JPEG</option> + <option value="tiff">TIFF</option> + <option value="bmp">BMP</option> + </param> + </xml> + <xml name="citations"> + <citations> + <citation type="bibtex">@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 = {https://ggplot2.tidyverse.org/}, + } + </citation> + <yield /> + </citations> + </xml> + <xml name="axis_customization" token_label="Axis title options"> + <param name="axis_customization" type="select" label="@LABEL@"> + <option value="default" selected="true">Default</option> + <option value="defined">User defined label options</option> + </param> + <when value="default"/> + <when value="defined"> + <param name="size" type="float" value="12" label="Axis label size (default = 12)"/> + <param name="color" type="select" label="Color of axis label"> + <option value="black">Black (default)</option> + <option value="red">Red</option> + <option value="white">White</option> + <option value="blue">Blue</option> + <option value="orange">Orange</option> + <option value="yellow">Yellow</option> + <option value="green">Green</option> + <option value="purple">Purple</option> + <option value="magenta">Magenta</option> + <option value="cyan">Cyan</option> + <option value="grey">Grey</option> + <option value="gold">Gold</option> + </param> + <param name="face" type="select" label="Font effect of axis label"> + <option value="plain">Normal (default)</option> + <option value="bold">Bold</option> + <option value="italic">Italic</option> + </param> + </when> + </xml> + <xml name="colors"> + <param name="colors" type="select" label="Color schemes to differentiate your groups" > + <option value="Default">Default color scheme</option> + <option value="YlOrRd">Yellow to orange to red (discrete, max=9 colors)</option> + <option value="YlOrBr">Yellow to orange to brown (discrete, max=9 colors)</option> + <option value="YlGnBu">Yellow to green to blue (discrete, max=9 colors)</option> + <option value="YlGn">Yellow to green (discrete, max=9 colors)</option> + <option value="Reds">Shades of red from light to dark (discrete, max=9 colors)</option> + <option value="RdPu">Red to purple (discrete, max=9 colors)</option> + <option value="Purples">Shades of purple from light to dark (discrete, max=9 colors)</option> + <option value="PuRd">Purple to red (discrete, max=9 colors)</option> + <option value="PuBuGn">Purple to blue to green (discrete, max=9 colors)</option> + <option value="PuBu">Purple to blue(discrete, max=9 colors)</option> + <option value="OrRd">Orange to red (discrete, max=9 colors)</option> + <option value="Oranges">Shades of orange from light to dark (discrete, max=9 colors)</option> + <option value="Greys">Shades of grey from light to dark (discrete, max=9 colors)</option> + <option value="Greens">Shades of greens from light to dark (discrete, max=9 colors)</option> + <option value="GnBu">Green to blue (discrete, max=9 colors)</option> + <option value="BuPu">Blue to purple (discrete, max=9 colors)</option> + <option value="BuGn">Blue to green (discrete, max=9 colors)</option> + <option value="Blues">Shades of blue from light to dark (discrete, max=9 colors)</option> + <option value="Set1">Set 1 - predefined color pallete (discrete, max=9 colors)</option> + <option value="Set2">Set 2 - predefined color pallete (discrete, max=8 colors)</option> + <option value="Set3">Set 3 - predefined color pallete (discrete, max=12 colors)</option> + <option value="Pastel1">Pastel 1 - predefined pastel color pallete (discrete, max=9 colors)</option> + <option value="Pastel2">Pastel 2 - predefined pastel color pallete (discrete, max=8 colors)</option> + <option value="Paired">Paired - predefined color pallete (discrete, max=12 colors)</option> + <option value="Dark2">Dark 2 - predefined color pallete (discrete, max=12 colors)</option> + <option value="Accent">Accent - predefined color pallete (discrete, max=12 colors)</option> + <option value="Spectral">Spectral - Red to yellow to purple (discrete, max=11 colors)</option> + <option value="RdYlGn">Red to yellow to green (discrete, max=11 colors)</option> + <option value="RdYlBu">Red to yellow to blue (discrete, max=11 colors)</option> + <option value="RdGy">Red to grey (discrete, max=11 colors)</option> + <option value="RdBu">Red to blue (discrete, max=11 colors)</option> + <option value="PuOr">Purple to orange (discrete, max=11 colors)</option> + <option value="PRGn">Purple to green (discrete, max=11 colors)</option> + <option value="BrBG">Brown to teal (discrete, max=11 colors)</option> + </param> + </xml> + <xml name="additional_output"> + <data name="output1" format="png" label="${tool.name} on ${on_string}: png"/> + <data format="pdf" name="output2" label="${tool.name} on ${on_string}: ${out.additional_output_format}"> + <change_format> + <when input="out.additional_output_format" value="svg" format="svg" /> + <when input="out.additional_output_format" value="eps" format="eps" /> + <when input="out.additional_output_format" value="ps" format="ps" /> + <when input="out.additional_output_format" value="tex" format="txt" /> + <when input="out.additional_output_format" value="jpeg" format="jpg" /> + <when input="out.additional_output_format" value="tiff" format="tiff" /> + <when input="out.additional_output_format" value="bmp" format="bmp" /> + </change_format> + <filter>out['additional_output_format'] != "none"</filter> + </data> + </xml> + <xml name="points_options"> + <conditional name="points"> + <param name="pointoptions" type="select" label="Data point options"> + <option value="default" selected="true">Default</option> + <option value="defined">User defined point options</option> + </param> + <when value="default"> + <!--Do nothing here --> + </when> + <when value="defined"> + <param name="size" type="float" value="1" label="relative size of points" /> + <param name="alpha" type="float" value="1" label="Transparency of points (On a scale of 0-1; 0=transparent, 1=default)" /> + <param name="pointcolor" type="select" label="Color of data points" > + <option value="black">Black (default)</option> + <option value="red">Red</option> + <option value="white">White</option> + <option value="blue">Blue</option> + <option value="orange">Orange</option> + <option value="yellow">Yellow</option> + <option value="green">Green</option> + <option value="purple">Purple</option> + <option value="magenta">Magenta</option> + <option value="cyan">Cyan</option> + <option value="grey">Grey</option> + <option value="gold">Gold</option> + </param> + <param name="shape" type="select" label="Shape of data points" > + <option value="0">square</option> + <option value="1">circle</option> + <option value="2">triangle point up</option> + <option value="3">plus</option> + <option value="4">cross</option> + <option value="5">diamond</option> + <option value="6">triangle point down</option> + <option value="7">square cross</option> + <option value="8">star</option> + <option value="9">diamond plus</option> + <option value="10">circle plus</option> + <option value="11">triangles up and down</option> + <option value="12">square plus</option> + <option value="13">circle cross</option> + <option value="14">square and triangle down</option> + <option value="15">filled square</option> + <option value="16">filled circle</option> + <option value="17">filled triangle point-up</option> + <option value="18">filled diamond</option> + <option value="19">solid circle</option> + <option value="20">bullet (smaller circle)</option> + </param> + </when> + </conditional> + </xml> + <xml name="data_input"> + <param name="input_data" type="data" format="csv,tsv,txt,tabular,parquet" label="Input table" help= "Input file in a tabular/tsv/csv/parquet format"/> + </xml> + + <xml name="axes_labels"> + <param name="xlab" type="text" label="Label for the x axis" optional="true"/> + <param name="ylab" type="text" label="Label for the y axis" optional="true"/> + </xml> + + <xml name="export_data"> + <param name="export_R_script" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Export the R script to reproduce the analysis" + help="Check this box to export the script executed in the Galaxy tool as an R file to be able to reproduce the same processing offline. Not that in this case, the file paths need to be altered and all the dependencies have to be managed manually."/> + </xml> +</macros>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/barplot_test_data.txt Thu May 15 13:01:57 2025 +0000 @@ -0,0 +1,10 @@ +Condition Replicate Value ID +ctrl 1 12 1 +ctrl 2 4 2 +ctrl 3 10 3 +trtA 1 50 4 +trtA 2 52 5 +trtA 3 49 6 +trtB 1 15 7 +trtB 2 10 8 +trtB 3 9 9 \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/boxplot_test_data.txt Thu May 15 13:01:57 2025 +0000 @@ -0,0 +1,15 @@ +RowID File_1 File_2 File_3 File_4 File_5 File_6 File_7 File_8 File_9 +12 95.97218086 42.13959786 6.11506479 30.15646347 94.23814082 57.36969732 60.86347654 19.91409937 68.71355704 +14 59.66064371 64.93522126 32.32890474 40.14978233 2.891311477 32.96107785 66.75097997 0.920440008 24.22636581 +5 38.66154396 36.42452677 84.36958354 10.69964404 39.46448065 77.47277323 32.52771639 97.57285906 93.70459001 +36 32.97909046 43.52631758 59.83839323 69.87436805 98.12738555 4.751636512 47.47689026 41.3876903 67.78716531 +89 83.25413765 7.549367861 20.50592254 0.349459671 73.89946997 31.40388713 4.366449277 38.84340215 95.44116332 +965 71.74909204 40.82129731 21.73719426 32.67826786 93.7897543 92.54811762 57.16246361 98.97950241 38.61134734 +11 40.10030753 0.619259961 89.65946872 82.98278412 5.022064589 35.6513286 91.42743566 1.293400215 95.96990548 +2 82.35962922 25.48196256 47.51041934 71.45794006 90.23170047 34.52642435 88.0453423 63.2896977 28.82679247 +456 69.23813955 53.77332434 84.61367461 51.17705197 69.40525804 79.68268428 4.526957668 46.81700494 80.93458495 +68 88.78897848 85.84282896 51.53708603 71.26727107 94.03802875 77.02830433 50.12587615 30.93374275 15.06805862 +90 15.55940741 75.14719125 78.0377742 51.71345723 59.47299196 79.63191036 86.12417779 66.88062611 11.96856299 +23 51.55755631 26.99985192 85.64996749 74.54372275 97.09925394 47.50634659 43.94265016 60.73243208 89.94399967 +44 38.5549221 96.81614325 99.76966908 75.41077107 75.34246484 83.57435092 73.67006881 81.33326567 37.3100164 +567 72.74969753 17.0015972 64.01806032 37.71428705 41.30061893 84.5375675 44.21028268 9.076252458 50.67516692
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/boxplot_test_expDesign.txt Thu May 15 13:01:57 2025 +0000 @@ -0,0 +1,10 @@ +SampleID Condition Replicate Batch +File_1 control 1 1 +File_2 control 2 1 +File_3 control 3 1 +File_4 treatment_A 1 1 +File_5 treatment_A 2 1 +File_6 treatment_A 3 2 +File_7 treatment_B 1 2 +File_8 treatment_B 2 2 +File_9 treatment_B 3 2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/mtcars.txt Thu May 15 13:01:57 2025 +0000 @@ -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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/utils.r Thu May 15 13:01:57 2025 +0000 @@ -0,0 +1,13 @@ +# Function for the data input +load_data <- function(file_name, file_extension) { + if (file_extension == "csv") { + data_input <- read.csv(file_name, check.names = "false") + } else if (file_extension %in% c("tsv", "txt", "tabular")) { + data_input <- read.delim(file_name, sep = "\t", check.names = "false") + } else if (file_extension == "parquet") { + data_input <- arrow::read_parquet(file_name) + } else { + stop("Unsupported file format.") + } + return(data_input) +}