scanpy数据整合批次效应去除原理

简介: scanpy数据整合批次效应去除原理

1.scanpy.external.pp.mnn_correct**

第一步:将表达量按细胞进行归一化,计算细胞之间归一化后的Euclidean距离。

第二步:识别MNN(mutual nearest neighbors, 相互最近的邻居):假设两个batch,寻找batch1中每一个细胞的在batch2中最近的k个细胞(knn1),对batch2进行相同操作(knn2),knn1和knn2的关系的交集就是MNN。

关键1:一对MNN细胞的差异完全来源于批次效应;

关键2:三个假设a)两个批次中至少有1种相同的细胞类型, b) 批次效应与生物子空间(基因表达特征张成的空间)正交,c)批次效应变异远小于不同细胞类型之间的变异。

第三步:对于一个MNN对,计算pair-specific批次矫正向量:两个细胞的向量之差。

细胞特异性的batch-correction vector = 这些pair-specific批次矫正向量的加权平均

细胞表达量的转换策略来自 [Haghverdi et al., 2018]

微信截图_20230606162651.png

2.scanpy.external.pp.scanorama_integrate

关键:不限于两个数据集的MNN,而是发现多个数据集中的相似性,对数据的顺序不明感

降维后再找邻近关系,通过一些算法提升临近关系寻找的速度;

Scanorama同时完成整合和去除批次效应,通常只进行低维的整合

看一下这里的批次效应矫正是如何进行的:

假如有两个数据集Di,Dj,已经确定Mij是他们之间的MNN对,通过rij描述两个数据之间的总体匹配程度,匹配程度反应了两个数据集是否是同一个panorama

matching vectors是两个数据MNN对的差(长度为matchDi细胞数)

当想去除Di的批次效应的时候,计算Di中细胞与matchDi细胞的权重矩阵(Di细胞数 * matchDi细胞数)

用这个权重矩阵加权平均matching vectors = 就是转换向量 translation vector(这个类似于MNN矫正的过程)

每个细胞得到各自的转换向量,这个转换向量可以在高维基因表达的层面计算,也可以在降维后的层面计算

细胞表达量的转换策略来自 [Haghverdi et al., 2018]


3.scanpy.external.pp.harmony_integrate

矫正PCA

迭代两个互补的过程:聚类 + 线性模型批次矫正

微信截图_20230606162958.png

本质上不修改表达量


4.scanpy.external.pp.bbknn

在umap之前调整knn图,不做表达量的改变


顺便回顾一下SeuratV3的整合策略

第一步也是寻找anchor,anchor表示那些不同数据集中生物状态相同的细胞(FindTransferAnchors 函数)。

在降维过程中选用CCA (canonical correlation analysis) ,CCA的优势是发现两个数据集中共有的相关基因模块;PCA只能识别单个数据中的变异

根据降维的结果计算MNN,这里叫anchor,通过两步法过滤anchor;

计算anchor的权重矩阵,该矩阵描述每个query细胞和anchor细胞的关系,矩阵的构建依赖于:1query细胞和anchor细胞,2之前计算的anchor打分,这个权重矩阵的作用是不同细胞类型的anchor的区分。

细胞表达量转换的过程基于 [Haghverdi et al., 2018]

所以整合的方法已经够用了,关键按照研究目的选择最优的方法就好。

相关文章
|
编解码 监控 算法
3D-Genome | Hi-C互作矩阵归一化指南
3D-Genome | Hi-C互作矩阵归一化指南
|
数据挖掘 索引
RNA-seq数据分析一:(HISAT2+featureCounts)
RNA-seq数据分析一:(HISAT2+featureCounts)
|
计算机视觉 Python
解决 NoneType‘ object has no attribute ‘astype’ 问题
解决 NoneType‘ object has no attribute ‘astype’ 问题
461 0
阿里商旅-国内商旅界的未来,今天聊聊阿里商旅是如何做业务的
阿里商旅是如何做业务的 基于钉钉的智能移动差旅1.0版本;开放平台对接方案2.0版本
阿里商旅-国内商旅界的未来,今天聊聊阿里商旅是如何做业务的
|
4月前
|
存储 数据可视化
单细胞分析: Scanpy 核心绘图 (3)
单细胞分析: Scanpy 核心绘图 (3)
单细胞分析: Scanpy 核心绘图 (3)
|
6月前
|
机器学习/深度学习 数据可视化 Python
Scanpy 分析 3k PBMCs:寻找 marker 基因
Scanpy 分析 3k PBMCs:寻找 marker 基因
Scanpy 分析 3k PBMCs:寻找 marker 基因
|
10月前
|
人工智能 自然语言处理 算法
DeepSeek模型的突破:性能超越R1满血版的关键技术解析
上海AI实验室周伯文团队的最新研究显示,7B版本的DeepSeek模型在性能上超越了R1满血版。该成果强调了计算最优Test-Time Scaling的重要性,并提出了一种创新的“弱到强”优化监督机制的研究思路,区别于传统的“从强到弱”策略。这一方法不仅提升了模型性能,还为未来AI研究提供了新方向。
1492 9
|
缓存 数据处理 UED
【Uniapp 专栏】Uniapp 开发中的疑难问题解决与进阶策略
【5月更文挑战第17天】在 Uniapp 开发中,解决页面间数据传递、网络请求异常、屏幕适配及性能优化等问题至关重要。利用路由参数传递复杂数据,如`uni.navigateTo`和`JSON.stringify`;处理网络请求异常时,添加错误处理机制增强健壮性;使用响应式设计和缓存策略优化布局和性能。针对组件问题,需排查依赖和配置,而平台差异则需定制化处理。通过不断学习和实践,提升开发技能,确保项目成功实施。
378 2
【Uniapp 专栏】Uniapp 开发中的疑难问题解决与进阶策略
|
Python
Python-Merge多个Scanpy-Adata对象和细胞降采样实现
本分简单分享在Python中操着合并Adata对象,和细胞降采样的实现方法
1294 0
|
数据库
文献速读|毕设不愁了,中科院二区5分非肿瘤双疾病分析思路
研究摘要:一项发表于2023年《Molecular Neurobiology》(IF=5.1)的论文探讨了帕金森病(PD)与重度抑郁症(MDD)的共病基因。研究通过分析基因表达谱数据识别出PD和MDD的共同基因,特别是AQP9、SPI1和RPH3A三个关键基因。这些基因在两种疾病中均表现出显著差异表达,且与中性粒细胞和单核细胞的功能有关。研究使用生物信息学方法进行基因功能注释和蛋白质相互作用网络分析,并通过实验验证了基因在模型系统中的作用,强调了这些基因在疾病病理生理中的潜在角色。
554 0