Note: some texts in this report are based on the book Orchestrating Single-Cell Analysis with Bioconductor published under CC BY 4.0


Project: PBMC 1k

  • Institute: Example institute
  • Laboratory: Example laboratory
  • People: Example person 1, Example person 2

1000 peripheral blood mononuclear cells by 10x Genomics

  • Organism: human

Input data: 10x Genomics Cell Ranger data

The feature-barcode matrix was imported from Cell Ranger output (the official quantification tool from 10x Genomics).

Each row of feature-barcode matrix corresponds to a gene, while each column corresponds to a cell barcode. Summary of imported data:

## class: SingleCellExperiment 
## dim: 33538 6794880 
## metadata(1): Samples
## assays(1): counts
## rownames(33538): ENSG00000243485 ENSG00000237613 ... ENSG00000277475
##   ENSG00000268674
## rowData names(3): ID Symbol Type
## colnames(6794880): AAACCCAAGAAACACT-1 AAACCCAAGAAACCAT-1 ...
##   TTTGTTGTCTTTGGCT-1 TTTGTTGTCTTTGTCG-1
## colData names(2): Sample Barcode
## reducedDimNames(0):
## mainExpName: NULL
## altExpNames(0):
Show used functions ▾

Empty droplets

Empty droplets often contain RNA from the ambient solution, resulting in non-zero counts after debarcoding. It is desired to discard such droplets.

Barcode rank plot

A useful diagnostic for droplet-based data is the barcode rank plot, which shows the total UMI (log-)count for each barcode on the y-axis and the (log-)rank on the x-axis. This is effectively a transposed empirical cumulative density plot with log-transformed axes. It is useful as it allows examine the distribution of total UMI counts across barcodes, focusing on those with the largest counts.

The knee and inflection points on the curve mark the transition between two components of the total UMI count distribution. This is assumed to represent the difference between empty droplets with little RNA and cell-containing droplets with much more RNA.

The emptyDroplets lower bound specifies at or below which number of the total UMI count all barcodes are assumed to correspond to empty droplets.

Detecting empty droplets

DropletUtils::emptyDrops() computes Monte Carlo p-values based on a Dirichlet-multinomial model of sampling molecules into droplets. emptyDrops() assumes that libraries with total UMI counts below a certain threshold (100 by default) correspond to empty droplets. These are used to estimate the ambient expression profile against which the remaining libraries are tested. Under this definition, these low-count libraries cannot be cell-containing droplets and are excluded from the hypothesis testing.

Number of non-empty cells: 1206

Droplets detected as cells should show up with large negative log-probabilities or very large total UMI counts (based on the knee point).

Droplets with empty-droplet FDR > 0.01 have been removed. Filtered dataset summary:

## class: SingleCellExperiment 
## dim: 33538 1206 
## metadata(1): Samples
## assays(1): counts
## rownames(33538): ENSG00000243485 ENSG00000237613 ... ENSG00000277475
##   ENSG00000268674
## rowData names(3): ID Symbol Type
## colnames(1206): AAACCCAAGGAGAGTA-1 AAACGCTTCAGCCCAG-1 ...
##   TTTGGTTGTAGAATAC-1 TTTGTTGCAATTAGGA-1
## colData names(3): Sample Barcode is_empty_fdr
## reducedDimNames(0):
## mainExpName: NULL
## altExpNames(0):
Show used functions ▾

Gene + Cell quality filtering

Pre-filtering QC

Given sets of mitochondrial and ribosomal genes in the data, the scater package automatically calculates several per-cell QC metrics:

  • Number of UMI.
  • Number of detected genes (non-zero UMI count).
  • Percentage of expressed mitochondrial genes (\(\frac {UMI_{mitochondrial}} {UMI_{sum}} * 100\)).

Then we can use two different methods to filter cells based on the metrics above:

  • Custom filtering: a standard approach is to filter cells with low amount of reads as well as genes that are present in at least a certain amount of cells, using fixed thresholds. While simple, using fixed thresholds requires knowledge of the experiment and of the experimental protocol.
  • Dataset-sensitive filtering: an alternative approach is to use adaptive, data-driven thresholds to identify outlying cells, based on the set of QC metrics just calculated. We identify cells that are outliers for the various QC metrics, based on the median absolute deviation (MAD) from the median value of each QC metric across all cells. Specifically, a value is considered an outlier if it is more than 3 MADs from the median in the “problematic” direction.

Additionaly, extremely high number of detected genes could indicate doublets (more sensitive doublet detection is done after library normalization). However, depending on the cell type composition in your sample, you may have cells with higher number of genes (and also higher counts) from one cell type.

Now we can plot some of the QC features. Cells are colored by discard_qc, meaning if a cell would be discarded by MAD thresholding on a QC metric.

Show used functions ▾

Filtering

Dataset-sensitive filters

Cell filtering

Filter cells based on QC metrics and MAD threshold (3):

  • Low number of UMI (lower tail).
  • Low number of detected genes (lower tail).
  • High expression of mitochondrial genes (upper tail).

Individual filters were considered jointly (using AND/& operator), i.e., a cell was removed only if violated all of the filters.

Removing 25 low quality cells based on MAD.

Gene filtering

We excluded genes that are not expressed in our system and don’t contribute any information to our experiment. Very lowly expressed genes may only contribute noise.

Table of zero-expression genes count:

zero_expression n percent
1 FALSE 18386 54.8%
2 TRUE 15152 45.2%

Removing 21336 genes with UMI per cell less than 1 and expressed in less than 1 % of all cells.

Info on dataset-sensitive filtered dataset:

## class: SingleCellExperiment 
## dim: 12202 1181 
## metadata(1): Samples
## assays(1): counts
## rownames(12202): ENSG00000237491 ENSG00000225880 ... ENSG00000278817
##   ENSG00000278384
## rowData names(3): ID Symbol Type
## colnames(1181): AAACCCAAGGAGAGTA-1 AAACGCTTCAGCCCAG-1 ...
##   TTTGGTTGTAGAATAC-1 TTTGTTGCAATTAGGA-1
## colData names(14): Sample Barcode ... discard_qc discard_custom
## reducedDimNames(0):
## mainExpName: NULL
## altExpNames(0):

Custom filters

Cell filtering

Filter cells based on custom (fixed) thresholds of QC metrics:

  • <Min; Max> UMI per cell: <1000; 50000>
  • Min. number of features (genes) detected: 1000
  • Max. ratio of mitochondrial genes expression: 0.2

Individual filters were considered jointly (using AND/& operator), i.e., a cell was removed only if violated all of the filters.

Removing 0 low quality cells based on custom thresholds.

Gene filtering

Gene filtering is the same as for the dataset-sensitive filtering, except the cell count and proportion may change. We excluded genes that are not expressed in our system and don’t contribute any information to our experiment. Very lowly expressed genes may only contribute noise.

Table of zero-expression genes count:

zero_expression n percent
1 FALSE 18396 54.9%
2 TRUE 15142 45.1%

Removing 21336 genes with UMI per cell less than 1 and expressed in less than 1 % of all cells.

Info on custom filtered dataset:

## class: SingleCellExperiment 
## dim: 12049 1206 
## metadata(1): Samples
## assays(1): counts
## rownames(12049): ENSG00000237491 ENSG00000225880 ... ENSG00000278817
##   ENSG00000278384
## rowData names(3): ID Symbol Type
## colnames(1206): AAACCCAAGGAGAGTA-1 AAACGCTTCAGCCCAG-1 ...
##   TTTGGTTGTAGAATAC-1 TTTGTTGCAATTAGGA-1
## colData names(14): Sample Barcode ... discard_qc discard_custom
## reducedDimNames(0):
## mainExpName: NULL
## altExpNames(0):

Post-filtering QC

Final filtering selection: using dataset-sensitive filtering.

## class: SingleCellExperiment 
## dim: 12202 1181 
## metadata(1): Samples
## assays(1): counts
## rownames(12202): ENSG00000237491 ENSG00000225880 ... ENSG00000278817
##   ENSG00000278384
## rowData names(5): Type ENSEMBL SYMBOL ENTREZID GENENAME
## colnames(1181): AAACCCAAGGAGAGTA-1 AAACGCTTCAGCCCAG-1 ...
##   TTTGGTTGTAGAATAC-1 TTTGTTGCAATTAGGA-1
## colData names(14): Sample Barcode ... discard_qc discard_custom
## reducedDimNames(0):
## mainExpName: NULL
## altExpNames(0):

Cell and gene number history

filtering_type n_cells n_genes
1 no_filtering 1206 33538
2 qc 1181 12202
3 custom 1206 12049

Dataset-sensitive filtering

Plots of QC metrics after dataset-sensitive filtering. discard_custom means if given cell was discarded in custom filtering.

Filtering based on custom filters

Plots of QC metrics after custom filtering. discard_qc means if given cell was discarded in dataset-sensitive filtering.


Gene annotation

  • Used annotation package: org.Hs.eg.db (v3.15.0)
  • If a single ENSEMBL ID has multiple symbols, gene descriptions, or ENTREZ IDs, they are collapsed by comma (,).
  • ENSEMBL ID is used as a symbol for ENSEMBL IDs with unknown symbols.
  • ENSEMBL ID is appended to symbols having multiple ENSEMBL IDs (e.g. TBCE has both ENSG00000285053 and ENSG00000284770 ENSEMBL IDs assigned -> its symbol is changed to TBCE_ENSG00000285053 and TBCE_ENSG00000284770).
ENSEMBL SYMBOL ENTREZID GENENAME
ENSG00000237491 ENSG00000237491 LINC01409 105378580 long intergenic non-protein coding RNA 1409
ENSG00000225880 ENSG00000225880 LINC00115 79854 long intergenic non-protein coding RNA 115
ENSG00000230368 ENSG00000230368 FAM41C 284593 family with sequence similarity 41 member C
ENSG00000188976 ENSG00000188976 NOC2L 26155 NOC2 like nucleolar associated transcriptional repressor
ENSG00000187961 ENSG00000187961 KLHL17 339451 kelch like family member 17
ENSG00000188290 ENSG00000188290 HES4 57801 hes family bHLH transcription factor 4


Show input parameters

Main config

