二进制数据的热图

问题描述 投票:0回答:1

我正在尝试制作一组患者的质谱蛋白质组数据热图,以检测样品中的特定蛋白质。数据分为 0(未检测到蛋白质)和 1(检测到蛋白质)排列。我想将蛋白质分为两类(一类我可以进行倾斜区分,另一类在样本中检测到的蛋白质太少)。不幸的是,在做了热图之后,数据似乎并没有被分割为 0-1。

我输入了患者和蛋白质的样本数据。它们最初位于 csv 文件中,因此它们以 data.frame 的形式存在。由于热图需要矩阵数据,我对其进行了更改。接下来,我创建热图。然而,它是五彩缤纷的,这没有多大意义。

患者_1 患者_2 患者_3 患者_3
蛋白质_1 0 1 0 1
蛋白质_2 0 1 1 1
蛋白质_3 0 1 0 0
蛋白质_4 1 0 1 1
蛋白质_5 0 0 1 0
蛋白质_6 1 0 0 0
蛋白质_7 0 0 1 0
蛋白质_8 1 1 0 1

data = data.frame (a = c(0,0,0,1,0,1,0,1),
                b = c(1,1,1,0,0,0,0,1),
                c = c(0,1,0,1,1,0,1,0),
                d = c(1,1,0,1,0,0,0,1))
data
data_matrix = as.matrix(data)
data_matrix
data_numeric = matrix (as.numeric(data_matrix), ncol= 4, nrow= 8)
row.names(data_numeric) = c("Protein_1", "Protein_2", "Protein_3", "Protein_4","Protein_5","Protein_6","Protein_7","Protein_8")
colnames(data_numeric) = c("Patient_1","Patient_2","Patient_3","Patient_4")
data_numeric

heatmap(data_numeric)

有人愿意帮助我纠正我所犯的错误并将热图分成两个集群吗?

r heatmap
1个回答
0
投票

您可能不希望矩阵按

heatmap()
缩放。

heatmap(data_numeric, scale='none', col=c('#CCCCCC', '#FF4444'), margins=c(8, 6))


数据:

> dput(data_numeric)
structure(c(0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 
1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1), dim = c(8L, 4L), dimnames = list(
    c("Protein_1", "Protein_2", "Protein_3", "Protein_4", "Protein_5", 
    "Protein_6", "Protein_7", "Protein_8"), c("Patient_1", "Patient_2", 
    "Patient_3", "Patient_4")))
© www.soinside.com 2019 - 2024. All rights reserved.