当前位置: 首页 > news >正文

R语言绘制热图

1.heatmap绘制

#方法一:pheatmap绘制=================================================
setwd("D:/graduatestudy/record")  #设置工作路径
library(pheatmap) 
input <- read.csv("./gene.csv",row.names = 1)  
annotation <- read.csv("./gene_annotation.csv", row.names = 1)
#row_anno = data.frame(type=c("TF","Enzyme","Enzyme","TF"), class=c("clu1","clu1","clu2","clu2"), row.names=rownames(data))
#col_anno = data.frame(grp=c("A","A","A","B","B"), size=1:5, row.names=colnames(data))
pdf(file="./gene_heatmap.pdf",width = 20,height = 10)
pheatmap(result,color = colorRampPalette(c(rep("skyblue",3.5),"#FEFCFB",rep("#ED5467",3.5)))(50),border="skyblue",#边框颜色#main = "Heatmap",#指定图表的标题show_rownames = T,#是否展示行名show_colnames = F,#是否展示列名cexCol = 1,#指定列标签的缩放比例。scale = 'row',#指定是否应按行方向或列方向居中和缩放,或不居中和缩放。对应的值为row, column和none。cluster_col=F,#分别指定是否按列和行聚类。cluster_row=F,angle_col = "90",#指定列标签的角度。legend = T,#指定是否显示图例legend_breaks=c( -2, 0, 2),#指定图例中显示的数据范围为-3到3。fontsize_row =15,#分别指定行标签和列标签的字体大小。fontsize = 20,  #设置全局字体大小annotation_col=annotation, #列注释#annotation_row=row_anno, #行注释fontsize_col = 10)
dev.off()

input文件格式:横坐标为基因symbol,纵坐标为samples

annotation文件格式:横坐标为samples,纵坐标为注释信息分组

参考

https://zhuanlan.zhihu.com/p/437622149

https://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ==&mid=2247483889&idx=1&sn=9c9970cb120ac1e976713aca558ac9bf&scene=21&poc_token=HD6a7Gijqg46nPs2R_2kcfAwd0TS0C6GdPxpCW16

https://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ==&mid=2247483921&idx=1&sn=8326bc566e945386cad27250a33a1bf6&scene=21&poc_token=HB6a7Gij8p4hWEH8lGogkX1EBg-PjkJErA_htd9S

2. ggplot绘制

#方法二:ggplot绘制======================================================
data2 <- read.csv(text=txt,sep=";", header=T, row.names=1, quote="", check.names = F)
library(reshape2)
library(ggplot2)
data$ID <- rownames(data)# 转换前,先增加一列ID列,保存行名字
# melt:把正常矩阵转换为长表格模式的函数。工作原理是把全部的非id列的数值列转为1列,命名为value;所有字符列转为variable列。
# id.vars 列用于指定哪些列为id列;这些列不会被merge,会保留为完整一列。
data_m <- melt(data, id.vars=c("ID"))
head(data_m)
#----------------------------
p <- ggplot(data_m, aes(x=variable,y=ID)) + # aes: aesthetic的缩写,一般指定整体的X轴、Y轴、颜色、形状、大小等。 xlab("samples") + theme_bw() + theme(panel.grid.major = element_blank()) + theme(legend.key=element_blank())  + theme(axis.text.x=element_text(angle=45,hjust=1, vjust=1)) + #调整横纵轴label的选择、图例的位置等。hjust是水平的对齐方式,0为左,1为右,0.5居中,0-1之间可以取任意值。vjust是垂直对齐方式,0底对齐,1为顶对齐,0.5居中,0-1之间可以取任意值。theme(legend.position="top") +   # postion可以接受的值有 top, bottom, left, right, 和一个坐标 c(0.05,0.8) (左上角,坐标是相对于图的左下角计算的)geom_tile(aes(fill=value)) + #使用fill=value, 用数值做填充色。fill是填充,color只针对边缘scale_fill_gradient(low = "white", high = "red")ggsave(p, filename="heatmap.pdf", width=10,height=15, units=c("cm"),colormodel="srgb") # colormode支持srgb (屏幕)和cmyk######为了更好的可视化效果,需要对数据做些预处理,主要有 对数转换,Z-score转换,抹去异常值,非线性颜色等方式。
#(1)log转换
# +1是为了防止对0取对数;是加1还是加个更小的值取决于数据的分布。
# 加的值一般认为是检测的低阈值,低于这个值的数字之间的差异可以忽略。
data_log <- log2(data+1) #对数转换后,数据还保留着之前的变化趋势

http://www.dtcms.com/a/477404.html

相关文章:

  • GPU微架构
  • Vue-- Axios 交互(二)
  • 中煤浙江基础建设有限公司网站曹妃甸网站建设
  • phpcms做汽车网站wordpress如何关注博客
  • 读《华为基本法》,聚焦可复用的方法论
  • CAD多面体密堆积_圆柱体试件3D V1.1版本更新
  • JavaScript变量完全指南:从基础定义到高级用法
  • 什么是VR?什么是AR?
  • NineData云原生智能数据管理平台新功能发布|2025年9月版
  • 基于AR技术交互式设备维修的技术方案剖析|阿法龙XR云平台
  • 利用 Meshery 提升云原生管理效率
  • [3dmax自研插件]——3ds Max 智能材质检查器
  • 5G+AR:开启航空维修的智能新时代
  • 长春火车站人工电话企业做响应式网站好吗
  • 竹子林附近网站建设移动互联网技术
  • 基于物联网的体温心率监测系统设计(论文+源码)
  • 股指10月想法
  • 融资业务类型、AMS 的通用支持能力、各业务在 AMS 中的流程实现
  • 波音引领航空维修变革:AR技术重塑行业未来
  • 零基础快速上手Playwright自动化测试
  • ArcGIS Pro 修改单个波段的值并组合输出新的影像数据
  • Vue 脚手架(Vue CLI)
  • 自己建设网站需要花多少钱爱南宁app下载官网最新
  • 蓝牙物联网多个核心应用场景开发与应用细化分析
  • 百度装修网站郑州建设局官网
  • 服务器在线安装插件失败/离线安装VSIX
  • 大连制作网站软件厦门网站建设外贸
  • python高级04——网络编程
  • 如何选30G、60G、100G的香港高防服务器?
  • Linux IP 网络配置与管理详解