SampleQC
Last updated: 2021-04-28
Checks: 5 2
Knit directory: MS_lesions/
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.
The R Markdown file has unstaged changes. To know which version of the R Markdown file created these results, you’ll want to first commit it to the Git repo. If you’re still working on the analysis, you can ignore this warning. When you’re finished, you can run wflow_publish
to commit the R Markdown file and build the HTML.
The global environment had objects present when the code in the R Markdown file was run. These objects 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. Use wflow_publish
or wflow_build
to ensure that the code is always run in an empty environment.
The following objects were defined in the global environment when these results were created:
Name | Class | Size |
---|---|---|
q | function | 1008 bytes |
The command set.seed(20210118)
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 a6bdc98. 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: .DS_Store
Ignored: .Rhistory
Ignored: .Rprofile
Ignored: .Rproj.user/
Ignored: ._.DS_Store
Ignored: ._MS_lesions.sublime-project
Ignored: MS_lesions.sublime-project
Ignored: MS_lesions.sublime-workspace
Ignored: analysis/.__site.yml
Ignored: analysis/ms02_doublet_id_cache/
Ignored: analysis/ms07_soup_cache/
Ignored: analysis/ms08_modules_cache/
Ignored: analysis/ms10_muscat_run01_cache/
Ignored: analysis/ms10_muscat_run02_cache/
Ignored: analysis/ms10_muscat_template_cache/
Ignored: analysis/supp10_muscat_cache/
Ignored: data/
Ignored: output/
Untracked files:
Untracked: analysis/ms10_muscat_run01.Rmd
Untracked: analysis/ms10_muscat_run02.Rmd
Untracked: analysis/ms10_muscat_template.Rmd
Untracked: code/ms10_muscat_fns.R
Untracked: code/ms10_muscat_runs.R
Untracked: code/muscat_plan.txt
Untracked: code/plot_dotplot.R
Untracked: code/supp10_muscat.R
Unstaged changes:
Modified: analysis/index.Rmd
Modified: analysis/ms03_SampleQC.Rmd
Modified: analysis/ms07_soup.Rmd
Modified: analysis/ms08_modules.Rmd
Modified: analysis/supp10_muscat.Rmd
Modified: code/ms00_utils.R
Modified: code/ms03_SampleQC.R
Modified: code/ms07_soup.R
Deleted: code/ms10_muscat.R
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/ms03_SampleQC.Rmd
) and HTML (docs/ms03_SampleQC.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 | 3f50452 | wmacnair | 2021-02-10 | Running and checking SampleQC |
Rmd | c7a8e50 | wmacnair | 2021-01-19 | Added SampleQC splicing analysis |
source('code/ms00_utils.R')
source('code/ms03_SampleQC.R')
loom_dir = 'data/loom_files'
sce_f = 'data/sce_raw/ms_sce.rds'
dbl_f = 'output/ms02_doublet_id/scDblFinder_outputs.txt'
meta_f = 'data/metadata/metadata_updated_20201127.txt'
save_dir = 'output/ms03_SampleQC'
date_tag = '2021-02-10'
if (!dir.exists(save_dir))
dir.create(save_dir)
qc_f = file.path(save_dir, 'ms_qc_dt.txt')
cols_f = file.path(save_dir, 'cols_dt.txt')
# hard threshold for min counts
min_feats = 300
min_counts = 500
min_cells = 500
# specifications for SampleQC
# qc_names = c('log_counts', 'log_feats', 'logit_mito', 'splice_ratio')
qc_names = c('log_counts', 'logit_mito', 'splice_ratio')
annots_disc = c('patient_id', 'lesion_type', 'seq_pool', 'source', 'disease_status', 'sex')
annots_cont = c('age', 'post_mortem_m', 'med_splice')
# files to save
sampleqc_f = sprintf('%s/sampleQC_obj_%s.rds', save_dir, date_tag)
proj_name = sprintf('MS_lesions_%s', date_tag)
report_f = sprintf('%s/SampleQC_report_%s.html', save_dir, proj_name)
outliers_f = sprintf('%s/outliers_dt_%s.txt', save_dir, date_tag)
keep_f = sprintf('%s/keep_dt_%s.txt', save_dir, date_tag)
# one sample is a massive outlier
outlier_s = 'EU042'
# we want to exclude cells with high splice ratios
splice_cut = 3
qc_dt = make_qc_dt_file(sce_f, qc_f) %>%
.[, .(cell_id,
sample_id = str_match(cell_id, '^((EU|WM)[0-9]{3})')[,2],
log_counts = log10(all_counts),
log_feats = log10(all_feats),
logit_mito = qlogis((mito_counts+1) / (all_counts + 2))
)] %>%
setkey('cell_id')
extract_splice_ratios(loom_dir, save_dir)
extracting spliced, unspliced data
spliced_dt = get_spliced_dt(save_dir)
assert_that( all(sort(qc_dt$cell_id) == sort(spliced_dt$cell_id)))
[1] TRUE
qc_dt = merge(qc_dt, spliced_dt[, -c('matter', 'barcode')], by=c('cell_id', 'sample_id'))
dbl_dt = dbl_f %>% fread %>%
.[, .(cell_id, sample_id=sample, dbl_class=class)]
assert_that( all(sort(qc_dt$cell_id) == sort(dbl_dt$cell_id)))
[1] TRUE
cols_dt = get_cols_dt(sce_f, cols_f) %>%
setnames('library_id', 'sample_id')
patients_dt = cols_dt[, .(sample_id, patient_id)] %>% unique %>%
.[, N:=.N, by=patient_id] %>%
.[ N < 3, patient_id := NA ] %>%
.[, N := NULL]
cols_dt = merge(cols_dt[, -'patient_id'], patients_dt, by='sample_id')
assert_that( all(sort(qc_dt$cell_id) == sort(cols_dt$cell_id)))
[1] TRUE
qc_dt = qc_dt %>% merge(cols_dt, by=c('cell_id', 'sample_id'))
keep_ids = dbl_dt[ dbl_class == 'singlet' ]$cell_id
qc_dt = qc_dt[ cell_id %in% keep_ids ]
qc_dt = qc_dt[(log_counts >= log10(min_counts)) &
(log_feats >= log10(min_feats))]
n_dt = qc_dt[, .N, by=sample_id]
keep_s = n_dt[N >= min_cells]$sample_id
qc_dt = qc_dt[sample_id %in% keep_s]
qc_dt[, med_splice := median(splice_ratio), by=sample_id]
qc_dt = make_qc_dt(qc_dt, qc_names=qc_names)
# define number of components
K_list = c(4, 4, 3, 2, 1, 3, 4, 4, 4)
if (!file.exists(sampleqc_f)) {
# calculate sample-sample distances
set.seed(20210210)
qc_obj = calculate_sample_to_sample_MMDs(qc_dt, qc_names,
annots_disc = annots_disc, annots_cont = annots_cont,
n_cores = 16)
print(table(colData(qc_obj)$group_id))
# fit models
set.seed(20210210)
qc_obj = fit_sampleQC(qc_obj, K_list = K_list)
# save results
saveRDS(qc_obj, file=sampleqc_f)
} else {
# load results
qc_obj = readRDS(sampleqc_f)
}
# extract component means
group_ids = levels(colData(qc_obj)$group_id)
beta_ks = group_ids %>%
lapply(function(g) {
beta_k = metadata(qc_obj)$fit_list[[g]]$beta_k
mu_0 = metadata(qc_obj)$fit_list[[g]]$mu_0
beta_k = sweep(beta_k, 2, mu_0, '+')
assert_that( all(abs(colMeans(beta_k) - mu_0) < 1e-10) )
return(beta_k)
})
# get clusters with positive splice ratio
splice_idx = qc_names == 'splice_ratio'
exc_clusters = lapply(beta_ks,
function(beta_k_mat) which(beta_k_mat[, splice_idx] > splice_cut)
) %>% setNames(group_ids)
exc_clusters = exc_clusters[ sapply(exc_clusters, function(x) length(x) > 0) ]
assert_that(all(sapply(exc_clusters, length) == 1))
[1] TRUE
# get outliers
outliers_dt = get_outliers(qc_obj, exc_clusters=exc_clusters)
outliers_dt[ sample_id == outlier_s, outlier := TRUE ]
# check no samples very small
n_kept_dt = outliers_dt[outlier == FALSE, .N, by=sample_id]
assert_that( all(n_kept_dt$N > min_cells) )
[1] TRUE
keep_dt = outliers_dt[outlier == FALSE, .(sample_id, cell_id)]
(plot_spliced_distns(spliced_dt))
SampleQC
model fits and outliers over QC biaxialsgroup_list = levels(colData(qc_obj)$group_id)
for (g in group_list) {
cat('### ', g, '{.tabset}\n')
# which samples?
samples_g = sort(colData(qc_obj)$sample_id[ colData(qc_obj)$group_id == g ])
for (s in samples_g) {
cat('#### ', s, ' \n')
g_fit = plot_fit_over_biaxials_one_sample(qc_obj, s)
g_out = plot_outliers_one_sample(qc_obj, s, outliers_dt=outliers_dt)
g = g_fit / g_out
print(g)
cat('\n\n')
}
}
samples = qc_dt$sample_id %>% unique %>% sort
# qc_names = c('log_counts', 'logit_mito', 'splice_ratio')
qc_names = c('log_counts', 'log_feats', 'logit_mito', 'splice_ratio')
for (s in samples) {
cat('### ', s, '\n')
print(plot_qc_metric_scatter(qc_dt[ sample_id == s ], qc_names))
cat('\n\n')
}
(plot_totals_split_by_meta(pre_dt = dbl_dt, post_dt = keep_dt, meta_f))
Warning in melt.data.table(., measure = c("n_cells", "n_samples",
"n_patients"), : 'measure.vars' [n_cells, n_samples, n_patients, ...] are not
all of the same type. By order of hierarchy, the molten data value column will
be of type 'double'. All measure variables not of type 'double' will be coerced
too. Check DETAILS in ?melt.data.table for more on coercion.
message('pre QC:')
pre QC:
print(calc_summary_dt(dbl_dt, meta_f))
matter condition n_cells n_samples n_patients
1: WM healthy 86997 17 17
2: WM MS 346512 82 33
3: GM healthy 119310 18 17
4: GM MS 397625 56 21
message('post QC:')
post QC:
print(calc_summary_dt(keep_dt, meta_f))
matter condition n_cells n_samples n_patients
1: WM healthy 71624 16 16
2: WM MS 283389 78 33
3: GM healthy 83309 16 15
4: GM MS 313127 56 21
if (!file.exists(report_f)) {
# render the report
make_SampleQC_report(qc_obj, save_dir, proj_name)
}
fwrite(outliers_dt, file=outliers_f)
fwrite(keep_dt, file=keep_f)
devtools::session_info()
- Session info ---------------------------------------------------------------
setting value
version R version 4.0.3 (2020-10-10)
os CentOS Linux 7 (Core)
system x86_64, linux-gnu
ui X11
language (EN)
collate en_US.UTF-8
ctype C
tz Europe/Zurich
date 2021-04-28
- Packages -------------------------------------------------------------------
package * version date lib
assertthat * 0.2.1 2019-03-21 [2]
Biobase * 2.50.0 2020-10-27 [1]
BiocGenerics * 0.36.1 2021-04-16 [1]
BiocManager 1.30.12 2021-03-28 [1]
BiocParallel 1.24.1 2020-11-06 [1]
BiocStyle * 2.18.1 2020-11-24 [1]
bit 4.0.4 2020-08-04 [2]
bit64 4.0.5 2020-08-30 [2]
bitops 1.0-6 2013-08-17 [2]
bslib 0.2.4 2021-01-25 [2]
cachem 1.0.4 2021-02-13 [2]
callr 3.6.0 2021-03-28 [2]
circlize * 0.4.12 2021-01-08 [1]
cli 2.4.0 2021-04-05 [2]
codetools 0.2-18 2020-11-04 [2]
colorout * 1.2-2 2021-04-15 [1]
colorspace 2.0-0 2020-11-11 [2]
crayon 1.4.1 2021-02-08 [2]
data.table * 1.14.0 2021-02-21 [2]
DBI 1.1.1 2021-01-15 [2]
DelayedArray 0.16.3 2021-03-24 [1]
desc 1.3.0 2021-03-05 [2]
devtools 2.4.0 2021-04-07 [1]
digest 0.6.27 2020-10-24 [2]
dplyr 1.0.5 2021-03-05 [2]
ellipsis 0.3.1 2020-05-15 [2]
evaluate 0.14 2019-05-28 [2]
fansi 0.4.2 2021-01-15 [2]
farver 2.1.0 2021-02-28 [2]
fastmap 1.1.0 2021-01-25 [2]
forcats * 0.5.1 2021-01-27 [2]
fs 1.5.0 2020-07-31 [2]
generics 0.1.0 2020-10-31 [2]
GenomeInfoDb * 1.26.7 2021-04-08 [1]
GenomeInfoDbData 1.2.4 2021-04-15 [1]
GenomicRanges * 1.42.0 2020-10-27 [1]
ggplot2 * 3.3.3 2020-12-30 [2]
git2r 0.28.0 2021-01-10 [1]
GlobalOptions 0.1.2 2020-06-10 [1]
glue 1.4.2 2020-08-27 [2]
gridExtra 2.3 2017-09-09 [2]
gtable 0.3.0 2019-03-25 [2]
gtools 3.8.2 2020-03-31 [2]
hdf5r * 1.3.3 2020-08-18 [2]
highr 0.9 2021-04-16 [2]
htmltools 0.5.1.1 2021-01-22 [2]
httpuv 1.5.5 2021-01-13 [2]
igraph 1.2.6 2020-10-06 [2]
IRanges * 2.24.1 2020-12-12 [1]
iterators * 1.0.13 2020-10-15 [2]
itertools * 0.1-3 2014-03-12 [1]
jquerylib 0.1.3 2020-12-17 [2]
jsonlite 1.7.2 2020-12-09 [2]
kernlab 0.9-29 2019-11-12 [1]
knitr 1.32 2021-04-14 [1]
labeling 0.4.2 2020-10-20 [2]
later 1.1.0.1 2020-06-05 [2]
lattice 0.20-41 2020-04-02 [2]
lifecycle 1.0.0 2021-02-15 [2]
loomR * 0.2.0 2021-04-15 [1]
magrittr * 2.0.1 2020-11-17 [1]
MASS 7.3-53.1 2021-02-12 [2]
Matrix * 1.3-2 2021-01-06 [2]
MatrixGenerics * 1.2.1 2021-01-30 [1]
matrixStats * 0.58.0 2021-01-29 [2]
mclust 5.4.7 2020-11-20 [1]
memoise 2.0.0 2021-01-26 [1]
mixtools 1.2.0 2020-02-07 [1]
munsell 0.5.0 2018-06-12 [2]
mvnfast 0.2.5.1 2020-10-14 [1]
mvtnorm 1.1-1 2020-06-09 [1]
patchwork * 1.1.1 2020-12-17 [2]
pillar 1.6.0 2021-04-13 [2]
pkgbuild 1.2.0 2020-12-15 [1]
pkgconfig 2.0.3 2019-09-22 [2]
pkgload 1.2.1 2021-04-06 [2]
prettyunits 1.1.1 2020-01-24 [2]
processx 3.5.1 2021-04-04 [2]
promises 1.2.0.1 2021-02-11 [2]
ps 1.6.0 2021-02-28 [2]
purrr 0.3.4 2020-04-17 [2]
R6 * 2.5.0 2020-10-28 [2]
RColorBrewer * 1.1-2 2014-12-07 [2]
Rcpp 1.0.6 2021-01-15 [2]
RCurl 1.98-1.3 2021-03-16 [1]
remotes 2.3.0 2021-04-01 [1]
rlang 0.4.10 2020-12-30 [2]
rmarkdown 2.7 2021-02-19 [2]
rprojroot 2.0.2 2020-11-15 [2]
S4Vectors * 0.28.1 2020-12-09 [1]
SampleQC * 0.4.5 2021-04-15 [1]
sass 0.3.1 2021-01-24 [2]
scales * 1.1.1 2020-05-11 [2]
segmented 1.3-3 2021-03-08 [1]
sessioninfo 1.1.1 2018-11-05 [1]
shape 1.4.5 2020-09-13 [2]
SingleCellExperiment * 1.12.0 2020-10-27 [1]
stringi 1.5.3 2020-09-09 [2]
stringr * 1.4.0 2019-02-10 [2]
SummarizedExperiment * 1.20.0 2020-10-27 [1]
survival 3.2-10 2021-03-16 [2]
testthat 3.0.2 2021-02-14 [2]
tibble 3.1.1 2021-04-18 [2]
tidyselect 1.1.0 2020-05-11 [2]
usethis 2.0.1 2021-02-10 [1]
utf8 1.2.1 2021-03-12 [2]
uwot 0.1.10 2020-12-15 [2]
vctrs 0.3.7 2021-03-29 [2]
viridis * 0.6.0 2021-04-15 [1]
viridisLite * 0.4.0 2021-04-13 [2]
whisker 0.4 2019-08-28 [1]
withr 2.4.2 2021-04-18 [2]
workflowr * 1.6.2 2020-04-30 [1]
xfun 0.22 2021-03-11 [1]
XVector 0.30.0 2020-10-27 [1]
yaml 2.2.1 2020-02-01 [2]
zlibbioc 1.36.0 2020-10-27 [1]
source
CRAN (R 4.0.0)
Bioconductor
Bioconductor
CRAN (R 4.0.3)
Bioconductor
Bioconductor
CRAN (R 4.0.2)
CRAN (R 4.0.2)
CRAN (R 4.0.0)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
Github (jalvesaq/colorout@79931fd)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
Bioconductor
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.0)
CRAN (R 4.0.0)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.2)
CRAN (R 4.0.3)
Bioconductor
Bioconductor
Bioconductor
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.0)
CRAN (R 4.0.0)
CRAN (R 4.0.0)
CRAN (R 4.0.2)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
Bioconductor
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.0)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
Github (mojaveazure/loomR@df0144b)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
Bioconductor
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.0)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.0)
CRAN (R 4.0.3)
CRAN (R 4.0.0)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.0)
CRAN (R 4.0.3)
CRAN (R 4.0.0)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
Bioconductor
Github (wmacnair/SampleQC@5e3f021)
CRAN (R 4.0.3)
CRAN (R 4.0.0)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.2)
Bioconductor
CRAN (R 4.0.3)
CRAN (R 4.0.0)
Bioconductor
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.0)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
CRAN (R 4.0.3)
Bioconductor
CRAN (R 4.0.3)
Bioconductor
[1] /pstore/home/macnairw/lib/conda_r3.12
[2] /pstore/home/macnairw/.conda/envs/r_4.0.3/lib/R/library
sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-conda-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)
Matrix products: default
BLAS/LAPACK: /pstore/home/macnairw/.conda/envs/r_4.0.3/lib/libopenblasp-r0.3.12.so
locale:
[1] LC_CTYPE=C 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] parallel stats4 stats graphics grDevices utils datasets
[8] methods base
other attached packages:
[1] SampleQC_0.4.5 SingleCellExperiment_1.12.0
[3] SummarizedExperiment_1.20.0 Biobase_2.50.0
[5] GenomicRanges_1.42.0 GenomeInfoDb_1.26.7
[7] IRanges_2.24.1 S4Vectors_0.28.1
[9] BiocGenerics_0.36.1 MatrixGenerics_1.2.1
[11] matrixStats_0.58.0 Matrix_1.3-2
[13] loomR_0.2.0 itertools_0.1-3
[15] iterators_1.0.13 hdf5r_1.3.3
[17] R6_2.5.0 patchwork_1.1.1
[19] forcats_0.5.1 ggplot2_3.3.3
[21] scales_1.1.1 viridis_0.6.0
[23] viridisLite_0.4.0 assertthat_0.2.1
[25] stringr_1.4.0 data.table_1.14.0
[27] magrittr_2.0.1 circlize_0.4.12
[29] RColorBrewer_1.1-2 BiocStyle_2.18.1
[31] colorout_1.2-2 workflowr_1.6.2
loaded via a namespace (and not attached):
[1] colorspace_2.0-0 ellipsis_0.3.1 mclust_5.4.7
[4] rprojroot_2.0.2 XVector_0.30.0 GlobalOptions_0.1.2
[7] fs_1.5.0 rstudioapi_0.13 farver_2.1.0
[10] remotes_2.3.0 bit64_4.0.5 fansi_0.4.2
[13] mvtnorm_1.1-1 codetools_0.2-18 splines_4.0.3
[16] cachem_1.0.4 knitr_1.32 pkgload_1.2.1
[19] jsonlite_1.7.2 kernlab_0.9-29 uwot_0.1.10
[22] BiocManager_1.30.12 compiler_4.0.3 fastmap_1.1.0
[25] cli_2.4.0 later_1.1.0.1 htmltools_0.5.1.1
[28] prettyunits_1.1.1 tools_4.0.3 igraph_1.2.6
[31] gtable_0.3.0 glue_1.4.2 GenomeInfoDbData_1.2.4
[34] dplyr_1.0.5 Rcpp_1.0.6 jquerylib_0.1.3
[37] vctrs_0.3.7 xfun_0.22 ps_1.6.0
[40] testthat_3.0.2 lifecycle_1.0.0 gtools_3.8.2
[43] devtools_2.4.0 zlibbioc_1.36.0 MASS_7.3-53.1
[46] promises_1.2.0.1 yaml_2.2.1 mvnfast_0.2.5.1
[49] memoise_2.0.0 gridExtra_2.3 sass_0.3.1
[52] segmented_1.3-3 stringi_1.5.3 highr_0.9
[55] desc_1.3.0 pkgbuild_1.2.0 BiocParallel_1.24.1
[58] shape_1.4.5 rlang_0.4.10 pkgconfig_2.0.3
[61] bitops_1.0-6 evaluate_0.14 lattice_0.20-41
[64] purrr_0.3.4 labeling_0.4.2 bit_4.0.4
[67] tidyselect_1.1.0 processx_3.5.1 generics_0.1.0
[70] DelayedArray_0.16.3 DBI_1.1.1 pillar_1.6.0
[73] whisker_0.4 withr_2.4.2 mixtools_1.2.0
[76] survival_3.2-10 RCurl_1.98-1.3 tibble_3.1.1
[79] crayon_1.4.1 utf8_1.2.1 rmarkdown_2.7
[82] usethis_2.0.1 grid_4.0.3 callr_3.6.0
[85] git2r_0.28.0 digest_0.6.27 httpuv_1.5.5
[88] munsell_0.5.0 bslib_0.2.4 sessioninfo_1.1.1