单细胞|Signac 进行 Motif 分析

news2024/12/25 0:05:18

单细胞|Signac 进行 Motif 分析

引言

本教程将指导您如何在Signac平台上进行DNA序列的基序(Motif)分析。会介绍两种基序分析的方法:一种是在一组差异可访问的峰值中寻找出现频率较高的基序;另一种是在不同细胞群组间进行基序活性的差异分析。

library(Signac)
library(Seurat)
library(JASPAR2020)
library(TFBSTools)
library(BSgenome.Mmusculus.UCSC.mm10)
library(patchwork)

Data

本次演示[1]所使用的数据来源于成年小鼠的大脑。您可以在的教程中找到生成这些数据对象的代码以及原始数据的链接。首先,请先安装所需的软件包,并加载预先计算好的Seurat数据对象。

mouse_brain <- readRDS("adult_mouse_brain.rds")
mouse_brain

## An object of class Seurat 
## 179011 features across 3512 samples within 2 assays 
## Active assay: peaks (157203 features, 157203 variable features)
##  2 layers present: counts, data
##  1 other assay present: RNA
##  2 dimensional reductions calculated: lsi, umap

p1 <- DimPlot(mouse_brain, label = TRUE, pt.size = 0.1) + NoLegend()
p1
alt

添加基序信息

要为基序分析添加所需的 DNA 序列基序信息,可以使用 AddMotifs() 函数来实现。

# Get a list of motif position frequency matrices from the JASPAR database
pfm <- getMatrixSet(
  x = JASPAR2020,
  opts = list(collection = "CORE", tax_group = 'vertebrates', all_versions = FALSE)
)

# add motif information
mouse_brain <- AddMotifs(
  object = mouse_brain,
  genome = BSgenome.Mmusculus.UCSC.mm10,
  pfm = pfm
)

为了简化 Signac 平台上的基序分析工作,设计了一个名为 Motif 的类来存储所有必要的数据,这包括一系列位置权重矩阵(PWMs)或位置频率矩阵(PFMs),以及一个记录基序出现次数的矩阵。AddMotifs() 函数的作用是创建一个 Motif 对象,并将其整合到的小鼠大脑数据集中,同时还会包含每个峰的碱基组成等其他信息。任何 Seurat 检测都可以通过 SetAssayData() 函数添加 Motif 对象。

寻找过表达的基序

为了发现可能对细胞类型特异的调控序列有重要意义的基序,会寻找在不同细胞类型间差异可访问的峰集中出现频率过高的 DNA 基序。

在这个例子中,对比了 Pvalb 和 Sst 两种抑制性神经元的差异可访问峰。对于像单细胞染色质可及性测序(scATAC-seq)这样的稀疏数据,通常需要在 FindMarkers() 函数中调低 min.pct 的阈值,因为默认值(0.1)是针对单细胞 RNA 测序(scRNA-seq)数据设计的。

接下来,会进行超几何检验,以评估在特定频率下观察到某个基序是否仅仅是偶然现象,这需要与一组 GC 含量匹配的背景峰集进行比较。

da_peaks <- FindMarkers(
  object = mouse_brain,
  ident.1 = 'Pvalb',
  ident.2 = 'Sst',
  only.pos = TRUE,
  test.use = 'LR',
  min.pct = 0.05,
  latent.vars = 'nCount_peaks'
)

# get top differentially accessible peaks
top.da.peak <- rownames(da_peaks[da_peaks$p_val < 0.005 & da_peaks$pct.1 > 0.2, ])

可选操作: 选定背景峰集 在寻找富集的 DNA 序列基序时,确保背景峰集的匹配性是至关重要的。通常,会选取一组与 GC 含量相匹配的峰作为背景峰集,但有时为了更精确地找到差异可访问的峰,将背景峰集限定为在特定细胞群组中可访问的峰可能会更有帮助。

