2016-06-29 2 views
1

J'ai des objets comme ceux-ci granges (montrant deux des quatre):diagramme de Venn de GRANGES

> upmd_Hf3a 
    GRanges object with 398117 ranges and 2 metadata columns: 
     seqnames     ranges strand |  type  nCG 
      <Rle>    <IRanges> <Rle> | <character> <integer> 
    [1]  chr1  [  1, 714170]  * |   PMD  280 
    [2]  chr1  [714171, 732041]  * |  notPMD  103 
    [3]  chr1  [732042, 762741]  * |   PMD  109 
    [4]  chr1  [762742, 796127]  * |  notPMD  264 
    [5]  chr1  [796128, 859047]  * |   PMD  829 
    ...  ...     ... ... .   ...  ... 
[398113]  chr9 [140133051, 140174235]  * |  notPMD  1725 
[398114]  chr9 [140174236, 140176229]  * |   PMD  187 
[398115]  chr9 [140176230, 140187041]  * |  notPMD  219 
[398116]  chr9 [140967724, 140973103]  * |  notPMD  152 
[398117]  chr9 [140973104, 141042747]  * |   PMD  1145 
seqinfo: 93 sequences from an unspecified genome 

> upmd_Hf3b 
GRanges object with 334247 ranges and 2 metadata columns: 
     seqnames     ranges strand |  type  nCG 
      <Rle>    <IRanges> <Rle> | <character> <integer> 
    [1]  chr1  [  1, 712661]  * |   PMD  274 
    [2]  chr1  [712662, 734889]  * |  notPMD  116 
    [3]  chr1  [734890, 770103]  * |   PMD  152 
    [4]  chr1  [770104, 794246]  * |  notPMD  163 
    [5]  chr1  [794247, 859587]  * |   PMD  855 
    ...  ...     ... ... .   ...  ... 
[334243]  chr9 [137315552, 137325053]  * |  notPMD  265 
[334244]  chr9 [138776843, 138782261]  * |   PMD  119 
[334245]  chr9 [138782262, 138854249]  * |  notPMD  1899 
[334246]  chr9 [139633630, 139648757]  * |   PMD  391 
[334247]  chr9 [140835156, 140917488]  * |   PMD  1169 
------- 
seqinfo: 93 sequences from an unspecified genome 

Je l'ai utilisé pour créer MethylSeekR (prédire paritally méthylés domaines-PMD) ces objets GRANGES. Je veux tracer le diagramme de Venn pour les régions de PMD (pour la colonne "type") pour tous ces objets de GRanges pour montrer le chevauchement. Quelqu'un peut-il m'aider s'il vous plaît avec ceci? Merci beaucoup à l'avance

Répondre

0

Il est plus facile si vous avez votre GRanges séparément:

library(ChIPpeakAnno) 
peaks1 <- GRanges("chr1", IRanges(seq(1, 100, 5), width=2), "+") 
peaks2 <- GRanges("chr1", IRanges(seq(2, 20, 3), width=2), "+") 
peaks3 <- GRanges("chr1", IRanges(seq(10, 50, 4), width=2), "+") 
res <- makeVennDiagram(Peaks=list(peaks1, peaks2, peaks3), 
         NameOfPeaks=c("TF1", "TF2", "TF3")) 

Mais si vous les avez comme un seul GRanges stratifié par type métadonnées, vous pouvez le faire GRangesList et tracer comme ça :

peaks1$type<-"TF1" 
peaks2$type<-"TF2" 
peaks3$type<-"TF3" 
gr <- c(peaks1, peaks2, peaks3) # like your data 

grl <- splitAsList(gr, gr$type) 
res <- makeVennDiagram(Peaks=grl, NameOfPeaks=names(grl)) 

Si vous voulez un diagramme de Venn agréable et coloré, puis vérifiez https://github.com/js229/Vennerable/blob/master/README.md installer Vénérable (je ne pouvais pas obtenir de Rforge) et de le faire comme ceci:

library(Vennerable) 
venn_cnt2venn <- function(venn_cnt){ 
    n <- which(colnames(venn_cnt)=="Counts") - 1 
    SetNames=colnames(venn_cnt)[1:n] 
    Weight=venn_cnt[,"Counts"] 
    names(Weight) <- apply(venn_cnt[,1:n], 1, paste, collapse="") 
    Venn(SetNames=SetNames, Weight=Weight) 
} 
v <- venn_cnt2venn(res$vennCounts) 
plot(v)