---
title: "_systemPipeRdata_: NGS workflow templates and sample data"
author: "Author: Daniela Cassol (danielac@ucr.edu) and Thomas Girke (thomas.girke@ucr.edu)"
date: "Last update: `r format(Sys.time(), '%d %B, %Y')`"
output:
BiocStyle::html_document:
toc_float: true
code_folding: show
BiocStyle::pdf_document: default
package: systemPipeRdata
vignette: |
%\VignetteEncoding{UTF-8}
%\VignetteIndexEntry{systemPipeRdata: NGS workflow templates and sample data}
%\VignetteEngine{knitr::rmarkdown}
fontsize: 14pt
bibliography: bibtex.bib
---
```{css, echo=FALSE}
pre code {
white-space: pre !important;
overflow-x: scroll !important;
word-break: keep-all !important;
word-wrap: initial !important;
}
```
```{r style, echo = FALSE, results = 'asis'}
BiocStyle::markdown()
options(width=60, max.print=1000)
knitr::opts_chunk$set(
eval=as.logical(Sys.getenv("KNITR_EVAL", "TRUE")),
cache=as.logical(Sys.getenv("KNITR_CACHE", "TRUE")),
tidy.opts=list(width.cutoff=60), tidy=TRUE)
```
```{r setup, echo=FALSE, messages=FALSE, warnings=FALSE}
suppressPackageStartupMessages({
library(systemPipeR)
library(systemPipeRdata)
library(BiocGenerics)
})
```
**Note:** the most recent version of this vignette can be found here and a short overview slide show [here](https://htmlpreview.github.io/?https://github.com/tgirke/systemPipeR/blob/master/inst/extdata/slides/systemPipeRslides.html).
**Note:** if you use _`systemPipeR`_ and _`systemPipeRdata`_ in published research, please cite:
Backman, T.W.H and Girke, T. (2016). *systemPipeR*: NGS Workflow and Report Generation Environment. *BMC Bioinformatics*, 17: 388. [10.1186/s12859-016-1241-0](https://doi.org/10.1186/s12859-016-1241-0).
# Introduction
[_`systemPipeRdata`_](https://github.com/tgirke/systemPipeRdata) is a helper package to generate with a single command NGS workflow templates that are intended to be used by its parent package [_`systemPipeR`_](http://www.bioconductor.org/packages/devel/bioc/html/systemPipeR.html) [@H_Backman2016-bt]. The latter is an environment for building *end-to-end* analysis pipelines with automated report generation for next generation sequence (NGS) applications such as RNA-Seq, Ribo-Seq, ChIP-Seq, VAR-Seq and many others. The directory structure of the workflow templates and the sample data used by _`systemPipeRdata`_ are described [here](http://bioconductor.org/packages/release/bioc/vignettes/systemPipeR/inst/doc/systemPipeR.html#load-sample-data-and-workflow-templates).
# Getting Started
## Installation
The R software for using _`systemPipeRdata`_ can be downloaded from [CRAN](http://cran.at.r-project.org). The _`systemPipeRdata`_ package can be installed from within R as follows:
```{r install, eval=FALSE}
if (!requireNamespace("BiocManager", quietly=TRUE))
install.packages("BiocManager")
BiocManager::install("systemPipeRdata") # Installs from Bioconductor once
# available there
BiocManager::install("tgirke/systemPipeR", build_vignettes=TRUE,
dependencies=TRUE) # Installs from github
```
## Loading package and documentation
```{r load_systemPipeRdata, eval=TRUE}
library("systemPipeRdata") # Loads the package
```
```{r documentation_systemPipeRdata, eval=FALSE}
library(help="systemPipeRdata") # Lists package info
vignette("systemPipeRdata") # Opens vignette
```
## Generate workflow template
Load one of the available NGS workflows into your current working directory. The following does this for the _`varseq`_ template. The name of the resulting workflow directory can be specified under the _`mydirname`_ argument. The default _`NULL`_ uses the name of the chosen workflow. An error is issued if a directory of the same name and path exists already. Besides, it is possible to choose different version of the workflow template. Please check the available options [here](https://github.com/tgirke/systemPipeRdata/tree/master/inst/extdata/workflows), or provide the download URL to your template. The URL can be specified under _`url`_ argument and the file name in the _`urlname`_ argument. The default _`NULL`_ copies the current version available in the [systemPipeRdata](https://github.com/tgirke/systemPipeRdata/tree/master/inst/extdata/workflows).
```{r generate_workenvir, eval=FALSE}
genWorkenvir(workflow="varseq", mydirname=NULL, url=NULL, urlname=NULL)
setwd("varseq")
```
On Linux and OS X systems the same can be achieved from the command-line of a terminal with the following commands.
```{bash generate_workenvir_from_shell, eval=FALSE}
$ Rscript -e "systemPipeRdata::genWorkenvir(workflow='varseq', mydirname=NULL, url=NULL, urlname=NULL)"
```
The workflow templates generated by _`genWorkenvir`_ contain the following preconfigured directory structure:
* _**workflow/**_ (_e.g._ _rnaseq/_)
+ This is the directory of the R session running the workflow.
+ Run script ( _\*.Rmd_ or _\*.Rnw_) and sample annotation (_targets.txt_) files are located here.
+ Note, this directory can have any name (_e.g._ _**rnaseq**_, _**varseq**_). Changing its name does not require any modifications in the run script(s).
+ Important subdirectories:
+ _**param/**_
+ Stores parameter files such as: _\*.param_, _\*.tmpl_ and _\*\_run.sh_.
+ _**data/**_
+ FASTQ samples
+ Reference FASTA file
+ Annotations
+ etc.
+ _**results/**_
+ Alignment, variant and peak files (BAM, VCF, BED)
+ Tabular result files
+ Images and plots
+ etc.
## Run workflows
Next, run from within R the chosen sample workflow by executing the code provided in the corresponding _`*.Rmd`_ template file. If preferred the corresponding _`*.Rnw`_ or _`*.R`_ versions can be used instead. Alternatively, one can run an entire workflow from start to finish with a single command by executing from the command-line _`'make -B'`_ within the workflow directory (here _`'varseq'`_). Much more detailed information on running and customizing [_`systemPipeR`_](http://www.bioconductor.org/packages/devel/bioc/html/systemPipeR.html) workflows is available in its overview vignette [here](http://www.bioconductor.org/packages/devel/bioc/vignettes/systemPipeR/inst/doc/systemPipeR.html). This vignette can also be opened from R with the following command.
```{r load_systemPipeR, eval=TRUE}
library("systemPipeR") # Loads systemPipeR which needs to be installed via BiocManager::install() from Bioconductor
```
```{r documentation_systemPipeR, eval=FALSE}
vignette("systemPipeR", package = "systemPipeR")
```
## Return paths to sample data
The location of the sample data provided by _`systemPipeRdata`_ can be returned as a _`list`_.
```{r return_samplepaths, eval=TRUE}
pathList()
```
# Version information
```{r sessionInfo}
sessionInfo()
```
# Funding
This project was supported by funds from the National Institutes of Health (NIH) and the National Science Foundation (NSF).
# References