单细胞分析(Signac): PBMC scATAC-seq 质控

简介: 单细胞分析(Signac): PBMC scATAC-seq 质控

引言

在本教学指南中,我们将探讨由10x Genomics公司提供的人类外周血单核细胞(PBMCs)的单细胞ATAC-seq数据集。本节中所涉及的所有文件均可在10x Genomics的官方网站上找到:

  • 原始数据文件
  • 相关的元数据文件
  • 包含数据片段的文件
  • 用于索引的片段文件

要下载所有必需的文件,您可以在 shell 中运行以下行:

wget https://cf.10xgenomics.com/samples/cell-atac/1.0.1/atac_v1_pbmc_10k/atac_v1_pbmc_10k_filtered_peak_bc_matrix.h5
wget https://cf.10xgenomics.com/samples/cell-atac/1.0.1/atac_v1_pbmc_10k/atac_v1_pbmc_10k_singlecell.csv
wget https://cf.10xgenomics.com/samples/cell-atac/1.0.1/atac_v1_pbmc_10k/atac_v1_pbmc_10k_fragments.tsv.gz
wget https://cf.10xgenomics.com/samples/cell-atac/1.0.1/atac_v1_pbmc_10k/atac_v1_pbmc_10k_fragments.tsv.gz.tbi

加载包

首先加载 Signac、Seurat 和我们将用于分析人类数据的其他一些包。

if (!requireNamespace("EnsDb.Hsapiens.v75", quietly = TRUE))
    BiocManager::install("EnsDb.Hsapiens.v75")

library(Signac)
library(Seurat)
library(EnsDb.Hsapiens.v75)

library(ggplot2)
library(patchwork)

计算 QC 指标

现在,我们能够对单细胞ATAC-seq实验进行一系列质量控制指标的计算。我们推荐以下几种指标来评估您的数据是否达到标准。与单细胞RNA测序技术类似,这些指标的理想数值范围会根据您的生物样本、细胞的生存状态以及其他一些因素而有所不同。

核小体条带模式:通过配对末端测序得到的DNA片段大小分布图应该清晰显示出核小体条带模式,这反映了DNA缠绕在单个核小体上的典型长度。我们对每个细胞进行这一模式的计算,并估算出单核小体片段与未被核小体包裹的DNA片段之间的比例(这一数值被记录为nucleosome_signal)。

