--- title: "Bio Pipeline Usage" author: "Dario Righelli" date: "`r Sys.Date()`" output: BiocStyle::html_document: toc: true vignette: > %\VignetteEncoding{UTF-8} editor_options: chunk_output_type: console --- ```{r setup, include = FALSE} knitr::opts_chunk$set( collapse = FALSE, comment = "#>", eval=TRUE ) ``` # Description This vignettes will guide you throught a tipycal usage of the **easyreporting** package, while performing a simplified bioinformatics analysis workflow. # Requirements For the usage you just need to load the **easyreporting** package, which will load the **rmarkdown** and **tools** packages. ```{r, eval=FALSE} if(!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("easyreporting") ``` ```{r} library("easyreporting") ``` # easyreporting instance creation For simplicity we setup a project directory path starting from the working directory for our report, but you can just enter any path. The **filenamepath** and the **title** parameters are mandatory, while the **author** paramenter is optional. Once created the **easyreporting** class instance, we can use it into our further code to make other operations. It stores some variables for us, in order to not be called again during next opreations. For example the name and the path of the report, the type of report and the general rmarkdown options of the document. ```{r} proj.path <- file.path(tempdir(), "bioinfo_report") bioEr <- easyreporting(filenamePath=proj.path, title="bioinfo_report", author=c("Dario Righelli")) ``` # Loading Data For this vignette we previously downloaded an xlsx table from GEO with accession number [*GSE134118*](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE134118). For importing the xls file, we prepared an ad-hoc function called *importData* stored in the *importFunctions.R* file. ```{r} mkdTitle(bioEr, title="Loading Counts Data") mkdCodeChunkComplete(object=bioEr, message=paste0("geneCounts <- importData(sy", "stem.file('extdata/GSE134118_Table_S3.xlsx',", "package='easyreporting'))"), sourceFilesList=system.file("script/importFunctions.R", package="easyreporting")) ``` # Counts exploration In order to explore the counts we can perform a PCA with *plotPCA* function within the *EDASeq* package. To trace this step we again use a *mkdCodeChunkComplete* function, inserting the function call as the message to track. ```{r} mkdTitle(bioEr, title="Plot PCA on count data", level=2) mkdCodeChunkComplete(bioEr, message="EDASeq::plotPCA(as.matrix(geneCounts))") ``` # Differential expression Let's suppose we stored a function for applying edgeR on our counts in an R file. We called the file *geneFunctions.R* and the function *applyEdgeRExample*. It will be easy for us to source the file and to call the function with a single call of easyreporting package. By aid of the *mkdCodeChunkCommented* function we can add a comment preceeding the code chunk. ```{r} mkdTitle(bioEr, "Differential Expression Analysis") mkdCodeChunkCommented(bioEr, codeMsg="degList <- applyEdgeRExample(counts=geneCounts, samples=colnames(geneCounts), contrast='Pleura - Broth')", commentMsg=paste0("As we saw from the PCA, the groups are well separated", ", so we can perform a Differential Expression analysis with edgeR."), sourceFilesList=system.file("script/geneFunctions.R", package="easyreporting")) ``` ## Inspecting DEGs Usually to have a graphical representation of the obtained results we can plot an MD plot by using the *plotMD* function of the *limma* package. Also in this case, we create a new title and a new chunk within the function to call. ```{r} mkdTitle(bioEr, "MD Plot of DEGs", level=2) mkdCodeChunkComplete(bioEr, message="limma::plotMD(degList$test)") ``` # Compiling the report Once finished our analysis it is possible to compile the produced rmarkdown report simply by using the *compile* method. The compile method appends a sessionInfo() to the report to trace all the packages and versions used for the analysis. ```{r} compile(bioEr) ``` # Session Info ```{r} sessionInfo() ```