Cell发表的单细胞整合方法:LIGER,很好用!

之前,我们已经介绍过其他的整合方法:

  1. harmony整合单细胞数据-去除批次效应

  2. Seurat一键完成五种数据整合:harmony,CCA,RPCA,FastMNN,scVI,代码分享

今天来看看Cell发表的LIGER

介绍

LIGER(Linked Inference of Genomic Experimental Relationships,基因实验关系的链接推断)是一个用于整合和分析多个单细胞数据集的软件包,由Macosko实验室开发,并由Welch实验室维护和扩展。它依赖于整合的非负矩阵分解技术来识别共享的和数据集特定的因子。

LIGER可以用来在多种背景下比较和对比实验数据集,例如:

  • 实验批次间

  • 不同个体间

  • 不同性别间

  • 不同组织间

  • 不同物种间(例如,小鼠和人类)

  • 不同模态间(例如,单细胞RNA测序和空间转录组数据,单细胞甲基化或单细胞ATAC测序)

一旦多个数据集被整合,该软件包提供了进一步的数据探索、分析和可视化的功能。用户可以:

  1. 识别cluster

  2. 找到显著的共享(和数据集特定的)基因标记

  3. 与之前识别的细胞类型比较簇

  4. 使用t-SNE和UMAP可视化簇和基因表达

让人兴奋的是,作者设计了LIGER r包,使其能够与现有的单细胞分析软件包(包括Seurat)接入。


代码实战

这里的数据仅作演示使用,读者使用自己的数据可以试一试

如果你想使用我的pbmc:

  1. 20231126单细胞直播一理解pbmc处理流程与常用R技巧

  2. 单细胞数据pbmc数据下载,标准处理流程获取seurat对象

#remotes::install_github('satijalab/seurat-wrappers').libPaths(  c(    '/home/rootyll/seurat_v5/',    "/usr/local/lib/R/site-library",    "/usr/lib/R/site-library",    "/usr/lib/R/library"  ))#install.packages('rliger')library(rliger)library(Seurat)library(SeuratData)library(Seurat)library(SeuratWrappers)#下面正式开始-----------------------------------------------------# options(timeout = 9000)# #InstallData("pbmcsca")# data("pbmcsca")load("~/gzh/pbmc3k_final_v4.rds")pbmc$Method=pbmc$grouppbmcsca=pbmc# Please update your `liger` version to 0.5.0 or above before following this tutorialpbmcsca <- NormalizeData(pbmcsca)pbmcsca <- FindVariableFeatures(pbmcsca)pbmcsca <- ScaleData(pbmcsca, split.by = "Method", do.center = FALSE)#整合的过程就至需要下面这两句代码----pbmcsca <- RunOptimizeALS(pbmcsca, k = 20, lambda = 5, split.by = "Method")pbmcsca <- RunQuantileNorm(pbmcsca, split.by = "Method")# You can optionally perform Louvain clustering (`FindNeighbors` and `FindClusters`) after# `RunQuantileNorm` according to your needspbmcsca <- FindNeighbors(pbmcsca, reduction = "iNMF", dims = 1:20)pbmcsca <- FindClusters(pbmcsca, resolution = 0.3)# Dimensional reduction and plottingpbmcsca <- RunUMAP(pbmcsca, dims = 1:ncol(pbmcsca[["iNMF"]]), reduction = "iNMF")DimPlot(pbmcsca, group.by = c("Method", "ident", "cell.type"), ncol = 3)head(pbmc@meta.data)

LIGER还具有其他功能,后续我们再分享~

  • Iterative Single-Cell Multi-Omic Integration Using Online iNMF

  • Integrating unshared features with UINMF

  • scATAC and scRNA Integration using unshared features (UINMF)

  • Cross-species Analysis with UINMF

  • Performing Parameter Selection

  • Integrating spatial transcriptomic and transcriptomic datasets using UINMF (Click to Download)

  • Integrating Multiple Single-Cell RNA-seq Datasets

  • Jointly Defining Cell Types from scRNA-seq and scATAC-seq

  • Jointly Defining Cell Types from Single-Cell RNA-seq and DNA Methylation

  • Running Liger directly on Seurat objects using Seurat wrappers

生信小博士

【生物信息学】R语言开始,学习生信。Seurat,单细胞测序,空间转录组。 Python,scanpy,cell2location。资料分享

公众号

参考;https://github.com/welch-lab/ligerhttps://github.com/satijalab/seurat-wrappershttps://htmlpreview.github.io/?https://github.com/satijalab/seurat.wrappers/blob/master/docs/liger.html

看完记得顺手点个“在看”哦!

### 空间转录组与单细胞转录组联合分析 #### 方法概述 为了更好地理解复杂组织中的细胞异质性和空间分布,将空间转录组与单细胞转录组数据相结合成为了一种强有力的研究手段。这种组合不仅保留了单细胞分辨率下的基因表达特征,还增加了空间维度的信息,使得研究人员可以探索特定区域内细胞类型的特异性及其相互作用。 #### 数据预处理 在进行联合分析前,通常先要对两种类型的数据分别进行标准化和质量控制。对于10X Genomics平台产生的空间转录组数据,可以通过Cell Ranger软件完成初步的质量评估和过滤操作[^2];而对于单细胞RNA-seq数据,则需利用Seurat或其他类似的工具来进行降维、聚类以及去除低质量样本等工作。 #### 整合策略 目前存在多种用于整合这两种不同类型数据集的技术方案: - **基于共同标记基因匹配**:寻找两套数据集中都高度表达的一系列标志性的housekeeping genes作为桥梁,在此基础上构建统一坐标系来表示每种细胞的位置关系。 - **图神经网络模型(GCNs)**:这种方法借鉴了机器学习领域内的概念,通过建立节点代表各个spot或cell,并赋予边权重反映它们之间的物理距离或者分子相似度,进而训练深层架构捕捉全局模式并预测未知属性[^1]。 - **LIGER框架下执行iNMF分解**:这是一种特别针对跨模态数据分析设计出来的矩阵因子化技术,它允许同时考虑多个输入源而不会丢失各自特性的同时找到潜在公共结构[^5]。 #### 应用实例 上述提到的方法已经被广泛应用于实际科研项目当中。例如,在一项关于非小细胞肺癌的研究里,科学家们就采用了Python脚本配合R语言编写了一系列自动化工作流,成功揭示出了肿瘤微环境中不同亚群间的通讯机制及动态变化规律[^3]。另外还有研究者通过对健康个体肺部组织样品实施全方位扫描后发现了一些以前未曾报道过的新型免疫细胞生态位的存在形式[^4]。 ```python import scanpy as sc from scipy.sparse import csr_matrix import numpy as np def preprocess_spatial_data(spatial_adata): """Preprocess spatial transcriptomic data.""" # Normalize and filter the spatial dataset sc.pp.normalize_total(spatial_adata, target_sum=1e4) sc.pp.log1p(spatial_adata) def integrate_sc_and_st(sc_adata, st_adata): """Integrate single-cell and spatial datasets using Seurat's integration method""" common_genes = list(set(sc_anchors.var_names).intersection(st_spots.var_names)) # Subset both AnnData objects to only include these common genes sc_common = sc_adata[:, common_genes].copy() st_common = st_adata[:, common_genes].copy() # Integrate with Scanorama or Harmony etc. integrated_anndata = ... # Placeholder for actual integration code return integrated_anndata ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信小博士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值