Making use of Intracellular OmniPath

This vignette showcases how to one could obtain and subsequently use the information from OmniPath’s intracellular components with LIANA.

Load Prerequisites

library(tidyverse)
library(liana)
library(purrr)
library(magrittr)

liana_path <- system.file(package = "liana")
testdata <-
    readRDS(file.path(liana_path , "testdata", "input", "testdata.rds"))

Filter OmniPath and LIANA by specific functional annotations

Here, we will assume that we have strong reason to believe that the RTK pathway is particularly relevant in our study and we are hence solely interested in interactions from the RKT pathway. Thus, we will filter LIANA and OmniPath to only interactions associated with the RKT pathway from SignaLink. SignaLink itself is a signaling pathway resource with multi-layered regulatory networks.

First, let’s obtain SignaLink

signalink_pathways <-
    OmnipathR::import_omnipath_annotations(
        resources = 'SignaLink_pathway',
        entity_types = 'protein',
        wide = TRUE
    ) %>%
  select(genesymbol, pathway)

Then we obtain our resource of choice and run liana. The resource can also be customized, to do so please refer to LIANA’s Customize CCC OmniPath tutorial

# Obtain resource and format it
liana_omni <- select_resource("OmniPath")[[1]] %>%
    liana:::decomplexify()

# Run liana with our resource
liana_res <- liana_wrap(testdata,
                        resource='custom',
                        external_resource = liana_omni) %>%
  # Note! here we work with the 'minimum' subunits
  liana_aggregate(join_cols = c("source", "target",
                                "ligand", "receptor")) # aggregate
## Warning in exec(output, ...): 3465 genes and/or 0 cells were removed as they had
## no counts!
## Warning: `invoke()` is deprecated as of rlang 0.4.0.
## Please use `exec()` or `inject()` instead.
## This warning is displayed once per session.

Filter LIANA output to only RTK interactions

Here, we assume that we only are only interested in from the RTK pathway.

liana_rtk <- liana_res %>%
  left_join(signalink_pathways, by=c("ligand"="genesymbol")) %>%
  dplyr::rename(ligand_pathway = pathway) %>%
  left_join(signalink_pathways, by=c("receptor"="genesymbol")) %>%
  dplyr::rename(receptor_pathway = pathway) %>%
  filter(ligand_pathway == "Receptor tyrosine kinase") %>%
  filter(receptor_pathway == "Receptor tyrosine kinase")

# Show only interactions in which BOTH the ligand and the receptor
# are associated with the RTK pathway
liana_rtk
## # A tibble: 8 × 18
##   source target ligand receptor aggre…¹ mean_…² natmi…³ natmi…⁴ connec…⁵ conne…⁶
##   <chr>  <chr>  <chr>  <chr>      <dbl>   <dbl>   <dbl>   <dbl>    <dbl>   <dbl>
## 1 NK     NK     TGFB1  TGFBR1   0.00558    208.   0.488    37    0.432      122 
## 2 NK     CD8 T  TGFB1  TGFBR2   0.0156     239.   0.355    78    0.376      163 
## 3 NK     CD8 T  TGFBR1 TGFBR2   0.0892     336    0.526    32.5  0.298      246.
## 4 CD8 T  NK     TGFBR2 TGFBR1   0.0905     336    0.526    32.5  0.298      246.
## 5 B      NK     TGFB1  TGFBR1   1          518.   0.218   267    0.0947     491 
## 6 B      CD8 T  TGFB1  TGFBR2   1          603.   0.158   431    0.0390     585 
## 7 CD8 T  NK     TGFB1  TGFBR1   1          645.   0.144   477    0.00363    622 
## 8 CD8 T  CD8 T  TGFB1  TGFBR2   1          717.   0.105   619   -0.0521     692 
## # … with 8 more variables: logfc.logfc_comb <dbl>, logfc.rank <dbl>,
## #   sca.LRscore <dbl>, sca.rank <dbl>, cellphonedb.pvalue <dbl>,
## #   cellphonedb.rank <dbl>, ligand_pathway <chr>, receptor_pathway <chr>, and
## #   abbreviated variable names ¹​aggregate_rank, ²​mean_rank,
## #   ³​natmi.edge_specificity, ⁴​natmi.rank, ⁵​connectome.weight_sc,
## #   ⁶​connectome.rank
## # ℹ Use `colnames()` to see all variable names

Run LIANA with only specific interactions

