问题标签 [pheatmap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1639 浏览

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

可重现的数据:

资料说明:

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


我做了什么pheatmap

annotation_colors[[colnames(annotation)[i]]] 中的错误:下标越界


这是我得到一些奇怪的地方:

起初,我猜这个问题是由参数引起的annotation_row。我检查了两个数据帧的行名。

你可以看到他们是平等的。但是,我执行了以下代码并且热图工作。

理论上这段代码"rownames(colormat) <- rownames(ann_row)"应该没有意义,因为这两个对象本来是相等的,但是为什么它使pheatmap()函数起作用呢?


编辑:根据@steveb 的评论,我什至不必使用ann_row. 我刚设置

并且 pheatmap 也有效。这种情况仍然违反直觉。


最终输出:

在此处输入图像描述

0 投票
1 回答
713 浏览

r - 在 pheatmap 中使用 display_numbers 函数时隐藏 NA 值

我正在按pheatmapr 中的包绘制热图。

我应用该display_numbers函数将矩阵中的值显示到热图中,我得到了:

热图

我的矩阵中有这么多 NA,我想将它们隐藏在热图中,我该怎么做?

0 投票
1 回答
7056 浏览

r - 使用 pheatmap 包在热图中添加间隙

我使用以下代码制作了热图:

我想在第 5 行和第 6 行之间放置一个间隙,以根据我的行注释分隔热图。

pheatmap功能上,这个论点gaps_row似乎起到了作用。

我不确定如何实现。有人可以帮我弄这个吗?非常感谢。

0 投票
1 回答
1575 浏览

r - pheatmap:更改文本颜色

如何更改 pheatmap 中的文本颜色?我尝试了以下方法,但它不会更改轴文本和标签,但它不起作用

0 投票
1 回答
2220 浏览

r - Pheatmap display_numbers 参数

我需要使用和显示星星来表示我的重要性pheatmp,我使用了以下方法。如您所见,图中报告的星星穿过单元格边界。有没有办法让它在单元格内居中?

0 投票
1 回答
891 浏览

r - 如何使用 R 中的 pheatmap 将色阶锚定到每行的最小值/最大值

我目前在 R 中使用 pheatmap 从单细胞数据创建基因表达的热图。

我目前遇到的问题是我似乎无法复制其他热图生成器(例如 Morpheus)中使用的相对色标:https ://software.broadinstitute.org/morpheus/

详细地说,在 Morpheus 中,色标可以锚定到每行的最小和最大表达式值。例如,假设色标很简单c('dark_blue', 'blue', 'bright_blue', 'white', 'bright_red', 'red', 'dark_red'),我提供了一个矩阵,看起来像t(data.frame(row1=c(0, 1, 2, 3, 4, 5, 6), row2=c(10, 11, 12, 13, 14, 15, 16))),Morpheus 将在第一行着色 0 深蓝色和 6 深红色,而在第二行着色 10 为深蓝色和 16 为深红色. 然后颜色条代表每行的相对最小值和最大值。

请注意,这与简单地缩放数据不同,这是我在 pheatmap 中所做的。问题是,如果我有类似的东西t(data.frame(row1=c(1, 2, 3, 4, 5, 6), row2=c(10, 0, 0, 0, 0, 0))),那么即使缩放数据也不允许将 6(缩放后约 1.34)着色为深红色,因为色标固定在最小值(缩放后约 -0.41)和最大值( ~2.04 缩放后)为整个热图。

我不怀疑有一种简单的方法可以实现这一点,但我无法通过查看基本文档来弄清楚。我也明白以这种方式显示热图不会允许基因之间的任何比较,但这对我的使用来说并不是特别重要。

0 投票
0 回答
349 浏览

r - Pheatmap 缩放创建空行(缺失值)

我有一个包含基因表达值的矩阵,并想在热图中绘制它。但是,当我使用缩放选项时,scale = "row"热图中会出现一些空白(灰色)行。因此,pheatmap 不允许任何基于行的聚类。当我在没有缩放的情况下绘制绘图时,没有空行。

我怀疑这可能是由于某些行中的低变异和低表达,但表达式数据集中没有缺失值。

我正在寻找为什么会发生这种情况的解释以及避免它的解决方案。

缩放前的绘图:

在此处输入图像描述

缩放后的绘图:

在此处输入图像描述

0 投票
1 回答
1356 浏览

r - Pheatmap:在树状图中重新排序叶子

我使用pheatmap包创建了一个基于层次聚类的具有相应树状图的热图。现在,我想更改树状图中叶子的顺序。最好使用最优叶子法。我已经四处搜索,但没有找到任何关于如何改变实现这一目标的解决方案。

我将不胜感激有关如何使用最佳叶子方法更改叶子顺序的建议。

这是我的带有随机数据的示例代码:

0 投票
1 回答
1056 浏览

r - Pheatmap:在完整矩阵上进行层次聚类,但只显示行的子集

我有一个基因表达数据集,想显示一些基因的热图。首先,我想基于所有基因进行层次聚类,并创建一个树状图,然后在这些基因的一个子集上创建一个热图。明确地说,热图将具有与已创建的树状图相同的列,但显示的行更少。我曾尝试使用下面的代码,但似乎 pheatmap 根据缩减矩阵重新排序集群。

我尝试设置cluster_cols = F,但根本没有进行任何树状图或重新排序。

0 投票
1 回答
109 浏览

r - 从具有相同 nrow 值和行名的两个 scRNA-seq 数据帧中删除使用 full_join 生成的数据帧中的 NA

我一直在使用如下所示的 Log2 数据框:

小数据窗口

这已根据基因/基因载体列表进行了子集化。

gene_list <- c("gene1","gene2","gene3","gene4","gene5")

随后是使用该grep函数根据年龄进行的后续子集。 scdata4 <- as.data.frame(df[,grep("4W", colnames(df))]) scdata5 <- as.data.frame(df[,grep("5W", colnames(df))])

在这一步之后,将行名称(基因)放在名为基因的列下,使用:

tibble::rownames_to_column(df, var="gene")

最后,生成的两个数据帧作为 full_join 函数的输入,它们具有相同的 nrow 值,即行名。

scdatajoin <- full_join(scdata4,scdata5, by = "gene")

这是我得到错误的地方,当我在使用 as.matrix() 转换为矩阵格式后将此输出插入 pheatmap 函数时。

scdatajoin <- as.matrix(scdatajoin) pheatmap(scdatajoin, color=rev(brewer.pal(9,"RdBu")), main = "4plus5w")

我收到此错误:

Error in hclust(d, method = method) : NA/NaN/Inf in foreign function call (arg 11)

有人可以告诉我如何纠正这个问题吗?