二进制数据热图

Binary Data heatmap

谁能告诉我如何绘制二进制数据的热图,类似于 link- Binary R heatmap still displays gradient ,

中的热图

我试过了,但我想我无法正确输入文件。这是我要绘制的数据的 link- https://www.dropbox.com/s/7k1uskwrfuaugw3/Dataset.csv?dl=0

这是我数据的一个子集-

Strains gene1   gene2   gene3   gene4   gene5
strain1 1   1   1   1   1
strain2 1   1   1   1   1
strain3 1   1   1   1   1
strain4 1   1   1   1   1
strain5 1   1   1   1   1
strain6 1   1   1   1   1
strain7 1   1   1   1   1
strain8 1   1   1   1   1
strain9 1   1   0   0   0

我得到的输出:

library(gplots)
file1<- read.csv('Dataset.csv',header = T)
class(file1)
dat <- data.frame(file1)
dim(dat)
names(dat)
head(dat)
rownames(dat) <-dat$Strains
head(dat)
dim(dat)
head(dat)
dat.tdy <- dat[,2:26]
dat.n <- scale(t(dat.tdy))
dat.tn <- t(dat.n)
col = c("black", "grey")
row_names <- rownames(dat.tn)
heatmap.2(dat.tn, scale = "none", Rowv = NA, Colv = NA, col = c("black", "grey"), margin=c(6, 4),trace='none',labRow = row_names,
      lhei=c(1,4),cexRow = 1,cexCol = 1,
      lwid=c(.1,1), keysize=0.1, key.par = list(cex=0.5), sepwidth=c(0.1,0.1),
      sepcolor="white",
      colsep=1:ncol(dat),
      rowsep=1:nrow(dat))

此代码 运行 正确并给出了输出,但是当我交叉检查输入文件时,我发现热图中的颜色矩阵与输入文件不同。例如在热图中,对于 gene7,只有一个黑框,但它在输入文件中实际上有近 13 个零。

我觉得有一种更简单的方法来做到这一点..但是由于我是 R 的新手,所以我无法弄清楚。我在提供输入文件时做错了什么。请帮忙。 谢谢

请尝试此代码,您在维度中犯了一些错误

library(gplots)
file1<- read.csv('Dataset.csv',header = T,row.names = 1)
class(file1)
dat <- data.frame(file1)
dim(dat)
names(dat)
head(dat)
rownames(dat) <-dat$Strains
head(dat)
dim(dat)
head(dat)
dat.tdy <- dat[,1:25]
dat.n <- scale(t(dat.tdy))
dat.tn <- t(dat.n)
col = c("black", "grey")
row_names <- rownames(dat.tn)
heatmap.2(dat.tn, scale = "none", Rowv = NA, Colv = NA, col = c("black", "grey"), margin=c(6, 4),trace='none',labRow = FALSE,
          lhei=c(1,4),cexRow = 1,cexCol = 1,
          lwid=c(.1,1), keysize=0.1, key.par = list(cex=0.5), sepwidth=c(0.1,0.1),
          sepcolor="white",
          colsep=1:ncol(dat),
          rowsep=1:nrow(dat))

我找到了一个非常简单的代码来绘制二进制热图-

library(d3heatmap)
x<- read.csv("Dataset.csv", header = T, row.names = 1)
d3heatmap(x, Colv = NA,Rowv = NA, col = c("blue", "red"), scale="none", cexRow = 0.6,cexCol = 1)

使用的示例数据集-

RC  C1  C2  C3  C4
R1  1   1   0   1
R2  0   1   1   0
R3  0   1   1   1
R4  1   1   1   0
R5  1   1   1   1
R6  0   0   0   1
R7  1   1   1   1
R8  1   1   1   1
R9  0   1   1   1
R10 1   1   0   0