单细胞分析(Signac): PBMC scATAC-seq 聚类

引言

在本教学指南中,我们将探讨由10x Genomics公司提供的人类外周血单核细胞(PBMCs)的单细胞ATAC-seq数据集。

加载包

首先加载 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)

归一化和线性降维

在数据处理中,我们首先进行标准化处理,采用的是词频-逆文档频率(TF-IDF)方法。这个过程分为两步:首先在细胞层面进行标准化,以消除不同细胞测序深度带来的偏差;其次在峰值层面进行标准化,目的是让那些较为罕见的峰值获得更高的权重。

接下来是特征选择环节。由于单细胞ATAC-seq数据的动态范围较窄,这使得像单细胞RNA测序那样进行变量特征选择变得困难。因此,我们可以选择仅利用特征(峰值)的前n%来进行降维处理,或者通过FindTopFeatures()函数排除在少于n个细胞中检测到的特征。在本例中,我们将采用所有特征进行分析,尽管我们发现仅使用特征的一个子集(例如,将min.cutoff设置为‘q75’以选取所有峰值的前25%)也能获得非常相似的分析结果,并且计算速度更快。该函数还会自动将用于降维的特征标记为Seurat对象的VariableFeatures()

然后,我们对选定特征的TD-IDF矩阵执行奇异值分解(SVD)。这一步骤将为我们提供数据的降维表示,对于熟悉单细胞RNA测序的用户来说,这个过程类似于主成分分析(PCA)的输出结果。

将TF-IDF标准化与SVD相结合的步骤被称为潜在语义索引(LSI),这种方法最初由Cusanovich等人在2015年引入,用于单细胞ATAC-seq数据的分析。

pbmc <- RunTFIDF(pbmc)
pbmc <- FindTopFeatures(pbmc, min.cutoff = 'q0')
pbmc <- RunSVD(pbmc)

通常,潜在语义索引(LSI)的第一个主成分反映的是测序的深度(即技术层面的变异),而非生物学上的变化。如果确实如此,那么在后续分析中应该将这个成分剔除。我们可以通过DepthCor()函数来评估每个LSI主成分与测序深度之间的相关性。

DepthCor(pbmc)
alt

我们观察到,第一个潜在语义索引(LSI)主成分与细胞的总计数数之间具有极强的相关性。因此,在后续分析中,我们将排除这个主成分,目的是避免基于细胞的总测序深度来进行细胞分组,而应依据细胞在特定细胞类型峰值上的可访问性模式来进行分组。

非线性降维和聚类

细胞已经嵌入到一个低维度的空间里,这使得我们可以采用分析单细胞RNA测序数据(scRNA-seq)时常用的方法来进行基于图的聚类分析,并通过非线性降维技术进行数据可视化。RunUMAP()FindNeighbors()FindClusters()这些函数都是Seurat软件包提供的。

pbmc <- RunUMAP(object = pbmc, reduction = 'lsi', dims = 2:30)
pbmc <- FindNeighbors(object = pbmc, reduction = 'lsi', dims = 2:30)
pbmc <- FindClusters(object = pbmc, verbose = FALSE, algorithm = 3)
DimPlot(object = pbmc, label = TRUE) + NoLegend()
alt

创建基因活动矩阵

通过UMAP的可视化技术,我们可以清晰地看到人类血液中存在许多不同的细胞群体。如果您对单细胞RNA测序(scRNA-seq)分析的外周血单个核细胞(PBMC)有所了解,您可能会在单细胞ATAC-seq数据中辨认出特定的骨髓细胞和淋巴细胞群体。然而,由于我们对非编码基因区域的功能作用了解较少,因此在单细胞ATAC-seq数据中对聚类进行注释和解读会更加困难。

我们可以通过评估与基因相关的染色质可及性来尝试量化基因组中每个基因的活性,并基于单细胞ATAC-seq数据开发出一种新的基因活性检测方法。这里,我们将采用一种简便的方法,即累加与基因本体及其启动子区域相交的片段(我们也推荐使用Cicero工具,它能够实现类似的目标,并且我们提供了一个指南,展示如何在Signac工作流中运行Cicero)。

为了构建一个基因活性矩阵,我们首先提取基因的坐标,并将其扩展到包括上游2kb的区域(因为启动子的可及性通常与基因表达相关)。接着,我们利用FeatureMatrix()函数计算每个细胞中对应这些区域的片段数量。这些步骤都可以通过GeneActivity()函数自动完成。

