Monocle2拟时基因富集分析

****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的全部内容了,觉得分享对您有帮助的,点个赞分享下再走呗!

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

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

相关文章

Day975.如何使用JWT结构化令牌 -OAuth 2.0

如何使用JWT结构化令牌 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于如何使用JWT结构化令牌的内容。 OAuth 2.0 规范并没有约束访问令牌内容的生成规则&#xff0c;只要符合唯一性、不连续性、不可猜性就够了。这就意味着&#xff0c;可以灵活选择令牌的形式&…

天然气井远程监控解决方案

天然气井远程监控解决方案 一、项目背景 随着天然气开发规模日益增长&#xff0c;天然气井的数量也在不断增加。且位置分散环境恶劣。传统的人工巡检方式越来越不能满足天然气井的生产需求和安全保障。天然气井井由储罐和集气站组成。 集气站通过计量站将天然气输入储罐或由集…

深入学习 Mybatis 的四大组件源码

博主介绍&#xff1a; ✌博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家✌ Java知识图谱点击链接&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; &#x1f495;&#x1f495; 感兴趣的同学可以收…

社会心理学(1) 社会心理学的定义

今天开始 我们一起学习一门课程 社会心理学 社会心理学 他是 应用心理学 或者 心理学专业的一个必修课 吴江霖教授说过 心理学应该分为两大分支 生理心理学 和 社会心理学 如果认同他的观点 那么 社会心理学可谓是相当重要了 社会心理学的定义之广可以说 有多少社会心理学教…

【MySQL数据库一】MySQL数据库初体验

MySQL数据库初体验 1.数据库基本概念1.1 数据Data1.2 表1.3 数据库1.4 数据库管理系统1.5 数据库系统 2.数据库的发展3.主流的数据库介绍3.1 SQL Server&#xff08;微软公司产品&#xff09;3.2 Oracle &#xff08;甲骨文公司产品&#xff09;3.3 DB2&#xff08;IBM公司产品…

【Spark基础编程】 第8章 Spark MLlib

系列文章目录 文章目录 系列文章目录前言【 第8章 Spark MLlib 】8.1 Spark MLlib简介8.1.1 什么是机器学习8.1.2 基于大数据的机器学习8.1.3 Spark 机器学习库MLLib 8.2 机器学习工作流8.2.1 机器学习流水线概念8.2.2 构建一个机器学习流水线 8.3 特征抽取、转化和选择8.4 分类…

【Linux】进程间的通信之共享内存

进程间的通信之共享内存 一、system V 内存共享原理二、共享内存的使用1、ftok函数2、shmget函数3、shmat函数4、shmdt函数5、shmctl函数6、代码使用 三、一些细节的补充 一、system V 内存共享原理 利用内存共享进行进程间的通信的原理其实分为以下几个步骤&#xff1a; 在物…

Mysql数据库初体验

Mysql数据库初体验 一、数据库的基本概念1.数据&#xff08;Data&#xff09;2.表3.数据库4.数据库管理系统&#xff08;DBMS)5.数据库系统 二、数据库系统发展史1.第一代数据库2.第二代数据库3.第三代数据库 三、当今主流数据库介绍四、数据库分类1.关系数据库2.关系型 SQL 数…

mybatis-plus分页查询(springboot中实现单表和多表查询)

一、mybatis-plus单表查询 使用mybatis-plus实现单表分页查询 非常方便&#xff0c;主要操作步骤如下&#xff1a; 配置分页查询拦截器进行分页查询 1.首先&#xff0c;打开mybatis-plus官网的插件&#xff08;插件主体&#xff09; 或者点击mybatis-plus插件 我是配置在s…

基于Java汽车在线租赁管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

C语言-关键字

关键字就是c语言已经定义好的名字&#xff0c;直接可以拿过来使用&#xff0c;不需要再次定义 1 数据类型相关的关键字 用于定义变量或者类型 定义变量的语法结构&#xff1a; 类型 变量名&#xff1b; 拓展&#xff1a;变量名属于标识符&#xff0c;标识符&#xff08;变量…

希尔贝壳参与构建可信人工智能数据空间,助力大模型行业应用落地

2023年5月30日&#xff0c;由中国信息通信研究院、浙江省经济和信息化厅、杭州市人民政府、中国人工智能产业发展联盟主办的杭州通用人工智能发展论坛在未来科技城圆满落幕。本次会议以“大模型应用机遇和挑战”为主题&#xff0c;众多产学研代表现场参会&#xff0c;共同探讨人…

路径规划算法:基于未来搜索优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于未来搜索优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于未来搜索优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

异常数据检测 | Python实现基于高斯概率分布的异常数据检测

文章目录 文章概述模型描述源码分享学习小结参考资料文章概述 高斯分布也称为正态分布。它可以被用来进行异常值检测,不过我们首先要假设我们的数据是正态分布的。不过这个假设不能适应于所有数据集。但如果我们做了这种假设那么它将会有一种有效的方法来发现异常值。 模型描述…

RK3288 Android8.1添加lvds以及gt9触摸屏(一)

我们公司的屏幕是分为两部分 1.lvds负责屏幕亮起&#xff0c;显示UI 2.gt9触摸屏负责触摸点击反馈操作 现在先说lvds如何配置 RK的LVDS屏调试&#xff0c;主要是配置正确LVDS的dts&#xff0c;配置正确基本都是可以点亮的 1 首先拿到LVDS屏厂商给的屏规格书&#xff0c;规格…

哪个公司的 CEO 不想拥有一个自己的数字克隆?

⚠️ FBI Warning&#xff1a;本文纯属作者自娱自乐&#xff0c;数字人的观点不代表 CEO 本人的观点&#xff0c;请大家不要上当受骗&#xff01;&#xff01; 哪个公司的 CEO 不想拥有一个自己的数字克隆&#xff1f; 想象&#x1f914;一下&#xff0c;如果 CEO 数字克隆上线…

ISP下载原理分析

STM32的启动方式&#xff0c;系统存储器启动就是通过ISP下载 ISP简介 ISP下载是指可以通过串行外设&#xff0c;直接将程序下载Flash中&#xff0c;然后自动运行程序的启动方式。 ISP的时候需要用到bootloder(自举程序)&#xff0c;bootloader存储在STM32内部的自举ROM存储器…

wordpress去除分类URL的categpory

前言 在日常使用Wordpress搭建网站时&#xff0c;发现文章或者分类页的URL地址中默认带有Category&#xff0c;URL层级过长会影响我们网站SEO的优化&#xff0c;也不利于用户体验。这里讲一下如何去除URL中categpory的方法。 操作 第一步先登录到WordPress后台&#xff0c;然…

【论说文】段落与结构

结构和段落 开头和结尾 怎么写开头呢&#xff1f;基本套路就是用三句话。即表达清楚三层意思&#xff0c;第一句话是用简短的话来概括材料&#xff0c;但是不要照抄。写论说文&#xff0c;不是就事论事&#xff0c;而是就事论理。第二句话是过渡句。第三句&#xff0c;写出来中…

IDEA整合GO并创建module工程

IDEA整合Go 安装包环境配置idea配置并创建test mode 安装包 1.去官网下载对应还的安装包 官网下载地址 我选择下载的window 版本&#xff1a; 直接按照对应的目录&#xff0c;然后点击下一步 环境配置 1.配置go环境变量 在高级环境变量PAHT中添加安装包的**/bin 目录&…