#引用包 library(GSVA) library(limma) library(GSEABase) expFile="symbol-L.txt" gmtFile="immune.gmt" rt=read.table(expFile, header=T, sep="\t", check.names=F) rt=as.matrix(rt) rownames(rt)=rt[,1] exp=rt[,2:ncol(rt)] dimnames=list(rownames(exp),colnames(exp)) mat=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames) mat=avereps(mat) mat=mat[rowMeans(mat)>0,] geneSet=getGmt(gmtFile, geneIdType=SymbolIdentifier()) ssgseaScore=gsva(mat, geneSet, method='ssgsea', kcdf='Gaussian', abs.ranking=TRUE) normalize=function(x){ return((x-min(x))/(max(x)-min(x)))} ssgseaOut=normalize(ssgseaScore) ssgseaOut=rbind(id=colnames(ssgseaOut),ssgseaOut) write.table(ssgseaOut, file="ssgseaOut-L.txt", sep="\t", quote=F, col.names=F) library(utils) library(limma) library(estimate) inputFile="symbol-L-yin.txt" #表达输入文件 rt=read.table(inputFile, header=T, sep="\t", check.names=F) rt=as.matrix(rt) rownames(rt)=rt[,1] exp=rt[,2:ncol(rt)] dimnames=list(rownames(exp),colnames(exp)) data=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames) data=avereps(data) out=data[rowMeans(data)>0,] out=rbind(ID=colnames(out),out) write.table(out,file="uniq.symbol-L-yin.txt",sep="\t",quote=F,col.names=F) filterCommonGenes(input.f="uniq.symbol-L-yin.txt", output.f="commonGenes.gct", id="GeneSymbol") estimateScore(input.ds = "commonGenes.gct", output.ds="estimateScore.gct") scores=read.table("estimateScore.gct", skip=2, header=T) rownames(scores)=scores[,1] scores=t(scores[,3:ncol(scores)]) rownames(scores)=gsub("\\.", "\\-", rownames(scores)) out=rbind(ID=colnames(scores), scores) write.table(out, file="TMEscores-L-yin.txt", sep="\t", quote=F, col.names=F) library(pheatmap) ssgseaFile="ssgseaOut-L-all.txt" clusterFile="cluster-L.txt" estimateFile="TMEscore-L.txt" Type=read.table(clusterFile, header=F, sep="\t", check.names=F, row.names=1) colnames(Type)=c("Subtype") Type=Type[order(Type[,"Subtype"],decreasing=T),,drop=F] Type$Subtype=factor(Type$Subtype, levels=unique(Type$Subtype)) rt=read.table(ssgseaFile, header=T, sep="\t", check.names=F, row.names=1) rt=rt[,row.names(Type)] score=read.table(estimateFile, header=T, sep="\t", check.names=F, row.names=1) score=score[row.names(Type),,drop=F] cluster=cbind(Type, score) ann_colors=list() clusterCol=c("blue", "red") names(clusterCol)=levels(factor(Type$Subtype)) ann_colors[["Subtype"]]=clusterCol pdf("estimateHM-L.pdf", width=9, height=5) pheatmap(rt, annotation=cluster, annotation_colors = ann_colors, color = colorRampPalette(c(rep("blue",3), "white", rep("red",3)))(50), cluster_cols =F, scale="row", show_colnames=F, fontsize=8, fontsize_row=8, fontsize_col=3) dev.off() library(reshape2) library(ggpubr) clusterFile="cluster-L.txt" estimateFile="TMEscore-L.txt" Type=read.table(clusterFile, header=F, sep="\t", check.names=F, row.names=1) colnames(Type)=c("Subtype") Type=Type[order(Type[,"Subtype"],decreasing=T),,drop=F] Type$Subtype=factor(Type$Subtype, levels=unique(Type$Subtype)) score=read.table(estimateFile, header=T, sep="\t", check.names=F, row.names=1) score=score[,1:3] score=score[row.names(Type),,drop=F] rt=cbind(Type, score) data=melt(rt, id.vars=c("Subtype")) colnames(data)=c("Subtype", "scoreType", "Score") p=ggviolin(data, x="scoreType", y="Score", fill = "Subtype", xlab="", ylab="TME score", legend.title="Subtype", add = "boxplot", add.params = list(color="white"), palette = c("blue","red"), width=1) p=p+rotate_x_text(45) p1=p+stat_compare_means(aes(group=Subtype), method="wilcox.test", symnum.args=list(cutpoints = c(0, 0.001, 0.01, 0.05, 1), symbols = c("***", "**", "*", " ")), label = "p.signif") pdf(file="vioplot.pdf", width=6, height=5) print(p1) dev.off() library(limma) inputFile="symbol-L.txt" fdrFilter=0.05 logFCfilter=1 conNum=4 treatNum=5 outTab=data.frame() grade=c(rep(1,treatNum),rep(2,conNum)) rt=read.table(inputFile,sep="\t",header=T,check.names=F) rt=as.matrix(rt) rownames(rt)=rt[,1] exp=rt[,2:ncol(rt)] dimnames=list(rownames(exp),colnames(exp)) data=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames) data=avereps(data) data=data[rowMeans(data)>0.2,] for(i in row.names(data)){ geneName=unlist(strsplit(i,"\\|",))[1] geneName=gsub("\\/", "_", geneName) rt=rbind(expression=data[i,],grade=grade) rt=as.matrix(t(rt)) wilcoxTest<-wilcox.test(expression ~ grade, data=rt) conGeneMeans=mean(data[i,1:conNum]) treatGeneMeans=mean(data[i,(conNum+1):ncol(data)]) logFC=log2(treatGeneMeans)-log2(conGeneMeans) pvalue=wilcoxTest$p.value conMed=median(data[i,1:conNum]) treatMed=median(data[i,(conNum+1):ncol(data)]) diffMed=treatMed-conMed if( ((logFC>0) & (diffMed>0)) | ((logFC<0) & (diffMed<0)) ){ outTab=rbind(outTab,cbind(gene=i,conMean=conGeneMeans,treatMean=treatGeneMeans,logFC=logFC,pValue=pvalue)) } } pValue=outTab[,"pValue"] fdr=p.adjust(as.numeric(as.vector(pValue)),method="fdr") outTab=cbind(outTab,fdr=fdr) write.table(outTab,file="all.txt",sep="\t",row.names=F,quote=F) outDiff=outTab[( abs(as.numeric(as.vector(outTab$logFC)))>logFCfilter & as.numeric(as.vector(outTab$fdr))0.05){ colorSel="pvalue" } kk=enrichGO(gene = gene,OrgDb = org.Hs.eg.db, pvalueCutoff =2, qvalueCutoff = 1, ont="all", readable =T) GO=as.data.frame(kk) GO=GO[(GO$pvaluemedian2){ y1=ifelse(y==1, "Immunity_H", "Immunity_L") }else{ y1=ifelse(y==1, "Immunity_L", "Immunity_H") } write.table(y1, file="cluster.txt", sep="\t", quote=F, col.names=F) y2=ifelse(y1=="Immunity_H", "red", "blue") pdf(file="hclust.pdf", width=30, height=15) ColorDendrogram(hc, y=y2, labels=names(y), branchlength=0.3, xlab=" ", sub=" ", main = " ") dev.off() tsneOut=Rtsne(t(data), dims=2, perplexity=10, verbose=F, max_iter=500,check_duplicates=F) tsne=data.frame(tSNE1 = tsneOut$Y[,1], tSNE2 = tsneOut$Y[,2], Subtype=y1) #绘制tSNE图 pdf(file="tSNE.pdf", width=6.5, height=5) p=ggplot(data = tsne, aes(tSNE1, tSNE2)) + geom_point(aes(color = Subtype)) + scale_colour_manual(name="Subtype", values =c("red", "blue"))+ theme_bw()+ theme(plot.margin=unit(rep(1.5,4),'lines'))+ theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) print(p) dev.off() library(ggplot2) inputFile="all-L.txt" outFile="vol-L.pdf" logFCfilter=1 pValue=0.05 rt=read.table(inputFile,sep="\t",header=T,check.names=F) Significant=ifelse((rt$pValuelogFCfilter), ifelse(rt$logFC>logFCfilter,"Up","Down"), "Not") p = ggplot(rt, aes(logFC, -log10(fdr)))+ geom_point(aes(col=Significant))+ scale_color_manual(values=c("green", "black", "red"))+ labs(title = " ")+ theme(plot.title = element_text(size = 16, hjust = 0.5, face = "bold")) p=p+theme_bw() pdf(outFile,width=5.5,height=4.5) print(p) dev.off()