gene.activities <- GeneActivity(pbmc)

# add the gene activity matrix to the Seurat object as a new assay and normalize it
pbmc[['RNA']] <- CreateAssayObject(counts = gene.activities)
pbmc <- NormalizeData(
  object = pbmc,
  assay = 'RNA',
  normalization.method = 'LogNormalize',
  scale.factor = median(pbmc$nCount_RNA)
)

现在我们可以通过展示标准标记基因的活性来帮助我们解读ATAC-seq的聚类结果。需要注意的是,这些活性数据的噪声会远大于单细胞RNA测序(scRNA-seq)的测量结果。这主要是因为它们来源于稀疏的染色质数据,并且基于一个假设——即基因体或启动子的可及性与基因表达之间存在普遍的对应关系,但这种假设并不总是成立。尽管如此,我们还是可以通过这些基因活性模式开始识别出单核细胞、B细胞、T细胞和自然杀伤细胞(NK细胞)的群体。然而,仅凭监督分析来进一步细分这些细胞类型是有难度的。

DefaultAssay(pbmc) <- 'RNA'

FeaturePlot(
  object = pbmc,
  features = c('MS4A1''CD3D''LEF1''NKG7''TREM1''LYZ'),
  pt.size = 0.1,
  max.cutoff = 'q95',
  ncol = 3
)
alt

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/635482.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTTP3

HTTP 状态码&#xff1a;描述了这次HTTP请求是否成功&#xff0c;以及失败的原因。 他们用相应的状态码来描述异常的发现。 常见的状态码 1.200 OK 访问成功。 2.404 NOT Found 客户端请求的资源在服务器这边不存在 URL&#xff1a;ip端口路径查询字符串 3.403 Forbid…

SQL刷题笔记day1

1题目 我的代码&#xff1a; select * from employees order by hire_date desc limit 2,1 标准代码&#xff1a; select * from employees where hire_date (select distinct hire_date from employees order by hire_date desc limit 2,1) 复盘&#xff1a;因为按照入…

vue3插槽solt 使用

背景增加组件的复用性&#xff0c;个人体验组件化还是react 方便。 Vue插槽solt如何传递具名插槽的数据给子组件&#xff1f; 一、solt 原理 知其然知其所以然 Vue的插槽&#xff08;slots&#xff09;是一种分发内容的机制&#xff0c;允许你在组件模板中定义可插入的内容…

ARP基本原理

相关概念 ARP报文 ARP报文分为ARP请求报文和ARP应答报文&#xff0c;报文格式如图1所示。 图1 ARP报文格式 Ethernet Address of destination&#xff08;0–31&#xff09;和Ethernet Address of destination&#xff08;32–47&#xff09;分别表示Ethernet Address of dest…

Mendix 版本 10.10 发布 – 跨平台的功能

​本月&#xff0c;我们将发布遍布整个平台的许多功能&#xff0c;以改善所有用户的生活。Studio Pro 包含多项生活质量改进&#xff0c;例如性能和 Epics/Jira 集成&#xff01;除此之外&#xff0c;还有一些不错的小部件、MxConnect和AI更新。以及App Insights, Mendix Cloud…

2024年5月19日优雅草蜻蜓K知识付费系统旗舰版v1.0.9进度更新

v1.1.0更新 v1.1.0更新 2024年5月19日优雅草蜻蜓K知识付费系统旗舰版v1.0.9进度更新&#xff0c;首页体育栏目完善新增用户发布页面 开发进度 首页体育栏目完善 新增用户发布页面 新增用户登录完善 新增学习课程页面完善-过往课程数据完成 去掉其他三方登录&#xff0c;新增…

文件的读写

文件操作&#xff1a; 1.打开文件 2.读/写-----操作文件 test.c------写&#xff08;输出&#xff09;------->文件 test.c<------读&#xff08;输入&#xff09;--------文件 文件名&#xff1a;文件路径文件名主干文件后缀 文件指针&#xff1a;FILE* pf;//文件指…

2024年5月24日 十二生肖 今日运势

小运播报&#xff1a;2024年5月24日&#xff0c;星期五&#xff0c;农历四月十七 &#xff08;甲辰年己巳月戊子日&#xff09;&#xff0c;法定工作日。 红榜生肖&#xff1a;龙、牛、猴 需要注意&#xff1a;兔、羊、马 喜神方位&#xff1a;东南方 财神方位&#xff1a;…

