Monocle2拟时基因富集分析

news2024/11/15 19:51:50

****Monocle2全部往期精彩系列
1、群成员专享:Monocle2更新(就是重新梳理一下)
2、一键跑完monocle2?
3、ggplot2个性可视化monocle2结果
4、ggplot修饰monocle2拟时热图:一众问题全部解决
5、Monocle2终极修改版
6、单细胞拟时分析:基因及通路随拟时表达变化趋势
Monocle2拟时分析及可视化我们整了好多呀,算是整明白了吧。上一期我们做了Monocle3的拟时基因富集分析(Monocle3个性化分析作图:拟时热图/拟时基因GO分析/拟时基因趋势分析)。Monocle2的还没有做过,这里我们演示下,其实方法是一样的。monocle2拟时热图修饰我们已经做过了。这里的演示我们不再使用修饰,用monocle2本来的拟时热图绘制函数进行,然后通过聚类不同的module提取基因进行富集分析。本贴涉及到几个修改函数和自写函数的加载,数据代码已上传QQ群! 接下来我们就具体看看做法,首先还是做热图。这里我们用R包里面的plot_pseudotime_heatmap函数即可。


#以下是monocle2做热图的代码,很常规的操作
library(monocle)
library(Seurat)
library(dplyr)
library(viridis)
library(pheatmap)
library(grid)
#======================================================================================

setwd("D:/KS项目/公众号文章/monocle2拟时热图富集分析")
mouse_monocle <- readRDS("D:/KS项目/公众号文章/monocle2拟时结果个性化作图/mouse_monocle.rds")
peu_gene <- differentialGeneTest(mouse_monocle,fullModelFormulaStr = "~sm.ns(Pseudotime)",cores = 2)
write.csv(peu_gene,file='peu_gene.csv')#保存好文件,这个分析过程挺费时间

peu_gene <- read.csv('peu_gene.csv', header = T, row.names = 1)
peu_gene <- peu_gene[which(peu_gene$qval<0.01 & peu_gene$num_cells_expressed>100),]#筛选显著是的
peu_gene %>% arrange(qval)  -> peu_gene#按照qval排个序
peu_gene <- peu_gene[1:100,] #这里我们取前100个基因演示

#热图的做法就很多了,可以用它默认的函数,也可以用我们讲过的ggplot或者pheatmap自己修饰
p <-plot_pseudotime_heatmap(mouse_monocle[peu_gene$gene_short_name,],
                            num_clusters = 4,
                            cores = 2,
                            show_rownames = T,return_heatmap =T,
                            hmcols = viridis(256),
                            use_gene_short_name = T)

p

class(p)
# [1] "pheatmap"

image.png

plot_pseudotime_heatmap函数好像并不能选择性展示感兴趣的基因,然而提取数据用pheatmap或者ggplot作图我们也做过了,这里再去修饰一遍展示没有必要,我就想用monocle2包热图函数完成。class一下plot_pseudotime_heatmap函数的产生的图,发现是pheatmap对象,查看作者的原函数也发现这个热图作者是基于pheatmap做的,那就好办了,如果连续阅读我们帖子的小伙伴可能会想到,我们之前写过一篇帖子:学习nature medicine函数:热图标记任意基因,这里面我们引用了一个文章提供的函数,可以很方便的为pheatmap标记基因。。然而呢,由于上图是分裂的,所以这个函数效果不好,那么办法要么就是修改这个添加基因的函数,另一个方法就是修改plot_pseudotime_heatmap函数。权衡之下,偷懒的我选择了修改plot_pseudotime_heatmap函数,因为它好修改!


#改造热图函数,展示需要的基因
source('./new_heatmap.R')
p1 <-plot_pseudotime_heatmap(mouse_monocle[peu_gene$gene_short_name,],
                            num_clusters = 4,
                            cores = 2,
                            show_rownames = T,return_heatmap =T,
                            hmcols = viridis(256),
                            use_gene_short_name = T)


p1

image.png

这样就既有基因分组注释,但是热图行不会分裂开。下面使用add.flag.R函数标记感兴趣基因。

#只展示感兴趣的基因
genes <- c("Cxcr2","Celf2","Gsr","Sorl1","Ftl1","Ptprc",
           "Cst3","Il1b","Fgl2","Sirpb1c","Maml3","Peak1",
           "Orm1","H2afz","Cpa6","Ica1","Fmnl2","Cpne3",
           "Anxa3","Tbc1d8","Camp","Mmp8","S100a8","S100a9")

source('./add.flag.R')
add.flag(p,kept.labels = genes,repel.degree = 0.2)