One could also do the reverse - i.e. filter the resource in regards to a given functional annotation terms (e.g. JAK/STAT, WNT, and RTK), and then run LIANA

pathways_of_interest <- c("JAK/STAT", "Receptor tyrosine kinase", "WNT")

# We join the functional annotations to OmniPath
# and retain ONLY interactions in which BOTH the ligand and receptor
# are associated with RTK pathways
rkt_omni <- liana_omni %>%
  left_join(signalink_pathways, by=c("source_genesymbol"="genesymbol")) %>%
  rename(source_geneset = pathway) %>%
  left_join(signalink_pathways, by=c("target_genesymbol"="genesymbol")) %>%
  rename(target_geneset = pathway) %>%
  filter(source_geneset %in% pathways_of_interest) %>%
  filter(target_geneset %in% pathways_of_interest)

# We can then again run LIANA with the RKT-associated interactions alone
liana_rtk_omni <- liana_wrap(testdata,
                             resource='custom',
                             external_resource = rkt_omni) %>%
  liana_aggregate(join_cols = c("source", "target",
                                "ligand", "receptor"))
## Expression from the `RNA` assay will be used
## Running LIANA with `seurat_annotations` as labels!
## Warning in exec(output, ...): 3465 genes and/or 0 cells were removed as they had
## no counts!
## LIANA: LR summary stats calculated!
## Now Running: Natmi
## Now Running: Connectome
## Now Running: Logfc
## Now Running: Sca
## Now Running: Cellphonedb
## Now aggregating natmi
## Now aggregating connectome
## Now aggregating logfc
## Now aggregating sca
## Now aggregating cellphonedb
## Aggregating Ranks
liana_rtk_omni
## # A tibble: 39 × 16
##    source target ligand receptor aggre…¹ mean_…² natmi…³ natmi…⁴ conne…⁵ conne…⁶
##    <chr>  <chr>  <chr>  <chr>      <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
##  1 NK     NK     TGFB1  TGFBR1   5.67e-5     2.9   0.488     4     0.432     1  
##  2 NK     CD8 T  IFNG   IFNGR1   4.31e-4     4.5   0.359     6     0.312     4  
##  3 NK     CD8 T  TGFB1  TGFBR2   9.31e-4     4.3   0.355     7     0.376     2  
##  4 CD8 T  NK     IL23A  IL12RB1  1.82e-3     3.1   0.530     1     0.367     3  
##  5 NK     B      IFNG   IFNGR2   3.27e-3     5.2   0.372     5     0.304     5  
##  6 NK     CD8 T  IL10RB IL10RA   3.27e-3     7.4   0.349     9     0.299     6  
##  7 B      CD8 T  IL4R   IL2RG    2.06e-2     9.4   0.259    12     0.253     9  
##  8 B      CD8 T  IFNAR1 IFNGR1   2.98e-2    12.4   0.261    11     0.203    12  
##  9 NK     NK     IFNG   IFNGR2   4.21e-2    10.4   0.269    10     0.233    11  
## 10 NK     CD8 T  TGFBR1 TGFBR2   5.78e-2    10.1   0.526     2.5   0.298     7.5
## # … with 29 more rows, 6 more variables: logfc.logfc_comb <dbl>,
## #   logfc.rank <dbl>, sca.LRscore <dbl>, sca.rank <dbl>,
## #   cellphonedb.pvalue <dbl>, cellphonedb.rank <dbl>, and abbreviated variable
## #   names ¹​aggregate_rank, ²​mean_rank, ³​natmi.edge_specificity, ⁴​natmi.rank,
## #   ⁵​connectome.weight_sc, ⁶​connectome.rank
## # ℹ Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names

Perform an over-representation representation analysis (ORA) on predicted LR interactions

Here, (a bit more advanced) we will attempt to obtain over-represented MSigDB gene sets in preferentially ranked ligand-receptor interactions from LIANA.

First, format LIANA’s output

# we take liana from above and keep only the columns that we need
# in this case we will use the aggragate for all methods
liana_form <- liana_res %>%
  select(source, ligand, target,
         receptor, aggregate_rank) %>%
  # one could treat the aggragate rank as
  # the probability to observe an interaction
  # as preferentially highly ranked
  # one could also p.adjust
  # mutate(aggregate_rank = p.adjust(aggregate_rank)) %>%
  filter(aggregate_rank <= 0.05)
