如何在R数据框中新增列的同时使用mutate完成细胞表型分组计数
分析目标
- 核心任务:统计两类组织区域(Tumour肿瘤区、Stroma间质区)下三种细胞表型(Ki67、cPARP、Negative)的细胞数量
- 数据处理路径:从原始仅含单个「Tissue Category」字段的细胞分割数据中,拆分Tumour、Stroma两个独立分类维度
- 最终表结构设计:新增6个存储对应唯一细胞ID的列,列名分别为Tumour Ki67、Stroma Ki67、Tumour cPARP、Stroma cPARP、Tumour Negative、Stroma Negative,后续可直接对各列调用计数函数完成统计
已编写的分析代码
library(tidyverse) library(phenoptr) # 读取细胞分割数据,生成原始数据备份 mydata <- read_cell_seg_data(choose.files()) mydatabackup <- mydata # 查看数据集中包含的唯一细胞表型 unique_phenotypes(mydata) # 查看数据集全量字段名 colnames(mydata) # 提取组织分类字段,查看取值范围 TissueCategory_Column <- mydata$`Tissue Category` length(TissueCategory_Column) TissueCategory_unique <- unique(TissueCategory_Column) length(TissueCategory_unique) # 过滤掉背景、坏死区域的非目标细胞,仅保留肿瘤、间质区细胞 filter_tc <- mydata %>% filter(`Tissue Category`!="Background", `Tissue Category`!= "Necrosis") # 初步按组织类别、表型维度分组计数 count(filter_tc, 'Tissue Category', Phenotype) # 重复加载tidyverse包 library(tidyverse) # 尝试将长表转换为宽表 data_wide <- spread(filter_tc, 'Tissue Category', Phenotype) data_wide # 初步统计各表型对应的总细胞量 lapply(unique(filter_tc$Phenotype), function(x){ sum(filter_tc$Phenotype==x) })
操作过程留存记录
- 运行count函数得到的分组计数结果截图
- 原始细胞分割数据表的字段结构截图
内容的提问来源于stack exchange,提问作者Cancer Research
相关产品推荐
相关产品推荐

