rm(list = ls()) library(pheatmap) #Reference Package expFile="uniSigGeneExp.txt" #Expression data files geneCluFile="geneCluster.txt" #Genotyping result files CluFile="Cluster.txt" #Typing result file cliFile="clinicaldata.txt" #Clinical data files #Reading input files exp=read.table(expFile, header=T, sep="\t", check.names=F, row.names=1) Clu=read.table(CluFile, header=T, sep="\t", check.names=F, row.names=1) geneClu=read.table(geneCluFile, header=T, sep="\t", check.names=F, row.names=1) #Merge data exp=as.data.frame(t(exp)) sameSample=intersect(row.names(exp), row.names(Clu)) exp=exp[sameSample,,drop=F] expData=cbind(exp, geneCluster=geneClu[sameSample,], cluster=Clu[sameSample,]) Project=gsub("(.*?)\\_.*", "\\1", rownames(expData)) library(tidyverse) rownames(expData)=str_replace_all(rownames(expData),"TCGA_","") rownames(expData)=str_replace_all(rownames(expData),"GSE17538_","") rownames(expData)=str_replace_all(rownames(expData),"GSE39582_","") expData=cbind(expData, Project) #Merging clinical data cli=read.table(cliFile, header=T, sep="\t", check.names=F, row.names=1) cli$fustat[cli$fustat==1]="Dead" cli$fustat[cli$fustat==0]="Alive" sameSample=intersect(row.names(expData), row.names(cli)) expData=expData[sameSample,,drop=F] cli=cli[sameSample,,drop=F] data=cbind(expData, cli) colnames(data)[which(colnames(data)=="cluster")]="cluster" #Extracting heatmap data data=data[order(data$geneCluster),] Type=data[,((ncol(data)-2-ncol(cli)):ncol(data))] data=t(data[,1:(ncol(expData)-3)]) #Cluster Color bioCol=c("#0066FF","#FF9900","#FF0000","#6E568C","#7CC767","#223D6C","#D20A13","#FFD121","#088247","#11AA4D") ann_colors=list() col=bioCol[1:length(levels(factor(Type$cluster)))] names(col)=levels(factor(Type$cluster)) ann_colors[["cluster"]]=col GENEcol=bioCol[1:length(levels(factor(Type$geneCluster)))] names(GENEcol)=levels(factor(Type$geneCluster)) ann_colors[["geneCluster"]]=GENEcol #Heatmap Visualization pdf("heatmap.pdf", height=6, width=8) pheatmap(data, annotation=Type, annotation_colors = ann_colors, color = colorRampPalette(c(rep("blue",5), "white", rep("red",5)))(50), cluster_cols =F, cluster_rows =F, scale="row", show_colnames=F, show_rownames=T, fontsize=6, fontsize_row=8, fontsize_col=6) dev.off()