Aim: preprocess GWASs for use with LAVA and LDSC

1 Install dependencies

To run this .Rmd requires packages that are not available from CRAN/Bioconductor. These include colochelpR and rutils. If these are not already installed, run the code chunk below.

devtools::install_github("RHReynolds/colochelpR")
devtools::install_github("RHReynolds/rutils")

2 Requirements for summary statistics

2.1 LAVA

  • Summary statistics must have the following columns:
    • SNP / ID / SNPID_UKB/ SNPID / MarkerName / RSID / RSID_UKB: SNP IDs
    • A1 / ALT: effect allele
    • A2 / REF: reference allele
    • N / NMISS / OBS_CT / N_analyzed: number of samples
    • Z / T / STAT / Zscore: if provided, no p-values or coefficients are needed; otherwise, please provide both:
    • B / BETA / OR / logOdds: effect size coefficients
    • P: p-values
  • In addition, if using CHR:BP-based locations, we must ensure that all of the summary statistics have the same genome build (i.e. GRCh37).

2.2 LDSC

  • Provided the appropriate columns are available for LAVA, prepped files should be valid to use with LDSC.
  • LDSC requires RS IDs in order to pre-process for LDSC, so ensure prepped files contain RS IDs.

3 Pre-processing GWASs

  • As both tools can use RS IDs and these are transferrable across genome builds (not to mention, many of the GWASs have already been prepped for LDSC using RS IDs), we will use RS IDs as our SNP column.
  • We will ensure there are CHR and BP columns to indicate genomic coordinates, which we may wish to overlap with the LAVA partitions).
  • Where to output these files?
    • We will save these LAVA-formatted GWASs using the suffix .lava.gz in the commmon GWAS folder (for lab re-use). This will also make it easier to find their file paths later, using the list.files() function.
    • Remember to modify directory readmes to reflect addition of new files.

3.1 AD 2013

file_path <-
  file.path(
    gwas_dir,
    "AD/AD_all_sum_stats/IGAP_stage_1.txt"
  )

# Read in first few rows to check data format
fread(file_path, nrows = 6)
  • Most columns are present, but require renaming.
  • N not defined for study, therefore will add column with N = 17,008 cases + 37,154 controls = 54162
AD <-
  fread(file_path) %>%
  dplyr::mutate(
    P = as.numeric(Pvalue),
    N = 17008   + 37154
  ) %>% 
  dplyr::select(
    CHR = Chromosome, 
    BP = Position, 
    SNP = MarkerName, 
    A1 = Effect_allele, 
    A2 = Non_Effect_allele, 
    BETA = Beta, 
    SE, 
    P,
    N
  )

fwrite(AD,
  file =
    stringr::str_c(
      gwas_dir,
      "AD/AD2013",
      lava_ext
    ),
  sep = "\t"
)

3.2 AD 2019

file_path <-
  file.path(
    gwas_dir,
    "AD2019/AD_sumstats_Jansenetal_2019sept.txt.gz"
  )

# Read in first few rows to check data format
fread(file_path, nrows = 6)
  • All columns present. Just need to rename Neff to one of the accepted LAVA inputs.
AD <-
  fread(file_path) %>%
  dplyr::select(CHR, BP, SNP, A1, A2, MAF = EAF, BETA, SE, Z, P, N = Neff)

fwrite(AD,
  file =
    stringr::str_c(
      gwas_dir,
      "AD2019/AD_sumstats_Jansenetal_2019sept",
      lava_ext
    ),
  sep = "\t"
)

3.3 AD 2019, Kunkle et al.

file_path <-
  file.path(
    gwas_dir,
    "AD2019_Kunkle/Kunkle_etal_Stage1_results.txt.gz"
  )

# Read in first few rows to check data format
fread(file_path, nrows = 6)
  • Most columns are present, but require renaming.
  • N not defined for study, therefore will add column with N = 21,982 cases + 41,944 controls = 63926
AD <-
  fread(file_path) %>%
  dplyr::mutate(
    N = 21982 + 41944,
    Pvalue = as.numeric(Pvalue)
  ) %>% 
  dplyr::select(
    CHR = Chromosome, 
    BP = Position, 
    SNP = MarkerName, 
    A1 = Effect_allele, 
    A2 = Non_Effect_allele, 
    BETA = Beta, 
    SE, 
    P = Pvalue,
    N
  )

