changeset 3:db5076a0494f draft

Uploaded
author jbrayet
date Thu, 13 Aug 2015 11:02:36 -0400
parents 1b82b311ec5a
children 82b10f23f1fe
files catDist.R
diffstat 1 files changed, 241 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/catDist.R	Thu Aug 13 11:02:36 2015 -0400
@@ -0,0 +1,241 @@
+#usage $0 STEP RIGHT chipPeaks outputFile.png output.txt [controlPeaks]
+args <- commandArgs(TRUE)
+
+input <- args[2]
+pngFile <- args[3]
+dataTable <-read.table(file=input, header=TRUE);
+chip.data<-data.frame(dataTable)
+ifReg <- 0
+if (length(unique(chip.data$Reg))>1) {
+ ifReg <- 1
+}
+
+ifPDF <- 0
+if (length(args)>=5) {
+	ifPDF=args[5]
+}
+if (length(args)==4 & args[4]==1) {
+	ifPDF=1
+}
+
+ifControl <- 0
+if (length(args)>=4 & args[4]!=1 & args[4]!=0) {
+  dataTable <-read.table(file=args[4], header=TRUE);
+  control.data<-data.frame(dataTable)
+  ifControl <- 1
+}
+if (ifReg & ifControl) {
+
+  if (ifPDF==1) {
+	pdf(file = pngFile, width = 14, height = 13, pointsize = 20, bg = "white")
+  } else {
+       png(filename = pngFile, width =  1440, height =  1040, units = "px", pointsize = 20, bg = "white", res = NA)
+	plot(1:10)
+  }
+  op <- par(mfrow = c(3,2))
+} else {
+
+  if (ifPDF==1) {
+	pdf(file = pngFile, width = 22, height = 8, pointsize = 20, bg = "white")
+  } else {
+        png(filename = pngFile, width = 1580, height = 530, units = "px", pointsize = 20, bg = "white", res = NA)
+	plot(1:10)
+  }
+  op <- par(mfrow = c(1,2))
+}
+myColor <- 1
+myColor[1] <- colors()[131]
+myColor[2] <- colors()[59]
+myColor[3] <- colors()[76]
+myColor[4] <- colors()[88]
+myColor[5] <- colors()[17]
+myColor[6] <- colors()[565]
+myColorControl <- 1
+myColorControl[1] <- colors()[24]
+myColorControl[2] <- colors()[278]
+myColorControl[3] <- colors()[305]
+myColorControl[4] <- colors()[219]
+myColorControl[5] <- colors()[343]
+myColorControl[6] <- colors()[245]
+myLevels <- 0
+if (ifReg) {
+ 	if (ifControl) {
+	 #control vs real:
+
+		 countTotal <- length(chip.data$Reg)
+		  totalChIP <- summary(chip.data$Type)/countTotal
+		  tt <- which(chip.data$Type=="intragenic")	
+		  subset.chip <- chip.data[tt,]
+		  countIntra <- length(subset.chip$Reg)
+		  intraChip<- summary(subset.chip$TypeIntra)/countTotal
+		  nlev <- length(levels(chip.data$Type))
+		  countTotalCont <- length(control.data$Reg)
+		      totalContr <- summary(control.data$Type)/countTotalCont
+		      tt <- which(control.data$Type=="intragenic")	
+		      subset.control <- control.data[tt,]
+		      countIntraCont <- length(subset.control$Reg)
+		      intraControl<- summary(subset.control$TypeIntra)/countTotalCont
+		      cum = matrix( 0, nrow=2,  ncol=nlev, byrow = TRUE) 
+		      for (i in c(1:nlev)) {	
+			cum[1,i] <- totalChIP[i]
+			cum[2,i] <- totalContr[i]
+		      }
+
+			labels<-c("GeneDown.", "Enh.", "Imm.Down.", "Interg.", "Intrag.", "Prom.")
+			if (length(labels)==length(levels(chip.data$Type))) {
+				barplot(cum,xlab="",beside=TRUE, col=c(myColor[1],colors()[328]), names.arg=labels,ylab="Proportion of peaks")
+			} else {
+		      		barplot(cum,xlab="",beside=TRUE, col=c(myColor[1],colors()[328]), names.arg=c(levels(chip.data$Type)),ylab="Proportion of peaks")
+			}
+
+    			position <- 'topleft'
+     			inset <- c(0.1, 0)
+			legend(position, c("ChIP","Control"), bty="n",fill=c(myColor[1],colors()[328]), inset=inset)
+
+		      nlev <- length(levels(subset.chip$TypeIntra))
+		      cum = matrix( 0, nrow=2,  ncol=nlev, byrow = TRUE) 
+		      for (i in c(1:nlev)) {	
+			cum[1,i] <- intraChip[i]
+			cum[2,i] <- intraControl[i]
+		      }
+		      barplot(cum,xlab="",beside=TRUE, col=c(myColor[1],colors()[328]), names.arg=c(levels(subset.chip$TypeIntra)),ylab="Proportion of peaks")
+
+			position <- 'topleft'
+     			inset <- c(0.1, 0)
+			legend(position, c("ChIP","Control"), bty="n",fill=c(myColor[1],colors()[328]), inset=inset)
+	}
+	 n.types <- length(levels(chip.data$Reg))
+	 myLevels <- levels(chip.data$Reg)
+	 nlev <- length(levels(chip.data$Type))
+         cum = matrix( 0, nrow=length(myLevels),  ncol=nlev, byrow = TRUE) 
+         countTotal <- length(chip.data$Reg)
+	 colReg <-NULL
+         for (r in c(1:length(myLevels))) {
+	      tt <- which(chip.data$Reg==myLevels[r])
+              totalChIP <- summary(chip.data$Type[tt])/countTotal
+	      for (i in c(1:nlev)) {	
+		cum[r,i] <- totalChIP[i]                
+	      }
+	      colReg[r]<-myColor[r+3]
+         }
+
+	labels<-c("GeneDown.", "Enh.", "Imm.Down.", "Interg.", "Intrag.", "Prom.")
+	if (length(labels)==length(levels(chip.data$Type))) {
+		#barplot(cum,xlab="",beside=TRUE, col=c(myColor[1],myColor[5]), names.arg=labels,ylab="Proportion of peaks")
+		barplot(cum,xlab="",beside=TRUE, col=c(colReg), names.arg=labels,ylab="Proportion of peaks")
+	} else {
+		barplot(cum,xlab="",beside=TRUE, col=c(colReg), names.arg=c(levels(chip.data$Type)),ylab="Proportion of peaks")
+	}
+
+    	position <- 'topleft'
+     	inset <- c(0.1, 0)
+	legend(position, c(myLevels), bty="n",fill=c(colReg), inset=inset)
+
+
+	 nlev <- length(levels(chip.data$TypeIntra))
+         cum = matrix( 0, nrow=length(myLevels),  ncol=nlev, byrow = TRUE) 	 
+         for (r in c(1:length(myLevels))) {
+	      tt <- which(chip.data$Reg==myLevels[r]&chip.data$Type=="intragenic")
+              totalChIP <- summary(chip.data$TypeIntra[tt])/countTotal
+	      for (i in c(1:nlev)) {	
+		cum[r,i] <- totalChIP[i]                
+	      }	      
+         }
+         barplot(cum,xlab="",beside=TRUE, col=c(colReg), names.arg=c(levels(chip.data$TypeIntra)),ylab="Proportion of peaks")
+	position <- 'topleft'
+     	inset <- c(0.1, 0)
+	legend(position, c(myLevels), bty="n",fill=c(colReg), inset=inset)
+
+	 
+	 if (ifControl) {
+		nlev <- length(levels(control.data$Type))
+		cum = matrix( 0, nrow=length(myLevels),  ncol=nlev, byrow = TRUE) 
+		 countTotal <- length(control.data$Reg)
+		 colReg <-NULL
+		 for (r in c(1:length(myLevels))) {
+		      tt <- which(control.data$Reg==myLevels[r])
+		      totalcontrol <- summary(control.data$Type[tt])/countTotal
+		      for (i in c(1:nlev)) {	
+			cum[r,i] <- totalcontrol[i]                
+		      }
+		      colReg[r]<-myColorControl[r+3]
+		 }
+		labels<-c("GeneDown.", "Enh.", "Imm.Down.", "Interg.", "Intrag.", "Prom.")
+		if (length(labels)==length(levels(chip.data$Type))) {
+			barplot(cum,xlab="",beside=TRUE, col=c(colReg), names.arg=labels,ylab="Proportion of peaks")
+		} else {
+		 	barplot(cum,xlab="",beside=TRUE, col=c(colReg), names.arg=c(levels(control.data$Type)),ylab="Proportion of peaks")
+		}
+		position <- 'topleft'
+	     	inset <- c(0.1, 0)
+		legend(position, c(myLevels), bty="n",fill=c(colReg), inset=inset)
+
+		 nlev <- length(levels(control.data$TypeIntra))
+		 cum = matrix( 0, nrow=length(myLevels),  ncol=nlev, byrow = TRUE) 	 
+		 for (r in c(1:length(myLevels))) {
+		      tt <- which(control.data$Reg==myLevels[r]&control.data$Type=="intragenic")
+		      totalcontrol <- summary(control.data$TypeIntra[tt])/countTotal
+		      for (i in c(1:nlev)) {	
+			cum[r,i] <- totalcontrol[i]                
+		      }		      
+		 }
+		 barplot(cum,xlab="",beside=TRUE, col=c(colReg),  names.arg=c(levels(control.data$TypeIntra)),ylab="Proportion of peaks")	   
+		position <- 'topleft'
+	     	inset <- c(0.1, 0)
+		legend(position, c(myLevels), bty="n",fill=c(colReg), inset=inset)
+	 }
+} else {
+  countTotal <- length(chip.data$Reg)
+  totalChIP <- summary(chip.data$Type)/countTotal
+  tt <- which(chip.data$Type=="intragenic")	
+  subset.chip <- chip.data[tt,]
+  countIntra <- length(subset.chip$Reg)
+  intraChip<- summary(subset.chip$TypeIntra)/countTotal
+  nlev <- length(levels(chip.data$Type))
+ if (ifControl) {
+      countTotalCont <- length(control.data$Reg)
+      totalContr <- summary(control.data$Type)/countTotalCont
+      tt <- which(control.data$Type=="intragenic")	
+      subset.control <- control.data[tt,]
+      countIntraCont <- length(subset.control$Reg)
+      intraControl<- summary(subset.control$TypeIntra)/countTotalCont
+      cum = matrix( 0, nrow=2,  ncol=nlev, byrow = TRUE) 
+      for (i in c(1:nlev)) {	
+	cum[1,i] <- totalChIP[i]
+	cum[2,i] <- totalContr[i]
+      }
+
+      labels<-c("GeneDown.", "Enh.", "Imm.Down.", "Interg.", "Intrag.", "Prom.")
+      if (length(labels)==length(levels(chip.data$Type))) {
+		#barplot(cum,xlab="",beside=TRUE, col=c(myColor[1],myColor[5]), names.arg=labels,ylab="Proportion of peaks")
+	 barplot(cum,xlab="",beside=TRUE, col=c(myColor[1],colors()[328]), names.arg=labels,ylab="Proportion of peaks")
+       } else {
+     	 barplot(cum,xlab="",beside=TRUE, col=c(myColor[1],colors()[328]), names.arg=c(levels(chip.data$Type)),ylab="Proportion of peaks")
+       }
+
+    	position <- 'topleft'
+     	inset <- c(0.1, 0)
+	legend(position,c("ChIP","Control"), bty="n",fill=c(myColor[1],colors()[328]), inset=inset)
+
+      nlev <- length(levels(subset.chip$TypeIntra))
+      cum = matrix( 0, nrow=2,  ncol=nlev, byrow = TRUE) 
+      for (i in c(1:nlev)) {	
+	cum[1,i] <- intraChip[i]
+	cum[2,i] <- intraControl[i]
+      }
+      barplot(cum,xlab="",beside=TRUE, col=c(myColor[1],colors()[328]), names.arg=c(levels(subset.chip$TypeIntra)),ylab="Proportion of peaks")	
+	position <- 'topleft'
+     	inset <- c(0.1, 0)
+	legend(position,c("ChIP","Control"), bty="n",fill=c(myColor[1],colors()[328]), inset=inset)
+
+   } else {
+	labels<-c("GeneDown.", "Enh.", "Imm.Down.", "Interg.", "Intrag.", "Prom.")
+	if (length(labels)==length(levels(chip.data$Type))) {
+		barplot(totalChIP,xlab="", col=myColor, names.arg=labels,ylab="Proportion of peaks")
+	} else {
+      		barplot(totalChIP,xlab="", col=myColor,ylab="Proportion of peaks")
+	}
+        barplot(intraChip,xlab="", col=myColor,ylab="Proportion of peaks")
+   }
+}
+dev.off()