library(rliger)
## Loading required package: cowplot
## Loading required package: Matrix
## Loading required package: patchwork
## 
## Attaching package: 'patchwork'
## The following object is masked from 'package:cowplot':
## 
##     align_plots
library(Seurat)
## Attaching SeuratObject
library(SeuratData)
## ── Installed datasets ───────────────────────────────────── SeuratData v0.2.2 ──
## ✓ ifnb    3.1.0                         ✓ pbmcsca 3.0.0
## ✓ panc8   3.0.2
## ────────────────────────────────────── Key ─────────────────────────────────────
## ✓ Dataset loaded successfully
## > Dataset built with a newer version of Seurat than installed
## ❓ Unknown version of Seurat installed
library(SeuratWrappers)
ifnb <- readRDS("/mnt/nectar_volume/home/eraz0001/new/IFNB.rds")
head(ifnb)
##                   orig.ident nCount_RNA nFeature_RNA stim seurat_annotations
## AAACATACATTTCC.1 IMMUNE_CTRL       3017          877 CTRL          CD14 Mono
## AAACATACCAGAAA.1 IMMUNE_CTRL       2481          713 CTRL          CD14 Mono
## AAACATACCTCGCT.1 IMMUNE_CTRL       3420          850 CTRL          CD14 Mono
## AAACATACCTGGTA.1 IMMUNE_CTRL       3156         1109 CTRL                pDC
## AAACATACGATGAA.1 IMMUNE_CTRL       1868          634 CTRL       CD4 Memory T
## AAACATACGGCATT.1 IMMUNE_CTRL       1581          557 CTRL          CD14 Mono
## AAACATACTGCGTA.1 IMMUNE_CTRL       2747          980 CTRL        T activated
## AAACATACTGCTGA.1 IMMUNE_CTRL       1341          581 CTRL        CD4 Naive T
## AAACATTGAGTGTC.1 IMMUNE_CTRL       2155          880 CTRL              CD8 T
## AAACATTGCTTCGC.1 IMMUNE_CTRL       2536          669 CTRL          CD14 Mono

We can use the following functions in LIGER pckg or even in seurat. we used the seurat’s ones.

