ChIP-seq 分析:GO 功能测试与 Motifs 分析(12)

news2024/12/23 12:29:48

动动发财的小手,点个赞吧!

1. 包加载

我们可以使用 rGREAT 包中提供的 GREAT Bioconductor 接口。

library(rGREAT)

2. GO和功能测试

要提交作业,我们可以使用 Myc 峰的 GRanges 并使用 submitGreatJob 函数指定基因组。

此函数返回一个 GreatJob 对象,其中包含对我们在 GREAT 服务器上的结果的引用。要查看可用结果的类别,我们可以在 GreatJob 对象上使用 availableCategories 函数。

great_Job <- submitGreatJob(macsPeaks_GR, species = "mm10", version = "3.0.0", request_interval = 1)
availableCategories(great_Job)
availableCategories
availableCategories

可以使用 getEnrichmentTables 函数检索结果表并指定我们希望查看的表。

在这里,我们检索包含 2 个独立数据库结果的“Regulatory Motifs”基因集的结果表。

great_ResultTable = getEnrichmentTables(great_Job, category = "Regulatory Motifs")
names(great_ResultTable)
great_ResultTable
great_ResultTable

现在我们可以在“MSigDB 预测的启动子基序”基因集的 TSS 中使用 Myc 峰查看我们的基因的富集情况。

msigProMotifs <- great_ResultTable[["MSigDB Predicted Promoter Motifs"]]
msigProMotifs[1:4, ]
msigProMotifs
msigProMotifs

3. Motifs 分析

3.1. Motifs

转录因子 ChIPseq 的一个常见做法是研究峰下富集的基序。可以在 R/Bioconductor 中进行从头富集基序,但这可能非常耗时。在这里,我们将使用在线提供的 MEME-ChIP 套件来识别新的基序。

MEME-ChIP 需要一个包含峰下序列的 FASTA 文件作为输入,因此我们使用 BSgenome 包提取它。

3.2. 序列提取

首先,我们需要为我们正在处理的基因组加载 BSgenome 对象,UCSC 为小鼠基因组构建的 mm10,BSgenome.Mmusculus.UCSC.mm10。

library(BSgenome)
library(BSgenome.Mmusculus.UCSC.mm10)
BSgenome.Mmusculus.UCSC.mm10
BSgenome.Mmusculus.UCSC.mm10
BSgenome.Mmusculus.UCSC.mm10

我们现在有一个 GRanges,以山顶为中心,每个山峰的最高信号点。

macsSummits_GR
macsSummits_GR
macsSummits_GR

一旦我们使峰重新居中,我们就可以将 getSeq 函数与调整大小的常见峰的 GRanges 和 mm10 的 BSgenome 对象一起使用。

getSeq 函数返回包含峰下序列的 DNAStringSet 对象。

peaksSequences <- getSeq(BSgenome.Mmusculus.UCSC.mm10, macsSummits_GR)
names(peaksSequences) <- paste0(seqnames(macsSummits_GR), ":", start(macsSummits_GR),
    "-", end(macsSummits_GR))

peaksSequences[1:2, ]
peaksSequences
peaksSequences

3.3. 写入 FASTA 文件

writeXStringSet 函数允许用户将 DNA/RNA/AA(氨基酸)StringSet 对象写入文件。默认情况下,writeXStringSet 函数以 FASTA 格式写入序列信息(根据 MEME-ChIP 的要求)。

writeXStringSet(peaksSequences, file = "mycMel_rep1.fa")

3.4. MEME-ChIP

现在文件“mycMel_rep1.fa”包含适合 MEME-ChIP 中 Motif 分析的峰几何中心周围的序列。

在您自己的工作中,您通常会在本地安装了 MEME 的笔记本电脑上运行它,但今天我们会将生成的 FASTA 文件上传到他们的门户网站[1]。按照此处[2]的说明在本地安装 MEME。可以在此处[3]找到 MEME-ChIP 的结果文件

3.5. 结果解析

我们可以从 FIMO 输出中检索 MEME-ChIP 中识别的 Myc 基序的位置。

FIMO 将 Myc 基序位置报告为 GFF3 文件,我们应该能够在 IGV 中对其进行可视化。遗憾的是,这个 GFF 文件的命名约定只导致报告了一小部分图案。

alt

3.6. FIMO to R

幸运的是,我们可以将 motif 的 GFF 文件解析为 R 并使用 rtracklayer 包中的导入函数解决这个问题。

library(rtracklayer)
motifGFF <- import("~/Downloads/fimo.gff")

3.7. 获取有效 GFF3

我们可以给序列一些更合理的名称并将 GFF 导出到文件以在 IGV 中可视化。

