问题标签 [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.
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 也有效。这种情况仍然违反直觉。
最终输出:
r - 使用 pheatmap 包在热图中添加间隙
我使用以下代码制作了热图:
我想在第 5 行和第 6 行之间放置一个间隙,以根据我的行注释分隔热图。
在pheatmap
功能上,这个论点gaps_row
似乎起到了作用。
我不确定如何实现。有人可以帮我弄这个吗?非常感谢。
r - pheatmap:更改文本颜色
如何更改 pheatmap 中的文本颜色?我尝试了以下方法,但它不会更改轴文本和标签,但它不起作用
r - Pheatmap display_numbers 参数
我需要使用和显示星星来表示我的重要性pheatmp
,我使用了以下方法。如您所见,图中报告的星星穿过单元格边界。有没有办法让它在单元格内居中?
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 缩放后)为整个热图。
我不怀疑有一种简单的方法可以实现这一点,但我无法通过查看基本文档来弄清楚。我也明白以这种方式显示热图不会允许基因之间的任何比较,但这对我的使用来说并不是特别重要。
r - Pheatmap:在树状图中重新排序叶子
我使用pheatmap包创建了一个基于层次聚类的具有相应树状图的热图。现在,我想更改树状图中叶子的顺序。最好使用最优叶子法。我已经四处搜索,但没有找到任何关于如何改变实现这一目标的解决方案。
我将不胜感激有关如何使用最佳叶子方法更改叶子顺序的建议。
这是我的带有随机数据的示例代码:
r - Pheatmap:在完整矩阵上进行层次聚类,但只显示行的子集
我有一个基因表达数据集,想显示一些基因的热图。首先,我想基于所有基因进行层次聚类,并创建一个树状图,然后在这些基因的一个子集上创建一个热图。明确地说,热图将具有与已创建的树状图相同的列,但显示的行更少。我曾尝试使用下面的代码,但似乎 pheatmap 根据缩减矩阵重新排序集群。
我尝试设置cluster_cols = F
,但根本没有进行任何树状图或重新排序。
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)
有人可以告诉我如何纠正这个问题吗?