[Bioc-sig-seq] IRanges - start and width replacement methods for RangedData and RangesList

Patrick Aboyoun paboyoun at fhcrc.org
Mon Jul 13 22:07:12 CEST 2009


Nicolas,
Michael is out globetrotting so I have taken up your suggestion for 
adding "start<-", "end<-", and "width<-" methods for RangedData and 
RangesList objects. You can find these new methods in a recent svn BioC 
2.5 (devel) check-in to IRanges version 1.3.34, which should be 
available 24 hours from now from bioconductor.org. These methods accept 
either an appropriately formed integer vector that will be split by 
space(x) or an IntegerList object of the same makeup as x. There is also 
an optimization when the RangesList is of subclass 
CompressedIRangesList. Here is some example code using this new 
functionality:

 > suppressMessages(library(IRanges))
 > ranges1 <- IRanges(start=c(1,2,3), end=c(5,2,8))
 > ranges2 <- IRanges(start=c(15,45,20,1), end=c(15,100,80,5))

 > rangeslist <- IRangesList(one = ranges1, two = ranges2)
 > rangeddata <- RangedData(c(ranges1, ranges2), X = rnorm(7),
+   space = rep(c("one", "two"), elementLengths(rangeslist)))

 > start(rangeslist)
[1]  1  2  3 15 45 20  1
 > start(rangeslist) <- 1L
 > start(rangeslist)
[1] 1 1 1 1 1 1 1

 > width(rangeddata)
[1]  5  1  6  1 56 61  5
 > width(rangeddata) <- seq_len(nrow(rangeddata))
 > width(rangeddata)
[1] 1 2 3 4 5 6 7

 > sessionInfo()
R version 2.10.0 Under development (unstable) (2009-06-28 r48863)
i386-apple-darwin9.7.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base    

other attached packages:
[1] IRanges_1.3.34



Patrick


Nicolas Delhomme wrote:
> Hello Michael, everybody,
>
> I had a need for the "start"  and "width" replacement methods for 
> objects of type RangedData and RangesList. I've attached the method 
> below for two reasons:
>
> 1) I'd like to have them checked by an expert eye (not that I end up 
> messing up my analyses...)
>
> 2) depending on 1), they might actually be worthy for others :-)
>
> setReplaceMethod("start","RangesList",function(x,check=TRUE,value){
>   values <- split(value,space(x))
>   for(i in seq(along=x)){
>     start(x[[i]]) <- values[[i]]
>   }
>   x
> })
>
> setReplaceMethod("start","RangedData",function(x,check=TRUE,value){
>   start(ranges(x))<-value
>   return(x)
> })
>
> setReplaceMethod("width","RangesList",function(x,check=TRUE,value){
>   values <- split(value,space(x))
>   for(i in seq(along=x)){
>     width(x[[i]]) <- values[[i]]
>   }
>   x
> })
>
> setReplaceMethod("width","RangedData",function(x,check=TRUE,value){
>   width(ranges(x))<-value
>   return(x)
> })
>
> Best,
>
> Nico
>
> ---------------------------------------------------------------
> Nicolas Delhomme
>
> High Throughput Functional Genomics Center
>
> European Molecular Biology Laboratory
>
> Tel: +49 6221 387 8426
> Email: nicolas.delhomme at embl.de
> Meyerhofstrasse 1 - Postfach 10.2209
> 69102 Heidelberg, Germany
>
> _______________________________________________
> Bioc-sig-sequencing mailing list
> Bioc-sig-sequencing at r-project.org
> https://stat.ethz.ch/mailman/listinfo/bioc-sig-sequencing



More information about the Bioc-sig-sequencing mailing list