motifGFF$Name <- paste0(seqnames(motifGFF), ":", start(motifGFF), "-", end(motifGFF))
motifGFF$ID <- paste0(seqnames(motifGFF), ":", start(motifGFF), "-", end(motifGFF))
export.gff3(motifGFF, con = "~/Downloads/fimoUpdated.gff")
fimoUpdated
fimoUpdated

3.8. 扫描已知 motifs

我们之前看到我们可以使用一些 Biostrings 功能 matchPattern 来扫描序列。通常使用 ChIPseq,我们可能知道我们正在寻找的基序,或者我们可以使用来自数据库(例如 JASPAR)的一组已知基序。

library(JASPAR2020)
JASPAR2020
JASPAR2020
JASPAR2020

3.9. 使用 TFBStools 从 JASPAR 获取 motifs

我们可以使用 TFBSTools 包及其 getMatrixByName 函数访问我们感兴趣的motif的模型。

library(TFBSTools)
pfm <- getMatrixByName(JASPAR2020, name = "MYC")
pfm
pfm
pfm

3.10. 使用 motifmathr 进行 motifs 扫描

有了这个 PWM,我们可以使用 motifmathr 包来扫描我们的山峰以寻找 Myc motif并返回motif的位置。 我们需要提供我们的 PWM、要在内部扫描的 GRanges 和要从中提取序列的 BSGenome 对象。我们还将输出参数设置为这个实例的位置。

library(motifmatchr)
MycMotifs <- matchMotifs(pfm, macsSummits_GR, BSgenome.Mmusculus.UCSC.mm10, out = "positions")
MycMotifs
MycMotifs
MycMotifs

3.11. 导出匹配的 motifs

我们可以导出峰内的 Myc 基序位置,以便稍后在 IGV 中使用或用于元图可视化。

export.bed(MycMotifs[[1]], con = "MycMotifs.bed")

参考资料

[1]

MEME: http://meme-suite.org/tools/meme-chip

[2]

Installation: http://meme-suite.org/doc/download.html

[3]

结果: http://rockefelleruniversity.github.io/myc_Meme_Example/meme-chip.html

本文由 mdnice 多平台发布

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

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

相关文章

王道计算机组成原理课代表 - 考研计算机 第三章 存储系统 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记&#xff0c;以及一整年里对 计算机组成 知识点的理解的总结。希望对新一届的计算机考研人提供帮助&#xff01;&#xff01;&#xff01; 关于对 存储系统 章节知识点总结的十分全面&#xff0c;涵括了《计算机组成原理》课程里…

云时代数据科学平台--Sengee

随着数字经济的步步落地&#xff0c;我们将迎来“数据风暴”的冲击&#xff0c;传统的数据处理方式已经显得跟不上脚步&#xff0c;传统的开发方式已经不足矣应对“数据风暴”带来的需求革命&#xff0c;因此&#xff0c;需要考虑开放、多元、可变、集成、易用等数据处理的属性…

【C 语言 笔记】解决控制台闪烁/鬼畜/光标乱跑问题

问题 如果你要在控制台里“画”一些频繁更新的东西&#xff0c;比如做个小游戏&#xff0c;常见的思路是&#xff1a; while(1) {//先清空system("clear");//再画printf("....."); }然后控制台的就闪个不停&#xff0c;很瞎眼。 解决 0 降低刷新频率&a…

分布式相关知识(分布式锁,事务实现方案,CAP)

一 CAP理论 1.1 CAP理论 CAP原则又称CAP定理&#xff0c;指的是在一个分布式系统中&#xff0c;Consistency&#xff08;一致性&#xff09;、 Availability&#xff08;可用性&#xff09;、Partition tolerance&#xff08;分区容错性&#xff09;这3个基本需求&#xff0…

【3维视觉】网格细分Mesh Subdivision算法介绍(Loop, Catmull-Clark, Doo-Sabin)

引言 介绍了Loop, Catmull-Clark, Doo-Sabin细分。 算法介绍 1. Loop细分 Loop细分是Charles Loop在1987年在硕士论文中提出的一种对三角网格的细分算法。 Loop细分是递归定义的&#xff0c;每一个三角形一分为四&#xff0c;对于新生成的点和旧点以不同的规则更新。 点的…

医院信息管理云平台源码 云HIS系统源码 4级电子病历系统

基层医院云HIS系统源码 高端商业his源码 有演示&#xff0c;可直接项目运营。 一款满足基层医院各类业务需要的云HIS系统。该系统能帮助基层医院完成日常各类业务&#xff0c;提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生站和护士站等一系列常规…

leetcode 55. 跳跃游戏

给定一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1&#xff1a; 输入&#xff1a;nums [2,3,1,1,4] 输出&#xff1a;true 解释&#xff1a;可以先跳 1 …

刷题记录(2023.3.6 - 2023.3.11)

