空间转录组: Visium HD 数据集分析 (3)

简介: 空间转录组: Visium HD 数据集分析 (3)

引言

本系列讲解 空间转录组学 (Spatial Transcriptomics) 相关基础知识与数据分析教程,持续更新,欢迎关注,转发,文末有交流群

反卷积分析

接下来,我们将对以 16 µm 为单位的 Visium HD 空间转录组数据进行反卷积分析。

加载单细胞参考数据

首先,我们加载与之匹配的 Chromium 单细胞 RNA 测序(scRNA-seq)数据,该数据提供了两种细胞注释分辨率:低分辨率(Level1)将细胞分为 9 类,高分辨率(Level2)则进一步细分为 31 类。

为了确保参考数据与 Visium 数据在转录特征上保持一致,我们仅保留来自 patient 2 的细胞作为参考集。

# retrieve dataset from OSF repository
id <- "Chromium_HumanColon_Oliveira"
pa <- OSTA.data_load(id)
dir.create(td <- tempfile())
unzip(pa, exdir=td)

# read into `SingleCellExperiment`
fs <- list.files(td, full.names=TRUE)
h5 <- grep("h5$", fs, value=TRUE)
sce <- read10xCounts(h5, col.names=TRUE)

# add cell metadata
csv <- grep("csv$", fs, value=TRUE)
cd <- read.csv(csv, row.names=1)
colData(sce)[names(cd)] <- cd[colnames(sce), ]

# use gene symbols as feature names
gs <- rowData(sce)$Symbol
rownames(sce) <- make.unique(gs)

# exclude cells deemed to be of low-quality
sce <- sce[, sce$QCFilter == "Keep"]

# subset cells from same patient
sce <- sce[, grepl("P2", sce$Patient)]
sce

简化 8 µm 注释

我们可以利用单细胞参考注释,将已有的反卷积标注 “DeconLabel1”(对单细胞为最可能的细胞类型,对双细胞为最主要类型)合并为更低分辨率:

i <- match(vhd8$DeconLabel1, sce$Level2)
j <- match(vhd8$DeconLabel2, sce$Level2)
vhd8$.DeconLabel1 <- sce$Level1[i]
vhd8$.DeconLabel2 <- sce$Level1[j]
vhd8 <- vhd8[, !is.na(vhd8$.DeconLabel1)]
table(vhd8$.DeconLabel1)

根据 RCTD,大约 75% 的 8 µm bin 是单态:

round(100*mean(vhd8$DeconClass == "singlet"), 2)

让我们根据“doublet_certain”类检查前 5 个常见双峰对:

dbl <- vhd8$DeconClass == "doublet_certain"
lab <- c(".DeconLabel1", ".DeconLabel2")
df <- data.frame(colData(vhd8)[dbl, lab])

# sort as to ignore order
df <- apply(df, 1, sort)
df <- do.call(rbind, df)
names(df) <- lab

# count unique pairs
ij <- paste(df[, 1], df[, 2], sep=";")
head(sort(table(ij), decreasing=TRUE), 5)

我们可以看到,髓系细胞通常与肿瘤细胞和成纤维细胞共定位;大多数 doublets 是同型的,即它们(主要)由一种低分辨率类型组成。

在 16 µm 分箱上运行 RCTD

我们同样假设每个 16 µm 分箱中最多存在两种细胞类型,如同在 8 µm 中一样,因此预计 singlets 的比例会更小。

# downsample to at most 4,000 cells per cluster for 'sce'
# (this is done only to keep runtime/memory low)
cs <- split(seq_len(ncol(sce)), sce$Level1)
cs <- lapply(cs, \(.) sample(., min(length(.), 4e3)))
ncol(.sce <- sce[, unlist(cs)])
rctd_data <- createRctd(.vhd16, .sce, cell_type_col="Level1")
(res <- runRctd(rctd_data, max_cores=4, rctd_mode="doublet"))

RCTD 推断出的 weight 对应细胞类型的比例,使得对于给定观测它们总和为 1(被排除的观测除外,其总和为 0):

# counts rejected observations
ws <- assay(res, "weights")
table(colSums(ws) == 0)

# add proportion estimates as metadata
ws <- data.frame(t(as.matrix(ws)))
colData(.vhd16)[names(ws)] <- ws[colnames(.vhd16), ]

接下来,我们可以在空间上可视化反卷积比例估计:

lapply(names(ws), \(.) 
    plotCoords(.vhd16, annotate=., point_size=0.3, point_shape=15)) |>
    wrap_plots(nrow=2, guides="collect") & theme(
    legend.key.width=unit(0.5, "lines"),
    legend.key.height=unit(1, "lines")) &
    scale_color_gradientn(colors=rev(hcl.colors(9, "Rocket")))

我们也可以为 16 µm 分箱获得 majority vote 类别:

