# HG changeset patch
# User Ido Tamir <ido.tamir@imp.ac.at>
# Date 1376847592 -7200
# Node ID 74bfa2464411a9cdea5efb121d16c0e8c0af229f
# Parent  6df7b07f81c1e543c786fb636090cc46d8d3a0b6
the bioconductor GRanges stuff blows

diff -r 6df7b07f81c1 -r 74bfa2464411 corr.R
--- a/corr.R	Sun Aug 18 18:10:48 2013 +0200
+++ b/corr.R	Sun Aug 18 19:39:52 2013 +0200
@@ -133,6 +133,26 @@
     }
 }
 
+#I hate this bioconductor ranges stuff more and more
+#this is a super s**t api
+mergeSeqInfo <- function(coverages){
+  seqinfos <- do.call("rbind", lapply(coverages, function(cov){ d <- as.data.frame(cov@seqinfo); d$seqnames <- rownames(d); d}))
+  seqinfosMax <- do.call("rbind", by(seqinfos, seqinfos$seqnames, function(byChr){ byChr[order(byChr$seqlengths, decreasing=TRUE),][1,] }))
+  data.frame(seqnames=seqinfosMax$seqnames,seqlengths=seqinfosMax$seqlengths, isCircular=seqinfosMax$isCircular, genome=seqinfosMax$genome)
+}
+
+
+changeSeqInfo <- function(coverages){
+  seqinfo <- mergeSeqInfo(coverages)
+  lapply(coverages, function(cov){ 
+	  si <- as.data.frame(cov@seqinfo)
+      si <- data.frame(chr=rownames(si), si)
+	  sis <- subset(seqinfo, seqnames %in% si$chr) 
+	  si <- Seqinfo(seqnames=as.character(sis$seqnames), seqlengths=sis$seqlengths, isCircular=sis$isCircular, genome=sis$genome)   
+      cov@seqinfo <- si
+	  cov
+  })
+}
 
 args <- commandArgs(TRUE)
 
@@ -151,8 +171,11 @@
 
 
 coverages <- getCoverages(infiles, formats)
+coverages <- changeSeqInfo(coverages)
+
 mappability <- getMappable(coverages, mappable)
 
+
 calcAndPlot(coverages, outnames, mappability, outnamePDF, outnameMat,title)