#DGE for microarray by limma library("edgeR") library('WGCNA') library('gplots') library('limma') setwd("C:/Users/lenovo/Desktop/Diabetic children/DEG(logFC=0.5,P=0.01)/DEG") foldChange=0.5 padj=0.01 rawexprSet=read.csv("express-counts2.csv",header=TRUE,row.names=1,check.names = FALSE) dim(rawexprSet) exprSet=log2(rawexprSet) par(mfrow=c(1,2)) boxplot(data.frame(exprSet),col="blue") exprSet[1:5,1:5] group <- read.csv("datTraits.csv",header=TRUE,row.names=1,check.names = FALSE) group <- group[,1] design <- model.matrix(~0+factor(group)) colnames(design)=levels(factor(group)) rownames(design)=colnames(exprSet) fit <- lmFit(exprSet,design) cont.matrix<-makeContrasts(paste0(unique(group),collapse = "-"),levels = design) fit2=contrasts.fit(fit,cont.matrix) fit2 <- eBayes(fit2) ##eBayes() with trend=TRUE tempOutput = topTable(fit2,coef=1,n=Inf,adjust="BH") nrDEG = na.omit(tempOutput) allDiff <- nrDEG diff=allDiff write.csv(diff, "limmaOut.csv") diffSig = diff[(diff$P.Value < padj & (diff$logFC>foldChange | diff$logFC<(-foldChange))),] #write.table(diffSig, file="diffSig.xls",sep="\t",quote=F) write.csv(diffSig, "diffSig.csv") diffUp = diff[(diff$P.Value < padj & (diff$logFC>foldChange)),] #write.table(diffUp, file="up.xls",sep="\t",quote=F) write.csv(diffUp, "diffUp.csv") diffDown = diff[(diff$P.Value < padj & (diff$logFC<(-foldChange))),] #write.table(diffDown, file="down.xls",sep="\t",quote=F) write.csv(diffDown, "diffDown.csv") #volcano pdf(file="vol.pdf") xMax=max(-log10(allDiff$P.Value))+1 yMax=5 plot(-log10(allDiff$P.Value), allDiff$logFC, xlab="-log10(P.Value)",ylab="logFC", main="Volcano", xlim=c(0,xMax),ylim=c(-yMax,yMax),yaxs="i",pch=20, cex=0.4) diffSub=allDiff[allDiff$P.ValuefoldChange,] points(-log10(diffSub$P.Value), diffSub$logFC, pch=20, col="red",cex=0.4) diffSub=allDiff[allDiff$P.Value