pbmcsca <- NormalizeData(pbmcsca)
pbmcsca <- FindVariableFeatures(pbmcsca)
pbmcsca <- ScaleData(pbmcsca, split.by = "Method", do.center = FALSE)
## Scaling data matrix
## Scaling data from split 10x Chromium (v2)
## Scaling data from split 10x Chromium (v2) A
## Scaling data from split 10x Chromium (v2) B
## Scaling data from split 10x Chromium (v3)
## Scaling data from split CEL-Seq2
## Scaling data from split Drop-seq
## Scaling data from split inDrops
## Scaling data from split Seq-Well
## Scaling data from split Smart-seq2
head(pbmcsca)
##                    orig.ident nCount_RNA nFeature_RNA nGene   nUMI
## pbmc1_SM2_Cell_108      pbmc1     437125         2200  2200 437125
## pbmc1_SM2_Cell_115      pbmc1     335596         2438  2438 335596
## pbmc1_SM2_Cell_133      pbmc1     302204         1874  1874 302204
## pbmc1_SM2_Cell_142      pbmc1     377420         2480  2480 377420
## pbmc1_SM2_Cell_143      pbmc1     385514         2196  2196 385514
## pbmc1_SM2_Cell_144      pbmc1     304994         2216  2216 304994
## pbmc1_SM2_Cell_146      pbmc1     410522         2331  2331 410522
## pbmc1_SM2_Cell_148      pbmc1     335187         2075  2075 335187
## pbmc1_SM2_Cell_152      pbmc1     485530         2830  2830 485530
## pbmc1_SM2_Cell_153      pbmc1     280213         2263  2263 280213
##                          percent.mito Cluster         CellType Experiment
## pbmc1_SM2_Cell_108 0.0297434465355702       0 Cytotoxic T cell      pbmc1
## pbmc1_SM2_Cell_115 0.0311521658159055       0 Cytotoxic T cell      pbmc1
## pbmc1_SM2_Cell_133 0.0431128105727693       0 Cytotoxic T cell      pbmc1
## pbmc1_SM2_Cell_142 0.0260323569927476       0 Cytotoxic T cell      pbmc1
## pbmc1_SM2_Cell_143 0.0404759383962183       0 Cytotoxic T cell      pbmc1
## pbmc1_SM2_Cell_144  0.023409951391094       0 Cytotoxic T cell      pbmc1
## pbmc1_SM2_Cell_146 0.0266065031418581       0 Cytotoxic T cell      pbmc1
## pbmc1_SM2_Cell_148 0.0446061115049967       0 Cytotoxic T cell      pbmc1
## pbmc1_SM2_Cell_152 0.0234517593805909       5 Cytotoxic T cell      pbmc1
## pbmc1_SM2_Cell_153 0.0346036948333838       0 Cytotoxic T cell      pbmc1
##                        Method
## pbmc1_SM2_Cell_108 Smart-seq2
## pbmc1_SM2_Cell_115 Smart-seq2
## pbmc1_SM2_Cell_133 Smart-seq2
## pbmc1_SM2_Cell_142 Smart-seq2
## pbmc1_SM2_Cell_143 Smart-seq2
## pbmc1_SM2_Cell_144 Smart-seq2
## pbmc1_SM2_Cell_146 Smart-seq2
## pbmc1_SM2_Cell_148 Smart-seq2
## pbmc1_SM2_Cell_152 Smart-seq2
## pbmc1_SM2_Cell_153 Smart-seq2
tail(pbmcsca)
##                                            orig.ident nCount_RNA nFeature_RNA
## pbmc2_inDrops_1_GTGATAAA.TTATGCGA.CTTCTTCG      pbmc2       1082          704
## pbmc2_inDrops_1_GTGGTGCT.TTATGCGA.ACCTTGCC      pbmc2        832          522
## pbmc2_inDrops_1_GTTACTAG.GAGCCTTA.GCACCTCT      pbmc2       1463          807
## pbmc2_inDrops_1_TAAACCGA.TTATGCGA.ATGCGGAT      pbmc2        917          561
## pbmc2_inDrops_1_TAGATCAA.TTATGCGA.CTTCGCAC      pbmc2        807          556
## pbmc2_inDrops_1_TAGTCTCT.GAGCCTTA.ATCCGCTA      pbmc2        717          453
## pbmc2_inDrops_1_TCCAGAAG.TTATGCGA.TAAGACGG      pbmc2        938          592
## pbmc2_inDrops_1_TGAATCCT.GAGCCTTA.CCCAAGCA      pbmc2        662          406
## pbmc2_inDrops_1_TGAATCCT.TTATGCGA.CATCTCCC      pbmc2       2066         1001
## pbmc2_inDrops_1_TGAGCACA.GAGCCTTA.CGAGTCTG      pbmc2        253          184
##                                            nGene nUMI       percent.mito
## pbmc2_inDrops_1_GTGATAAA.TTATGCGA.CTTCTTCG   704 1082 0.0286506469500924
## pbmc2_inDrops_1_GTGGTGCT.TTATGCGA.ACCTTGCC   522  832 0.0240384615384615
## pbmc2_inDrops_1_GTTACTAG.GAGCCTTA.GCACCTCT   807 1463  0.050580997949419
## pbmc2_inDrops_1_TAAACCGA.TTATGCGA.ATGCGGAT   561  917 0.0588876772082879
## pbmc2_inDrops_1_TAGATCAA.TTATGCGA.CTTCGCAC   556  807 0.0247831474597274
## pbmc2_inDrops_1_TAGTCTCT.GAGCCTTA.ATCCGCTA   453  717  0.097629009762901
## pbmc2_inDrops_1_TCCAGAAG.TTATGCGA.TAAGACGG   592  938  0.035181236673774
## pbmc2_inDrops_1_TGAATCCT.GAGCCTTA.CCCAAGCA   406  662  0.138972809667674
## pbmc2_inDrops_1_TGAATCCT.TTATGCGA.CATCTCCC  1001 2066 0.0556631171345595
## pbmc2_inDrops_1_TGAGCACA.GAGCCTTA.CGAGTCTG   184  253  0.146245059288538
##                                            Cluster                    CellType
## pbmc2_inDrops_1_GTGATAAA.TTATGCGA.CTTCTTCG      11 Plasmacytoid dendritic cell
## pbmc2_inDrops_1_GTGGTGCT.TTATGCGA.ACCTTGCC      11 Plasmacytoid dendritic cell
## pbmc2_inDrops_1_GTTACTAG.GAGCCTTA.GCACCTCT      11 Plasmacytoid dendritic cell
## pbmc2_inDrops_1_TAAACCGA.TTATGCGA.ATGCGGAT      11 Plasmacytoid dendritic cell
## pbmc2_inDrops_1_TAGATCAA.TTATGCGA.CTTCGCAC       7              Dendritic cell
## pbmc2_inDrops_1_TAGTCTCT.GAGCCTTA.ATCCGCTA      11 Plasmacytoid dendritic cell
## pbmc2_inDrops_1_TCCAGAAG.TTATGCGA.TAAGACGG      11 Plasmacytoid dendritic cell
## pbmc2_inDrops_1_TGAATCCT.GAGCCTTA.CCCAAGCA      11 Plasmacytoid dendritic cell
## pbmc2_inDrops_1_TGAATCCT.TTATGCGA.CATCTCCC      11 Plasmacytoid dendritic cell
## pbmc2_inDrops_1_TGAGCACA.GAGCCTTA.CGAGTCTG      11 Plasmacytoid dendritic cell
##                                            Experiment  Method
## pbmc2_inDrops_1_GTGATAAA.TTATGCGA.CTTCTTCG      pbmc2 inDrops
## pbmc2_inDrops_1_GTGGTGCT.TTATGCGA.ACCTTGCC      pbmc2 inDrops
## pbmc2_inDrops_1_GTTACTAG.GAGCCTTA.GCACCTCT      pbmc2 inDrops
## pbmc2_inDrops_1_TAAACCGA.TTATGCGA.ATGCGGAT      pbmc2 inDrops
## pbmc2_inDrops_1_TAGATCAA.TTATGCGA.CTTCGCAC      pbmc2 inDrops
## pbmc2_inDrops_1_TAGTCTCT.GAGCCTTA.ATCCGCTA      pbmc2 inDrops
## pbmc2_inDrops_1_TCCAGAAG.TTATGCGA.TAAGACGG      pbmc2 inDrops
## pbmc2_inDrops_1_TGAATCCT.GAGCCTTA.CCCAAGCA      pbmc2 inDrops
## pbmc2_inDrops_1_TGAATCCT.TTATGCGA.CATCTCCC      pbmc2 inDrops
## pbmc2_inDrops_1_TGAGCACA.GAGCCTTA.CGAGTCTG      pbmc2 inDrops
pbmcsca <- RunOptimizeALS(pbmcsca, k = 20, lambda = 5, split.by = "Method")
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |==                                                                    |   3%
  |                                                                            
  |=====                                                                 |   7%
  |                                                                            
  |=======                                                               |  10%
  |                                                                            
  |=========                                                             |  13%
  |                                                                            
  |============                                                          |  17%
  |                                                                            
  |==============                                                        |  20%
  |                                                                            
  |================                                                      |  23%
  |                                                                            
  |===================                                                   |  27%
  |                                                                            
  |=====================                                                 |  30%
  |                                                                            
  |=======================                                               |  33%
  |                                                                            
  |==========================                                            |  37%
  |                                                                            
  |============================                                          |  40%
  |                                                                            
  |==============================                                        |  43%
  |                                                                            
  |=================================                                     |  47%
  |                                                                            
  |===================================                                   |  50%
  |                                                                            
  |=====================================                                 |  53%
  |                                                                            
  |========================================                              |  57%
  |                                                                            
  |==========================================                            |  60%
  |                                                                            
  |============================================                          |  63%
  |                                                                            
  |===============================================                       |  67%
  |                                                                            
  |=================================================                     |  70%
  |                                                                            
  |===================================================                   |  73%
  |                                                                            
  |======================================================                |  77%
  |                                                                            
  |========================================================              |  80%
  |                                                                            
  |==========================================================            |  83%
  |                                                                            
  |=============================================================         |  87%
  |                                                                            
  |===============================================================       |  90%
  |                                                                            
  |=================================================================     |  93%
  |                                                                            
  |====================================================================  |  97%
  |                                                                            
  |======================================================================| 100%
