news 2026/9/21 10:08:32

SCS 60.单细胞空间转录组空间聚类(SPATA2)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SCS 60.单细胞空间转录组空间聚类(SPATA2)

Clustering

介绍

分组变量将样本的观测值划分为可以相互比较属性的组。例如,观测值的分组可以是聚类算法的结果或手动空间分割的结果。本教程将展示如何在SPATA2中应用和添加聚类。

# load required packages library(SPATA2) library(SPATAData) library(tidyverse)
object_t269<- readRDS("object_t269.rds") object_t269 <- updateSpataObject(object_t269)
# plot histology plotSurface(object_t269, color_by = "histology", pt_clrp = "npg")

plotImage(object_t269)

2. SPATA2 内的聚类

有许多算法可以将您的样本分成子组。SPATA2 提供了多种聚类算法的封装。那些会立即将结果添加到 SPATA2 对象中的聚类算法,其名称以 run-* 开头,并以 *-Clustering() 结尾。例如:runBayesSpaceClustering()、runKmeansClustering()、runSeuratClustering()。参数名称或命名指定了输出分组变量的名称。可通过getGroupingOptions()获取结果分组变量名称。

# current grouping options getGroupingOptions(object_t269)
## factor factor factor factor ## "tissue_section" "seurat_clusters" "histology" "bayes_space"
# run the pipeline object_t269 <- runBayesSpaceClustering( object = object_t269, name = "bayes_spacev2", # the name of the output grouping variable qs = 5 )
# run PCA based on which clustering is conducted object_t269 <- runPCA(object_t269, n_pcs = 20) object_t269 <- runKmeansClustering( object = object_t269, ks = c(7, 8), methods_kmeans = "Lloyd" )
# results are immediately stored in the objects feature data getGroupingOptions(object_t269)
## factor factor factor factor ## "tissue_section" "seurat_clusters" "histology" "bayes_space" ## factor factor factor ## "bayes_spacev2" "Lloyd_k7" "Lloyd_k8"
# left plot plotSurface( object = object_t269, color_by = "bayes_spacev2", pt_clrp = "uc" )

# right plot plotSurface( object = object_t269, color_by = "Lloyd_k7", pt_clrp = "jco" )

3. SPATA2以外的聚类

聚类可能由多种聚类算法产生。如果这些算法未在SPATA2函数中实现,可以使用addFeatures()函数将它们添加进去。唯一的要求是有一个名为barcodes的变量,用于将组映射到观测值。请注意,变量必须为因子类(factor class),才能被识别为分组变量。

# uses kmeans outside of SPATA2 kmeans_res <- stats::kmeans( x = getPcaMtr(object_t269), centers = 7, algorithm = "Hartigan-Wong" ) head(kmeans_res[["cluster"]])
## GTAGCGCTGTTGTAGT-1 TTGTTTGTGTAAATTC-1 CGTAGCGCCGACGTTG-1 GTAGACAACCGATGAA-1 ## 2 4 4 4 ## ACAGATTAGGTTAGTG-1 TGAGATCAAATACTCA-1 ## 2 2
cluster_df <- as.data.frame(kmeans_res[["cluster"]]) %>% tibble::rownames_to_column(var = "barcodes") %>% magrittr::set_colnames(value = c("barcodes", "kmeans_4_HW")) %>% tibble::as_tibble() cluster_df[["kmeans_4_HW"]] <- as.factor(cluster_df[["kmeans_4_HW"]]) cluster_df
## # A tibble: 3,213 × 2 ## barcodes kmeans_4_HW ## <chr> <fct> ## 1 GTAGCGCTGTTGTAGT-1 2 ## 2 TTGTTTGTGTAAATTC-1 4 ## 3 CGTAGCGCCGACGTTG-1 4 ## 4 GTAGACAACCGATGAA-1 4 ## 5 ACAGATTAGGTTAGTG-1 2 ## 6 TGAGATCAAATACTCA-1 2 ## 7 CTGGTCCTAACTTGGC-1 2 ## 8 TGCACGAGTCGGCAGC-1 3 ## 9 ATAGTCTTTGACGTGC-1 2 ## 10 GGGTGGTCCAGCCTGT-1 3 ## # ℹ 3,203 more rows
# grouping options before adding getGroupingOptions(object_t269)
## factor factor factor factor ## "tissue_section" "seurat_clusters" "histology" "bayes_space" ## factor factor factor ## "bayes_spacev2" "Lloyd_k7" "Lloyd_k8"
# add the cluster results to the meta features object_t269 <- addFeatures( object = object_t269, feature_df = cluster_df ) # grouping options names afterwards getGroupingOptions(object_t269)
## factor factor factor factor ## "tissue_section" "seurat_clusters" "histology" "bayes_space" ## factor factor factor factor ## "bayes_spacev2" "Lloyd_k7" "Lloyd_k8" "kmeans_4_HW"

