Name Mode Size
R 040000
inst 040000
man 040000
tests 040000
vignettes 040000
.Rbuildignore 100644 0 kb
.gitignore 100644 0 kb
.travis.yml 100644 1 kb
DESCRIPTION 100644 2 kb
LICENSE 100644 11 kb
NAMESPACE 100644 6 kb
NEWS 100644 7 kb 100644 7 kb 100644 18 kb
_pkgdown.yml 100644 0 kb
appveyor.yml 100644 1 kb
logo.png 100644 13 kb
sevenbridges.Rproj 100644 0 kb
# sevenbridges-r <a href=""><img src="logo.png" align="right" alt="logo" height="128" width="128" /></a> [![Build Status](]( [![AppVeyor Build Status](]( [![BioC](]( [![Downloads](]( [![Docker Pulls](]( [BioC (Release)]( · [BioC (Development)]( · [GitHub (Latest)]( ## Overview sevenbridges-r is an [R]([Bioconductor]( package that provides an interface for the [Seven Bridges Platform]( and [Cancer Genomics Cloud]( public APIs. The Seven Bridges Platform is a cloud-based environment for conducting bioinformatic analyses. It is a central hub for teams to store, analyze, and jointly interpret their bioinformatic data. The Platform co-locates analysis workflows alongside the largest genomic datasets to optimize processing, allocating storage and compute resources on demand. The Cancer Genomics Cloud (CGC), powered by Seven Bridges, is also a cloud-based computation environment. It was built as one of three pilot systems funded by the [National Cancer Institute]( to explore the paradigm of colocalizing massive genomics datasets, like [The Cancer Genome Atlas (TCGA)](, alongside secure and scalable computational resources to analyze them. The CGC makes more than a petabyte of multi-dimensional data available immediately to authorized researchers. You can add your own data to analyze alongside TCGA using predefined analytical workflows or your own tools. ## Table of Contents - [Overview](#overview) - [Installation](#installation) - [Bioconductor - Release Version](#bioconductor---release-version) - [Bioconductor - Development Version](#bioconductor---development-version) - [Latest Development Version](#latest-development-version) - [Features](#features) - [Flexible Authentication Methods](#flexible-authentication-methods) - [Complete API R Client](#complete-api-r-client) - [Task Monitoring](#task-monitoring) - [Batch Tasks Support](#batch-tasks-support) - [Cross Environment Support](#cross-environment-support) - [Common Workflow Language Tool Interface](#common-workflow-language-tool-interface) - [Utilities for Tool and Flow](#utilities-for-tool-and-flow) - [Tutorials](#tutorials) - [IDE Docker Image](#ide-docker-image) - [FAQ](#faq) - [Events](#events) - [Contribute](#contribute) - [Copyright](#copyright) ## Installation ### Bioconductor - Release Version This installation is recommended for most users as it is the most stable. The current release of Bioconductor is version 3.5, and it works with __R version 3.4.0__. Users of older R and Bioconductor versions should upgrade to take advantage of new features. If you do not want to update R, please install the `sevenbridges` package directly from GitHub by following the instructions below. #### Check R version First, check which version of R you are using with the following: ```r R.version.string ``` If you are not running the latest release version of R, install it by the following [these instructions]( If you are using RStudio, close and restart RStudio after installing R. RStudio will detect the new installation. #### Install the package Install the `sevenbridges` package as shown below: ```r source("") biocLite("sevenbridges") ``` ### Bioconductor - Development Version If you are developing tools in the `devel` branch or if you are a user who uses the development version for R and Bioconductor, install the package from the bioconductor `devel` branch. You need to install R-devel first by following the directions in ["Using the 'Devel' Version of Bioconductor"]( After upgrading R, this method of installation is harder. To try the latest features, please install directly from GitHub as next shown below: ```r source("") useDevel(devel = TRUE) biocLite("sevenbridges") ``` To load the package in R, simply call ```r library("sevenbridges") ``` ### Latest Development Version You can always install the latest development version of the `sevenbridges` package from GitHub. We push to the Bioconductor branch (`release`/`devel`) regularly. #### If `devtools` was not installed Installing the `sevenbridges` package requires you have the `devtools` package. If you do not have `devtools`, install it from [CRAN]( ```r install.packages("devtools") ``` You may got an error and need system dependecies for curl and ssl. For example, you probably need to do the following first in order to install `devtools` and in order to build vignettes since you need `pandoc` under Ubuntu. ``` apt-get update apt-get install libcurl4-gnutls-dev libssl-dev pandoc pandoc-citeproc ``` #### If `devtools` is already installed Install latest version of `sevenbridges` from GitHub with the following: ```r source("") biocLite("readr") devtools::install_github( "sbg/sevenbridges-r", repos = BiocInstaller::biocinstallRepos(), build_vignettes = TRUE, dependencies = TRUE) ``` If you have trouble with `pandoc` and do not want to install it, set `build_vignettes = FALSE` to avoid building the vignettes. ## Features The `sevenbridges` package includes the following features: ### Flexible Authentication Methods * Multiple authentication methods support. Direct authentication: ```r # direct authentication a <- Auth(token = "your_token", platform = "cgc") # or use base url a <- Auth(token = "your_token", url = "") ``` Authentication via system environment variables: ```r sbg_set_env(token = "your_token", url = "") a <- Auth(from = "env") ``` Authentication via a user configuration file, collect and manage your credentials for multiple accounts across various Seven Bridges environments: ```r a <- Auth(from = "file", profile_name = "aws-us-tengfei") ``` Please check `vignette("api", package = "sevenbridges")` for technical details about all available authentication methods. ### Complete API R Client * A complete API R client with a user-friendly, object-oriented API with printing and support operations for API requests relating to users, billing, projects, files, apps, and tasks. Short examples are also included, as shown below: ```r # Get a project by pattern-matching its name p <- a$project("demo") # Get a project by its id p <- a$project(id = "tengfei/demo") # Delete files from a project p$file("")$delete() # Upload fies from a folder to a project and include file metadata p$upload("folder_path", metadata = list(platform = "Illumina")) ``` ### Task Monitoring * A task monitoring hook which allows you to add a hook function to specific task statuses as you monitor a task. For example, you can opt to receive an email when the task is completed or specify to download all files produced by the task, as shown below: ```r setTaskHook("completed", function() { tsk$download("~/Downloads") }) tsk$monitor() ``` ### Batch Tasks Support * Batch tasks by metadata and by item. ```r # Batch by item (tsk <- p$task_add( name = "RNA DE report new batch 2", description = "RNA DE analysis report", app =$id, batch = batch(input = "bamfiles"), inputs = list(bamfiles =, design =, gtffile = # Batch by metadata. Note that input files must # have relevant metadata fields specified. (tsk <- p$task_add( name = "RNA DE report new batch 3", description = "RNA DE analysis report", app =$id, batch = batch(input = "fastq", c("metadata.sample_id", "metadata.library_id")), inputs = list(bamfiles =, design =, gtffile = ``` ### Cross Environment Support * Cross-platform support for Seven Bridges environments, such as [Cancer Genomics Cloud]( or [Seven Bridges Platform]( on either Amazon Web Services or Google Cloud Platform. ### Common Workflow Language Tool Interface * A [Common Workflow Language (CWL)]( Tool interface to directly describe your tool in R, export it to JSON or YAML, or add it to your online project. This package defines a complete set of CWL object, so you can describe tools as follows: ```r library("readr") fd <- fileDef(name = "runif.R", content = read_file(fl)) rbx <- Tool( id = "runif", label = "runif", hints = requirements( docker(pull = "rocker/r-base"), cpu(1), mem(2000)), requirements = requirements(fd), baseCommand = "Rscript runif.R", stdout = "output.txt", inputs = list( input(id = "number", type = "integer", position = 1), input(id = "min", type = "float", position = 2), input(id = "max", type = "float", position = 3)), outputs = output(id = "random", glob = "output.txt")) # output CWL JSON rbx$toJSON(pretty = TRUE) # output CWL YAML rbx$toYAML() ``` ### Utilities for Tool and Flow * Utilities for Tool and Flow, for example ```r # converting a SBG CWL JSON file library("sevenbridges") t1 <- system.file("extdata/app", "tool_star.json", package = "sevenbridges") # convert json file into a Tool object t1 <- convert_app(t1) # shows all input matrix t1$input_matrix() ``` ## Tutorials We maintain 3 different sets of documentation: the sevenbridges-r GitHub repository (latest and most up-to-date), Bioconductor release channel, and Bioconductor development channel. Below, only the GitHub version is linked to provide the latest documentation. For the other versions, please visit [Bioconductor Release version]( or [Bioconductor Development version]( The tutorials below are re-generated regularly as we update the package on GitHub. | Tutorial Title | HTML | Rmd Source | |:--------------------------------------------------|:-----------|:-------------| | Complete Reference for the API R Client | [HTML]( | [Source]( | | Use R on the Cancer Genomics Cloud | [HTML]( | [Source]( | | Create a Docker Container and use Command Line Interface for R | [HTML]( | [Source]( | | Describe and execute Common Workflow Language (CWL) Tools and Workflows in R | [HTML]( | [Source]( | | <a name="ide"/>IDE container: Rstudio and Shiny server and more | [HTML]( | [Source]( | | Browse data on the Cancer Genomics Cloud via the Data Explorer, a SPARQL query, <br />or the Datasets API | [HTML]( | [Source]( | ## IDE Docker Image In the tutorial for [IDE container](#tutorials) above, we built a Docker container locally from which we can launch RStudio and Shiny. To launch RStudio and Shiny Server with the Seven Bridges IDE Docker container, do the following: ```shell docker run -d -p 8787:8787 -p 3838:3838 --name rstudio_shiny_server sevenbridges/sevenbridges-r ``` To mount a file system, you need to use `--privileged` with fuse. ```shell docker run --privileged -d -p 8787:8787 -p 3838:3838 --name rstudio_shiny_server sevenbridges/sevenbridges-r ``` Check out the IP from Docker Machine if you are on a Mac OS. ```bash docker-machine ip default ``` In your browser, you can see where the RStudio server is located from the path `http://<url>:8787/`. For example, if is returned, visit `` for Rstudio. For the Shiny server, each app__ is hosted at `http://<url>:3838/users/<username of rstudio>/<app_dir>` for the Shiny server. For example, an app called `01_hello` owned by user `rstudio` (a default user) has the path `http://<url>:3838/users/rstudio/01_hello/`. To develop your Shiny apps as an Rstudio user, you can login your RStudio server and create a folder in your home folder called `~/ShinyApps`. There, you can develop shiny apps in that folder. For example, you can create an app called `02_text` at `~/ShinyApps/02_text/`. Log into your RStudio at `http://<url>:8787`. Then, try to copy an app to your home folder, as follows: ```r dir.create("~/ShinyApps") file.copy("/usr/local/lib/R/site-library/shiny/examples/01_hello/", "~/ShinyApps/", recursive = TRUE) ``` If you are logged in as user `rstudio`, visit ``. You should be able to see the "hello" example. _Note_: Generic Shiny apps can also be hosted at `http://<url>:3838/` or, for a particular app, at `http://<url>:3838/<app_dir>`. Inside the Docker container, it's hosted under `/srv/shiny-server/`. ## FAQ The best place to ask questions about the `sevenbridges` package is the [mailing list](!forum/sevenbridges-r). - __Q__: Does this package support Seven Bridges' API v1 which was not CWL compatible?<br /> __A__: No. This package only supports API v2 +. For API v1, please check out the [sbgr]( package. Note that API v1 and associated legacy project types will be deprecated eventually. - __Q__: Which version of the Common Workflow Language (CWL) is supported?<br /> __A__: We support draft 2 and are making progress on supporting draft 3. - __Q__: Is there a Python binding for the API?<br /> __A__: Yes, the official Python client is [here]( Recipes and tutorials using the Python bindings are [here]( - __Q__: Why do I get warning messages when I use the API R client?<br /> __A__: The warning only exists in Rstudio and is potentially a bug in Rstudio. To ignore, it use `options(warn = -1)` - __Q__: I still have problems despite dismissing the messages.<br /> __A__: Please try to use the latest package on GitHub or [update installed Bioconductor packages]( This usually includes the most recent bug fixes. ## Events | Time | Event | Location | |:------------------|:--------------------------|:------------------------------| | Jan 12, 2017 | [Genomics in the Cloud - Boston Bioconductor Meetup]( (talk) [[slides](] | Dana-Farber Cancer Institute, Boston, MA | | Sep 12 - 14, 2016 | [Probabilistic Modeling in Genomics]( (poster) | University of Oxford, Oxford, UK | | May 27 - 29, 2016 | [The 9th China-R Conference]( (talk) | Renmin University of China, Beijng, China | | Jun 27 - 30, 2016 | [The R User Conference 2016]( (talk) | Stanford University, Stanford, CA | | Jun 24 - 26, 2016 | [BioC 2016: Where Software and Biology Connect]( (workshop) | Stanford University, Stanford, CA | | Apr 1 - 3, 2016 | [NCI Cancer Genomics Cloud Hackathon]( (tutorial)<br />[[HTML](] [[R Markdown Source](] | Seven Bridges Genomics, Inc., Boston, MA | ## Contribute Please file bug reports/feature requests on the [issue page](, or create pull requests [here]( Contributors should read the [Seven Bridges Notice to Contributors]( and sign the [Seven Bridges Contributor Agreement](*) before submitting a pull request. ## Copyright © 2017 Seven Bridges Genomics, Inc. All rights reserved. This project is licensed under the terms of the [Apache License 2.0](LICENSE).