fwrite(AD,
  file =
    stringr::str_c(
      gwas_dir,
      "AD2019_Kunkle/AD2019.Kunkle",
      lava_ext
    ),
  sep = "\t"
)

3.4 AD 2021

file_path <-
  file.path(
    gwas_dir,
    "AD2021/PGCALZ2sumstatsExcluding23andMe.txt.gz"
  )

# Read in first few rows to check data format
fread(file_path, nrows = 6)
  • Most columns are present, but require renaming.
  • Will also add a SNP column with RS ID.
  • Remove any SNPs with z-score of infinity.
AD <-
  fread(file_path) %>%
  dplyr::select(
    CHR = chr, 
    BP = PosGRCh37, 
    A1 = testedAllele, 
    A2 = otherAllele, 
    Z = z, 
    P = p,
    N
  ) %>% 
  dplyr::mutate(CHR = as.factor(CHR)) %>%
  dplyr::filter(Z != "Inf") %>% 
  colochelpR::convert_loc_to_rs(
    df = .,
    dbsnp_144
  )

# Function colochelpR::convert_loc_to_rs does not remove CHR:BP associated with more than one rs id
# Nor does it remove CHR:BP locations that do not have associated rs ids (left as NA)
# Thus, will remove NAs and remove duplicated CHR:BP
AD <-
  AD %>%
  dplyr::mutate(CHR_BP = stringr::str_c(CHR, ":", BP)) %>%
  dplyr::group_by(CHR_BP) %>%
  dplyr::filter(!any(row_number() > 1))  %>%
  dplyr::ungroup() %>%
  dplyr::select(-CHR_BP) %>%
  tidyr::drop_na(SNP)

fwrite(AD,
  file =
    stringr::str_c(
      gwas_dir,
      "AD2021/AD2021",
      lava_ext
    ),
  sep = "\t"
)

3.5 LBD

file_path <-
  file.path(
    gwas_dir,
    "LBD2020/LBD2020.txt"
  )

fread(file_path, nrows = 6)
  • Already know that this GWAS is based on GRCh38. Therefore, will need liftover from GRCh38 to GRCh37. To do this, we will use rutils::liftover_coord().
  • Will also add a SNP column with RS ID.
  • Finally, let's remove some of the extra columns to limit the output file size.
LBD <-
  fread(file_path) %>%
  dplyr::select(CHR = CHROM, BP = POS, A1, A2, MAF = A1_FREQ, BETA, SE, Z = Z_STAT, P, N = OBS_CT) %>%
  dplyr::mutate(CHR = as.factor(CHR)) %>%
  rutils::liftover_coord(
    df = .,
    path_to_chain = "/data/liftover/hg38/hg38ToHg19.over.chain"
  ) %>%
  colochelpR::convert_loc_to_rs(
    df = .,
    dbsnp_144
  )

# Function colochelpR::convert_loc_to_rs does not remove CHR:BP associated with more than one rs id
# Nor does it remove CHR:BP locations that do not have associated rs ids (left as NA)
# Thus, will remove NAs and remove duplicated CHR:BP
LBD <-
  LBD %>%
  dplyr::mutate(CHR_BP = stringr::str_c(CHR, ":", BP)) %>%
  dplyr::group_by(CHR_BP) %>%
  dplyr::filter(!any(row_number() > 1))  %>%
  dplyr::ungroup() %>%
  dplyr::select(-CHR_BP) %>%
  tidyr::drop_na(SNP)

fwrite(LBD,
  stringr::str_c(
    gwas_dir,
    "LBD2020/LBD2020_hg19_rsids",
    lava_ext
  ),
  sep = "\t"
)
  • It's worth noting that both processes may result in some loss of SNPs (see comparison of file line count below). This may result from:
    1. A location not being lifted over between builds.
    2. A location may not have an associated RS ID.
n_original <- R.utils::countLines("/data/LDScore/GWAS/LBD2020/LBD2020.txt")
n_liftover <- R.utils::countLines("/data/LDScore/GWAS/LBD2020/LBD2020_hg19_rsids.lava.gz")

print(str_c("Number of lines in original file: ", n_original))
## [1] "Number of lines in original file: 7843555"
print(str_c("Number of lines in modified file: ", n_liftover))
## [1] "Number of lines in modified file: 7219240"

3.6 PD 2011

file_path <-
  file.path(
    gwas_dir,
    "PD2011/PD-2011_Meta.txt"
  )

