scRNA-seq数据是什么?

scRNA-seq(单细胞转录组测序)是目前生物医学领域最核心的数据类型之一,而将 Transformer 应用于该数据是近年来的重磅技术突破(如 scBERT, scGPT, Geneformer 等)。

以下为你深度拆解 scRNA-seq 数据的本质,以及主流 Transformer 模型是如何针对这种数据进行“魔改”设计的。


第一部分:scRNA-seq 数据是什么?

通俗来说,scRNA-seq 是对成千上万个单个细胞进行“点名”,统计每个细胞里哪些基因在表达,以及表达了多少。

  • 数据形式:通常是一个巨大的矩阵(Matrix)

  • 行(Rows):代表一个个细胞(Cell),例如 10,000 个细胞。

  • 列(Columns):代表基因(Gene),人类约有 20,000+ 个蛋白编码基因。

  • 值(Values):代表表达量(Count/UMI),即该基因在这个细胞里被测到了多少次。

  • 三大特点(也是 AI 训练的难点)

  1. 高维(High-dimensional):每个样本(细胞)有 2 万个特征(基因)。
  2. 极度稀疏(Sparsity):矩阵中 >90% 的位置是 0(因为单细胞测序深度不够,很多基因没测到,称为 "Dropout")。
  3. 非结构化(Unordered):与文本不同,基因 A 和基因 B 在染色体上的物理位置虽固定,但在功能网络中并没有像“主谓宾”那样严格的线性顺序。

第二部分:主流 scRNA-seq Transformer 模型的“设计哲学”

Transformer 原本是处理文本(Token 序列)的,要把它用到 scRNA-seq(数值矩阵)上,必须解决三个核心设计问题:怎么输入?长什么样?练什么任务?

1. 输入层设计(Tokenization & Embedding)

这是最关键的一步:如何把一个细胞的基因表达数据变成 Transformer 能吃的“句子”?

  • 方案 A:基因即单词 (Gene as Token) —— 主流方案
  • 做法:将一个细胞看作一句话,细胞里表达的基因就是这句话里的单词
  • 难点:基因有表达量(数值),而单词没有“强度”。
  • 解决策略
  • scBERT / scGPT:采用 "Gene Token + Value Embedding"。将表达量(比如 0-100)切分成不同的区间(Bin),每个区间对应一个向量。输入 = 基因Embedding + 表达量Embedding
  • Geneformer:采用 "Rank Embedding"(秩编码)。它完全扔掉具体的数值,只保留排序。一个细胞内表达量最高的基因排第一,次高的排第二。它认为排序包含了最重要的生物学信息,且能归一化批次效应。

2. 架构选择(Architecture)

  • Encoder-only (BERT 派)

  • 代表模型scBERT, Geneformer, scFoundation

  • 特点:擅长“理解”和“分类”。输入一个细胞,输出这个细胞的高维特征(Embedding)。

  • 用途:最适合做细胞类型注释(Cell Type Annotation)、寻找疾病标志物。

  • Decoder-only / Hybrid (GPT 派)

  • 代表模型scGPT

  • 特点:擅长“生成”。它可以根据已有的基因表达,预测下一个基因,或者在干扰(Perturbation)后生成全新的细胞状态。

  • 用途:最适合做数据补全(Imputation)、批次去噪(Batch Correction)、模拟基因敲除实验。

3. 处理超长序列(Scalability)

人类有 2 万个基因,如果把所有基因都扔进 Transformer(标准长度限制通常是 512 或 1024),显存会瞬间爆炸。

  • 策略 1:硬截断(Geneformer):只保留表达量最高的前 2,048 个基因,扔掉剩下的。
  • 策略 2:高效注意力机制(scBERT / scFoundation):
  • 使用 PerformerFlashAttention
  • 这些技术将 Transformer 里的 复杂度降低到线性 ,从而允许模型一口气吃下 20,000 个基因的全长序列。

4. 预训练任务(Pre-training Objectives)

模型是如何在没有人工标注的情况下学到生物知识的?

  • Masked Gene Modeling (MGM)
  • 类似 BERT 的填空题。随机把一个细胞里 15% 的基因数值盖住(Mask),让模型根据其他基因(上下文)猜出这个基因的表达量是多少。
  • 逻辑:这迫使模型学习基因共表达网络(GRN)。比如,看见“胰岛素基因”高表达,模型就该猜到“胰岛素受体基因”也可能高表达。

主流模型对比总结表

模型名称 核心架构 输入编码方式 亮点设计 适用场景
scBERT Encoder (Performer) 基因 + 离散化表达值 使用 Performer 处理全基因组,不需截断 细胞注释、极稀疏数据挖掘
Geneformer Encoder (BERT) Rank (排序) 编码 不需要数值归一化,鲁棒性极强,预训练数据量极大(30M+ 细胞) 寻找致病基因、跨数据集迁移
scGPT Decoder (GPT) 基因 + 表达值 Binning + 条件Token 支持多模态(ATAC/Protein),引入 Batch/Perturbation Token 进行条件生成 批次效应去除、多组学整合、虚拟微扰实验
scFoundation Asymmetric Enc-Dec 基因 + 表达值 非对称设计(Encoder 处理全部基因,Decoder 重构),规模巨大(1 亿参数) 也是通用的基础模型,擅长捕捉长程依赖

该怎么选?

  • 如果你想做分类任务(如:这是什么细胞?有没有病?):推荐用 Geneformer(简单、鲁棒)或 scBERT
  • 如果你想做生成任务(如:去除批次效应、预测药物反应):推荐用 scGPT
posted @ 2026-01-20 00:11  ylifs  阅读(2)  评论(0)    收藏  举报