Note: the most recent version of this tutorial can be found here.

Note: if you use systemPipeR 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.

1 Workflow templates

The intended way of running sytemPipeR workflows is via *.Rmd files, which can be executed either line-wise in interactive mode or with a single command from R or the command-line. This way comprehensive and reproducible analysis reports can be generated in PDF or HTML format in a fully automated manner by making use of the highly functional reporting utilities available for R. The following shows how to execute a workflow (e.g., systemPipeRNAseq.Rmd) from the command-line.

Rscript -e "rmarkdown::render('systemPipeRNAseq.Rmd')"

Templates for setting up custom project reports are provided as *.Rmd files by the helper package systemPipeRdata and in the vignettes subdirectory of systemPipeR. The corresponding HTML of these report templates are available here: systemPipeRNAseq, systemPipeRIBOseq, systemPipeChIPseq and systemPipeVARseq. To work with *.Rmd files efficiently, basic knowledge of knitr and Latex or R Markdown v2 is required.

1.1 Directory Structure

The working environment of the sample data loaded in the previous step contains the following pre-configured directory structure. Directory names are indicated in green. Users can change this structure as needed, but need to adjust the code in their workflows accordingly.

  • workflow/ (e.g. rnaseq/)
    • This is the root directory of the R session running the workflow.
    • Run script ( *.Rmd) 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 non-CWL parameter files such as: *.param, *.tmpl and *.run.sh. These files are only required for backwards compatibility to run old workflows using the previous custom command-line interface.
        • param/cwl/: This subdirectory stores all the CWL parameter files. To organize workflows, each can have its own subdirectory, where all CWL param and input.yml files need to be in the same subdirectory.
      • data/
        • FASTQ files
        • FASTA file of reference (e.g. reference genome)
        • Annotation files
        • etc.
      • results/
        • Analysis results are usually written to this directory, including: alignment, variant and peak files (BAM, VCF, BED); tabular result files; and image/plot files
        • Note, the user has the option to organize results files for a given sample and analysis step in a separate subdirectory.

The following parameter files are included in each workflow template:

  1. targets.txt: initial one provided by user; downstream targets_*.txt files are generated automatically
  2. *.param/cwl: defines parameter for input/output file operations, e.g.:
    • hisat2-se/hisat2-mapping-se.cwl
    • hisat2-se/hisat2-mapping-se.yml
  3. *_run.sh: optional bash scripts
  4. Configuration files for computer cluster environments (skip on single machines):
    • .batchtools.conf.R: defines the type of scheduler for batchtools pointing to template file of cluster, and located in user’s home directory
    • *.tmpl: specifies parameters of scheduler used by a system, e.g. Torque, SGE, Slurm, etc.

2 RNA-Seq Workflow

This workflow demonstrates how to use various utilities for building and running automated end-to-end analysis workflows for RNA-Seq data.

The full workflow can be found here: HTML, .Rmd, and .R.

2.1 Loading package and workflow template

Load the RNA-Seq sample workflow into your current working directory.

library(systemPipeRdata)
genWorkenvir(workflow = "rnaseq")
setwd("rnaseq")

2.2 Run workflow

Next, run the chosen sample workflow systemPipeRNAseq (.Rmd) by executing from the command-line make -B within the rnaseq directory. Alternatively, one can run the code from the provided *.Rmd template file from within R interactively.

Workflow includes following steps:

  1. Read preprocessing
    • Quality filtering (trimming)
    • FASTQ quality report
  2. Alignments: HISAT2 (or any other RNA-Seq aligner)
  3. Alignment stats
  4. Read counting
  5. Sample-wise correlation analysis
  6. Analysis of differentially expressed genes (DEGs)
  7. GO term enrichment analysis
  8. Gene-wise clustering

3 ChIP-Seq Workflow

This workflow demonstrates how to use various utilities for building and running automated end-to-end analysis workflows for ChIP-Seq data.

