R/mergeReplicates.R

setGeneric("mergeReplicates", signature = "reads", function(reads, types, ...)
                                         {standardGeneric("mergeReplicates")})

setMethod("mergeReplicates", "GRangesList", function(reads, types, verbose = TRUE)
{
    if(is.null(types))
    	stop("Mandatory argument 'types' not provided.\n")
    if(length(types) != length(reads))
    	stop("'types' and 'reads' lengths differ.\n")

    if(verbose) message("Unlisting GRangesList.")
    readsGR <- unlist(reads, use.names = FALSE)
    rdTypes <- Rle(types, elementNROWS(reads))
    if(verbose) message("Splitting by types.")
    reads <- split(readsGR, rdTypes)
    metadata(reads) <- list(names(reads))
    gc()
    if(verbose) message("Pooled GRangesList created.")
    reads
})

Try the Repitools package in your browser

Any scripts or data that you put into this service are public.

Repitools documentation built on Nov. 8, 2020, 7:52 p.m.