复现PNAS图表:数据整理+聚类离散热图
创始人
2024-02-06 07:24:26
0

今天复现一幅PNAS文章中的图,是个热图,重点不是这个热图,而是得到做热图的数据(数据代码已上传qq群)。原文及图片如下:

(reference:Convergent molecular, cellular, and cortical neuroimaging signatures of major depressive disorder)

构建数据

其实得到数据才是这一篇文章的重点内容,从原始的GO、KEGG分析结果csv文件中,我们挑选需要的通路,还有基因,构建做这个离散热图的文件。这里涉及到一个批量读入文件的操作,其实我们只有三个文件,这样做实属操作过度,不过这里只是一个例子,当你面对几十个文件要读入的时候,想起来这篇文章,获取有用!


setwd("D:/KS项目/公众号文章/复现PNAS")#批量读入csv文件,这只是一种方法
library(dplyr)
data <-list.files(path = "D:/KS项目/公众号文章/复现PNAS",pattern = "*.csv",full.names = T)
data <- data%>%lapply(read.csv)Enrich <- data[[1]]
gene_sel <- data[[2]]
pathway_sel <- data[[3]]
#挑选pathway,原图作者提供了20条,我可能输入有误吧,只有16,无所谓能做图即可
Enrich_sel <- Enrich[Enrich$Name %in% pathway_sel$pathway, ]

接下来就是鉴定我们选定的基因是否存在于通路基因中,通过循环构建数据。这样的数据是TRUE和FALSE的一个矩阵。由于后期无法聚类,所以将其转化为0,1矩阵。

#构建数据,就是看我们选择的基因是否存在于选定通路
enrich_pathway <- Enrich_sel$Name
Enrich_df <- gene_sel
for (i in 1:length(enrich_pathway)){a <- Enrich_sel[i,]$Hit.in.Query.Lista <- as.character(unlist(strsplit(a, split = ",")))b <- gene_sel$gene_sel %in% ab <- as.data.frame(b)colnames(b) <- enrich_pathway[i]Enrich_df <- cbind(Enrich_df, b)
}
#构建矩阵
rownames(Enrich_df) <-Enrich_df[,1]
Enrich_df <- Enrich_df[,-1]
head(Enrich_df)#浅尝一下,作个热图,做热图
Enrich_df[Enrich_df == "TRUE"] = 1
Enrich_df[Enrich_df == "FALSE"] = 0

Complexheatmap作图


library(ComplexHeatmap)
Heatmap(t(as.matrix(Enrich_df)),cluster_rows = T,cluster_columns = F,show_column_names = T,show_row_names = T,row_names_side =  'left',column_title = NULL,heatmap_legend_param = list(title=' ',labels=c('Present','Absent'),labels_gp = gpar(fontsize = 10),border='black'),col = c('#F2F2F0','#5A8FCA'),rect_gp = gpar(col = "grey", lwd = 1),row_names_gp = gpar(fontsize = 10),column_names_gp = gpar(fontsize = 10))

图片

我们看到有个缺点就是聚类和行名无法用不同颜色表示,我感觉Heatmap应该是无法直接实现了。后期还发现一个从没用过的做热图函数,还挺有意思的,它就可以实现聚类标注不同颜色,功能挺强大,缺点是参数名称太不友好,不像heatmap让人一看名字就知道是干嘛的,如下。

heatmaply作图


install.packages("heatmaply")
library(heatmaply)
heatmaply(t(as.matrix(Enrich_df)),k_row=3,colors=c('#F2F2F0','#5A8FCA'),show_dendrogram=c(TRUE,FALSE),column_text_angle=90,row_dend_left=F,grid_color ='grey',hide_colorbar =T,branches_lwd =0.5)

图片

具体参数感兴趣可自行研究。其实还没有达到完全复现,ggplot是可以很轻松实现的,但这不是我的目的,不弄了。我想很多人和我一样,并不是专业计算机出身的人,所以不要追求代码写的漂亮,只要达到目的就可以。而且,写的过程中要自己思考,代码不是冷冰冰的,那都是逻辑啊!有错误了也是需要有逻辑的去思考去寻找,而不是什么也不看!