在windows中使用wsl下的unbuntu环境

1 unbuntu下载编译环境 编译环境安装命令&#xff1a; sudo apt install gdb sudo apt install gcc sudo apt install g 2 使用vscode正常打开项目&#xff0c;在window中打开的项目&#xff08;官方推荐将项目放在linux中的home目录&#xff09; 但在windows中也可以使用&a…

数据结构---树,二叉树的简单概念介绍、堆和堆排序

树 树的概念和结构 结构 在我们将堆之前&#xff0c;我们先来了解一下我们的树。 我们的堆是属于树里面的一种&#xff0c; 树是一种非线性结构&#xff0c;是一种一对多的一种结构&#xff0c;也就是我们的一个节点可能有多个后继节点&#xff0c;当然也可以只有一个或者没…

Mac安装配置maven

文章目录 前言一、Maven介绍二、下载三、安装四、配置环境变量五、验证六、maven配置配置本地仓库配置远程仓库 七、maven的常用命令总结 前言 Maven是一个项目管理和构建自动化工具&#xff0c;主要服务于基于Java的软件项目。是我们WEB开发过程中必不可少的工具。 一、Maven…

支持北斗卫星授时的工厂NTP电子钟,打造智能化工厂时间环境

在当今数字化、智能化的工业时代&#xff0c;时间的精准性和同步性对于工厂的高效运转至关重要。支持北斗卫星授时的工厂 NTP 电子钟的出现&#xff0c;为打造智能化工厂时间环境提供了有力支撑。 一、应用原因 工厂是一个复杂且高度协作的生产环境&#xff0c;精确一致的时间是…

linux 错误记录(三)

这里的内核源码路径&#xff1a; cd /usr/src/linux-headers-5.4.0-150-generic/ 内核版本&#xff1a; $ uname -r 5.4.0-150-generic 错误现象 ./include/uapi/asm-generic/int-ll64.h:12:10: fatal error: asm/bitsperlong.h: No such file or directory 搜索后是有的 …

深度学习之基于Tensorflow图像分类模型生成与读取

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 图像分类是计算机视觉领域的重要任务之一&#xff0c;也是深度学习技术的一个核心应用。通过构…

数据库操作(函数)

函数是一段可以直接被另外一段程序调用的程序或代码 一。字符串函数 1.concat(s1,s1....sn)&#xff1a;字符串拼接&#xff0c;将s1&#xff0c;s2&#xff0c;sn拼接为一个字符串 例如&#xff1a; select concat("hello","world"); 2.lower(str&…

Google的MLP-MIXer的复现(pytorch实现)

Google的MLP-MIXer的复现&#xff08;pytorch实现&#xff09; 该模型原论文实现用的jax框架实现&#xff0c;先贴出原论文的代码实现&#xff1a; # Copyright 2024 Google LLC. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may …

【杂七杂八】Huawei Gt runner手表系统降级

文章目录 Step1&#xff1a;下载安装修改版华为运动与健康Step2&#xff1a;在APP里进行配置Step3&#xff1a;更新固件(时间会很长) 目前在使用用鸿蒙4 111版本的手表系统&#xff0c;但是感觉睡眠检测和运动心率检测一言难尽&#xff0c;于是想到是否能回退到以前的版本&…

从需求角度介绍PasteSpider(K8S平替部署工具适合于任何开发语言)

你是否被K8S的强大而吸引&#xff0c;我相信一部分人是被那复杂的配置和各种专业知识而劝退&#xff0c;应该还有一部分人是因为K8S太吃资源而放手&#xff01; 这里介绍一款平替工具PasteSpider&#xff0c;PasteSpider是一款使用c#编写的linux容器部署工具(使用PasteSpider和…

算法学习:快速排序

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f680; 引言&#x1f4cc; 快速排序算法核心思想1. 选择基准值&#xff08;Pivot&#xff09;2. 分区操作&#xff08;Partitioning&#xff09;3. 递归排序子序列 &#x1f4cc; JavaScript 实现1. 快速排序主函数2…

Mac 安装 git

文章目录 前言一、介绍二、下载三、验证四、配置五、Git常用命令六、git提交和撤销工作流程代码提交和提交同步代码撤销和撤销同步 FAQ1.homebrew 下载解决方法一&#xff08;强烈推荐&#xff09;&#xff1a;解决方法二&#xff1a; 总结 前言 Git 是一个开源的分布式版本控…