image.png

接下来就是提取module基因进行富集分析了,我们直接包装为一个函数Monocle2_gene_enrichment.R,直接运行即可,当然有个限制我们只写了GO富集分析,感兴趣可以自己添加KEGG或者其他的分析。


#提取module基因,进行富集分析

library(clusterProfiler)
library(ggplot2)
source('./Monocle2_gene_enrichment.R')
GOannlysis <- Monocle2_gene_enrichment(p,knum=4,species='org.Mm.eg.db',
                                       pvalueCutoff=0.05,
                                       qvalueCutoff=0.05)

table(GOannlysis$Cluster)#module1基因最少,没有显著性富集
# 1  2  3  4 
# 0 76 43 77 
write.csv(GOannlysis, file = 'GOannlysis.csv')

image.png

最后,将热图在AI中修饰,旁边展示富集通路,这个图就完整了。好了,这就是monocle2的全部内容了,觉得分享对您有帮助的,点个赞分享下再走呗!

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

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

相关文章

IDEA 开发必备神级插件

“工欲善其事, 必先利其器” 分享几款 自用好用到起飞的 IDEA插件 插件下载方式 file->settings->plugins->macketplace—>然后搜索 1. Alibaba Java Coding Guidelines 阿里巴巴编码规范检查插件&#xff0c;让你的代码更规范 2. Tabnine 代码自动补全工具…

redis源码之:跳跃表skiplist

老规矩&#xff0c;先来看看大致结构&#xff1a; debug所用demo如下&#xff1a; #include "src/server.h"void testSDS(); void testAlign(); void testZipList(); void testSkipList(); void testQuickList();int main(int argc, char **argv) { // testAli…

flutter DevTools(1)

在VSCODE中调试 第一步&#xff1a; ① 切换到 vscode 的调试和运行模式, ② 配置好 .vscode 中的启动项 launch.json ③ 共有四种模式 [1] debug : 模式编译产物适合纯 Flutter 侧代码的开发、调试 [2] profile : 的用来做性能分析和测试 [3] release : 的用于打包发布 [4]…

DBeaver连接(DM)达梦数据库

DBeaver连接(DM)达梦数据库 文章目录 1.下载驱动2.DBeaver新建驱动3.连接DM数据库4.JDBC 接口 DBeaver是一款功能强大的数据库管理工具&#xff0c;可以连接多种类型的数据库。下面是连接达梦数据库的步骤&#xff1a; 打开DBeaver并点击“连接”按钮。在弹出的“连接”对话框中…

几个直接在TigerISP上查看全志芯片接Sensor分辨率的方法

TigerISP是全志提供的量产工具&#xff0c;在连接TigerISP时需要填写Sensor名称、Sensor分辨率、Sensor帧率及选择ISP通道、Vich、Wdr模式等… 准备工作&#xff1a;打开debugfs 操作&#xff1a;adb shell进入系统后输入以下两个命令&#xff1a; mount -t debugfs mone /s…

如何成功实施一个数据治理项目?实施步骤有哪些?

企业数字化转型以数据为中心&#xff0c;通过数据驱动业务发展、管理协同和运营。因此&#xff0c;数字化转型关键在于数据&#xff0c;数据治理则需先行。从而更好激发数据生产要素潜能&#xff0c;实现业务数据化、数据价值化&#xff0c;助力企业数字化转型。 那么何为数据…

零代码产品新秀敲敲云与明星产品简道云、轻流对比

零代码产品正在成为当今技术领域的热门话题。随着人们对更快、更简单的开发流程的需求不断增加&#xff0c;零代码产品正在作为一种解决方案得到越来越多的关注。 零代码技术源于低代码技术&#xff0c;与低代码不同的是&#xff0c;零代码不需要任何代码编写。这意味着即使是普…

让人头疼的时序数据预测,这个方案居然三步就搞定了?

数字化时代&#xff0c;时序数据预测已经从一种理论研究转变为各行业实际运营中的关键工具&#xff0c;这种预测可以覆盖广泛的业务领域&#xff0c;比如&#xff1a; 利用历史销售数据进行未来销售趋势的预测 根据既往的电力消耗数据预估未来电力需求 基于过去的股市行情预测未…

释放 OpenAI 和 ESP-BOX 的力量:ChatGPT 与乐鑫 SoC 融合指南

当前&#xff0c;我们正见证着一场技术革命&#xff0c;而 OpenAI 正处于这场变革的最前沿。其中最激动人心的创新之一就是ChatGPT&#xff0c;它运用自然语言处理的力量&#xff0c;打造出更加引人入胜、直观的用户体验。而将 OpenAI 的 API 与物联网设备相结合&#xff0c;更…

