[Bioc-sig-seq] GRangesList RAM Usage

Dario Strbenac D.Strbenac at garvan.org.au
Thu Dec 2 07:00:34 CET 2010


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)
	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

More information about the Bioc-sig-sequencing mailing list