## $PROJECT_NAME
## [1] "PBMC 1k"
## 
## $PROJECT_DESCRIPTION
## [1] "1000 peripheral blood mononuclear cells by 10x Genomics"
## 
## $INSTITUTE
## [1] "Example institute"
## 
## $LABORATORY
## [1] "Example laboratory"
## 
## $PEOPLE
## [1] "Example person 1, Example person 2"
## 
## $ORGANISM
## [1] "human"
## 
## $ANNOTATION_LIST
## $ANNOTATION_LIST$human
## [1] "org.Hs.eg.db"
## 
## $ANNOTATION_LIST$mouse
## [1] "org.Mm.eg.db"
## 
## 
## $ENSEMBL_SPECIES
## [1] "Homo_sapiens"
## 
## $CSS_FILE
## [1] "/home/rstudio/shared/scdrake_run_tests_20231202_01-1.5.1-bioc3.15-docker/pipeline_outputs/example_data/pbmc1k/Rmd/common/stylesheet.css"
## 
## $BASE_OUT_DIR
## [1] "/home/rstudio/shared/scdrake_run_tests_20231202_01-1.5.1-bioc3.15-docker/pipeline_outputs/example_data/pbmc1k/output"
## 
## $ANNOTATION_DB_FILE
## [1] "/usr/local/lib/R/site-library/org.Hs.eg.db/extdata/org.Hs.eg.sqlite"
## 
## $ANNOTATION_PKG
## [1] "org.Hs.eg.db"
## 
## attr(,"class")
## [1] "scdrake_list" "list"

Input QC config

## $INPUT_DATA
## $INPUT_DATA$type
## [1] "cellranger"
## 
## $INPUT_DATA$path
## [1] "/home/rstudio/shared/scdrake_run_tests_20231202_01-1.5.1-bioc3.15-docker/pipeline_outputs/example_data/pbmc1k/../data/pbmc1k"
## 
## $INPUT_DATA$delimiter
## [1] ","
## 
## $INPUT_DATA$target_name
## [1] "target_name"
## 
## 
## $INPUT_QC_REPORT_RMD_FILE
## [1] "/home/rstudio/shared/scdrake_run_tests_20231202_01-1.5.1-bioc3.15-docker/pipeline_outputs/example_data/pbmc1k/Rmd/single_sample/01_input_qc.Rmd"
## 
## $INPUT_DATA_SUBSET
## NULL
## 
## $EMPTY_DROPLETS_ENABLED
## [1] TRUE
## 
## $EMPTY_DROPLETS_LOWER
## [1] 100
## 
## $EMPTY_DROPLETS_FDR_THRESHOLD
## [1] 0.01
## 
## $ENABLE_CELL_FILTERING
## [1] TRUE
## 
## $SAVE_DATASET_SENSITIVE_FILTERING
## [1] TRUE
## 
## $MAD_THRESHOLD
## [1] 3
## 
## $DATASET_SENSITIVE_FILTERS_OPERATOR
## [1] "&"
## 
## $MIN_UMI_CF
## [1] 1000
## 
## $MAX_UMI_CF
## [1] 50000
## 
## $MIN_FEATURES
## [1] 1000
## 
## $MAX_MITO_RATIO
## [1] 0.2
## 
## $CUSTOM_FILTERS_OPERATOR
## [1] "&"
## 
## $ENABLE_GENE_FILTERING
## [1] TRUE
## 
## $MITO_REGEX
## [1] "^MT-"
## 
## $RIBO_REGEX
## [1] "^RP[SL]"
## 
## $MIN_UMI
## [1] 1
## 
## $MIN_RATIO_CELLS
## [1] 0.01
## 
## $INPUT_QC_BASE_OUT_DIR
## [1] "/home/rstudio/shared/scdrake_run_tests_20231202_01-1.5.1-bioc3.15-docker/pipeline_outputs/example_data/pbmc1k/output/01_input_qc"
## 
## $INPUT_QC_REPORT_HTML_FILE
## [1] "/home/rstudio/shared/scdrake_run_tests_20231202_01-1.5.1-bioc3.15-docker/pipeline_outputs/example_data/pbmc1k/output/01_input_qc/01_input_qc.html"
## 
## $INPUT_QC_KNITR_MESSAGE
## [1] FALSE
## 
## $INPUT_QC_KNITR_WARNING
## [1] FALSE
## 
## $INPUT_QC_KNITR_ECHO
## [1] FALSE
## 
## attr(,"class")
## [1] "scdrake_list" "list"

Show runtime info

drake cache directory

/home/rstudio/shared/scdrake_run_tests_20231202_01-1.5.1-bioc3.15-docker/pipeline_outputs/example_data/pbmc1k/.drake

Traceback and warnings

## No traceback available

Bioconductor version

3.15

External libs

##                                                      zlib 
##                                                  "1.2.11" 
##                                                     bzlib 
##                                      "1.0.8, 13-Jul-2019" 
##                                                        xz 
##                                                   "5.2.4" 
##                                                      PCRE 
##                                        "10.34 2019-11-21" 
##                                                       ICU 
##                                                    "66.1" 
##                                                       TRE 
##                                 "TRE 0.8.0 R_fixes (BSD)" 
##                                                     iconv 
##                                              "glibc 2.31" 
##                                                  readline 
##                                                     "8.0" 
##                                                      BLAS 
## "/usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3"

Session info (pretty)

