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 小时前
备战 AI 出海 DAY 0:海外数据采集
大数据·人工智能
Ysn07193 小时前
YOLO-Master工程:experts.py 专家结构详解与目标检测专家设计启发
人工智能·yolo·目标检测
BingoGo3 小时前
使用 GPT-6 Astra 模型 请立刻更新你的 Skill 与提示词
人工智能
香菜+3 小时前
端侧视频分析 · 架构笔记
人工智能
s1ckrain3 小时前
【论文阅读】A Survey on Vision–Language–Action Models for Embodied AI
论文阅读·人工智能·多模态·具身智能
深圳雨林凯AI3 小时前
图案裂变的“风格归一化“设计思路:主体保得住,画风才拉得齐|雨林凯AI技术笔记
人工智能·笔记
北域码匠3 小时前
高通滤波算法深度解析(High-Pass Filter)
stm32·算法·c#·数字信号处理·嵌入式开发·滤波算法·高通滤波
DevNo3 小时前
英文会议转中文纪要,三款AI工具实测体验
人工智能
深小乐3 小时前
AI 说话越来越难懂?Anthropic 员工都在用 ELI5 这个图解 Skill
人工智能
问天_观心3 小时前
大模型微调学习(二)
人工智能·python·深度学习·学习·语言模型·transformer