私は、venn diagramで視覚的に比較したいいくつかの遺伝子リスト(様々な長さのすべて)を持っています。 ReShape2を使って遺伝子名のデータフレームをVenneulerがVenn Diagramをプロットするために使用できる1と0の行列に変換する少しの関数を書いた。私の問題は、ベン図の各部分に関連する値を抽出/計算する方法を理解できないことです。遺伝子名のテーブルを変換します行列からプロットされたvenneuler vennダイアグラムに数を加える方法
A <- c("gene1", "gene2", "gene3", "gene5", "gene12", "", "")
B <- c("gene1", "gene2", "gene6", "gene7", "", "", "")
C <- c("gene2", "gene6", "gene7", "gene8", "gene9", "gene13", "gene14")
D <- c("gene7", "gene8", "gene9", "gene10", "gene11", "gene12", "")
dat <- data.frame(A,B,C,D)
機能:私はR.
で私のプロットにそれらの値を追加することができればさらに、それは素敵なことだ。ここに私のデータがどのように見えるかの例ですVennuelerが使用できる存在/不在行列:
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
}
ロード必要なパッケージ:
library(reshape2)
library(venneuler)
実行vennfunとvenneulerとベン図をプロットするために、出力を使用します。
VennDat <- vennfun(dat)
genes.venn <- venneuler(VennDat)
plot(genes.venn)
私の質問です:私はすべての可能な状態に関連する遺伝子の数を得るのですか(すなわち、 A、AB、ABC、ABCD、B、BC、BCD、ABD、ACDなど)、および/またはこれらの値を私のベン図にどのように追加するのですか?
ありがとうございます!