首页 > 解决方案 > 如何在我的热图中仅斜体化基因名称(使用 R)?

问题描述

我正在用 R (gplots)做一个热图,我想只用斜体表示我的基因名称(在我的例子中 - 基因 1、基因 2 和基因 3)。例如:

df <- data.frame(Gene = c ("gene1", "gene2",  "gene3"), value = c(3, 2, 2.5), time = c("10d","10d","10d"))
gplots::heatmap.2(cbind(df$value, df$value), trace= "none", Colv = NA, labCol = "", labRow = df$Gene, Rowv=FALSE)

我试过(没用):

df <- data.frame(Gene = c ( expression(italic("gene1", "gene2",  "gene3"))), value = c(3, 2, 2.5), time = c("10d","10d","10d"))

或者

df <- data.frame(Gene = expression(italic(c ("gene1", "gene2",  "gene3"))), value = c(3, 2, 2.5), time = c("10d","10d","10d"))

有什么建议么?

标签: rheatmapitalic

解决方案


这将以编程方式进行:

gene_list <- as.character(df$Gene)

make_italics <- function(x) {
  as.expression(lapply(x, function(y) bquote(italic(.(y)))))
}

heatmap.2(
  cbind(df$value, df$value),
  trace = "none",
  Colv = NA,
  labCol = "",
  labRow = make_italics(gene_list),
  Rowv = FALSE
)

推荐阅读