## ─ Session info ───────────────────────────────────────────────────────────────
##  setting  value
##  version  R version 4.2.1 (2022-06-23)
##  os       Ubuntu 20.04.4 LTS
##  system   x86_64, linux-gnu
##  ui       X11
##  language en
##  collate  C
##  ctype    en_US.UTF-8
##  tz       Etc/UTC
##  date     2023-12-02
##  pandoc   2.18 @ /usr/local/bin/ (via rmarkdown)
## 
## ─ Packages ───────────────────────────────────────────────────────────────────
##  !  package                * version    date (UTC) lib source
##     abind                    1.4-5      2016-07-21 [1] RSPM (R 4.2.0)
##     AnnotationDbi          * 1.58.0     2022-04-26 [1] Bioconductor
##     AnnotationFilter       * 1.20.0     2022-04-26 [1] Bioconductor
##     AnnotationHub            3.4.0      2022-04-26 [1] Bioconductor
##     argparser                0.7.1      2021-03-08 [1] RSPM (R 4.2.0)
##     assertthat               0.2.1      2019-03-21 [1] CRAN (R 4.2.0)
##     backports                1.4.1      2021-12-13 [1] RSPM (R 4.2.0)
##     base64url                1.4        2018-05-14 [1] RSPM (R 4.2.0)
##     batchelor                1.12.3     2022-06-23 [1] Bioconductor
##     beachmat                 2.12.0     2022-04-26 [1] Bioconductor
##     beeswarm                 0.4.0      2021-06-01 [1] RSPM (R 4.2.0)
##     Biobase                * 2.56.0     2022-04-26 [1] Bioconductor
##     BiocFileCache            2.4.0      2022-04-26 [1] Bioconductor
##     BiocGenerics           * 0.42.0     2022-04-26 [1] Bioconductor
##     BiocIO                   1.6.0      2022-04-26 [1] Bioconductor
##     BiocManager              1.30.19    2022-10-25 [1] RSPM (R 4.2.0)
##     BiocNeighbors            1.14.0     2022-04-26 [1] Bioconductor
##     BiocParallel             1.30.4     2022-10-11 [1] Bioconductor
##     BiocSingular             1.12.0     2022-04-26 [1] Bioconductor
##     BiocVersion              3.15.2     2022-03-29 [1] Bioconductor
##     biomaRt                  2.52.0     2022-04-26 [1] Bioconductor
##     Biostrings               2.64.1     2022-08-18 [1] Bioconductor
##     bit                      4.0.5      2022-11-15 [1] RSPM (R 4.2.0)
##     bit64                    4.0.5      2020-08-30 [1] CRAN (R 4.2.0)
##     bitops                   1.0-7      2021-04-24 [1] CRAN (R 4.2.0)
##     blob                     1.2.3      2022-04-10 [1] CRAN (R 4.2.0)
##     bluster                  1.6.0      2022-04-26 [1] Bioconductor
##     brio                     1.1.3      2021-11-30 [1] CRAN (R 4.2.0)
##     bslib                    0.4.1      2022-11-02 [1] RSPM (R 4.2.0)
##     cachem                   1.0.6      2021-08-19 [1] CRAN (R 4.2.0)
##     callr                    3.7.3      2022-11-02 [1] RSPM (R 4.2.0)
##     celldex                  1.6.0      2022-04-28 [1] Bioconductor
##     class                    7.3-20     2022-01-16 [2] CRAN (R 4.2.1)
##     cli                    * 3.4.1      2022-09-23 [1] RSPM (R 4.2.0)
##     cluster                  2.1.3      2022-03-28 [2] CRAN (R 4.2.1)
##     clustermq                0.8.8      2019-06-05 [1] RSPM (R 4.2.1)
##     clustree                 0.5.0      2022-06-25 [1] RSPM (R 4.2.0)
##     codetools                0.2-18     2020-11-04 [2] CRAN (R 4.2.1)
##     colorspace               2.0-3      2022-02-21 [1] CRAN (R 4.2.0)
##     conflicted             * 1.1.0      2021-11-26 [1] RSPM (R 4.2.0)
##     cowplot                  1.1.1      2020-12-30 [1] RSPM (R 4.2.0)
##     crayon                   1.5.2      2022-09-29 [1] RSPM (R 4.2.0)
##     curl                     4.3.3      2022-10-06 [1] RSPM (R 4.2.0)
##     data.table               1.14.6     2022-11-16 [1] RSPM (R 4.2.0)
##     DBI                      1.1.3      2022-06-18 [1] RSPM (R 4.2.0)
##     dbplyr                   2.2.1      2022-06-27 [1] RSPM (R 4.2.0)
##     DelayedArray           * 0.22.0     2022-04-26 [1] Bioconductor
##     DelayedMatrixStats       1.18.2     2022-10-13 [1] Bioconductor
##     deldir                   1.0-6      2021-10-23 [1] RSPM (R 4.2.0)
##     DEoptimR                 1.0-11     2022-04-03 [1] CRAN (R 4.2.0)
##     desc                     1.4.2      2022-09-08 [1] RSPM (R 4.2.0)
##     devtools                 2.4.4      2022-07-20 [1] RSPM (R 4.2.0)
##     digest                   0.6.30     2022-10-18 [1] RSPM (R 4.2.0)
##     downlit                  0.4.2      2022-07-05 [1] RSPM (R 4.2.0)
##     dplyr                    1.0.10     2022-09-01 [1] RSPM (R 4.2.0)
##     dqrng                    0.3.0      2021-05-01 [1] RSPM (R 4.2.0)
##     drake                  * 7.13.4     2022-08-19 [1] RSPM (R 4.2.0)
##     DropletUtils             1.16.0     2022-04-26 [1] Bioconductor
##     DT                       0.26       2022-10-19 [1] RSPM (R 4.2.0)
##     e1071                    1.7-12     2022-10-24 [1] RSPM (R 4.2.0)
##     edgeR                    3.38.4     2022-08-07 [1] Bioconductor
##     ellipsis                 0.3.2      2021-04-29 [1] CRAN (R 4.2.0)
##     ensembldb              * 2.20.2     2022-06-16 [1] Bioconductor
##     evaluate                 0.18       2022-11-07 [1] RSPM (R 4.2.0)
##     ExperimentHub            2.4.0      2022-04-26 [1] Bioconductor
##     fansi                    1.0.3      2022-03-24 [1] CRAN (R 4.2.0)
##     farver                   2.1.1      2022-07-06 [1] RSPM (R 4.2.0)
##     fastmap                  1.1.0      2021-01-25 [1] CRAN (R 4.2.0)
##     filelock                 1.0.2      2018-10-05 [1] CRAN (R 4.2.0)
##     fitdistrplus             1.1-8      2022-03-10 [1] RSPM (R 4.2.0)
##     fs                       1.5.2      2021-12-08 [1] CRAN (R 4.2.0)
##     future                   1.29.0     2022-11-06 [1] RSPM (R 4.2.0)
##     future.apply             1.10.0     2022-11-05 [1] RSPM (R 4.2.0)
##     generics                 0.1.3      2022-07-05 [1] RSPM (R 4.2.0)
##     GenomeInfoDb           * 1.32.4     2022-09-06 [1] Bioconductor
##     GenomeInfoDbData         1.2.8      2022-05-02 [1] Bioconductor
##     GenomicAlignments        1.32.1     2022-07-24 [1] Bioconductor
##     GenomicFeatures        * 1.48.4     2022-09-20 [1] Bioconductor
##     GenomicRanges          * 1.48.0     2022-04-26 [1] Bioconductor
##     ggbeeswarm               0.6.0      2017-08-07 [1] RSPM (R 4.2.0)
##     ggforce                  0.4.1      2022-10-04 [1] RSPM (R 4.2.0)
##     ggplot2                  3.4.0      2022-11-04 [1] RSPM (R 4.2.0)
##     ggplotify                0.1.0      2021-09-02 [1] RSPM (R 4.2.0)
##     ggraph                   2.1.0      2022-10-09 [1] RSPM (R 4.2.0)
##     ggrepel                  0.9.2      2022-11-06 [1] RSPM (R 4.2.0)
##     ggridges                 0.5.4      2022-09-26 [1] RSPM (R 4.2.0)
##     glmGamPoi                1.8.0      2022-04-26 [1] Bioconductor
##     globals                  0.16.2     2022-11-21 [1] RSPM (R 4.2.0)
##     glue                     1.6.2      2022-02-24 [1] CRAN (R 4.2.0)
##     goftest                  1.2-3      2021-10-07 [1] RSPM (R 4.2.0)
##     graphlayouts             0.8.4      2022-11-24 [1] RSPM (R 4.2.0)
##     gridExtra                2.3        2017-09-09 [1] CRAN (R 4.2.0)
##     gridGraphics             0.5-1      2020-12-13 [1] RSPM (R 4.2.0)
##     gtable                   0.3.1      2022-09-01 [1] RSPM (R 4.2.0)
##     harmony                  0.1.1      2022-11-14 [1] RSPM (R 4.2.0)
##     HDF5Array              * 1.24.2     2022-08-02 [1] Bioconductor
##     here                   * 1.0.1      2020-12-13 [1] RSPM (R 4.2.0)
##     highr                    0.9        2021-04-16 [1] CRAN (R 4.2.0)
##     hms                      1.1.2      2022-08-19 [1] RSPM (R 4.2.0)
##     htmltools                0.5.3      2022-07-18 [1] RSPM (R 4.2.0)
##     htmlwidgets              1.5.4      2021-09-08 [1] CRAN (R 4.2.0)
##     httpuv                   1.6.6      2022-09-08 [1] RSPM (R 4.2.0)
##     httr                     1.4.4      2022-08-17 [1] RSPM (R 4.2.0)
##     ica                      1.0-3      2022-07-08 [1] RSPM (R 4.2.0)
##     igraph                   1.3.5      2022-09-22 [1] RSPM (R 4.2.0)
##     interactiveDisplayBase   1.34.0     2022-04-26 [1] Bioconductor
##     IRanges                * 2.30.1     2022-08-18 [1] Bioconductor
##     irlba                    2.3.5.1    2022-10-03 [1] RSPM (R 4.2.0)
##     janitor                  2.1.0      2021-01-05 [1] RSPM (R 4.2.0)
##     jquerylib                0.1.4      2021-04-26 [1] CRAN (R 4.2.0)
##     jsonlite                 1.8.4      2022-12-06 [1] RSPM (R 4.2.0)
##     kableExtra               1.3.4      2021-02-20 [1] RSPM (R 4.2.0)
##     KEGGREST                 1.36.3     2022-07-12 [1] Bioconductor
##     KernSmooth               2.23-20    2021-05-03 [2] CRAN (R 4.2.1)
##     knitr                    1.41       2022-11-18 [1] RSPM (R 4.2.0)
##     labeling                 0.4.2      2020-10-20 [1] CRAN (R 4.2.0)
##     later                    1.3.0      2021-08-18 [1] CRAN (R 4.2.0)
##     lattice                  0.20-45    2021-09-22 [2] CRAN (R 4.2.1)
##     lazyeval                 0.2.2      2019-03-15 [1] CRAN (R 4.2.0)
##     leiden                   0.4.3      2022-09-10 [1] RSPM (R 4.2.0)
##     lifecycle                1.0.3      2022-10-07 [1] RSPM (R 4.2.0)
##     limma                    3.52.4     2022-09-27 [1] Bioconductor
##     listenv                  0.8.0      2019-12-05 [1] RSPM (R 4.2.0)
##     littler                  0.3.17     2023-05-26 [1] Github (eddelbuettel/littler@31aa160)
##     lmtest                   0.9-40     2022-03-21 [1] RSPM (R 4.2.0)
##     locfit                   1.5-9.6    2022-07-11 [1] RSPM (R 4.2.0)
##     lubridate                1.9.0      2022-11-06 [1] RSPM (R 4.2.0)
##     magrittr               * 2.0.3      2022-03-30 [1] CRAN (R 4.2.0)
##     MASS                     7.3-58.1   2022-08-03 [2] RSPM (R 4.2.0)
##     Matrix                 * 1.5-3      2022-11-11 [1] RSPM (R 4.2.0)
##     MatrixGenerics         * 1.8.1      2022-06-26 [1] Bioconductor
##     matrixStats            * 0.63.0     2022-11-18 [1] RSPM (R 4.2.0)
##     memoise                  2.0.1      2021-11-26 [1] CRAN (R 4.2.0)
##     metapod                  1.4.0      2022-04-26 [1] Bioconductor
##     mime                     0.12       2021-09-28 [1] CRAN (R 4.2.0)
##     miniUI                   0.1.1.1    2018-05-18 [1] RSPM (R 4.2.0)
##     munsell                  0.5.0      2018-06-12 [1] CRAN (R 4.2.0)
##     mvtnorm                  1.1-3      2021-10-08 [1] CRAN (R 4.2.0)
##     nlme                     3.1-158    2022-06-15 [2] RSPM (R 4.2.0)
##     org.Hs.eg.db             3.15.0     2022-04-11 [1] Bioconductor
##     parallelly               1.32.1     2022-07-21 [1] RSPM (R 4.2.0)
##     patchwork                1.1.2      2022-08-19 [1] RSPM (R 4.2.0)
##     pbapply                  1.6-0      2022-11-16 [1] RSPM (R 4.2.0)
##     pcaPP                    2.0-3      2022-10-24 [1] RSPM (R 4.2.0)
##     PCAtools                 2.8.0      2022-04-26 [1] Bioconductor
##     pheatmap                 1.0.12     2019-01-04 [1] RSPM (R 4.2.0)
##     pillar                   1.8.1      2022-08-19 [1] RSPM (R 4.2.0)
##     pkgbuild                 1.3.1      2021-12-20 [1] RSPM (R 4.2.0)
##     pkgconfig                2.0.3      2019-09-22 [1] CRAN (R 4.2.0)
##     pkgload                  1.3.2      2022-11-16 [1] RSPM (R 4.2.0)
##     plotly                   4.10.1     2022-11-07 [1] RSPM (R 4.2.0)
##     plyr                     1.8.8      2022-11-11 [1] RSPM (R 4.2.0)
##     png                      0.1-8      2022-11-29 [1] RSPM (R 4.2.0)
##     polyclip                 1.10-4     2022-10-20 [1] RSPM (R 4.2.0)
##     prettyunits              1.1.1      2020-01-24 [1] CRAN (R 4.2.0)
##     processx                 3.8.0      2022-10-26 [1] RSPM (R 4.2.0)
##     profvis                  0.3.7      2020-11-02 [1] RSPM (R 4.2.0)
##     progress                 1.2.2      2019-05-16 [1] CRAN (R 4.2.0)
##     progressr                0.11.0     2022-09-02 [1] RSPM (R 4.2.0)
##     promises                 1.2.0.1    2021-02-11 [1] CRAN (R 4.2.0)
##     ProtGenerics             1.28.0     2022-04-26 [1] Bioconductor
##     proxy                    0.4-27     2022-06-09 [1] RSPM (R 4.2.0)
##     ps                       1.7.2      2022-10-26 [1] RSPM (R 4.2.0)
##     purrr                    0.3.5      2022-10-06 [1] RSPM (R 4.2.0)
##     qs                       0.25.4     2022-08-09 [1] RSPM (R 4.2.0)
##     R.methodsS3              1.8.2      2022-06-13 [1] RSPM (R 4.2.0)
##     R.oo                     1.25.0     2022-06-12 [1] RSPM (R 4.2.0)
##     R.utils                  2.12.2     2022-11-11 [1] RSPM (R 4.2.0)
##     R6                       2.5.1      2021-08-19 [1] CRAN (R 4.2.0)
##     RANN                     2.6.1      2019-01-08 [1] RSPM (R 4.2.0)
##     RApiSerialize            0.1.2      2022-08-25 [1] RSPM (R 4.2.0)
##     rappdirs                 0.3.3      2021-01-31 [1] CRAN (R 4.2.0)
##     RColorBrewer             1.1-3      2022-04-03 [1] CRAN (R 4.2.0)
##     Rcpp                     1.0.9      2022-07-08 [1] RSPM (R 4.2.0)
##     RcppAnnoy                0.0.20     2022-10-27 [1] RSPM (R 4.2.0)
##     RcppParallel             5.1.5      2022-01-05 [1] RSPM (R 4.2.0)
##     RCurl                    1.98-1.9   2022-10-03 [1] RSPM (R 4.2.0)
##     readr                    2.1.3      2022-10-01 [1] RSPM (R 4.2.0)
##     remotes                  2.4.2      2021-11-30 [1] RSPM (R 4.2.0)
##     reshape2                 1.4.4      2020-04-09 [1] CRAN (R 4.2.0)
##     ResidualMatrix           1.6.1      2022-08-16 [1] Bioconductor
##     restfulr                 0.0.15     2022-06-16 [1] RSPM (R 4.2.0)
##     reticulate               1.26       2022-08-31 [1] RSPM (R 4.2.0)
##     rhdf5                  * 2.40.0     2022-04-26 [1] Bioconductor
##     rhdf5filters             1.8.0      2022-04-26 [1] Bioconductor
##     Rhdf5lib                 1.18.2     2022-05-15 [1] Bioconductor
##     RhpcBLASctl              0.21-247.1 2021-11-05 [1] RSPM (R 4.2.0)
##     rjson                    0.2.21     2022-01-09 [1] CRAN (R 4.2.0)
##     rlang                  * 1.0.6      2022-09-24 [1] RSPM (R 4.2.0)
##     rmarkdown                2.18       2022-11-09 [1] RSPM (R 4.2.0)
##     robustbase               0.95-0     2022-04-02 [1] CRAN (R 4.2.0)
##     ROCR                     1.0-11     2020-05-02 [1] CRAN (R 4.2.0)
##     rprojroot                2.0.3      2022-04-02 [1] CRAN (R 4.2.0)
##     rrcov                    1.7-2      2022-10-24 [1] RSPM (R 4.2.0)
##     Rsamtools                2.12.0     2022-04-26 [1] Bioconductor
##     RSQLite                  2.2.19     2022-11-24 [1] RSPM (R 4.2.0)
##     rstudioapi               0.14       2022-08-22 [1] RSPM (R 4.2.0)
##     rsvd                     1.0.5      2021-04-16 [1] RSPM (R 4.2.0)
##     rtracklayer              1.56.1     2022-06-23 [1] Bioconductor
##     Rtsne                    0.16       2022-04-17 [1] RSPM (R 4.2.0)
##     rvest                    1.0.3      2022-08-19 [1] RSPM (R 4.2.0)
##     rzmq                     0.9.8      2021-05-04 [1] RSPM (R 4.2.0)
##     S4Vectors              * 0.34.0     2022-04-26 [1] Bioconductor
##     sass                     0.4.4      2022-11-24 [1] RSPM (R 4.2.0)
##     SC3                      1.15.1     2023-05-26 [1] Github (gorgitko/SC3@58d73fb)
##     ScaledMatrix             1.4.1      2022-09-11 [1] Bioconductor
##     scales                   1.2.1      2022-08-20 [1] RSPM (R 4.2.0)
##     scater                   1.24.0     2022-04-26 [1] Bioconductor
##     scattermore              0.8        2022-02-14 [1] RSPM (R 4.2.0)
##     scDblFinder              1.10.0     2022-04-26 [1] Bioconductor
##  VP scdrake                * 1.5.1      2023-06-15 [?] Bioconductor (on disk 1.5.0)
##     scran                    1.24.1     2022-09-11 [1] Bioconductor
##     sctransform              0.3.5      2022-09-21 [1] RSPM (R 4.2.0)
##     scuttle                  1.6.3      2022-08-23 [1] Bioconductor
##     sessioninfo              1.2.2      2021-12-06 [1] RSPM (R 4.2.0)
##     Seurat                   4.3.0      2022-11-18 [1] RSPM (R 4.2.0)
##     SeuratObject             4.1.3      2022-11-07 [1] RSPM (R 4.2.0)
##     shiny                    1.7.3      2022-10-25 [1] RSPM (R 4.2.0)
##     SingleCellExperiment     1.18.1     2022-10-02 [1] Bioconductor
##     SingleR                  1.10.0     2022-04-26 [1] Bioconductor
##     snakecase                0.11.0     2019-05-25 [1] RSPM (R 4.2.0)
##     sp                       1.5-1      2022-11-07 [1] RSPM (R 4.2.0)
##     sparseMatrixStats        1.8.0      2022-04-26 [1] Bioconductor
##     spatstat.data            3.0-0      2022-10-21 [1] RSPM (R 4.2.0)
##     spatstat.explore         3.0-5      2022-11-10 [1] RSPM (R 4.2.0)
##     spatstat.geom            3.0-3      2022-10-25 [1] RSPM (R 4.2.0)
##     spatstat.random          3.0-1      2022-11-03 [1] RSPM (R 4.2.0)
##     spatstat.sparse          3.0-0      2022-10-21 [1] RSPM (R 4.2.0)
##     spatstat.utils           3.0-1      2022-10-19 [1] RSPM (R 4.2.0)
##     statmod                  1.4.37     2022-08-12 [1] RSPM (R 4.2.0)
##     storr                    1.2.5      2020-12-01 [1] RSPM (R 4.2.0)
##     stringfish               0.15.7     2022-04-13 [1] RSPM (R 4.2.0)
##     stringi                  1.7.8      2022-07-11 [1] RSPM (R 4.2.0)
##     stringr                  1.5.0      2022-12-02 [1] RSPM (R 4.2.0)
##     SummarizedExperiment     1.26.1     2022-04-29 [1] Bioconductor
##     survival                 3.3-1      2022-03-03 [2] CRAN (R 4.2.1)
##     svglite                  2.1.0      2022-02-03 [1] RSPM (R 4.2.0)
##     systemfonts              1.0.4      2022-02-11 [1] RSPM (R 4.2.0)
##     tensor                   1.5        2012-05-05 [1] RSPM (R 4.2.0)
##     testthat               * 3.1.5      2022-10-08 [1] RSPM (R 4.2.0)
##     tibble                   3.1.8      2022-07-22 [1] RSPM (R 4.2.0)
##     tidygraph                1.2.3      2023-02-01 [1] RSPM (R 4.2.0)
##     tidyr                    1.2.1      2022-09-08 [1] RSPM (R 4.2.0)
##     tidyselect               1.1.2      2022-02-21 [1] RSPM (R 4.2.0)
##     timechange               0.1.1      2022-11-04 [1] RSPM (R 4.2.0)
##     tweenr                   2.0.2      2022-09-06 [1] RSPM (R 4.2.0)
##     txtq                     0.2.4      2021-03-27 [1] RSPM (R 4.2.0)
##     tzdb                     0.3.0      2022-03-28 [1] CRAN (R 4.2.0)
##     urlchecker               1.0.1      2021-11-30 [1] RSPM (R 4.2.0)
##     usethis                  2.1.6      2022-05-25 [1] RSPM (R 4.2.0)
##     utf8                     1.2.2      2021-07-24 [1] CRAN (R 4.2.0)
##     uwot                     0.1.14     2022-08-22 [1] RSPM (R 4.2.0)
##     vctrs                    0.5.1      2022-11-16 [1] RSPM (R 4.2.0)
##     vipor                    0.4.5      2017-03-22 [1] RSPM (R 4.2.0)
##     viridis                  0.6.2      2021-10-13 [1] CRAN (R 4.2.0)
##     viridisLite              0.4.1      2022-08-22 [1] RSPM (R 4.2.0)
##     webshot                  0.5.4      2022-09-26 [1] RSPM (R 4.2.0)
##     withr                    2.5.0      2022-03-03 [1] CRAN (R 4.2.0)
##     WriteXLS                 6.4.0      2022-02-24 [1] RSPM (R 4.2.0)
##     xfun                     0.35       2022-11-16 [1] RSPM (R 4.2.0)
##     xgboost                  1.6.0.1    2022-04-16 [1] RSPM (R 4.2.0)
##     XML                      3.99-0.13  2022-12-04 [1] RSPM (R 4.2.0)
##     xml2                     1.3.3      2021-11-30 [1] CRAN (R 4.2.0)
##     xtable                   1.8-4      2019-04-21 [1] CRAN (R 4.2.0)
##     XVector                  0.36.0     2022-04-26 [1] Bioconductor
##     yaml                     2.3.6      2022-10-18 [1] RSPM (R 4.2.0)
##     yulab.utils              0.0.5      2022-06-30 [1] RSPM (R 4.2.0)
##     zlibbioc                 1.42.0     2022-04-26 [1] Bioconductor
##     zoo                      1.8-11     2022-09-17 [1] RSPM (R 4.2.0)
## 
##  [1] /usr/local/lib/R/site-library
##  [2] /usr/local/lib/R/library
## 
##  V ── Loaded and on-disk version mismatch.
##  P ── Loaded and on-disk path mismatch.
## 
## ──────────────────────────────────────────────────────────────────────────────

