Last updated: 2019-04-03

workflowr checks: (Click a bullet for more information)
  • R Markdown file: up-to-date

    Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.

  • Environment: empty

    Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

  • Seed: set.seed(20190110)

    The command set.seed(20190110) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

  • Session information: recorded

    Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

  • Repository version: 5870e6e

    Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility. The version displayed above was the version of the Git repository at the time these results were generated.

    Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
    
    Ignored files:
        Ignored:    .DS_Store
        Ignored:    .Rhistory
        Ignored:    .Rproj.user/
        Ignored:    ._.DS_Store
        Ignored:    analysis/cache/
        Ignored:    build-logs/
        Ignored:    data/alevin/
        Ignored:    data/cellranger/
        Ignored:    data/processed/
        Ignored:    data/published/
        Ignored:    output/.DS_Store
        Ignored:    output/._.DS_Store
        Ignored:    output/03-clustering/selected_genes.csv.zip
        Ignored:    output/04-marker-genes/de_genes.csv.zip
        Ignored:    packrat/.DS_Store
        Ignored:    packrat/._.DS_Store
        Ignored:    packrat/lib-R/
        Ignored:    packrat/lib-ext/
        Ignored:    packrat/lib/
        Ignored:    packrat/src/
    
    Untracked files:
        Untracked:  DGEList.Rds
        Untracked:  output/90-methods/package-versions.json
        Untracked:  scripts/build.pbs
    
    Unstaged changes:
        Modified:   analysis/_site.yml
        Modified:   output/01-preprocessing/droplet-selection.pdf
        Modified:   output/01-preprocessing/parameters.json
        Modified:   output/01-preprocessing/selection-comparison.pdf
        Modified:   output/01B-alevin/alevin-comparison.pdf
        Modified:   output/01B-alevin/parameters.json
        Modified:   output/02-quality-control/qc-thresholds.pdf
        Modified:   output/02-quality-control/qc-validation.pdf
        Modified:   output/03-clustering/cluster-comparison.pdf
        Modified:   output/03-clustering/cluster-validation.pdf
        Modified:   output/04-marker-genes/de-results.pdf
    
    
    Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
Expand here to see past versions:
    File Version Author Date Message
    Rmd 5870e6e Luke Zappia 2019-04-03 Adjust figures and fix names
    Rmd 33ac14f Luke Zappia 2019-03-20 Tidy up website
    html 33ac14f Luke Zappia 2019-03-20 Tidy up website
    html 2693e97 Luke Zappia 2019-03-05 Add methods page


# Presentation
library("glue")
library("knitr")

# JSON
library("jsonlite")

# Tidyverse
library("tidyverse")
dir.create(here::here("output", DOCNAME), showWarnings = FALSE)

write_bib(c("base", "SingleCellExperiment", "cowplot", "UpSetR", "ggforce",
            "gridExtra", "tidyverse", "dplyr", "tidyr", "purrr",
            "LoomExperiment", "workflowr", "knitr", "rmarkdown"),
          file = here::here("output", DOCNAME, "packages.bib"))
docs <- list.dirs(here::here("output"), full.names = FALSE)[-1]

params <- map(docs, function(doc) {
    out <- tryCatch(
        {
            table <- suppressWarnings(
                read_json(here::here(glue("output/{doc}/parameters.json")),
                          simplifyVector = TRUE)
            )
            p_list <- table$Value %>% setNames(table$Parameter)
        },
        error = function(e) {
            message(glue("{doc} parameters file not found"))

            return(list())
        }
    )    
    
    return(out)
})

names(params) <- str_remove(docs, "[0-9A-Z]+\\-")
names(params) <- names(params) %>%
    str_replace("preprocessing", "pre") %>%
    str_replace("quality-control", "qc") %>%
    str_replace("clustering", "clust") %>%
    str_replace("marker-genes", "markers")

versions <- list(
    biomaRt        = packageVersion("biomaRt"),
    cellranger     = "3.0.1",
    cellranger_ref = "3.0.0",
    clustree       = packageVersion("clustree"),
    cowplot        = packageVersion("cowplot"),
    dplyr          = packageVersion("dplyr"),
    DropletUtils   = packageVersion("DropletUtils"),
    edgeR          = packageVersion("edgeR"),
    ensembl        = "93",
    ggforce        = packageVersion("ggforce"),
    ggplot2        = packageVersion("ggplot2"),
    gridExtra      = packageVersion("gridExtra"),
    knitr          = packageVersion("knitr"),
    LoomExperiment = packageVersion("LoomExperiment"),
    M3Drop         = packageVersion("M3Drop"),
    pandoc         = rmarkdown::pandoc_version(),
    purrr          = packageVersion("purrr"),
    python         = "3.6.8",
    R              = str_extract(R.version.string, "[0-9\\.]+"),
    rmarkdown      = packageVersion("rmarkdown"),
    salmon         = "0.12.0",
    scanpy         = "1.4",
    scater         = packageVersion("scater"),
    SCE            = packageVersion("SingleCellExperiment"),
    scran          = packageVersion("scran"),
    Seurat         = packageVersion("Seurat"),
    tidyr          = packageVersion("tidyr"),
    tidyverse      = packageVersion("tidyverse"),
    UpSetR         = packageVersion("UpSetR"),
    velocyto.py    = "0.17.16",
    velocyto.R     = packageVersion("velocyto.R"),
    viridis        = packageVersion("viridis"),
    workflowr      = packageVersion("workflowr")
)

Pre-processing

The Cell Ranger pipeline (v3.0.1) (Zheng et al. 2017) was used to perform sample demultiplexing, barcode processing and single-cell gene counting. Briefly,samples were demultiplexed to produce a pair of FASTQ files for each sample. Reads containing sequence information were aligned using the reference provided with Cell Ranger (v3.0.0) based on the GRCh38 reference genome and ENSEMBL gene annotation (v93). PCR duplicates were removed by selecting unique combinations of cell barcodes, unique molecular identifiers and gene ids with the final results being a gene expression matrix that was used for further analysis. The three samples were aggregated using Cell Ranger with no normalisation and treated as a single dataset containing 945038 droplets. The R statistical programming language (v3.5.0) (R Core Team 2018) was used for further analysis. Count data was read into R and used to construct a SingleCellExperiment object (v1.4.1) (A. Lun and Risso 2019).

Droplet selection

The droplet selection method in this version of Cell Ranger identified 8291 cell containing droplets. This is more than the traditional Cell Ranger approach based on a simple threshold on total counts which identified 7006 cells. The EmptyDrops method (A. T. L. Lun et al. 2019) available in the DropletUtils package (v1.2.2) was also applied. Droplets with less than 100 total counts were used to construct the ambient RNA profile and an FDR threshold of less than 0.01 was used to select 9858 droplets. The droplets selected by either the Cell Ranger v3 method or EmptyDrops were kept giving a dataset with 10002 cells. Gene annotation information was added from BioMart (Smedley et al. 2015) using the biomaRt package (v2.38.0) (Durinck et al. 2005) and cells were assigned cell cycle scores using the cyclone (Scialdone et al. 2015) function in the scran package (v1.10.2) (A. T. L. Lun, Bach, and Marioni 2016).

Alevin

An alternative quantification was performed using the alevin method (Srivastava et al. 2019) available as part of the salmon software package (v0.12.0) (Patro et al. 2017). This produced a dataset with 10423 cells and 37247 genes.

Quality control

The scater package (v1.10.1) (McCarthy et al. 2017) was used to produce a series of diagnostic quality control plots and select thresholds for filtering. Cells were removed from the dataset if they had \(\log_{10}\) total counts less than 2.309 (4 MADs from the median), \(\log_{10}\) total features expressed less than 2.3659 (4 MADs) or more than 8.2411 percent of counts (4 MADs) assigned to mitochondrial genes. An automated filtering method method available in scater that detects outliers in a PCA of cells based on technical factors was also performed for comparison but not used for filtering. After filtering doublet scores for each cell were calculated using the simulation-based method available in scran and cells with a score greater than 1.5572 were removed. A minimal filter was used to remove genes that did not have at least 1 count in at least 2 cells. After quality control the dataset had 8059 cells and 22739 genes with a median of 7838 counts per cell and a median of 2506 genes expressed.

Clustering

Gene selection

Two methods were used to select genes to use for clustering. The default selection method in the Seurat package (v2.3.4) (Satija et al. 2015) uses thresholds on mean expression (between 0.0125 and 3.5) and dispersion (greater than 1), which selected 2457 genes. The M3Drop (v3.10.3) (T. S. Andrews and Hemberg 2018) method was also used to test for genes with significantly more zero counts than expected and 1952 genes with an adjusted p-value less than 0.01 were selected. Following comparisions between these two methods the genes identified by M3Drop were used for clustering.

Graph-based clustering

Seurat was used to perform graph-based clustering. PCA was performed using the selected genes and the first 15 principal components were used to construct a shared nearest neighbour graph using the overlap between the 30 nearest neighbours of each cell. Louvain modularity optimisation (Blondel et al. 2008) was used to partition this graph with a resolution parameter between 0 and 1. Clustering tree visualisations (Zappia and Oshlack 2018) were produced using the clustree package (v0.3.0) showing the expression of previously identified marker genes. By inspecting these trees a resolution of 0.4 which chosen which produced 13 clusters. To compare these cluster to those that had been previously published the Jaccard index was calculated between pairs of clusters from each analysis and visualised as a heatmap.

Marker genes

Marker genes for each cluster were identified using edgeR (v3.24.3) (Robinson, McCarthy, and Smyth 2010; McCarthy, Chen, and Smyth 2012). Additional filtering was performed to remove genes with a \(\log_{10}\) maximum average counts in any cluster less than -1.3505. The edgeR negative binomial model was then fitted to the dataset using a design matrix that included the detection rate (scaled proportion of genes expressed in each cell). The quasi-likelihood F-test was used to test cells in one cluster against all other cells. Genes were considered significant markers for a cluster if they had an FDR less than 0.05 and a log foldchange greater than 1. Identities were assigned to each cluster by comparing the detected genes to previously published lists of cell type markers.

Partition-based graph abstraction (PAGA)

Partition-based graph abstraction (PAGA) (Wolf et al. 2019) was performed using the scanpy library (v1.4) (Wolf, Angerer, and Theis 2018) for the Python programming language (v3.6.8). A shared nearest neighbour graph was built using the same parameters as were used by Seurat and connectivity between the Seurat clusters was calculated using the PAGA algorithm. A ForceAtlas2 (Jacomy et al. 2014) layout of the cell graph was calculated based on the PAGA cluster graph. The results of the PAGA analysis were read into R for visualisation.

Cell velocity

The velocyto (v0.17.16) (La Manno et al. 2018) Python program was used to calculate spliced and unspliced count matrices from the aligned reads. The resulting Loom files for each sample were then read into R and merged. The remaining analysis was performed using the velocyto R package (v0.6). Genes were removed from the spliced matrix if they had did not have a mean expression greater than 0.2 in at least one cluster or from the unspliced matrix if they did not have a mean expression greater than 0.05 in at least one cluster. Relative velocity estimates were then calculated for each cell and projected onto reduced dimensional spaces for visualisation.

Other packages

Visualisations and figures were primarily created using the ggplot2 (v3.1.0) (Wickham 2010) and cowplot (v0.9.4) (Wilke 2019) packages using the viridis colour palette (v0.5.1) for continuous data. UpSet plots (Lex et al. 2014) were produced using the UpSetR package (v1.3.3) (Gehlenborg 2017) with help from the gridExtra package (v2.3) (Auguie 2017) and SinaPlots (Sidiropoulos et al. 2018) using the ggforce package (v0.1.3) (Pedersen 2018). Data manipulation was performed using other packages in the tidyverse (v1.2.1) (Wickham 2017) particularly dplyr (v0.7.8) (Wickham et al. 2018), tidyr (v0.7.8) (Wickham and Henry 2018) and purrr (v0.3.0) (Henry and Wickham 2019). Loom files were exported from R using the LoomExperiment package (v1.0.2) (Morgan and Van Twisk 2019). The analysis project was managed using the workflowr (v1.1.1) (Blischak, Carbonetto, and Stephens 2018) package which was also used to produce the publicly available website displaying the analysis code, results and output. Reproducible reports were produced using knitr (v1.21) (Xie 2014; Xie 2016; Xie 2018) and R Markdown (v1.11) (Xie, Allaire, and Grolemund 2018; J. Allaire et al. 2018) and converted to HTML using Pandoc (v1.17.2).

References

Allaire, JJ, Yihui Xie, Jonathan McPherson, Javier Luraschi, Kevin Ushey, Aron Atkins, Hadley Wickham, Joe Cheng, Winston Chang, and Richard Iannone. 2018. Rmarkdown: Dynamic Documents for R. https://CRAN.R-project.org/package=rmarkdown.

Andrews, T S, and Martin Hemberg. 2018. “M3Drop: Dropout-based feature selection for scRNASeq.” Bioinformatics, December. doi:10.1093/bioinformatics/bty1044.

Auguie, Baptiste. 2017. GridExtra: Miscellaneous Functions for “Grid” Graphics. https://CRAN.R-project.org/package=gridExtra.

Blischak, John, Peter Carbonetto, and Matthew Stephens. 2018. Workflowr: A Framework for Reproducible and Collaborative Data Science. https://CRAN.R-project.org/package=workflowr.

Blondel, Vincent D, Jean-Loup Guillaume, Renaud Lambiotte, and Etienne Lefebvre. 2008. “Fast unfolding of communities in large networks.” Journal of Statistical Mechanics 2008 (10). IOP Publishing: P10008. doi:10.1088/1742-5468/2008/10/P10008.

Durinck, Steffen, Yves Moreau, Arek Kasprzyk, Sean Davis, Bart De Moor, Alvis Brazma, and Wolfgang Huber. 2005. “BioMart and Bioconductor: a powerful link between biological databases and microarray data analysis.” Bioinformatics 21 (16): 3439–40. doi:10.1093/bioinformatics/bti525.

Gehlenborg, Nils. 2017. UpSetR: A More Scalable Alternative to Venn and Euler Diagrams for Visualizing Intersecting Sets. https://CRAN.R-project.org/package=UpSetR.

Henry, Lionel, and Hadley Wickham. 2019. Purrr: Functional Programming Tools. https://CRAN.R-project.org/package=purrr.

Jacomy, Mathieu, Tommaso Venturini, Sebastien Heymann, and Mathieu Bastian. 2014. “ForceAtlas2, a continuous graph layout algorithm for handy network visualization designed for the Gephi software.” PloS One 9 (6): e98679. doi:10.1371/journal.pone.0098679.

La Manno, Gioele, Ruslan Soldatov, Amit Zeisel, Emelie Braun, Hannah Hochgerner, Viktor Petukhov, Katja Lidschreiber, et al. 2018. “RNA velocity of single cells.” Nature, August. doi:10.1038/s41586-018-0414-6.

Lex, Alexander, Nils Gehlenborg, Hendrik Strobelt, Romain Vuillemot, and Hanspeter Pfister. 2014. “UpSet: Visualization of Intersecting Sets.” IEEE Transactions on Visualization and Computer Graphics 20 (12): 1983–92. doi:10.1109/TVCG.2014.2346248.

Lun, Aaron T L, Karsten Bach, and John C Marioni. 2016. “Pooling across cells to normalize single-cell RNA sequencing data with many zero counts.” Genome Biology 17 (1): 1–14. doi:10.1186/s13059-016-0947-7.

Lun, Aaron T L, Samantha Riesenfeld, Tallulah Andrews, The Phuong Dao, Tomas Gomes, participants in the 1st Human Cell Atlas Jamboree, and John C Marioni. 2019. “EmptyDrops: distinguishing cells from empty droplets in droplet-based single-cell RNA sequencing data.” Genome Biology 20 (1): 63. doi:10.1186/s13059-019-1662-y.

Lun, Aaron, and Davide Risso. 2019. SingleCellExperiment: S4 Classes for Single Cell Data.

McCarthy, Davis J, Kieran R Campbell, Aaron T L Lun, and Quin F Wills. 2017. “Scater: pre-processing, quality control, normalization and visualization of single-cell RNA-seq data in R.” Bioinformatics 33 (8): 1179–86. doi:10.1093/bioinformatics/btw777.

McCarthy, Davis J, Yunshun Chen, and Gordon K Smyth. 2012. “Differential expression analysis of multifactor RNA-Seq experiments with respect to biological variation.” Nucleic Acids Research 40 (10): 4288–97. doi:10.1093/nar/gks042.

Morgan, Martin, and Daniel Van Twisk. 2019. LoomExperiment: LoomExperiment Container.

Patro, Rob, Geet Duggal, Michael I Love, Rafael A Irizarry, and Carl Kingsford. 2017. “Salmon provides fast and bias-aware quantification of transcript expression.” Nature Methods 14 (4): 417–19. doi:10.1038/nmeth.4197.

Pedersen, Thomas Lin. 2018. Ggforce: Accelerating ’Ggplot2’. https://CRAN.R-project.org/package=ggforce.

R Core Team. 2018. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.

Robinson, Mark D, Davis J McCarthy, and Gordon K Smyth. 2010. “edgeR: a Bioconductor package for differential expression analysis of digital gene expression data.” Bioinformatics 26 (1): 139–40. doi:10.1093/bioinformatics/btp616.

Satija, Rahul, Jeffrey A Farrell, David Gennert, Alexander F Schier, and Aviv Regev. 2015. “Spatial reconstruction of single-cell gene expression data.” Nature Biotechnology 33 (5). Nature Publishing Group: 495–502. doi:10.1038/nbt.3192.

Scialdone, Antonio, Kedar N Natarajan, Luis R Saraiva, Valentina Proserpio, Sarah A Teichmann, Oliver Stegle, John C Marioni, and Florian Buettner. 2015. “Computational assignment of cell-cycle stage from single-cell transcriptome data.” Methods 85 (September): 54–61. doi:10.1016/j.ymeth.2015.06.021.

Sidiropoulos, Nikos, Sina Hadi Sohi, Thomas Lin Pedersen, Bo Torben Porse, Ole Winther, Nicolas Rapin, and Frederik Otzen Bagger. 2018. “SinaPlot: An Enhanced Chart for Simple and Truthful Representation of Single Observations Over Multiple Classes.” Journal of Computational and Graphical Statistics: A Joint Publication of American Statistical Association, Institute of Mathematical Statistics, Interface Foundation of North America 27 (3). Taylor & Francis: 673–76. doi:10.1080/10618600.2017.1366914.

Smedley, Damian, Syed Haider, Steffen Durinck, Luca Pandini, Paolo Provero, James Allen, Olivier Arnaiz, et al. 2015. “The BioMart community portal: an innovative alternative to large, centralized data repositories.” Nucleic Acids Research 43 (W1): W589–98. doi:10.1093/nar/gkv350.

Srivastava, Avi, Laraib Malik, Tom Smith, Ian Sudbery, and Rob Patro. 2019. “Alevin efficiently estimates accurate gene abundances from dscRNA-seq data.” Genome Biology 20 (1): 65. doi:10.1186/s13059-019-1670-y.

Wickham, Hadley. 2010. ggplot2: Elegant Graphics for Data Analysis. Springer New York.

———. 2017. Tidyverse: Easily Install and Load the ’Tidyverse’. https://CRAN.R-project.org/package=tidyverse.

Wickham, Hadley, and Lionel Henry. 2018. Tidyr: Easily Tidy Data with ’Spread()’ and ’Gather()’ Functions. https://CRAN.R-project.org/package=tidyr.

Wickham, Hadley, Romain François, Lionel Henry, and Kirill Müller. 2018. Dplyr: A Grammar of Data Manipulation. https://CRAN.R-project.org/package=dplyr.

Wilke, Claus O. 2019. Cowplot: Streamlined Plot Theme and Plot Annotations for ’Ggplot2’. https://CRAN.R-project.org/package=cowplot.

Wolf, F Alexander, Philipp Angerer, and Fabian J Theis. 2018. “SCANPY: large-scale single-cell gene expression data analysis.” Genome Biology 19 (1): 15. doi:10.1186/s13059-017-1382-0.

Wolf, F Alexander, Fiona K Hamey, Mireya Plass, Jordi Solana, Joakim S Dahlin, Berthold Göttgens, Nikolaus Rajewsky, Lukas Simon, and Fabian J Theis. 2019. “PAGA: graph abstraction reconciles clustering with trajectory inference through a topology preserving map of single cells.” Genome Biology 20 (1): 59. doi:10.1186/s13059-019-1663-x.

Xie, Yihui. 2014. “knitr: A Comprehensive Tool for Reproducible Research in R.” In Implementing Reproducible Research, edited by Victoria Stodden, Friedrich Leisch, and Roger D Peng. CRC Press. https://market.android.com/details?id=book-JcmSAwAAQBAJ.

———. 2016. Dynamic Documents with R and knitr. CRC Press. doi:10.1201/b15166.

———. 2018. Knitr: A General-Purpose Package for Dynamic Report Generation in R. https://CRAN.R-project.org/package=knitr.

Xie, Yihui, J J Allaire, and Garrett Grolemund. 2018. R Markdown: The Definitive Guide. CRC Press LLC. https://market.android.com/details?id=book-j9YyuAEACAAJ.

Zappia, Luke, and Alicia Oshlack. 2018. “Clustering trees: a visualization for evaluating clusterings at multiple resolutions.” GigaScience 7 (7). doi:10.1093/gigascience/giy083.

Zheng, Grace X Y, Jessica M Terry, Phillip Belgrader, Paul Ryvkin, Zachary W Bent, Ryan Wilson, Solongo B Ziraldo, et al. 2017. “Massively parallel digital transcriptional profiling of single cells.” Nature Communications 8 (January): 14049. doi:10.1038/ncomms14049.

Summary

Output files`

This table describes the output files produced by this document. Right click and Save Link As… to download the results.

params <- jsonlite::toJSON(params, pretty = TRUE)
readr::write_lines(params,
                   here::here("output", DOCNAME, "analysis-parameters.json"))

versions <- purrr::map(versions, as.character)
versions <- jsonlite::toJSON(versions, pretty = TRUE)
readr::write_lines(versions,
                   here::here("output", DOCNAME, "package-versions.json"))
dir.create(here::here("output", DOCNAME), showWarnings = FALSE)

knitr::kable(data.frame(
    File = c(
        
    ),
    Description = c(

    )
))

Session information

devtools::session_info()
─ Session info ──────────────────────────────────────────────────────────
 setting  value                       
 version  R version 3.5.0 (2018-04-23)
 os       CentOS release 6.7 (Final)  
 system   x86_64, linux-gnu           
 ui       X11                         
 language (EN)                        
 collate  en_US.UTF-8                 
 ctype    en_US.UTF-8                 
 tz       Australia/Melbourne         
 date     2019-04-03                  

─ Packages ──────────────────────────────────────────────────────────────
 ! package     * version date       lib source        
   assertthat    0.2.0   2017-04-11 [1] CRAN (R 3.5.0)
   backports     1.1.3   2018-12-14 [1] CRAN (R 3.5.0)
   bindr         0.1.1   2018-03-13 [1] CRAN (R 3.5.0)
   bindrcpp      0.2.2   2018-03-29 [1] CRAN (R 3.5.0)
   broom         0.5.1   2018-12-05 [1] CRAN (R 3.5.0)
   callr         3.1.1   2018-12-21 [1] CRAN (R 3.5.0)
   cellranger    1.1.0   2016-07-27 [1] CRAN (R 3.5.0)
   cli           1.0.1   2018-09-25 [1] CRAN (R 3.5.0)
   colorspace    1.4-0   2019-01-13 [1] CRAN (R 3.5.0)
   crayon        1.3.4   2017-09-16 [1] CRAN (R 3.5.0)
   desc          1.2.0   2018-05-01 [1] CRAN (R 3.5.0)
   devtools      2.0.1   2018-10-26 [1] CRAN (R 3.5.0)
   digest        0.6.18  2018-10-10 [1] CRAN (R 3.5.0)
   dplyr       * 0.7.8   2018-11-10 [1] CRAN (R 3.5.0)
   evaluate      0.12    2018-10-09 [1] CRAN (R 3.5.0)
   forcats     * 0.3.0   2018-02-19 [1] CRAN (R 3.5.0)
   fs            1.2.6   2018-08-23 [1] CRAN (R 3.5.0)
   generics      0.0.2   2018-11-29 [1] CRAN (R 3.5.0)
   ggplot2     * 3.1.0   2018-10-25 [1] CRAN (R 3.5.0)
   git2r         0.24.0  2019-01-07 [1] CRAN (R 3.5.0)
   glue        * 1.3.0   2018-07-17 [1] CRAN (R 3.5.0)
   gtable        0.2.0   2016-02-26 [1] CRAN (R 3.5.0)
   haven         2.0.0   2018-11-22 [1] CRAN (R 3.5.0)
   here          0.1     2017-05-28 [1] CRAN (R 3.5.0)
   hms           0.4.2   2018-03-10 [1] CRAN (R 3.5.0)
   htmltools     0.3.6   2017-04-28 [1] CRAN (R 3.5.0)
   httr          1.4.0   2018-12-11 [1] CRAN (R 3.5.0)
   jsonlite    * 1.6     2018-12-07 [1] CRAN (R 3.5.0)
   knitr       * 1.21    2018-12-10 [1] CRAN (R 3.5.0)
 P lattice       0.20-35 2017-03-25 [5] CRAN (R 3.5.0)
   lazyeval      0.2.1   2017-10-29 [1] CRAN (R 3.5.0)
   lubridate     1.7.4   2018-04-11 [1] CRAN (R 3.5.0)
   magrittr      1.5     2014-11-22 [1] CRAN (R 3.5.0)
   memoise       1.1.0   2017-04-21 [1] CRAN (R 3.5.0)
   modelr        0.1.3   2019-02-05 [1] CRAN (R 3.5.0)
   munsell       0.5.0   2018-06-12 [1] CRAN (R 3.5.0)
 P nlme          3.1-137 2018-04-07 [5] CRAN (R 3.5.0)
   pillar        1.3.1   2018-12-15 [1] CRAN (R 3.5.0)
   pkgbuild      1.0.2   2018-10-16 [1] CRAN (R 3.5.0)
   pkgconfig     2.0.2   2018-08-16 [1] CRAN (R 3.5.0)
   pkgload       1.0.2   2018-10-29 [1] CRAN (R 3.5.0)
   plyr          1.8.4   2016-06-08 [1] CRAN (R 3.5.0)
   prettyunits   1.0.2   2015-07-13 [1] CRAN (R 3.5.0)
   processx      3.2.1   2018-12-05 [1] CRAN (R 3.5.0)
   ps            1.3.0   2018-12-21 [1] CRAN (R 3.5.0)
   purrr       * 0.3.0   2019-01-27 [1] CRAN (R 3.5.0)
   R.methodsS3   1.7.1   2016-02-16 [1] CRAN (R 3.5.0)
   R.oo          1.22.0  2018-04-22 [1] CRAN (R 3.5.0)
   R.utils       2.7.0   2018-08-27 [1] CRAN (R 3.5.0)
   R6            2.3.0   2018-10-04 [1] CRAN (R 3.5.0)
   Rcpp          1.0.0   2018-11-07 [1] CRAN (R 3.5.0)
   readr       * 1.3.1   2018-12-21 [1] CRAN (R 3.5.0)
   readxl        1.2.0   2018-12-19 [1] CRAN (R 3.5.0)
   remotes       2.0.2   2018-10-30 [1] CRAN (R 3.5.0)
   rlang         0.3.1   2019-01-08 [1] CRAN (R 3.5.0)
   rmarkdown     1.11    2018-12-08 [1] CRAN (R 3.5.0)
   rprojroot     1.3-2   2018-01-03 [1] CRAN (R 3.5.0)
   rstudioapi    0.9.0   2019-01-09 [1] CRAN (R 3.5.0)
   rvest         0.3.2   2016-06-17 [1] CRAN (R 3.5.0)
   scales        1.0.0   2018-08-09 [1] CRAN (R 3.5.0)
   sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 3.5.0)
   stringi       1.2.4   2018-07-20 [1] CRAN (R 3.5.0)
   stringr     * 1.3.1   2018-05-10 [1] CRAN (R 3.5.0)
   testthat      2.0.1   2018-10-13 [4] CRAN (R 3.5.0)
   tibble      * 2.0.1   2019-01-12 [1] CRAN (R 3.5.0)
   tidyr       * 0.8.2   2018-10-28 [1] CRAN (R 3.5.0)
   tidyselect    0.2.5   2018-10-11 [1] CRAN (R 3.5.0)
   tidyverse   * 1.2.1   2017-11-14 [1] CRAN (R 3.5.0)
   usethis       1.4.0   2018-08-14 [1] CRAN (R 3.5.0)
   whisker       0.3-2   2013-04-28 [1] CRAN (R 3.5.0)
   withr         2.1.2   2018-03-15 [1] CRAN (R 3.5.0)
   workflowr     1.1.1   2018-07-06 [1] CRAN (R 3.5.0)
   xfun          0.4     2018-10-23 [1] CRAN (R 3.5.0)
   xml2          1.2.0   2018-01-24 [1] CRAN (R 3.5.0)
   yaml          2.2.0   2018-07-25 [1] CRAN (R 3.5.0)

[1] /group/bioi1/luke/analysis/phd-thesis-analysis/packrat/lib/x86_64-pc-linux-gnu/3.5.0
[2] /group/bioi1/luke/analysis/phd-thesis-analysis/packrat/lib-ext/x86_64-pc-linux-gnu/3.5.0
[3] /group/bioi1/luke/analysis/phd-thesis-analysis/packrat/lib-R/x86_64-pc-linux-gnu/3.5.0
[4] /home/luke.zappia/R/x86_64-pc-linux-gnu-library/3.5
[5] /usr/local/installed/R/3.5.0/lib64/R/library

 P ── Loaded and on-disk path mismatch.

This reproducible R Markdown analysis was created with workflowr 1.1.1