Skip to content

openbiox/UCSCXenaShiny

Repository files navigation

UCSCXenaShiny

CRAN status lifecycle R-CMD-check check in Biotreasury

UCSCXenaShiny is an R package for interactively exploring UCSC Xena. It is mainly designed to provide a web app (built on the top of {shiny} framework and {UCSCXenaTools} package) for downloading, analyzing and visualizing datasets from UCSC Xena.

Alt

Please cite the following article when you used UCSCXenaShiny in your study:


Shixiang Wang#, Yi Xiong#, Longfei Zhao#, Kai Gu#, Yin Li, Fei Zhao, Jianfeng Li, Mingjie Wang, Haitao Wang, Ziyu Tao, Tao Wu, Yichao Zheng, Xuejun Li, Xue-Song Liu, UCSCXenaShiny: An R/CRAN Package for Interactive Analysis of UCSC Xena Data, Bioinformatics, 2021;, btab561, https://doi.org/10.1093/bioinformatics/btab561.


☁️ Use on cloud

If you don't want to install R and packages locally, or you have no programming experience, try using this tool on Oncoharmony Network (http://shiny.zhoulab.ac.cn/UCSCXenaShiny) or Hiplot ORG platform (https://shiny.hiplot.cn/ucsc-xena-shiny).

🐍 Use with Conda

Name Downloads Version Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms

Install from conda-forge channel with:

conda install -c conda-forge r-ucscxenashiny

It is possible to list all of the versions of r-ucscxenashiny available on your platform with:

conda search r-ucscxenashiny --channel conda-forge

📦 Use with Docker

Docker Image Version (latest by date)

Docker Image Size (latest by date)

Docker Pulls

UCSCXenaShiny has corresponding docker image at https://hub.docker.com/r/shixiangwang/ucscxenashiny/, you can install the latest version with:

docker pull shixiangwang/ucscxenashiny

From v2, docker pull from GitHub ghcr.io registry is also supported, e.g., docker pull ghcr.io/openbiox/ucscxenashiny:master.

All versions can be found at https://hub.docker.com/r/shixiangwang/ucscxenashiny/tags/. To use a specified version (e.g., 2.0.0; latest code commit will auto-build a tag master), run the following command to install:

docker pull shixiangwang/ucscxenashiny:2.0.0
# docker pull shixiangwang/ucscxenashiny:master  # For latest code, unstable

Run the latest stable docker image and keep it at background with:

docker run -d --name xenashiny -p 3838:3838 shixiangwang/ucscxenashiny

Now you should find the Shiny when you open URL http://127.0.0.1:3838 with your web browser. If you deploy the docker in a public (cloud) Linux server, change 127.0.0.1 to the host IP.

For the first time, it may return a failure about 'take a long time to respond', please refresh the web page.

If the application failed to start. Check if the container has installed all dependencies.

docker exec xenashiny Rscript /opt/ext-deps.R

Or you can interactively check the container:

docker exec -it xenashiny /bin/bash

You can manage the deployed container with the following commands:

# Stop the container
docker stop xenashiny
# Start the container
docker start xenashiny

⏬ Manual installation

You can install stable release of UCSCXenaShiny from CRAN with:

install.packages("UCSCXenaShiny")

You can install the development version of UCSCXenaShiny from Github with:

remotes::install_github("openbiox/UCSCXenaShiny")

Or r-universe:

install.packages("UCSCXenaShiny", repos = c("https://openbiox.r-universe.dev", "https://cran.r-project.org"))

Other dependent R packages specific to the Shiny application will be automatically installed when you start with app_run() command. If you failed to install UCSCXenaShiny, please check if the following system dependencies have been properly installed or see Troubleshooting section for specific installation issues.

System dependencies installation

When you use Windows/MacOS, please skip reading this sub-section.

As Linux distributions are very diverse, here we only test the installation of UCSCXenaShiny on common used Ubuntu/CentOS. If you are using other Linux distributions, you need to solve the system dependencies installation problems yourself when you encounter R package installation errors. However, the installation of system dependencies on Ubuntu/CentOS could be very good references.

Please note all commands below are execuated with root.

Ubuntu:

apt update -y && apt install -y libcurl4-openssl-dev libssl-dev libxml2-dev \
	libgmp3-dev libmpfr-dev