我很喜欢这周的感觉&#xff0c;前两道题对着 wp 简略复现了一下&#xff0c;由于以前都是自己学习&#xff0c;对一些稍微多、稍微难的题都会马上避开&#xff0c;笨小孩逃避太久了&#xff0c;有些事逃不掉&#xff0c;总得面对&#xff0c;开始往往很难&#xff0c;多花点时…

大数据下的协调者Zookeeper详解

Zookeeper框架 为什么要学习Zookeeper框架 1、Zookeeper是作为大数据生态圈框架中非常重要的一员 2、Zookeeper单独使用没有意义&#xff0c;主要是用来管理其他框架&#xff0c;被称为动物管理员 3、后期Hadoop的高可用框架、Kafka都需要依赖ZookeeperZookeeper的概述 1、Z…

C++回顾(二十四)—— set / multiset容器

24.1 set概述 set是一个集合容器&#xff0c;其中所包含的元素是唯一的&#xff0c;集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入&#xff0c;所以不能指定插入位置。set采用红黑树变体的数据结构实现&#xff0c;红黑树属于平衡二叉树。在插入操作和删除操作…

Spring——AOP核心概念和AOP入门案例

AOP:面向切面编程&#xff0c;一种编程范式&#xff0c;指导开发者如何组织程序结构 作用:在不惊动原始设计的基础上进行功能增强 Spring理念:无侵入式编程 比如测试一个方法的万次执行时间&#xff0c;原本没有Aop需要这样写 public void save() {Long stSystem.currentTim…

Java开发 - 消息队列之Kafka初体验

目录 前言 Kafka 什么是Kafka Kafka软件结构 Kafka的特点 怎么启动Kafka 下载Kafka 配置Kafka Zookeeper 启动Kafka Kafka案例 添加依赖 添加配置 配置启动类 创建生产者 创建消费者 测试 结语 前言 前几日总结了消息队列的一些知识&#xff0c;相信看完的同…

【博客631】监控网卡与进程网络IO使用情况

监控进程的网络IO使用情况 1、vnstat 由于 vnstat 依赖于内核提供的信息&#xff0c;因此执行以下命令来验证内核是否提供了 vnStat 所期望的所有信息&#xff1a; # vnstat --testkernel This test will take about 60 seconds. Everything is ok.不带任何参数的 vnstat 将…

设计模式(十九)----行为型模式之命令模式

1、概述 日常生活中&#xff0c;我们出去吃饭都会遇到下面的场景。 定义&#xff1a; 将一个请求封装为一个对象&#xff0c;使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通&#xff0c;这样方便将命令对象进行存储、传递、调用、增加与管理。命…

UE官方教程笔记03-功能、术语、操作简介

对官方教程视频[官方培训]03-UE功能、术语、操作简介 | 徐良安 Epic的笔记这一部分基本都是走马观花的简单介绍功能世界创建建模Mesh editingtool是一个全新的建模工具&#xff0c;具备大多数的主流建模软件的核心功能HOUDINI ENGINE FOR UNREALHoudini编辑器&#xff0c;可以用…

springboot2集成knife4j

springboot2集成knife4j springboot2集成knife4j 环境说明集成knife4j 第一步&#xff1a;引入依赖第二步&#xff1a;编写配置类第三步&#xff1a;测试一下 第一小步&#xff1a;编写controller第二小步&#xff1a;启动项目&#xff0c;访问api文档 相关资料 环境说明 …

C++回顾(二十一)—— list容器

21.1 list概述 list是一个双向链表容器&#xff0c;可高效地进行插入删除元素。list不可以随机存取元素&#xff0c;所以不支持at.(pos)函数与[]操作符。It(ok) it5(err)需要添加头文件&#xff1a;#include <list> 21.2 list构造 &#xff08;1&#xff09;默认构造…

摘花生(简单DP)

Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图)&#xff0c;从西北角进去&#xff0c;东南角出来。地里每个道路的交叉点上都有种着一株花生苗&#xff0c;上面有若干颗花生&#xff0c;经过一株花生苗就能摘走该它上面所有的花生。Hel…

手写代码理解vue响应式原理

vue2响应式应用了Object.defineProperty&#xff0c;vue3中的响应式则是运用proxy。 目录标题1、defineProperty2、代码理解defineProperty3、手写vue2响应式原理4、vue2监听数组响应式5、Proxy理解6、总结1、defineProperty Object.defineProperty(obj, prop, descriptor) ob…

【8.索引篇】

索引分类 索引和数据就是位于存储引擎中&#xff1a; 按「数据结构」分类&#xff1a;Btree索引、Hash索引、Full-text索引。按「物理存储」分类&#xff1a;聚簇索引&#xff08;主键索引&#xff09;、二级索引&#xff08;辅助索引&#xff09;。按「字段特性」分类&#…