AccessiblePeaks() 函数能够帮助识别出在某些细胞子集中开放的峰集。可以利用这个函数首先筛选出在 FindMarkers() 函数中用于比较的细胞群组里开放的峰集,作为潜在的背景峰集,然后通过 MatchRegionStats() 函数从这个更大的峰集中创建出一组与 GC 含量相匹配的峰集。

# find peaks open in Pvalb or Sst cells
open.peaks <- AccessiblePeaks(mouse_brain, idents = c("Pvalb""Sst"))

# match the overall GC content in the peak set
meta.feature <- GetAssayData(mouse_brain, assay = "peaks", layer = "meta.features")
peaks.matched <- MatchRegionStats(
  meta.feature = meta.feature[open.peaks, ],
  query.feature = meta.feature[top.da.peak, ],
  n = 50000
)

## Matching GC.percent distribution

Peaks.matched 然后可以通过在 FindMotifs() 中设置 background=peaks.matched 用作背景峰值。

# test enrichment
enriched.motifs <- FindMotifs(
  object = mouse_brain,
  features = top.da.peak
)

## Selecting background regions to match input sequence characteristics
## Matching GC.percent distribution
## Testing motif enrichment in 1131 regions
alt

还可以绘制基序的位置权重矩阵,因此可以可视化不同的基序序列。

MotifPlot(
  object = mouse_brain,
  motifs = head(rownames(enriched.motifs))
)
alt

Mef 家族的基序,尤其是 Mef2c,在单细胞染色质可及性测序(scATAC-seq)数据中,与 Pvalb 特异性峰的关联性更强(相关研究请参考链接;链接),并且 Mef2c 对于 Pvalb 抑制性神经元的发育至关重要(相关研究请参考链接)。的研究结果与这些发现相吻合,并且在 FindMotifs() 函数的顶部结果中,发现 Mef 家族基序显著富集。

计算基序活性

还可以通过执行 chromVAR 分析来为每个细胞计算基序活性得分。这不仅使能够按细胞查看基序活性,还为提供了一种识别不同细胞类型中活性差异基序的新方法。

ChromVAR 能够识别与细胞间染色质可及性变化相关的基序。关于该方法的详细描述,请参阅 chromVAR 的相关论文。

mouse_brain <- RunChromVAR(
  object = mouse_brain,
  genome = BSgenome.Mmusculus.UCSC.mm10
)

DefaultAssay(mouse_brain) <- 'chromvar'

# look at the activity of Mef2c
p2 <- FeaturePlot(
  object = mouse_brain,
  features = "MA0497.1",
  min.cutoff = 'q10',
  max.cutoff = 'q90',
  pt.size = 0.1
)
p1 + p2
alt

还可以对不同细胞类型直接进行差异活性得分的测试。这种方法通常会得到与之前描述的在细胞类型间对比差异可访问峰的富集测试相似的结果。

在对 chromVAR 的 z 分数进行差异性分析时,可以在 FindMarkers() 函数中设置 mean.fxn 为 rowMeans,fc.name 为 "avg_diff",这样就能够计算出不同组之间 z 分数差异的平均值。

differential.activity <- FindMarkers(
  object = mouse_brain,
  ident.1 = 'Pvalb',
  ident.2 = 'Sst',
  only.pos = TRUE,
  mean.fxn = rowMeans,
  fc.name = "avg_diff"
)

MotifPlot(
  object = mouse_brain,
  motifs = head(rownames(differential.activity)),
  assay = 'peaks'
)
alt
Reference
[1]

Source: https://stuartlab.org/signac/articles/motif_vignette

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

simpread-OpenAI推出Canvas:让ChatGPT成为更出色的项目协作者

引言 OpenAI在最新一轮融资中创下了VC融资历史上的记录&#xff0c;与此同时&#xff0c;他们也推出了一项令人瞩目的新功能——Canvas。Canvas是一个专门为项目协作设计的界面&#xff0c;旨在让ChatGPT成为更高效的项目协作者。在现有的ChatGPT应用之外&#xff0c;它打开了…

