Mercurial > repos > enis > rstudio_bioconductor_it
diff rstudio_bioconductor_it.xml @ 0:8661342f187e draft default tip
planemo upload commit 95e3d6f42b65d4aad0ebe5a027797e3cbf62400c
author | enis |
---|---|
date | Thu, 29 May 2025 14:27:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rstudio_bioconductor_it.xml Thu May 29 14:27:36 2025 +0000 @@ -0,0 +1,143 @@ + +<tool id="rstudio_bioconductor_it" tool_type="interactive" name="RStudio" version="4.5.0+3.21" profile="22.01"> + <icon src="bioconductor.png" /> + <description>R 4.5.0 with Bioconductor 3.21</description> + <requirements> + <container type="docker">bioconductor/galaxy-rstudio:RELEASE_3_21</container> + </requirements> + <entry_points> + <entry_point name="RStudio" requires_domain="False" requires_path_in_header_named="X-RStudio-Root-Path"> + <port>8787</port> + <url>/</url> + </entry_point> + </entry_points> + <environment_variables> + <environment_variable name="HISTORY_ID" strip="True">${__app__.security.encode_id($rstudio.history_id)}</environment_variable> <!-- FIXME: Warning: The use of __app__ is deprecated and will break backward compatibility in the near future --> + <environment_variable name="GALAXY_WEB_PORT">8080</environment_variable> + <environment_variable name="GALAXY_URL">$__galaxy_url__</environment_variable> + <environment_variable name="DEBUG">true</environment_variable> + <environment_variable name="DISABLE_AUTH">true</environment_variable> + <environment_variable name="API_KEY" inject="api_key" /> + </environment_variables> + <inputs> + <param name="input" multiple="true" type="data" format="data" optional="true" label="Include data into the environment"/> + </inputs> + <command><![CDATA[ + #import re + echo "[`date`] - Setting up for RStudio as \$(id)." && + ## Match the container user id to the host user/group id if supplied + if [ -n "\$USERID" ]; then + echo "[`date`] - Setting user id to \$USERID." && + usermod -u "\$USERID" rstudio; + fi && + if [ -n "\$GROUPID" ]; then + echo "[`date`] - Setting user group to \$GROUPID." && + groupmod -g "\$GROUPID" rstudio; + fi && + + ## This is where GalaxyConnector places files copied from Galaxy + mkdir -p /import && + chown rstudio:rstudio /import && + ln -s "/import" /home/rstudio/galaxy_imports && + mkdir -p ./rstudio_outputs && chown rstudio:rstudio ./rstudio_outputs && ln -s "\$PWD/rstudio_outputs" /home/rstudio/galaxy_outputs && + + echo "[`date`] - Creating Rprofile" && + cp '$__tool_directory__/Rprofile.R' /home/rstudio/.Rprofile && + + ## Required because of the above usermod command, but before linking the input files + chown -R rstudio:rstudio /home/rstudio/ && + chown -R rstudio:rstudio /usr/local/lib/R/library && + chown -R rstudio:rstudio /usr/local/lib/R/doc && + + #if $input: + echo "[`date`] - Linking input files to '/home/rstudio/galaxy_inputs/'" && + mkdir -p /home/rstudio/galaxy_inputs/ && + #for $count, $file in enumerate($input): + #set $cleaned_name = str($count + 1) + '_' + re.sub('[^\w\-\.\s]', '_', str($file.element_identifier)) + echo "[`date`] - Linking '$file' to '/home/rstudio/galaxy_inputs/${cleaned_name}.${file.ext}'" && + ln -sf '$file' '/home/rstudio/galaxy_inputs/${cleaned_name}.${file.ext}' && + #end for + #else + echo "[`date`] - No input files provided, skipping file linking step." && + #end if + + echo "[`date`] - Starting container processes, including RStudio..." && + /init + ]]> + </command> + <outputs> + <data name="rstudio" format="txt" label="RStudio Interactive Tool"></data> + <collection name="output_collection" type="list" label="RStudio outputs"> + <discover_datasets pattern="__name_and_ext__" directory="rstudio_outputs/" assign_primary_output="true" recurse="true"/> + </collection> + </outputs> + <stdio> + <exit_code range="129" level="log" description="User shut down the container." /> + </stdio> + <tests> + <test expect_num_outputs="1"> + <param name="mode" value="previous" /> + <param name="rstudio" value="test.txt" /> + <param name="run_it" value="true" /> + <output name="rstudio" file="test.txt" ftype="txt"/> + </test> + </tests> + <help><![CDATA[ +The RStudio Interactive Tool in Galaxy provides a user-friendly interface +for conducting statistical analysis, visualization, and scripting using the +R programming language. This tool is ideal for bioinformatics workflows +involving data exploration, statistical modeling, and custom script +development within the Galaxy ecosystem. + +Use Cases +--------- +- Exploratory data analysis +- Custom script development +- Genomic and transcriptomic data visualization +- Statistical modeling and hypothesis testing + +Galaxy Integration Functions +---------------------------- + +To facilitate seamless data transfer between RStudio and Galaxy, the +following built-in functions are available: + +Before launching the tool, you can select datasets from your history to include +in the RStudio environment. This allows you to work with your data directly +within RStudio without needing to manually transfer files. All files will be +located in the `~/galaxy_inputs/` directory. Note that files +mapped from a Galaxy history into RStudio like this are read only. + +Any files that you store in the `~/galaxy_outputs/` directory will be +automatically transferred back to Galaxy when you finish your session and stop +the RStudio Interactive Tool. + +In addition, you can use the following functions within your R session to +facilitate interactive data transfer. All imported files will be located in the +`~/galaxy_imports` directory. + +**gx_get(history_dataset_number)** – Loads a dataset from your +Galaxy history into the R environment. Example: + +.. code-block:: r + + gx_get(1) + df <- read.csv("~/galaxy_imports/1") + head(df) + +**gx_put("file_name", ["file_type"])** – Saves an R object as a +new dataset in your Galaxy history. Example: + +.. code-block:: r + + gx_put("/home/rstudio/output.csv") + +**gx_save("session_name")** – Saves your R script to Galaxy for +reproducibility. Example: + +.. code-block:: r + + gx_save("analysis_script.R") + + ]]></help> +</tool>