前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >热图中分组与聚类不匹配的问题

热图中分组与聚类不匹配的问题

作者头像
生信菜鸟团
发布2024-07-11 10:56:37
1920
发布2024-07-11 10:56:37
举报
文章被收录于专栏:生信菜鸟团

分组与聚类不匹配的问题,是没错,但不好解释的问题。

期待:tumor normal 各成一簇

实际上,不一定。

成一簇:说明画热图的基因在两个分组间有明显的表达模式

不成一簇:说明画热图的基因在两个分组间表达模式不是特别明显

换一组基因或者增删基因 可能改变聚类的结果。

分组和聚类是两件独立的事情,聚类是以样本为单位,而不是以分组为单位。每个样本属于那个分组的信息是已知的。

希望各成一簇,两个选择:

1.增删、换基因

2.取消聚类- cluster_cols = F

a.前提:矩阵列的顺序是先tumor后normal,或者先normal后tumor

i.不聚类时,热图列的顺序与矩阵列的顺序完全匹配。

b.取消聚类后,没有各成一簇,说明,表达矩阵列的顺序是乱的

load("TCGA-CHOL.Rdata")

load("TCGA-CHOL_DEG.Rdata")

cg1 = rownames(DEG1)[DEG1$change !="NOT"]

cg2 = rownames(DEG2)[DEG2$change !="NOT"]

cg3 = rownames(DEG3)[DEG3$change !="NOT"]

library(tinyarray)

cg = intersect_all(cg1,cg2,cg3)

gs = sample(cg,100)

dat = log2(cpm(exp)+1)

draw_heatmap(dat[gs,],Group)

# 取消聚类的效果

draw_heatmap(dat[gs,],Group,cluster_cols = F)

# 矩阵列的顺序是乱的,先排序,在画图。

# 如何调整表达矩阵列的顺序?根据Group

colData = data.frame(col = colnames(dat),

Group = Group)

colData = arrange(colData,Group)

n = dat[gs,colData$col]

draw_heatmap(n,colData$Group,cluster_cols = F)

3.耍流氓 分组聚类

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档