标签: pheatmap

Pheatmap注释颜色和边框

Pheatmap library(pheatmap)需要annotation_colors添加在每个热图塔的顶部的标题ID的颜色.

我想添加白色作为带有边框的列标题颜色.可以添加边框,border_color但此功能也可以为整个热图绘制边框.

以下是我到目前为止所做的工作.

library(pheatmap)   
set.seed(123)
df<-data.frame( matrix(sample(30), ncol = 5))
colnames(df)<-LETTERS[1:5]
subj<-c("P1", "P2","P3", "T1", "T2","T3")
rownames(df)<-subj
aka2 = data.frame(ID = factor(rep(c("Pat","Trea"), each=3)))
rownames(aka2)<-subj
aka3 = list(ID = c(Pat = "white", Trea="blue"))
pheatmap(t(scale(df)),
         annotation_col = aka2, 
         annotation_colors = aka3[1],
         annotation_legend = FALSE,
         gaps_col =  3,
         show_colnames = T, show_rownames = T, cluster_rows = F, 
         cluster_cols = F, legend = TRUE, 
         clustering_distance_rows = "euclidean", border_color = FALSE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r pheatmap

15
推荐指数
3
解决办法
2万
查看次数

pheatmap:NA的颜色

使用R package pheatmap绘制热图.有没有办法为输入矩阵中的NA分配颜色?看来NA默认为白色.例如:

library(pheatmap)
m<- matrix(c(1:100), nrow= 10)
m[1,1]<- NA
m[10,10]<- NA
pheatmap(m, cluster_rows=FALSE, cluster_cols=FALSE)
Run Code Online (Sandbox Code Playgroud)

谢谢

r na pheatmap

12
推荐指数
3
解决办法
7358
查看次数

在R中为pheatmap设置0点

如何在此热图中将色标上的0点设置为白色?它是否使用breaks参数?

在以下代码中,white设置为3(或在比例附近):

test = matrix(rnorm(200), 20, 10)
test[1:10, seq(1, 10, 2)] = test[1:10, seq(1, 10, 2)] + 3
test[11:20, seq(2, 10, 2)] = test[11:20, seq(2, 10, 2)] + 2
test[15:20, seq(2, 10, 2)] = test[15:20, seq(2, 10, 2)] + 4
colnames(test) = paste("Test", 1:10, sep = "")
rownames(test) = paste("Name", 1:20, sep = "")
pheatmap(test, color = colorRampPalette(c("yellow", "white", "blue"))(50))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r pheatmap

8
推荐指数
2
解决办法
6252
查看次数

R 中的“pheatmap”中没有边框颜色

我正在探索 R 来分析我的基因表达数据。

我可以使用该pheatmap包创建一个漂亮的热图。但是,在不同颜色的框之间转换时,它会自动引入边框颜色,我在放大后可以看到该边框颜色。尽管添加了属性 ,但还是如此border_color = "NA"。是否可以获得连续变化的热图?谢谢。

我的代码:

 pheatmapM <-pheatmap(datExprM, border_color = "NA", breaks = NULL, color = colorRampPalette(c("navy", "black", "yellow"))(50), cluster_rows = TRUE, cluster_cols = TRUE, scale = "row")
Run Code Online (Sandbox Code Playgroud)

我的热图

正如您在下面看到的(缩放后),相邻的框由较浅的颜色分隔。

缩放热图,边框较浅

r pheatmap

7
推荐指数
1
解决办法
9324
查看次数

更改轴标签包pheatmap生成的热图的旋转

包装产生的热图的x轴标签pheatmap默认旋转270度.我需要让它们旋转90度.

我已跟踪该pheatmap()函数,并看到有一个内部(不可见)函数生成标签:

draw_colnames <- function (coln, ...) 
{
    m = length(coln)
    x = (1:m)/m - 1/2/m
    grid.text(coln, x = x, y = unit(0.96, "npc"), vjust = 0.5, 
              hjust = 0, rot = 270, gp = gpar(...))
}
Run Code Online (Sandbox Code Playgroud)

我只是改变了rot = 270通过rot = 90,并hjust = 0通过hjust = 1上述功能,使用下面的命令,和它的工作:

fixInNamespace("draw_colnames","pheatmap")
Run Code Online (Sandbox Code Playgroud)

但问题是fixInNamespace()永久修改包中的函数定义.我更乐意不改变原始函数定义,而是draw_colnames()在我需要的情况下暂时替换我自己的函数定义.

有什么解决方案吗?

r heatmap pheatmap

6
推荐指数
0
解决办法
2136
查看次数

在ArrangeGrob中使用Pheatmap

我正在尝试使用rangingGrob()在相同的.jpg中绘制两个图。我才刚刚开始学习网格和grobs,我想我知道问题出在哪里:pheatmap是一个网格对象,包含grob对象,不允许我将其放在rangingGrob中。这是真的?

我是否需要以某种方式将qplot放在一个网格中,将pheatmap放在一个网格中,然后将那些网格放在一个新的网格中?

library(grid)
library(gridExtra)
library(pheatmap)
library(ggplot2)
hmdat=rbind(c(1,2,3),
            c(3,4,5),
            c(5,6,7))
hm=pheatmap(hmdat)
qp=qplot(1,1)
lm=rbind(c(1,2,2),
         c(1,2,2))
jpeg("plots.jpg")
arrangeGrob(qp,hm, layout_matrix=lm)
dev.off()
Run Code Online (Sandbox Code Playgroud)

上面的代码片段在使用时运行良好

arrangeGrob(qp,qp, layout_matrix=lm)
Run Code Online (Sandbox Code Playgroud)

r grob pheatmap

6
推荐指数
1
解决办法
1287
查看次数

R pheatmap:更改注释颜色并防止弹出图形窗口

回答这个问题之后,我发现了pheatmap函数(与heatmap.2相比,它可以为我提供更多的控制权)。

我有两个问题:

1-我无法更改注释(类别)的颜色

2-即使我将输出保存在png文件中,图形窗口也会不断弹出

这是我的MWE:

library(pheatmap)
library(RColorBrewer)
cols <- colorRampPalette(brewer.pal(9, "Set1"))

mymat <- matrix(rexp(600, rate=.1), ncol=12)
colnames(mymat) <- c(rep("treatment_1", 3), rep("treatment_2", 3), rep("treatment_3", 3), rep("treatment_4", 3))
rownames(mymat) <- paste("gene", 1:dim(mymat)[1], sep="_")

annotdf <- data.frame(row.names = paste("gene", 1:dim(mymat)[1], sep="_"), category = c(rep("CATEGORY_1", 10), rep("CATEGORY_2", 10), rep("CATEGORY_3", 10), rep("CATEGORY_4", 10), rep("CATEGORY_5", 10)))

mycolors <- cols(length(unique(annotdf$category)))
names(mycolors) <- unique(annotdf$category)
mycolors <- list(mycolors = mycolors)

pheatmap(mymat,
     color=greenred(75),
     scale="row",
     cluster_rows = FALSE,
     cluster_cols = FALSE,
     gaps_row=c(10,20,30,40),
     gaps_col=c(3,6,9),
     cellheight = 6,
     cellwidth …
Run Code Online (Sandbox Code Playgroud)

r colors heatmap pheatmap

6
推荐指数
1
解决办法
1万
查看次数

通过注释排序 pheatmap

我正在尝试使用 pheatmap 包制作一个图形。我想按我正在使用的注释对数据进行分组,但它不会分组在一起。

我的数据在这里:

sub_samp <- structure(c(1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 
0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, …
Run Code Online (Sandbox Code Playgroud)

r heatmap pheatmap

6
推荐指数
1
解决办法
2万
查看次数

部分行标签热图 - R

我想知道是否有人知道允许对热图进行部分行标记的包。我目前正在使用 pheatmap() 来构建我的热图,但我可以使用任何具有此功能的包。

我有很多行差异表达基因的图,我想标记其中的一个子集。有两个主要的事情需要考虑(我能想到的):

  • 文本注释的位置取决于行的高度。如果行太窄,则文本标签将在没有某种指针的情况下不明确。
  • 如果多个相邻行是重要的(即将被标记),那么这些将需要偏移,并且再次需要一个指针。

下面是一个部分解决方案的例子,它实际上只能达到一半,但我希望能说明我想要做的事情。

set.seed(1)
require(pheatmap)
require(RColorBrewer)
require(grid)

### Data to plot
data_mat <- matrix(sample(1:10000, 300), nrow = 50, ncol = 6)
rownames(data_mat) <- paste0("Gene", 1:50)
colnames(data_mat) <- c(paste0("A", 1:3), paste0("B", 1:3))

### Set how many genes to annotate
  ### TRUE - make enough labels that some overlap
  ### FALSE - no overlap
tooMany <- T

### Select a few genes to annotate
if (tooMany) {
  sigGenes_v <- paste0("Gene", c(5,20,26,42,47,16,28))
  newMain_v <- "Too Many Labels"
} else …
Run Code Online (Sandbox Code Playgroud)

label annotations r heatmap pheatmap

5
推荐指数
1
解决办法
3126
查看次数

pheatmap 中有一些奇怪的东西(一个错误?)

可重现的数据:

data(crabs, package = "MASS")
df <- crabs[-(1:3)]
set.seed(12345)
df$GRP <- kmeans(df, 4)$cluster
df.order <- dplyr::arrange(df, GRP)
Run Code Online (Sandbox Code Playgroud)

数据说明:

df有 5 个数值变量。我根据这 5 个属性进行了 K-means 算法,并生成了一个GRP具有 4 个级别的新分类变量。接下来,我订购了它GRP并命名了它df.order


我做了什么pheatmap

## 5 numerical variables for coloring
colormat <- df.order[c("FL", "RW", "CL", "CW", "BD")]

## Specify the annotation variable `GRP` shown on left side of the heatmap
ann_row <- df.order["GRP"]

## gap indices
gapRow <- cumsum(table(ann_row$GRP))

library(pheatmap)
pheatmap(colormat, cluster_rows = F, show_rownames = F, …
Run Code Online (Sandbox Code Playgroud)

r heatmap pheatmap

5
推荐指数
1
解决办法
1426
查看次数

标签 统计

pheatmap ×10

r ×10

heatmap ×5

annotations ×1

colors ×1

grob ×1

label ×1

na ×1