LC538 - 把二叉搜索树转换为累加树

文章目录 1 题目2 思路3 ACM模式参考 1 题目 https://leetcode.cn/problems/convert-bst-to-greater-tree/description/ 给出二叉 搜索 树的根节点&#xff0c;该树的节点值各不相同&#xff0c;请你将其转换为累加树&#xff08;Greater Sum Tree&#xff09; 累加树&#…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-08

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-07目录1. GraphRouter: A Graph-based Router for LLM Selections摘要创新点算法模型实验效果结论推荐阅读指数 2. DOTS: Learni…

2024年诺贝尔物理学奖授予AI先驱 Hopfield 和Hinton,奖金1100万瑞典克朗,他们是ChatGPT的忠实用户

2024年诺贝尔物理学奖得主&#xff1a;AI领域的杰出科学家 获奖者 2024年诺贝尔物理学奖的获奖者是两位在人工智能&#xff08;AI&#xff09;尤其是机器学习技术方面做出杰出贡献的科学家&#xff1a;约翰霍普菲尔德和杰弗里欣顿。 瑞典皇家科学院在周二宣布&#xff0c;这两…

Shamiko模块:隐藏root

开启Zygisk 在安装Shamiko模块之前&#xff0c;需要使用面具开启Zygisk&#xff0c;在面具的设置里可以开启&#xff0c;开启后重启手机Zygisk生效。 开启后的样子 开启面具随机报名 在面具的设置里&#xff0c;找到“隐藏Magisk应用”&#xff0c;点击这个选项&#xff0…

ESP8266使用AT指令完成MQTT功能

ESP8266使用AT指令完成MQTT功能 在esp8266设备中烧录安信可的AT固件之后&#xff0c;进行AT指令完成信息发布&#xff0c;并最终实现在Homeassistant中发布传感器并设置传感器状态。 一、基础指令 以下是完整的步骤和对应的AT指令&#xff1a; 1. 配置ESP8266为Station模式 …

在线培训知识库管理系统:企业的明智之选

在当今这个快速变化的时代&#xff0c;企业之间的竞争日益激烈&#xff0c;知识更新速度之快前所未有。为了保持竞争力&#xff0c;企业不仅需要不断引入新技术、新方法&#xff0c;还需要确保员工能够及时掌握这些新知&#xff0c;将其转化为生产力。在此背景下&#xff0c;在…

codetop标签双指针题目大全解析(四),双指针刷穿地心!!!!!

复习复习复习&#xff01;&#xff01; 1.长度最小的子数组2.移动零3.盛水最多的容器4.旋转链表5.最接近的三数之和6.删除有序数组中的重复项7.返回倒数第k个节点的值8.四数之和9.验证回文串 1.长度最小的子数组 考滑动窗口的 要注意是大于等于不是等于 看错题目一顿调 class …

CNAI趋势下,打造一体化AI赋能平台

在数字化转型的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;已成为推动企业创新和转型的核心力量。云原生技术以其灵活性和可扩展性&#xff0c;为AI的应用和发展提供了坚实的基础。本文将探讨云原生人工智能&#xff08;CNAI&#xff09;如何为企业带来颠覆性的变革…

cnn突破八(两层卷积核bpnet网络扩展)

cnn突破七中x【&#xff1f;】怎么求&#xff1f;我们举个例子&#xff1a; 接着cnn突破七&#xff1a; hicnn【】来自temphicnn【】2*2最大池化&#xff1a; temphicnn[0]x[i0,j0,5*5方阵]*w1cnn[0-24]&#xff0c; hicnn是5*5的&#xff0c;temphicnn是10*10的&#xff0…

YOLOv8改进 - 注意力篇 - 引入SimAM注意力机制

