[BioC] Tips for the findOverlappingPeaks function in ChIPpeakAnno package
Noah Dowell
noahd at ucla.edu
Sun Jun 13 02:58:06 CEST 2010
To Whom It may Concern:
In using the findOverlappingPeaks function I encountered the following error:
> tOverlap <- findOverlappingPeaks(rd1, rd1b, maxgap= 50, multiple = TRUE, NameOfPeaks1= "tf1", NameOfPeaks2 = "tf2")
Error in dimnames(x) <- dn :
length of 'dimnames' [2] not equal to array extent
The rd1 and rd2 objects are RangedData created using IRanges but the row names seem to be causing a problem.
> dimnames(rd1)
[[1]]
NULL
[[2]]
[1] "site" "score"
Compare this to the vignette example:
> dimnames(peaks1)
[[1]]
[1] "Site1" "Site2" "Site7" "Site3" "Site4" "Site5" "Site12" "Site6" "Site8" "Site9" "Site10"
[12] "Site11"
[[2]]
[1] "strand"
The work around that seems to fix this problem for me is to use the RangedData object that is the output of the annotatePeakInBatch function. This object has many columns that are of no use to the findOverlappingPeaks function so I did a little subset:
> smallAnno <- annoPeakTotal[,c(1,2)]
> head(smallAnno)
RangedData with 6 rows and 2 value columns across 16 spaces
space ranges | peak strand
<character> <IRanges> | <character> <character>
0001 YAL069W I [ 16, 254] | 0001 1
0002 YAL067W-A I [ 2731, 2924] | 0002 1
0006 YAL062W I [29935, 29959] | 0006 1
0007 YAL062W I [30011, 30039] | 0007 1
0008 YAL062W I [31661, 31678] | 0008 1
0009 YAL062W I [31702, 31710] | 0009 1
Note that this fixed the row names problem:
> dimnames(smallAnno[1:10,])
[[1]]
[1] "0001 YAL069W" "0002 YAL067W-A" "0006 YAL062W" "0007 YAL062W" "0008 YAL062W" "0009 YAL062W"
[7] "0010 YAL062W" "0011 YAL061W" "0017 YAL035W" "0018 YAL035W"
[[2]]
[1] "peak" "strand"
Hope this is helpful to anyone who is loading in BED files of ChIP data and then looking for overlaps.
Best,
Noah
More information about the Bioconductor
mailing list