Spring Cloud Kubernetes配置使用详情

目录 一、 为什么你需要 Spring Cloud Kubernetes&#xff1f; 二、 Starter 三、 用于 Kubernetes 的 DiscoveryClient 四、Kubernetes 原生服务发现&#xff08;service discovery&#xff09; 五、Kubernetes PropertySource 的实现 1、使用 ConfigMap PropertySource …

Unreal Engine 5.1 AI行为树基础入门

ai行为树理解起来其实是npc根据自身一些情况进行一些逻辑执行&#xff0c;而这些逻辑是我们使用ai行为树去实现的。 ai行为树需要一个寻路网格体边界体积&#xff0c;在ue引擎中&#xff0c;体积Actor分为多种&#xff0c;寻路网格体边界体积只是其中的一种。 关于其它的体积&a…

leetcode:448. 找到所有数组中消失的数字(python3解法)

难度&#xff1a;简单 给你一个含 n 个整数的数组 nums &#xff0c;其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字&#xff0c;并以数组的形式返回结果。 示例 1&#xff1a; 输入&#xff1a;nums [4,3,2,7,8,2,3,1] 输出&…

初识网络之https的加密与解密

目录 一、https协议的概念 二、加密的概念 三、为什么需要加密 四、常见的加密方式 1. 对称加密 2. 非对称加密 五、数据摘要&#xff08;数据指纹&#xff09; 六、数据签名 七、加密方案 1. 方案一&#xff1a;只使用对称加密 2. 方案二&#xff1a;只使用非对称加…

院士大咖齐聚蓉城,论道“疑难眼眶病学术论坛”

“全国疑难眼眶病诊疗带教基地”成立&#xff0c;力促“病有所医 ” 大咖云集&#xff0c;这是一场眼科界领军人汇聚一堂&#xff0c;聚焦疑难眼眶病突破性学术成果及前沿技术的高规格论坛; 规模空前&#xff0c;这是一场围绕眼眶病诊疗技术议题深入探讨交流&#xff0c;为我国…

行为型设计模式08-职责链模式

&#x1f9d1;‍&#x1f4bb;作者&#xff1a;猫十二懿 ❤️‍&#x1f525;账号&#xff1a;CSDN 、掘金 、个人博客 、Github &#x1f389;公众号&#xff1a;猫十二懿 职责链模式 1、职责链模式介绍 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;…

seatunnel入门案例,集群模式

目录 安装部署 解压 环境变量 安装plugin 添加资源jar包 SEATUNNEL 配置文件 env&#xff1a;环境设置 source&#xff1a;数据源设置 sink&#xff1a;数据去向设置 transform: 数据转换设置 运行方式 seatunnel 引擎(zeta) 本地模式 集群模式 安装部署 解压 tar…

Centos7在Nginx中配置SSL证书

我的环境 阿里云轻量应用服务器&#xff08;Linux, Centos7.9 x64&#xff09; 一、申请免费SSL证书 一年可以创建20个 下载证书&#xff08;我是Nginx服务器&#xff09; 下载到本地后&#xff0c;打开有两个文件&#xff1a; 二、将SSL证书文件上传至服务器 通过WinScp拖…

图像sensor的特性和驱动解析

1、更换OV9712并且做配置更改和测试 1.1、更改配置脚本 修改Hi3518E_SDK_V1.0.3.0\package\mpp\sample\Makefile.param 1.2、测试运行 运行官方SDK sample的测试版本&#xff08;打包到本地&#xff09; 运行ORTP传输的测试版本&#xff08;RTP实时预览&#xff09; 1.3、更…

如何高效合理规划每天的工作?

如何高效合理规划每天的工作&#xff1f; 〇、基本原则 梳理工作&#xff0c;明确目标。&#xff08;SMART法则&#xff09;轻重缓急&#xff0c;排优先级。&#xff08;四象限管理法则&#xff09;要事第一&#xff0c;尽管去做。&#xff08;GTD 理论&#xff09;限时deadl…

新买的电脑怎么用U盘重装系统?新买的电脑用U盘重装系统教程

新买的电脑怎么用U盘重装系统&#xff1f;用户新买了电脑&#xff0c;想知道怎么用U盘来重装新买的电脑&#xff0c;用U盘来重装电脑其实非常简单&#xff0c;用户需要准备一个U盘&#xff0c;然后完成U盘启动盘的安装&#xff0c;接着按照以下分享的新买的电脑用U盘重装系统教…