多一维热图图创建

时间:2018-09-07 20:01:23

标签: python r matplotlib heatmap

我正在尝试重新创建我看到的图像,基本上需要相同。

如果有人可以指出正确的方向,那就太好了。它代表了整个染色体上突变的密度(比例为百万碱基对)

Chromosome SNP density map

我有这种格式的数据

Chromosome Chromosome_position Number_of_SNPs

Chr1\t100000\t345\n

Chr1\t200000\t265\n
etc.

任何建议将不胜感激

预先感谢

瑞安

1 个答案:

答案 0 :(得分:0)

我不知道您的密度是多少,但这是“普通”密度的示例。

library(data.table)
# simulated data
n <- 1000
DT <- data.table(Chr = rep(c("Chr1","Chr2"),each=n),
                 v = c(rgamma(n, 2, 3), rgamma(n,10,3)))
# construct density data 
DT2 <- DT[, {dty <- density(v, from = 0, to = max(v))
             list(x=dty$x, 
                  z=cut(dty$y, c(seq(0,1,by=0.1), Inf)))}, 
          by="Chr"]

library(ggplot2)
ggplot(DT2, aes("",round(x,1))) + geom_tile(aes(fill=z)) + 
  facet_grid(~Chr) + xlab(NULL) + ylab("something") + 
  scale_fill_viridis_d("density")
# I take round(x,1) because that does not work with x (looks like a bug)

enter image description here