liana_form
## # A tibble: 191 × 5
##    source ligand   target receptor aggregate_rank
##    <chr>  <chr>    <chr>  <chr>             <dbl>
##  1 B      HLA-DRA  NK     CD63        0.000000460
##  2 B      HLA-DRA  B      CD37        0.000000522
##  3 B      MS4A1    B      CD82        0.000000965
##  4 B      HLA-DQA1 CD8 T  LAG3        0.00000322 
##  5 B      HLA-DRA  B      CD19        0.00000326 
##  6 B      HLA-DMA  B      CD74        0.00000397 
##  7 B      HLA-DMB  B      CD74        0.00000467 
##  8 B      HLA-DRB1 B      CD37        0.00000827 
##  9 B      HLA-DRB1 B      CD19        0.00000972 
## 10 B      HLA-DRA  B      CD82        0.0000114  
## # … with 181 more rows
## # ℹ Use `print(n = ...)` to see more rows

Obtain MSigDB Genesets via OmniPathR - takes a while :)

Here we focus on the Hallmarks gene set

msigdb <- OmnipathR::import_omnipath_annotations(resources = "MSigDB",
                                                 wide = TRUE) %>%
  filter(collection=="hallmark") %>%
  select(genesymbol, geneset)

Establish the Resource as the background/universe

# Here, we join pathways associated with ligand and receptors, separately
# Note that here we consider only matches to ligands and receptors from OmniPath as the background universe
omni_universe <- liana_omni %>%
  select(source_genesymbol, target_genesymbol) %>%
  left_join(msigdb, by=c("source_genesymbol"="genesymbol")) %>%
  rename(source_geneset = geneset) %>%
  left_join(msigdb, by=c("target_genesymbol"="genesymbol")) %>%
  rename(target_geneset = geneset)

# Establish Ligand Universe
entity_total <- length(unique(omni_universe$source_genesymbol))
ligand_universe <- omni_universe %>%
  select(ligand = source_genesymbol, geneset = source_geneset) %>%
  na.omit() %>%
  distinct() %>%
  group_by(geneset) %>%
  mutate(geneset_n = n()) %>%
  ungroup() %>%
  arrange(desc(geneset_n)) %>%
  mutate(background = entity_total)


# Bind Distinct liana ligand hits to the universe
# Get Distinct Ligands in top hits
liana_ligands <- liana_form %>%
  select(source, ligand) %>%
  distinct() %>%
  mutate(distinct_hits = n())

# Perform hypergeometric test
liana_hyperenrich <- ligand_universe %>%
  left_join(liana_ligands, by=c("ligand")) %>%
  na.omit() %>%
  group_by(source, geneset) %>%
  # count ligands in geneset
  mutate(ligands_in_gs = n()) %>% # aka x/q
  rowwise() %>%
  mutate(pval = phyper(q = ligands_in_gs,
                       m = geneset_n,
                       n = background-geneset_n,
                       k = distinct_hits, lower.tail = FALSE)) %>%
  ungroup() %>%
  arrange(pval)

# Note that the ligand coverage of some gene sets is simply too limited
# So, one could consider not limiting the results to the ligands alone
liana_hyperenrich
## # A tibble: 151 × 8
##    ligand geneset                 genes…¹ backg…² source disti…³ ligan…⁴    pval
##    <chr>  <chr>                     <int>   <int> <chr>    <int>   <int>   <dbl>
##  1 NCR1   HALLMARK_ALLOGRAFT_REJ…      90    1219 NK          87      13 0.00319
##  2 HLA-A  HALLMARK_ALLOGRAFT_REJ…      90    1219 NK          87      13 0.00319
##  3 ITGB2  HALLMARK_ALLOGRAFT_REJ…      90    1219 NK          87      13 0.00319
##  4 PTPRC  HALLMARK_ALLOGRAFT_REJ…      90    1219 NK          87      13 0.00319
##  5 HLA-E  HALLMARK_ALLOGRAFT_REJ…      90    1219 NK          87      13 0.00319
##  6 IL2RB  HALLMARK_ALLOGRAFT_REJ…      90    1219 NK          87      13 0.00319
##  7 IL2RG  HALLMARK_ALLOGRAFT_REJ…      90    1219 NK          87      13 0.00319
##  8 CD47   HALLMARK_ALLOGRAFT_REJ…      90    1219 NK          87      13 0.00319
##  9 KLRD1  HALLMARK_ALLOGRAFT_REJ…      90    1219 NK          87      13 0.00319
## 10 B2M    HALLMARK_ALLOGRAFT_REJ…      90    1219 NK          87      13 0.00319
## # … with 141 more rows, and abbreviated variable names ¹​geneset_n, ²​background,
## #   ³​distinct_hits, ⁴​ligands_in_gs
## # ℹ Use `print(n = ...)` to see more rows