Session info (base)

## R version 4.2.1 (2022-06-23)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.4 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=C              
##  [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 stats4   utils    methods  base    
## 
## other attached packages:
##  [1] ensembldb_2.20.2        AnnotationFilter_1.20.0 GenomicFeatures_1.48.4 
##  [4] GenomicRanges_1.48.0    GenomeInfoDb_1.32.4     HDF5Array_1.24.2       
##  [7] rhdf5_2.40.0            DelayedArray_0.22.0     MatrixGenerics_1.8.1   
## [10] matrixStats_0.63.0      Matrix_1.5-3            drake_7.13.4           
## [13] AnnotationDbi_1.58.0    IRanges_2.30.1          S4Vectors_0.34.0       
## [16] Biobase_2.56.0          BiocGenerics_0.42.0     scdrake_1.5.1          
## [19] testthat_3.1.5          magrittr_2.0.3          here_1.0.1             
## [22] cli_3.4.1               rlang_1.0.6             conflicted_1.1.0       
## 
## loaded via a namespace (and not attached):
##   [1] rsvd_1.0.5                    ica_1.0-3                    
##   [3] svglite_2.1.0                 class_7.3-20                 
##   [5] ps_1.7.2                      Rsamtools_2.12.0             
##   [7] lmtest_0.9-40                 rprojroot_2.0.3              
##   [9] crayon_1.5.2                  MASS_7.3-58.1                
##  [11] rhdf5filters_1.8.0            nlme_3.1-158                 
##  [13] WriteXLS_6.4.0                backports_1.4.1              
##  [15] XVector_0.36.0                ROCR_1.0-11                  
##  [17] irlba_2.3.5.1                 callr_3.7.3                  
##  [19] limma_3.52.4                  scater_1.24.0                
##  [21] filelock_1.0.2                stringfish_0.15.7            
##  [23] xgboost_1.6.0.1               qs_0.25.4                    
##  [25] BiocParallel_1.30.4           rjson_0.2.21                 
##  [27] bit64_4.0.5                   glue_1.6.2                   
##  [29] harmony_0.1.1                 scDblFinder_1.10.0           
##  [31] pheatmap_1.0.12               sctransform_0.3.5            
##  [33] parallel_4.2.1                processx_3.8.0               
##  [35] vipor_0.4.5                   spatstat.sparse_3.0-0        
##  [37] base64url_1.4                 spatstat.geom_3.0-3          
##  [39] tidyselect_1.1.2              SummarizedExperiment_1.26.1  
##  [41] usethis_2.1.6                 argparser_0.7.1              
##  [43] SeuratObject_4.1.3            fitdistrplus_1.1-8           
##  [45] XML_3.99-0.13                 tidyr_1.2.1                  
##  [47] zoo_1.8-11                    GenomicAlignments_1.32.1     
##  [49] xtable_1.8-4                  evaluate_0.18                
##  [51] ggplot2_3.4.0                 scuttle_1.6.3                
##  [53] zlibbioc_1.42.0               rstudioapi_0.14              
##  [55] miniUI_0.1.1.1                sp_1.5-1                     
##  [57] bslib_0.4.1                   shiny_1.7.3                  
##  [59] BiocSingular_1.12.0           xfun_0.35                    
##  [61] pkgbuild_1.3.1                cluster_2.1.3                
##  [63] tidygraph_1.2.3               KEGGREST_1.36.3              
##  [65] clustermq_0.8.8               tibble_3.1.8                 
##  [67] interactiveDisplayBase_1.34.0 ggrepel_0.9.2                
##  [69] listenv_0.8.0                 Biostrings_2.64.1            
##  [71] png_0.1-8                     future_1.29.0                
##  [73] withr_2.5.0                   bitops_1.0-7                 
##  [75] ggforce_0.4.1                 plyr_1.8.8                   
##  [77] pcaPP_2.0-3                   e1071_1.7-12                 
##  [79] dqrng_0.3.0                   RcppParallel_5.1.5           
##  [81] pillar_1.8.1                  cachem_1.0.6                 
##  [83] fs_1.5.2                      DelayedMatrixStats_1.18.2    
##  [85] vctrs_0.5.1                   ellipsis_0.3.2               
##  [87] generics_0.1.3                RApiSerialize_0.1.2          
##  [89] devtools_2.4.4                tools_4.2.1                  
##  [91] beeswarm_0.4.0                munsell_0.5.0                
##  [93] tweenr_2.0.2                  proxy_0.4-27                 
##  [95] fastmap_1.1.0                 compiler_4.2.1               
##  [97] pkgload_1.3.2                 abind_1.4-5                  
##  [99] httpuv_1.6.6                  rtracklayer_1.56.1           
## [101] ExperimentHub_2.4.0           sessioninfo_1.2.2            
## [103] plotly_4.10.1                 GenomeInfoDbData_1.2.8       
## [105] gridExtra_2.3                 edgeR_3.38.4                 
## [107] lattice_0.20-45               deldir_1.0-6                 
## [109] utf8_1.2.2                    later_1.3.0                  
## [111] dplyr_1.0.10                  BiocFileCache_2.4.0          
## [113] jsonlite_1.8.4                storr_1.2.5                  
## [115] scales_1.2.1                  datasets_4.2.1               
## [117] ScaledMatrix_1.4.1            pbapply_1.6-0                
## [119] sparseMatrixStats_1.8.0       lazyeval_0.2.2               
## [121] promises_1.2.0.1              R.utils_2.12.2               
## [123] goftest_1.2-3                 spatstat.utils_3.0-1         
## [125] reticulate_1.26               rmarkdown_2.18               
## [127] cowplot_1.1.1                 statmod_1.4.37               
## [129] webshot_0.5.4                 Rtsne_0.16                   
## [131] glmGamPoi_1.8.0               uwot_0.1.14                  
## [133] igraph_1.3.5                  survival_3.3-1               
## [135] ResidualMatrix_1.6.1          yaml_2.3.6                   
## [137] systemfonts_1.0.4             htmltools_0.5.3              
## [139] memoise_2.0.1                 profvis_0.3.7                
## [141] BiocIO_1.6.0                  Seurat_4.3.0                 
## [143] locfit_1.5-9.6                graphlayouts_0.8.4           
## [145] PCAtools_2.8.0                viridisLite_0.4.1            
## [147] digest_0.6.30                 rrcov_1.7-2                  
## [149] assertthat_0.2.1              RhpcBLASctl_0.21-247.1       
## [151] mime_0.12                     rappdirs_0.3.3               
## [153] SingleR_1.10.0                RSQLite_2.2.19               
## [155] yulab.utils_0.0.5             future.apply_1.10.0          
## [157] remotes_2.4.2                 data.table_1.14.6            
## [159] urlchecker_1.0.1              blob_1.2.3                   
## [161] R.oo_1.25.0                   labeling_0.4.2               
## [163] splines_4.2.1                 Rhdf5lib_1.18.2              
## [165] AnnotationHub_3.4.0           ProtGenerics_1.28.0          
## [167] RCurl_1.98-1.9                hms_1.1.2                    
## [169] colorspace_2.0-3              DropletUtils_1.16.0          
## [171] BiocManager_1.30.19           ggbeeswarm_0.6.0             
## [173] littler_0.3.17                sass_0.4.4                   
## [175] Rcpp_1.0.9                    RANN_2.6.1                   
## [177] mvtnorm_1.1-3                 txtq_0.2.4                   
## [179] fansi_1.0.3                   tzdb_0.3.0                   
## [181] brio_1.1.3                    parallelly_1.32.1            
## [183] R6_2.5.1                      grid_4.2.1                   
## [185] ggridges_0.5.4                lifecycle_1.0.3              
## [187] bluster_1.6.0                 curl_4.3.3                   
## [189] jquerylib_0.1.4               leiden_0.4.3                 
## [191] snakecase_0.11.0              robustbase_0.95-0            
## [193] desc_1.4.2                    RcppAnnoy_0.0.20             
## [195] org.Hs.eg.db_3.15.0           RColorBrewer_1.1-3           
## [197] spatstat.explore_3.0-5        stringr_1.5.0                
## [199] htmlwidgets_1.5.4             beachmat_2.12.0              
## [201] polyclip_1.10-4               biomaRt_2.52.0               
## [203] purrr_0.3.5                   timechange_0.1.1             
## [205] gridGraphics_0.5-1            rvest_1.0.3                  
## [207] globals_0.16.2                spatstat.random_3.0-1        
## [209] patchwork_1.1.2               progressr_0.11.0             
## [211] batchelor_1.12.3              codetools_0.2-18             
## [213] grDevices_4.2.1               lubridate_1.9.0              
## [215] metapod_1.4.0                 prettyunits_1.1.1            
## [217] SingleCellExperiment_1.18.1   dbplyr_2.2.1                 
## [219] R.methodsS3_1.8.2             celldex_1.6.0                
## [221] gtable_0.3.1                  DBI_1.1.3                    
## [223] highr_0.9                     tensor_1.5                   
## [225] httr_1.4.4                    KernSmooth_2.23-20           
## [227] stringi_1.7.8                 progress_1.2.2               
## [229] reshape2_1.4.4                farver_2.1.1                 
## [231] viridis_0.6.2                 DT_0.26                      
## [233] xml2_1.3.3                    BiocNeighbors_1.14.0         
## [235] kableExtra_1.3.4              restfulr_0.0.15              
## [237] readr_2.1.3                   ggplotify_0.1.0              
## [239] scattermore_0.8               BiocVersion_3.15.2           
## [241] scran_1.24.1                  DEoptimR_1.0-11              
## [243] bit_4.0.5                     clustree_0.5.0               
## [245] spatstat.data_3.0-0           ggraph_2.1.0                 
## [247] janitor_2.1.0                 pkgconfig_2.0.3              
## [249] rzmq_0.9.8                    knitr_1.41                   
## [251] downlit_0.4.2                 SC3_1.15.1