一、本文介绍 作为入门性篇章&#xff0c;这里介绍了SimAM注意力在YOLOv8中的使用。包含SimAM原理分析&#xff0c;SimAM的代码、SimAM的使用方法、以及添加以后的yaml文件及运行记录。 二、SimAM原理分析 SimAM官方论文地址&#xff1a;SimAM文章 SimAM官方代码地址&#…

【土地那些事儿】一文读懂“集体所有土地”

今天咱们来聊一个既熟悉又神秘的概念——集体所有土地。在中国广袤的大地上&#xff0c;除了国有土地外&#xff0c;还有一种特殊的土地所有权形式&#xff0c;它关乎亿万农民的切身利益&#xff0c;那就是集体所有土地。来&#xff0c;让我们一起揭开它的面纱吧&#xff01; …

根据指数做波段年化利率分析

根据指数做波段年化利率分析 股票投资&#xff0c;是众多投资方式中的一种。然而&#xff0c;每个人有不同的炒股方式&#xff0c;对股票不同的操作也会获得不同的收益/损失。作为“金融消费者”&#xff0c;如何做好自己在股票中的消费行为&#xff0c;是一门巨大的学问。这里…

D31【python 接口自动化学习】- python基础之输入输出与文件操作

day31 文件的打开 学习日期&#xff1a;20241008 学习目标&#xff1a;输入输出与文件操作&#xfe63;-43 常见常新&#xff1a;文件的打开 学习笔记&#xff1a; 文件的概念 使用open()函数打开文件 文件路径处理 文件打开模式 总结 文件操作包括&#xff1a;打开&#…

C++:string (用法篇)

文章目录 前言一、string 是什么&#xff1f;二、C语法补充1. auto2. 范围for 三、string类对象的常见构造1. Construct string object2. String destructor3. operator 四、string迭代器相关1. begin与end1&#xff09;begin2&#xff09;end3&#xff09;使用 2. rbegin 与 r…

第33次CCF计算机软件能力认证-第4题十滴水

题干&#xff1a; 十滴水是一个非常经典的小游戏。 小 C C C 正在玩一个一维版本的十滴水游戏。 我们通过一个例子描述游戏的基本规则。 游戏在一个 1 c 1c 1c 的网格上进行&#xff0c;格子用整数 x ( 1 ≤ x ≤ c ) x(1≤x≤c) x(1≤x≤c) 编号&#xff0c;编号从左往…

Metal之旅——数据

顶点数据 顶点数据&#xff08;Vertex Data&#xff09;是指一系列顶点的集合&#xff0c;这些顶点用于图形渲染管线的输入。每个顶点通常包含位置、颜色、纹理坐标等属性信息 mesh网络 Mesh网络是指metal中通过将不同数量形状的三角形拼在一起覆盖在要绘制图形表面的网络 顶…

007集—— 自动获取图形的外边界(外轮廓)(CAD—C#二次开发入门)

本文只适用于闭合多段线组成的图像,其他情况(圆、弧、椭圆、未封闭line)暂不支持。 效果如下图所示: 原始图: 代码运行后图: 附代码: public class 外轮廓{Database db = HostApplicationServices.WorkingDatabase;[CommandMethod("xx")]public void Demo(…

基于SSM车位租赁系统【附源码】

基于SSM车位租赁系统 效果如下&#xff1a; 注册页面 首页展示 车位租赁订单展示 车位列表页面 公告信息管理页面 公告类型管理界面 研究背景 随着经济的持续增长和城市化进程的加速&#xff0c;土地资源变得日益紧缺&#xff0c;停车难问题已成为许多城市面临的共同挑战。随…

【Redis】List类型的常用命令大全

这里的list列表相当于一个双端队列&#xff0c;也可以认为是双向链表&#xff0c;也可以认为是数组&#xff0c;后续的很多命令都使用到下标。 list的特点&#xff1a; list中的每个元素也都是String类型里面的元素可以重复列表中的元素是有序的&#xff0c;如果里面元素顺序进…