Aim: use stratified LDSC to test whether PD heritability enriches within top 10% most cell-type specific genes and to check whether there is a linear relationship between heritability enrichment values and cell-type specificity deciles.
source(here::here("R", "file_paths.R"))
source(here::here("R", "EWCE_related_functions.R"))
source(here::here("R", "upsetR_common.R"))
s-LDSC is a method that allows you to determine the relative contribution of an annotation to disease heritability. We use the co-efficient p-value as our read-out for significance, as it tells us whether our annotation is significantly contributing to disease heritability after we have accounted for underlying genetic architecture (as represented by a 53-annotation baseline model, which tags coding regions, enhancer regions, histones, promoters, etc.).
# Load ctd files and plot dendrograms
ctd_files <- list.files(
file.path(
path_to_results,
"snRNA/specificity_matrices/2020_Feb"
),
pattern = "ctd",
full.names = T)
# Inititate empty vectors
plot_list <- vector(mode = "list", length = length(ctd_files))
ctd_list <- vector(mode = "list", length = length(ctd_files))
# Loop to load data and plot dendrogram
for(i in 1:length(ctd_files)){
# Load ctd
ctd_list[[i]] <- readRDS(ctd_files[i])
# Extract file name
title <-
ctd_files[i] %>%
str_replace(".*/", "") %>%
str_replace("\\..*", "") %>%
str_replace(".*_", "")
# Name list
names(ctd_list)[i] <- title
# Create dendrogram
plot_list[[i]] <-
plot_dendrogram(ctd_list[[i]] , level = 1) +
labs(title = str_c("Dendrogram for ", title))
}
ggarrange(plotlist = plot_list)
# Create deciles dataframe
decile_df <- ctd_list %>%
lapply(., function(ctd){
# Only using level 1 annotations
ctd[[1]]$specificity %>%
as.data.frame() %>%
tibble::rownames_to_column(var = "gene") %>%
dplyr::mutate(Vascular = Endo + Per) %>%
tidyr::gather(key = "cell_type", value = "specificity", -gene) %>%
dplyr::group_by(cell_type) %>%
dplyr::mutate(quantile = ntile(specificity, 10))
}) %>%
qdapTools::list_df2df(col = "Disease_Group")
# Check order of deciles
decile_df %>%
dplyr::mutate(Disease_Group = fct_relevel(Disease_Group,
c("Control", "PD", "PDD", "DLB"))) %>%
ggplot(aes(x = as.factor(quantile), y = specificity)) +
geom_boxplot() +
facet_grid(Disease_Group ~ cell_type) +
labs(x = "Quantile") +
theme_rhr
# Check that within each disease group and decile equal number of genes across cell types
decile_df %>%
dplyr::group_by(quantile, Disease_Group, cell_type) %>%
dplyr::summarise(n = n()) %>%
dplyr::arrange(Disease_Group, quantile, cell_type)
# Create gene list
gene_list <-
decile_df %>%
dplyr::filter(quantile == 10) %>%
dplyr::mutate(cell_type_disease = str_c(cell_type, ":", Disease_Group)) %>%
group_split(cell_type, Disease_Group)
names(gene_list) <- gene_list %>%
lapply(., function(df){
df %>% .[["cell_type_disease"]] %>% unique()
})
upset(fromList(gene_list %>%
lapply(., function(df){
df %>% .[["gene"]]
})),
sets = names(gene_list),
keep.order = TRUE,
nintersects = 25,
order.by = "freq")
cd /home/rreynolds/projects/Aim2_PDsequencing_wd/LBD-seq-bulk-analyses/
nohup Rscript \
/home/rreynolds/projects/Aim2_PDsequencing_wd/LBD-seq-bulk-analyses/misc_scripts/LDSC_cell_type_specificity_deciles.R \
&>/home/rreynolds/projects/Aim2_PDsequencing_wd/LBD-seq-bulk-analyses/nohup_logs/LDSC_cell_type_specificity_deciles.log&
# LBD GWAS
nohup Rscript \
/home/rreynolds/projects/Aim2_PDsequencing_wd/LBD-seq-bulk-analyses/misc_scripts/LDSC_cell_type_specificity_deciles.R \
&>/home/rreynolds/projects/Aim2_PDsequencing_wd/LBD-seq-bulk-analyses/nohup_logs/LDSC_cell_type_specificity_deciles_LBD.log&
file_paths <-
list.files(path =
file.path(
path_to_raw_data,
"ldsc_annotations/celltype.deciles/"
),
pattern = ".results",
recursive = T,
full.names = T)
results <- LDSCforRyten::Assimilate_H2_results(path_to_results = file_paths) %>%
LDSCforRyten::Calculate_enrichment_SE_and_logP(., one_sided = "+") %>%
tidyr::separate(annot_name, into = c("Disease_Group", "cell_type", "decile"),sep = ":") %>%
dplyr::mutate(Disease_Group = fct_relevel(Disease_Group,
c("Control", "PD", "PDD", "DLB"))) %>%
dplyr::select(Disease_Group, cell_type, decile, GWAS, everything())
write_delim(results,
path =
file.path(
path_to_results,
"ldsc/sldsc_celltype_deciles.txt"
),
delim = "\t")
Let's start by looking at the top decile of specificity.
This will take into account the number of GWASs and cell types tested.
results <- read_delim(file =
file.path(
path_to_results,
"ldsc/sldsc_celltype_deciles.txt"
),
delim = "\t") %>%
dplyr::mutate(GWAS = str_replace(GWAS, "\\.hg38", ""),
GWAS = str_replace(GWAS, "2019", ""),
GWAS = str_replace_all(GWAS, "\\.", "_"))
# Multiple correct co-efficient p-value within disease
results %>%
dplyr::filter(decile == 10,
!c(cell_type %in% c("Endo", "Per"))) %>%
dplyr::group_by(Disease_Group) %>%
dplyr::mutate(Z_score_FDR = p.adjust(Z_score_P, method = "fdr")) %>%
dplyr::filter(Enrichment > 0) %>%
dplyr::select(Disease_Group, cell_type, decile, GWAS, Z_score_FDR, everything(), -contains("SE"), -contains("log")) %>%
dplyr::arrange(Z_score_FDR) %>%
DT::datatable(rownames = FALSE,
options = list(scrollX = TRUE),
class = 'white-space: nowrap')
This will take into account the number of cell types tested and uses only well-powered GWASs (AD, PD, PD AOO).
results %>%
# Filter for top decile, no endo/per cells and only well-powered GWASs
dplyr::filter(decile == 10,
!c(cell_type %in% c("Endo", "Per")),
GWAS %in% c("AD", "PD2018_AOO", "PD_meta5_ex23andMe")) %>%
dplyr::group_by(Disease_Group, GWAS) %>%
dplyr::mutate(Z_score_FDR = p.adjust(Z_score_P, method = "fdr")) %>%
dplyr::filter(Enrichment > 0,
Z_score_FDR < 0.05) %>%
dplyr::select(Disease_Group, cell_type, decile, GWAS, Z_score_P, everything(), -contains("SE", ignore.case = F), -contains("log", ignore.case = F)) %>%
dplyr::arrange(Z_score_P) %>%
DT::datatable(rownames = FALSE,
options = list(scrollX = TRUE),
class = 'white-space: nowrap')
results %>%
# Filter for top decile, no endo/per cells and only well-powered GWASs
dplyr::filter(decile == 10,
!c(cell_type %in% c("Endo", "Per")),
GWAS %in% c("AD", "PD2018_AOO", "PD_meta5_ex23andMe"),
Enrichment > 0,
Z_score_P < 0.05) %>%
dplyr::select(Disease_Group, cell_type, decile, GWAS, Z_score_P, everything(), -contains("SE", ignore.case = F), -contains("log", ignore.case = F)) %>%
dplyr::arrange(Z_score_P) %>%
DT::datatable(rownames = FALSE,
options = list(scrollX = TRUE),
class = 'white-space: nowrap')
Only those annotations where heritability proportions are above 0 for all deciles are included in this analysis. A negative prop_h2 indicates a model misspecification/GWAS underpowered.
This will take into account the number of GWASs and cell types tested.
# All deciles should have heritability proportions above 0; a negative prop_h2 indicates a model misspecification/GWAS underpowered
# Keep only those annotations where this is fulfilled across all deciles
filtered <- results %>%
dplyr::filter(Prop._h2 > 0) %>%
dplyr::group_by(Disease_Group, cell_type, GWAS) %>%
dplyr::filter(n() == 10)
# Test of linear regression
lm_results <- filtered %>%
dplyr::filter(!c(cell_type %in% c("Endo", "Per"))) %>%
dplyr::group_by(Disease_Group, cell_type, GWAS) %>%
do(lm(Enrichment ~ as.numeric(decile), data = .) %>%
broom::tidy()) %>%
# Multiple correction
dplyr::group_by(Disease_Group) %>%
dplyr::mutate(FDR = p.adjust(p.value, method = "fdr"))
# Table of lm where decile is significant term
lm_results %>%
dplyr::filter(term != "(Intercept)" & FDR < 0.05) %>%
DT::datatable(rownames = FALSE,
options = list(scrollX = TRUE),
class = 'white-space: nowrap')
# Filtered for term == decile & FDR < 0.05
# Plot significant lm models
lm_results %>%
dplyr::filter(term != "(Intercept)" & FDR < 0.05) %>%
dplyr::inner_join(filtered) %>%
dplyr::ungroup() %>%
dplyr::mutate(Disease_Group = fct_relevel(Disease_Group,
c("Control", "PD", "PDD", "DLB"))) %>%
ggplot(aes(x = as.numeric(decile), y = Enrichment)) +
geom_point() +
geom_errorbar(aes(ymin = Enrichment.Lower.SE, ymax = Enrichment.Upper.SE)) +
scale_x_continuous(breaks = seq(0,10,1)) +
labs(x = "Specificity decile") +
facet_wrap(vars(GWAS, cell_type, Disease_Group), ncol = 5) +
geom_smooth(method = "lm") +
theme_rhr
This will take into account the number of cell types tested and uses only well-powered GWASs (AD, PD, PD AOO).
# Test of linear regression
lm_results <- filtered %>%
dplyr::filter(!c(cell_type %in% c("Endo", "Per")),
GWAS %in% c("AD", "PD2018_AOO", "PD_meta5_ex23andMe")) %>%
dplyr::group_by(Disease_Group, cell_type, GWAS) %>%
do(lm(Enrichment ~ as.numeric(decile), data = .) %>%
broom::tidy()) %>%
# Multiple correction
dplyr::group_by(Disease_Group, GWAS) %>%
dplyr::mutate(FDR = p.adjust(p.value, method = "fdr"))
# Table of lm where decile is significant term
lm_results %>%
dplyr::filter(term != "(Intercept)",
FDR < 0.05) %>%
DT::datatable(rownames = FALSE,
options = list(scrollX = TRUE),
class = 'white-space: nowrap')
# Filtered for term == decile & FDR < 0.05
# Plot significant lm models
lm_results %>%
dplyr::filter(term != "(Intercept)",
FDR < 0.05) %>%
dplyr::inner_join(filtered) %>%
dplyr::ungroup() %>%
dplyr::mutate(Disease_Group = fct_relevel(Disease_Group,
c("Control", "PD", "PDD", "DLB"))) %>%
ggplot(aes(x = as.numeric(decile), y = Enrichment)) +
geom_point() +
geom_errorbar(aes(ymin = Enrichment.Lower.SE, ymax = Enrichment.Upper.SE)) +
scale_x_continuous(breaks = seq(0,10,1)) +
labs(x = "Specificity decile") +
facet_wrap(vars(GWAS, cell_type, Disease_Group), ncol = 5) +
geom_smooth(method = "lm") +
theme_rhr
session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
## setting value
## version R version 3.6.1 (2019-07-05)
## os Ubuntu 16.04.6 LTS
## system x86_64, linux-gnu
## ui X11
## language (EN)
## collate en_GB.UTF-8
## ctype en_GB.UTF-8
## tz Europe/London
## date 2021-05-24
##
## ─ Packages ───────────────────────────────────────────────────────────────────
## ! package * version date lib
## abind 1.4-5 2016-07-21 [2]
## AnnotationDbi 1.48.0 2019-10-29 [1]
## askpass 1.1 2019-01-13 [2]
## assertthat 0.2.1 2019-03-21 [2]
## backports 1.1.8 2020-06-17 [1]
## Biobase 2.46.0 2019-10-29 [1]
## BiocFileCache 1.10.2 2019-11-08 [1]
## BiocGenerics * 0.32.0 2019-10-29 [1]
## BiocParallel 1.20.1 2019-12-21 [1]
## biomaRt 2.42.1 2020-03-26 [1]
## Biostrings 2.54.0 2019-10-29 [1]
## bit 4.0.4 2020-08-04 [1]
## bit64 4.0.2 2020-07-30 [1]
## bitops 1.0-6 2013-08-17 [2]
## blob 1.2.1 2020-01-20 [1]
## bookdown 0.21 2020-10-13 [1]
## broom 0.7.0 2020-07-09 [1]
## BSgenome 1.54.0 2019-10-29 [1]
## cachem 1.0.3 2021-02-04 [1]
## callr 3.5.1 2020-10-13 [1]
## car 3.0-9 2020-08-11 [1]
## carData 3.0-4 2020-05-22 [1]
## caTools 1.18.0 2020-01-17 [1]
## cellranger 1.1.0 2016-07-27 [2]
## chron 2.3-56 2020-08-18 [1]
## cli 2.2.0.9000 2021-01-22 [1]
## codetools 0.2-16 2018-12-24 [4]
## colorspace 2.0-0 2020-11-11 [2]
## corrplot * 0.84 2017-10-16 [1]
## cowplot 1.0.0 2019-07-11 [1]
## crayon 1.4.1 2021-02-08 [2]
## crosstalk 1.1.0.1 2020-03-13 [1]
## curl 4.3 2019-12-02 [2]
## data.table 1.13.0 2020-07-24 [1]
## DBI 1.1.1 2021-01-15 [2]
## dbplyr 1.4.4 2020-05-27 [1]
## DelayedArray 0.12.3 2020-04-09 [1]
## desc 1.2.0 2018-05-01 [1]
## devtools * 2.3.2 2020-09-18 [1]
## digest 0.6.27 2020-10-24 [2]
## doParallel * 1.0.15 2019-08-02 [1]
## dplyr * 1.0.2 2020-08-18 [1]
## DT * 0.15 2020-08-05 [1]
## ellipsis 0.3.1 2020-05-15 [1]
## evaluate 0.14 2019-05-28 [2]
## farver 2.0.3 2020-01-16 [1]
## fastmap 1.0.1 2019-10-08 [1]
## forcats * 0.5.1 2021-01-27 [2]
## foreach * 1.5.0 2020-03-30 [1]
## foreign 0.8-72 2019-08-02 [4]
## fs 1.5.0 2020-07-31 [1]
## gdata 2.18.0 2017-06-06 [1]
## GeneOverlap * 1.22.0 2019-10-29 [1]
## generics 0.0.2 2018-11-29 [1]
## GenomeInfoDb * 1.22.1 2020-03-27 [1]
## GenomeInfoDbData 1.2.2 2020-08-24 [1]
## GenomicAlignments 1.22.1 2019-11-12 [1]
## GenomicRanges * 1.38.0 2019-10-29 [1]
## getopt 1.20.3 2019-03-22 [2]
## ggdendro * 0.1.21 2020-08-11 [1]
## ggplot2 * 3.3.2 2020-06-19 [1]
## ggpubr * 0.4.0 2020-06-27 [1]
## ggsignif 0.6.0 2019-11-04 [1]
## glue 1.4.2 2020-08-27 [1]
## gplots 3.0.4 2020-07-05 [1]
## gridExtra 2.3 2017-09-09 [2]
## gtable 0.3.0 2019-03-25 [2]
## gtools 3.8.2 2020-03-31 [1]
## haven 2.3.1 2020-06-01 [1]
## here 1.0.0 2020-11-15 [1]
## highr 0.8 2019-03-20 [2]
## hms 1.0.0 2021-01-13 [2]
## htmltools 0.5.1.1 2021-01-22 [1]
## htmlwidgets 1.5.3 2020-12-10 [2]
## httr 1.4.2 2020-07-20 [1]
## IRanges * 2.20.2 2020-01-13 [1]
## iterators * 1.0.12 2019-07-26 [2]
## jsonlite 1.7.1 2020-09-07 [1]
## KernSmooth 2.23-15 2015-06-29 [4]
## knitr 1.29 2020-06-23 [1]
## labeling 0.4.2 2020-10-20 [2]
## lattice 0.20-38 2018-11-04 [4]
## VP LDSCforRyten * 0.99.1 2020-04-03 [?]
## lifecycle 0.2.0 2020-03-06 [1]
## lubridate 1.7.9 2020-06-08 [1]
## magrittr 2.0.1 2020-11-17 [2]
## MASS 7.3-51.4 2019-04-26 [4]
## Matrix 1.2-17 2019-03-22 [4]
## matrixStats 0.56.0 2020-03-13 [1]
## memoise 2.0.0 2021-01-26 [2]
## mgcv 1.8-29 2019-09-20 [4]
## modelr 0.1.8 2020-05-19 [1]
## munsell 0.5.0 2018-06-12 [2]
## nlme 3.1-141 2019-08-01 [4]
## openssl 1.4.2 2020-06-27 [1]
## openxlsx 4.2.3 2020-10-27 [1]
## optparse 1.6.6 2020-04-16 [1]
## pillar 1.4.6 2020-07-10 [1]
## pkgbuild 1.1.0 2020-07-13 [1]
## pkgconfig 2.0.3 2019-09-22 [2]
## pkgload 1.1.0 2020-05-29 [1]
## plyr 1.8.6 2020-03-03 [2]
## prettyunits 1.1.1 2020-01-24 [1]
## processx 3.4.5 2020-11-30 [1]
## progress 1.2.2 2019-05-16 [2]
## ps 1.3.4 2020-08-11 [1]
## purrr * 0.3.4 2020-04-17 [1]
## qdapTools 1.3.5 2020-04-17 [1]
## R.methodsS3 1.8.1 2020-08-26 [2]
## R.oo 1.24.0 2020-08-26 [2]
## R.utils 2.10.1 2020-08-26 [2]
## R6 2.5.0 2020-10-28 [2]
## rappdirs 0.3.1 2016-03-28 [1]
## RColorBrewer 1.1-2 2014-12-07 [2]
## Rcpp 1.0.5 2020-07-06 [1]
## RCurl 1.98-1.2 2020-04-18 [1]
## readr * 1.4.0 2020-10-05 [2]
## readxl * 1.3.1 2019-03-13 [2]
## remotes 2.2.0 2020-07-21 [1]
## reprex 2.0.0 2021-04-02 [2]
## rio 0.5.16 2018-11-26 [1]
## rlang 0.4.7 2020-07-09 [1]
## rmarkdown 2.5 2020-10-21 [1]
## rprojroot 2.0.2 2020-11-15 [1]
## Rsamtools 2.2.3 2020-02-23 [1]
## RSQLite 2.2.0 2020-01-07 [1]
## rstatix 0.6.0 2020-06-18 [1]
## rstudioapi 0.13 2020-11-12 [2]
## rtracklayer * 1.46.0 2019-10-29 [1]
## rvest 0.3.6 2020-07-25 [1]
## S4Vectors * 0.24.4 2020-04-09 [1]
## scales 1.1.1 2020-05-11 [1]
## sessioninfo 1.1.1 2018-11-05 [2]
## stringi 1.5.3 2020-09-09 [2]
## stringr * 1.4.0 2019-02-10 [2]
## SummarizedExperiment 1.16.1 2019-12-19 [1]
## testthat 2.3.2 2020-03-02 [1]
## tibble * 3.0.3 2020-07-10 [1]
## tidyr * 1.1.1 2020-07-31 [1]
## tidyselect 1.1.0 2020-05-11 [1]
## tidyverse * 1.3.0 2019-11-21 [1]
## UpSetR * 1.4.0 2019-05-22 [1]
## usethis * 1.6.3 2020-09-17 [1]
## vctrs 0.3.2 2020-07-15 [1]
## withr 2.2.0 2020-04-20 [1]
## xfun 0.16 2020-07-24 [1]
## XML 3.99-0.3 2020-01-20 [2]
## xml2 1.3.2 2020-04-23 [1]
## XVector 0.26.0 2019-10-29 [1]
## yaml 2.2.1 2020-02-01 [1]
## zip 2.1.0 2020-08-10 [1]
## zlibbioc 1.32.0 2019-10-29 [1]
## source
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Github (r-lib/cli@4b41c51)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Github (const-ae/ggsignif@5a05d88)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Github (RHReynolds/LDSCforRyten@e805257)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
##
## [1] /home/rreynolds/R/x86_64-pc-linux-gnu-library/3.6
## [2] /usr/local/lib/R/site-library
## [3] /usr/lib/R/site-library
## [4] /usr/lib/R/library
##
## V ── Loaded and on-disk version mismatch.
## P ── Loaded and on-disk path mismatch.