ggplot集锦

交并补关系展示的热图方法

2021-12-21  本文已影响0人  一只烟酒僧
1640071127(1).png

如上图所示,大家很多时候对于分组之间的基因交并补的展示往往第一时间想到venn或upset,其实也可以使用上述热图来展示。这样不仅可以展示出组之间的交并补情况,还可以展示交并补集合中的基因名称以及基因所处的分组(热图侧边栏),使你的图更加复杂且内容丰富。
放一个在做这个图中一定会使用到的计算交并补的函数,可以将分组列表转化为01矩阵

function(list_with_elements,element_name="gene"){
require(dplyr)
  m=list_with_elements%>%do.call(c,.)%>%unique()
  b=matrix(NA,nrow = length(m),ncol = length(list_with_elements))%>%as.data.frame()
  n=data.frame(x=m)%>%cbind(.,b)
  colnames(n)<-c(element_name,names(list_with_elements))
  for (i in 2:c(length(list_with_elements)+1)) {
    n[match(list_with_elements[[i-1]],n[[element_name]]),i]=1
    n[is.na(n[[i]]),i]<-0
  }
  return(n)
  
}

上一篇 下一篇

猜你喜欢

热点阅读