## Finished in 16.9668 mins, 30 iterations.
## Max iterations set: 30.
## Final objective delta: 1.718198e-05.
## Best results with seed 1.
## Warning: No columnames present in cell embeddings, setting to 'riNMF_1:20'
pbmcsca <- RunQuantileNorm(pbmcsca, split.by = "Method")
pbmcsca <- FindNeighbors(pbmcsca, reduction = "iNMF", dims = 1:20)
## Computing nearest neighbor graph
## Computing SNN
pbmcsca <- FindClusters(pbmcsca, resolution = 0.3)
## Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
## 
## Number of nodes: 31021
## Number of edges: 1037536
## 
## Running Louvain algorithm...
## Maximum modularity in 10 random starts: 0.9258
## Number of communities: 12
## Elapsed time: 8 seconds
pbmcsca <- RunUMAP(pbmcsca, dims = 1:ncol(pbmcsca[["iNMF"]]), reduction = "iNMF")
## Warning: The default method for RunUMAP has changed from calling Python UMAP via reticulate to the R-native UWOT using the cosine metric
## To use Python UMAP via reticulate, set umap.method to 'umap-learn' and metric to 'correlation'
## This message will be shown once per session
## 13:28:55 UMAP embedding parameters a = 0.9922 b = 1.112
## 13:28:55 Read 31021 rows and found 20 numeric columns
## 13:28:55 Using Annoy for neighbor search, n_neighbors = 30
## 13:28:55 Building Annoy index with metric = cosine, n_trees = 50
## 0%   10   20   30   40   50   60   70   80   90   100%
## [----|----|----|----|----|----|----|----|----|----|
## **************************************************|
## 13:29:00 Writing NN index file to temp file /tmp/RtmpVKEUNG/file2da55b1402a26b
## 13:29:00 Searching Annoy index using 1 thread, search_k = 3000
## 13:29:17 Annoy recall = 100%
## 13:29:17 Commencing smooth kNN distance calibration using 1 thread
## 13:29:19 Initializing from normalized Laplacian + noise
## 13:29:21 Commencing optimization for 200 epochs, with 1339728 positive edges
## 13:29:37 Optimization finished
DimPlot(pbmcsca, group.by = c("Method", "ident", "CellType"), ncol = 3)