标签: pheatmap

pheatmap scale ="row"在hclust中给出错误(d,method = method):外部函数调用中的NA/NaN/Inf

我正在尝试用R中的包pheatmap创建一个带有基因表达值的热图.我已经多次使用该代码,直到今天仍然没有问题.看来当我做scale ="row"时,我最终得到了这个错误.我无法创建z分数.因此,可能某些行没有可变性,因此发生这种情况.我怎么能摆脱这个.矩阵具有1100行和9列.我的代码:

data  <- read.table("~path/DEGs_DESeq.txt",sep="\t")
data2 <- as.matrix(data[,2:9])
data3 <- data2[-1,]
samples <- data2[1,]
genes <- data[2:length(data2[,1]),1]
vett <- as.numeric(data3)
data4 <- matrix(vett, length(genes), length(samples), dimnames=list(paste(genes),paste(samples))) 
head(data4)

pheatmap(as.matrix(data4), col=bluered(200), scale="row", key=T, keysize=1.5,
    density.info="none", trace="none",cexCol=0.6, fontsize_row=8, fontsize_col=10)
Run Code Online (Sandbox Code Playgroud)

hclust中的错误(d,方法=方法):外部函数调用中的NA/NaN/Inf(arg 11)

我怎样才能摆脱这个错误?

scaling r heatmap na pheatmap

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

R pheatmap:执行聚类并显示每个注释类别的树状图

我知道如何使用 pheatmap 按注释类别对行(基因)进行分组,并且我知道如何对整个行(基因)集执行 Person 的相关聚类,但我想要完成的是执行聚类(并显示独立的树状图)独立于每个类别。

这甚至可能吗?或者我是否被迫为每个类别创建单独的热图以在类别的基础上进行聚类?

在下面检查我的 MWE:

set.seed(1)
library(pheatmap)

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)))

pheatmap(mymat,
     scale="row",
     cluster_rows = FALSE,
     cluster_cols = FALSE,
     gaps_row=c(10,20,30,40),
     gaps_col=c(3,6,9),
     cellheight = 6,
     cellwidth = 20,
     border_color=NA,
     fontsize_row = 6,
     filename = "TEST1.png",
     annotation_row = annotdf
)

