On 08/12/2015 02:01 PM, Vincent Carey wrote:
It seems to me we may need a class to manage related annotation
structures. For example, the chromImpute segmentations of the genome
defined for various cell types. I would like to be able to take a region
of the genome (say a SNP) and ask how the state varies across cell types.
AnnotationHub will provide access to cell-type specific GRanges but there
is no container that I can think of that would coordinate these as
analogous
to different "samples".
A somewhat different strategy is to manage the cached (or in some cases
remote, as with bigWig) files and associated ranges, along the lines of
library(GenomicFiles) # aarg, 'Biobase::cache &
AnnotationHub::cache !
library(AnnotationHub)
register(SerialParam()) # turn off parallel eval for development
hub = AnnotationHub()
hublet = query(hub, c("files i'm", "interested in"))
fls = cache(hublet) # cache (if need) and return local path to
files
## alternative, e.g., rtracklayer::bigWig supports remote query
## urls = hublet$sourceurls
rngs = GRanges("chr10", IRanges(c(100000, 200000), width=1))
gf = GenomicFiles(rngs, fls) # use this to manage
MAP = function(rng, fl) import(BEDFile(fl), which=rng)$name
REDUCE = unlist
xx = reduceFiles(gf, MAP=MAP, REDUCE=REDUCE)
mcols(rngs) = simplify2array(xx)
## or SummarizedExperiment(list(my=simplify2array(xx)), rowRanges=rngs)
Am I missing something?
[[alternative HTML version deleted]]