Last updated: 2021-02-22

Checks: 7 0

Knit directory: invitroOA_pilot_repository/

This reproducible R Markdown analysis was created with workflowr (version 1.6.2). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


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.

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.

The command set.seed(20210119) 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.

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

Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.

Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.

The results in this page were generated with repository version 3500638. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.

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:    .Rhistory
    Ignored:    .Rproj.user/
    Ignored:    code/bulkRNA_preprocessing/.snakemake/conda-archive/
    Ignored:    code/bulkRNA_preprocessing/.snakemake/conda/
    Ignored:    code/bulkRNA_preprocessing/.snakemake/locks/
    Ignored:    code/bulkRNA_preprocessing/.snakemake/shadow/
    Ignored:    code/bulkRNA_preprocessing/.snakemake/singularity/
    Ignored:    code/bulkRNA_preprocessing/.snakemake/tmp.3ekfs3n5/
    Ignored:    code/bulkRNA_preprocessing/fastq/
    Ignored:    code/bulkRNA_preprocessing/out/
    Ignored:    code/single_cell_preprocessing/.snakemake/conda-archive/
    Ignored:    code/single_cell_preprocessing/.snakemake/conda/
    Ignored:    code/single_cell_preprocessing/.snakemake/locks/
    Ignored:    code/single_cell_preprocessing/.snakemake/shadow/
    Ignored:    code/single_cell_preprocessing/.snakemake/singularity/
    Ignored:    code/single_cell_preprocessing/YG-AH-2S-ANT-1_S1_L008/
    Ignored:    code/single_cell_preprocessing/YG-AH-2S-ANT-2_S2_L008/
    Ignored:    code/single_cell_preprocessing/demuxlet/.DS_Store
    Ignored:    code/single_cell_preprocessing/fastq/
    Ignored:    data/external_scRNA/Chou_et_al2020/
    Ignored:    data/external_scRNA/Jietal2018/
    Ignored:    data/external_scRNA/Wuetal2021/
    Ignored:    data/external_scRNA/merged_external_scRNA.rds
    Ignored:    data/poweranalysis/alasoo_et_al/
    Ignored:    output/GO_terms_enriched.csv
    Ignored:    output/topicModel_k=6.rds
    Ignored:    output/topicModel_k=7.rds
    Ignored:    output/topicModel_k=8.rds
    Ignored:    output/voom_results.rds

Unstaged changes:
    Modified:   .gitignore
    Deleted:    analysis/figure/topicModel_scRNA.Rmd/plot correlations external-1.png
    Deleted:    analysis/figure/topicModel_scRNA.Rmd/structure plot external-1.png

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.


These are the previous versions of the repository in which changes were made to the R Markdown (analysis/external_scRNA.Rmd) and HTML (docs/external_scRNA.html) files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view the files as they were in that past version.

File Version Author Date Message
Rmd 0d29d56 Anthony Hung 2021-02-18 change colors for structure plots
html 0d29d56 Anthony Hung 2021-02-18 change colors for structure plots
html 98724f0 Anthony Hung 2021-01-21 finish topic model rmd
Rmd 99c70b8 Anthony Hung 2021-01-20 update external data
html 99c70b8 Anthony Hung 2021-01-20 update external data
Rmd 1ec66ea Anthony Hung 2021-01-20 add information desribing preprocessing scran
html 1ec66ea Anthony Hung 2021-01-20 add information desribing preprocessing scran
Rmd af83ab7 Anthony Hung 2021-01-20 knit analysis files
html af83ab7 Anthony Hung 2021-01-20 knit analysis files
Rmd 98e0a1d Anthony Hung 2021-01-20 add note about running the bash code separately
Rmd 5b2d20e Anthony Hung 2021-01-20 Commit before knitting
Rmd 439d194 Anthony Hung 2021-01-20 add liver data
Rmd c49176b Anthony Hung 2021-01-20 add GH data into external datasets folder
Rmd 8b39783 Anthony Hung 2021-01-20 correct typo in directory structure creation in external scRNAseq
Rmd e24a0cd Anthony Hung 2021-01-20 Added download links for external data files
Rmd d6b5b17 Anthony Hung 2021-01-20 Added analysis files
Rmd 28f57fa Anthony Hung 2021-01-19 Add files for analysis

Load in datasets for topic model and merge them into one seurat object

Download datasets from GEO

Some of the data included in this model come from publically available datasets from published studies, housed in GEO. Run the following code from the home directory of this repo to download the necessary datasets.

mkdir data/external_scRNA
cd data/external_scRNA

#download Ji et al 2018 data of Chondrocytes from OA patients run through STRT single cell RNA protocol from GEO (Series GSE104782)
mkdir Jietal2018
cd Jietal2018
wget ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE104nnn/GSE104782/suppl/GSE104782_allcells_UMI_count.txt.gz #raw count data
wget ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE104nnn/GSE104782/suppl/GSE104782_Table_Cell_quality_information_and_clustering_information.xlsx # clustering information for cells in the raw data

#download Wu et al 2021 data of iPSC-Chondrocyte chondrogenic pellet differentiation time course from GEO (Series GSE160625). Data include barcodes, genes, and count matrices from samples taken from iPSCs and samples from 7, 14, 28, and 42 day chondrogenic pellets treated with chondrogenic media containing a WNT and MITF inhibitor
cd ..
mkdir Wuetal2021
cd Wuetal2021
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876128/suppl/GSM4876128_hiPSC_barcodes.tsv.gz # iPSC barcodes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876128/suppl/GSM4876128_hiPSC_genes.tsv.gz # iPSC genes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876128/suppl/GSM4876128_hiPSC_matrix.mtx.gz # iPSC count matrix
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876136/suppl/GSM4876136_C59_D7_barcodes.tsv.gz # day 7 pellet barcodes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876136/suppl/GSM4876136_C59_D7_genes.tsv.gz # day 7 pellet genes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876136/suppl/GSM4876136_C59_D7_matrix.mtx.gz # day 7 pellet count matrix
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876137/suppl/GSM4876137_C59_D14_barcodes.tsv.gz # day 14 pellet barcodes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876137/suppl/GSM4876137_C59_D14_genes.tsv.gz # day 14 pellet genes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876137/suppl/GSM4876137_C59_D14_matrix.mtx.gz  # day 14 pellet count matrix
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876138/suppl/GSM4876138_C59_D28_barcodes.tsv.gz # day 28 pellet barcodes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876138/suppl/GSM4876138_C59_D28_genes.tsv.gz # day 28 pellet genes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876138/suppl/GSM4876138_C59_D28_matrix.mtx.gz # day 28 pellet count matrix
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876139/suppl/GSM4876139_C59_D42_barcodes.tsv.gz # day 42 pellet barcodes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876139/suppl/GSM4876139_C59_D42_genes.tsv.gz # day 42 pellet genes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4876nnn/GSM4876139/suppl/GSM4876139_C59_D42_matrix.mtx.gz # day 42 pellet count matrix

#download data for Chou et al 2020 from GEO (Sample GSM4626766) for chondrocytes from Minimally damaged outer lateral tibial (oLT) plateau cartilage isolated from one male individual
cd ..
mkdir Chou_et_al2020
cd Chou_et_al2020
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4626nnn/GSM4626766/suppl/GSM4626766_OA_oLT_113.barcodes.tsv.gz # barcodes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4626nnn/GSM4626766/suppl/GSM4626766_OA_oLT_113.genes.tsv.gz # genes
wget ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM4626nnn/GSM4626766/suppl/GSM4626766_OA_oLT_113.matrix.mtx.gz # count matrix

Load in datasets

Load in the datasets and create Seurat objects for each of them. Add metadata about the cell type they were assigned in their original contexts. Merge the Seurat object into one large object.

library(Matrix)
library(Seurat)
library(tidyverse)
Registered S3 method overwritten by 'cli':
  method     from    
  print.boxx spatstat
── Attaching packages ────────────────────────────────── tidyverse 1.3.0 ──
✓ ggplot2 3.3.3     ✓ purrr   0.3.4
✓ tibble  3.0.4     ✓ dplyr   1.0.2
✓ tidyr   1.1.2     ✓ stringr 1.4.0
✓ readr   1.3.1     ✓ forcats 0.4.0
── Conflicts ───────────────────────────────────── tidyverse_conflicts() ──
x tidyr::expand() masks Matrix::expand()
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
x tidyr::pack()   masks Matrix::pack()
x tidyr::unpack() masks Matrix::unpack()
library(readxl)

#iPSC-Chondrocyte data from the current study
ANT1.2 <- readRDS("data/ANT1_2.rds")
ANT1.2 <- Seurat::AddMetaData(ANT1.2, "iPSC-Chondrocyte", col.name = "Cell.Type")
dim(ANT1.2)
[1] 33538  1815
#Chondrocytes from OA patients (https://www.ncbi.nlm.nih.gov/pubmed/30026257) run through STRT protocol
# load raw count data
ji_chondro <- read.table("data/external_scRNA/Jietal2018/GSE104782_allcells_UMI_count.txt.gz", header = T)
ji_chondro_genes <- ji_chondro[,1]
ji_chondro_data <- ji_chondro[,-1]
ji_chondro <- ji_chondro_data
rownames(ji_chondro) <- ji_chondro_genes
# load clustering assignment data from paper
ji_chondro_metadata <- read_excel("data/external_scRNA/Jietal2018/GSE104782_Table_Cell_quality_information_and_clustering_information.xlsx")
# subset count data to include only those cells that were assigned to a cluster labeled as being a chondrocyte in the original paper
ji_chondro.filtered <- ji_chondro[,!is.na(ji_chondro_metadata$Cluster)]
cluster.ident <- "ji_chondrocyte"
# Create seurat object from chondrocytes data
ji_chondro.seurat <- CreateSeuratObject(ji_chondro.filtered, project="Chondrocytes")
Warning: Feature names cannot have underscores ('_'), replacing with dashes
('-')
ji_chondro.seurat <- Seurat::AddMetaData(ji_chondro.seurat, cluster.ident, col.name = "Cell.Type")
dim(ji_chondro.seurat)
[1] 24153  1464
#iPSC chondrogenic cells from directed differentiation time course  from iPSC chondrogenic pellet culture. https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE160625 
count_data_wu_d7 <- readMM("data/external_scRNA/Wuetal2021/GSM4876136_C59_D7_matrix.mtx.gz")
genes_wu_d7 <- read_tsv("data/external_scRNA/Wuetal2021/GSM4876136_C59_D7_genes.tsv.gz", col_names = F)
Parsed with column specification:
cols(
  X1 = col_character(),
  X2 = col_character()
)
barcodes_wu_d7 <- as.data.frame(read_tsv( "data/external_scRNA/Wuetal2021/GSM4876136_C59_D7_barcodes.tsv.gz", col_names = F))
Parsed with column specification:
cols(
  X1 = col_character()
)
rownames(count_data_wu_d7) <- genes_wu_d7$X2
colnames(count_data_wu_d7) <- barcodes_wu_d7$X1
wu_d7_seurat <- CreateSeuratObject(counts = count_data_wu_d7, project = "d7")
Warning: Non-unique features (rownames) present in the input matrix, making
unique

Warning: Feature names cannot have underscores ('_'), replacing with dashes
('-')
wu_d7_seurat <- Seurat::AddMetaData(wu_d7_seurat, "Wu_chondrogenic_pellet_d7", col.name = "Cell.Type")

count_data_wu_d14 <- readMM("data/external_scRNA/Wuetal2021/GSM4876137_C59_D14_matrix.mtx.gz")
genes_wu_d14 <- read_tsv("data/external_scRNA/Wuetal2021/GSM4876137_C59_D14_genes.tsv.gz", col_names = F)
Parsed with column specification:
cols(
  X1 = col_character(),
  X2 = col_character()
)
barcodes_wu_d14 <- as.data.frame(read_tsv( "data/external_scRNA/Wuetal2021/GSM4876137_C59_D14_barcodes.tsv.gz", col_names = F))
Parsed with column specification:
cols(
  X1 = col_character()
)
rownames(count_data_wu_d14) <- genes_wu_d14$X2
colnames(count_data_wu_d14) <- barcodes_wu_d14$X1
wu_d14_seurat <- CreateSeuratObject(counts = count_data_wu_d14, project = "d14")
Warning: Non-unique features (rownames) present in the input matrix, making
unique

Warning: Feature names cannot have underscores ('_'), replacing with dashes
('-')
wu_d14_seurat <- Seurat::AddMetaData(wu_d14_seurat, "Wu_chondrogenic_pellet_d14", col.name = "Cell.Type")

count_data_wu_d28 <- readMM("data/external_scRNA/Wuetal2021/GSM4876138_C59_D28_matrix.mtx.gz")
genes_wu_d28 <- read_tsv("data/external_scRNA/Wuetal2021/GSM4876138_C59_D28_genes.tsv.gz", col_names = F)
Parsed with column specification:
cols(
  X1 = col_character(),
  X2 = col_character()
)
barcodes_wu_d28 <- as.data.frame(read_tsv( "data/external_scRNA/Wuetal2021/GSM4876138_C59_D28_barcodes.tsv.gz", col_names = F))
Parsed with column specification:
cols(
  X1 = col_character()
)
rownames(count_data_wu_d28) <- genes_wu_d28$X2
colnames(count_data_wu_d28) <- barcodes_wu_d28$X1
wu_d28_seurat <- CreateSeuratObject(counts = count_data_wu_d28, project = "d28")
Warning: Non-unique features (rownames) present in the input matrix, making
unique

Warning: Feature names cannot have underscores ('_'), replacing with dashes
('-')
wu_d28_seurat <- Seurat::AddMetaData(wu_d28_seurat, "Wu_chondrogenic_pellet_d28", col.name = "Cell.Type")

count_data_wu_d42 <- readMM("data/external_scRNA/Wuetal2021/GSM4876139_C59_D42_matrix.mtx.gz")
genes_wu_d42 <- read_tsv("data/external_scRNA/Wuetal2021/GSM4876139_C59_D42_genes.tsv.gz", col_names = F)
Parsed with column specification:
cols(
  X1 = col_character(),
  X2 = col_character()
)
barcodes_wu_d42 <- as.data.frame(read_tsv( "data/external_scRNA/Wuetal2021/GSM4876139_C59_D42_barcodes.tsv.gz", col_names = F))
Parsed with column specification:
cols(
  X1 = col_character()
)
rownames(count_data_wu_d42) <- genes_wu_d42$X2
colnames(count_data_wu_d42) <- barcodes_wu_d42$X1
wu_d42_seurat <- CreateSeuratObject(counts = count_data_wu_d42, project = "d42")
Warning: Non-unique features (rownames) present in the input matrix, making
unique

Warning: Feature names cannot have underscores ('_'), replacing with dashes
('-')
wu_d42_seurat <- Seurat::AddMetaData(wu_d42_seurat, "Wu_chondrogenic_pellet_d42", col.name = "Cell.Type")

wu_combined <- merge(wu_d7_seurat, y = c(wu_d14_seurat, wu_d28_seurat, wu_d42_seurat), project = "Combined.common")
Warning in CheckDuplicateCellNames(object.list = objects): Some cell names
are duplicated across objects provided. Renaming to enforce unique cell
names.
wu_combined[["percent.mt"]] <- PercentageFeatureSet(wu_combined, pattern = "^MT-")
wu_combined <- subset(wu_combined, subset = percent.mt < 25)
dim(wu_combined)
[1] 45924  9434
#Chondrocytes from healthy oLT of a male human with OA (outer lateral tibia) https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM4626766
chou_chondro_counts <- readMM("data/external_scRNA/Chou_et_al2020/GSM4626766_OA_oLT_113.matrix.mtx.gz")
chou_chondro_genes <- read_tsv("data/external_scRNA/Chou_et_al2020/GSM4626766_OA_oLT_113.genes.tsv.gz", col_names = F)
Parsed with column specification:
cols(
  X1 = col_character(),
  X2 = col_character()
)
chou_chondro_barcodes <- as.data.frame(read_tsv("data/external_scRNA/Chou_et_al2020/GSM4626766_OA_oLT_113.barcodes.tsv.gz", col_names = F))
Parsed with column specification:
cols(
  X1 = col_character()
)
#make Seurat object
rownames(chou_chondro_counts) <- chou_chondro_genes$X2
colnames(chou_chondro_counts) <- chou_chondro_barcodes$X1

chou_chondro_seurat <- CreateSeuratObject(counts = chou_chondro_counts, project = "Chondrocytes") %>% 
  AddMetaData("chou_chondrocyte", col.name = "Cell.Type")
Warning: Non-unique features (rownames) present in the input matrix, making
unique

Warning: Feature names cannot have underscores ('_'), replacing with dashes
('-')
dim(chou_chondro_seurat)
[1] 32738  6200
#iPSCs/MSCs/ipsc-chondrocytes/ipsc-osteoblasts from Genevieve Housman. Combine all the datasets located in the data directory. Each of these datasets contain single cell data from cells from the same human individual from which iPSCs were created. 10x single cell RNA sequencing data from iPSCs, MSCs, iPSC-Osteoblasts, and iPSC-chondrocytes are included after filtering for barcodes with fewer than 25% reads coming from mitochondria.
GH_iPSC <- readRDS("data/external_scRNA/GH_cells/gh_ipsc.rds")
GH_iPSCMSC <- readRDS("data/external_scRNA/GH_cells/gh_msc.rds")
GH_iPSCChond <- readRDS("data/external_scRNA/GH_cells/gh_ipscChond.rds")
GH_iPSCOsteo <- readRDS("data/external_scRNA/GH_cells/gh_ipscOsteo.rds")
#merge all the datasets into one seurat object
GH_merged <- merge(GH_iPSC, y = c(GH_iPSCMSC, GH_iPSCChond, GH_iPSCOsteo),
                add.cell.ids = c("ipsc", "msc", "chondrogh", "osteo"), project = "ghousman")
GH_merged <- Seurat::AddMetaData(GH_merged, "Ghousman", col.name = "orig.ident")
dim(GH_merged)
[1] 19377 10815
#Human Liver samples run through 10x (https://doi.org/10.1038/s41467-018-06318-7). This is a subset of the entire dataset, which is from whole liver homogenate. Following the example from the original paper, scViz was used to subset the data for clusters that were called hepatocytes in the original study (subset contains a total of 3490 cells)
liver_data <- readRDS("data/external_scRNA/humanLiverSubset_hepatocytes.rds")
liver_data <- Seurat::AddMetaData(liver_data, "Hepatocyte", col.name = "Cell.Type")
dim(liver_data)
[1] 20007  3490

Merge and Save the combined data

# Merge Datasets

# Merge the seurat objects into one large one, keeping metadata about which study they originated in as well as their assigned cell type.
Merged_external_data <- merge(ANT1.2, y = c(ji_chondro.seurat, chou_chondro_seurat, GH_merged, liver_data), project = "Merged_external")
Merged_external_data <- merge(Merged_external_data, wu_combined, project = "Merged_external")
dim(Merged_external_data)
[1] 61987 33218
saveRDS(Merged_external_data, "data/external_scRNA/merged_external_scRNA.rds")

sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Scientific Linux 7.4 (Nitrogen)

Matrix products: default
BLAS/LAPACK: /software/openblas-0.2.19-el7-x86_64/lib/libopenblas_haswellp-r0.2.19.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [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] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] readxl_1.3.1    forcats_0.4.0   stringr_1.4.0   dplyr_1.0.2    
 [5] purrr_0.3.4     readr_1.3.1     tidyr_1.1.2     tibble_3.0.4   
 [9] ggplot2_3.3.3   tidyverse_1.3.0 Seurat_3.2.3    Matrix_1.2-18  

loaded via a namespace (and not attached):
  [1] Rtsne_0.15            colorspace_2.0-0      deldir_0.1-23        
  [4] ellipsis_0.3.1        ggridges_0.5.1        rprojroot_2.0.2      
  [7] fs_1.3.1              rstudioapi_0.13       spatstat.data_1.7-0  
 [10] leiden_0.3.1          listenv_0.8.0         npsurv_0.4-0         
 [13] ggrepel_0.9.0         fansi_0.4.1           lubridate_1.7.9      
 [16] xml2_1.3.2            codetools_0.2-16      splines_3.6.1        
 [19] lsei_1.2-0            knitr_1.23            polyclip_1.10-0      
 [22] jsonlite_1.7.2        workflowr_1.6.2       broom_0.7.0          
 [25] ica_1.0-2             dbplyr_1.4.2          cluster_2.1.0        
 [28] png_0.1-7             uwot_0.1.10           shiny_1.3.2          
 [31] sctransform_0.3.2     compiler_3.6.1        httr_1.4.2           
 [34] backports_1.1.10      assertthat_0.2.1      lazyeval_0.2.2       
 [37] cli_2.2.0             later_1.1.0.1         htmltools_0.5.0      
 [40] tools_3.6.1           rsvd_1.0.1            igraph_1.2.4.1       
 [43] gtable_0.3.0          glue_1.4.2            RANN_2.6.1           
 [46] reshape2_1.4.3        rappdirs_0.3.1        Rcpp_1.0.5           
 [49] spatstat_1.64-1       scattermore_0.7       cellranger_1.1.0     
 [52] vctrs_0.3.6           gdata_2.18.0          nlme_3.1-140         
 [55] lmtest_0.9-37         xfun_0.8              globals_0.12.5       
 [58] rvest_0.3.6           mime_0.9              miniUI_0.1.1.1       
 [61] lifecycle_0.2.0       irlba_2.3.3           gtools_3.8.1         
 [64] goftest_1.2-2         future_1.18.0         MASS_7.3-52          
 [67] zoo_1.8-8             scales_1.1.1          hms_0.5.3            
 [70] promises_1.1.1        spatstat.utils_1.17-0 parallel_3.6.1       
 [73] RColorBrewer_1.1-2    yaml_2.2.1            reticulate_1.16      
 [76] pbapply_1.4-0         gridExtra_2.3         rpart_4.1-15         
 [79] stringi_1.4.6         caTools_1.17.1.2      rlang_0.4.10         
 [82] pkgconfig_2.0.3       matrixStats_0.57.0    bitops_1.0-6         
 [85] evaluate_0.14         lattice_0.20-41       ROCR_1.0-7           
 [88] tensor_1.5            patchwork_1.1.0       htmlwidgets_1.5.2    
 [91] cowplot_1.1.0         tidyselect_1.1.0      RcppAnnoy_0.0.18     
 [94] plyr_1.8.6            magrittr_2.0.1        R6_2.5.0             
 [97] gplots_3.0.1.1        generics_0.0.2        DBI_1.1.0            
[100] withr_2.3.0           haven_2.3.1           pillar_1.4.7         
[103] whisker_0.3-2         mgcv_1.8-28           fitdistrplus_1.0-14  
[106] survival_2.44-1.1     abind_1.4-5           future.apply_1.3.0   
[109] modelr_0.1.8          crayon_1.3.4          KernSmooth_2.23-15   
[112] plotly_4.9.2.1        rmarkdown_1.13        grid_3.6.1           
[115] data.table_1.13.0     git2r_0.26.1          reprex_0.3.0         
[118] digest_0.6.27         xtable_1.8-4          httpuv_1.5.1         
[121] munsell_0.5.0         viridisLite_0.3.0