转录起始位点(TSS)富集度评分:ENCODE项目根据TSS中心区域的片段与TSS两侧区域片段的比例,定义了一种ATAC-seq的靶向评分(详情请访问https://www.encodeproject.org/data-standards/terms/)。质量较差的ATAC-seq实验往往TSS富集度评分较低。我们可以通过TSSEnrichment()函数为每个细胞计算这一指标,并将结果存储在元数据中的TSS.enrichment列下。

峰区内的总片段数:这是衡量细胞测序深度或复杂度的一个指标。片段数量极少的细胞可能因为测序深度不足而需要被排除。而片段数量极高的细胞可能预示着存在双细胞、细胞核团或其他技术问题。

峰区内的片段比例:这代表了所有片段中位于ATAC-seq峰区内的比例。比例较低的细胞(例如小于15-20%)通常意味着细胞质量不佳或存在技术问题,这类细胞应该被排除。请注意,这个比例对于所使用的峰区集合非常敏感。

基因组黑名单区域的读数比例:ENCODE项目已经列出了一些黑名单区域,这些区域的读数常常与技术伪影相关。如果细胞有较高比例的读数定位在这些区域(与定位在峰区的读数相比较),那么这些细胞很可能代表技术伪影,应该被排除。人类(hg19和GRCh38)、小鼠(mm10)、果蝇(dm3)以及秀丽隐杆线虫(ce10)的ENCODE黑名单区域已包含在Signac软件包中。

最后请注意,上述提到的最后三个指标不仅可以从CellRanger的输出结果中获得(这些结果会存储在对象的元数据中),而且也可以使用Signac软件包来计算非10x科技公司的数据集(有关更多信息,请参见本文档的末尾部分)。

# compute nucleosome signal score per cell
pbmc <- NucleosomeSignal(object = pbmc)

# compute TSS enrichment score per cell
pbmc <- TSSEnrichment(object = pbmc, fast = FALSE)

# add blacklist ratio and fraction of reads in peaks
pbmc$pct_reads_in_peaks <- pbmc$peak_region_fragments / pbmc$passed_filters * 100
pbmc$blacklist_ratio <- pbmc$blacklist_region_fragments / pbmc$peak_region_fragments

我们可以使用DensityScatter()函数来直观展示对象元数据中存储的变量之间的相互关系。此外,通过将quantiles参数设置为TRUE,这个函数还能够帮助我们迅速确定不同质量控制指标的适宜阈值。

DensityScatter(pbmc, x = 'nCount_peaks', y = 'TSS.enrichment', log_x = TRUE, quantiles = TRUE)

我们可以通过将细胞按照TSS富集分数进行分类,并在所有转录起始位点(TSS)上绘制其可访问性信号来审视这些分数。在调用TSSEnrichment()函数时,如果设置fast=TRUE选项,将只计算TSS富集分数,而不会存储每个细胞的Tn5插入频率的完整细胞位置矩阵,这样做可以节省内存空间。但是,请注意,如果设置了fast=TRUE,我们将无法使用TSSPlot()函数对不同组的细胞进行TSS富集信号的后续绘图分析,这一点在下面的示例中有所展示。

pbmc$high.tss <- ifelse(pbmc$TSS.enrichment > 3, 'High', 'Low')
TSSPlot(pbmc, group.by = 'high.tss') + NoLegend()

我们还可以通过观察所有细胞的DNA片段长度的周期性变化,并根据细胞的核小体信号强度高低进行分组,来进一步分析。可以观察到,那些在单核小体与无核小体比例上表现异常的细胞(如前述图表所示)呈现出不同的核小体条带模式。而其他细胞则展现出一种符合成功ATAC-seq实验特征的典型模式。

pbmc$nucleosome_group <- ifelse(pbmc$nucleosome_signal > 4, 'NS > 4', 'NS < 4')
FragmentHistogram(object = pbmc, group.by = 'nucleosome_group')

我们可以使用小提琴图分别绘制每个 QC 指标的分布:

VlnPlot(
  object = pbmc,
  features = c('nCount_peaks', 'TSS.enrichment', 'blacklist_ratio', 'nucleosome_signal', 'pct_reads_in_peaks'),
  pt.size = 0.1,
  ncol = 5
)

最后,我们删除这些 QC 指标的异常值细胞。

pbmc <- subset(
  x = pbmc,
  subset = nCount_peaks > 3000 &
    nCount_peaks < 30000 &
    pct_reads_in_peaks > 15 &
    blacklist_ratio < 0.05 &
    nucleosome_signal < 4 &
    TSS.enrichment > 3
)

pbmc

## An object of class Seurat 
## 87561 features across 7307 samples within 1 assay 
## Active assay: peaks (87561 features, 0 variable features)
##  2 layers present: counts, data
相关文章
|
定位技术 索引
基于Amos路径分析的输出结果参数详解
基于Amos路径分析的输出结果参数详解
1637 2
|
运维 Java 大数据
一步步教你激活Termius(针对Termius持续更新导致失效解决)
一步步教你激活Termius(针对Termius持续更新导致失效解决)
一步步教你激活Termius(针对Termius持续更新导致失效解决)
|
11月前
|
人工智能 搜索推荐 算法
人工智能在医疗诊断中的应用与前景
本文探讨了人工智能在医疗诊断中的最新进展、应用案例以及面临的挑战。通过分析AI在医学影像识别、电子病历分析和个性化治疗方案等领域的具体应用,揭示了其提高诊断准确性、缩短诊断时间的潜力。同时,讨论了数据隐私、算法偏见等伦理和法律问题,并提出了未来研究方向。
|
6月前
|
人工智能 运维 自然语言处理
2025保姆级JupyterLab 4.0安装指南|全平台部署+AI编程环境配置
JupyterLab 是下一代交互式计算开发环境,2025年发布的4.0版本新增多语言内核支持(Python/R/Julia/JavaScript一键切换)、实时协作功能、AI辅助编程(集成GPT-5代码补全与错误诊断)和可视化调试器等特性。本文详细介绍其技术定位、跨平台安装方案、安装流程、高阶功能配置、典型应用场景及故障排查指南,帮助用户高效使用JupyterLab进行开发。
|
SQL 数据库
MyBatisPlus 之 条件查询 <条件构造器>
MyBatisPlus 之 条件查询 <条件构造器>
318 0
|
10月前
|
机器学习/深度学习 人工智能 程序员
大模型时代的思考:小心陷入ChatLLMs构建的蜜糖陷阱-基于人类反馈的间接(反向)驯化-你是否有注意到?
本文探讨了大模型基于人类反馈训练的原理及其潜在风险,特别是大模型在迎合用户需求时可能带来的“蜜糖陷阱”。通过实际案例分析,强调了理性使用大模型的重要性,提出了保持批判性思维、明确人机协作边界、提升人类判断力和创新能力等建议,旨在让大模型真正为人类服务,而不是限制人类思维。
250 4
|
12月前
|
数据可视化
单细胞转录组|scATAC-seq 数据整合
单细胞转录组|scATAC-seq 数据整合
|
容器
【qt】如何获取网卡的信息?
【qt】如何获取网卡的信息?
236 0
|
机器学习/深度学习 存储 数据可视化
手把手教你绘制和解读实用R列线图(Nomogram):从入门到精通
手把手教你绘制和解读实用R列线图(Nomogram):从入门到精通
2801 1
|
存储 Shell Linux
【Shell 命令集合 磁盘管理 】Linux 取消挂载 umount命令使用教程
【Shell 命令集合 磁盘管理 】Linux 取消挂载 umount命令使用教程
667 1

热门文章

最新文章