我正在尝试制作一组患者的质谱蛋白质组数据热图,以检测样品中的特定蛋白质。数据分为 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)
您可能不希望矩阵按
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")))