觉得分享对你有用的,点个赞、分享一下呗!更多精彩请至我的公众号《KS科研分享与服务》!

相关内容

热门资讯

你的晚安是我的早安是什么歌曲 你的晚安是我的早安是什么歌曲苏天伦《你的早安是我的晚安》“你的晚安是我的早安”是单小源的歌曲《东京遇...
积极进取的小故事 积极进取的小故事现代的普通人,不要名人的。不能与别人重复,尽快回答   啄木鸟的故事       啄...
熊出没之探险日记3什么时候播出... 熊出没之探险日记3什么时候播出?熊出没之探险日记3,春节前播放。熊出没只是探险日记三2020年5月4...
谁知道所有有关“七”的歌?拜托... 谁知道所有有关“七”的歌?拜托了各位 谢谢就是歌曲名里有“七”这个字的!谢谢七月七迅谈日晴 看我七十...
求一本小说 女主穿越了三次 每... 求一本小说 女主穿越了三次 每次都在福临身边 后来怀孕了孩子被打掉了那个 女主叫什么雯?那个女主就是...
如果记忆不说话,流年也会开出花... 如果记忆不说话,流年也会开出花的基本信息书 名:《如果记忆不弯饥好说话,流年也会开出花》埋铅 作 者...
你好,旧时光漫画版在哪里可以看... 你好,旧时光漫画版在哪里可以看?暂时在绘心上连载
一首英文歌,男的组合唱的,MV... 一首英文歌,男的组合唱的,MV是一个婚礼的过程。求歌名。是不是darin的can'tstoplove...
为什么很多人喜欢用胶片相机? 为什么很多人喜欢用胶片相机?有一种情怀叫做“怀旧“吧,现在数码相机越来越普遍了,已经到了”全民摄影“...
女主先爱上男主,男主却不喜欢女... 女主先爱上男主,男主却不喜欢女主或者是另有所爱,最后女主男主还是在一起的穿越小说。有木有再生缘:我的...
爱情失恋伤感句子 爱情失恋伤感句子越是美好的从前,越幸福的曾经,现在只能带来锥心的疼痛,痛到撕心裂肺,肝肠寸断,终于痛...
24岁穿这个会不会显老 24岁穿这个会不会显老有点显老,这个颜色款式,颜色有点暗,没有活力,属于那种气质佳,长得高雅的女人,...
哈尔的移动城堡英语版 哈尔的移动城堡英语版可以发给我吗度盘~请查收~
秦时明月之万里长城什么时候播 秦时明月之万里长城什么时候播据说是今年暑假开播别急,官网什么的信他你就输了,12年之前底应该会出,杭...
孩子会得抽动症吗? 孩子会得抽动症吗?我天生的气性比较大,有时跟别人斗嘴时候就会手脚哆嗦,麻木,我问一下这是不是抽动症就...
亨德尔一生为音乐献出了怎样的贡... 亨德尔一生为音乐献出了怎样的贡献?亨德尔一生写了歌剧41部,清唱剧21部,以及大量的管乐器与弦乐器的...
礼仪起源和发展的经典故事? 礼仪起源和发展的经典故事?一、礼仪的起源;1、天神生礼仪;2、礼为天地人的统一体;3、礼产生于人的自...
描写桂林山水的句子有哪些? 描写桂林山水的句子有哪些?天下风光数桂林有杨万里的“梅花五岭八桂林,青罗带绕碧玉簪”;有邹应龙的“无...
避免与强敌正面对决的成语 避免与强敌正面对决的成语避免与强敌正面对决的成语避实就虚 【近义】避重就轻、避难就易、声东击西【反义...
多愁善感类的成语 多愁善感类的成语心细如发【解释】:极言小心谨慎,考虑周密。亦作“心细于发”。【出自】:吴梅《题天香石...