fread(file_path, nrows = 6)
  • Liftover from GRCh36 to GRCh37 and add RS IDs.
  • A1 and A2 are lowercase, so will change to upper case.
  • N not defined for study, therefore will add column with N = 5,333 cases + 12,019 controls = 17352
PD <-
  fread(file_path) %>%
  dplyr::select(
    CHR, BP, 
    CHR_BP = MARKER,
    A1 = Allele1, 
    A2 = Allele2, 
    MAF = Freq1, 
    BETA = Effect, 
    SE = StdErr, 
    P = meta_P, 
    ) %>% 
  dplyr::mutate(
    CHR = as.factor(CHR),
    A1 = stringr::str_to_upper(A1),
    A2 = stringr::str_to_upper(A2),
    N = 5333 + 12019
  ) %>% 
  rutils::liftover_coord(
    df = .,
    path_to_chain = "/data/liftover/hg18/hg18ToHg19.over.chain"
  ) %>% 
  colochelpR::convert_loc_to_rs(
    df = .,
    dbsnp_144
  )

# Function colochelpR::convert_loc_to_rs does not remove CHR:BP associated with more than one rs id
# Nor does it remove CHR:BP locations that do not have associated rs ids (left as NA)
# Thus, will remove NAs and remove duplicated CHR:BP  
PD <-
  PD %>%
  dplyr::group_by(CHR_BP) %>%
  dplyr::filter(!any(row_number() > 1))  %>%
  dplyr::ungroup() %>%
  dplyr::select(-CHR_BP) %>%
  tidyr::drop_na(SNP)
  
fwrite(
  PD,
  stringr::str_c(
    gwas_dir,
    "PD2011/PD2011",
    lava_ext
  ),
  sep = "\t"
)

3.7 PD 2019 (excluding 23andMe)

file_path <-
  file.path(
    gwas_dir,
    "PD2019_meta5_ex23andMe/PD2019_ex23andMe_hg19.txt.gz"
  )

fread(file_path, nrows = 6)
  • All columns are present, but a few need renaming.
  • Number of samples currently split into cases and controls. These need to be summed to a total.
PD <-
  fread(file_path) %>%
  dplyr::mutate(N = N_cases + N_controls) %>%
  dplyr::select(CHR, BP, SNP, A1, A2, MAF = freq, BETA = b, SE = se, P = p, N)

fwrite(
  PD,
  stringr::str_c(
    gwas_dir,
    "PD2019_meta5_ex23andMe/PD2019_ex23andMe_hg19",
    lava_ext
  ),
  sep = "\t"
)

3.8 PD 2019 (excluding 23andMe and UK Biobank)

file_path <-
  file.path(
    gwas_dir,
    "PD2019_meta5_ex23andMe_exUKBB/META_no_UKBB_no_231.tbl.gz"
  )

fread(file_path, nrows = 6)
  • Note: this is not an official release of the PD summary statistics (supplied by Cornelis Blauwendraat, IPDGC), so use with care.
  • Number of samples for each SNP added using the Direction column together with cohort sample numbers
    • The order of the 13 symbols (+, - or ?) reflect the order of the cohorts meta-analysed, which is as follows:
      • Input File 1 : ../individual_cohort_sumstats_meta5/toMeta.dbgapNeuroX.tab
      • Input File 2 : ../individual_cohort_sumstats_meta5/toMeta.SHUL.tab
      • Input File 3 : ../individual_cohort_sumstats_meta5/toMeta.FINLAND_no_age.tab
      • Input File 4 : ../individual_cohort_sumstats_meta5/toMeta.HBS.tab
      • Input File 5 : ../individual_cohort_sumstats_meta5/toMeta.GILL_PD_C.tab
      • Input File 6 : ../individual_cohort_sumstats_meta5/toMeta.OSLO.tab
      • Input File 7 : ../individual_cohort_sumstats_meta5/toMeta.PDBP.tab
      • Input File 8 : ../individual_cohort_sumstats_meta5/toMeta.PPMI.tab
      • Input File 9 : ../individual_cohort_sumstats_meta5/toMeta.queensland.tab
      • Input File 10 : ../individual_cohort_sumstats_meta5/toMeta.SPAIN3.tab
      • Input File 11 : ../individual_cohort_sumstats_meta5/toMeta.TUBI_no_overlap.tab
      • Input File 12 : ../individual_cohort_sumstats_meta5/toMeta.VANCE.tab
      • Input File 13 : ../individual_cohort_sumstats_meta5/toMeta.COURAGE_UK.tab
    • + or - indicate the variant direction of effect within a cohort; ? indicate that that variant was not present in that dataset
