Hi Dario,
AFAIK the 'start' and 'end' are strand-independent concepts so it
wouldn't be a good idea to let the user specify a strand-specific
window thru these arguments. That means a strand-aware restrict()
would need to have 2 additional arguments. But how should we name them?
My preference would be to support negative values for 'start' and 'end'
like we do for subseq(). When negative, the position is counted from
the end of the sequence (-1 being the last nucleotide). If we had this,
then you could do your strand-specific trimming with:
restrict(gr, start=ifelse(strand(gr) == "-", 51, 1),
end=ifelse(strand(gr) == "-", -1, -51))
Note that using negative values is convenient but not strictly needed:
start <- ifelse(strand(gr) == "-", 51, 1)
end <- extractROWS(seqlengths(gr), seqnames(gr))
end <- ifelse(strand(gr) == "-", end, end - 50)
restrict(gr, start=start, end=end)
Cheers,
H.
On 02/14/2016 09:00 PM, Dario Strbenac wrote:
Hello,
The restrict function currently has no strand settings. This would be useful if
I am creating fixed size windows, 50 bases wide, by sampling the start
positions of the windows from a GRanges object. I'd like to restrict the
GRanges object being sampled from, but only on the - stand when removing
positions 1 to 50 and only on the positive strand when removing positions
within the last 50 bases of the chromosome. So, a strand-aware version would be
useful, to avoid sampling start positions too close to the ends of chromosomes.
I suppose that setdiff will be a suitable alternative, if the first and last 50
bases are calculated of each chromosome.
--------------------------------------
Dario Strbenac
PhD Student
University of Sydney
Camperdown NSW 2050
Australia
_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel
--
Hervé Pagès
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024
E-mail: [email protected]
Phone: (206) 667-5791
Fax: (206) 667-1319
_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel