ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

单细胞ATAC-seq全流程解析:从染色质可及性到细胞异质性研究

单细胞ATAC-seq全流程解析:从染色质可及性到细胞异质性研究

直接说结论:单细胞ATAC-seq是目前研究染色质开放图谱和细胞异质性之间关系最锋利的一把刀。它不像普通ATAC-seq那样只能给出一堆细胞的平均信号,而是把每个细胞的开染色质状态拆开来看,直接回答“这群细胞里到底有几种状态,每种状态的调控区域长什么样”。我当时第一次跑完 scATAC-seq 数据、在UMAP上看到清晰的细胞亚群分开时,那种震撼感比RNA-seq聚类来得更强烈,因为每一簇背后都是实实在在的调控差异。

这篇文章适合正在做或者打算做单细胞表观组学的朋友,尤其是已经跑过普通ATAC-seq、对流程有概念但不知道单细胞版本多了哪些步骤的人。我会从实验原理、数据处理、下游分析到问题排查,完整讲一遍这套流程里那些容易被忽略、但直接影响结果质量的关键点。

1. 染色质开放图谱与细胞异质性:为什么必须做单细胞

1.1 从bulk到single-cell的核心变化

普通ATAC-seq把几十万个细胞混在一起测序,得到的信号是所有细胞染色质开放区域的叠加结果。这在细胞类型比较单一的组织里没问题,可一旦碰上肿瘤组织、发育中的胚胎、免疫细胞亚群这些高度异质的样本,bulk数据就会把不同细胞的状态“平均”掉。举个例子,如果一个样本里50%的细胞处于静息态、50%处于活化态,活化的调控元件信号会被静息态稀释一半,很多关键增强子可能直接被淹没在背景噪声里。

单细胞ATAC-seq解决了这个平均化问题。它把每一个细胞单独打上标签,测序之后按标签区分reads来源,重建出每个细胞的开放染色质图谱。这样你不仅能知道某段调控区域在整体样本里是否开放,还能知道它具体在哪些细胞亚群里开放,开放程度在不同细胞间有什么差异。对于细胞异质性这件事,单细胞ATAC-seq提供的是“逐细胞级”的调控证据,而不是群体平均。

1.2 染色质可及性的生物学含义

很多刚接触ATAC-seq的人会问:开放染色质区域到底代表什么?简单理解,基因组DNA在细胞里不是裸露的裸链,而是缠绕在组蛋白上形成核小体结构。核小体排列紧密的区域,调控蛋白进不去,基因表达被抑制;核小体被重塑、让出空隙的区域,转录因子和其他调控蛋白能结合上去,从而影响基因表达。ATAC-seq测的就是这些“能让蛋白结合进去”的空隙,也就是开放染色质区域,通常称作peak。

单细胞ATAC-seq的数据核心是每个细胞的peak profile,它比RNA表达更接近调控的“因”。RNA-seq看到的是基因表达的结果,而ATAC-seq看到的是潜在打开的调控开关。在某些场景下,基因表达还没变化,染色质状态已经先变了;反过来,染色质状态没变,基因表达也可能因为转录后调控而变化。两者互补,但如果只关心细胞状态的转变源头,染色质可及性往往是更早的信号。这也是为什么单细胞ATAC-seq在细胞分化、重编程、疾病状态转换研究中特别受重视。

2. 建库原理与数据生成:读懂Tn5敲门砖

2.1 Tn5转座酶与开放染色质标记

ATAC-seq的核心试剂是Tn5转座酶。这种酶有一个特点:它更倾向于结合在开放染色质区域,在核小体紧密结合的区域内插入效率很低。实验时,把Tn5转座酶加到已裂解、但没有进行全基因组打断的细胞核里,它会随机插入并切断DNA。每插入一次,就在DNA片段两端连上一条已知的接头序列。之后通过PCR扩增这些带接头的DNA片段,就能得到测序文库。

单细胞版本在这个基础上多了一步:让每个细胞的DNA带上不同的条形码标签。当前主流方案有两种。一种是基于液滴的微流控系统,细胞与带有独特条形码的凝胶微珠包裹在水油液滴里,在同一微滴内完成转座和加标签,这样所有来自同一个细胞的DNA片段就拥有同一个条形码。另一种是组合索引策略,通过两轮或者多轮拆分混合的方式,用组合条形码的组合来识别细胞来源,不依赖微流控设备也能实现单细胞分辨。

2.2 单细胞标签化策略与双重检测

基于液滴的方案是目前使用最广泛的。它把细胞的裂解和转座反应控制在微滴里完成,每一步都相对标准化,样本通量也可以做到一次上万个细胞。但这类方案有一个需要特别留意的地方:一个微滴里可能同时进了两个细胞,或者一个细胞和一个游离的DNA片段一起被包裹。如果两个细胞共用一个条形码,最终会被当作一个“高信号”细胞,扰乱了所有后续聚类。

组合索引策略对这个问题的处理更稳健,它不依赖物理分区,而是靠条形码组合来区分细胞。因为两轮索引有多重组合,同一个错误组合同时出现两次的概率极低,相当于对细胞身份做了双重确认。代价是实验操作步骤更多,建库周期更长。我个人的经验是,如果实验平台允许,优先选择组合索引方案,数据质量会更干净;如果追求简便和高通量,液滴方案也完全可以接受,只要后续质检时严格过滤掉异常高信号的细胞。

2.3 实验设计中的关键考量

样本起始细胞数需要比RNA-seq更谨慎。单细胞ATAC-seq的reads分布高度稀疏,每个细胞的开放区域只有几千到几万个,而过多的细胞数并不一定带来信息量的线性提升。实际处理中,一个样本建议至少回收4000到8000个有效细胞,太少的话聚类结果会和抽样顺序强相关,跑三次结果可能都不一样。

另外,细胞核质量对数据的影响非常大。单细胞ATAC-seq使用的不是完整细胞,而是提取出的细胞核。如果核膜破损过多,或者核内DNA降解严重,会造成周转率下降、背景reads比例升高。我通常在建库前用荧光显微镜检查核形态和完整性,确保绝大多数核没有明显破裂再开始建库。这一步看起来像基础工作,但实验后期大量细胞被过滤掉,往往就是把关没做严。

3. 上游数据处理流程:从FASTQ到可分析矩阵

3.1 数据质控与比对

上游分析的第一步是拿到FASTQ文件后做质量控制。测序仪下机数据里接头污染的比例、测序质量值分布、以及条形码质量,都会直接影响后续有效数据的比例。常用做法是先用工具去除接头和低质量碱基,再做比对。

比对环节需要选择适合ATAC-seq的比对方式和参数。ATAC-seq片段是Tn5随机插入产生的,插入位置会留下特定的偏移模式,所以比对时一般不用严格的端到端比对,而是允许一定程度的软裁剪。比对到参考基因组后,还需要筛选比对质量高的reads、排除线粒体reads和PCR重复reads。线粒体reads在ATAC-seq里占比通常较高,因为线粒体基因组小且裸露,容易被Tn5转座。它们不携带染色质调控信息,必须在分析前剔除,否则会严重干扰峰值信号的计算。

3.2 细胞过滤与峰值检测

比对完成后,每个细胞会得到一个片段列表,接下来要根据这些片段的统计量判断哪些是真正的细胞。最核心的指标是每个条形码下的独立片段数。真实的细胞通常有一个满足一定数量阈值的片段数区间;片段数极低的条形码多半是空微滴或背景DNA污染,极高片段数的可能是双细胞或者多细胞。

双细胞率的判断可以借助片段分布特征。如果某个条形码的片段数异常高,同时又能看到明显来自两个不同染色质状态的特征,就要高度怀疑是双细胞。很多情况下,片段数分布会出现一个明显的“主峰”和一个小尾巴,尾巴上的点就是需要警惕的类别。我一般会先根据片段数分布选取拐点,再结合基因组覆盖率曲线,把覆盖率异常低的细胞去掉。

