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


Clustering

介绍

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

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

2. SPATA2 内的聚类

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

go 复制代码
# current grouping options 
getGroupingOptions(object_t269)
go 复制代码
##            factor            factor            factor            factor 
##  "tissue_section" "seurat_clusters"       "histology"     "bayes_space"
go 复制代码
# run the pipeline
object_t269 <- 
  runBayesSpaceClustering(
    object = object_t269, 
    name = "bayes_spacev2", # the name of the output grouping variable
    qs = 5
  )
go 复制代码
# 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"
  )
go 复制代码
# results are immediately stored in the objects feature data
getGroupingOptions(object_t269)
go 复制代码
##            factor            factor            factor            factor 
##  "tissue_section" "seurat_clusters"       "histology"     "bayes_space" 
##            factor            factor            factor 
##   "bayes_spacev2"        "Lloyd_k7"        "Lloyd_k8"
go 复制代码
# left plot
plotSurface(
  object = object_t269, 
  color_by = "bayes_spacev2", 
  pt_clrp = "uc"
)
go 复制代码
# right plot
plotSurface(
  object = object_t269, 
  color_by = "Lloyd_k7",
  pt_clrp = "jco"
)

3. SPATA2以外的聚类

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

go 复制代码
# uses kmeans outside of SPATA2
kmeans_res <- 
  stats::kmeans(
    x = getPcaMtr(object_t269), 
    centers = 7, 
    algorithm = "Hartigan-Wong"
  )

head(kmeans_res[["cluster"]])
go 复制代码
## GTAGCGCTGTTGTAGT-1 TTGTTTGTGTAAATTC-1 CGTAGCGCCGACGTTG-1 GTAGACAACCGATGAA-1 
##                  2                  4                  4                  4 
## ACAGATTAGGTTAGTG-1 TGAGATCAAATACTCA-1 
##                  2                  2
go 复制代码
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
go 复制代码
## # 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
go 复制代码
# grouping options before adding
getGroupingOptions(object_t269)
go 复制代码
##            factor            factor            factor            factor 
##  "tissue_section" "seurat_clusters"       "histology"     "bayes_space" 
##            factor            factor            factor 
##   "bayes_spacev2"        "Lloyd_k7"        "Lloyd_k8"
go 复制代码
# 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)
go 复制代码
##            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)来研究其转录特征。

go 复制代码
plotSurface(
  object = object_t269,
  color_by = "kmeans_4_HW",
  pt_clrp = "jama"
) +
  labs(color = "Kmeans HW")
相关推荐
大数据在线4 小时前
布局Agentic AI,亚马逊云科技组合拳再升级
人工智能·openai·亚马逊云科技·智能体·agentic ai
8Qi85 小时前
回文子串(Palindromic Substrings)—— 题解
算法·leetcode·职场和发展·动态规划
皮皮学姐分享-ppx7 小时前
政府绿色采购数据库(2015-2024.3)
大数据·网络·数据库·人工智能·制造
GIS数据转换器8 小时前
基于3D GIS的监控视频精准标定平台
人工智能·物联网·3d·音视频·无人机·知识图谱
专注VB编程开发20年8 小时前
AI 生成C# WinForm 窗体 = 目前就是垃圾
开发语言·人工智能·c#
深小乐8 小时前
Claude Fable5 尝鲜,效果挺不错
人工智能
Nayxxu8 小时前
Gemini + RAG 企业知识库教程:从文档切片到答案生成
运维·人工智能
冬奇Lab8 小时前
真正的 AI-Native Workflow 是什么?——四个判断测试
人工智能·agent
冬奇Lab8 小时前
每日一个开源项目(第128篇):Agent Skills - 给 AI 编程 Agent 装上工程纪律
人工智能·开源·资讯
Deepoch9 小时前
Deepoc VLA开发板:采摘机器人的环境鲁棒作业与不确定性应对
人工智能·机器人·采摘机器人·deepoc