首页 > 解决方案 > 多 1d 热图绘图重新创建

问题描述

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

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

染色体 SNP 密度图

我有这样的格式的数据

Chromosome Chromosome_position Number_of_SNPs

Chr1\t100000\t345\n

Chr1\t200000\t265\n
etc.

任何建议将不胜感激

提前致谢

瑞安

标签: pythonrmatplotlibheatmap

解决方案


我不知道你的密度是多少,但这里是一个“普通”密度的例子。

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)

在此处输入图像描述


推荐阅读