# Have to navigate to root project folder for script to work (as it uses here package)
cd /home/rreynolds/misc_projects/neurodegen-psych-local-corr

nohup Rscript \
/home/rreynolds/misc_projects/neurodegen-psych-local-corr/scripts/00_generate_pd_n.R \
&>/home/rreynolds/misc_projects/neurodegen-psych-local-corr/logs/00_generate_pd_n.log&
  • Filtering of summary statistics necessary and performed as recommended by Cornelis Blauweendraat:
    • Exclude MAF < 1%
    • Exclude HetISq > 80% (I^2 statistic measures heterogeneity on scale of 0-100%)
    • Exclude SNPs where SNP is not present in \(\geq\) 2/3 of studies included.
  • Note: distribution of N across filtered SNPs is bimodally distributed (Figure @ref(fig:PD2019-noUKBB-N)). This is problematic, as LDSC munge_sumstats.py removes any SNPs that have N < (90th percentile/1.5), unless another minimum is specified (in the filtered data, this accounts for 65.4 of the data).
    • Notably, the default specified by the code does not reflect the default behaviour described in the arguments (see issue #335). In the arguments descriptions, the default behaviour should be N < (90th percentile/2).
    • Given the bimodal distribution, and the peak around ~ 13,000, chose to use --n-min 13655 N < median(N). This equates to 13655, as compared to NA (N < (90th percentile/1.5)) or 1.3846510^{4} (N < (90th percentile/2)), and accounts for 1.3 of the data.
  • Will also add a SNP column with RS ID.
Histogram of SNP N.

Histogram of SNP N.

# Filtering by MAF, I^2 and number of cohorts where variant is present
PD_filtered <-
  fread(file_path) %>% 
  dplyr::mutate(
    n_cohort_present = 
      stringr::str_count(Direction, c("\\+|-")),
  ) %>% 
  dplyr::filter(
    Freq1 >= 1/100,
    HetISq <= 80,
    n_cohort_present >= (2/3 * 13)
  )

# Tidy and rename columns for use with LAVA
# Add RS ID
PD <- 
  PD_filtered %>% 
  dplyr::select(
    CHR_BP = MarkerName,
    A1 = Allele1, 
    A2 = Allele2, 
    MAF = Freq1, 
    BETA = Effect, 
    SE = StdErr, 
    P = `P-value`
    ) %>% 
  dplyr::inner_join(
    PD_N %>% 
      dplyr::select(
        CHR_BP = MarkerName,
        N
        )
  ) %>% 
  tidyr::separate(
    col = CHR_BP,
    sep = ":",
    into = c("CHR", "BP"), 
    remove = FALSE
  ) %>% 
  dplyr::mutate(
    CHR = as.factor(CHR),
    A1 = stringr::str_to_upper(A1),
    A2 = stringr::str_to_upper(A2),
  ) %>% 
  colochelpR::convert_loc_to_rs(
    df = .,
    dbsnp_144
  )

# Function colochelpR::convert_loc_to_rs does not remove CHR:BP associated with more than one rs id
# Nor does it remove CHR:BP locations that do not have associated rs ids (left as NA)
# Thus, will remove NAs and remove duplicated CHR:BP  
PD <-
  PD %>%
  dplyr::group_by(CHR_BP) %>%
  dplyr::filter(!any(row_number() > 1))  %>%
  dplyr::ungroup() %>%
  dplyr::select(-CHR_BP) %>%
  tidyr::drop_na(SNP)

fwrite(
  PD,
  stringr::str_c(
    gwas_dir,
    "PD2019_meta5_ex23andMe_exUKBB/PD2019.ex23andMe.exUKBB",
    lava_ext
  ),
  sep = "\t"
)

3.9 BIP

file_path <-
  file.path(
    gwas_dir,
    "BIP2021/pgc-bip2021-all.vcf.tsv.gz"
  )

# First 72 lines are written text, therefore must remove these to format summary statistics
fread(file_path, skip = 72, nrow = 6)
  • All columns are present, but a few need renaming.
  • Frequency of A1 not provided across all cohorts, but instead across cases and controls. Therefore, averaged the FCAS and FCON to get MAF.
  • Number of samples currently split into cases and controls. These need to be summed to a total.
BIP <-
  fread(file_path, skip = 72) %>%
  dplyr::mutate(
    MAF = (FCAS + FCON)/2,
    N = NCAS + NCON
    ) %>%
  dplyr::select(
    CHR = `#CHROM`, 
    BP = POS, 
    SNP = ID, 
    A1, A2, MAF, BETA, SE, 
    P = PVAL, 
    N
    )

fwrite(
  BIP,
  stringr::str_c(
    gwas_dir,
    "BIP2021/BIP2021",
    lava_ext
  ),
  sep = "\t"
)

3.10 MDD

file_path <-
  file.path(
    gwas_dir,
    "MDD2019_ex23andMe/PGC_UKB_depression_genome-wide.txt.gz"
  )

fread(file_path, nrow = 6)
  • Missing chromosome and base pair positions for SNPs,
  • A1 and A2 are lowercase, so will change to upper case.
  • N not defined for study, therefore will add column with N = 170,756 cases + 329,443 controls = 500199
MDD <-
  fread(file_path) %>%
  dplyr::mutate(
    A1 = stringr::str_to_upper(A1),
    A2 = stringr::str_to_upper(A2),
    N = 170756 + 329443
    ) %>%
  colochelpR::convert_rs_to_loc(
    SNP_column = "MarkerName", 
    dbSNP = dbsnp_144
    ) %>% 
  tidyr::separate(
    col = "loc",
    into = c("CHR", "BP")
  ) %>% 
  dplyr::select(
    CHR, BP, 
    SNP = MarkerName, 
    A1, A2, 
    MAF = Freq, 
    logOdds = LogOR, 
    SE = StdErrLogOR, 
    P, 
    N
    )

fwrite(
  MDD,
  stringr::str_c(
    gwas_dir,
    "MDD2019_ex23andMe/MDD2019",
    lava_ext
  ),
  sep = "\t"
)

3.11 SCZ

file_path <-
  file.path(
    gwas_dir,
    "SCZ2018/RS_clozuk_pgc2.meta.sumstats.txt"
  )

fread(file_path, nrow = 6)
    • N not defined for study, therefore will add column with N = 40,675 cases + 64,643 controls = 105318
SCZ <-
  fread(file_path) %>% 
  dplyr::mutate(
    N = 40675 + 64643
  ) %>% 
  dplyr::select(
    CHR, BP, SNP, A1, A2, 
    MAF = Freq.A1, 
    OR, SE, P, N
    )

fwrite(
  SCZ,
  stringr::str_c(
    gwas_dir,
    "SCZ2018/SCZ2018",
    lava_ext
  ),
  sep = "\t"
)

4 Session info

Show/hide

## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 4.0.5 (2021-03-31)
##  os       Ubuntu 16.04.7 LTS          
##  system   x86_64, linux-gnu           
##  ui       X11                         
##  language (EN)                        
##  collate  en_GB.UTF-8                 
##  ctype    en_GB.UTF-8                 
##  tz       Europe/London               
##  date     2022-03-08                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  ! package                          * version  date       lib source                                
##  P assertthat                         0.2.1    2019-03-21 [?] CRAN (R 4.0.5)                        
##  P backports                          1.3.0    2021-10-27 [?] CRAN (R 4.0.5)                        
##  P Biobase                            2.50.0   2020-10-27 [?] Bioconductor                          
##  P BiocGenerics                     * 0.36.1   2021-04-16 [?] Bioconductor                          
##  P BiocParallel                       1.24.1   2020-11-06 [?] Bioconductor                          
##  P Biostrings                       * 2.58.0   2020-10-27 [?] Bioconductor                          
##  P bitops                             1.0-7    2021-04-24 [?] CRAN (R 4.0.5)                        
##  P broom                              0.7.10   2021-10-31 [?] CRAN (R 4.0.5)                        
##  P BSgenome                         * 1.58.0   2020-10-27 [?] Bioconductor                          
##  P bslib                              0.3.1    2021-10-06 [?] CRAN (R 4.0.5)                        
##  P cellranger                         1.1.0    2016-07-27 [?] CRAN (R 4.0.5)                        
##  P cli                                3.1.0    2021-10-27 [?] CRAN (R 4.0.5)                        
##  P colochelpR                       * 0.99.1   2021-07-05 [?] Github (RHReynolds/colochelpR@e571b0e)
##  P colorspace                         2.0-2    2021-06-24 [?] CRAN (R 4.0.5)                        
##  P crayon                             1.4.2    2021-10-29 [?] CRAN (R 4.0.5)                        
##  P data.table                       * 1.14.2   2021-09-27 [?] CRAN (R 4.0.5)                        
##  P DBI                                1.1.1    2021-01-15 [?] CRAN (R 4.0.5)                        
##  P dbplyr                             2.1.1    2021-04-06 [?] CRAN (R 4.0.5)                        
##  P DelayedArray                       0.16.3   2021-03-24 [?] Bioconductor                          
##  P digest                             0.6.29   2021-12-01 [?] CRAN (R 4.0.5)                        
##  P dplyr                            * 1.0.7    2021-06-18 [?] CRAN (R 4.0.5)                        
##  P ellipsis                           0.3.2    2021-04-29 [?] CRAN (R 4.0.5)                        
##  P evaluate                           0.14     2019-05-28 [?] CRAN (R 4.0.5)                        
##  P fansi                              0.5.0    2021-05-25 [?] CRAN (R 4.0.5)                        
##  P farver                             2.1.0    2021-02-28 [?] CRAN (R 4.0.5)                        
##  P fastmap                            1.1.0    2021-01-25 [?] CRAN (R 4.0.5)                        
##  P forcats                          * 0.5.1    2021-01-27 [?] CRAN (R 4.0.5)                        
##  P fs                                 1.5.1    2021-11-30 [?] CRAN (R 4.0.5)                        
##  P generics                           0.1.1    2021-10-25 [?] CRAN (R 4.0.5)                        
##  P GenomeInfoDb                     * 1.26.7   2021-04-08 [?] Bioconductor                          
##  P GenomeInfoDbData                   1.2.4    2021-07-03 [?] Bioconductor                          
##  P GenomicAlignments                  1.26.0   2020-10-27 [?] Bioconductor                          
##  P GenomicRanges                    * 1.42.0   2020-10-27 [?] Bioconductor                          
##  P ggplot2                          * 3.3.5    2021-06-25 [?] CRAN (R 4.0.5)                        
##  P glue                               1.5.1    2021-11-30 [?] CRAN (R 4.0.5)                        
##  P gtable                             0.3.0    2019-03-25 [?] CRAN (R 4.0.5)                        
##  P haven                              2.4.3    2021-08-04 [?] CRAN (R 4.0.5)                        
##  P here                             * 1.0.1    2020-12-13 [?] CRAN (R 4.0.5)                        
##  P highr                              0.9      2021-04-16 [?] CRAN (R 4.0.5)                        
##  P hms                                1.1.1    2021-09-26 [?] CRAN (R 4.0.5)                        
##  P htmltools                          0.5.2    2021-08-25 [?] CRAN (R 4.0.5)                        
##  P httr                               1.4.2    2020-07-20 [?] CRAN (R 4.0.5)                        
##  P IRanges                          * 2.24.1   2020-12-12 [?] Bioconductor                          
##  P jquerylib                          0.1.4    2021-04-26 [?] CRAN (R 4.0.5)                        
##  P jsonlite                           1.7.2    2020-12-09 [?] CRAN (R 4.0.5)                        
##  P knitr                              1.36     2021-09-29 [?] CRAN (R 4.0.5)                        
##  P labeling                           0.4.2    2020-10-20 [?] CRAN (R 4.0.5)                        
##  P lattice                            0.20-44  2021-05-02 [?] CRAN (R 4.0.5)                        
##  P lifecycle                          1.0.1    2021-09-24 [?] CRAN (R 4.0.5)                        
##  P lubridate                          1.8.0    2021-10-07 [?] CRAN (R 4.0.5)                        
##  P magrittr                           2.0.1    2020-11-17 [?] CRAN (R 4.0.5)                        
##  P Matrix                             1.3-4    2021-06-01 [?] CRAN (R 4.0.5)                        
##  P MatrixGenerics                     1.2.1    2021-01-30 [?] Bioconductor                          
##  P matrixStats                        0.61.0   2021-09-17 [?] CRAN (R 4.0.5)                        
##  P modelr                             0.1.8    2020-05-19 [?] CRAN (R 4.0.5)                        
##  P munsell                            0.5.0    2018-06-12 [?] CRAN (R 4.0.5)                        
##  P pillar                             1.6.4    2021-10-18 [?] CRAN (R 4.0.5)                        
##  P pkgconfig                          2.0.3    2019-09-22 [?] CRAN (R 4.0.5)                        
##  P purrr                            * 0.3.4    2020-04-17 [?] CRAN (R 4.0.5)                        
##  P R.methodsS3                        1.8.1    2020-08-26 [?] CRAN (R 4.0.5)                        
##  P R.oo                               1.24.0   2020-08-26 [?] CRAN (R 4.0.5)                        
##  P R.utils                            2.11.0   2021-09-26 [?] CRAN (R 4.0.5)                        
##  P R6                                 2.5.1    2021-08-19 [?] CRAN (R 4.0.5)                        
##  P Rcpp                               1.0.7    2021-07-07 [?] CRAN (R 4.0.5)                        
##  P RCurl                              1.98-1.5 2021-09-17 [?] CRAN (R 4.0.5)                        
##  P readr                            * 2.0.2    2021-09-27 [?] CRAN (R 4.0.5)                        
##  P readxl                             1.3.1    2019-03-13 [?] CRAN (R 4.0.5)                        
##  P reprex                             2.0.0    2021-04-02 [?] CRAN (R 4.0.5)                        
##  P rlang                              0.4.12   2021-10-18 [?] CRAN (R 4.0.5)                        
##  P rmarkdown                          2.11     2021-09-14 [?] CRAN (R 4.0.5)                        
##  P rprojroot                          2.0.2    2020-11-15 [?] CRAN (R 4.0.5)                        
##  P Rsamtools                          2.6.0    2020-10-27 [?] Bioconductor                          
##  P rstudioapi                         0.13     2020-11-12 [?] CRAN (R 4.0.5)                        
##  P rtracklayer                      * 1.50.0   2020-10-27 [?] Bioconductor                          
##  P rutils                           * 0.99.2   2022-02-17 [?] Github (RHReynolds/rutils@e0e65c5)    
##  P rvest                              1.0.1    2021-07-26 [?] CRAN (R 4.0.5)                        
##  P S4Vectors                        * 0.28.1   2020-12-09 [?] Bioconductor                          
##  P sass                               0.4.0    2021-05-12 [?] CRAN (R 4.0.5)                        
##  P scales                             1.1.1    2020-05-11 [?] CRAN (R 4.0.5)                        
##  P sessioninfo                      * 1.1.1    2018-11-05 [?] CRAN (R 4.0.5)                        
##  P SNPlocs.Hsapiens.dbSNP144.GRCh37 * 0.99.20  2021-09-22 [?] Bioconductor                          
##  P stringi                            1.7.6    2021-11-29 [?] CRAN (R 4.0.5)                        
##  P stringr                          * 1.4.0    2019-02-10 [?] CRAN (R 4.0.5)                        
##  P SummarizedExperiment               1.20.0   2020-10-27 [?] Bioconductor                          
##  P tibble                           * 3.1.6    2021-11-07 [?] CRAN (R 4.0.5)                        
##  P tidyr                            * 1.1.4    2021-09-27 [?] CRAN (R 4.0.5)                        
##  P tidyselect                         1.1.1    2021-04-30 [?] CRAN (R 4.0.5)                        
##  P tidyverse                        * 1.3.1    2021-04-15 [?] CRAN (R 4.0.5)                        
##  P tzdb                               0.2.0    2021-10-27 [?] CRAN (R 4.0.5)                        
##  P utf8                               1.2.2    2021-07-24 [?] CRAN (R 4.0.5)                        
##  P vctrs                              0.3.8    2021-04-29 [?] CRAN (R 4.0.5)                        
##  P withr                              2.4.3    2021-11-30 [?] CRAN (R 4.0.5)                        
##  P xfun                               0.27     2021-10-18 [?] CRAN (R 4.0.5)                        
##  P XML                                3.99-0.8 2021-09-17 [?] CRAN (R 4.0.5)                        
##  P xml2                               1.3.2    2020-04-23 [?] CRAN (R 4.0.5)                        
##  P XVector                          * 0.30.0   2020-10-27 [?] Bioconductor                          
##  P yaml                               2.2.1    2020-02-01 [?] CRAN (R 4.0.5)                        
##  P zlibbioc                           1.36.0   2020-10-27 [?] Bioconductor                          
## 
## [1] /home/rreynolds/misc_projects/neurodegen-psych-local-corr/renv/library/R-4.0/x86_64-pc-linux-gnu
## [2] /opt/R/4.0.5/lib/R/library
## 
##  P ── Loaded and on-disk path mismatch.