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")
相关推荐
倦王2 分钟前
力扣日刷47
算法·leetcode·职场和发展
MicroTech20254 分钟前
突破量子数据加载瓶颈,MLGO微算法科技推出面向大规模量子计算的分治态制备技术
科技·算法·量子计算
程序员雷欧5 分钟前
大模型应用开发学习第八天
大数据·人工智能·学习
码王吴彦祖6 分钟前
顶象 AC 纯算法迁移实战:从补环境到纯算的完整拆解
java·前端·算法
liukuang1107 分钟前
伊利、蒙牛、飞鹤与光明乳业:存量时代的攻守之道与价值分化
大数据·人工智能·物联网
SccTsAxR11 分钟前
算法基石:手撕离散化、递归与分治
c++·经验分享·笔记·算法
前进的李工12 分钟前
LangChain使用AI工具赋能:解锁大语言模型无限潜力
开发语言·人工智能·语言模型·langchain·大模型
wuweijianlove12 分钟前
算法测试中的数据规模与时间复杂度匹配的技术4
算法
北京耐用通信15 分钟前
无缝衔接·高效传输——耐达讯自动化CC-Link IE转Modbus TCP核心解决方案
网络·人工智能·物联网·网络协议·自动化·信息与通信
linux修理工16 分钟前
Claude code与CC-switch安装使用
运维·人工智能