【问题标题】:Overlapping two gene sets ,finding their overlap significance and plotting them重叠两个基因集,找到它们的重叠意义并绘制它们
【发布时间】:2021-09-11 14:18:46
【问题描述】:

(图 3a、b、扩展数据图 3a、b 和补充表 1)。 48 小时后,超过三分之一的转录组被 差异表达(>5,000 个基因;405 个基因编码 细胞外区域的蛋白质,基因本体论(GO)加入 0005576),与基因表达变化显着重叠 vemurafenib 治疗 5 天后体内 A375 肿瘤的变化(图 2)。 3a,b和扩展数据图3c)。类似的广泛基因表达 在处理的 Colo800 和 UACC62 黑色素瘤细胞中观察到变化 用威罗非尼和 H3122 肺腺癌细胞处理 克唑替尼(扩展数据图 3d)。尽管细胞谱系不同, 不同的致癌驱动因素和不同的靶向治疗,我们 观察到黑色素瘤的分泌组和 肺腺癌细胞(P

paper

我希望看到类似于 图 f 的显示交叉点和重要性重叠的地方。为了实现这一点,我让这段代码一直工作到交叉部分,但我不知道如何运行重要部分。

library(reshape2)
library(venneuler)
RNA_seq_cds <- read.csv("~/Downloads/RNA_seq_gene_set.txt", header=TRUE, sep="\t")
head(RNA_seq_cds)
ATAC_seq <- read.csv("~/Downloads/ATAC_seq_gene_set.txt", header=TRUE, sep="\t")
head(ATAC_seq)
RNA_seq <- RNA_seq_cds
ATAC_seq <- ATAC_seq

#https://stackoverflow.com/questions/6988184/combining-two-data-frames-of-different-lengths
cbindPad <- function(...) {
  args <- list(...)
  n <- sapply(args, nrow)
  mx <- max(n)
  pad <- function(x, mx) {
    if (nrow(x) < mx) {
      nms <- colnames(x)
      padTemp <- matrix(NA, mx - nrow(x), ncol(x))
      colnames(padTemp) <- nms
      if (ncol(x) == 0) {
        return(padTemp)
      } else {
        return(rbind(x, padTemp))
      }
    } else {
      return(x)
    }
  }
  rs <- lapply(args, pad, mx)
  return(do.call(cbind, rs))
}

dat <- cbindPad(ATAC_seq, RNA_seq)

vennfun <- function(x) { 
  x$id <- seq(1, nrow(x))  #add a column of numbers (required for melt)
  xm <- melt(x, id.vars="id", na.rm=TRUE)  #melt table into two columns (value & variable)
  xc <- dcast(xm, value~variable, fun.aggregate=length)  #remove NA's, list presence/absence of each value for each variable (1 or 0)
  rownames(xc) <- xc$value  #value column=rownames (required for Venneuler)
  xc$value <- NULL  #remove redundent value column
  xc  #output the new dataframe
}

#https://stackoverflow.com/questions/9121956/legend-venn-diagram-in-venneuler
VennDat <- vennfun(dat)
genes.venn <- venneuler(VennDat)
genes.venn$labels <- c("RNA", "\nATAC" )
# plot(genes.venn, cex =15, )
#https://stackoverflow.com/questions/30225151/how-to-create-venn-diagram-in-r-studio-from-group-of-three-frequency-column
#https://rstudio-pubs-static.s3.amazonaws.com/13301_6641d73cfac741a59c0a851feb99e98b.html   
vd <- venneuler(VennDat)
vd$labels <- paste(genes.venn$labels, colSums(VennDat))
plot(vd, cex=10)
text(.3, .45, 
     bquote(bold("Common ="~.(as.character(sum(rowSums(VennDat) == 2))))), 
     col="red", cex=1)

LABS <- vd$labels

上面的代码给了我交集图

现在的意义部分我如何在两个基因组之间做到这一点并显示它,如原始图所示。

我用来生成上述情节的data

任何建议或帮助将不胜感激。

【问题讨论】:

    标签: r overlap venn-diagram


    【解决方案1】:

    如果您谈论如何在图形下方放置任何文本,请像以前一样使用“文本”。这只是对x=y= 坐标的一些猜测。 xpd=TRUE 允许您在边距上绘图。

    VennDat <- vennfun(dat)
    vd <- venneuler(VennDat)
    vd$labels <- paste(c("RNA", "ATAC"), colSums(VennDat))
    
    plot(vd, cex=10, border=c(NA, 'red'), col=c('#6b65af', '#ad7261'))
    text(x=.5, y=.5, sum(rowSums(VennDat) == 2), xpd=TRUE)
    text(.5, .15, 'overlap\n', xpd=TRUE)
    text(.5, .13, bquote(italic(p)*'< 9.11E-55'), xpd=TRUE)
    

    我还调整了plot的一些参数。您可以使用以下方法检查绘图方法的代码:

    venneuler:::plot.VennDiagram
    

    如果您想知道重要性是如何计算的,您应该在Cross Validated 发布您的问题。

    【讨论】:

    • 谢谢你的回答其实我不知道如何计算知道重叠显着性所需的测试
    • 我应该在另一个网站上重新发布问题吗?
    • @PesKchan 当然可以。也可以考虑bioinformatics.stackexchange
    猜你喜欢
    • 2023-02-25
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    相关资源
    最近更新 更多