compress.cn<-function(f) # f is the matrix output from faset() { ncl<-ncol(f) nrw<-nrow(f) breaks<-which(f[1:(nrw-1),1] != f[2:nrw,1]) for(i in 3:ncl) { breaks<-c(breaks, which(f[1:(nrw-1),i] != f[2:nrw,i])) } breaks<-unique(c(0,breaks,nrw)) breaks<-breaks[order(breaks)] Chromosome<-f[breaks[2:length(breaks)],1] Start<-f[breaks[1:(length(breaks)-1)]+1,2] End<-f[breaks[2:length(breaks)],2] new.f<-f[breaks[2:length(breaks)],3:ncl] new.f<-cbind(Chromosome, Start, End, new.f) rownames(new.f)<-1:nrow(new.f) return(new.f) }