CentOS:

yum update -y && yum install -y libcurl-devel openssl-devel libxml2-devel \
	gmp-devel mpfr-devel libjpeg-devel cairo-devel

🔰 Usage

First load package:

library(UCSCXenaShiny)

Start Shiny in your R console (ignore this if you just want to use functions in this package):

app_run()
# At default, the Shiny is running under client mode
# It means the data queried from remote UCSC Xena server will
# be saved to temporary directory determined by R
# If you frequently use this tool or deploy this tool as a web service for multiple users
# It is recommended to run it with 'server' mode
# i.e.,
#
# app_run("server")

If you want deploy UCSC Xena Shiny with Shiny Server, please copy App.R and www/ directory under shinyapp. xena.runMode on the top of App.R is recommended to set as "server" instead of "client" (default).

For advanced users, examples for illustrating useful functions to obtain and analyze data are described in vignette.

All exported data and functions are organized at here.

xena.cacheDir and xena.zenodoDir are two options to control where to store data.

e.g.,

xena.cacheDir = "/xena"
xena.zenodoDir = "/xena/datasets"

options(xena.cacheDir = xena.cacheDir, xena.zenodoDir = xena.zenodoDir)

options(xena.runMode = "server")

Option xena.runMode can be used to control the way how the Shiny works. It can be 'client' or 'server'. You can directly set it in app_run().

🎥 Videos

🛠️ Troubleshooting

  1. ERROR: dependencies ‘gmp’, ‘Rmpfr’ are not available for package ‘PMCMRplus’ or ERROR: dependency ‘pairwiseComparisons’ is not available for package ‘ggstatsplot’.

    Your operating system lacks gmp and Rmpfr development libraries.

    # Ubuntu
    apt install -y libgmp3-dev libmpfr-dev
    # CentOS
    yum install -y gmp-devel mpfr-devel
  2. installation of package ‘gridtext’ had non-zero exit status with error info grid-renderer.h:61:94: error: no matching function for call to ‘Rcpp::Vector<10, Rcpp::PreserveStorage>::Vector(int, bool&, const GraphicsContext&)’.

    You have an older C++ version which cannot support C++11 features. This error seems only happen on CentOS. Install a newer C++ and set it as default compiler for R would fix this problem.

    yum install centos-release-scl
    yum install devtoolset-9
    # If you use your non-root account to install packages, 
    # change /root to /home/your_id in the following command
    mkdir -p /root/.R
    vi /root/.R/Makevars 

    Append content to the openning file.

    CXX11=/opt/rh/devtoolset-9/root/usr/bin/g++ -std=c++11
  3. installation of package ‘nloptr’ had non-zero exit status with error info libtool: link: ERROR: no information for variable 'AR' cru.

    The latest version of nloptr can only support R>=4.0. When you are using R3.6 or below would have this issue. So install an older version in R console can fix this.

    packageurl <- "https://cran.r-project.org/src/contrib/Archive/nloptr/nloptr_1.2.1.tar.gz"
    
    install.packages(packageurl, repos=NULL, type="source")

    Reference: https://stackoverflow.com/questions/62900525/install-lme4-from-cran-on-ubuntu

  4. package ‘pacman’ is not available or similar.

    Install it by hand in R console.

    install.packages("pacman")
  5. there is no package called ‘shinythemes’ or similar.

    Install it by hand in R cosole.

    install.packages("shinythemes")
  6. Install package gganatogram failed or similar.

    Install it by hand in R cosole.

    if (!requireNamespace("gganatogram")) {
       library(remotes)
       tryCatch(
          remotes::install_github("jespermaag/gganatogram"),
          error = function(e) {
             remotes::install_git("https://gitee.com/XenaShiny/gganatogram")
          }
       )
    }
  7. Install package ggradar failed or similar.

    Install it by hand in R cosole.

    if (!requireNamespace("ggradar")) {
       library(remotes)
       tryCatch(
          remotes::install_github("ricardo-bion/ggradar"),
          error = function(e) {
             remotes::install_git("https://gitee.com/XenaShiny/ggradar")
          }
       )
    }

✍️ Author

📃 LICENSE

GPLv3 © Openbiox