峰值检测是ATAC-seq分析里连接上游和下游的关键一步。现在主流工具都会用一个标准的分析流程来鉴定peak,即先把片段按插入位置形成以Tn5结合位点为中心的信号分布,然后通过一定的模型判断哪些区域显著高于背景。对于单细胞数据,常规做法有两种:一种是把所有细胞合并成一个伪bulk样本来找peak,再把peak分配回每个细胞;另一种是对每个细胞单独找peak,然后用一个共享的peak集合统一量化。前者更稳定,适合大多数研究场景;后者能保留更多细胞特异信息,但计算开销更大。

3.3 降维重构与分析矩阵

拿到每细胞片段后,不能直接用最原始的片段来聚类,原因有两个。一是数据极其稀疏,每个细胞只覆盖全基因组一小部分,直接在原始位点做聚类会受噪声支配;二是单细胞ATAC-seq的维度极高,有几十万个潜在peak区域,需要先降维。

标准做法是先把全基因组划分为固定大小的窗口(比如5kb或10kb),统计每个窗口内的片段数,得到一个细胞-窗口计数矩阵。然后用潜在语义索引这类方法做降维。这一类方法最早用在文本挖掘里,处理高维稀疏矩阵效果很好,迁移到单细胞数据也很合适。降维后得到每个细胞的低维嵌入向量,再拿去算细胞间距离,聚类效果比直接基于peak矩阵好得多。

有一个常见误区需要提醒:直接用peak矩阵做PCA再聚类,通常结果很差。因为peak矩阵太稀疏,大量零值会主导距离计算。通过窗口级别的降维,其实等价于先把局部信号做了平滑,聚类信号会稳定很多。

4. 下游分析核心:聚类、注释与差异可及性

4.1 降维聚类与可视化

聚类是单细胞ATAC-seq分析的中枢环节。目前主流的工具都提供了成熟的计算流程,核心思路都是先做降维,再用图聚类算法把细胞分群。比较常见的做法是:用经过窗口降维得到的低维向量构建K近邻图,再用社区发现算法识别群体结构。聚类参数(比如邻居数量、分辨率)对结果影响很大。

分辨率越高,分出的亚群越多。我通常会先在高分辨率下跑一次,观察是否存在过于细碎的小群体(比如一小撮细胞聚成一团但与其他细胞没有明显生物学差异),然后适当降低分辨率得到一个更稳健的群体结构。一个经验法则是:最终分群数量在5到15个之间往往比较合理,超过20个通常意味着有些群体实际是连续状态被强行切开了。

聚类的可视化最常用UMAP。UMAP适合展示高维数据的局部结构,但必须强调它不保存全局距离关系,两个看起来远离的群可能实际距离很近。所以报告聚类结果时,不能只看UMAP上点的分开程度,还要配合标记特征、peak信号热图来验证。

4.2 基因活性评分与细胞类型注释

单细胞ATAC-seq的peak落在基因组的各个区域,其中很大一部分不在启动子附近。要给细胞类型注释,需要先把染色质开放信号映射到基因层面,也就是计算基因活性评分。

最简单的基因活性评分是统计基因启动子区域内的片段数。但实际效果有限,因为真正的调控元件很多在远端增强子;如果只用启动子窗口,会丢掉增强子的活性信息。现在做得比较多的是取启动子附近一段较大窗口(比如转录起始位点上下游几十kb),把该窗口内所有片段加权汇总后作为基因活性分数。更精细的做法是结合染色质构象数据,把与基因建立联系的远端peak信号也计入分值。不过这类方法依赖其他实验数据,普适性稍差。

拿到基因活性评分后,就可以像分析RNA-seq数据一样做细胞注释。把细胞聚类结果投影到已知细胞类型标记基因的活性评分上,就能判断每个群的细胞身份。此时需要注意,基因活性评分和真实表达量并非完全等价,评分高只代表调控区域开放,不代表基因一定高表达。如果同时有匹配的scRNA-seq数据,把两个数据集的细胞做标签迁移来注释,会准确得多。

