view 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 source


<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>