[Bioc-sig-seq] GRangesList RAM Usage
Dario Strbenac
D.Strbenac at garvan.org.au
Thu Dec 2 07:00:34 CET 2010
Hello,
I have a snippet of code that takes a GRangesList (in my case, of length 8, around about 10 million reads in each GRanges object) and a vector the same length which explains what type of experiment each element is. The snippet combines elements that are of the same type.
Initially, once the GRangesList is loaded in, R is using 2 GB of RAM but then when I run my snippet, R's RAM usage hovers at 22GB - 24GB for many minutes. When I gc(), it drops back to 12GB.
Could I be doing something more efficiently ?
# readsIPs : the GRangesList
# exptTypes : a vector like c("MeDIP", "MeDIP", "H3K27", "H3K27") that is the same length as readsIP.
typeCounts <- table(exptTypes)
if(any(typeCounts > 1))
{
oldOrder <- unique(exptTypes)
repTypes <- names(typeCounts)[typeCounts > 1]
pooledIPs <- lapply(repTypes, function(repType)
{
whichReps <- which(exptTypes == repType)
unlist(readsIPs[whichReps])
})
names(pooledIPs) <- repTypes
uniqueIdxs <- exptTypes %in% names(typeCounts)[typeCounts == 1]
uniqueIPs <- readsIPs[uniqueIdxs]
names(uniqueIPs) <- exptTypes[uniqueIdxs]
readsIPs <- c(GRangesList(pooledIPs), uniqueIPs)[oldOrder]
}
--------------------------------------
Dario Strbenac
Research Assistant
Cancer Epigenetics
Garvan Institute of Medical Research
Darlinghurst NSW 2010
Australia
More information about the Bioc-sig-sequencing
mailing list