Format Hypergeometric test results

liana_hyperenrich %>%
  select(geneset, source, pval) %>%
  distinct() %>%
  mutate(adj_pval = p.adjust(pval, method = "fdr")) %>%
  arrange(adj_pval)
## # A tibble: 67 × 4
##    geneset                            source    pval adj_pval
##    <chr>                              <chr>    <dbl>    <dbl>
##  1 HALLMARK_ALLOGRAFT_REJECTION       NK     0.00319    0.134
##  2 HALLMARK_MTORC1_SIGNALING          NK     0.00600    0.134
##  3 HALLMARK_FATTY_ACID_METABOLISM     NK     0.00600    0.134
##  4 HALLMARK_INTERFERON_ALPHA_RESPONSE NK     0.0139     0.193
##  5 HALLMARK_UNFOLDED_PROTEIN_RESPONSE NK     0.0144     0.193
##  6 HALLMARK_PROTEIN_SECRETION         B      0.0275     0.213
##  7 HALLMARK_PROTEIN_SECRETION         NK     0.0275     0.213
##  8 HALLMARK_G2M_CHECKPOINT            NK     0.0275     0.213
##  9 HALLMARK_INTERFERON_GAMMA_RESPONSE NK     0.0380     0.213
## 10 HALLMARK_INTERFERON_GAMMA_RESPONSE B      0.0380     0.213
## # … with 57 more rows
## # ℹ Use `print(n = ...)` to see more rows

Done! Check whether any categories are over-represented (by celltype) in our dataset.

Kind reminder that this analysis is intended for representation purposes alone. We usually favour the use of the whole genome for any enrichment and pathway analyses, and kindly refer to the user to the rest of our tools, which can be highly complementary when interpretting the ligand-receptor predictions from LIANA.

We also kindly refer the user to OmniPathR, and the OmniPath website for more information how to make full use of OmniPath!

Session information