4.3 差异可及性与峰注释

聚类完成后,差异可及性分析是回答“不同细胞状态到底差在哪”的关键。做法是对每个peak,在群体之间比较片段覆盖信号,用统计检验筛选显著差异的peak。与RNA-seq的差异基因分析类似,需要处理细胞间覆盖深度的差异,常用的策略是对每个细胞的总片段数做标准化,再对peak信号做log变换或方差稳定化。

差异peaks的结果通常用火山图展示,每个点是一个peak区域,横轴是群体间信号差,纵轴是显著性。真正需要注意的是拿到差异peak列表后,如何把它转化成生物学解释。几个实用步骤:

  • 用注释工具把peak关联到最近的基因;
  • 对peak区间做转录因子结合位点富集分析;
  • 把差异peak与已知的增强子、启动子状态比较,判断它们落在什么功能元件上。

我经常遇到一种情况:差异peak富集在某个基因附近,但该基因在另一套RNA数据里没有差异表达。这并不矛盾,染色质开放的变化可能先于表达变化,也可能是该peak调控的是别的基因,只是物理位置上离当前基因最近。所以peak到基因的关联不能只看距离,最好结合共可及性网络或者H3K27ac共定位数据来辅助判定。

5. 把结果讲清楚:motif富集、足迹与轨迹

5.1 转录因子足迹分析

转录因子足迹分析是ATAC-seq独有的优势之一。原理是:转录因子结合在DNA上时,会占据一个约15到30bp的区域,Tn5转座酶在这个区域内的插入频率显著降低,形成一段信号“洼地”,也就是足迹。

单细胞ATAC-seq由于每个细胞信号稀疏,足迹分析通常需要把同一细胞亚群的信号汇总起来,形成群体足迹后再分析。通过比较不同细胞类型在同一转录因子motif位置上的足迹深度,可以推测该因子的结合活性是否存在差异。

足迹分析对数据深度要求很高。如果群体内细胞数少,或者总片段数不够,得到的足迹轮廓噪声很大,很容易把随机波动当成足迹。我建议做足迹分析时至少保证目标群体有数百个细胞,并且用两个重复样本互相验证,否则结果不要轻易写进论文。

5.2 motif富集与共可及性

在差异peak基础上做转录因子motif富集,是解读细胞身份的重要手段。可以把每个群体的peak集合与转录因子motif数据库比对,找出在某个群体中显著富集的motif。比如T细胞亚群里常常富集到与T细胞分化相关的转录因子motif,说明这些调控区域可能是这些因子的直接作用靶点。

需要注意的是,同一个motif可能被多个结构相似的转录因子识别,motif富集只能告诉你哪一类因子可能结合,不能精确到具体哪一个家族成员。要缩小范围,可以结合该转录因子的表达量或蛋白水平,如果某motif富集同时对应因子本身在细胞群中高表达,关联就更有说服力。

共可及性分析则是看不同peak区域在单个细胞中是否倾向于同时开放。两个相距很远的peak如果在同一群细胞里总是共同打开,很可能处于同一个调控回路或者染色质环的两端。这类分析能帮助把远端增强子和目标启动子连接起来,比单纯距离关联可靠得多。

5.3 发育轨迹与连续状态推断

单细胞ATAC-seq数据同样可以用于推断细胞状态转换轨迹。原理是细胞从一种状态走向另一种状态时,染色质开放模式是渐变的,在低维空间里会形成一条连续的路径。

做轨迹推断比聚类更依赖数据质量。如果细胞群体之间有明显的批次效应,或者采样覆盖的中间态太少,轨迹会被拆成不连续的几段,计算出的伪时间就不可靠。我通常先在聚类层面确认存在合理的连续过渡结构,再做轨迹分析,避免把若干离散群体强行连成一条线。

轨迹分析产出的伪时间轴可以和差异可及性分析结合,找出沿轨迹发生渐进式开放或关闭的调控区域。这类分析在发育生物学里特别有用,能够回答“细胞从A到B的过程中,哪些调控元件在最早期已经打开”。相比之下,普通bulk ATAC-seq只能看到前后两个时间点的差异,看不到中间过渡的细节。

