[Bioc-sig-seq] coverage() in IRanges
Hervé Pagès
hpages at fhcrc.org
Mon Jun 28 20:38:56 CEST 2010
Hi Andrew,
On 06/27/2010 08:30 PM, Andrew Yee wrote:
> Herve, thanks for your help. To follow up some more, is there a way to
> directly specify the start and end in coverage(), without using shift
> and width?
No, you need to use shift and width. However, translating your
start/end into shift/width is straightforward. If you have the
start and end, do:
coverage(r, shift=1-start, width=end-start+1)
>
> Or alternatively, as Martin suggests,
>
> r <- IRanges(start = c(30, 60, 70, 100), width = c(20, 18, 20, 18))
> roi = IRanges(c(60, 68), width=5) ## 'regions of interest'
> v = Views(coverage(r), roi)
>
> but in this case, extract the coverage information from v in the above
> example?
'v' is a set of views defined on the full coverage vector for 'r':
> v
Views on a 117-length Rle subject
views:
start end width
[1] 60 64 5 [1 1 1 1 1]
[2] 68 72 5 [1 1 2 2 2]
To extract the coverage spanning the i-th view, use v[[i]]:
> v[[1]]
'integer' Rle of length 5 with 1 run
Lengths: 5
Values : 1
> v[[2]]
'integer' Rle of length 5 with 2 runs
Lengths: 2 3
Values : 1 2
Does this answer your question?
H.
>
> Thanks,
> Andrew
>
>
> 2010/6/25 Hervé Pagès <hpages at fhcrc.org <mailto:hpages at fhcrc.org>>
>
> Hi Andrew,
>
> One way to specify directly the window of interest when calling
> coverage() is to use the 'shift' and 'width' arguments.
> 'shift' allows you to shift the ranges contained in the first
> argument to the left (negative shift) or to the right (positive
> shift) before extracting the coverage:
>
> ## Coverage from positions 60 to 65:
> > as.integer(coverage(r, shift=-59, width=6))
> [1] 1 1 1 1 1 1
>
> ## Coverage from positions 68 to 73:
> > as.integer(coverage(r, shift=-67, width=6))
> [1] 1 1 2 2 2 2
>
> Note that coverage(r, shift=-59, width=6) is equivalent to
> coverage(shift(r, -59), width=6).
>
> Cheers,
> H.
>
>
>
> On 06/23/2010 02:02 PM, Andrew Yee wrote:
>
> Hi, I'm trying to figure out the coverage for a specific range.
>
> Take for example,
>
> r<- IRanges(start = c(30, 60, 70, 100), width = c(20, 18, 20, 18))
>
> I'm interested in the coverage from positions 60 to 65, which in
> this case
> is 1. I'm also interested in the coverage say from positions 68
> to 73,
> which goes from 1 to 2.
>
> While I can use coverage(r) and then use runLength() and
> runValue() to
> ultimately extract this information, is there a way to use
> coverage so that
> you can directly specify the positions of interest?
>
> Thanks,
> Andrew
>
> sessionInfo()
>
> R version 2.11.0 (2010-04-22)
> x86_64-unknown-linux-gnu
>
> locale:
> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
> [5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8
> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
> [9] LC_ADDRESS=C LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> other attached packages:
> [1] IRanges_1.6.0
>
> loaded via a namespace (and not attached):
> [1] tools_2.11.0
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> Bioc-sig-sequencing mailing list
> Bioc-sig-sequencing at r-project.org
> <mailto:Bioc-sig-sequencing at r-project.org>
> https://stat.ethz.ch/mailman/listinfo/bioc-sig-sequencing
>
>
>
--
Hervé Pagès
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M2-B876
P.O. Box 19024
Seattle, WA 98109-1024
E-mail: hpages at fhcrc.org
Phone: (206) 667-5791
Fax: (206) 667-1319
More information about the Bioc-sig-sequencing
mailing list