The full workflow can be found here: HTML, .Rmd, and .R.

3.1 Loading package and workflow template

Load the ChIP-Seq sample workflow into your current working directory.

library(systemPipeRdata)
genWorkenvir(workflow = "chipseq")
setwd("chipseq")

3.2 Run workflow

Next, run the chosen sample workflow systemPipeChIPseq (.Rmd) by executing from the command-line make -B within the chipseq directory. Alternatively, one can run the code from the provided *.Rmd template file from within R interactively.

Workflow includes following steps:

  1. Read preprocessing
    • Quality filtering (trimming)
    • FASTQ quality report
  2. Alignments: Bowtie2 or rsubread
  3. Alignment stats
  4. Peak calling: MACS2, BayesPeak
  5. Peak annotation with genomic context
  6. Differential binding analysis
  7. GO term enrichment analysis
  8. Motif analysis

4 VAR-Seq Workflow

This workflow demonstrates how to use various utilities for building and running automated end-to-end analysis workflows for VAR-Seq data.

The full workflow can be found here: HTML, .Rmd, and .R.

4.1 Loading package and workflow template

Load the VAR-Seq sample workflow into your current working directory.

library(systemPipeRdata)
genWorkenvir(workflow = "varseq")
setwd("varseq")

4.2 Run workflow

Next, run the chosen sample workflow systemPipeVARseq (.Rmd) by executing from the command-line make -B within the varseq directory. Alternatively, one can run the code from the provided *.Rmd template file from within R interactively.

Workflow includes following steps:

  1. Read preprocessing
    • Quality filtering (trimming)
    • FASTQ quality report
  2. Alignments: gsnap, bwa
  3. Variant calling: VariantTools, GATK, BCFtools
  4. Variant filtering: VariantTools and VariantAnnotation
  5. Variant annotation: VariantAnnotation
  6. Combine results from many samples
  7. Summary statistics of samples

5 Ribo-Seq Workflow

This workflow demonstrates how to use various utilities for building and running automated end-to-end analysis workflows for RIBO-Seq data.

The full workflow can be found here: HTML, .Rmd, and .R.

5.1 Loading package and workflow template

Load the RIBO-Seq sample workflow into your current working directory.

library(systemPipeRdata)
genWorkenvir(workflow = "riboseq")
setwd("riboseq")

5.2 Run workflow

Next, run the chosen sample workflow systemPipeRIBOseq (.Rmd) by executing from the command-line make -B within the ribseq directory. Alternatively, one can run the code from the provided *.Rmd template file from within R interactively.

Workflow includes following steps:

  1. Read preprocessing
    • Adaptor trimming and quality filtering
    • FASTQ quality report
  2. Alignments: HISAT2 (or any other RNA-Seq aligner)
  3. Alignment stats
  4. Compute read distribution across genomic features
  5. Adding custom features to workflow (e.g. uORFs)
  6. Genomic read coverage along transcripts
  7. Read counting
  8. Sample-wise correlation analysis
  9. Analysis of differentially expressed genes (DEGs)
  10. GO term enrichment analysis
  11. Gene-wise clustering
  12. Differential ribosome binding (translational efficiency)

6 Version information

