Skip to contents

This function generates a projection plot, which can be used to compare two groups of cells in a dimensionality reduction space.

Usage

ProjectionPlot(
  srt_query,
  srt_ref,
  query_group = NULL,
  ref_group = NULL,
  query_reduction = "ref.embeddings",
  ref_reduction = srt_query[[query_reduction]]@misc[["reduction.model"]] %||% NULL,
  query_param = list(palette = "Set1", cells.highlight = TRUE),
  ref_param = list(palette = "Paired"),
  xlim = NULL,
  ylim = NULL,
  pt.size = 0.8,
  stroke.highlight = 0.5
)

Arguments

srt_query

An object of class Seurat storing the query group cells.

srt_ref

An object of class Seurat storing the reference group cells.

query_group

The grouping variable for the query group cells.

ref_group

The grouping variable for the reference group cells.

query_reduction

The name of the reduction in the query group cells.

ref_reduction

The name of the reduction in the reference group cells.

query_param

A list of parameters for customizing the query group plot. Available parameters: palette (color palette for groups) and cells.highlight (whether to highlight cells).

ref_param

A list of parameters for customizing the reference group plot. Available parameters: palette (color palette for groups) and cells.highlight (whether to highlight cells).

xlim

The x-axis limits for the plot. If not provided, the limits will be calculated based on the data.

ylim

The y-axis limits for the plot. If not provided, the limits will be calculated based on the data.

pt.size

The size of the points in the plot.

stroke.highlight

The size of the stroke highlight for cells.

Examples

data("panc8_sub")
srt_ref <- panc8_sub[, panc8_sub$tech != "fluidigmc1"]
srt_query <- panc8_sub[, panc8_sub$tech == "fluidigmc1"]
srt_ref <- integration_scop(
  srt_ref,
  batch = "tech",
  integration_method = "Seurat"
)
#>  [2025-07-02 02:53:38] Start Seurat_integrate
#>  [2025-07-02 02:53:38]  Spliting srt_merge into srt_list by column tech...
#>  [2025-07-02 02:53:39] Checking srt_list...
#>  [2025-07-02 02:53:40] Data 1/4 of the srt_list has been log-normalized.
#>  [2025-07-02 02:53:40] Perform FindVariableFeatures on the data 1/4 of the srt_list...
#>  [2025-07-02 02:53:40] Data 2/4 of the srt_list has been log-normalized.
#>  [2025-07-02 02:53:40] Perform FindVariableFeatures on the data 2/4 of the srt_list...
#>  [2025-07-02 02:53:41] Data 3/4 of the srt_list has been log-normalized.
#>  [2025-07-02 02:53:41] Perform FindVariableFeatures on the data 3/4 of the srt_list...
#>  [2025-07-02 02:53:41] Data 4/4 of the srt_list has been log-normalized.
#>  [2025-07-02 02:53:41] Perform FindVariableFeatures on the data 4/4 of the srt_list...
#>  [2025-07-02 02:53:41] Use the separate HVF from srt_list...
#>  [2025-07-02 02:53:42] Number of available HVF: 2000
#>  [2025-07-02 02:53:42] Finished checking.
#>  [2025-07-02 02:53:44] Perform FindIntegrationAnchors on the data...
#> Warning: Different features in new layer data than already exists for scale.data
#> Warning: Different features in new layer data than already exists for scale.data
#> Warning: Different features in new layer data than already exists for scale.data
#> Warning: Different features in new layer data than already exists for scale.data
#>  [2025-07-02 02:54:05] Perform integration(Seurat) on the data...
#> Warning: Layer counts isn't present in the assay object; returning NULL
#> Warning: Different cells in new layer data than already exists for scale.data
#> Warning: Layer counts isn't present in the assay object; returning NULL
#> Warning: Different cells in new layer data than already exists for scale.data
#> Warning: Layer counts isn't present in the assay object; returning NULL
#>  [2025-07-02 02:54:13] Perform ScaleData on the data...
#>  [2025-07-02 02:54:13] Perform linear dimension reduction (pca) on the data...
#>  [2025-07-02 02:54:14] Perform FindClusters (louvain) on the data...
#>  [2025-07-02 02:54:14] Reorder clusters...
#>  [2025-07-02 02:54:14] Using 'Seurat::AverageExpression()' to calculate pseudo-bulk data for 'Assay'.
#>  [2025-07-02 02:54:14] Perform nonlinear dimension reduction (umap) on the data...
#>  [2025-07-02 02:54:14] Non-linear dimensionality reduction(umap) using Reduction(Seuratpca, dims:1-11) as input
#>  [2025-07-02 02:54:18] Non-linear dimensionality reduction(umap) using Reduction(Seuratpca, dims:1-11) as input
#>  [2025-07-02 02:54:24] Seurat_integrate done
#>  [2025-07-02 02:54:24] Elapsed time: 45.46 secs
CellDimPlot(
  srt_ref,
  group.by = c("celltype", "tech")
)
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.


# Projection
srt_query <- RunKNNMap(
  srt_query = srt_query,
  srt_ref = srt_ref,
  ref_umap = "SeuratUMAP2D"
)
#>  [2025-07-02 02:54:24] Use the features to calculate distance metric.
#>  [2025-07-02 02:54:24] Detected srt_query data type: log_normalized_counts
#> Warning: The following features were labelled as variable in 'var.features' but had no corresponding rank in `var.features.rank` and will therefore be ignored: 'ABCB9', 'ABCC3', 'ABCC5', 'ABCC8', 'ABCC9', 'ABCG1', 'ABCG2', 'ABHD2', 'ABHD4', 'ABI3', 'ACBD7', 'ACE', 'ACHE', 'ACP5', 'ACSL4', 'ACSS1', 'ACTN1', 'ACTN4', 'ADAM8', 'ADAM9', 'ADAMTS5', 'ADAMTS9', 'ADAMTSL2', 'ADAP2', 'ADCK3', 'ADCY1', 'ADCY3', 'ADCY5', 'ADM2', 'ADRA2A', 'ADRBK2', 'AEN', 'AGR2', 'AGRN', 'AGTRAP', 'AHNAK', 'AHR', 'AJUBA', 'AKAP7', 'ALAS1', 'ALDH1A1', 'ALDH1A2', 'ALDH1B1', 'ALDH1L2', 'ALDH2', 'ALOX5AP', 'ALS2CL', 'AMOTL2', 'ANK1', 'ANK2', 'ANKRD1', 'ANKRD37', 'ANLN', 'ANO6', 'ANXA13', 'ANXA3', 'ANXA9', 'AP1S3', 'APOE', 'AQP3', 'ARC', 'ARG2', 'ARHGAP22', 'ARHGAP23', 'ARHGAP26', 'ARHGAP29', 'ARHGAP31', 'ARHGEF2', 'ARHGEF39', 'ARHGEF40', 'ARL14', 'ARL4C', 'ARL6IP1', 'ARNTL2', 'ARX', 'ASAP1', 'ASCL2', 'ASF1B', 'ASGR1', 'ASNS', 'ASRGL1', 'ASS1', 'ATF3', 'ATF4', 'ATF5', 'ATP11A', 'ATP1A1', 'ATP1B1', 'ATP1B2', 'ATP2A3', 'ATP8A1', 'AVPI1', 'B3GNT3', 'B4GALT1', 'B4GALT5', 'BACE2', 'BAIAP2L1', 'BAIAP3', 'BAMBI', 'BBC3', 'BCAM', 'BCL2L15', 'BCL3', 'BCL6', 'BHLHE40', 'BHLHE41', 'BIK', 'BIRC5', 'BLNK', 'BMF', 'BMP1', 'BMP2', 'BMP7', 'BRCA1', 'BRDT', 'BST2', 'BUB1B', 'BUB1', 'BZW2', 'C1QA', 'C1QC', 'C1QL1', 'C2CD4A', 'C2CD4B', 'C2', 'CABP4', 'CACNA1A', 'CACNA2D1', 'CACNG4', 'CADM2', 'CADPS', 'CALCR', 'CALY', 'CAMK2B', 'CAPG', 'CAPN5', 'CAPN6', 'CARHSP1', 'CARTPT', 'CASP9', 'CAV2', 'CBLB', 'CBLN4', 'CBS', 'CCBE1', 'CCDC34', 'CCDC3', 'CCDC51', 'CCDC69', 'CCNA1', 'CCR10', 'CCRL2', 'CD14', 'CD276', 'CD300A', 'CD68', 'CD82', 'CD9', 'CDC20', 'CDC42EP3', 'CDC6', 'CDCA3', 'CDCA8', 'CDH17', 'CDH1', 'CDH23', 'CDH3', 'CDK1', 'CDK2AP2', 'CDK5R2', 'CDKN1A', 'CDKN2A', 'CDKN2B', 'CDKN3', 'CDR2L', 'CDX2', 'CEBPB', 'CELF3', 'CELF4', 'CENPA', 'CENPW', 'CERCAM', 'CFI', 'CFLAR', 'CHAC1', 'CHGB', 'CHRD', 'CHRNA3', 'CITED2', 'CITED4', 'CKAP2', 'CKAP5', 'CKB', 'CKMT2', 'CKS1B', 'CKS2', 'CLCF1', 'CLDN1', 'CLIC4', 'CLIC5', 'CLIC6', 'CLMN', 'CLSPN', 'CNIH2', 'CNKSR2', 'CNN2', 'CNN3', 'CNRIP1', 'CNTN1', 'COL13A1', 'COL16A1', 'COL18A1', 'COL4A2', 'COL5A3', 'COL9A2', 'COPZ2', 'CORO1C', 'COTL1', 'COX7A1', 'CPLX2', 'CPPED1', 'CPT1C', 'CPVL', 'CRABP2', 'CRCT1', 'CREB3L1', 'CREB5', 'CRIP1', 'CRLF1', 'CRTAC1', 'CRTAP', 'CRYM', 'CSF1R', 'CSGALNACT1', 'CST6', 'CTSB', 'CTSC', 'CTSH', 'CTSO', 'CTSZ', 'CWC25', 'CX3CL1', 'CXADR', 'CXCL12', 'CXCL16', 'CXCL1', 'CYB5A', 'CYP26B1', 'CYTH3', 'DAB2IP', 'DACH1', 'DACT3', 'DAPP1', 'DBN1', 'DBNDD1', 'DCAF11', 'DCUN1D2', 'DDAH2', 'DDC', 'DDIT4', 'DDX3Y', 'DDX51', 'DEDD2', 'DFFA', 'DGKA', 'DHODH', 'DHRS2', 'DIP2A', 'DIRAS2', 'DIS3', 'DNAJB4', 'DNAJC12', 'DNAL1', 'DOCK4', 'DOCK6', 'DOCK8', 'DOCK9', 'DOK5', 'DOPEY2', 'DPP4', 'DPP6', 'DSC2', 'DSEL', 'DSG2', 'DUSP10', 'DUSP1', 'DUSP23', 'DUSP26', 'DUSP5', 'EBP', 'ECEL1', 'ECM1', 'ECT2', 'EDN2', 'EEF1D', 'EEF2K', 'EFEMP2', 'EFHD2', 'EFNA1', 'EGFR', 'EGR1', 'EGR4', 'EHD2', 'EHD4', 'EHF', 'EIF4A3', 'EIF4EBP1', 'ELAVL4', 'ELL2', 'EMILIN1', 'EMP2', 'EMP3', 'ENAH', 'ENO2', 'ENOX1', 'ENPP2', 'EPHB2', 'EPHB4', 'EPS8', 'ERBB3', 'ERO1L', 'ERRFI1', 'ESRRG', 'ETS2', 'EVA1A', 'EVA1B', 'EXT1', 'F2RL2', 'F2RL3', 'F2R', 'F5', 'FA2H', 'FAM105A', 'FAM107B', 'FAM110C', 'FAM117B', 'FAM129B', 'FAM134B', 'FAM163A', 'FAM171A1', 'FAM179B', 'FAM227A', 'FAM43A', 'FAM46A', 'FAM46C', 'FAM84A', 'FBLIM1', 'FBP1', 'FBXL18', 'FBXL20', 'FBXL3', 'FBXO2', 'FBXO32', 'FBXO5', 'FBXO6', 'FCER1G', 'FCGRT', 'FDPS', 'FERMT1', 'FEV', 'FFAR4', 'FGB', 'FGF13', 'FGF9', 'FGFR2', 'FGFR3', 'FHL2', 'FHOD1', 'FJX1', 'FKBP10', 'FKBP11', 'FKBP5', 'FLNA', 'FLNC', 'FMNL3', 'FNDC4', 'FNIP2', 'FOSB', 'FOSL2', 'FOXA3', 'FOXC1', 'FOXM1', 'FOXQ1', 'FRMD4A', 'FRZB', 'FSCN1', 'FSTL3', 'FUCA1', 'FURIN', 'FUT8', 'FXYD3', 'FXYD5', 'FXYD6', 'G0S2', 'G6PC', 'GAD2', 'GADD45A', 'GADD45B', 'GALE', 'GALM', 'GALNT2', 'GAL', 'GAS2L3', 'GAS6', 'GAS7', 'GATA2', 'GATA4', 'GATSL3', 'GCGR', 'GCH1', 'GCK', 'GCLC', 'GCNT1', 'GCNT3', 'GC', 'GDA', 'GEM', 'GFOD2', 'GFPT2', 'GFRA1', 'GJA1', 'GJA4', 'GJB1', 'GJC1', 'GK', 'GLIPR1', 'GLRX', 'GLS', 'GMNN', 'GOLM1', 'GORAB', 'GPC1', 'GPC6', 'GPD1', 'GPHA2', 'GPR153', 'GPR160', 'GPR161', 'GPSM1', 'GPT2', 'GPX1', 'GPX3', 'GPX8', 'GRASP', 'GREB1', 'GSN', 'GSTM5', 'GSTP1', 'GTPBP10', 'GTSE1', 'GUCA1B', 'GULP1', 'H19', 'HABP2', 'HAND2', 'HDAC9', 'HEPACAM2', 'HEPH', 'HERPUD1', 'HES1', 'HEYL', 'HHEX', 'HIF1A', 'HIF3A', 'HILPDA', 'HIP1', 'HIST1H1C', 'HIST1H2BK', 'HIST2H2BE', 'HK1', 'HK2', 'HKDC1', 'HMGB2', 'HMGB3', 'HMGCR', 'HMGCS1', 'HMMR', 'HN1', 'HNF1B', 'HOGA1', 'HOMER2', 'HOMER3', 'HOPX', 'HOTAIRM1', 'HOXB2', 'HPCAL1', 'HPGD', 'HPN', 'HS3ST1', 'HSD11B2', 'HSD17B11', 'HSD17B12', 'HSPB1', 'HSPB8', 'HSPH1', 'IBA57', 'ID1', 'ID4', 'IDH1', 'IDH2', 'IER2', 'IER3', 'IFI30', 'IFIH1', 'IFIT1', 'IFITM2', 'IFNLR1', 'IFRD1', 'IGF1R', 'IGSF10', 'IGSF1', 'IGSF3', 'IL11', 'IL17RD', 'IL18', 'IL1R2', 'IL33', 'IMPA2', 'INPP5F', 'INSIG1', 'INSM1', 'IPCEF1', 'IQSEC1', 'IRAK4', 'IRF1', 'IRF8', 'IRS2', 'IRX1', 'IRX2', 'IRX4', 'ISL1', 'ITGA10', 'ITGA11', 'ITGA3', 'ITGA9', 'ITGAV', 'ITGB4', 'ITGB6', 'ITGB8', 'ITIH5', 'ITPRIPL2', 'JAG1', 'JAG2', 'JAM3', 'JARID2', 'JDP2', 'JRK', 'JSRP1', 'JUN', 'KANK1', 'KANK2', 'KCNA5', 'KCNAB1', 'KCNE3', 'KCNG1', 'KCNH6', 'KCNJ11', 'KCNJ16', 'KCNJ3', 'KCNJ5', 'KCNJ6', 'KCNK16', 'KCNK3', 'KCNK5', 'KCNMA1', 'KCNN3', 'KCNQ1OT1', 'KCNQ1', 'KCTD12', 'KCTD8', 'KDELC2', 'KDELR3', 'KDM5D', 'KIF11', 'KIF12', 'KIF14', 'KIF21B', 'KIF2C', 'KIF5C', 'KISS1R', 'KLF10', 'KLF2', 'KLF4', 'KLF5', 'KLF6', 'KLHDC8A', 'KLHL21', 'KLK11', 'KNSTRN', 'KPNA1', 'KPNA2', 'KRT17', 'KRT86', 'KRTCAP3', 'L2HGDH', 'LAD1', 'LAMB1', 'LAMB2', 'LAPTM5', 'LBH', 'LDLR', 'LECT1', 'LEFTY1', 'LGALS3', 'LGALS9', 'LGI2', 'LHFP', 'LIMA1', 'LIMCH1', 'LIMK2', 'LIMS1', 'LIPH', 'LMO4', 'LMO7', 'LONRF2', 'LOXL2', 'LPAR6', 'LPCAT1', 'LRP12', 'LRP1', 'LRRC10B', 'LRRC17', 'LRRC27', 'LRRC57', 'LRRC58', 'LRRC59', 'LRWD1', 'LSAMP', 'LTBP4', 'LURAP1L', 'LUZP1', 'LXN', 'LY6E', 'LY6H', 'LYN', 'LYPD1', 'LYPD6B', 'MAB21L3', 'MACC1', 'MAFA', 'MAFB', 'MAFF', 'MAGI2', 'MAL2', 'MALL', 'MAN1C1', 'MANF', 'MAOB', 'MAP1B', 'MAP2', 'MAP7D2', 'MAPT', 'MARCH4', 'MARCKSL1', 'MATN2', 'MDFI', 'MDK', 'MECOM', 'MEIS2', 'MERTK', 'METTL20', 'METTL21A', 'METTL22', 'MFI2', 'MGAT4B', 'MGLL', 'MICAL2', 'MICALL1', 'MID1IP1', 'MIR143HG', 'MLLT11', 'MLXIPL', 'MMP14', 'MMP24', 'MNX1', 'MPZL2', 'MR1', 'MRC1', 'MRC2', 'MSMO1', 'MSN', 'MSRB1', 'MSRB3', 'MTL5', 'MTUS1', 'MTUS2', 'MUM1L1', 'MYC', 'MYH10', 'MYH9', 'MYL12A', 'MYL12B', 'MYO10', 'MYO1C', 'MYO1E', 'MYO5B', 'MYRF', 'MYZAP', 'NAA16', 'NAA40', 'NBEAL2', 'NBEA', 'NCAM1', 'NCAPG', 'NCAPH', 'NCMAP', 'NDRG1', 'NDRG2', 'NDRG4', 'NDUFA4L2', 'NDUFA4', 'NEBL', 'NEDD4L', 'NEFH', 'NEK8', 'NEURL1B', 'NEURL3', 'NEUROD1', 'NFATC4', 'NFIX', 'NFKBIA', 'NFKBIE', 'NFXL1', 'NGFR', 'NHLH2', 'NINJ1', 'NIPAL2', 'NKD1', 'NKX2-2', 'NLN', 'NMB', 'NMNAT1', 'NMT2', 'NOB1', 'NOS3', 'NOTCH1', 'NOTCH2', 'NOTCH3', 'NOTCH4', 'NOX4', 'NPHS1', 'NPNT', 'NPTX2', 'NPW', 'NQO1', 'NR0B1', 'NR0B2', 'NR1D1', 'NR1D2', 'NR2F2', 'NR4A2', 'NR5A2', 'NRGN', 'NRP2', 'NRSN1', 'NTN4', 'NUAK2', 'NUF2', 'NUGGC', 'NUSAP1', 'NWD1', 'OCLN', 'ODF2L', 'OLFML2B', 'OPA3', 'ORM1', 'OVOL1', 'P4HA3', 'PACSIN2', 'PAH', 'PAK3', 'PALLD', 'PALM3', 'PAMR1', 'PAPSS2', 'PARD6G', 'PARM1', 'PARVA', 'PAX6', 'PBK', 'PCDH17', 'PCDH18', 'PCDH9', 'PCK1', 'PCNA', 'PCP4', 'PCSK2', 'PCSK5', 'PDDC1', 'PDE3A', 'PDE3B', 'PDE4C', 'PDE8B', 'PDGFA', 'PDGFD', 'PDIA4', 'PDLIM1', 'PDLIM4', 'PDLIM7', 'PDP2', 'PDPR', 'PDX1', 'PEG3', 'PEMT', 'PER1', 'PER3', 'PEX13', 'PF4', 'PFKFB3', 'PGBD5', 'PGM1', 'PGM2L1', 'PGR', 'PHF19', 'PHGDH', 'PHGR1', 'PHLDA2', 'PHLDB1', 'PID1', 'PIEZO1', 'PIK3AP1', 'PIK3R1', 'PIM1', 'PINX1', 'PIP4K2A', 'PIPOX', 'PKDCC', 'PKIB', 'PKNOX2', 'PKP2', 'PLA2G4C', 'PLA2G7', 'PLAT', 'PLCXD3', 'PLEKHA2', 'PLEKHB1', 'PLEKHG2', 'PLEKHO1', 'PLIN5', 'PLK1', 'PLK2', 'PLLP', 'PLOD2', 'PLSCR1', 'PLXDC1', 'PLXNA2', 'PLXND1', 'PM20D1', 'PMAIP1', 'PNMA2', 'PNRC1', 'POC1A', 'POLD4', 'POLH', 'PON2', 'POU2F2', 'POU6F2', 'PPARD', 'PPARGC1A', 'PPIC', 'PPIF', 'PPL', 'PPP1R15A', 'PPP1R18', 'PPP1R1A', 'PPP1R1B', 'PPP2R2B', 'PPP2R2C', 'PQLC3', 'PRC1', 'PRDM16', 'PRDX1', 'PRELP', 'PRKAR2B', 'PRKCDBP', 'PRKG1', 'PRKX', 'PRLHR', 'PROSER2', 'PRR11', 'PRR15L', 'PRR16', 'PRSS22', 'PRSS23', 'PRSS2', 
#>  [2025-07-02 02:54:25] Detected srt_ref data type: log_normalized_counts
#> Warning: The following features were labelled as variable in 'var.features' but had no corresponding rank in `var.features.rank` and will therefore be ignored: 'ABCB9', 'ABCC3', 'ABCC5', 'ABCC8', 'ABCC9', 'ABCG1', 'ABCG2', 'ABHD2', 'ABHD4', 'ABI3', 'ACBD7', 'ACE', 'ACHE', 'ACP5', 'ACSL4', 'ACSS1', 'ACTN1', 'ACTN4', 'ADAM8', 'ADAM9', 'ADAMTS5', 'ADAMTS9', 'ADAMTSL2', 'ADAP2', 'ADCK3', 'ADCY1', 'ADCY3', 'ADCY5', 'ADM2', 'ADRA2A', 'ADRBK2', 'AEN', 'AGR2', 'AGRN', 'AGTRAP', 'AHNAK', 'AHR', 'AJUBA', 'AKAP7', 'ALAS1', 'ALDH1A1', 'ALDH1A2', 'ALDH1B1', 'ALDH1L2', 'ALDH2', 'ALOX5AP', 'ALS2CL', 'AMOTL2', 'ANK1', 'ANK2', 'ANKRD1', 'ANKRD37', 'ANLN', 'ANO6', 'ANXA13', 'ANXA3', 'ANXA9', 'AP1S3', 'APOE', 'AQP3', 'ARC', 'ARG2', 'ARHGAP22', 'ARHGAP23', 'ARHGAP26', 'ARHGAP29', 'ARHGAP31', 'ARHGEF2', 'ARHGEF39', 'ARHGEF40', 'ARL14', 'ARL4C', 'ARL6IP1', 'ARNTL2', 'ARX', 'ASAP1', 'ASCL2', 'ASF1B', 'ASGR1', 'ASNS', 'ASRGL1', 'ASS1', 'ATF3', 'ATF4', 'ATF5', 'ATP11A', 'ATP1A1', 'ATP1B1', 'ATP1B2', 'ATP2A3', 'ATP8A1', 'AVPI1', 'B3GNT3', 'B4GALT1', 'B4GALT5', 'BACE2', 'BAIAP2L1', 'BAIAP3', 'BAMBI', 'BBC3', 'BCAM', 'BCL2L15', 'BCL3', 'BCL6', 'BHLHE40', 'BHLHE41', 'BIK', 'BIRC5', 'BLNK', 'BMF', 'BMP1', 'BMP2', 'BMP7', 'BRCA1', 'BRDT', 'BST2', 'BUB1B', 'BUB1', 'BZW2', 'C1QA', 'C1QC', 'C1QL1', 'C2CD4A', 'C2CD4B', 'C2', 'CABP4', 'CACNA1A', 'CACNA2D1', 'CACNG4', 'CADM2', 'CADPS', 'CALCR', 'CALY', 'CAMK2B', 'CAPG', 'CAPN5', 'CAPN6', 'CARHSP1', 'CARTPT', 'CASP9', 'CAV2', 'CBLB', 'CBLN4', 'CBS', 'CCBE1', 'CCDC34', 'CCDC3', 'CCDC51', 'CCDC69', 'CCNA1', 'CCR10', 'CCRL2', 'CD14', 'CD276', 'CD300A', 'CD68', 'CD82', 'CD9', 'CDC20', 'CDC42EP3', 'CDC6', 'CDCA3', 'CDCA8', 'CDH17', 'CDH1', 'CDH23', 'CDH3', 'CDK1', 'CDK2AP2', 'CDK5R2', 'CDKN1A', 'CDKN2A', 'CDKN2B', 'CDKN3', 'CDR2L', 'CDX2', 'CEBPB', 'CELF3', 'CELF4', 'CENPA', 'CENPW', 'CERCAM', 'CFI', 'CFLAR', 'CHAC1', 'CHGB', 'CHRD', 'CHRNA3', 'CITED2', 'CITED4', 'CKAP2', 'CKAP5', 'CKB', 'CKMT2', 'CKS1B', 'CKS2', 'CLCF1', 'CLDN1', 'CLIC4', 'CLIC5', 'CLIC6', 'CLMN', 'CLSPN', 'CNIH2', 'CNKSR2', 'CNN2', 'CNN3', 'CNRIP1', 'CNTN1', 'COL13A1', 'COL16A1', 'COL18A1', 'COL4A2', 'COL5A3', 'COL9A2', 'COPZ2', 'CORO1C', 'COTL1', 'COX7A1', 'CPLX2', 'CPPED1', 'CPT1C', 'CPVL', 'CRABP2', 'CRCT1', 'CREB3L1', 'CREB5', 'CRIP1', 'CRLF1', 'CRTAC1', 'CRTAP', 'CRYM', 'CSF1R', 'CSGALNACT1', 'CST6', 'CTSB', 'CTSC', 'CTSH', 'CTSO', 'CTSZ', 'CWC25', 'CX3CL1', 'CXADR', 'CXCL12', 'CXCL16', 'CXCL1', 'CYB5A', 'CYP26B1', 'CYTH3', 'DAB2IP', 'DACH1', 'DACT3', 'DAPP1', 'DBN1', 'DBNDD1', 'DCAF11', 'DCUN1D2', 'DDAH2', 'DDC', 'DDIT4', 'DDX3Y', 'DDX51', 'DEDD2', 'DFFA', 'DGKA', 'DHODH', 'DHRS2', 'DIP2A', 'DIRAS2', 'DIS3', 'DNAJB4', 'DNAJC12', 'DNAL1', 'DOCK4', 'DOCK6', 'DOCK8', 'DOCK9', 'DOK5', 'DOPEY2', 'DPP4', 'DPP6', 'DSC2', 'DSEL', 'DSG2', 'DUSP10', 'DUSP1', 'DUSP23', 'DUSP26', 'DUSP5', 'EBP', 'ECEL1', 'ECM1', 'ECT2', 'EDN2', 'EEF1D', 'EEF2K', 'EFEMP2', 'EFHD2', 'EFNA1', 'EGFR', 'EGR1', 'EGR4', 'EHD2', 'EHD4', 'EHF', 'EIF4A3', 'EIF4EBP1', 'ELAVL4', 'ELL2', 'EMILIN1', 'EMP2', 'EMP3', 'ENAH', 'ENO2', 'ENOX1', 'ENPP2', 'EPHB2', 'EPHB4', 'EPS8', 'ERBB3', 'ERO1L', 'ERRFI1', 'ESRRG', 'ETS2', 'EVA1A', 'EVA1B', 'EXT1', 'F2RL2', 'F2RL3', 'F2R', 'F5', 'FA2H', 'FAM105A', 'FAM107B', 'FAM110C', 'FAM117B', 'FAM129B', 'FAM134B', 'FAM163A', 'FAM171A1', 'FAM179B', 'FAM227A', 'FAM43A', 'FAM46A', 'FAM46C', 'FAM84A', 'FBLIM1', 'FBP1', 'FBXL18', 'FBXL20', 'FBXL3', 'FBXO2', 'FBXO32', 'FBXO5', 'FBXO6', 'FCER1G', 'FCGRT', 'FDPS', 'FERMT1', 'FEV', 'FFAR4', 'FGB', 'FGF13', 'FGF9', 'FGFR2', 'FGFR3', 'FHL2', 'FHOD1', 'FJX1', 'FKBP10', 'FKBP11', 'FKBP5', 'FLNA', 'FLNC', 'FMNL3', 'FNDC4', 'FNIP2', 'FOSB', 'FOSL2', 'FOXA3', 'FOXC1', 'FOXM1', 'FOXQ1', 'FRMD4A', 'FRZB', 'FSCN1', 'FSTL3', 'FUCA1', 'FURIN', 'FUT8', 'FXYD3', 'FXYD5', 'FXYD6', 'G0S2', 'G6PC', 'GAD2', 'GADD45A', 'GADD45B', 'GALE', 'GALM', 'GALNT2', 'GAL', 'GAS2L3', 'GAS6', 'GAS7', 'GATA2', 'GATA4', 'GATSL3', 'GCGR', 'GCH1', 'GCK', 'GCLC', 'GCNT1', 'GCNT3', 'GC', 'GDA', 'GEM', 'GFOD2', 'GFPT2', 'GFRA1', 'GJA1', 'GJA4', 'GJB1', 'GJC1', 'GK', 'GLIPR1', 'GLRX', 'GLS', 'GMNN', 'GOLM1', 'GORAB', 'GPC1', 'GPC6', 'GPD1', 'GPHA2', 'GPR153', 'GPR160', 'GPR161', 'GPSM1', 'GPT2', 'GPX1', 'GPX3', 'GPX8', 'GRASP', 'GREB1', 'GSN', 'GSTM5', 'GSTP1', 'GTPBP10', 'GTSE1', 'GUCA1B', 'GULP1', 'H19', 'HABP2', 'HAND2', 'HDAC9', 'HEPACAM2', 'HEPH', 'HERPUD1', 'HES1', 'HEYL', 'HHEX', 'HIF1A', 'HIF3A', 'HILPDA', 'HIP1', 'HIST1H1C', 'HIST1H2BK', 'HIST2H2BE', 'HK1', 'HK2', 'HKDC1', 'HMGB2', 'HMGB3', 'HMGCR', 'HMGCS1', 'HMMR', 'HN1', 'HNF1B', 'HOGA1', 'HOMER2', 'HOMER3', 'HOPX', 'HOTAIRM1', 'HOXB2', 'HPCAL1', 'HPGD', 'HPN', 'HS3ST1', 'HSD11B2', 'HSD17B11', 'HSD17B12', 'HSPB1', 'HSPB8', 'HSPH1', 'IBA57', 'ID1', 'ID4', 'IDH1', 'IDH2', 'IER2', 'IER3', 'IFI30', 'IFIH1', 'IFIT1', 'IFITM2', 'IFNLR1', 'IFRD1', 'IGF1R', 'IGSF10', 'IGSF1', 'IGSF3', 'IL11', 'IL17RD', 'IL18', 'IL1R2', 'IL33', 'IMPA2', 'INPP5F', 'INSIG1', 'INSM1', 'IPCEF1', 'IQSEC1', 'IRAK4', 'IRF1', 'IRF8', 'IRS2', 'IRX1', 'IRX2', 'IRX4', 'ISL1', 'ITGA10', 'ITGA11', 'ITGA3', 'ITGA9', 'ITGAV', 'ITGB4', 'ITGB6', 'ITGB8', 'ITIH5', 'ITPRIPL2', 'JAG1', 'JAG2', 'JAM3', 'JARID2', 'JDP2', 'JRK', 'JSRP1', 'JUN', 'KANK1', 'KANK2', 'KCNA5', 'KCNAB1', 'KCNE3', 'KCNG1', 'KCNH6', 'KCNJ11', 'KCNJ16', 'KCNJ3', 'KCNJ5', 'KCNJ6', 'KCNK16', 'KCNK3', 'KCNK5', 'KCNMA1', 'KCNN3', 'KCNQ1OT1', 'KCNQ1', 'KCTD12', 'KCTD8', 'KDELC2', 'KDELR3', 'KDM5D', 'KIF11', 'KIF12', 'KIF14', 'KIF21B', 'KIF2C', 'KIF5C', 'KISS1R', 'KLF10', 'KLF2', 'KLF4', 'KLF5', 'KLF6', 'KLHDC8A', 'KLHL21', 'KLK11', 'KNSTRN', 'KPNA1', 'KPNA2', 'KRT17', 'KRT86', 'KRTCAP3', 'L2HGDH', 'LAD1', 'LAMB1', 'LAMB2', 'LAPTM5', 'LBH', 'LDLR', 'LECT1', 'LEFTY1', 'LGALS3', 'LGALS9', 'LGI2', 'LHFP', 'LIMA1', 'LIMCH1', 'LIMK2', 'LIMS1', 'LIPH', 'LMO4', 'LMO7', 'LONRF2', 'LOXL2', 'LPAR6', 'LPCAT1', 'LRP12', 'LRP1', 'LRRC10B', 'LRRC17', 'LRRC27', 'LRRC57', 'LRRC58', 'LRRC59', 'LRWD1', 'LSAMP', 'LTBP4', 'LURAP1L', 'LUZP1', 'LXN', 'LY6E', 'LY6H', 'LYN', 'LYPD1', 'LYPD6B', 'MAB21L3', 'MACC1', 'MAFA', 'MAFB', 'MAFF', 'MAGI2', 'MAL2', 'MALL', 'MAN1C1', 'MANF', 'MAOB', 'MAP1B', 'MAP2', 'MAP7D2', 'MAPT', 'MARCH4', 'MARCKSL1', 'MATN2', 'MDFI', 'MDK', 'MECOM', 'MEIS2', 'MERTK', 'METTL20', 'METTL21A', 'METTL22', 'MFI2', 'MGAT4B', 'MGLL', 'MICAL2', 'MICALL1', 'MID1IP1', 'MIR143HG', 'MLLT11', 'MLXIPL', 'MMP14', 'MMP24', 'MNX1', 'MPZL2', 'MR1', 'MRC1', 'MRC2', 'MSMO1', 'MSN', 'MSRB1', 'MSRB3', 'MTL5', 'MTUS1', 'MTUS2', 'MUM1L1', 'MYC', 'MYH10', 'MYH9', 'MYL12A', 'MYL12B', 'MYO10', 'MYO1C', 'MYO1E', 'MYO5B', 'MYRF', 'MYZAP', 'NAA16', 'NAA40', 'NBEAL2', 'NBEA', 'NCAM1', 'NCAPG', 'NCAPH', 'NCMAP', 'NDRG1', 'NDRG2', 'NDRG4', 'NDUFA4L2', 'NDUFA4', 'NEBL', 'NEDD4L', 'NEFH', 'NEK8', 'NEURL1B', 'NEURL3', 'NEUROD1', 'NFATC4', 'NFIX', 'NFKBIA', 'NFKBIE', 'NFXL1', 'NGFR', 'NHLH2', 'NINJ1', 'NIPAL2', 'NKD1', 'NKX2-2', 'NLN', 'NMB', 'NMNAT1', 'NMT2', 'NOB1', 'NOS3', 'NOTCH1', 'NOTCH2', 'NOTCH3', 'NOTCH4', 'NOX4', 'NPHS1', 'NPNT', 'NPTX2', 'NPW', 'NQO1', 'NR0B1', 'NR0B2', 'NR1D1', 'NR1D2', 'NR2F2', 'NR4A2', 'NR5A2', 'NRGN', 'NRP2', 'NRSN1', 'NTN4', 'NUAK2', 'NUF2', 'NUGGC', 'NUSAP1', 'NWD1', 'OCLN', 'ODF2L', 'OLFML2B', 'OPA3', 'ORM1', 'OVOL1', 'P4HA3', 'PACSIN2', 'PAH', 'PAK3', 'PALLD', 'PALM3', 'PAMR1', 'PAPSS2', 'PARD6G', 'PARM1', 'PARVA', 'PAX6', 'PBK', 'PCDH17', 'PCDH18', 'PCDH9', 'PCK1', 'PCNA', 'PCP4', 'PCSK2', 'PCSK5', 'PDDC1', 'PDE3A', 'PDE3B', 'PDE4C', 'PDE8B', 'PDGFA', 'PDGFD', 'PDIA4', 'PDLIM1', 'PDLIM4', 'PDLIM7', 'PDP2', 'PDPR', 'PDX1', 'PEG3', 'PEMT', 'PER1', 'PER3', 'PEX13', 'PF4', 'PFKFB3', 'PGBD5', 'PGM1', 'PGM2L1', 'PGR', 'PHF19', 'PHGDH', 'PHGR1', 'PHLDA2', 'PHLDB1', 'PID1', 'PIEZO1', 'PIK3AP1', 'PIK3R1', 'PIM1', 'PINX1', 'PIP4K2A', 'PIPOX', 'PKDCC', 'PKIB', 'PKNOX2', 'PKP2', 'PLA2G4C', 'PLA2G7', 'PLAT', 'PLCXD3', 'PLEKHA2', 'PLEKHB1', 'PLEKHG2', 'PLEKHO1', 'PLIN5', 'PLK1', 'PLK2', 'PLLP', 'PLOD2', 'PLSCR1', 'PLXDC1', 'PLXNA2', 'PLXND1', 'PM20D1', 'PMAIP1', 'PNMA2', 'PNRC1', 'POC1A', 'POLD4', 'POLH', 'PON2', 'POU2F2', 'POU6F2', 'PPARD', 'PPARGC1A', 'PPIC', 'PPIF', 'PPL', 'PPP1R15A', 'PPP1R18', 'PPP1R1A', 'PPP1R1B', 'PPP2R2B', 'PPP2R2C', 'PQLC3', 'PRC1', 'PRDM16', 'PRDX1', 'PRELP', 'PRKAR2B', 'PRKCDBP', 'PRKG1', 'PRKX', 'PRLHR', 'PROSER2', 'PRR11', 'PRR15L', 'PRR16', 'PRSS22', 'PRSS23', 'PRSS2', 
#> Warning: The following features were labelled as variable in 'var.features' but had no corresponding rank in `var.features.rank` and will therefore be ignored: 'ABCB9', 'ABCC3', 'ABCC5', 'ABCC8', 'ABCC9', 'ABCG1', 'ABCG2', 'ABHD2', 'ABHD4', 'ABI3', 'ACBD7', 'ACE', 'ACHE', 'ACP5', 'ACSL4', 'ACSS1', 'ACTN1', 'ACTN4', 'ADAM8', 'ADAM9', 'ADAMTS5', 'ADAMTS9', 'ADAMTSL2', 'ADAP2', 'ADCK3', 'ADCY1', 'ADCY3', 'ADCY5', 'ADM2', 'ADRA2A', 'ADRBK2', 'AEN', 'AGR2', 'AGRN', 'AGTRAP', 'AHNAK', 'AHR', 'AJUBA', 'AKAP7', 'ALAS1', 'ALDH1A1', 'ALDH1A2', 'ALDH1B1', 'ALDH1L2', 'ALDH2', 'ALOX5AP', 'ALS2CL', 'AMOTL2', 'ANK1', 'ANK2', 'ANKRD1', 'ANKRD37', 'ANLN', 'ANO6', 'ANXA13', 'ANXA3', 'ANXA9', 'AP1S3', 'APOE', 'AQP3', 'ARC', 'ARG2', 'ARHGAP22', 'ARHGAP23', 'ARHGAP26', 'ARHGAP29', 'ARHGAP31', 'ARHGEF2', 'ARHGEF39', 'ARHGEF40', 'ARL14', 'ARL4C', 'ARL6IP1', 'ARNTL2', 'ARX', 'ASAP1', 'ASCL2', 'ASF1B', 'ASGR1', 'ASNS', 'ASRGL1', 'ASS1', 'ATF3', 'ATF4', 'ATF5', 'ATP11A', 'ATP1A1', 'ATP1B1', 'ATP1B2', 'ATP2A3', 'ATP8A1', 'AVPI1', 'B3GNT3', 'B4GALT1', 'B4GALT5', 'BACE2', 'BAIAP2L1', 'BAIAP3', 'BAMBI', 'BBC3', 'BCAM', 'BCL2L15', 'BCL3', 'BCL6', 'BHLHE40', 'BHLHE41', 'BIK', 'BIRC5', 'BLNK', 'BMF', 'BMP1', 'BMP2', 'BMP7', 'BRCA1', 'BRDT', 'BST2', 'BUB1B', 'BUB1', 'BZW2', 'C1QA', 'C1QC', 'C1QL1', 'C2CD4A', 'C2CD4B', 'C2', 'CABP4', 'CACNA1A', 'CACNA2D1', 'CACNG4', 'CADM2', 'CADPS', 'CALCR', 'CALY', 'CAMK2B', 'CAPG', 'CAPN5', 'CAPN6', 'CARHSP1', 'CARTPT', 'CASP9', 'CAV2', 'CBLB', 'CBLN4', 'CBS', 'CCBE1', 'CCDC34', 'CCDC3', 'CCDC51', 'CCDC69', 'CCNA1', 'CCR10', 'CCRL2', 'CD14', 'CD276', 'CD300A', 'CD68', 'CD82', 'CD9', 'CDC20', 'CDC42EP3', 'CDC6', 'CDCA3', 'CDCA8', 'CDH17', 'CDH1', 'CDH23', 'CDH3', 'CDK1', 'CDK2AP2', 'CDK5R2', 'CDKN1A', 'CDKN2A', 'CDKN2B', 'CDKN3', 'CDR2L', 'CDX2', 'CEBPB', 'CELF3', 'CELF4', 'CENPA', 'CENPW', 'CERCAM', 'CFI', 'CFLAR', 'CHAC1', 'CHGB', 'CHRD', 'CHRNA3', 'CITED2', 'CITED4', 'CKAP2', 'CKAP5', 'CKB', 'CKMT2', 'CKS1B', 'CKS2', 'CLCF1', 'CLDN1', 'CLIC4', 'CLIC5', 'CLIC6', 'CLMN', 'CLSPN', 'CNIH2', 'CNKSR2', 'CNN2', 'CNN3', 'CNRIP1', 'CNTN1', 'COL13A1', 'COL16A1', 'COL18A1', 'COL4A2', 'COL5A3', 'COL9A2', 'COPZ2', 'CORO1C', 'COTL1', 'COX7A1', 'CPLX2', 'CPPED1', 'CPT1C', 'CPVL', 'CRABP2', 'CRCT1', 'CREB3L1', 'CREB5', 'CRIP1', 'CRLF1', 'CRTAC1', 'CRTAP', 'CRYM', 'CSF1R', 'CSGALNACT1', 'CST6', 'CTSB', 'CTSC', 'CTSH', 'CTSO', 'CTSZ', 'CWC25', 'CX3CL1', 'CXADR', 'CXCL12', 'CXCL16', 'CXCL1', 'CYB5A', 'CYP26B1', 'CYTH3', 'DAB2IP', 'DACH1', 'DACT3', 'DAPP1', 'DBN1', 'DBNDD1', 'DCAF11', 'DCUN1D2', 'DDAH2', 'DDC', 'DDIT4', 'DDX3Y', 'DDX51', 'DEDD2', 'DFFA', 'DGKA', 'DHODH', 'DHRS2', 'DIP2A', 'DIRAS2', 'DIS3', 'DNAJB4', 'DNAJC12', 'DNAL1', 'DOCK4', 'DOCK6', 'DOCK8', 'DOCK9', 'DOK5', 'DOPEY2', 'DPP4', 'DPP6', 'DSC2', 'DSEL', 'DSG2', 'DUSP10', 'DUSP1', 'DUSP23', 'DUSP26', 'DUSP5', 'EBP', 'ECEL1', 'ECM1', 'ECT2', 'EDN2', 'EEF1D', 'EEF2K', 'EFEMP2', 'EFHD2', 'EFNA1', 'EGFR', 'EGR1', 'EGR4', 'EHD2', 'EHD4', 'EHF', 'EIF4A3', 'EIF4EBP1', 'ELAVL4', 'ELL2', 'EMILIN1', 'EMP2', 'EMP3', 'ENAH', 'ENO2', 'ENOX1', 'ENPP2', 'EPHB2', 'EPHB4', 'EPS8', 'ERBB3', 'ERO1L', 'ERRFI1', 'ESRRG', 'ETS2', 'EVA1A', 'EVA1B', 'EXT1', 'F2RL2', 'F2RL3', 'F2R', 'F5', 'FA2H', 'FAM105A', 'FAM107B', 'FAM110C', 'FAM117B', 'FAM129B', 'FAM134B', 'FAM163A', 'FAM171A1', 'FAM179B', 'FAM227A', 'FAM43A', 'FAM46A', 'FAM46C', 'FAM84A', 'FBLIM1', 'FBP1', 'FBXL18', 'FBXL20', 'FBXL3', 'FBXO2', 'FBXO32', 'FBXO5', 'FBXO6', 'FCER1G', 'FCGRT', 'FDPS', 'FERMT1', 'FEV', 'FFAR4', 'FGB', 'FGF13', 'FGF9', 'FGFR2', 'FGFR3', 'FHL2', 'FHOD1', 'FJX1', 'FKBP10', 'FKBP11', 'FKBP5', 'FLNA', 'FLNC', 'FMNL3', 'FNDC4', 'FNIP2', 'FOSB', 'FOSL2', 'FOXA3', 'FOXC1', 'FOXM1', 'FOXQ1', 'FRMD4A', 'FRZB', 'FSCN1', 'FSTL3', 'FUCA1', 'FURIN', 'FUT8', 'FXYD3', 'FXYD5', 'FXYD6', 'G0S2', 'G6PC', 'GAD2', 'GADD45A', 'GADD45B', 'GALE', 'GALM', 'GALNT2', 'GAL', 'GAS2L3', 'GAS6', 'GAS7', 'GATA2', 'GATA4', 'GATSL3', 'GCGR', 'GCH1', 'GCK', 'GCLC', 'GCNT1', 'GCNT3', 'GC', 'GDA', 'GEM', 'GFOD2', 'GFPT2', 'GFRA1', 'GJA1', 'GJA4', 'GJB1', 'GJC1', 'GK', 'GLIPR1', 'GLRX', 'GLS', 'GMNN', 'GOLM1', 'GORAB', 'GPC1', 'GPC6', 'GPD1', 'GPHA2', 'GPR153', 'GPR160', 'GPR161', 'GPSM1', 'GPT2', 'GPX1', 'GPX3', 'GPX8', 'GRASP', 'GREB1', 'GSN', 'GSTM5', 'GSTP1', 'GTPBP10', 'GTSE1', 'GUCA1B', 'GULP1', 'H19', 'HABP2', 'HAND2', 'HDAC9', 'HEPACAM2', 'HEPH', 'HERPUD1', 'HES1', 'HEYL', 'HHEX', 'HIF1A', 'HIF3A', 'HILPDA', 'HIP1', 'HIST1H1C', 'HIST1H2BK', 'HIST2H2BE', 'HK1', 'HK2', 'HKDC1', 'HMGB2', 'HMGB3', 'HMGCR', 'HMGCS1', 'HMMR', 'HN1', 'HNF1B', 'HOGA1', 'HOMER2', 'HOMER3', 'HOPX', 'HOTAIRM1', 'HOXB2', 'HPCAL1', 'HPGD', 'HPN', 'HS3ST1', 'HSD11B2', 'HSD17B11', 'HSD17B12', 'HSPB1', 'HSPB8', 'HSPH1', 'IBA57', 'ID1', 'ID4', 'IDH1', 'IDH2', 'IER2', 'IER3', 'IFI30', 'IFIH1', 'IFIT1', 'IFITM2', 'IFNLR1', 'IFRD1', 'IGF1R', 'IGSF10', 'IGSF1', 'IGSF3', 'IL11', 'IL17RD', 'IL18', 'IL1R2', 'IL33', 'IMPA2', 'INPP5F', 'INSIG1', 'INSM1', 'IPCEF1', 'IQSEC1', 'IRAK4', 'IRF1', 'IRF8', 'IRS2', 'IRX1', 'IRX2', 'IRX4', 'ISL1', 'ITGA10', 'ITGA11', 'ITGA3', 'ITGA9', 'ITGAV', 'ITGB4', 'ITGB6', 'ITGB8', 'ITIH5', 'ITPRIPL2', 'JAG1', 'JAG2', 'JAM3', 'JARID2', 'JDP2', 'JRK', 'JSRP1', 'JUN', 'KANK1', 'KANK2', 'KCNA5', 'KCNAB1', 'KCNE3', 'KCNG1', 'KCNH6', 'KCNJ11', 'KCNJ16', 'KCNJ3', 'KCNJ5', 'KCNJ6', 'KCNK16', 'KCNK3', 'KCNK5', 'KCNMA1', 'KCNN3', 'KCNQ1OT1', 'KCNQ1', 'KCTD12', 'KCTD8', 'KDELC2', 'KDELR3', 'KDM5D', 'KIF11', 'KIF12', 'KIF14', 'KIF21B', 'KIF2C', 'KIF5C', 'KISS1R', 'KLF10', 'KLF2', 'KLF4', 'KLF5', 'KLF6', 'KLHDC8A', 'KLHL21', 'KLK11', 'KNSTRN', 'KPNA1', 'KPNA2', 'KRT17', 'KRT86', 'KRTCAP3', 'L2HGDH', 'LAD1', 'LAMB1', 'LAMB2', 'LAPTM5', 'LBH', 'LDLR', 'LECT1', 'LEFTY1', 'LGALS3', 'LGALS9', 'LGI2', 'LHFP', 'LIMA1', 'LIMCH1', 'LIMK2', 'LIMS1', 'LIPH', 'LMO4', 'LMO7', 'LONRF2', 'LOXL2', 'LPAR6', 'LPCAT1', 'LRP12', 'LRP1', 'LRRC10B', 'LRRC17', 'LRRC27', 'LRRC57', 'LRRC58', 'LRRC59', 'LRWD1', 'LSAMP', 'LTBP4', 'LURAP1L', 'LUZP1', 'LXN', 'LY6E', 'LY6H', 'LYN', 'LYPD1', 'LYPD6B', 'MAB21L3', 'MACC1', 'MAFA', 'MAFB', 'MAFF', 'MAGI2', 'MAL2', 'MALL', 'MAN1C1', 'MANF', 'MAOB', 'MAP1B', 'MAP2', 'MAP7D2', 'MAPT', 'MARCH4', 'MARCKSL1', 'MATN2', 'MDFI', 'MDK', 'MECOM', 'MEIS2', 'MERTK', 'METTL20', 'METTL21A', 'METTL22', 'MFI2', 'MGAT4B', 'MGLL', 'MICAL2', 'MICALL1', 'MID1IP1', 'MIR143HG', 'MLLT11', 'MLXIPL', 'MMP14', 'MMP24', 'MNX1', 'MPZL2', 'MR1', 'MRC1', 'MRC2', 'MSMO1', 'MSN', 'MSRB1', 'MSRB3', 'MTL5', 'MTUS1', 'MTUS2', 'MUM1L1', 'MYC', 'MYH10', 'MYH9', 'MYL12A', 'MYL12B', 'MYO10', 'MYO1C', 'MYO1E', 'MYO5B', 'MYRF', 'MYZAP', 'NAA16', 'NAA40', 'NBEAL2', 'NBEA', 'NCAM1', 'NCAPG', 'NCAPH', 'NCMAP', 'NDRG1', 'NDRG2', 'NDRG4', 'NDUFA4L2', 'NDUFA4', 'NEBL', 'NEDD4L', 'NEFH', 'NEK8', 'NEURL1B', 'NEURL3', 'NEUROD1', 'NFATC4', 'NFIX', 'NFKBIA', 'NFKBIE', 'NFXL1', 'NGFR', 'NHLH2', 'NINJ1', 'NIPAL2', 'NKD1', 'NKX2-2', 'NLN', 'NMB', 'NMNAT1', 'NMT2', 'NOB1', 'NOS3', 'NOTCH1', 'NOTCH2', 'NOTCH3', 'NOTCH4', 'NOX4', 'NPHS1', 'NPNT', 'NPTX2', 'NPW', 'NQO1', 'NR0B1', 'NR0B2', 'NR1D1', 'NR1D2', 'NR2F2', 'NR4A2', 'NR5A2', 'NRGN', 'NRP2', 'NRSN1', 'NTN4', 'NUAK2', 'NUF2', 'NUGGC', 'NUSAP1', 'NWD1', 'OCLN', 'ODF2L', 'OLFML2B', 'OPA3', 'ORM1', 'OVOL1', 'P4HA3', 'PACSIN2', 'PAH', 'PAK3', 'PALLD', 'PALM3', 'PAMR1', 'PAPSS2', 'PARD6G', 'PARM1', 'PARVA', 'PAX6', 'PBK', 'PCDH17', 'PCDH18', 'PCDH9', 'PCK1', 'PCNA', 'PCP4', 'PCSK2', 'PCSK5', 'PDDC1', 'PDE3A', 'PDE3B', 'PDE4C', 'PDE8B', 'PDGFA', 'PDGFD', 'PDIA4', 'PDLIM1', 'PDLIM4', 'PDLIM7', 'PDP2', 'PDPR', 'PDX1', 'PEG3', 'PEMT', 'PER1', 'PER3', 'PEX13', 'PF4', 'PFKFB3', 'PGBD5', 'PGM1', 'PGM2L1', 'PGR', 'PHF19', 'PHGDH', 'PHGR1', 'PHLDA2', 'PHLDB1', 'PID1', 'PIEZO1', 'PIK3AP1', 'PIK3R1', 'PIM1', 'PINX1', 'PIP4K2A', 'PIPOX', 'PKDCC', 'PKIB', 'PKNOX2', 'PKP2', 'PLA2G4C', 'PLA2G7', 'PLAT', 'PLCXD3', 'PLEKHA2', 'PLEKHB1', 'PLEKHG2', 'PLEKHO1', 'PLIN5', 'PLK1', 'PLK2', 'PLLP', 'PLOD2', 'PLSCR1', 'PLXDC1', 'PLXNA2', 'PLXND1', 'PM20D1', 'PMAIP1', 'PNMA2', 'PNRC1', 'POC1A', 'POLD4', 'POLH', 'PON2', 'POU2F2', 'POU6F2', 'PPARD', 'PPARGC1A', 'PPIC', 'PPIF', 'PPL', 'PPP1R15A', 'PPP1R18', 'PPP1R1A', 'PPP1R1B', 'PPP2R2B', 'PPP2R2C', 'PQLC3', 'PRC1', 'PRDM16', 'PRDX1', 'PRELP', 'PRKAR2B', 'PRKCDBP', 'PRKG1', 'PRKX', 'PRLHR', 'PROSER2', 'PRR11', 'PRR15L', 'PRR16', 'PRSS22', 'PRSS23', 'PRSS2', 
#>  [2025-07-02 02:54:25] Use 2000 features to calculate distance.
#> Warning: The following features were labelled as variable in 'var.features' but had no corresponding rank in `var.features.rank` and will therefore be ignored: 'ABCB9', 'ABCC3', 'ABCC5', 'ABCC8', 'ABCC9', 'ABCG1', 'ABCG2', 'ABHD2', 'ABHD4', 'ABI3', 'ACBD7', 'ACE', 'ACHE', 'ACP5', 'ACSL4', 'ACSS1', 'ACTN1', 'ACTN4', 'ADAM8', 'ADAM9', 'ADAMTS5', 'ADAMTS9', 'ADAMTSL2', 'ADAP2', 'ADCK3', 'ADCY1', 'ADCY3', 'ADCY5', 'ADM2', 'ADRA2A', 'ADRBK2', 'AEN', 'AGR2', 'AGRN', 'AGTRAP', 'AHNAK', 'AHR', 'AJUBA', 'AKAP7', 'ALAS1', 'ALDH1A1', 'ALDH1A2', 'ALDH1B1', 'ALDH1L2', 'ALDH2', 'ALOX5AP', 'ALS2CL', 'AMOTL2', 'ANK1', 'ANK2', 'ANKRD1', 'ANKRD37', 'ANLN', 'ANO6', 'ANXA13', 'ANXA3', 'ANXA9', 'AP1S3', 'APOE', 'AQP3', 'ARC', 'ARG2', 'ARHGAP22', 'ARHGAP23', 'ARHGAP26', 'ARHGAP29', 'ARHGAP31', 'ARHGEF2', 'ARHGEF39', 'ARHGEF40', 'ARL14', 'ARL4C', 'ARL6IP1', 'ARNTL2', 'ARX', 'ASAP1', 'ASCL2', 'ASF1B', 'ASGR1', 'ASNS', 'ASRGL1', 'ASS1', 'ATF3', 'ATF4', 'ATF5', 'ATP11A', 'ATP1A1', 'ATP1B1', 'ATP1B2', 'ATP2A3', 'ATP8A1', 'AVPI1', 'B3GNT3', 'B4GALT1', 'B4GALT5', 'BACE2', 'BAIAP2L1', 'BAIAP3', 'BAMBI', 'BBC3', 'BCAM', 'BCL2L15', 'BCL3', 'BCL6', 'BHLHE40', 'BHLHE41', 'BIK', 'BIRC5', 'BLNK', 'BMF', 'BMP1', 'BMP2', 'BMP7', 'BRCA1', 'BRDT', 'BST2', 'BUB1B', 'BUB1', 'BZW2', 'C1QA', 'C1QC', 'C1QL1', 'C2CD4A', 'C2CD4B', 'C2', 'CABP4', 'CACNA1A', 'CACNA2D1', 'CACNG4', 'CADM2', 'CADPS', 'CALCR', 'CALY', 'CAMK2B', 'CAPG', 'CAPN5', 'CAPN6', 'CARHSP1', 'CARTPT', 'CASP9', 'CAV2', 'CBLB', 'CBLN4', 'CBS', 'CCBE1', 'CCDC34', 'CCDC3', 'CCDC51', 'CCDC69', 'CCNA1', 'CCR10', 'CCRL2', 'CD14', 'CD276', 'CD300A', 'CD68', 'CD82', 'CD9', 'CDC20', 'CDC42EP3', 'CDC6', 'CDCA3', 'CDCA8', 'CDH17', 'CDH1', 'CDH23', 'CDH3', 'CDK1', 'CDK2AP2', 'CDK5R2', 'CDKN1A', 'CDKN2A', 'CDKN2B', 'CDKN3', 'CDR2L', 'CDX2', 'CEBPB', 'CELF3', 'CELF4', 'CENPA', 'CENPW', 'CERCAM', 'CFI', 'CFLAR', 'CHAC1', 'CHGB', 'CHRD', 'CHRNA3', 'CITED2', 'CITED4', 'CKAP2', 'CKAP5', 'CKB', 'CKMT2', 'CKS1B', 'CKS2', 'CLCF1', 'CLDN1', 'CLIC4', 'CLIC5', 'CLIC6', 'CLMN', 'CLSPN', 'CNIH2', 'CNKSR2', 'CNN2', 'CNN3', 'CNRIP1', 'CNTN1', 'COL13A1', 'COL16A1', 'COL18A1', 'COL4A2', 'COL5A3', 'COL9A2', 'COPZ2', 'CORO1C', 'COTL1', 'COX7A1', 'CPLX2', 'CPPED1', 'CPT1C', 'CPVL', 'CRABP2', 'CRCT1', 'CREB3L1', 'CREB5', 'CRIP1', 'CRLF1', 'CRTAC1', 'CRTAP', 'CRYM', 'CSF1R', 'CSGALNACT1', 'CST6', 'CTSB', 'CTSC', 'CTSH', 'CTSO', 'CTSZ', 'CWC25', 'CX3CL1', 'CXADR', 'CXCL12', 'CXCL16', 'CXCL1', 'CYB5A', 'CYP26B1', 'CYTH3', 'DAB2IP', 'DACH1', 'DACT3', 'DAPP1', 'DBN1', 'DBNDD1', 'DCAF11', 'DCUN1D2', 'DDAH2', 'DDC', 'DDIT4', 'DDX3Y', 'DDX51', 'DEDD2', 'DFFA', 'DGKA', 'DHODH', 'DHRS2', 'DIP2A', 'DIRAS2', 'DIS3', 'DNAJB4', 'DNAJC12', 'DNAL1', 'DOCK4', 'DOCK6', 'DOCK8', 'DOCK9', 'DOK5', 'DOPEY2', 'DPP4', 'DPP6', 'DSC2', 'DSEL', 'DSG2', 'DUSP10', 'DUSP1', 'DUSP23', 'DUSP26', 'DUSP5', 'EBP', 'ECEL1', 'ECM1', 'ECT2', 'EDN2', 'EEF1D', 'EEF2K', 'EFEMP2', 'EFHD2', 'EFNA1', 'EGFR', 'EGR1', 'EGR4', 'EHD2', 'EHD4', 'EHF', 'EIF4A3', 'EIF4EBP1', 'ELAVL4', 'ELL2', 'EMILIN1', 'EMP2', 'EMP3', 'ENAH', 'ENO2', 'ENOX1', 'ENPP2', 'EPHB2', 'EPHB4', 'EPS8', 'ERBB3', 'ERO1L', 'ERRFI1', 'ESRRG', 'ETS2', 'EVA1A', 'EVA1B', 'EXT1', 'F2RL2', 'F2RL3', 'F2R', 'F5', 'FA2H', 'FAM105A', 'FAM107B', 'FAM110C', 'FAM117B', 'FAM129B', 'FAM134B', 'FAM163A', 'FAM171A1', 'FAM179B', 'FAM227A', 'FAM43A', 'FAM46A', 'FAM46C', 'FAM84A', 'FBLIM1', 'FBP1', 'FBXL18', 'FBXL20', 'FBXL3', 'FBXO2', 'FBXO32', 'FBXO5', 'FBXO6', 'FCER1G', 'FCGRT', 'FDPS', 'FERMT1', 'FEV', 'FFAR4', 'FGB', 'FGF13', 'FGF9', 'FGFR2', 'FGFR3', 'FHL2', 'FHOD1', 'FJX1', 'FKBP10', 'FKBP11', 'FKBP5', 'FLNA', 'FLNC', 'FMNL3', 'FNDC4', 'FNIP2', 'FOSB', 'FOSL2', 'FOXA3', 'FOXC1', 'FOXM1', 'FOXQ1', 'FRMD4A', 'FRZB', 'FSCN1', 'FSTL3', 'FUCA1', 'FURIN', 'FUT8', 'FXYD3', 'FXYD5', 'FXYD6', 'G0S2', 'G6PC', 'GAD2', 'GADD45A', 'GADD45B', 'GALE', 'GALM', 'GALNT2', 'GAL', 'GAS2L3', 'GAS6', 'GAS7', 'GATA2', 'GATA4', 'GATSL3', 'GCGR', 'GCH1', 'GCK', 'GCLC', 'GCNT1', 'GCNT3', 'GC', 'GDA', 'GEM', 'GFOD2', 'GFPT2', 'GFRA1', 'GJA1', 'GJA4', 'GJB1', 'GJC1', 'GK', 'GLIPR1', 'GLRX', 'GLS', 'GMNN', 'GOLM1', 'GORAB', 'GPC1', 'GPC6', 'GPD1', 'GPHA2', 'GPR153', 'GPR160', 'GPR161', 'GPSM1', 'GPT2', 'GPX1', 'GPX3', 'GPX8', 'GRASP', 'GREB1', 'GSN', 'GSTM5', 'GSTP1', 'GTPBP10', 'GTSE1', 'GUCA1B', 'GULP1', 'H19', 'HABP2', 'HAND2', 'HDAC9', 'HEPACAM2', 'HEPH', 'HERPUD1', 'HES1', 'HEYL', 'HHEX', 'HIF1A', 'HIF3A', 'HILPDA', 'HIP1', 'HIST1H1C', 'HIST1H2BK', 'HIST2H2BE', 'HK1', 'HK2', 'HKDC1', 'HMGB2', 'HMGB3', 'HMGCR', 'HMGCS1', 'HMMR', 'HN1', 'HNF1B', 'HOGA1', 'HOMER2', 'HOMER3', 'HOPX', 'HOTAIRM1', 'HOXB2', 'HPCAL1', 'HPGD', 'HPN', 'HS3ST1', 'HSD11B2', 'HSD17B11', 'HSD17B12', 'HSPB1', 'HSPB8', 'HSPH1', 'IBA57', 'ID1', 'ID4', 'IDH1', 'IDH2', 'IER2', 'IER3', 'IFI30', 'IFIH1', 'IFIT1', 'IFITM2', 'IFNLR1', 'IFRD1', 'IGF1R', 'IGSF10', 'IGSF1', 'IGSF3', 'IL11', 'IL17RD', 'IL18', 'IL1R2', 'IL33', 'IMPA2', 'INPP5F', 'INSIG1', 'INSM1', 'IPCEF1', 'IQSEC1', 'IRAK4', 'IRF1', 'IRF8', 'IRS2', 'IRX1', 'IRX2', 'IRX4', 'ISL1', 'ITGA10', 'ITGA11', 'ITGA3', 'ITGA9', 'ITGAV', 'ITGB4', 'ITGB6', 'ITGB8', 'ITIH5', 'ITPRIPL2', 'JAG1', 'JAG2', 'JAM3', 'JARID2', 'JDP2', 'JRK', 'JSRP1', 'JUN', 'KANK1', 'KANK2', 'KCNA5', 'KCNAB1', 'KCNE3', 'KCNG1', 'KCNH6', 'KCNJ11', 'KCNJ16', 'KCNJ3', 'KCNJ5', 'KCNJ6', 'KCNK16', 'KCNK3', 'KCNK5', 'KCNMA1', 'KCNN3', 'KCNQ1OT1', 'KCNQ1', 'KCTD12', 'KCTD8', 'KDELC2', 'KDELR3', 'KDM5D', 'KIF11', 'KIF12', 'KIF14', 'KIF21B', 'KIF2C', 'KIF5C', 'KISS1R', 'KLF10', 'KLF2', 'KLF4', 'KLF5', 'KLF6', 'KLHDC8A', 'KLHL21', 'KLK11', 'KNSTRN', 'KPNA1', 'KPNA2', 'KRT17', 'KRT86', 'KRTCAP3', 'L2HGDH', 'LAD1', 'LAMB1', 'LAMB2', 'LAPTM5', 'LBH', 'LDLR', 'LECT1', 'LEFTY1', 'LGALS3', 'LGALS9', 'LGI2', 'LHFP', 'LIMA1', 'LIMCH1', 'LIMK2', 'LIMS1', 'LIPH', 'LMO4', 'LMO7', 'LONRF2', 'LOXL2', 'LPAR6', 'LPCAT1', 'LRP12', 'LRP1', 'LRRC10B', 'LRRC17', 'LRRC27', 'LRRC57', 'LRRC58', 'LRRC59', 'LRWD1', 'LSAMP', 'LTBP4', 'LURAP1L', 'LUZP1', 'LXN', 'LY6E', 'LY6H', 'LYN', 'LYPD1', 'LYPD6B', 'MAB21L3', 'MACC1', 'MAFA', 'MAFB', 'MAFF', 'MAGI2', 'MAL2', 'MALL', 'MAN1C1', 'MANF', 'MAOB', 'MAP1B', 'MAP2', 'MAP7D2', 'MAPT', 'MARCH4', 'MARCKSL1', 'MATN2', 'MDFI', 'MDK', 'MECOM', 'MEIS2', 'MERTK', 'METTL20', 'METTL21A', 'METTL22', 'MFI2', 'MGAT4B', 'MGLL', 'MICAL2', 'MICALL1', 'MID1IP1', 'MIR143HG', 'MLLT11', 'MLXIPL', 'MMP14', 'MMP24', 'MNX1', 'MPZL2', 'MR1', 'MRC1', 'MRC2', 'MSMO1', 'MSN', 'MSRB1', 'MSRB3', 'MTL5', 'MTUS1', 'MTUS2', 'MUM1L1', 'MYC', 'MYH10', 'MYH9', 'MYL12A', 'MYL12B', 'MYO10', 'MYO1C', 'MYO1E', 'MYO5B', 'MYRF', 'MYZAP', 'NAA16', 'NAA40', 'NBEAL2', 'NBEA', 'NCAM1', 'NCAPG', 'NCAPH', 'NCMAP', 'NDRG1', 'NDRG2', 'NDRG4', 'NDUFA4L2', 'NDUFA4', 'NEBL', 'NEDD4L', 'NEFH', 'NEK8', 'NEURL1B', 'NEURL3', 'NEUROD1', 'NFATC4', 'NFIX', 'NFKBIA', 'NFKBIE', 'NFXL1', 'NGFR', 'NHLH2', 'NINJ1', 'NIPAL2', 'NKD1', 'NKX2-2', 'NLN', 'NMB', 'NMNAT1', 'NMT2', 'NOB1', 'NOS3', 'NOTCH1', 'NOTCH2', 'NOTCH3', 'NOTCH4', 'NOX4', 'NPHS1', 'NPNT', 'NPTX2', 'NPW', 'NQO1', 'NR0B1', 'NR0B2', 'NR1D1', 'NR1D2', 'NR2F2', 'NR4A2', 'NR5A2', 'NRGN', 'NRP2', 'NRSN1', 'NTN4', 'NUAK2', 'NUF2', 'NUGGC', 'NUSAP1', 'NWD1', 'OCLN', 'ODF2L', 'OLFML2B', 'OPA3', 'ORM1', 'OVOL1', 'P4HA3', 'PACSIN2', 'PAH', 'PAK3', 'PALLD', 'PALM3', 'PAMR1', 'PAPSS2', 'PARD6G', 'PARM1', 'PARVA', 'PAX6', 'PBK', 'PCDH17', 'PCDH18', 'PCDH9', 'PCK1', 'PCNA', 'PCP4', 'PCSK2', 'PCSK5', 'PDDC1', 'PDE3A', 'PDE3B', 'PDE4C', 'PDE8B', 'PDGFA', 'PDGFD', 'PDIA4', 'PDLIM1', 'PDLIM4', 'PDLIM7', 'PDP2', 'PDPR', 'PDX1', 'PEG3', 'PEMT', 'PER1', 'PER3', 'PEX13', 'PF4', 'PFKFB3', 'PGBD5', 'PGM1', 'PGM2L1', 'PGR', 'PHF19', 'PHGDH', 'PHGR1', 'PHLDA2', 'PHLDB1', 'PID1', 'PIEZO1', 'PIK3AP1', 'PIK3R1', 'PIM1', 'PINX1', 'PIP4K2A', 'PIPOX', 'PKDCC', 'PKIB', 'PKNOX2', 'PKP2', 'PLA2G4C', 'PLA2G7', 'PLAT', 'PLCXD3', 'PLEKHA2', 'PLEKHB1', 'PLEKHG2', 'PLEKHO1', 'PLIN5', 'PLK1', 'PLK2', 'PLLP', 'PLOD2', 'PLSCR1', 'PLXDC1', 'PLXNA2', 'PLXND1', 'PM20D1', 'PMAIP1', 'PNMA2', 'PNRC1', 'POC1A', 'POLD4', 'POLH', 'PON2', 'POU2F2', 'POU6F2', 'PPARD', 'PPARGC1A', 'PPIC', 'PPIF', 'PPL', 'PPP1R15A', 'PPP1R18', 'PPP1R1A', 'PPP1R1B', 'PPP2R2B', 'PPP2R2C', 'PQLC3', 'PRC1', 'PRDM16', 'PRDX1', 'PRELP', 'PRKAR2B', 'PRKCDBP', 'PRKG1', 'PRKX', 'PRLHR', 'PROSER2', 'PRR11', 'PRR15L', 'PRR16', 'PRSS22', 'PRSS23', 'PRSS2', 
#>  [2025-07-02 02:54:25] Use 'raw' method to find neighbors.
#>  [2025-07-02 02:54:26] Running UMAP projection
#> 02:54:26 Read 200 rows
#> 02:54:26 Processing block 1 of 1
#> 02:54:26 Commencing smooth kNN distance calibration using 2 threads
#>  with target n_neighbors = 30
#> 02:54:26 Initializing by weighted average of neighbor coordinates using 2 threads
#> 02:54:26 Commencing optimization for 200 epochs, with 6000 positive edges
#> 02:54:26 Finished
ProjectionPlot(
  srt_query = srt_query,
  srt_ref = srt_ref,
  query_group = "celltype",
  ref_group = "celltype"
)
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Scale for x is already present.
#> Adding another scale for x, which will replace the existing scale.
#> Scale for y is already present.
#> Adding another scale for y, which will replace the existing scale.
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Warning: No shared levels found between `names(values)` of the manual scale and the
#> data's fill values.
#> Warning: Removed 1 row containing missing values or values outside the scale range
#> (`geom_point()`).
#> Warning: Removed 1 row containing missing values or values outside the scale range
#> (`geom_point()`).