pheatmap(mymat,
     scale="row",
     cluster_rows = …
Run Code Online (Sandbox Code Playgroud)

r cluster-analysis heatmap pheatmap

5
推荐指数
0
解决办法
3472
查看次数

合并多个 hclust 对象(或树状图)

有没有一种简单的方法可以在根处合并多个 hclust 对象(或树状图)?

我已经使示例尽可能完整来说明我的问题。

假设我想按区域对 USArrest 进行聚类,然后将所有 hclust 对象联合起来,将它们绘制在热图中。

USArrests
Northeast <- c("Connecticut", "Maine", "Massachusetts", "New Hampshire", "Rhode Island", 
"Vermont", "New Jersey", "New York", "Pennsylvania")
Midwest <-  c("Illinois", "Indiana", "Michigan", "Ohio",  "Wisconsin", 
    "Iowa", "Kansas", "Minnesota", "Missouri", "Nebraska", "North Dakota", 
    "South Dakota")
South <- c("Delaware", "Florida", "Georgia", "Maryland", "North Carolina", 
           "South Carolina", "Virginia", "West Virginia", 
           "Alabama", "Kentucky", "Mississippi", "Tennessee", "Arkansas", 
           "Louisiana", "Oklahoma", "Texas")
West <- c("Arizona", "Colorado", "Idaho", "Montana", "Nevada", "New Mexico", 
          "Utah", "Wyoming", "Alaska", "California", "Hawaii", "Oregon", "Washington")

h1 <- …
Run Code Online (Sandbox Code Playgroud)

r dendrogram hclust pheatmap

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

部分行标签热图 - 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
查看次数

Google热图不能正确显示数据点

我正面临着谷歌热图的一个奇怪问题.热图在热图数据中增加坐标数量时显示的数据点较少.对于333坐标,热图显示数据点,如: 在此输入图像描述

对于9885坐标: 在此输入图像描述

如您所见,333坐标的数据点数多于9885坐标.但它应该显示更多的大数据数据点.我的代码:

var map = new google.maps.Map(document.getElementById('bcak_track_map'), {
    zoom:19,
    center:{lat:parseFloat(flat), lng:parseFloat(flon)},
    mapTypeId:google.maps.MapTypeId.SATELLITE
});
map.setTilt(45);

var heatMapBounds = new google.maps.LatLngBounds();

var markerCount = 0;
$.each(marker_points, function (key, val) {
    var myLatLon = new google.maps.LatLng(parseFloat(val.latitute), parseFloat(val.longtute));
    heatArr[markerCount] = {location: myLatLon, weight: 2};
    heatMapBounds.extend(myLatLon);
    markerCount++;
});

var sheatmap = new google.maps.visualization.HeatmapLayer({
    data:new google.maps.MVCArray(heatArr),
    radius:30
});
sheatmap.setMap(map);
map.fitBounds(heatMapBounds);
bounds = new google.maps.LatLngBounds(null);
Run Code Online (Sandbox Code Playgroud)

数据进入marker_points

 [
 Object { latitute="33.65112310998252",  longtute="-117.98994390000001"},
 Object { latitute="33.650867",  longtute="-117.990379"}, 
 Object { latitute="33.650867",  longtute="-117.990379"}, 
 Object { latitute="33.650855606216076",  longtute="-117.99054136256564"}, 
 Object { latitute="33.650867", …
Run Code Online (Sandbox Code Playgroud)

google-maps google-maps-api-3 pheatmap

4
推荐指数
1
解决办法
871
查看次数

带有 pheatmap 的多个面板图

我正在尝试绘制多面板图,其中一个面板是用于layout放置绘图的热图。我一直在绘制热图,pheatmap它提供了非常方便的配色方案等。

代码可以在这里pheatmap找到。

当我尝试以pheatmap这种方式使用时,它总是在新页面上绘制。我想这是因为它使用了包grid?有什么办法可以做到这一点pheatmap吗?

用于在条形图旁边生成热图的示例代码,但由于热图绘制在下面的新页面上,因此不会生成热图:

xlay=layout( matrix(c(2,2,1),nrow=1) )
layout.show(xlay)
barplot(rnorm(8),horiz=T)
pheatmap(matrix(rnorm(80),nrow=8))
Run Code Online (Sandbox Code Playgroud)

plot r heatmap pheatmap

4
推荐指数
1
解决办法
3697
查看次数

pheatmap 默认距离度量 R

我需要使用“pheatmap”函数制作热图,使用 UPGMA 和 1-pearson 相关性作为距离度量。我的教授声称这是默认的距离度量,尽管在我的例子中它使用“欧几里德”作为距离度量。欧几里得和 1 - 皮尔逊相关性相同还是他错了?如果他错了,我如何为我的热图使用正确的距离度量?

我的意见

ph=pheatmap(avgreltlog10, color = colorRampPalette(rev(brewer.pal(n = 7, 
name = "RdYlBu")))(100), 
kmeans_k = NA, breaks = NA, border_color = "grey60",
cellwidth = 10, cellheight=10, scale = "none", cluster_rows=TRUE,
clustering_method = "average", cutree_rows = 4, cutree_cols= 2,)
Run Code Online (Sandbox Code Playgroud)

R输出

$tree_row

Call:
hclust(d = d, method = method)

Cluster method   : average 
Distance         : euclidean 
Number of objects: 65 


$tree_col

Call:
hclust(d = d, method = method)

Cluster method   : average 
Distance         : euclidean 
Number of …
Run Code Online (Sandbox Code Playgroud)

r distance metric pheatmap

4
推荐指数
1
解决办法
4847
查看次数

Pheatmap:annotation_colors[[colnames(annotation)[i]]]中的错误:下标超出范围

library(pheatmap)

another<-read.table("~/Desktop/tcga3dcategorized.csv",sep=',',header=FALSE)
test<-another[1:3]
labels<-another[4]
colnames(test)=c("Dim 1","Dim 2","Dim 3")

annotation_row=data.frame(CancerType=factor(labels))
ann_colors=list(CancerType=c(KIRC="red", UCEC="#B2509E",LUSC="#D49DC7",
    LGG="#C1A72F",PCPG="#E8C51D",HNSC="#F9ED32",CESC="#104A7F",ESCA="#9EDDF9",
    BRCA="#007EB5",THCA="#CACCDB",PRAD="#6E7BA2",MESO="#DAF1FC",PAAD="#00AEEF",
    LUAD="#F6B667",LAML="#D97D25",UVM="#FBE3C7",GBM="#F89420",READ="#97D1A9",
    SKCM="#009444",KIRP="#754C29",COAD="#CEAC8F",LIHC="#3953A4",SARC="#BBD642",
    OV="#00A99D",BLCA="#D3C3E0",STAD="#A084BD",TGCT="#542C88",ACC="#FAD2D9",
    THYM="#ED1C24",KICH="#F8AFB3",DLBC="#EA7075",UCS="#7E1918",CHOL="#BE1E2D"))

pheatmap(test,annotation_row=annotation_row,annotation_colors=ann_colors,main="title")
```
Run Code Online (Sandbox Code Playgroud)

错误是:

Error in annotation_colors[[colnames(annotation)[i]]] : 
  subscript out of bounds
Run Code Online (Sandbox Code Playgroud)

r bioinformatics pheatmap

4
推荐指数
1
解决办法
8395
查看次数

如何将 pheatmap 图绘制到屏幕并保存到文件

我正在使用 pheatmap 包。默认情况下,它将绘图绘制到屏幕上。就我而言,这意味着在 R studio 的 R markdown notebook 中输出。但我也想保存到文件中。如果我将它保存到一个文件中,并为其提供filename=参数,它就不会绘制到屏幕上(R 笔记本)。有没有办法让这两件事都发生?更一般地说,对于我想在屏幕上保存和显示的任何情节(ggplot2)?

r ggplot2 pheatmap

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