sessionInfo()
## R version 4.0.2 (2020-06-22)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 18.04.4 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.12-bioc/R/lib/libRblas.so
## LAPACK: /home/biocbuild/bbs-3.12-bioc/R/lib/libRlapack.so
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats4    parallel  stats     graphics  grDevices utils     datasets 
## [8] methods   base     
## 
## other attached packages:
##  [1] DESeq2_1.29.6               magrittr_1.5               
##  [3] batchtools_0.9.13           ape_5.4                    
##  [5] ggplot2_3.3.2               systemPipeR_1.23.4         
##  [7] ShortRead_1.47.2            GenomicAlignments_1.25.3   
##  [9] SummarizedExperiment_1.19.6 DelayedArray_0.15.6        
## [11] matrixStats_0.56.0          Matrix_1.2-18              
## [13] Biobase_2.49.0              BiocParallel_1.23.2        
## [15] Rsamtools_2.5.3             Biostrings_2.57.2          
## [17] XVector_0.29.3              GenomicRanges_1.41.5       
## [19] GenomeInfoDb_1.25.8         IRanges_2.23.10            
## [21] S4Vectors_0.27.12           BiocGenerics_0.35.4        
## [23] BiocStyle_2.17.0           
## 
## loaded via a namespace (and not attached):
##   [1] colorspace_1.4-1         rjson_0.2.20             hwriter_1.3.2           
##   [4] ellipsis_0.3.1           farver_2.0.3             bit64_0.9-7             
##   [7] AnnotationDbi_1.51.1     codetools_0.2-16         splines_4.0.2           
##  [10] geneplotter_1.67.0       knitr_1.29               jsonlite_1.7.0          
##  [13] annotate_1.67.0          GO.db_3.11.4             dbplyr_1.4.4            
##  [16] png_0.1-7                pheatmap_1.0.12          graph_1.67.1            
##  [19] BiocManager_1.30.10      compiler_4.0.2           httr_1.4.1              
##  [22] GOstats_2.55.0           backports_1.1.8          assertthat_0.2.1        
##  [25] limma_3.45.8             formatR_1.7              htmltools_0.5.0         
##  [28] prettyunits_1.1.1        tools_4.0.2              gtable_0.3.0            
##  [31] glue_1.4.1               GenomeInfoDbData_1.2.3   Category_2.55.0         
##  [34] dplyr_1.0.0              rsvg_2.1                 rappdirs_0.3.1          
##  [37] V8_3.2.0                 Rcpp_1.0.5               vctrs_0.3.1             
##  [40] nlme_3.1-148             debugme_1.1.0            rtracklayer_1.49.3      
##  [43] xfun_0.15                stringr_1.4.0            lifecycle_0.2.0         
##  [46] XML_3.99-0.4             edgeR_3.31.4             zlibbioc_1.35.0         
##  [49] scales_1.1.1             BSgenome_1.57.4          VariantAnnotation_1.35.3
##  [52] hms_0.5.3                RBGL_1.65.0              RColorBrewer_1.1-2      
##  [55] yaml_2.2.1               curl_4.3                 memoise_1.1.0           
##  [58] biomaRt_2.45.2           latticeExtra_0.6-29      stringi_1.4.6           
##  [61] RSQLite_2.2.0            genefilter_1.71.0        checkmate_2.0.0         
##  [64] GenomicFeatures_1.41.2   DOT_0.1                  rlang_0.4.7             
##  [67] pkgconfig_2.0.3          bitops_1.0-6             evaluate_0.14           
##  [70] lattice_0.20-41          purrr_0.3.4              labeling_0.3            
##  [73] bit_1.1-15.2             tidyselect_1.1.0         GSEABase_1.51.1         
##  [76] AnnotationForge_1.31.2   bookdown_0.20            R6_2.4.1                
##  [79] magick_2.4.0             generics_0.0.2           base64url_1.4           
##  [82] DBI_1.1.0                pillar_1.4.6             withr_2.2.0             
##  [85] survival_3.2-3           RCurl_1.98-1.2           tibble_3.0.3            
##  [88] crayon_1.3.4             BiocFileCache_1.13.0     rmarkdown_2.3           
##  [91] jpeg_0.1-8.1             progress_1.2.2           locfit_1.5-9.4          
##  [94] grid_4.0.2               data.table_1.12.8        blob_1.2.1              
##  [97] Rgraphviz_2.33.0         digest_0.6.25            xtable_1.8-4            
## [100] brew_1.0-6               openssl_1.4.2            munsell_0.5.0           
## [103] askpass_1.1

7 Funding

This project is funded by NSF award ABI-1661152.

8 References