# [Bioc-sig-seq] coverage vectors and subseq

Martin Morgan mtmorgan at fhcrc.org
Wed Aug 18 15:01:47 CEST 2010

```On 08/17/2010 09:41 PM, kirti prakash wrote:
> Hi Martin,
>
> Thanks a lot for your help. Bioconductor is a great place as one gets
> the help from the best and its completely free. Its seems all one
> needs to do good research in bioinformatics is a computer, some data
> and Bioconductor.
>
> Its the same tutorial... the link you mentioned above . I cannot
> attach the tutorials due to the limit of mail size.

I meant that if the document is available in a public place, then
provide a  URL to it so that those trying to help can better understand

>
> I did exactly as you told and most the things work fine except...
>
> Later in the tutorial they use deltaConvolve function...
>
> H3K4me1 <- deltaConvolve( cov.H3K4me1.chr10, tss, martReply\$strand ==
> -1, left=win[1], right=win[2] )
> Error in .bracket.Index(i, lx, asRanges = TRUE) :
>  range index out of bounds
> Error in as.vector(seqselect(coverage, winCentres[i] + left, winCentres[i] +  :
>  error in evaluating the argument 'x' in selecting a method for
> function 'as.vector'
>
> Also you mention endoapply above... it also gave me same error...
>
> endoapply(cov.H3K4me1, seqselect, 123456-50, 123456+50)
> Error in .bracket.Index(i, lx, asRanges = TRUE) :
>  range index out of bounds

One approach to solving problems is to try to simplify them. So let's
try to reproduce the error but with a simpler example. You're selecting
a subset of an Rle object

>   seqselect(Rle(1:10, 10:1), 10, 20)
'integer' Rle of length 11 with 3 runs
Lengths: 1 9 1
Values : 1 2 3

The error says something about 'index out of bounds', which suggests

>   seqselect(Rle(1:10, 10:1), 10, 2000)
Error in .bracket.Index(i, lx, asRanges = TRUE) :
range index out of bounds
>   seqselect(Rle(1:10, 10:1), -10, 20)
Error in .bracket.Index(i, lx, asRanges = TRUE) :
range index out of bounds

Any hints to what your original problem is, and how to solve it?

Martin

>
>
> I found that both of these are exception handling errors but I again I
> don't know to fix them. It would be great if you can again help on
> this.

>
> Thanks again,
>
> Best Regards,
>
> Kirti Prakash
>
> On Wed, Aug 18, 2010 at 7:33 AM, kirti prakash
> <kirtiprakash3.14 at gmail.com> wrote:
>> Hi Martin,
>>
>> Thanks a lot for your help. Bioconductor is a great place as one gets
>> the help from the best and its completely free. Its seems all one
>> needs to do good research in bioinformatics is a computer, some data
>> and Bioconductor.
>>
>> Its the same tutorial the link you mentioned above . In future I will
>> attach the pdfs of the tutorials also.
>>
>> I did exactly as you told and most the things work fine except...
>>
>> Later in the tutorial they use deltaConvolve function...
>>
>> H3K4me1 <- deltaConvolve( cov.H3K4me1.chr10, tss, martReply\$strand ==
>> -1, left=win[1], right=win[2] )
>> Error in .bracket.Index(i, lx, asRanges = TRUE) :
>>  range index out of bounds
>> Error in as.vector(seqselect(coverage, winCentres[i] + left, winCentres[i] +  :
>>  error in evaluating the argument 'x' in selecting a method for
>> function 'as.vector'
>>
>> Also you mention endoapply above... it also gave me same error...
>>
>> endoapply(cov.H3K4me1, seqselect, 123456-50, 123456+50)
>> Error in .bracket.Index(i, lx, asRanges = TRUE) :
>>  range index out of bounds
>>
>>
>> I found that both of these are exception handling errors but I again I
>> don't know to fix them. It would be great if you can again help on
>> this.
>>
>> Thanks again,
>>
>> Best Regards,
>>
>> Kirti Prakash
>>
>>
>>
>>
>> On Tue, Aug 17, 2010 at 7:47 PM, Martin Morgan <mtmorgan at fhcrc.org> wrote:
>>> kirti prakash <kirtiprakash3.14 at gmail.com> writes:
>>>
>>>> Hi,
>>>>
>>>> I was reading the material "EMBL course on Short Read analysis with
>>>> Bioconductor: An exercise with coverage vectors" by Simon Anders.
>>>
>>> It took me a second to find
>>>
>>>  http://bioconductor.org/help/course-materials/2009/EMBLJune09/Practicals/TSS/
>>>
>>> is that the tutorial you mean?
>>>
>>>>
>>>> I tried this...
>>>> aln <- readAligned("dirPath", pattern="sequence.map", type="Bowtie")
>>>> cov = coverage(aln)
>>>> cov
>>>> [[1]]
>>>> SimpleRleList of length 25
>>>> \$chr1
>>>> 'integer' Rle of length 247188620 with 840106 runs
>>>>  Lengths:    463     36   6823     36 550058 ...    713     36   2034     36
>>>>  Values :      0      1      0      1      0 ...      0      1      0      2
>>>>
>>>> \$chr10
>>>> 'integer' Rle of length 135373320 with 446681 runs
>>>>  Lengths: 88078    36  3880    36 12451 ...    20    50    36 22054    36
>>>>  Values :     0     1     0     1     0 ...     1     0     1     0     1
>>>> .
>>>> .
>>>> .
>>>>
>>>>> cvg <- cov\$chr10
>>>>> as.vector(subseq(cvg, 123456+50, 123456-50))
>>>
>>> I think this should be
>>>
>>>  seqselect(cvg\$chr10, 123456+50, 123456-50)
>>>
>>> or, to subset all chromosomes,
>>>
>>>  endoapply(cvg, seqselect, 123456+50, 123456-50)
>>>
>>> (though it doesn't seem like you'd usually want to select consistent
>>> coordinates across chromosomes).
>>>
>>> To get here, I looked up the help page for Rle-class
>>>
>>>  > class?Rle
>>>
>>> This is with
>>>
>>>> sessionInfo()
>>> R version 2.11.1 Patched (2010-06-03 r52215)
>>> 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
>>>  [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>>>
>>>  attached base packages:
>>>  [1] stats     graphics  grDevices utils     datasets  methods
>>>  base
>>>
>>>  other attached packages:
>>>  [4] Biostrings_2.16.9   GenomicRanges_1.0.5 IRanges_1.6.11
>>>
>>>  loaded via a namespace (and not attached):
>>>  [1] Biobase_2.8.0 grid_2.11.1   hwriter_1.2   tools_2.11.1
>>>
>>> Martin
>>>
>>>
>>>> Error in function (classes, fdef, mtable)  :
>>>>  unable to find an inherited method for function "subseq", for signature "list"
>>>> Error in as.vector(subseq(cvg, 123456 + 50, 123456 - 50)) :
>>>>  error in evaluating the argument 'x' in selecting a method for
>>>> function 'as.vector'
>>>>
>>>> I guess * 'integer' Rle of length* should be 'numeric' Rle of length
>>>> as per the booklet ... but I don't know how to fix it.
>>>>
>>>> I know I am making some stupid mistake. It would be great if anyone
>>>> can provide some help on this.
>>>>
>>>> Thank you,
>>>>
>>>> Best regards,
>>>>
>>>> Kirti Prakash
>>>>
>>>> _______________________________________________
>>>> Bioc-sig-sequencing mailing list
>>>> Bioc-sig-sequencing at r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/bioc-sig-sequencing
>>>
>>> --
>>> Martin Morgan
>>> Computational Biology / Fred Hutchinson Cancer Research Center
>>> 1100 Fairview Ave. N.
>>> PO Box 19024 Seattle, WA 98109
>>>
>>> Location: Arnold Building M1 B861
>>> Phone: (206) 667-2793
>>>
>>

--
Martin Morgan
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793

```