预处理:从 counts 得到可注释的细胞分群

1. 这一步在做什么

上一页已经把数据整理好了:这是人类单细胞数据,表达值是 raw counts,并且 obs 中有可用的样本信息。

预处理会继续完成质量控制、归一化、降维、批次校正和聚类。最后得到细胞分群及每群的 marker,供下一步细胞类型注释使用。

raw counts → QC → 归一化 → 高变基因 → PCA
→ 批次校正 → UMAP / 聚类 → marker

这一步还不给细胞正式命名。目标是得到一份可以检查、可以注释的数据。

2. 开始前:激活正确的智能体

智能体是负责某一类任务的专业助手。激活单细胞预处理智能体后,可以把当前对话明确交给对应流程。

在 omicOS 中选择并激活单细胞预处理智能体

打开“智能体”页面,找到单细胞预处理智能体并点击“激活”。图中红色箭头标出了入口和按钮;点击可查看原图。

智能体 适合什么情况
Single-cell Preprocessor(Plus) 完成常规 QC、归一化、降维、批次校正、聚类和 marker 计算
Single-cell Preprocessor Pro 完成同样的核心流程,并提供更完整的参数记录、结果校验和可追溯交付;本案例使用它
Vertical Agent Selector 不确定选谁时,让它自动导航到合适的智能体;它本身不执行预处理

任务明确时,建议直接激活可用的预处理智能体。没有 Pro 权限时,Plus 也可以完成核心流程。

3. 直接看一个真实案例

这个案例直接使用上一页输出的数据。它是从人类健康泛组织图谱中筛选出的 6 个 dataset 子集,不是泛癌数据。

项目 本案例
输入规模 142,540 个细胞 × 21,812 个基因
表达数据 raw counts
批次字段 sampleID,共 65 类
批次校正 Harmony,按 sampleID 执行
聚类参数 Leiden resolution = 0.8
高变基因 2,000 个 HVG

真实提问很短:

用户在 omicOS 中提出预处理要求

可以直接复制下面的提示词:

<第一步输出的 h5ad 路径>

对该数据进行预处理
对 sampleID 进行去批次
res 选为 0.8
HVGs 设为 2000

sampleID 是本案例由用户指定的 batch key。换成自己的数据时,要根据实验设计选择字段,不能默认照抄。

HVG 是“高变基因”,也就是不同细胞之间变化较明显、用于后续降维和聚类的一组基因。本案例由用户指定 2,000 个。

案例得到的核心结果

omicOS 返回的预处理流程汇总

真实结果表。它汇总了 QC、归一化、Harmony、聚类和 marker;点击可查看原图。

检查项 结果
QC 前后细胞数 142,540 → 141,871,移除 669 个细胞
基因数 21,812 → 19,888
高变基因 2,000 个
批次处理 Harmony 按 65 个 sampleID 执行
聚类 resolution 0.8,得到 29 个 cluster
marker 每群计算 Wilcoxon 和 COSG top 50 marker

Harmony 后按 sampleID 着色的 UMAP

Harmony 后按 sampleID 着色的 UMAP。颜色混合可以帮助发现明显的样本分离,但不能单独证明批次校正正确。图例较密时,可点击图片查看原图。

Leiden resolution 0.8 得到的 29 个细胞分群

resolution 0.8 得到 29 个 cluster。编号只是分群标签,还不是细胞类型。

到这里,数据已经具备进入细胞类型注释的技术条件。下面的内容是给需要进一步把关的人看的。

4. omicOS 实际做了什么

阶段 本案例的处理
QC min_genes=200min_counts=1000min_cells=3max_genes_by_counts=6000max_mito=25%
归一化 每个细胞总 counts 缩放到 10,000,再做 log1p
高变基因 Seurat v3,按用户要求选择 2,000 个 HVG
缩放与降维 scale(max_value=10),下游采用 25 个 PC
批次校正 Harmony 按 sampleID 生成校正后的 PCA 表示
UMAP 和聚类 在 Harmony 空间建邻居图,计算 UMAP 和 Leiden 0.8
marker 每个 cluster 计算 Wilcoxon 和 COSG top 50 marker

正式运算前,第一次参数配置没有通过完整性检查。omicOS 补齐配置后重新启动,错误配置没有继续进入主流程。

