利用MetaNeighbor验证重复性和跨物种分群

news/2025/1/24 19:19:48/

进行跨物种研究时,我们经常需要进行注释结果的比较和归类,或者同一物种不同样本之间的注释验证。R语言中有一个包就可以利用直观的热图展示这一需求。

导入包和环境

library(Seurat)
library(ggplot2)
library(MetaNeighbor)
library(SingleCellExperiment)
library(dplyr)

导入数据

这里以海豚和两个公开人的PFC脑区单细胞转录组数据为例

hm <- readRDS('human_sci_EXN.rds')
DefaultAssay(hm) <- 'RNA'
hm@meta.data$species <- 'human'
hm2 <- readRDS('human_2_EXN.rds')
DefaultAssay(hm2) <- 'RNA'
hm2@meta.data$species <- 'human'
dp <- readRDS('dolphin_PFC_EXN.rds')
DefaultAssay(dp) <- 'RNA'
dp@meta.data$species <- 'dolphin'

创建比较对象

# 确保Idents已经正确设置
Idents(hm) <- hm@meta.data$cellType_layer
Idents(hm2) <- hm2@meta.data$subclass.v2
Idents(dp) <- dp@meta.data$sub2# 提取表达矩阵和元数据
exprs_hm <- GetAssayData(hm)
exprs_hm2 <- GetAssayData(hm2)
exprs_dp <- GetAssayData(dp)meta_hm <- hm@meta.data
meta_hm2 <- hm2@meta.data
meta_dp <- dp@meta.data# 提取共有基因
common_genes <- Reduce(intersect, list(rownames(exprs_hm),rownames(exprs_hm2), rownames(exprs_dp)))# 提取共有基因表达矩阵
exprs_hm_common <- exprs_hm[common_genes, ]
exprs_hm2_common <- exprs_hm2[common_genes, ]
exprs_dp_common <- exprs_dp[common_genes, ]# 合并表达矩阵
combined_exprs <- cbind(exprs_hm_common, exprs_hm2_common, exprs_dp_common)# 创建一个新的列数据框,确保使用Idents作为cell_type
new_colData <- data.frame(study_id = c(rep('human', ncol(exprs_hm_common)),rep('human2', ncol(exprs_hm2_common)), rep('dolphin', ncol(exprs_dp_common))),cell_type = c(Idents(hm), Idents(hm2), Idents(dp))
)# 创建 SingleCellExperiment 对象
sce_combined <- SingleCellExperiment(assays = list(RNA = combined_exprs), colData = new_colData)# 检查合并后的对象
sce_combined

检查所有细胞分群比例

table(sce_combined$cell_type)

相似性分析

# 选择高可变基因
var_genes <- variableGenes(dat = sce_combined, exp_labels = sce_combined$study_id)# 运行相似性分析
celltype_NV <- MetaNeighborUS(var_genes = var_genes,dat = sce_combined,study_id = sce_combined$study_id,cell_type = sce_combined$cell_type,fast_version = TRUE)
# 检查前几行
head(celltype_NV)

可视化

png("heatmap_integrated_3.png", width = 24, height = 24, units = "in", res = 300) 
plotHeatmapPretrained(aurocs = celltype_NV, cex = 1.5, margins = c(25, 25))
dev.off()


http://www.ppmy.cn/news/1565857.html

相关文章

【LeetCode100】--- 寻找重复数

题目传送门 方法一&#xff1a;暴力解法&#xff08;超时&#xff09; 算法原理 双重循环&#xff0c;每次固定一个数&#xff0c;再遍历别的数。比较这两个数是否相等&#xff0c; 若相等则返回这个数。就是重复数。 复杂度分析 时间复杂度&#xff1a;O&#xff08;N方&…

【Flutter】platform_view之AppKitView在哪个flutter版本添加的

通过一下文件对比判断哪个版本添加的 已添加&#xff1a; https://github.com/flutter/flutter/blob/3.16.0/packages/flutter/lib/src/widgets/platform_view.dart https://github.com/flutter/flutter/blob/3.15.0-0.0.pre/packages/flutter/lib/src/widgets/platform_vie…

2025春招 SpringCloud 面试题汇总

大家好&#xff0c;我是 V 哥。SpringCloud 在面试中属于重灾区&#xff0c;不仅是基础概念、组件细节&#xff0c;还有高级特性、性能优化&#xff0c;关键是项目实践经验的解决方案&#xff0c;都是需要掌握的内容&#xff0c;正所谓打有准备的仗&#xff0c;秒杀面试官&…

Moretl FileSync增量文件采集工具

永久免费: <下载> <使用说明> 我们希望Moretl FileSync是一款通用性很好的文件日志采集工具,解决工厂环境下,通过共享目录采集文件,SMB协议存在的安全性,兼容性的问题. 同时,我们发现工厂设备日志一般为增量,为方便MES,QMS等后端系统直接使用数据,我们推出了增量采…

基于java的客户信息管理系统

摘 要 随着计算机的不断发展和进步&#xff0c;无论是大企业还是小企业&#xff0c;管理客户信息的重要性日益突出&#xff0c;企业需要有一个完善的系统管理。 本系统设计的目的是实现企业客户信息的管理&#xff0c;可以利用先进的计算机技术和网络技术来改变企业客户信息管…

Django 的 `Meta` 类和外键的使用

Django 的 Meta 类和外键的使用 1. Meta 类的常用选项2. 外键&#xff08;ForeignKey&#xff09;字段的使用2.1 基本用法2.2 ForeignKey 参数2.3 外键删除选项&#xff08;on_delete&#xff09; 3. 外键和查询3.1 获取作者的所有书籍3.2 通过书籍查找作者3.3 使用 select_rel…

iOS UIScrollView的一个特性

1如果UIScrollView 的contentSize.height > scrollView.bounds.size.height - scrollView.contentInset.top - scrollView.contentInset.bottom &#xff0c; 则scrollView就可以滚动&#xff0c;否则无法滚动 并且最大的滚动范围就是 contentSize.height - &#xff08; s…

如何有效使用Python爬虫将网页数据存储到Word文档

在数据处理和文档自动化生成的场景中&#xff0c;Python爬虫技术结合文档操作库&#xff08;如python-docx&#xff09;可以实现高效的数据抓取和文档生成。本文将详细介绍如何使用Python爬虫技术抓取网页数据&#xff0c;并将其存储到Word文档中&#xff0c;同时提供完整的代码…