# derive majority vote labels
ids <- names(ws)[apply(ws, 1, which.max)]
ids <- gsub("\\.([A-z])", " \\1", ids)
idx <- match(colnames(.vhd16), rownames(ws))
table(.vhd16$.DeconLabel1 <- factor(ids[idx]))

不同分辨率下的反卷积结果

让我们在放大区域可视化 8 µm 和 16 µm 分箱的反卷积结果:

plotVisium(.vhd8, 
    annotate=".DeconLabel1", zoom=TRUE, 
    point_size=0.8, point_shape=22) + 
    ggtitle("8 µm") + 
plot_spacer() +
plotVisium(.vhd16, 
    annotate=".DeconLabel1", zoom=TRUE, 
    point_size=1.6, point_shape=22) + 
    ggtitle("16 µm") +
plot_layout(nrow=1, guides="collect", widths=c(1, 0.05, 1)) &
    guides(col=guide_legend(override.aes=list(size=2))) &
    scale_fill_manual(values=unname(pals::trubetskoy())) & 
    facet_null() & theme(
        plot.title=element_text(hjust=0.5),
        legend.key.size=unit(0, "lines"))

我们观察到,在 8 µm 和 16 µm 两种分辨率下,反卷积结果高度一致;然而,8 µm 分辨率能更精细地捕捉结构,例如内皮细胞和成纤维细胞呈“细线状”伸入左上角肿瘤区域的分箱。

相关文章
|
4月前
|
数据采集 数据挖掘 Serverless
空间转录组学: 质控处理(1)
空间转录组学: 质控处理(1)
空间转录组学: 质控处理(1)
|
2月前
|
算法 数据可视化 数据挖掘
空间转录组: Visium CRC 数据集分析
空间转录组: Visium CRC 数据集分析
295 42
空间转录组: Visium CRC 数据集分析
|
1月前
|
机器学习/深度学习 弹性计算 安全
阿里云服务器c9i实例:高性能企业级云服务器,2核4G、4核8G、8核16配置优惠价格
阿里云服务器ECS计算型c9i实例,搭载采用阿里云全新CIPU架构,搭载最新一代的英特尔® 至强® 6 处理器,相比第8代单核算力最大提升20%,极致性能,适用于机器学习推理应用,数据分析等场景,目前c9i云服务器2核4G、4核8G和8核16配置都有活动,实例1个月/3个月/6个月8折,1年低至6.4折。下面是小编整理的c9i云服务器实例性能测评及优惠价格参考。
212 10
|
1月前
|
弹性计算
租用阿里云服务器一天多少钱?来看看吧,连夜整理价格优惠
阿里云服务器按天计费约0.1元起。通过年付特价活动,如轻量应用服务器38元/年,折合约0.1元/天,性价比高;若按量付费,2核4G实例日均约9.3元,适合短期使用。
210 7
|
10月前
|
人工智能 Kubernetes jenkins
容器化AI模型的持续集成与持续交付(CI/CD):自动化模型更新与部署
在前几篇文章中,我们探讨了容器化AI模型的部署、监控、弹性伸缩及安全防护。为加速模型迭代以适应新数据和业务需求,需实现容器化AI模型的持续集成与持续交付(CI/CD)。CI/CD通过自动化构建、测试和部署流程,提高模型更新速度和质量,降低部署风险,增强团队协作。使用Jenkins和Kubernetes可构建高效CI/CD流水线,自动化模型开发和部署,确保环境一致性并提升整体效率。
|
12月前
|
机器学习/深度学习 数据采集 人工智能
《人工智能如何加速药物研发进程:从新药发现到临床试验的突破》
在医药领域,药物研发复杂且成本高昂,新药推出面临诸多挑战。人工智能(AI)通过分析海量生物数据,加速靶点识别、药物分子设计及临床试验设计与数据分析,显著提升研发效率和质量。AI利用机器学习算法和大数据分析,优化试验方案,预测药物疗效与安全性,助力智能化药物研发平台的建设。尽管存在数据质量和隐私等挑战,AI仍为药物研发带来巨大潜力与创新机遇。
604 10
|
12月前
|
存储 供应链 数据库
Hologres 索引:概念与实用场景
本文介绍了 Hologres 索引的概念、类型及在实际场景中的应用。Hologres 是阿里云的一款强大数据库产品,其索引功能显著提升了数据查询性能。文章详细探讨了 B 树索引、哈希索引和位图索引的特点及应用场景,并介绍了索引的创建和维护方法。此外,还列举了 Hologres 中的重要参数设置及其使用限制,最后通过电商、金融、物流和社交媒体等领域的具体案例,展示了索引在不同场景下的实用价值。
418 10
uniapp实战 —— 猜你喜欢(含滚动触底分页加载)
uniapp实战 —— 猜你喜欢(含滚动触底分页加载)
200 3