主流程中还发生了一次真实 fallback:按 sampleID 分批挑选高变基因时,部分 batch 的拟合不稳定,因此改为不按 batch 挑选 HVG。Harmony 仍按 sampleID 成功执行。

65 个 sampleID 的细胞数从 42 到 8,543 不等,中位数为 1,521,其中一个样本少于 50 个细胞。样本规模不均可能增加分批拟合难度,但本回放不能证明它就是 fallback 的唯一原因。

这不代表流程失败,但必须记录。后面如果发现某些 cluster 被少数样本主导,要把这条 fallback 一起考虑。

交付阶段还发现一个中间检查点损坏。omicOS 删除损坏文件,从上一个有效检查点继续生成最终交付;最终主文件可以读取,最终运行清单没有失败阶段。这类恢复过程也应写进记录,不能只留下“成功”两个字。

5. QC 怎么看

QC 是质量控制。它主要检查每个细胞的总 counts、检测到的基因数和线粒体比例。

用户发现 QC 提琴图没有正确画出并要求检查

这是一个容错示例。发现图片为空时,直接告诉 omicOS“提琴图没有画出来,请检查并重新生成”即可。

修复后的五项单细胞 QC 指标小提琴图

修复后的 QC violin,包含 141,871 个细胞。五个面板依次是总 counts、检测基因数、线粒体比例、核糖体比例和血红蛋白比例。窄屏下可点击图片查看原图。

先看三件事:

  1. total_counts 和检测基因数是否有明显的低值或高值长尾;
  2. 线粒体比例是否集中在合理范围,并与组织类型相符;
  3. QC 前后细胞数能否对上,移除比例是否符合预期。

本案例移除了 669 个细胞,约占 0.47%。这不自动等于“数据质量很好”,也可能是输入此前已经筛选过,或本次阈值较宽。

本次没有启用 MAD 自适应过滤,也没有重新执行双细胞过滤或环境 RNA 去除。因此不能写成“已经排除所有双细胞和环境 RNA”。

如果结果中没有出图,或者打开后是空白,不需要自己排查绘图代码。直接指出哪张图有问题,让 omicOS 检查并重新生成;新图出来后,再确认分布、坐标和标签是否完整。

6. 批次、resolution 和 marker 怎么看

6.1 批次校正不能只看一张 UMAP

本案例按用户指定的 sampleID 做 Harmony。是否选对 batch key,仍要结合实验设计判断。

判断校正是否合理,至少一起看:

  • 同类细胞是否不再只按样本分开;
  • 已知组织、疾病状态和 marker 差异是否仍然保留;
  • 每个 cluster 是否由多个样本共同支持,而不是被单一样本占满;
  • 校正前后的结果是否一致改善,而不是把所有细胞硬混在一起。

画 PC1、PC2、PC3 并按 batch、组织和已知细胞类型着色,有助于找主要变异来源,但它也只是辅助证据。需要更严格比较时,可以再计算 iLISI、kBET、graph connectivity 等批次混合指标,同时用 cLISI 或 silhouette 检查生物学结构有没有被抹掉;这些指标本案例没有计算。

6.2 resolution 决定分群颗粒度

resolution 越高,通常会得到更多、更细的 cluster。

本案例只运行 resolution=0.8,得到 29 个 cluster。它是本次指定的分析尺度,不是所有数据都适用的标准答案。

如果 cluster 太碎、marker 不稳定,或一个群几乎只来自单一样本,就要考虑调整 resolution 或回查上游。

6.3 marker 用来检查 cluster 是否合理

Leiden 0.8 各 cluster 的 marker dotplot

点越大,表达该基因的细胞比例越高;颜色越深,群内平均表达越高。图片信息较密,建议点击查看原图。

不要只找一个“最响”的基因。要看一组 marker 是否共同支持同一类细胞,同时检查是否出现互相冲突的信号。

7. 谁负责什么,结果怎样检查

分析者负责 可以交给 omicOS
确认正确的 batch key 读取字段并执行指定的批次校正
判断 QC 阈值是否适合组织和实验 应用规则并生成 QC 图
决定是否需要双细胞、环境 RNA 等额外处理 本案例未启用;需要时先确认,再另行执行
判断批次校正不足或过度 生成 batch UMAP、组成图和运行记录
选择适合研究问题的 resolution 按指定 resolution 完成聚类
复核 cluster 和 marker 的一致性 计算 marker 表和 dotplot

