bioinformaticsR plot

根据热图删基因 pheatmap

2022-07-04  本文已影响0人  努力学习的消炎药

需求背景 ,分析结束了,但是得到的总体热图,看起来不好看,老板不太满意

参差不齐的,有些地方不符合整体的趋势,毛毛草草的,不美丽

于是老板,便让把不好看的地方删去。但是一删就是几百个基因,不可能根据行名一个一个扣,于是便有了此教程。

没数据,也不想放图,只能靠您理解了。

苦思冥想了一种最笨拙的方式

## 首先把图画出来,赋值给对象

xheatmap = pheatmap(xray_dat2, #热图的数据
                    cluster_rows = TRUE,#行聚类
                    cluster_cols = F,#列聚类,可以看出样本之间的区分度
                    annotation_col =annotation_col, #标注样本分类
                    annotation_legend=T, # 显示注释
                    show_rownames = F,show_colnames = F,#显示行列名
                    gaps_col = c(3,6,9,12),
                    breaks = seq(-1.5,1.5,length.out=150),
                    scale = "row", #以行来标准化,这个功能很不错
                    annotation_colors =ann_colors ,
                    clustering_method = 'centroid',
                    clustering_distance_rows = "correlation",
                    main = 'Xray ',border=F,#width =4,height =6,
                    color =colorRampPalette(c("#4368B6FF", "white","red"))(150),#调色
                    # cellwidth = 6,cellheight = 6,
                    # filename = "l0704xray_whole_heatmap.pdf",
                    # filename = "xray_whole_heatmap.pdf",#是否保存
                    fontsize = 8,treeheight_row = 50)

然后观察这个对象

其实是一个list

 class(xheatmap)
[1] "pheatmap"
image.png
image.png

先将上面的图画到pdf里面,显示行名,能看清即可。# cellwidth = 6,cellheight = 6 , 尝试了几次发现这个大小便于挑选。加上这两句即可,# cellwidth = 6,cellheight = 6, # filename = "l0704xray_whole_heatmap.pdf",

将列名和顺序结果提取出来

needdat = xheatmap[["tree_row"]][["order"]]
names = xheatmap[["tree_row"]][["labels"]]
names2 = names[needdat]
picg = data.frame(order = needdat,
                  symbol = names2)##生成的第一遍

picg2 = picg[-c(593:621),]  ##最后的genes and orders

xray_dat2 = xray_dat[picg2$symbol,]

得到的 picg 便是我们上面生成的热图的基因顺序,根据热图,我们可以定位到需要删除的那部分基因,

image.png

把需要删除的基因在picg里面查找便可以得到其位置


image.png
image.png

掐头去尾的删除两个之间的所有基因,便可以得到需要的基因symbol 和order

后面取需要的数据时候用 symbol 保险一些。

删除后得到需要的数据后再去画图就会显得规整一些了。

上一篇下一篇

猜你喜欢

热点阅读