Page generated on 2023-12-02 17:27:17

LS0tCnRpdGxlOiAiMDEgLSBEYXRhIGxvYWQgYW5kIFFDIgphdXRob3I6ICJNYWRlIGJ5IHRoZSBbc2NkcmFrZSBwaXBlbGluZV0oaHR0cHM6Ly9iaW9pbmZvY3ouZ2l0aHViLmlvL3NjZHJha2UpIgppbnN0aXR1dGU6IHwKICBMYWJvcmF0b3J5IG9mIEdlbm9taWNzIGFuZCBCaW9pbmZvcm1hdGljcwogIEluc3RpdHV0ZSBvZiBNb2xlY3VsYXIgR2VuZXRpY3Mgb2YgdGhlIEFTQ1IKICBodHRwczovL2ltZy5jYXMuY3oKZGF0ZTogImByIGdsdWU6OmdsdWUoJ0RvY3VtZW50IGdlbmVyYXRlZDoge2Zvcm1hdChTeXMudGltZSgpLCBcIiVZLSVtLSVkICVIOiVNOiVTICVaJXpcIil9JylgIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogdHJ1ZQogICAgdG9jX2RlcHRoOiA0CiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIG51bWJlcl9zZWN0aW9uczogZmFsc2UKICAgIHRoZW1lOiAiZmxhdGx5IgogICAgc2VsZl9jb250YWluZWQ6IHRydWUKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKICAgIGRmX3ByaW50OiAicGFnZWQiCnBhcmFtczoKICBjc3NfZmlsZTogIWV4cHIgaGVyZTo6aGVyZSgiUm1kL2NvbW1vbi9zdHlsZXNoZWV0LmNzcyIpCiAgZHJha2VfY2FjaGVfZGlyOiAhZXhwciBoZXJlOjpoZXJlKCIuZHJha2UiKQpjc3M6ICJgciBwYXJhbXMkY3NzX2ZpbGVgIgotLS0KCmBgYHtyLCBtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmcgPSBGQUxTRX0Kc3VwcHJlc3NQYWNrYWdlU3RhcnR1cE1lc3NhZ2VzKGxpYnJhcnkobWFncml0dHIpKQppZiAocmxhbmc6OmlzX3RydWUoZ2V0T3B0aW9uKCJrbml0ci5pbi5wcm9ncmVzcyIpKSkgewogIHBhcmFtc18gPC0gc2NkcmFrZTo6c2NkcmFrZV9saXN0KHBhcmFtcykKfQpkcmFrZV9jYWNoZV9kaXIgPC0gcGFyYW1zXyRkcmFrZV9jYWNoZV9kaXIKCmRyYWtlOjpsb2FkZCgKICBjb25maWdfbWFpbiwgY29uZmlnX2lucHV0X3FjLCBlbXB0eV9kcm9wbGV0cywgc2NlX3ZhbGlkX2NlbGxzX2luZm8sIGJhcmNvZGVfcmFua3MsCiAgcWNfZmlsdGVyLCBjdXN0b21fZmlsdGVyLCBzY2VfcWNfZmlsdGVyX3Jvd1N1bXMsIHNjZV9jdXN0b21fZmlsdGVyX3Jvd1N1bXMsCiAgcGF0aCA9IGRyYWtlX2NhY2hlX2RpcgopCgpjZmcgPC0gY29uZmlnX2lucHV0X3FjCmVtcHR5X2Ryb3BsZXRzX2VuYWJsZWQgPC0gY2ZnJEVNUFRZX0RST1BMRVRTX0VOQUJMRUQKY2VsbF9maWx0ZXJpbmdfZW5hYmxlZCA8LSBjZmckRU5BQkxFX0NFTExfRklMVEVSSU5HCmdlbmVfZmlsdGVyaW5nX2VuYWJsZWQgPC0gY2ZnJEVOQUJMRV9HRU5FX0ZJTFRFUklORwoKaW5wdXRfdHlwZSA8LSBjZmckSU5QVVRfREFUQSR0eXBlCmZpbHRlcmluZ190eXBlIDwtIGlmZWxzZShjZmckU0FWRV9EQVRBU0VUX1NFTlNJVElWRV9GSUxURVJJTkcsICJkYXRhc2V0LXNlbnNpdGl2ZSIsICJjdXN0b20iKQpgYGAKCioqKgoKYGBge3IsIGNoaWxkID0gaGVyZTo6aGVyZSgiUm1kL2NvbW1vbi9faGVhZGVyLlJtZCIpfQpgYGAKCioqKgoKYGBge3IsIHJlc3VsdHMgPSAiYXNpcyJ9CmlmIChpbnB1dF90eXBlID09ICJjZWxscmFuZ2VyIikgewogIHNjZHJha2U6Om1kX2hlYWRlcigiSW5wdXQgZGF0YTogMTB4IEdlbm9taWNzIENlbGwgUmFuZ2VyIGRhdGEiLCAxKQogIGNhdChzY2RyYWtlOjpzdHJfc3BhY2UoCiAgICAiVGhlIGZlYXR1cmUtYmFyY29kZSBtYXRyaXggd2FzIGltcG9ydGVkIGZyb20iLAogICAgIltDZWxsIFJhbmdlcl0oaHR0cHM6Ly9zdXBwb3J0LjEweGdlbm9taWNzLmNvbS9zaW5nbGUtY2VsbC1nZW5lLWV4cHJlc3Npb24vc29mdHdhcmUvcGlwZWxpbmVzL2xhdGVzdC93aGF0LWlzLWNlbGwtcmFuZ2VyKSIsCiAgICAib3V0cHV0ICh0aGUgb2ZmaWNpYWwgcXVhbnRpZmljYXRpb24gdG9vbCBmcm9tIDEweCBHZW5vbWljcykuIgogICkpCn0gZWxzZSBpZiAoaW5wdXRfdHlwZSA9PSAidGFibGUiKSB7CiAgc2NkcmFrZTo6bWRfaGVhZGVyKCJJbnB1dCBkYXRhOiBkZWxpbWl0ZWQgdGV4dCAodGFibGUpIiwgMSkKICBjYXQoIlRoZSBmZWF0dXJlLWJhcmNvZGUgbWF0cml4IHdhcyBpbXBvcnRlZCBmcm9tIGEgZGVsaW1pdGVkIGZpbGUuIikKfSBlbHNlIGlmIChpbnB1dF90eXBlID09ICJzY2UiKSB7CiAgc2NkcmFrZTo6bWRfaGVhZGVyKCJJbnB1dCBkYXRhOiBgU2luZ2xlQ2VsbEV4cGVyaW1lbnRgIG9iamVjdCIsIDEpCiAgY2F0KCJUaGUgb2JqZWN0IGhvbGRpbmcgZXhwZXJpbWVudGFsIGRhdGEgKGZlYXR1cmUtYmFyY29kZSBtYXRyaXgsIGdlbmUgYW5ub3RhdGlvbiBldGMuKSB3YXMgaW1wb3J0ZWQgZnJvbSBhIFJkcyBmaWxlLiIpCn0KYGBgCgpFYWNoIHJvdyBvZiBmZWF0dXJlLWJhcmNvZGUgbWF0cml4IGNvcnJlc3BvbmRzIHRvIGEgZ2VuZSwgd2hpbGUgZWFjaCBjb2x1bW4gY29ycmVzcG9uZHMgdG8gYSBjZWxsIGJhcmNvZGUuClN1bW1hcnkgb2YgaW1wb3J0ZWQgZGF0YToKCmBgYHtyfQpjYXQoZHJha2U6OnJlYWRkKHNjZV9yYXdfaW5mbywgcGF0aCA9IGRyYWtlX2NhY2hlX2Rpcikkc3RyKQpgYGAKCmByIHNjZHJha2U6OmZvcm1hdF91c2VkX2Z1bmN0aW9ucygiRHJvcGxldFV0aWxzOjpyZWFkMTB4Q291bnRzKCkiKWAKCioqKgoKIyBFbXB0eSBkcm9wbGV0cwoKRW1wdHkgZHJvcGxldHMgb2Z0ZW4gY29udGFpbiBSTkEgZnJvbSB0aGUgYW1iaWVudCBzb2x1dGlvbiwgcmVzdWx0aW5nIGluIG5vbi16ZXJvIGNvdW50cyBhZnRlciBkZWJhcmNvZGluZy4KSXQgaXMgZGVzaXJlZCB0byBkaXNjYXJkIHN1Y2ggZHJvcGxldHMuCgojIyBCYXJjb2RlIHJhbmsgcGxvdAoKQSB1c2VmdWwgZGlhZ25vc3RpYyBmb3IgZHJvcGxldC1iYXNlZCBkYXRhIGlzIHRoZSBiYXJjb2RlIHJhbmsgcGxvdCwgd2hpY2ggc2hvd3MgdGhlIHRvdGFsIFVNSSAobG9nLSljb3VudCBmb3IgZWFjaApiYXJjb2RlIG9uIHRoZSB5LWF4aXMgYW5kIHRoZSAobG9nLSlyYW5rIG9uIHRoZSB4LWF4aXMuClRoaXMgaXMgZWZmZWN0aXZlbHkgYSB0cmFuc3Bvc2VkIGVtcGlyaWNhbCBjdW11bGF0aXZlIGRlbnNpdHkgcGxvdCB3aXRoIGxvZy10cmFuc2Zvcm1lZCBheGVzLgpJdCBpcyB1c2VmdWwgYXMgaXQgYWxsb3dzIGV4YW1pbmUgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0b3RhbCBVTUkgY291bnRzIGFjcm9zcyBiYXJjb2RlcywgZm9jdXNpbmcgb24gdGhvc2Ugd2l0aCB0aGUgbGFyZ2VzdCBjb3VudHMuCgpgYGB7ciwgbWVzc2FnZSA9IEZBTFNFLCB3YXJuaW5nID0gRkFMU0UsIHJlc3VsdHMgPSAiaG9sZCJ9CnVuaXEgPC0gIWR1cGxpY2F0ZWQoYmFyY29kZV9yYW5rcyRyYW5rKQpwbG90KGJhcmNvZGVfcmFua3MkcmFua1t1bmlxXSwgYmFyY29kZV9yYW5rcyR0b3RhbFt1bmlxXSwgbG9nID0gInh5IiwgeGxhYiA9ICJSYW5rIiwgeWxhYiA9ICJUb3RhbCIpCm8gPC0gb3JkZXIoYmFyY29kZV9yYW5rcyRyYW5rKQpsaW5lcyhiYXJjb2RlX3JhbmtzJHJhbmtbb10sIGJhcmNvZGVfcmFua3MkZml0dGVkW29dLCBjb2wgPSAicmVkIikKCmFibGluZShoID0gbWV0YWRhdGEoYmFyY29kZV9yYW5rcykka25lZSwgY29sID0gImRvZGdlcmJsdWUiLCBsdHkgPSAyKQphYmxpbmUoaCA9IG1ldGFkYXRhKGJhcmNvZGVfcmFua3MpJGluZmxlY3Rpb24sIGNvbCA9ICJmb3Jlc3RncmVlbiIsIGx0eSA9IDIpCmlmIChlbXB0eV9kcm9wbGV0c19lbmFibGVkKSB7CiAgYWJsaW5lKGggPSBjZmckRU1QVFlfRFJPUExFVFNfTE9XRVIsIGNvbCA9ICJmaXJlYnJpY2siLCBsdHkgPSAyKQogIGxlZ2VuZCgKICAgICJib3R0b21sZWZ0IiwKICAgIGx0eSA9IDIsCiAgICBjb2wgPSBjKCJkb2RnZXJibHVlIiwgImZvcmVzdGdyZWVuIiwgImZpcmVicmljayIpLAogICAgbGVnZW5kID0gYygia25lZSIsICJpbmZsZWN0aW9uIiwgImVtcHR5RHJvcGxldHMgbG93ZXIgYm91bmQiKQogICkKfSBlbHNlIHsKICBsZWdlbmQoCiAgICAiYm90dG9tbGVmdCIsCiAgICBsdHkgPSAyLAogICAgY29sID0gYygiZG9kZ2VyYmx1ZSIsICJmb3Jlc3RncmVlbiIpLAogICAgbGVnZW5kID0gYygia25lZSIsICJpbmZsZWN0aW9uIikKICApCn0KYGBgCgpUaGUga25lZSBhbmQgaW5mbGVjdGlvbiBwb2ludHMgb24gdGhlIGN1cnZlIG1hcmsgdGhlIHRyYW5zaXRpb24gYmV0d2VlbiB0d28gY29tcG9uZW50cyBvZiB0aGUgdG90YWwgVU1JIGNvdW50IGRpc3RyaWJ1dGlvbi4KVGhpcyBpcyBhc3N1bWVkIHRvIHJlcHJlc2VudCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGVtcHR5IGRyb3BsZXRzIHdpdGggbGl0dGxlIFJOQSBhbmQgY2VsbC1jb250YWluaW5nIGRyb3BsZXRzIHdpdGggbXVjaCBtb3JlIFJOQS4KCmBgYHtyLCByZXN1bHRzID0gImFzaXMifQppZiAoZW1wdHlfZHJvcGxldHNfZW5hYmxlZCkgewogIGNhdCgKICAgICJUaGUgZW1wdHlEcm9wbGV0cyBsb3dlciBib3VuZCBzcGVjaWZpZXMgYXQgb3IgYmVsb3cgd2hpY2ggbnVtYmVyIG9mIHRoZSB0b3RhbCBVTUkgY291bnQgYWxsIGJhcmNvZGVzIiwKICAgICJhcmUgYXNzdW1lZCB0byBjb3JyZXNwb25kIHRvIGVtcHR5IGRyb3BsZXRzLiIKICApCn0gZWxzZSB7CiAgY2F0KCJSZW1vdmFsIG9mIGVtcHR5IGRyb3BsZXRzIHdhcyBkaXNhYmxlZC4gWW91IGNhbiBlbmFibGUgaXQgYnkgc2V0dGluZyBgRU1QVFlfRFJPUExFVFNfRU5BQkxFRGAgcGFyYW1ldGVyIHRvIGBUUlVFYC4iKQp9CmBgYAoKYGBge3IsIGNoaWxkID0gaGVyZTo6aGVyZSgiUm1kL3NpbmdsZV9zYW1wbGUvMDFfaW5wdXRfcWNfY2hpbGRyZW4vZW1wdHlfZHJvcGxldHMuUm1kIiksIGV2YWwgPSB0cnlDYXRjaChlbXB0eV9kcm9wbGV0c19lbmFibGVkLCBlcnJvciA9IGZ1bmN0aW9uKGUpe30pfQpgYGAKCioqKgoKIyBHZW5lICsgQ2VsbCBxdWFsaXR5IGZpbHRlcmluZwoKIyMgUHJlLWZpbHRlcmluZyBRQwoKR2l2ZW4gc2V0cyBvZiBtaXRvY2hvbmRyaWFsIGFuZCByaWJvc29tYWwgZ2VuZXMgaW4gdGhlIGRhdGEsIHRoZSBgc2NhdGVyYCBwYWNrYWdlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlcwpzZXZlcmFsIHBlci1jZWxsIFFDIG1ldHJpY3M6CgotIE51bWJlciBvZiBVTUkuCi0gTnVtYmVyIG9mIGRldGVjdGVkIGdlbmVzIChub24temVybyBVTUkgY291bnQpLgotIFBlcmNlbnRhZ2Ugb2YgZXhwcmVzc2VkIG1pdG9jaG9uZHJpYWwgZ2VuZXMgKCRcZnJhYyB7VU1JX3ttaXRvY2hvbmRyaWFsfX0ge1VNSV97c3VtfX0gKiAxMDAkKS4KClRoZW4gd2UgY2FuIHVzZSB0d28gZGlmZmVyZW50IG1ldGhvZHMgdG8gZmlsdGVyIGNlbGxzIGJhc2VkIG9uIHRoZSBtZXRyaWNzIGFib3ZlOgoKLSAqKkN1c3RvbSBmaWx0ZXJpbmcqKjogYSBzdGFuZGFyZCBhcHByb2FjaCBpcyB0byBmaWx0ZXIgY2VsbHMgd2l0aCBsb3cgYW1vdW50IG9mIHJlYWRzIGFzIHdlbGwgYXMgZ2VuZXMgdGhhdCBhcmUKICBwcmVzZW50IGluIGF0IGxlYXN0IGEgY2VydGFpbiBhbW91bnQgb2YgY2VsbHMsIHVzaW5nIGZpeGVkIHRocmVzaG9sZHMuIFdoaWxlIHNpbXBsZSwgdXNpbmcgZml4ZWQgdGhyZXNob2xkcyByZXF1aXJlcwogIGtub3dsZWRnZSBvZiB0aGUgZXhwZXJpbWVudCBhbmQgb2YgdGhlIGV4cGVyaW1lbnRhbCBwcm90b2NvbC4KLSAqKkRhdGFzZXQtc2Vuc2l0aXZlIGZpbHRlcmluZyoqOiBhbiBhbHRlcm5hdGl2ZSBhcHByb2FjaCBpcyB0byB1c2UgYWRhcHRpdmUsIGRhdGEtZHJpdmVuIHRocmVzaG9sZHMgdG8gaWRlbnRpZnkKICBvdXRseWluZyBjZWxscywgYmFzZWQgb24gdGhlIHNldCBvZiBRQyBtZXRyaWNzIGp1c3QgY2FsY3VsYXRlZC4gV2UgaWRlbnRpZnkgY2VsbHMgdGhhdCBhcmUgb3V0bGllcnMgZm9yIHRoZSB2YXJpb3VzCiAgUUMgbWV0cmljcywgYmFzZWQgb24gdGhlIG1lZGlhbiBhYnNvbHV0ZSBkZXZpYXRpb24gKE1BRCkgZnJvbSB0aGUgbWVkaWFuIHZhbHVlIG9mIGVhY2ggUUMgbWV0cmljIGFjcm9zcyBhbGwgY2VsbHMuCiAgU3BlY2lmaWNhbGx5LCBhIHZhbHVlIGlzIGNvbnNpZGVyZWQgYW4gb3V0bGllciBpZiBpdCBpcyBtb3JlIHRoYW4gYHIgY2ZnJE1BRF9USFJFU0hPTERgIE1BRHMgZnJvbSB0aGUgbWVkaWFuIGluCiAgdGhlICJwcm9ibGVtYXRpYyIgZGlyZWN0aW9uLgoKQWRkaXRpb25hbHksIGV4dHJlbWVseSBoaWdoIG51bWJlciBvZiBkZXRlY3RlZCBnZW5lcyBjb3VsZCBpbmRpY2F0ZSBkb3VibGV0cyAobW9yZSBzZW5zaXRpdmUgZG91YmxldCBkZXRlY3Rpb24gaXMKZG9uZSBhZnRlciBsaWJyYXJ5IG5vcm1hbGl6YXRpb24pLiBIb3dldmVyLCBkZXBlbmRpbmcgb24gdGhlIGNlbGwgdHlwZSBjb21wb3NpdGlvbiBpbiB5b3VyIHNhbXBsZSwKeW91IG1heSBoYXZlIGNlbGxzIHdpdGggaGlnaGVyIG51bWJlciBvZiBnZW5lcyAoYW5kIGFsc28gaGlnaGVyIGNvdW50cykgZnJvbSBvbmUgY2VsbCB0eXBlLgoKTm93IHdlIGNhbiBwbG90IHNvbWUgb2YgdGhlIFFDIGZlYXR1cmVzLiBDZWxscyBhcmUgY29sb3JlZCBieSBgZGlzY2FyZF9xY2AsIG1lYW5pbmcgaWYgYSBjZWxsIHdvdWxkIGJlIGRpc2NhcmRlZCBieQpNQUQgdGhyZXNob2xkaW5nIG9uIGEgUUMgbWV0cmljLgoKYGBge3IsIGZpZy5oZWlnaHQgPSAxMCwgZmlnLndpZHRoID0gOH0KY293cGxvdDo6cGxvdF9ncmlkKHBsb3RsaXN0ID0gZHJha2U6OnJlYWRkKHNjZV91bmZpbHRlcmVkX3Bsb3RsaXN0LCBwYXRoID0gZHJha2VfY2FjaGVfZGlyKSwgbmNvbCA9IDIpCmBgYAoKYHIgc2NkcmFrZTo6Zm9ybWF0X3VzZWRfZnVuY3Rpb25zKCJzY3V0dGxlOjpwZXJDZWxsUUNNZXRyaWNzKCkiKWAKCiMjIEZpbHRlcmluZyB7LnRhYnNldH0KCiMjIyBEYXRhc2V0LXNlbnNpdGl2ZSBmaWx0ZXJzCgojIyMjIENlbGwgZmlsdGVyaW5nCgpgYGB7ciwgY2hpbGQgPSBoZXJlOjpoZXJlKCJSbWQvc2luZ2xlX3NhbXBsZS8wMV9pbnB1dF9xY19jaGlsZHJlbi9jZWxsX2ZpbHRlcmluZ19xYy5SbWQiKSwgZXZhbCA9IHRyeUNhdGNoKGNlbGxfZmlsdGVyaW5nX2VuYWJsZWQsIGVycm9yID0gZnVuY3Rpb24oZSl7fSl9CmBgYAoKYGBge3IsIHJlc3VsdHMgPSAiYXNpcyIsIGV2YWwgPSB0cnlDYXRjaCghY2VsbF9maWx0ZXJpbmdfZW5hYmxlZCwgZXJyb3IgPSBmdW5jdGlvbihlKXt9KX0KY2F0KCJDZWxsIGZpbHRlcmluZyB3YXMgZGlzYWJsZWQuIikKYGBgCgojIyMjIEdlbmUgZmlsdGVyaW5nCgpgYGB7ciwgY2hpbGQgPSBoZXJlOjpoZXJlKCJSbWQvc2luZ2xlX3NhbXBsZS8wMV9pbnB1dF9xY19jaGlsZHJlbi9nZW5lX2ZpbHRlcmluZ19xYy5SbWQiKSwgZXZhbCA9IHRyeUNhdGNoKGdlbmVfZmlsdGVyaW5nX2VuYWJsZWQsIGVycm9yID0gZnVuY3Rpb24oZSl7fSl9CmBgYAoKYGBge3IsIHJlc3VsdHMgPSAiYXNpcyIsIGV2YWwgPSB0cnlDYXRjaCghZ2VuZV9maWx0ZXJpbmdfZW5hYmxlZCwgZXJyb3IgPSBmdW5jdGlvbihlKXt9KX0KY2F0KCJHZW5lIGZpbHRlcmluZyB3YXMgZGlzYWJsZWQuIikKYGBgCgojIyMgQ3VzdG9tIGZpbHRlcnMKCiMjIyMgQ2VsbCBmaWx0ZXJpbmcKCmBgYHtyLCBjaGlsZCA9IGhlcmU6OmhlcmUoIlJtZC9zaW5nbGVfc2FtcGxlLzAxX2lucHV0X3FjX2NoaWxkcmVuL2NlbGxfZmlsdGVyaW5nX2N1c3RvbS5SbWQiKSwgZXZhbCA9IHRyeUNhdGNoKGNlbGxfZmlsdGVyaW5nX2VuYWJsZWQsIGVycm9yID0gZnVuY3Rpb24oZSl7fSl9CmBgYAoKYGBge3IsIHJlc3VsdHMgPSAiYXNpcyIsIGV2YWwgPSB0cnlDYXRjaCghY2VsbF9maWx0ZXJpbmdfZW5hYmxlZCwgZXJyb3IgPSBmdW5jdGlvbihlKXt9KX0KY2F0KCJDZWxsIGZpbHRlcmluZyB3YXMgZGlzYWJsZWQuIikKYGBgCgojIyMjIEdlbmUgZmlsdGVyaW5nCgpgYGB7ciwgY2hpbGQgPSBoZXJlOjpoZXJlKCJSbWQvc2luZ2xlX3NhbXBsZS8wMV9pbnB1dF9xY19jaGlsZHJlbi9nZW5lX2ZpbHRlcmluZ19jdXN0b20uUm1kIiksIGV2YWwgPSB0cnlDYXRjaChnZW5lX2ZpbHRlcmluZ19lbmFibGVkLCBlcnJvciA9IGZ1bmN0aW9uKGUpe30pfQpgYGAKCmBgYHtyLCByZXN1bHRzID0gImFzaXMiLCBldmFsID0gdHJ5Q2F0Y2goIWdlbmVfZmlsdGVyaW5nX2VuYWJsZWQsIGVycm9yID0gZnVuY3Rpb24oZSl7fSl9CmNhdCgiR2VuZSBmaWx0ZXJpbmcgd2FzIGRpc2FibGVkLiIpCmBgYAoKKioqCgojIyBQb3N0LWZpbHRlcmluZyBRQwoKKipGaW5hbCBmaWx0ZXJpbmcgc2VsZWN0aW9uOiB1c2luZyA8c3BhbiBzdHlsZT0nY29sb3I6IGdyZWVuOyc+YHIgZmlsdGVyaW5nX3R5cGVgPC9zcGFuPiBmaWx0ZXJpbmcuKioKCmBgYHtyfQpjYXQoZHJha2U6OnJlYWRkKHNjZV9maW5hbF9pbnB1dF9xY19pbmZvLCBwYXRoID0gZHJha2VfY2FjaGVfZGlyKSRzdHIpCmBgYAoKIyMjIENlbGwgYW5kIGdlbmUgbnVtYmVyIGhpc3RvcnkKCmBgYHtyfQpzY2RyYWtlOjpyZW5kZXJfYm9vdHN0cmFwX3RhYmxlKGRyYWtlOjpyZWFkZChzY2VfaGlzdG9yeSwgcGF0aCA9IGRyYWtlX2NhY2hlX2RpciksIGZ1bGxfd2lkdGggPSBGQUxTRSwgcG9zaXRpb24gPSAibGVmdCIpCmBgYAoKYGBge3J9CnByaW50KGRyYWtlOjpyZWFkZChzY2VfaGlzdG9yeV9wbG90LCBwYXRoID0gZHJha2VfY2FjaGVfZGlyKSkKYGBgCgojIyMgRGF0YXNldC1zZW5zaXRpdmUgZmlsdGVyaW5nCgpQbG90cyBvZiBRQyBtZXRyaWNzIGFmdGVyIGRhdGFzZXQtc2Vuc2l0aXZlIGZpbHRlcmluZy4KYGRpc2NhcmRfY3VzdG9tYCBtZWFucyBpZiBnaXZlbiBjZWxsIHdhcyBkaXNjYXJkZWQgaW4gKipjdXN0b20gZmlsdGVyaW5nKiouCgpgYGB7ciwgZmlnLmhlaWdodCA9IDEwLCBmaWcud2lkdGggPSA4fQpjb3dwbG90OjpwbG90X2dyaWQocGxvdGxpc3QgPSBkcmFrZTo6cmVhZGQoc2NlX3FjX2ZpbHRlcl9nZW5lc19wbG90bGlzdCwgcGF0aCA9IGRyYWtlX2NhY2hlX2RpciksIG5jb2wgPSAyKQpgYGAKCiMjIyBGaWx0ZXJpbmcgYmFzZWQgb24gY3VzdG9tIGZpbHRlcnMKClBsb3RzIG9mIFFDIG1ldHJpY3MgYWZ0ZXIgY3VzdG9tIGZpbHRlcmluZy4KYGRpc2NhcmRfcWNgIG1lYW5zIGlmIGdpdmVuIGNlbGwgd2FzIGRpc2NhcmRlZCBpbiAqKmRhdGFzZXQtc2Vuc2l0aXZlIGZpbHRlcmluZyoqLgoKYGBge3IsIGZpZy5oZWlnaHQgPSAxMCwgZmlnLndpZHRoID0gOH0KY293cGxvdDo6cGxvdF9ncmlkKHBsb3RsaXN0ID0gZHJha2U6OnJlYWRkKHNjZV9jdXN0b21fZmlsdGVyX2dlbmVzX3Bsb3RsaXN0LCBwYXRoID0gZHJha2VfY2FjaGVfZGlyKSwgbmNvbCA9IDIpCmBgYAoKKioqCgojIEdlbmUgYW5ub3RhdGlvbgoKLSBVc2VkIGFubm90YXRpb24gcGFja2FnZTogYHIgY29uZmlnX21haW4kQU5OT1RBVElPTl9QS0dgCiAgKHZgciBzZXNzaW9uaW5mbzo6cGFja2FnZV9pbmZvKGNvbmZpZ19tYWluJEFOTk9UQVRJT05fUEtHLCBkZXBlbmRlbmNpZXMgPSBGQUxTRSkkbG9hZGVkdmVyc2lvbmApCi0gSWYgYSBzaW5nbGUgRU5TRU1CTCBJRCBoYXMgbXVsdGlwbGUgc3ltYm9scywgZ2VuZSBkZXNjcmlwdGlvbnMsIG9yIEVOVFJFWiBJRHMsIHRoZXkgYXJlIGNvbGxhcHNlZCBieSBjb21tYSAoYCxgKS4KLSBFTlNFTUJMIElEIGlzIHVzZWQgYXMgYSBzeW1ib2wgZm9yIEVOU0VNQkwgSURzIHdpdGggdW5rbm93biBzeW1ib2xzLgotIEVOU0VNQkwgSUQgaXMgYXBwZW5kZWQgdG8gc3ltYm9scyBoYXZpbmcgbXVsdGlwbGUgRU5TRU1CTCBJRHMgKGUuZy4gVEJDRSBoYXMgYm90aCBFTlNHMDAwMDAyODUwNTMgYW5kIEVOU0cwMDAwMDI4NDc3MAogIEVOU0VNQkwgSURzIGFzc2lnbmVkIC0+IGl0cyBzeW1ib2wgaXMgY2hhbmdlZCB0byBUQkNFX0VOU0cwMDAwMDI4NTA1MyBhbmQgVEJDRV9FTlNHMDAwMDAyODQ3NzApLgoKYGBge3J9CmRyYWtlOjpyZWFkZChnZW5lX2Fubm90YXRpb24sIHBhdGggPSBkcmFrZV9jYWNoZV9kaXIpICU+JQogIGhlYWQoKSAlPiUKICBzY2RyYWtlOjpyZW5kZXJfYm9vdHN0cmFwX3RhYmxlKCkKYGBgCgojCgoqKioKCjxkZXRhaWxzPgogIDxzdW1tYXJ5IGNsYXNzPSJjb25maWciPlNob3cgaW5wdXQgcGFyYW1ldGVyczwvc3VtbWFyeT4KICA8aHIgLz4KICA8aDQ+TWFpbiBjb25maWc8L2g0PgoKYGBge3J9CnByaW50KGNvbmZpZ19tYWluKQpgYGAKCiAgPGhyIC8+CiAgPGg0PklucHV0IFFDIGNvbmZpZzwvaDQ+CgpgYGB7cn0KcHJpbnQoY2ZnKQpgYGAKICA8aHIgLz4KPC9kZXRhaWxzPgoKYGBge3IsIGNoaWxkID0gaGVyZTo6aGVyZSgiUm1kL2NvbW1vbi9fZm9vdGVyLlJtZCIpfQpgYGAK