夜雨聆风学习资料网

ARTICLE · 1154109

AI 陪你拆 CyTOF 生信最佳实战(三):质量控制

AI 陪你拆 CyTOF 生信最佳实战(三):质量控制

前面我们整理过CyTOF数据分析的一些生信笔记,这次重新更新一下这方面的内容啦。

本交流群仅限于cytof数据处理相关细节哈,承诺不少于30篇相关教程。

本次学习帖子融入AI的各种操作。

可以添加新叶的微信进入cytof交流学习群:Biotree123

cytof数据资源群专辑:《cytof》。

前面的步骤:

AI 陪你拆 CyTOF 生信最佳实战(一):从 .fcs 读起

AI 陪你拆 CyTOF 生信最佳实战(二):prepData 构建 SCE 对象

本次学习文献

2026 年 9 月 18 日发表在iScience上,文献标题是:《Single-cell immune profiling of blood and thrombus in cancer-associated thrombosis》。

本文整合高维 CyTOF 与 scRNA-seq 图谱,对癌相关血栓(CAT)患者配对外周血与血栓做单细胞免疫表型,发现"外周 T/NK 系统性耗竭 + 血栓内髓系富集、T 细胞消亡、DN T 细胞上位"的双层免疫重编程,并在血栓 CD45⁻ 非免疫区室检出 PD-L1"越界"、血红蛋白与 FOXP3⁺CD8⁺ 调节性 T 细胞跨室正相关,为血栓–免疫互作提供了一份可挖掘的开放单细胞资源。

分析流程图

可以把 CyTOF 先记成一句话:

CyTOF 是“用金属同位素标记抗体,逐个细胞测量几十个蛋白/功能标志物”的高维单细胞蛋白检测技术。

它和 scRNA-seq 很像,都会得到“细胞 × 特征”的矩阵、聚类、UMAP、细胞注释和细胞比例比较;

但 CyTOF 测的是预先设计好的抗体信号,不是全转录组。

前提

AI 陪你拆 CyTOF 生信最佳实战(一):从 .fcs 读起,会产生一个对象,这里面变量名是 samp 。

AI 陪你拆 CyTOF 生信最佳实战(二):prepData 构建 SCE 对象 第二步构建 SingleCellExperiment 对象,得到 sce。

今天第三步:质量控制。

从sce开始。

质控指标

下面来绘制一些图来看数据质量情况。

每样本细胞数

# 补 sample_type(prepData 没带进来)colData(sce)$sample_type <- factor(md$sample_type[match(sce$sample_id, md$sample_id)],                                   levels = c("PBMC","thrombus"))# 每个样本当前进入 SCE 的事件数n_cells(sce)# 每样本细胞数:现在能看出 P/T 系统性差异,而不是交错噪声plotCounts(sce, group_by = "sample_id", color_by = "sample_type")

柱形图可视化:x轴是样本,y轴是每个样本中的细胞(事件)数。颜色为样本类型。

从这里可以看出:血栓样本的细胞数系统性高于外周血,但这个差距主要在样本配对内部。

相对于其他样本,两个样本的细胞数据有点异常,且都是 CAT 组外周血:

样本
细胞数
同患者血栓
12P
45,449
387,318
16P
55,284
593,548

MDS:样本间相似性

# 样本间相似性:配色用 sample_type,标签保留 sample_id + patient_idpbMDS(sce, color_by = "sample_type", label_by = "sample_id")

下图每个点 表示一个样本,点之间的距离 ≈ 两个样本整体 marker 表达谱的差异。两个点挨得近 = 这两个样本"整体看起来像"。

这里可以看到:所有点都挤在原点附近的一小团里,唯独 12P 孤零零挂在 MDS dim.1 ≈ 12–13 的位置,把整个坐标系撑开了。

关于要不要删 12P,建议是暂时保留,但标记出来。

样本中位表达热图

# 样本中位表达热图:行注释加上 sample_typeplotExprHeatmap(sce, scale = "last", hm_pal = rev(hcl.colors(10, "YlGnBu")))

图的含义:

x 轴是 marker,y 轴是 样本,每个格子 = 该样本 marker 的中位表达值(arcsinh 变换后,cofactor 5)。

从图的顶部树状图看,marker 大致分成几片:CD14/CD19/Eomes/Perforin/IFNg/PD-L1/CD160 一片(主要是 type + 部分 state),CD8/CD4/CD3/FOXP3/CD45RA 一片(T 细胞相关),CTLA-4/CD27/CD45 一片等。

行聚类完全没有按实验分组分开。

看到这里,这个数据好像有点问题:

每个样本的细胞数好像有点太太太多了,我这个时候看了一下文献的数据处理方法:

  1. 染色:cisplatin 死活 + Fc 阻断 + 35 抗体 panel + 过夜 Ir 插层
  2. Helios 采集,重悬液里加 10% EQ Four Element Calibration Beads
  3. EQ Passport 珠子归一化("Raw FCS files were normalized using the EQ Passport bead-based normalization method")
  4. FlowJo CyTOF plugin 清洗,手工门控去 beads、死细胞、双联体、碎片
  5. 导出 CD45⁺ 事件,每样本取 10,000 个,24 样本合并成 2.4×10⁵
  6. R(v4.0.0)CATALYST 风格流程:arcsinh → t-SNE + Phenograph 聚类(图 2C/2D/2G/2H 和 4 用 UMAP 重嵌入)
  7. 比例差异分析(配对 t 检验 + BH-FDR)

第 3 步之后的 FCS 就是我现在手里下载的数据文件:

只做了「EQ 珠子归一化」这一步预处理,门控(去beads/死细胞/双联体/碎片)和 CD45⁺ 筛选都没做,arcsinh 变换和聚类也没有。

拿到的是「归一化后、门控前」的原始采集文件。

第 4-5 步(FlowJo 门控 + CD45⁺ 导出)没有上传到 Mendeley!

哭死啊😭!

我还得找个工具去做门控吗?

上面是手动做的,我找了个文献自动做的:2025 年 2 月 12 日 发表在 Nature Communications 杂志,文献标题:《Automated cytometric gating with humanlevel performance using bivariate segmentation》。

这篇文献专门用来解决:流式/质谱细胞术(CyTOF)数据分析中最耗时的一步是人工圈门(gating)

下篇看看!

最新的AI各种配置,以及使用AI做生信分析,欢迎来找新叶交流:jzhang0527。

我们有语雀文档,实时在线更新的各种AI生信使用教程。

AI加持的生信学习速度超级加倍~

如果对你有帮助,欢迎一键三连~

生信技能树的AI培训班:

AI时代的生信培训班:有主流Agent的配置和应用

相关学习资料