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"
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
这样就既有基因分组注释,但是热图行不会分裂开。下面使用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)
接下来就是提取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')
最后,将热图在AI中修饰,旁边展示富集通路,这个图就完整了。好了,这就是monocle2的全部内容了,觉得分享对您有帮助的,点个赞分享下再走呗!
Excel数据透视表技巧:如何多角度全面分析销售状况
编按:数据透视表是一种简单、形象、便捷、高效的数据分析工具。使用该分析工具可以更加生动、全面地对数据清单进行重新组织,并及时给出不同的统计结果,便于用户多角度分析数据。今天给大家分享一组数据透视表在销售分析中的应用案例。应用1:汇总各地区各品种的销售额为了制定下个月各地区的销售计划,需要统计本月各地区的销售额作为依据。就可以使用数据透视表快速统计出各地区各品种的销售额。站长网2023-07-27 12:35:5500058个各类资源素材下载网站分享
编辑/排版:卒見之前收录整理软件的时候,发现有很多素材网站,可能有推荐过,不过本次给大家整理的内容比较综合。包含图片素材、视频素材以及其他音频或是艺术类素材。我们来看一下吧!01图片素材1Unsplash一个高清免费图片素材网站,免版权可商用。网站中的图片素材分类细致,涉及多个题材,包含壁纸、自然风景、艺术、商业等。官网:unsplash.com2Pixabay站长网2023-07-28 15:40:550000Word文档排版教程:批量给正文内容设置标题样式
编按:本文主要跟大家分享了批量给Word正文内容设置标题样式的技巧。简单、实用,非常适合职场人。今天和大家分享的是群里一位小伙伴遇到的Word排版实战问题。征得同学的意见,剔除了保密数据,截取了部分数据作为今天案例,现在需要将选中的内容批量转换为标题1样式。一、解决方法站长网2023-07-30 08:45:520002手机如何去掉照片中多余的人物,教你两种消除方法,简单实用
站长网2023-07-30 12:46:490000少有人知道的“极品站”,推荐一波
hello大家好,这里是日常爆肝更新的老Y工作室。谢谢周一大早打开公众号的朋友们,今天依然给大家带来一些好玩有趣的网站,记得点赞一波支持啊,有条件的朋友也可以暂停一下~01、AI文字检测网址:/矛和盾的问题,你有AI,我有检测工具站长网2023-07-29 09:15:340000