复现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科研分享与服务》!

相关内容

热门资讯

铜陵有色:预计铜需求具有长期增... 格隆汇5月13日|铜陵有色昨日在业绩说明会上表示,公司预计行业未来发展趋势如下:(一)预计铜需求具有...
携手打造人类命运共同体的“中拉...   在中拉论坛正式启动10周年之际,中央广播电视总台CGTN携手秘鲁圣马丁·德波雷斯大学、拉美中国政...
凯发电气等成立新公司 含物联网... 人民财讯5月13日电,企查查APP显示,近日,天津凯育智航科技有限公司成立,法定代表人为王传启,注册...
中国选手郑钦文晋级WTA100... 中新社北京5月13日电 在当地时间12日举行的女子网球选手协会(WTA)1000罗马站单打第四轮比拼...
小米SU7 Ultra车主集体... 转自:今晚报       近日,小米SU7 Ultra车主集体要求退车一事在社交平台引发广泛热议。部...
5月13日兰格唐山钢市午间播报 5月13日兰格唐山钢市午间播报   5月13日唐山迁安普...
竞逐低空!这款“四川造”通用飞... 四川在线记者 高杲乘坐小飞机,从另一种视角领略壮美山河,是未来旅游的新玩法。5月13日,四川省低空经...
速看!广东2025高考安排出炉... 转自:江门发布近日省教育考试院发布了《关于做好广东省2025年普通高校招生工作的通知》对今年高校招生...
中国资产价格上扬 市场信心大提... 转自:经济日报5月12日,中国资产价格迎来强劲上扬,A股与港股市场均呈现火热景象,投资者情绪高涨,市...
昌飞举办“中国梦 航空梦”航空... 本报讯 4月30日,中国航空工业集团昌飞走进景德镇市湘湖中心小学举办“中国梦 航空梦”航空科普进校园...
命运与共好伙伴 | 汉语教育之... 来源:人民网-国际频道 柬埔寨王家研究院孔子学院成立于2009年12月22日,是柬埔寨最早成立的孔子...
“云冈六美人”闭门谢客 云... 中新社山西大同5月13日电 (记者 胡健)记者13日从云冈研究院获悉,从即日起至今年9月30日,云冈...
300ETF(159300)涨... 5月13日,截止午间收盘,300ETF(159300)涨0.00%,报3.993元,成交额4424....
悬赏奖励升级!出逃40天!“嫌... 来源:新闻晨报 5月11日,扬州市茱萸湾风景区管理处发布“悬赏公告”,称园内的一只卡皮巴拉豆包出逃4...
印度拟采取反制举措 对美国部分...   印度向世界贸易组织(WTO)表示,印度拟对美国生产并出口至印度的部分产品征收关税,以对抗美国对印...
恒大,再起波澜!申请撤销子公司... 清盘中的中国恒大动作不断。5月12日晚间,中国恒大发布有关其附属公司CEG Holdings(简称“...
科创机械ETF(588850)... 5月13日,截止午间收盘,科创机械ETF(588850)跌1.03%,报1.055元,成交额327....
中航发布翼龙-2系列长航时无人... 四川在线记者 李欣忆5月13日,四川省低空经济产业链协同发展暨产品发布会现场,中航无人机公司发布翼龙...
软件50ETF(159590)... 5月13日,截止午间收盘,软件50ETF(159590)跌0.76%,报1.049元,成交额1332...
午评:指数早盘高开低走 军工板... .ct_hqimg {margin: 10px 0;} .hqimg_wrapper {text-a...