继续通过可视化结果或使用差异表达分析(DEA)来研究其转录特征。

plotSurface( object = object_t269, color_by = "kmeans_4_HW", pt_clrp = "jama" ) + labs(color = "Kmeans HW")

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/22 1:37:29

基于EmotiVoice的有声内容创作指南:提升听众沉浸感

基于EmotiVoice的有声内容创作指南&#xff1a;提升听众沉浸感 在播客、有声书和虚拟角色交互日益普及的今天&#xff0c;用户早已不满足于“能听清”的语音——他们期待的是“有温度”的声音。那种能随着情节起伏而颤抖、因愤怒而拔高、在低语中透露悲伤的表达&#xff0c;才是…

作者头像 李华
网站建设 2026/9/22 0:18:49

26、Go 语言并发模式与反射机制详解

Go 语言并发模式与反射机制详解 在 Go 语言编程中,并发编程和反射机制是两个非常重要的概念。并发编程可以让我们的程序更高效地利用多核 CPU 的资源,而反射机制则可以让程序在运行时动态地检查和操作类型信息。下面将详细介绍 Go 语言中的并发模式和反射机制。 1. 生产者与…

作者头像 李华
网站建设 2026/9/22 1:51:57

30、编程知识综合解析

编程知识综合解析 1. 基础编程概念 应用编程与系统编程的区别 应用编程聚焦于为最终用户解决问题,而系统编程则是创建供其他软件使用的软件。 API 的定义和重要性 API 是软件暴露的接口,用于控制对其管理资源的访问,它描述了其他应用与该软件的通信方式。 保护环的工作…

作者头像 李华
网站建设 2026/9/21 16:00:56

基于Prompt的EmotiVoice情感控制指令设计规范

基于Prompt的EmotiVoice情感控制指令设计实践 在虚拟主播深夜直播带货、游戏角色因剧情转折而声音颤抖、有声书朗读中突然传来一声轻叹——这些不再是影视特效&#xff0c;而是今天AI语音技术已经能实现的真实场景。用户不再满足于“会说话”的机器&#xff0c;他们想要的是“…

作者头像 李华
网站建设 2026/9/22 2:06:12

能研智库:国家及省(区、市)“十五五”规划汇编(一) 2025

该汇编涵盖国家及山东、江苏、山西、陕西、河北五省 “十五五” 规划建议&#xff0c;核心围绕基本实现社会主义现代化目标展开。国家层面核心要点定位 “十五五” 为基本实现社会主义现代化的关键时期&#xff0c;面临战略机遇与风险挑战并存的环境。确立指导方针&#xff0c;…

作者头像 李华
网站建设 2026/9/22 4:26:27

1、复杂网络分析入门:从基础概念到实际应用

复杂网络分析入门:从基础概念到实际应用 1. 复杂网络分析简介 复杂网络分析(CNA)是一个快速发展的领域,主要研究如何识别、描述、分析和可视化复杂网络。Python 库 NetworkX 提供了一系列用于构建、测量和绘制复杂网络的函数,它与 CNA 相结合,能够自动化繁琐的 CNA 任务…

作者头像 李华