6. 常见问题与排查技巧实录

6.1 细胞回收数少、片段率低

这是单细胞ATAC-seq最常翻车的地方。如果你做完建库后,发现有效条形码数量远低于预期,首先检查细胞核提取这一步。核数量不足、核裂解过度、转座酶活性偏低,都会导致回收片段过少。我遇到过一次整批样本数据稀疏的情况,排查后发现是核提取缓冲液没有加新鲜蛋白酶抑制剂。

如果确认实验没问题,分析层面也有办法补救:适当放宽细胞过滤阈值,保留片段数较低但质量不差的细胞;再通过聚类看是否能分离出稳定群体。很多时候低片段数的细胞依然能聚类出明确分群,不需要全部丢弃。

6.2 批次效应与样本整合

在不同批次上跑的样本直接合并聚类,经常出现“先按批次分、再按细胞类型分”的局面。原因很复杂,可能是测序深度差异、建库批次差异,甚至试剂批次差异。

处理批次效应,第一条原则是:只要实验条件允许,不同条件或者重复样本尽量在同一天、同一试剂批号下完成建库。分析层面可以尝试Harmony这类整合算法,输入降维后的细胞嵌入向量来做多批次校正。我在实际项目里发现,整合算法对不同批次的同类型细胞校正效果不错,但要注意过度校正,否则会把真实的生物学差异也抹掉。

6.3 peak calling结果不同导致后续差异分析不一致

这是下游分析阶段明显的坑。不同工具、不同参数,或者是否包含细胞类型特异的信息,都可能让peak集合产生差异。后续基于peak集合做差异分析和motif富集时,结果自然跟随peak集合变化。

解决思路是保持一致性:全流程固定一个工具版本和一套参数,不要在项目中途随意切换。如果发现不同细胞类型之间的差异peak数量不合理(比如差异peak过于集中在一个群体),可以尝试用全样本共享peak集合来量化,避免群体间灵敏度差异带来的偏差。

6.4 细胞注释结果和生物学常识对不上

如果聚类出来的每个群,基因活性评分注释后无法对应到已知细胞类型,先别急着调参数。先检查是不是数据本身有问题:线粒体reads是否没过滤干净、双细胞是否过多、低质量细胞是否混入。这些都会产生一个由背景信号构成的假群,对应的注释当然不合理。

如果原始数据没问题,再看基因活性评分窗口设置。某些高表达基因在细胞中信号主要来自远端增强子,如果评分窗口只包含了启动子区域,这部分信号就丢了,注释可能因此偏移。把窗口适当扩展,或者换一个包含增强子信号的评分模型,常常能解决这类问题。

6.5 与scRNA-seq数据联合分析时标签不一致

前面提到过,scATAC-seq的基因活性评分和真实表达不是一回事。做跨模态分析时,如果直接用两套数据的高变基因做批次整合,可能出现同一群细胞在两套数据中始终对不上的情况。

更稳妥的方法是用标签迁移或者共嵌入模型来联合分析,用已知细胞类型锚点把两类数据映射到共享空间。否则,单靠ATAC-seq数据推断出的细胞类型,亲自下场验证时容易和RNA表达矛盾,让人误以为是数据有问题,其实是分析策略不合适。

最后说一点个人感受。单细胞ATAC-seq看起来步骤多、工具杂,但它的核心逻辑非常清晰:拿到开放染色质图谱,验证细胞状态差异,再找到驱动差异的调控因子。只要在实验阶段的细胞核质控、建库阶段的标签鉴定、分析阶段的聚类验证这几个关键环节把好关,最终结果会比普通表观组学数据更经得起推敲。前面提到的这些坑我基本都踩过一遍,尤其是peak calling一致性和批次效应这两块,分享出来是因为它们在常规流程文档里很少被讲透。下次做项目时,先把工具版本固定好、把细胞核质量抓好,后面整个流程会顺很多。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进