options(width = 120)
sessioninfo::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value
##  version  R version 4.1.2 (2021-11-01)
##  os       Ubuntu 20.04.5 LTS
##  system   x86_64, linux-gnu
##  ui       X11
##  language en
##  collate  en_US.UTF-8
##  ctype    en_US.UTF-8
##  tz       Europe/Berlin
##  date     2022-11-08
##  pandoc   2.18 @ /home/dbdimitrov/anaconda3/envs/liana4.1/bin/ (via rmarkdown)
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package              * version  date (UTC) lib source
##  abind                  1.4-5    2016-07-21 [2] CRAN (R 4.1.2)
##  assertthat             0.2.1    2019-03-21 [2] CRAN (R 4.1.2)
##  backports              1.4.1    2021-12-13 [2] CRAN (R 4.1.2)
##  basilisk               1.9.12   2022-10-31 [2] Github (LTLA/basilisk@e185224)
##  basilisk.utils         1.9.4    2022-10-31 [2] Github (LTLA/basilisk.utils@b3ab58d)
##  beachmat               2.10.0   2021-10-26 [2] Bioconductor
##  beeswarm               0.4.0    2021-06-01 [2] CRAN (R 4.1.2)
##  Biobase                2.54.0   2021-10-26 [2] Bioconductor
##  BiocGenerics           0.40.0   2021-10-26 [2] Bioconductor
##  BiocManager            1.30.18  2022-05-18 [2] CRAN (R 4.1.2)
##  BiocNeighbors          1.12.0   2021-10-26 [2] Bioconductor
##  BiocParallel           1.28.3   2021-12-09 [2] Bioconductor
##  BiocSingular           1.10.0   2021-10-26 [2] Bioconductor
##  BiocStyle            * 2.22.0   2021-10-26 [2] Bioconductor
##  bit                    4.0.4    2020-08-04 [2] CRAN (R 4.1.0)
##  bit64                  4.0.5    2020-08-30 [2] CRAN (R 4.1.0)
##  bitops                 1.0-7    2021-04-24 [2] CRAN (R 4.1.2)
##  bluster                1.4.0    2021-10-26 [2] Bioconductor
##  bookdown               0.27     2022-06-14 [2] CRAN (R 4.1.2)
##  broom                  1.0.0    2022-07-01 [2] CRAN (R 4.1.2)
##  bslib                  0.4.0    2022-07-16 [2] CRAN (R 4.1.2)
##  cachem                 1.0.6    2021-08-19 [2] CRAN (R 4.1.2)
##  cellranger             1.1.0    2016-07-27 [2] CRAN (R 4.1.2)
##  checkmate              2.1.0    2022-04-21 [2] CRAN (R 4.1.2)
##  circlize               0.4.15   2022-05-10 [2] CRAN (R 4.1.2)
##  cli                    3.3.0    2022-04-25 [2] CRAN (R 4.1.2)
##  clue                   0.3-61   2022-05-30 [2] CRAN (R 4.1.2)
##  cluster                2.1.3    2022-03-28 [2] CRAN (R 4.1.2)
##  codetools              0.2-18   2020-11-04 [2] CRAN (R 4.1.2)
##  colorspace             2.0-3    2022-02-21 [2] CRAN (R 4.1.2)
##  ComplexHeatmap         2.10.0   2021-10-26 [2] Bioconductor
##  cowplot                1.1.1    2020-12-30 [2] CRAN (R 4.1.2)
##  crayon                 1.5.1    2022-03-26 [2] CRAN (R 4.1.2)
##  curl                   4.3.2    2021-06-23 [2] CRAN (R 4.1.0)
##  data.table             1.14.2   2021-09-27 [2] CRAN (R 4.1.2)
##  DBI                    1.1.3    2022-06-18 [2] CRAN (R 4.1.2)
##  dbplyr                 2.2.1    2022-06-27 [2] CRAN (R 4.1.2)
##  DelayedArray           0.20.0   2021-10-26 [2] Bioconductor
##  DelayedMatrixStats     1.16.0   2021-10-26 [2] Bioconductor
##  deldir                 1.0-6    2021-10-23 [2] CRAN (R 4.1.2)
##  desc                   1.4.1    2022-03-06 [2] CRAN (R 4.1.2)
##  digest                 0.6.29   2021-12-01 [2] CRAN (R 4.1.1)
##  dir.expiry             1.2.0    2021-10-26 [2] Bioconductor
##  doParallel             1.0.17   2022-02-07 [2] CRAN (R 4.1.2)
##  dplyr                * 1.0.9    2022-04-28 [2] CRAN (R 4.1.2)
##  dqrng                  0.3.0    2021-05-01 [2] CRAN (R 4.1.2)
##  edgeR                  3.36.0   2021-10-26 [2] Bioconductor
##  ellipsis               0.3.2    2021-04-29 [2] CRAN (R 4.1.2)
##  evaluate               0.15     2022-02-18 [2] CRAN (R 4.1.2)
##  fansi                  1.0.3    2022-03-24 [2] CRAN (R 4.1.2)
##  fastmap                1.1.0    2021-01-25 [2] CRAN (R 4.1.2)
##  filelock               1.0.2    2018-10-05 [2] CRAN (R 4.1.2)
##  fitdistrplus           1.1-8    2022-03-10 [2] CRAN (R 4.1.2)
##  forcats              * 0.5.1    2021-01-27 [2] CRAN (R 4.1.2)
##  foreach                1.5.2    2022-02-02 [2] CRAN (R 4.1.2)
##  fs                     1.5.2    2021-12-08 [2] CRAN (R 4.1.2)
##  future                 1.27.0   2022-07-22 [2] CRAN (R 4.1.2)
##  future.apply           1.9.0    2022-04-25 [2] CRAN (R 4.1.2)
##  gargle                 1.2.0    2021-07-02 [2] CRAN (R 4.1.2)
##  generics               0.1.3    2022-07-05 [2] CRAN (R 4.1.2)
##  GenomeInfoDb           1.30.1   2022-01-30 [2] Bioconductor
##  GenomeInfoDbData       1.2.7    2022-01-26 [2] Bioconductor
##  GenomicRanges          1.46.1   2021-11-18 [2] Bioconductor
##  GetoptLong             1.0.5    2020-12-15 [2] CRAN (R 4.1.2)
##  ggbeeswarm             0.6.0    2017-08-07 [2] CRAN (R 4.1.2)
##  ggplot2              * 3.3.6    2022-05-03 [2] CRAN (R 4.1.2)
##  ggrepel                0.9.1    2021-01-15 [2] CRAN (R 4.1.2)
##  ggridges               0.5.3    2021-01-08 [2] CRAN (R 4.1.2)
##  GlobalOptions          0.1.2    2020-06-10 [2] CRAN (R 4.1.2)
##  globals                0.15.1   2022-06-24 [2] CRAN (R 4.1.2)
##  glue                   1.6.2    2022-02-24 [2] CRAN (R 4.1.2)
##  goftest                1.2-3    2021-10-07 [2] CRAN (R 4.1.2)
##  googledrive            2.0.0    2021-07-08 [2] CRAN (R 4.1.2)
##  googlesheets4          1.0.0    2021-07-21 [2] CRAN (R 4.1.2)
##  gridExtra              2.3      2017-09-09 [2] CRAN (R 4.1.2)
##  gtable                 0.3.0    2019-03-25 [2] CRAN (R 4.1.2)
##  haven                  2.5.0    2022-04-15 [2] CRAN (R 4.1.2)
##  hms                    1.1.1    2021-09-26 [2] CRAN (R 4.1.2)
##  htmltools              0.5.3    2022-07-18 [2] CRAN (R 4.1.2)
##  htmlwidgets            1.5.4    2021-09-08 [2] CRAN (R 4.1.2)
##  httpuv                 1.6.5    2022-01-05 [2] CRAN (R 4.1.2)
##  httr                   1.4.3    2022-05-04 [2] CRAN (R 4.1.2)
##  ica                    1.0-3    2022-07-08 [2] CRAN (R 4.1.2)
##  igraph                 1.3.0    2022-04-01 [2] CRAN (R 4.1.3)
##  IRanges                2.28.0   2021-10-26 [2] Bioconductor
##  irlba                  2.3.5    2021-12-06 [2] CRAN (R 4.1.2)
##  iterators              1.0.14   2022-02-05 [2] CRAN (R 4.1.2)
##  jquerylib              0.1.4    2021-04-26 [2] CRAN (R 4.1.2)
##  jsonlite               1.8.0    2022-02-22 [2] CRAN (R 4.1.2)
##  KernSmooth             2.23-20  2021-05-03 [2] CRAN (R 4.1.2)
##  knitr                  1.39     2022-04-26 [2] CRAN (R 4.1.2)
##  later                  1.3.0    2021-08-18 [2] CRAN (R 4.1.2)
##  lattice                0.20-45  2021-09-22 [2] CRAN (R 4.1.1)
##  lazyeval               0.2.2    2019-03-15 [2] CRAN (R 4.1.2)
##  leiden                 0.4.2    2022-05-09 [2] CRAN (R 4.1.2)
##  liana                * 0.1.8    2022-11-08 [1] Bioconductor
##  lifecycle              1.0.1    2021-09-24 [2] CRAN (R 4.1.2)
##  limma                  3.50.3   2022-04-07 [2] Bioconductor
##  listenv                0.8.0    2019-12-05 [2] CRAN (R 4.1.2)
##  lmtest                 0.9-40   2022-03-21 [2] CRAN (R 4.1.2)
##  locfit                 1.5-9.6  2022-07-11 [2] CRAN (R 4.1.2)
##  logger                 0.2.2    2021-10-19 [2] CRAN (R 4.1.2)
##  lubridate              1.8.0    2021-10-07 [2] CRAN (R 4.1.2)
##  magrittr             * 2.0.3    2022-03-30 [2] CRAN (R 4.1.3)
##  MASS                   7.3-58   2022-07-14 [2] CRAN (R 4.1.2)
##  Matrix                 1.4-1    2022-03-23 [2] CRAN (R 4.1.2)
##  MatrixGenerics         1.6.0    2021-10-26 [2] Bioconductor
##  matrixStats            0.62.0   2022-04-19 [2] CRAN (R 4.1.2)
##  memoise                2.0.1    2021-11-26 [2] CRAN (R 4.1.2)
##  metapod                1.2.0    2021-10-26 [2] Bioconductor
##  mgcv                   1.8-40   2022-03-29 [2] CRAN (R 4.1.2)
##  mime                   0.12     2021-09-28 [2] CRAN (R 4.1.2)
##  miniUI                 0.1.1.1  2018-05-18 [2] CRAN (R 4.1.2)
##  modelr                 0.1.8    2020-05-19 [2] CRAN (R 4.1.2)
##  munsell                0.5.0    2018-06-12 [2] CRAN (R 4.1.2)
##  nlme                   3.1-158  2022-06-15 [2] CRAN (R 4.1.2)
##  OmnipathR              3.5.5    2022-07-03 [2] Github (saezlab/OmnipathR@679bb79)
##  parallelly             1.32.1   2022-07-21 [2] CRAN (R 4.1.2)
##  patchwork              1.1.1    2020-12-17 [2] CRAN (R 4.1.2)
##  pbapply                1.5-0    2021-09-16 [2] CRAN (R 4.1.2)
##  pillar                 1.8.0    2022-07-18 [2] CRAN (R 4.1.2)
##  pkgconfig              2.0.3    2019-09-22 [2] CRAN (R 4.1.0)
##  pkgdown                2.0.6    2022-07-16 [2] CRAN (R 4.1.2)
##  plotly                 4.10.0   2021-10-09 [2] CRAN (R 4.1.2)
##  plyr                   1.8.7    2022-03-24 [2] CRAN (R 4.1.2)
##  png                    0.1-7    2013-12-03 [2] CRAN (R 4.1.0)
##  polyclip               1.10-0   2019-03-14 [2] CRAN (R 4.1.2)
##  prettyunits            1.1.1    2020-01-24 [2] CRAN (R 4.1.2)
##  progress               1.2.2    2019-05-16 [2] CRAN (R 4.1.2)
##  progressr              0.10.1   2022-06-03 [2] CRAN (R 4.1.2)
##  promises               1.2.0.1  2021-02-11 [2] CRAN (R 4.1.2)
##  purrr                * 0.3.4    2020-04-17 [2] CRAN (R 4.1.0)
##  R6                     2.5.1    2021-08-19 [2] CRAN (R 4.1.2)
##  ragg                   1.2.2    2022-02-21 [2] CRAN (R 4.1.2)
##  RANN                   2.6.1    2019-01-08 [2] CRAN (R 4.1.2)
##  rappdirs               0.3.3    2021-01-31 [2] CRAN (R 4.1.2)
##  RColorBrewer           1.1-3    2022-04-03 [2] CRAN (R 4.1.2)
##  Rcpp                   1.0.8.3  2022-03-17 [2] CRAN (R 4.1.2)
##  RcppAnnoy              0.0.19   2021-07-30 [2] CRAN (R 4.1.2)
##  RCurl                  1.98-1.7 2022-06-09 [2] CRAN (R 4.1.2)
##  readr                * 2.1.2    2022-01-30 [2] CRAN (R 4.1.2)
##  readxl                 1.4.0    2022-03-28 [2] CRAN (R 4.1.2)
##  reprex                 2.0.1    2021-08-05 [2] CRAN (R 4.1.2)
##  reshape2               1.4.4    2020-04-09 [2] CRAN (R 4.1.2)
##  reticulate             1.25     2022-05-11 [2] CRAN (R 4.1.2)
##  rgeos                  0.5-9    2021-12-15 [2] CRAN (R 4.1.2)
##  rjson                  0.2.21   2022-01-09 [2] CRAN (R 4.1.2)
##  rlang                  1.0.4    2022-07-12 [2] CRAN (R 4.1.3)
##  rmarkdown              2.14     2022-04-25 [2] CRAN (R 4.1.2)
##  ROCR                   1.0-11   2020-05-02 [2] CRAN (R 4.1.2)
##  rpart                  4.1.16   2022-01-24 [2] CRAN (R 4.1.2)
##  rprojroot              2.0.3    2022-04-02 [2] CRAN (R 4.1.2)
##  rstudioapi             0.13     2020-11-12 [2] CRAN (R 4.1.2)
##  rsvd                   1.0.5    2021-04-16 [2] CRAN (R 4.1.2)
##  Rtsne                  0.16     2022-04-17 [2] CRAN (R 4.1.2)
##  rvest                  1.0.2    2021-10-16 [2] CRAN (R 4.1.2)
##  S4Vectors              0.32.4   2022-03-24 [2] Bioconductor
##  sass                   0.4.2    2022-07-16 [2] CRAN (R 4.1.2)
##  ScaledMatrix           1.2.0    2021-10-26 [2] Bioconductor
##  scales                 1.2.0    2022-04-13 [2] CRAN (R 4.1.2)
##  scater                 1.22.0   2021-10-26 [2] Bioconductor
##  scattermore            0.8      2022-02-14 [2] CRAN (R 4.1.2)
##  scran                  1.22.1   2021-11-14 [2] Bioconductor
##  sctransform            0.3.3    2022-01-13 [2] CRAN (R 4.1.2)
##  scuttle                1.4.0    2021-10-26 [2] Bioconductor
##  sessioninfo            1.2.2    2021-12-06 [2] CRAN (R 4.1.2)
##  Seurat                 4.1.1    2022-05-02 [2] CRAN (R 4.1.2)
##  SeuratObject           4.1.0    2022-05-01 [2] CRAN (R 4.1.2)
##  shape                  1.4.6    2021-05-19 [2] CRAN (R 4.1.2)
##  shiny                  1.7.2    2022-07-19 [2] CRAN (R 4.1.2)
##  SingleCellExperiment   1.16.0   2021-10-26 [2] Bioconductor
##  sp                     1.5-0    2022-06-05 [2] CRAN (R 4.1.3)
##  sparseMatrixStats      1.6.0    2021-10-26 [2] Bioconductor
##  spatstat.core          2.4-4    2022-05-18 [2] CRAN (R 4.1.2)
##  spatstat.data          2.2-0    2022-04-18 [2] CRAN (R 4.1.2)
##  spatstat.geom          2.4-0    2022-03-29 [2] CRAN (R 4.1.2)
##  spatstat.random        2.2-0    2022-03-30 [2] CRAN (R 4.1.2)
##  spatstat.sparse        2.1-1    2022-04-18 [2] CRAN (R 4.1.2)
##  spatstat.utils         2.3-1    2022-05-06 [2] CRAN (R 4.1.2)
##  statmod                1.4.36   2021-05-10 [2] CRAN (R 4.1.2)
##  stringi                1.7.6    2021-11-29 [2] CRAN (R 4.1.1)
##  stringr              * 1.4.0    2019-02-10 [2] CRAN (R 4.1.0)
##  SummarizedExperiment   1.24.0   2021-10-26 [2] Bioconductor
##  survival               3.3-1    2022-03-03 [2] CRAN (R 4.1.2)
##  systemfonts            1.0.4    2022-02-11 [2] CRAN (R 4.1.2)
##  tensor                 1.5      2012-05-05 [2] CRAN (R 4.1.2)
##  textshaping            0.3.6    2021-10-13 [2] CRAN (R 4.1.2)
##  tibble               * 3.1.8    2022-07-22 [2] CRAN (R 4.1.2)
##  tidyr                * 1.2.0    2022-02-01 [2] CRAN (R 4.1.2)
##  tidyselect             1.1.2    2022-02-21 [2] CRAN (R 4.1.2)
##  tidyverse            * 1.3.2    2022-07-18 [2] CRAN (R 4.1.2)
##  tzdb                   0.3.0    2022-03-28 [2] CRAN (R 4.1.2)
##  utf8                   1.2.2    2021-07-24 [2] CRAN (R 4.1.2)
##  uwot                   0.1.11   2021-12-02 [2] CRAN (R 4.1.2)
##  vctrs                  0.4.1    2022-04-13 [2] CRAN (R 4.1.2)
##  vipor                  0.4.5    2017-03-22 [2] CRAN (R 4.1.2)
##  viridis                0.6.2    2021-10-13 [2] CRAN (R 4.1.2)
##  viridisLite            0.4.0    2021-04-13 [2] CRAN (R 4.1.2)
##  vroom                  1.5.7    2021-11-30 [2] CRAN (R 4.1.2)
##  withr                  2.5.0    2022-03-03 [2] CRAN (R 4.1.2)
##  xfun                   0.31     2022-05-10 [2] CRAN (R 4.1.2)
##  xml2                   1.3.3    2021-11-30 [2] CRAN (R 4.1.2)
##  xtable                 1.8-4    2019-04-21 [2] CRAN (R 4.1.2)
##  XVector                0.34.0   2021-10-26 [2] Bioconductor
##  yaml                   2.3.5    2022-02-21 [2] CRAN (R 4.1.2)
##  zlibbioc               1.40.0   2021-10-26 [2] Bioconductor
##  zoo                    1.8-10   2022-04-15 [2] CRAN (R 4.1.2)
## 
##  [1] /tmp/RtmpVLiNkN/temp_libpath6ebbf78bb5b6b
##  [2] /home/dbdimitrov/anaconda3/envs/liana4.1/lib/R/library
## 
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────