交付前至少检查:

  1. 细胞数 142,540 → 141,871、基因数 21,812 → 19,888 是否能对上;
  2. sampleID 是否真的是需要校正的技术来源;
  3. 65 个样本在 UMAP 和各 cluster 中的组成是否合理;
  4. 29 个 cluster 是否过碎,是否存在样本独占群;
  5. QC 图是否真的有分布、坐标和标签,而不是只有一个文件名;
  6. marker 是否成组支持各 cluster;
  7. fallback、警告和未启用模块是否写进报告。

本案例最终交付:

文件 用途
adata.h5ad 处理后的数据,含 counts layer、Harmony、UMAP 和 Leiden 结果;本案例约 28 GB
adata_counts.h5ad 配套 counts 数据文件;本案例约 2.8 GB
marker_table.csv 汇总 marker 表
tables/ 聚类计数等结果表,其中包括 cluster_counts.csv
REPORT.html / REPORT.md 完整分析报告
analysis.ipynb / analysis.py 可复现分析文件
run_manifest.json / validation.json 运行与文件级验证记录

运行清单显示流程成功、没有失败阶段,文件级验证也通过。但它没有发现最初的空白 QC 图。这里的“通过”只表示主要文件和技术步骤存在,不代表图片一定正确,也不代表 batch key、QC 阈值或 29 个 cluster 已得到生物学证明。

另有一条不影响核心结果的文件整理警告:最终保留 54 个文件,高于紧凑输出上限 45。流程状态仍为成功,主要交付文件完整。

8. 下一步

确认 QC、批次校正、resolution 和 marker 都合理后,再进入细胞类型注释

实际操作时,应把本页生成的 adata.h5ad 作为输入。本案例 resolution 0.8 对应的 cluster 列是 leiden;进入注释前仍应再次核对。下一页沿用这份预处理结果。

9. 案例实际回放

下面接着上一页的“我的项目A”继续操作。

9.1 在同一项目中新建对话

在“我的项目A”下新建一个对话,命名为“2-预处理”。

在我的项目A中为预处理新建会话

点击项目右侧的 + 新建会话。

数据整理、预处理和注释分别使用独立对话,后面更容易回看。新对话不会自动继承上一段对话的全部内容,因此要准备好输入文件和 batch key。

9.2 激活预处理智能体

打开“智能体”页面,手动激活 Single-cell Preprocessor Pro。没有 Pro 权限时可使用 Plus;不确定时也可以激活 Vertical Agent Selector 自动导航。

9.3 发送提示词

回到“2-预处理”对话,发送:

<第一步输出的 h5ad 路径>

对该数据进行预处理
对 sampleID 进行去批次
res 选为 0.8
HVGs 设为 2000

9.4 先核对运行设置

运行开始后,先确认 omicOS 识别的信息与预期一致:

要核对什么 本案例应看到什么
输入规模 142,540 个细胞 × 21,812 个基因
表达数据 raw counts
batch key sampleID,65 类
resolution 0.8
HVG 2,000

如果规模或 batch key 不对,先停下来核对文件和 obs,不要带着错误设置继续运行。

9.5 运行后追问结果

核心文件生成后,可以继续问:

请用简表总结这次预处理:
1. QC 前后的细胞数;
2. HVG 数;
3. 批次校正方法和 batch key;
4. resolution 和 cluster 数;
5. fallback、警告和未启用的模块;
6. 主要输出文件。

请把“已经执行”和“建议后续执行”分开写。

本案例应得到这些关键信息:141,871 个细胞被保留;使用 2,000 个 HVG;Harmony 按 65 个 sampleID 完成;resolution 0.8 得到 29 个 cluster;cluster 列为 leiden;batch-aware HVG 发生 fallback;Notebook 和分析脚本已经交付。

9.6 实际打开结果

至少打开 QC violin、batch UMAP、cluster UMAP 和 marker dotplot。检查:

  • 图中是否真的有数据;
  • 坐标、图例和标签是否完整;
  • cluster 数是否与报告一致;
  • 图片是否清晰到可以读。

本案例正是在这里发现 QC violin 是空图。用户指出问题后,omicOS 重新读取绘图数据并生成了完整图片。不要只看到“验证通过”就结束检查。

9.7 记录结论

在项目笔记中记下输入文件、batch key、QC 前后细胞数、resolution、cluster 数、fallback 和输出文件。不要只记录“运行成功”。

results matching ""

    No results matching ""