时间:2024-03-05 22:44:59 阅读:47
bilibili:文章对应的讲解视频在此。熊大学习社 https://space.bilibili.com/475774512
Gitee开源:https://gitee.com/shenghuaxiong/ioter
CSDN玩转物联网专栏文章:https://blog.csdn.net/shx13141/category_11669532.html
微信公众号:熊大学习社、诺维之舟
公益网站,http://nwzz.xyz/ ,可在线使用chatgpt3.5|GPT4|Midjourney
课程相关资料:
(1)学习资料,包括医学SCI绘图-基于R课程的50+种学术图片的代码和数据。关注公众号“熊大学习社”,回复“scih1214”,获取资料链接,代码在文章中。50+种学术图片的代码和数据资料在文章最下面,付费后可见。
谢谢您的支持,我们坚持学以致用、高效学习、质量服务,做好有质量的分享。
另外,服务合作请联系: sophie_sheng1122。
关注B站熊大学习社,公众号诺维之舟、熊大学习社。您的一键三连是我最大的动力。
效果
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(dplyr)) install.packages("dplyr") if (!require(viridis)) install.packages("viridis") if (!require(gridExtra)) install.packages("gridExtra") if (!require(devtools)) install.packages("devtools") devtools::install_local("gganatogram-master.zip") # 加载库 library(gganatogram) library(dplyr) library(viridis) library(gridExtra) inputFile="male.txt" outFile="gganatogram.tiff" gender="male" rt=read.table(inputFile, header=T, sep="\t", check.names=F, stringsAsFactors=F) #??ȡ?????ļ? tiff(outFile,width=800,height=600,units="px") gganatogram(data=rt, fillOutline='white', organism='human', sex=gender, fill="value")+ theme_void() + scale_fill_gradient2(low = "green", mid="black", high = "red",midpoint = 3) dev.off()
效果
代码
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 读取输入文件 rt=read.table("input.txt", header=T, sep="\t",comment.char = "", check.names =FALSE) tb=table(c(as.vector(rt[,1]),as.vector(rt[,2]))) #对两列进行统计 #tb=table(as.vector(rt[,1])) #对一列进行统计//不用的代码加# tb=sort(tb,decreasing =T) #频率高的排前面 # 输入每个基因的邻接点节点数目 outTab=as.data.frame(tb) colnames(outTab)=c("Gene","Count") write.table(outTab,file="statResult.xls",sep="\t",quote=F,row.names=F) # 定义柱状图显示基因数目 showNum=30 if(nrow(tb)<showNum){ showNum=nrow(outTab) } n=as.matrix(tb)[1:showNum,] # 绘制柱状图 tiff(file="barplot.tiff", width = 800, height = 600, units = "px") par(mar=c(5,7,2,3),xpd=T) bar=barplot(n,horiz=TRUE,col="skyblue",names=FALSE,xlim=c(0,ceiling(max(n)/5)*5),xlab="Number of adjacent nodes") text(x=n*0.95,y=bar,n) text(x=-0.2,y=bar,label=names(n),xpd=T,pos=2) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggplot2)) install.packages("ggplot2") #三列信息需要的 #Term: GO或者通路名称 #Count: 富集在每个term的基因数目 #FDR: 矫正后的pֵ # 加载库 library(ggplot2) #引用包 inputFile="input.txt" #输入 outFile="barplot.tiff" #输出 rt = read.table(inputFile, header=T, sep="\t", check.names=F) #读取 # 按FDR排序 labels=rt[order(rt$FDR,decreasing =T),"Term"] rt$Term = factor(rt$Term,levels=labels) # 绘制 p=ggplot(data=rt)+geom_bar(aes(x=Term, y=Count, fill=FDR), stat='identity')+ coord_flip() + scale_fill_gradient(low="red", high = "blue")+ xlab("Term") + ylab("Gene count") + theme(axis.text.x=element_text(color="black", size=10),axis.text.y=element_text(color="black", size=10)) + scale_y_continuous(expand=c(0, 0)) + scale_x_discrete(expand=c(0,0))+ theme_bw() ggsave(outFile,width=7,height=5) #保存图片 dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() inputFile="input.txt" #输入 outFile="barplot.tiff" #输出 #读取文件,整理 data=read.table(inputFile,sep="\t",header=T,row.names=1,check.names=F) data=t(data) col=rainbow(nrow(data),s=0.7,v=0.7) #绘制 tiff(outFile,height=1000,width=2000, units = "px") par(las=1,mar=c(8,5,4,16),mgp=c(3,0.1,0),cex.axis=1.5) a1=barplot(data,col=col,yaxt="n",ylab="Relative Percent",xaxt="n",cex.lab=1.8) a2=axis(2,tick=F,labels=F) axis(2,a2,paste0(a2*100,"%")) axis(1,a1,labels=F) par(srt=60,xpd=T);text(a1,-0.02,colnames(data),adj=1,cex=0.6);par(srt=0) ytick2 = cumsum(data[,ncol(data)]) ytick1 = c(0,ytick2[-length(ytick2)]) legend(par('usr')[2]*0.98,par('usr')[4],legend=rownames(data),col=col,pch=15,bty="n",cex=1.3) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggplot2)) install.packages("ggplot2") # 输入文件需要有3列信息 # ONTOLOGY: GO分类,BP/CC/MF # Term: GO名称 # Count: 富集在每个Term上基因数目 # 加载库 library(ggpubr) #引用包 inputFile="input.txt" #输入 outFile="barplot.tiff" #输出 rt=read.table(inputFile,header=T,sep="\t",check.names=F) #读取输入文件 # 绘制 tiff(file=outFile,width=700,height=500, units = "px") ggbarplot(rt, x="Term", y="Count", fill = "ONTOLOGY", color = "white", orientation = "horiz", #横向显示 palette = "aaas", #配色方案 legend = "right", #图例位置 sort.val = "asc", #上升排序,区别于desc sort.by.groups=TRUE)+ #按组排序 scale_y_continuous(expand=c(0, 0)) + scale_x_discrete(expand=c(0,0)) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(plyr)) install.packages("plyr") if (!require(ggpubr)) install.packages("ggpubr") #引用包 library(plyr) library(ggpubr) inputFile="input.txt" #输入 outFile="boxplot.tiff" #输出 rt=read.table(inputFile, sep="\t", header=T, check.names=F) #读取输入文件 x=colnames(rt)[2] y=colnames(rt)[3] colnames(rt)=c("id","Type","expression") # 定义输出图片的排序方式 med=ddply(rt,"Type",summarise,med=median(expression)) rt$Type=factor(rt$Type, levels=med[order(med[,"med"],decreasing = T),"Type"]) # 绘制 col=rainbow(length(levels(factor(rt$Type)))) p=ggboxplot(rt, x="Type", y="expression", color = "Type", palette = col, ylab=y, xlab=x, #add = "jitter", #绘制每个样品的散点 legend = "right") tiff(file=outFile, width=1000, height=600, units = "px") #输出图片文件 p+rotate_x_text(60) #倾斜角度 dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggpubr)) install.packages("ggpubr") # 加载库 library(ggpubr) #引用包 inputFile="input.txt" #输入文件 outFile="boxplot.tiff" #输出文件 # 读取输入文件,并对输入文件整理 rt=read.table(inputFile,sep="\t",header=T,check.names=F) x=colnames(rt)[2] y=colnames(rt)[3] colnames(rt)=c("id","Type","Expression") # 设置比较租 group=levels(factor(rt$Type)) rt$Type=factor(rt$Type, levels=group) comp=combn(group,2) my_comparisons=list() for(i in 1:ncol(comp)){my_comparisons[[i]]<-comp[,i]} # 绘制boxplot boxplot=ggboxplot(rt, x="Type", y="Expression", color="Type", xlab=x, ylab=y, legend.title=x, palette = c("blue","red"), add = "jitter")+ stat_compare_means(comparisons = my_comparisons) #输出图片 tiff(file=outFile,width=500,height=450, units= "px") print(boxplot) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(reshape2)) install.packages("reshape2") if (!require(ggpubr)) install.packages("ggpubr") # 加载库 library(reshape2) library(ggpubr) inputFile="input.txt" #输入文件 outFile="boxplot.tiff" #输出文件 #读取输入文件 rt=read.table(inputFile,sep="\t",header=T,check.names=F,row.names=1) x=colnames(rt)[1] colnames(rt)[1]="Type" #把数据转换成gglpot2输入文件 data=melt(rt,id.vars=c("Type")) colnames(data)=c("Type","Gene","Expression") #绘制boxplot p=ggboxplot(data, x="Gene", y="Expression", color = "Type", ylab="Gene expression", xlab="", legend.title=x, palette = c("blue","red"), width=0.6, add = "none") p=p+rotate_x_text(60) p1=p+stat_compare_means(aes(group=Type), method="wilcox.test", symnum.args=list(cutpoints = c(0, 0.001, 0.01, 0.05, 1), symbols = c("***", "**", "*", " ")), label = "p.signif") #输出图片 tiff(file=outFile, width=600, height=500, units = "px") print(p1) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggpubr)) install.packages("ggpubr") # 加载库 library(ggpubr) inputFile="input.txt" outFile="boxplot.tiff" #读取输入文件 rt=read.table(inputFile,sep="\t",header=T,check.names=F) x=colnames(rt)[2] y=colnames(rt)[3] colnames(rt)=c("id","Type","Expression") #设置比较租 group=levels(factor(rt$Type)) rt$Type=factor(rt$Type, levels=group) comp=combn(group,2) my_comparisons=list() for(i in 1:ncol(comp)){my_comparisons[[i]]<-comp[,i]} #绘制boxplot boxplot=ggboxplot(rt, x="Type", y="Expression", color="Type", xlab=x, ylab=y, legend.title=x, add = "jitter")+ stat_compare_means(comparisons = my_comparisons) #输出图片 tiff(file=outFile, width=550, height=500, units = "px") print(boxplot) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(reshape2)) install.packages("reshape2") if (!require(ggplot2)) install.packages("ggplot2") # 加载库 library(ggplot2) library(reshape2) inputFile="input.txt" outFile="boxplot.tiff" #读取输入文件 rt=read.table(inputFile, header=T,sep="\t",check.names=F,row.names=1) x=colnames(rt)[1] colnames(rt)[1]="Type" #差异分析 geneSig=c("") for(gene in colnames(rt)[2:ncol(rt)]){ rt1=rt[,c(gene,"Type")] colnames(rt1)=c("expression","Type") p=1 if(length(levels(factor(rt1$Type)))>2){ test=kruskal.test(expression ~ Type, data = rt1) p=test$p.value }else{ test=wilcox.test(expression ~ Type, data = rt1) p=test$p.value } Sig=ifelse(p<0.001,"***",ifelse(p<0.01,"**",ifelse(p<0.05,"*",""))) geneSig=c(geneSig,Sig) } colnames(rt)=paste0(colnames(rt),geneSig) #把数据转换成ggplot2输入文件 data=melt(rt,id.vars=c("Type")) colnames(data)=c("Type","Gene","Expression") #绘制 p1=ggplot(data,aes(x=Type,y=Expression,fill=Type))+ guides(fill=guide_legend(title=x))+ labs(x = x, y = "Gene expression")+ geom_boxplot()+ facet_wrap(~Gene,nrow =1)+ theme_bw()+ theme(axis.text.x = element_text(angle = 45, hjust = 1)) #输出 tiff(file=outFile, width=900, height=500, units = "px") print(p1) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggpubr)) install.packages("ggpubr") # 加载库 library(ggpubr) inputFile="input.txt" outFile="vioplot.tiff" #读取 rt=read.table(inputFile,header=T,sep="\t",check.names=F) x=colnames(rt)[2] y=colnames(rt)[3] colnames(rt)=c("id","Type","Expression") #s设置比较组 group=levels(factor(rt$Type)) rt$Type=factor(rt$Type, levels=group) comp=combn(group,2) my_comparisons=list() for(i in 1:ncol(comp)){my_comparisons[[i]]<-comp[,i]} #绘制 tiff(file=outFile, width=600, height=500, units = "px") ggviolin(rt, x="Type", y="Expression", fill = "Type", xlab=x, ylab=y, legend.title=x, add = "boxplot", add.params = list(fill="white"))+ stat_compare_means(comparisons = my_comparisons) #stat_compare_means(comparisons = my_comparisons,symnum.args=list(cutpoints = c(0, 0.001, 0.01, 0.05, 1), symbols = c("***", "**", "*", "ns")),label = "p.signif") dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(reshape2)) install.packages("reshape2") if (!require(ggpubr)) install.packages("ggpubr") # 加载库 library(reshape2) library(ggpubr) inputFile="input.txt" outFile="vioplot.tiff" #读取文件 rt=read.table(inputFile,header=T,sep="\t",check.names=F,row.names=1) x=colnames(rt)[1] colnames(rt)[1]="Type" #把数据转换成ggplot2数据文件 data=melt(rt,id.vars=c("Type")) colnames(data)=c("Type","Gene","Expression") #绘制小提琴图 p=ggviolin(data, x="Gene", y="Expression", color = "Type", ylab="Gene expression", xlab=x, legend.title=x, add.params = list(fill="white"), palette = c("blue","red"), width=1, add = "boxplot") p=p+rotate_x_text(60) p1=p+stat_compare_means(aes(group=Type), method="wilcox.test", symnum.args=list(cutpoints = c(0, 0.001, 0.01, 0.05, 1), symbols = c("***", "**", "*", " ")), label = "p.signif") #输出 tiff(file=outFile, width=600, height=500, units = "px") print(p1) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(reshape2)) install.packages("reshape2") if (!require(ggplot2)) install.packages("ggplot2") # 加载库 library(ggplot2) library(reshape2) inputFile="input.txt" outFile="vioplot.tiff" #读取输入文件 rt=read.table(inputFile, header=T,sep="\t",check.names=F,row.names=1) x=colnames(rt)[1] colnames(rt)[1]="Type" #差异分析 geneSig=c("") for(gene in colnames(rt)[2:ncol(rt)]){ rt1=rt[,c(gene,"Type")] colnames(rt1)=c("expression","Type") p=1 if(length(levels(factor(rt1$Type)))>2){ test=kruskal.test(expression ~ Type, data = rt1) p=test$p.value }else{ test=wilcox.test(expression ~ Type, data = rt1) p=test$p.value } Sig=ifelse(p<0.001,"***",ifelse(p<0.01,"**",ifelse(p<0.05,"*",""))) geneSig=c(geneSig,Sig) } colnames(rt)=paste0(colnames(rt),geneSig) # 把数据转换成ggplot2文件 data=melt(rt,id.vars=c("Type")) colnames(data)=c("Type","Gene","Expression") # 绘制 p1=ggplot(data,aes(x=Type,y=Expression,fill=Type))+ guides(fill=guide_legend(title=x))+ labs(x = x, y = "Gene expression")+ geom_violin()+ geom_boxplot(width=0.2,position=position_dodge(0.9))+ facet_wrap(~Gene,nrow =1)+ theme_bw()+ theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 出图 tiff(file=outFile, width=900, height=500, units = "px") print(p1) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggpubr)) install.packages("ggpubr") # 加载库 library("ggpubr") inputFile="input.txt" outFile="pairDiff.tiff" ylab="BRCA1 expression" #y轴名称 #读取输入文件 data=read.table(inputFile,sep="\t",header=T,check.names=F,row.names=1) cond1=colnames(data)[1] cond2=colnames(data)[2] #绘制 tiff(file=outFile, width=500, height=400, units = "px") ggpaired(data, cond1 = cond1, cond2 = cond2, fill = "condition", palette = "jco", legend.title="Condition",xlab="",ylab = ylab)+ #stat_compare_means(paired = TRUE, label = "p.format", label.x = 1.35) stat_compare_means(paired = TRUE, symnum.args=list(cutpoints = c(0, 0.001, 0.01, 0.05, 1), symbols = c("***", "**", "*", "ns")),label = "p.signif",label.x = 1.35) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggpubr)) install.packages("ggpubr") # 加载库 library(ggpubr) inputFile="input.txt" outFile="ggballoonplot.tiff" #输出文件 data=read.table(inputFile,sep="\t",header=T,check.names=F,row.names=1) # 绘制气泡图 tiff(file=outFile,width=800,height=700, units = "px") ggballoonplot(data, fill = 'value')+gradient_fill(c('blue', 'white', 'red')) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggpubr)) install.packages("ggpubr") # 加载库 library(ggpubr) inputFile="input.txt" outFile="Deviation.tiff" # 读取 rt=read.table(inputFile,sep="\t",header=T,check.names=F) x=colnames(rt)[1] y=colnames(rt)[2] colnames(rt)=c("Name","Value") rt$Regulate=factor(ifelse(rt$Value<0, "Down", "Up"), levels = c("Up", "Down")) # 绘制 tiff(file=outFile,width=600,height=500, units = "px") ggbarplot(rt, x="Name", y="Value", fill = "Regulate", color = "white", palette = "jco", sort.val = "desc", sort.by.groups = FALSE, x.text.angle=90, xlab = x, ylab = y, legend.title="Regulate", rotate=TRUE, ggtheme = theme_minimal()) #rotatex设置x/y对调 dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(pheatmap)) install.packages("pheatmap") # 加载库 library(pheatmap) inputFile="input.txt" groupFile="group.txt" #分组文件 outFile="heatmap.tiff" rt=read.table(inputFile,header=T,sep="\t",row.names=1,check.names=F) #读取文件 ann=read.table(groupFile,header=T,sep="\t",row.names=1,check.names=F) #读取样本属性文件 # 绘制 tiff(file=outFile,width=600,height=550, units = "px") pheatmap(rt, annotation=ann, cluster_cols = T, color = colorRampPalette(c("blue", "white", "red"))(50), show_colnames = T, scale="row", #矫正 #border_color ="NA", fontsize = 8, fontsize_row=6, fontsize_col=6) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(pheatmap)) install.packages("pheatmap") # 加载库 library(pheatmap) expFile="input.txt" cliFile="clinical.txt" outFile="heatmap.tiff" var="Risk" #按照临床性状(此处为风险)对样品排序 rt=read.table(expFile, sep="\t", header=T, row.names=1, check.names=F) #读取表达文件 Type=read.table(cliFile, sep="\t", header=T, row.names=1, check.names=F) #读取临床文件 #样品取交集 sameSample=intersect(colnames(rt),row.names(Type)) rt=rt[,sameSample] Type=Type[sameSample,] Type=Type[order(Type[,var]),] #按临床性状排序 rt=rt[,row.names(Type)] #绘制热图 tiff(outFile,height=500,width=800, units = "px") pheatmap(rt, annotation=Type, color = colorRampPalette(c("blue", "white", "red"))(50), cluster_cols =F, #是否聚类 scale="row", #基因矫正 show_colnames=F, fontsize=10, fontsize_row=10, fontsize_col=8) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggplot2)) install.packages("ggplot2") # 加载库 library(ggplot2) inputFile="input.txt" outFile="vol.tiff" logFCfilter=1 #logFC过滤阈值 fdrFilter=0.05 #矫正后p值阈值ֵ #读取文件 rt=read.table(inputFile,sep="\t",header=T,check.names=F) #定义显著性 Significant=ifelse((rt$fdr<fdrFilter & abs(rt$logFC)>logFCfilter), 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() #出图 tiff(outFile,width=550,height=450) print(p) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(VennDiagram)) install.packages("VennDiagram") # 加载库 library(VennDiagram) #引用包 outFile="intersectGenes.txt" #输出交集基因文件 outPic="venn.tiff" #输出图片文件 files=dir() #获取目录下所有文件 files=grep("txt$",files,value=T) #提取TXT结尾的文件 geneList=list() # 读取所有txt文件中的基因信息,保存到GENELIST for(i in 1:length(files)){ inputFile=files[i] if(inputFile==outFile){next} rt=read.table(inputFile,header=F) #读取 geneNames=as.vector(rt[,1]) #提取基因名 geneNames=gsub("^ | $","",geneNames) #去掉基因首尾的空格 uniqGene=unique(geneNames) #基因取unique header=unlist(strsplit(inputFile,"\\.|\\-")) geneList[[header[1]]]=uniqGene uniqLength=length(uniqGene) print(paste(header[1],uniqLength,sep=" ")) } # 绘制vennͼ venn.plot=venn.diagram(geneList,filename=NULL,fill=rainbow(length(geneList)) ) tiff(file=outPic, width=500, height=500) grid.draw(venn.plot) dev.off() # 保存交集基因 intersectGenes=Reduce(intersect,geneList) write.table(file=outFile,intersectGenes,sep="\t",quote=F,col.names=F,row.names=F)
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(UpSetR)) install.packages("UpSetR") # 加载库 library(UpSetR) outFile="intersectGenes.txt" #输出交集基因文件 outPic="upset.tiff" #输出图片 files=dir() #获取目录下所有文件 files=grep("txt$",files,value=T) #提取.txt结尾的文件 geneList=list() #获取所有txt文件中的基因信息,保存到geneList for(i in 1:length(files)){ inputFile=files[i] if(inputFile==outFile){next} rt=read.table(inputFile,header=F) #读取输入文件 geneNames=as.vector(rt[,1]) #提取基因名称 geneNames=gsub("^ | $","",geneNames) #去掉基因首尾的空格 uniqGene=unique(geneNames) #基因取unique,唯一基因列表 header=unlist(strsplit(inputFile,"\\.|\\-")) geneList[[header[1]]]=uniqGene uniqLength=length(uniqGene) print(paste(header[1],uniqLength,sep=" ")) } #绘制UpSetͼ upsetData=fromList(geneList) tiff(file=outPic,width=900,height=600) upset(upsetData, nsets = length(geneList), #展示多少个数据 nintersects = 50, #展示基因集数目 order.by = "freq", #按照数目排序 show.numbers = "yes", #柱状图上方是否显示数值 number.angles = 20, #字体角度 point.size = 2, #点的大小 matrix.color="red", #交集点颜色 line.size = 0.8, #线条粗细 mainbar.y.label = "Gene Intersections", sets.x.label = "Set Size") dev.off() #保存交集文件 intersectGenes=Reduce(intersect,geneList) write.table(file=outFile,intersectGenes,sep="\t",quote=F,col.names=F,row.names=F)
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggplot2)) install.packages("ggplot2") if (!require(ggpubr)) install.packages("ggpubr") if (!require(ggExtra)) install.packages("ggExtra") # 加载库 library(ggplot2) library(ggpubr) library(ggExtra) inputFile="input.txt" gene1="MTMR14" #第一个基因名字 gene2="PRKCD" #第二个基因名字 #读取输入文件,提取基因表达量 rt=read.table(inputFile,sep="\t",header=T,check.names=F,row.names=1) x=as.numeric(rt[gene1,]) y=as.numeric(rt[gene2,]) #相关性分析 df1=as.data.frame(cbind(x,y)) corT=cor.test(x,y,method="spearman") cor=corT$estimate pValue=corT$p.value p1=ggplot(df1, aes(x, y)) + xlab(gene1)+ylab(gene2)+ geom_point()+ geom_smooth(method="lm",formula = y ~ x) + theme_bw()+ stat_cor(method = 'spearman', aes(x =x, y =y)) p2=ggMarginal(p1, type = "density", xparams = list(fill = "orange"),yparams = list(fill = "blue")) #出图 tiff(file="cor.tiff",width=500,height=480) print(p1) dev.off() #出图2 tiff(file="cor.density.tiff",width=500,height=500) print(p2) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(corrplot)) install.packages("corrplot") # 加载库 library(corrplot) inputFile="input.txt" rt=read.table(inputFile,sep="\t",header=T,row.names=1) #读取文件 rt=t(rt) #数据转置 M=cor(rt) #相关型矩阵 #绘制相关性图形 tiff(file="corpot1.tiff",width=700,height=700) corrplot(M, method = "circle", order = "hclust", #聚类 type = "upper", col=colorRampPalette(c("green", "white", "red"))(50) ) dev.off() #第二个图 tiff(file="corpot2.tiff",width=800,height=800) corrplot(M, order="original", method = "color", number.cex = 0.7, #相关系数 addCoef.col = "black", diag = TRUE, tl.col="black", col=colorRampPalette(c("blue", "white", "red"))(50)) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(corrplot)) install.packages("corrplot") if (!require(circlize)) install.packages("circlize") # 加载库 options(stringsAsFactors=F) library(corrplot) library(circlize) inputFile="input.txt" outFile="circos.tiff" #读取输入文件 rt=read.table(inputFile,sep="\t",header=T,check.names=F,row.names=1) rt=t(rt) #转置 #计算基因间相关系数 cor1=cor(rt) #设置图形颜色 col = c(rgb(1,0,0,seq(1,0,length=32)),rgb(0,1,0,seq(0,1,length=32))) cor1[cor1==1]=0 #删掉相关性=1 c1 = ifelse(c(cor1)>=0,rgb(1,0,0,abs(cor1)),rgb(0,1,0,abs(cor1))) col1 = matrix(c1,nc=ncol(rt)) #绘制圈图 tiff(outFile,width=700,height=700) par(mar=c(2,2,2,4)) circos.par(gap.degree=c(3,rep(2, nrow(cor1)-1)), start.degree = 180) chordDiagram(cor1, grid.col=rainbow(ncol(rt)), col=col1, transparency = 0.5, symmetric = T) par(xpd=T) colorlegend(col, vertical = T,labels=c(1,0,-1),xlim=c(1.1,1.3),ylim=c(-0.4,0.4)) #????ͼ?? dev.off() circos.clear()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(igraph)) install.packages("igraph") if (!require(reshape2)) install.packages("reshape2") # 加载库 library(igraph) library(reshape2) inputFile="input.txt" outFile="corNetwork.tiff" cutoff=0.4 #相关性阈值 #读取输入文件 data=read.table(inputFile,header=T,sep="\t",row.names=1,check.names=F) cordata=cor(t(data)) #保留相关性矩阵的一半 mydata = cordata upper = upper.tri(mydata) mydata[upper] = NA #把相关性矩阵转换为数据框 df = data.frame(gene=rownames(mydata),mydata) dfmeltdata = melt(df,id="gene") dfmeltdata = dfmeltdata[!is.na(dfmeltdata$value),] dfmeltdata = dfmeltdata[dfmeltdata$gene!=dfmeltdata$variable,] dfmeltdata = dfmeltdata[abs(dfmeltdata$value)>cutoff,] #定义网络图的节点和边 corweight = dfmeltdata$value weight = corweight+abs(min(corweight))+5 d = data.frame(p1=dfmeltdata$gene,p2=dfmeltdata$variable,weight=dfmeltdata$value) g = graph.data.frame(dfmeltdata,directed = FALSE) #设置颜色,节点大小,字体大小 E(g)$color = ifelse(corweight>0,rgb(254/255,67/255,101/255,abs(corweight)),rgb(0/255,0/255,255/255,abs(corweight))) V(g)$size = 8 V(g)$shape = "circle" V(g)$lable.cex = 1.2 V(g)$color = "white" E(g)$weight = weight #可视化 tiff(outFile,width=700,height=600) layout(matrix(c(1,1,1,0,2,0),byrow=T,nc=3),height=c(6,1),width=c(3,4,3)) par(mar=c(1.5,2,2,2)) vertex.frame.color = NA plot(g,layout=layout_nicely,vertex.label.cex=V(g)$lable.cex,edge.width = E(g)$weight,edge.arrow.size=0,vertex.label.color="black",vertex.frame.color=vertex.frame.color,edge.color=E(g)$color,vertex.label.cex=V(g)$lable.cex,vertex.label.font=2,vertex.size=V(g)$size,edge.curved=0.4) #绘制图例 color_legend = c(rgb(254/255,67/255,101/255,seq(1,0,by=-0.01)),rgb(0/255,0/255,255/255,seq(0,1,by=0.01))) par(mar=c(2,2,1,2),xpd = T,cex.axis=1.6,las=1) barplot(rep(1,length(color_legend)),border = NA, space = 0,ylab="",xlab="",xlim=c(1,length(color_legend)),horiz=FALSE, axes = F, col=color_legend,main="") axis(3,at=seq(1,length(color_legend),length=5),c(1,0.5,0,-0.5,-1),tick=FALSE) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(fmsb)) install.packages("fmsb") # 加载库 library(fmsb) inputFile="input.txt" outFile="radar.tiff" col="red" #定义颜色 data=read.table(inputFile,header=T,sep="\t",row.names=1,check.names=F) data=as.data.frame(t(data)) #转置 maxValue=ceiling(max(abs(data))*10)/10 #设置刻度 data=rbind(rep(maxValue,ncol(data)),rep(-maxValue,ncol(data)),data) #输出结果 tiff(file=outFile,height=700,width=700) radarchart( data, axistype=1, pcol=col, #线条颜色 plwd=2 , #线条粗细 plty=1, #虚线,实线 cglcol="grey", #背景线条颜色 cglty=1, #背景线条虚线,实线1 caxislabels=seq(-maxValue,maxValue,maxValue/2), #坐标刻度 cglwd=1.2, #背景线条粗细 axislabcol="blue", #刻度颜色 vlcex=0.8 #字体大小 ) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggalluvial)) install.packages("ggalluvial") if (!require(ggplot2)) install.packages("ggplot2") if (!require(dplyr)) install.packages("dplyr") # 加载库 library(ggalluvial) library(ggplot2) library(dplyr) inputFile="input.txt" outFile="ggalluvial.tiff" rt=read.table(inputFile, header = T, sep="\t", check.names=F) corLodes=to_lodes_form(rt, axes = 1:ncol(rt), id = "Cohort") #得到输出文件 tiff(file=outFile,width=700,height=600) mycol <- rep(c("#029149","#6E568C","#E0367A","#D8D155","#223D6C","#D20A13","#431A3D","#91612D","#FFD121","#088247","#11AA4D","#58CDD9","#7A142C","#5D90BA","#64495D","#7CC767"),15) ggplot(corLodes, aes(x = x, stratum = stratum, alluvium = Cohort,fill = stratum, label = stratum)) + scale_x_discrete(expand = c(0, 0)) + #用aes.flow控制线调颜色,forward说明颜色和前面一致,backward说明与后面一致 geom_flow(width = 2/10,aes.flow = "forward") + geom_stratum(alpha = .9,width = 2/10) + scale_fill_manual(values = mycol) + #size = 2代表基因名字大小 geom_text(stat = "stratum", size = 2,color="black") + xlab("") + ylab("") + theme_bw() + theme(axis.line = element_blank(),axis.ticks = element_blank(),axis.text.y = element_blank()) + #ȥ???????? theme(panel.grid =element_blank()) + theme(panel.border = element_blank()) + ggtitle("") + guides(fill = FALSE) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(plotrix)) install.packages("plotrix") # 加载库 library("plotrix") inputFile="input.txt" outFile="pie.tiff" #读取文件,整理 rt=read.table(inputFile,header=T,sep="\t",check.names=F) x=rt[,2] labels=as.character(rt[,1]) #求个部分百分率 piepercent=paste(round(100*x/sum(x), 2), "%") labels=paste0(labels,"\n",piepercent) #绘制饼图 tiff(file = outFile,width=700,height=600) #保存图片 pie3D(x, labels = labels, height=0.1, labelcex=0.8, explode =0.1, theta=0.85) #explode:离中心距离 theta:观看角度 dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggplot2)) install.packages("ggplot2") #输入文件需要四列信息 #Term: GO或名称 #Ratio: 基因比例 #Count: 富集数目 #FDR: 矫正pֵ # 加载库 library(ggplot2) inputFile="input.txt" outFile="bubble.tiff" rt = read.table(inputFile, header=T, sep="\t", check.names=F) #按照Ratio对Term排序 labels=rt[order(rt$Ratio),"Term"] rt$Term = factor(rt$Term,levels=labels) # 绘制 p = ggplot(rt,aes(Ratio, Term)) + geom_point(aes(size=Count, color=FDR)) p1 = p + scale_colour_gradient(low="red",high="blue") + labs(color="FDR",size="Count",x="Gene ratio",y="Term")+ theme(axis.text.x=element_text(color="black", size=10),axis.text.y=element_text(color="black", size=10)) + theme_bw() ggsave(outFile, width=7, height=5) #保存
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggpubr)) install.packages("ggpubr") #输入文件需要有三列信息 #ONTOLOGY: GO分类(BP, CC, MF) #Term: GO名称 #Count: 富集在每个GO上的数目 library(ggpubr) inputFile="input.txt" outFile="Lollipop.tiff" rt=read.table(inputFile,header=T,sep="\t",check.names=F) #读取 #绘制棒棒糖图 tiff(file=outFile,width=700,height=600) ggdotchart(rt, x="Term", y="Count", color = "ONTOLOGY",group = "ONTOLOGY", palette = "aaas", #配色方案 legend = "right", #图例位置 sorting = "descending", #上升排序,区别于desc add = "segments", #增加线段 rotate = TRUE, #横向显示 dot.size = 5, #圆圈大小 label = round(rt$Count), #圆圈内数值 font.label = list(color="white",size=9, vjust=0.5), #圆圈内数值字体设置 ggtheme = theme_pubr()) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggplot2)) install.packages("ggplot2") if (!require(colorspace)) install.packages("colorspace") if (!require(stringi)) install.packages("stringi") if (!require(digest)) install.packages("digest") if (!require(GOplot)) install.packages("GOplot") if (!require(BiocManager)) install.packages("BiocManager") # 生信的专用库 if (!require(org.Hs.eg.db)) BiocManager::install("org.Hs.eg.db") if (!require(DOSE)) BiocManager::install("DOSE") if (!require(clusterProfiler)) BiocManager::install("clusterProfiler") if (!require(enrichplot)) BiocManager::install("enrichplot") # 加载库 library(clusterProfiler) library(org.Hs.eg.db) library(enrichplot) library(ggplot2) library(GOplot) #过滤 pFilter=0.05 adjPfilter=0.05 inputFile="input.txt" rt=read.table(inputFile,sep="\t",header=T,check.names=F) genes=as.vector(rt[,1]) entrezIDs=mget(genes, org.Hs.egSYMBOL2EG, ifnotfound=NA) #找出基因对应的id entrezIDs=as.character(entrezIDs) rt=cbind(rt,entrezID=entrezIDs) rt=rt[is.na(rt[,"entrezID"])==F,] #删掉没有基因ID的 gene=rt$entrezID # GO GO=enrichGO(gene = gene, OrgDb = org.Hs.eg.db, pvalueCutoff =1, qvalueCutoff = 1, ont="all", readable =T) GO=as.data.frame(GO) GO=GO[(GO$pvalue<pFilter & GO$p.adjust<adjPfilter),] write.table(GO,file="GO.txt",sep="\t",quote=F,row.names = F) # # GO go=data.frame(Category = GO$ONTOLOGY,ID = GO$ID,Term = GO$Description, Genes = gsub("/", ", ", GO$geneID), adj_pval = GO$p.adjust) # logFC genelist=data.frame(ID = rt$gene, logFC = rt$logFC) row.names(genelist)=genelist[,1] circ <- circle_dat(go, genelist) termNum = 5 #限定GO数目 termNum=ifelse(nrow(go)<termNum,nrow(go),termNum) geneNum = nrow(genelist) #限定基因数目 # 绘制 chord <- chord_dat(circ, genelist[1:geneNum,], go$Term[1:termNum]) tiff(file="GOcircos.tiff",width = 1000,height = 1020) GOChord(chord, space = 0.001, #基因之间的间距 gene.order = 'logFC', #排序基因 gene.space = 0.25, #基因离圆圈距离 gene.size = 3, # border.size = 0.1, process.label = 7) #GO名称大小 dev.off() # 聚类圈图 tiff(file="GOcluster.tiff",width = 1200,height = 900) GOCluster(circ, as.character(go[1:termNum,3])) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggplot2)) install.packages("ggplot2") if (!require(colorspace)) install.packages("colorspace") if (!require(stringi)) install.packages("stringi") if (!require(digest)) install.packages("digest") if (!require(GOplot)) install.packages("GOplot") if (!require(BiocManager)) install.packages("BiocManager") # 生信的专用库 if (!require(org.Hs.eg.db)) BiocManager::install("org.Hs.eg.db") if (!require(DOSE)) BiocManager::install("DOSE") if (!require(clusterProfiler)) BiocManager::install("clusterProfiler") if (!require(enrichplot)) BiocManager::install("enrichplot") # 加载库 library(clusterProfiler) library(org.Hs.eg.db) library(enrichplot) library(ggplot2) library(GOplot) # 过滤 pFilter=0.05 adjPfilter=0.05 rt=read.table("input.txt",sep="\t",header=T,check.names=F) #读取id.txt文件 genes=as.vector(rt[,1]) #提取基因列表 entrezIDs=mget(genes, org.Hs.egSYMBOL2EG, ifnotfound=NA) #找出基因对应id entrezIDs=as.character(entrezIDs) rt=cbind(rt,entrezID=entrezIDs) rt=rt[is.na(rt[,"entrezID"])==F,] #去除id为NA的基因 gene=rt$entrezID # KEGG富集分析 kk=enrichKEGG(gene = gene, organism = "hsa", pvalueCutoff =1, qvalueCutoff =1) KEGG=as.data.frame(kk) KEGG=KEGG[(KEGG$pvalue<pFilter & KEGG$p.adjust<adjPfilter),] KEGG$geneID=as.character(sapply(KEGG$geneID,function(x)paste(rt$gene[match(strsplit(x,"/")[[1]],as.character(rt$entrezID))],collapse="/"))) write.table(KEGG,file="KEGG.txt",sep="\t",quote=F,row.names = F) #保存富集结果 # 获取KEGG信息 kegg=data.frame(Category = "ALL",ID = KEGG$ID,Term = KEGG$Description, Genes = gsub("/", ", ", KEGG$geneID), adj_pval = KEGG$p.adjust) # 读取基因的logFC genelist <- data.frame(ID = rt$gene, logFC = rt$logFC) row.names(genelist)=genelist[,1] circ <- circle_dat(kegg, genelist) termNum = 5 #限定Term数 termNum=ifelse(nrow(kegg)<termNum,nrow(kegg),termNum) geneNum = nrow(genelist) #限定基因数目 # 绘制圈图 chord <- chord_dat(circ, genelist[1:geneNum,], kegg$Term[1:termNum]) tiff(file="KEGGcircos.tiff",width = 1100,height = 1120) GOChord(chord, space = 0.001, #基因之间的间距 gene.order = 'logFC', #按照logFC对基因排序 gene.space = 0.25, #基因名跟圆圈的相对距离 gene.size = 4, #基因名字体大小 border.size = 0.1, #线条粗细 process.label = 7) #term字体大小 dev.off() #绘制聚类圈图 tiff(file="KEGGcluster.tiff",width = 12,height = 9) GOCluster(circ, as.character(kegg[1:termNum,3])) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(plyr)) install.packages("plyr") if (!require(ggplot2)) install.packages("ggplot2") if (!require(grid)) install.packages("grid") if (!require(gridExtra)) install.packages("gridExtra") #引用 library(plyr) library(ggplot2) library(grid) library(gridExtra) files=grep(".xls",dir(),value=T) #读取目录下的所有xls文件 data = lapply(files,read.delim) #读取每个文件 names(data) = files dataSet = ldply(data, data.frame) dataSet$pathway = gsub(".xls","",dataSet$.id) #将文件后缀删掉 gseaCol=c("#58CDD9","#7A142C","#5D90BA","#431A3D","#91612D","#6E568C","#E0367A","#D8D155","#64495D","#7CC767","#223D6C","#D20A13","#FFD121","#088247","#11AA4D") #富集图 pGsea=ggplot(dataSet,aes(x=RANK.IN.GENE.LIST,y=RUNNING.ES,colour=pathway,group=pathway))+ geom_line(size = 1.5) + scale_color_manual(values = gseaCol[1:nrow(dataSet)]) + labs(x = "", y = "Enrichment Score", title = "") + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0),limits = c(min(dataSet$RUNNING.ES - 0.02), max(dataSet$RUNNING.ES + 0.02))) + theme_bw() + theme(panel.grid = element_blank()) + theme(panel.border = element_blank()) + theme(axis.line = element_line(colour = "black")) + theme(axis.line.x = element_blank(),axis.ticks.x = element_blank(),axis.text.x = element_blank()) + geom_hline(yintercept = 0) + guides(colour = guide_legend(title = NULL)) + theme(legend.background = element_blank()) + theme(legend.key = element_blank())+theme(legend.key.size=unit(0.5,'cm')) #基因排序图 pGene=ggplot(dataSet,aes(RANK.IN.GENE.LIST,pathway,colour=pathway))+geom_tile()+ scale_color_manual(values = gseaCol[1:nrow(dataSet)]) + labs(x = "High expression<----------->Low expression", y = "", title = "") + scale_x_discrete(expand = c(0, 0)) + scale_y_discrete(expand = c(0, 0)) + theme_bw() + theme(panel.grid = element_blank()) + theme(panel.border = element_blank()) + theme(axis.line = element_line(colour = "black"))+ theme(axis.line.y = element_blank(),axis.ticks.y = element_blank(),axis.text.y = element_blank())+ guides(color=FALSE) gGsea = ggplot_gtable(ggplot_build(pGsea)) gGene = ggplot_gtable(ggplot_build(pGene)) maxWidth = grid::unit.pmax(gGsea$widths, gGene$widths) gGsea$widths = as.list(maxWidth) gGene$widths = as.list(maxWidth) # 保存图像 tiff('multipleGSEA.tiff', width=1000, height=600) par(mar=c(5,5,2,5)) grid.arrange(arrangeGrob(gGsea,gGene,nrow=2,heights=c(.8,.3))) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(survival)) install.packages("survival") if (!require(survminer)) install.packages("survminer") # 加载库 library(survival) library(survminer) inputFile="input.txt" outFile="survival.tiff" var="Stage" #用于生存分析的变量 # 读取 rt=read.table(inputFile, header=T, sep="\t", check.names=F) rt=rt[,c("futime","fustat",var)] colnames(rt)[3]="Type" groupNum=length(levels(factor(rt[,"Type"]))) # 比较组间生存差异的P值 diff=survdiff(Surv(futime, fustat) ~Type,data = rt) pValue=1-pchisq(diff$chisq,df=(groupNum-1)) #df自由度 if(pValue<0.001){ pValue="p<0.001" }else{ pValue=paste0("p=",sprintf(".03f",pValue)) } fit <- survfit(Surv(futime, fustat) ~ Type, data = rt) # 绘制 surPlot=ggsurvplot(fit, data=rt, conf.int=F, #置信区间 pval=pValue, pval.size=5, legend.labs=levels(factor(rt[,"Type"])), legend.title=var, xlab="Time(years)", break.time.by = 1, risk.table.title="", risk.table=F, risk.table.height=.25) tiff(file=outFile,width = 500,height =450) print(surPlot) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(survival)) install.packages("survival") if (!require(survminer)) install.packages("survminer") # 加载库 library(survival) library(survminer) inputFile="input.txt" outFile="survival.tiff" var="MATN3" #用于生存分析的变量 rt=read.table(inputFile, header=T, sep="\t", check.names=F) rt=rt[,c("futime","fustat",var)] # 根据中位值,把样品分为两组 group=ifelse(rt[,3]>median(rt[,3]),"High","Low") diff=survdiff(Surv(futime, fustat) ~group,data = rt) pValue=1-pchisq(diff$chisq,df=1) if(pValue<0.001){ pValue="p<0.001" }else{ pValue=paste0("p=",sprintf("%.03f",pValue)) } fit <- survfit(Surv(futime, fustat) ~ group, data = rt) #剩余数目 # 绘制 surPlot=ggsurvplot(fit, data=rt, conf.int=TRUE, pval=pValue, pval.size=5, legend.labs=c("High", "Low"), legend.title=var, xlab="Time(years)", break.time.by = 1, risk.table.title="", palette=c("red", "blue"), risk.table=T, risk.table.height=.25) tiff(file=outFile,width = 600,height =500) print(surPlot) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(survival)) install.packages("survival") if (!require(survminer)) install.packages("survminer") # 加载库 library(survival) library(survminer) inputFile="input.txt" outFile="survival.tiff" var="MATN3" rt=read.table(inputFile, header=T, sep="\t", check.names=F) rt=rt[,c("futime","fustat",var)] colnames(rt)=c("futime","fustat","var") # 获取最优cutoff res.cut=surv_cutpoint(rt, time = "futime", event = "fustat",variables =c("var")) res.cut res.cat=surv_categorize(res.cut) fit=survfit(Surv(futime, fustat) ~var, data = res.cat) # 比较高低表达生存差异 diff=survdiff(Surv(futime, fustat) ~var,data =res.cat) pValue=1-pchisq(diff$chisq,df=1) if(pValue<0.001){ pValue="p<0.001" }else{ pValue=paste0("p=",sprintf("%.03f",pValue)) } # 绘制 surPlot=ggsurvplot(fit, data=res.cat, conf.int=TRUE, pval=pValue, pval.size=5, legend.labs=c("High", "Low"), legend.title=var, xlab="Time(years)", break.time.by = 1, risk.table.title="", palette=c("red", "blue"), risk.table=T, risk.table.height=.25) tiff(file=outFile, width = 600, height =500) print(surPlot) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(survival)) install.packages("survival") if (!require(survminer)) install.packages("survminer") # 加载库 library(survival) library(survminer) inputFile="input.txt" outFile="survival.tiff" var1="VCAN" #用于生存分析的变量1 var2="CXCR4" #用于生存分析的变量2 rt=read.table(inputFile, header=T, sep="\t", check.names=F) #根据基因表达,对数据分组 a=ifelse(rt[,var1]<median(rt[,var1]),paste0(var1," low"),paste0(var1," high")) b=ifelse(rt[,var2]<median(rt[,var2]),paste0(var2," low"),paste0(var2," high")) Type=paste(a,"+",b) rt=cbind(rt,Type) #生存差异统计 length=length(levels(factor(Type))) diff=survdiff(Surv(futime, fustat) ~Type,data = rt) pValue=1-pchisq(diff$chisq,df=length-1) if(pValue<0.001){ pValue="p<0.001" }else{ pValue=paste0("p=",sprintf("%.03f",pValue)) } fit <- survfit(Surv(futime, fustat) ~ Type, data = rt) #绘制生存曲线 surPlot=ggsurvplot(fit, data=rt, conf.int=F, #不含置信区间 pval=pValue, pval.size=5, legend.labs=levels(factor(rt[,"Type"])), legend.title="Type", #font.legend=6, legend = "right", xlab="Time(years)", break.time.by = 1, risk.table.title="", risk.table=F, #风险表格 risk.table.height=.25) tiff(file=outFile,width = 750,height =500) print(surPlot) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() inputFile="input.txt" outFile="forest.tiff" rt=read.table(inputFile,header=T,sep="\t",row.names=1,check.names=F) gene=rownames(rt) hr=sprintf("%.3f",rt$"HR") hrLow=sprintf("%.3f",rt$"HR.95L") hrHigh=sprintf("%.3f",rt$"HR.95H") Hazard.ratio=paste0(hr,"(",hrLow,"-",hrHigh,")") pVal=ifelse(rt$pvalue<0.001, "<0.001", sprintf("%.3f", rt$pvalue)) # 图像格式 tiff(file=outFile, width = 600, height =450) n=nrow(rt) nRow=n+1 ylim=c(1,nRow) layout(matrix(c(1,2),nc=2),width=c(3,2)) # 森林图左边的基因信息 xlim = c(0,3) par(mar=c(4,2,1.5,1.5)) plot(1,xlim=xlim,ylim=ylim,type="n",axes=F,xlab="",ylab="") text.cex=0.8 text(0,n:1,gene,adj=0,cex=text.cex) text(1.5-0.5*0.2,n:1,pVal,adj=1,cex=text.cex) text(1.5-0.5*0.2,n+1,'pvalue',cex=text.cex,font=2,adj=1) text(3,n:1,Hazard.ratio,adj=1,cex=text.cex) text(3,n+1,'Hazard ratio',cex=text.cex,font=2,adj=1,) par(mar=c(4,1,1.5,1),mgp=c(2,0.5,0)) xlim = c(0,max(as.numeric(hrLow),as.numeric(hrHigh))) plot(1,xlim=xlim,ylim=ylim,type="n",axes=F,ylab="",xaxs="i",xlab="Hazard ratio") arrows(as.numeric(hrLow),n:1,as.numeric(hrHigh),n:1,angle=90,code=3,length=0.03,col="darkblue",lwd=2.5) abline(v=1,col="black",lty=2,lwd=2) boxcolor = ifelse(as.numeric(hr) > 1, 'red', 'blue') points(as.numeric(hr), n:1, pch = 15, col = boxcolor, cex=1.5) axis(1) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(rms)) install.packages("rms") # 加载库 library(rms) inputFile="input.txt" rt=read.table(inputFile,header=T,sep="\t",check.names=F,row.names=1) # 数据打包 dd <- datadist(rt) options(datadist="dd") # 生成函数 f <- cph(Surv(futime, fustat) ~ Age+Gender+Grade+T+M+N+VCAN, x=T, y=T, surv=T, data=rt, time.inc=1) surv <- Survival(f) # 建立nomogram nom <- nomogram(f, fun=list(function(x) surv(1, x), function(x) surv(2, x), function(x) surv(3, x)), lp=F, funlabel=c("1-year survival", "2-year survival", "3-year survival"), maxscale=100, fun.at=c(0.99, 0.9, 0.8, 0.7, 0.5, 0.3,0.1,0.01)) # nomogram可视化 tiff(file="Nomogram.tiff",height=700,width=850) plot(nom) dev.off() # calibration curve time=3 #预测三年calibration f <- cph(Surv(futime, fustat) ~ Age+Gender+Grade+T+M+N+VCAN, x=T, y=T, surv=T, data=rt, time.inc=time) cal <- calibrate(f, cmethod="KM", method="boot", u=time, m=100, B=1000) #m样品数目1/3 tiff(file="calibration.tiff",height=600,width=700) plot(cal,xlab="Nomogram-Predicted Probability of 3-Year OS",ylab="Actual 3-Year OS(proportion)",col="red",sub=F) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(pROC)) install.packages("pROC") # 加载库 library(pROC) inputFile="input.txt" outFile="ROC.tiff" x="TTYH3" #用于ROC的变量 # 读入文件,整理 rt=read.table(inputFile,header=T,sep="\t",check.names=F,row.names=1) y=colnames(rt)[1] # 绘制 rocobj1=roc(rt[,y], as.vector(rt[,x])) tiff(file=outFile,width=500,height=500) plot(rocobj1, print.auc=TRUE, col="red") dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(pROC)) install.packages("pROC") # 加载库 library(pROC) inputFile="input.txt" outFile="ROC.tiff" rt=read.table(inputFile,header=T,sep="\t",check.names=F,row.names=1) y=colnames(rt)[1] # 定义颜色 bioCol=c("red","blue","green","yellow") if(ncol(rt)>4){ bioCol=rainbow(ncol(rt))} # 绘制 tiff(file=outFile,width=500,height=500) roc1=roc(rt[,y], as.vector(rt[,2])) aucText=c( paste0(colnames(rt)[2],", AUC=",sprintf("%0.3f",auc(roc1))) ) plot(roc1, col=bioCol[1]) for(i in 3:ncol(rt)){ roc1=roc(rt[,y], as.vector(rt[,i])) lines(roc1, col=bioCol[i-1]) aucText=c(aucText, paste0(colnames(rt)[i],", AUC=",sprintf("%0.3f",auc(roc1))) ) } legend("bottomright", aucText,lwd=2,bty="n",col=bioCol[1:(ncol(rt)-1)]) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(survival)) install.packages("survival") if (!require(survminer)) install.packages("survminer") if (!require(timeROC)) install.packages("timeROC") # 加载库 library(survival) library(survminer) library(timeROC) inputFile="input.txt" outFile="ROC.tiff" var="score" #需要的变量 # 读取 rt=read.table(inputFile, header=T, sep="\t", check.names=F) # 绘制 ROC_rt=timeROC(T=rt$futime, delta=rt$fustat, marker=rt[,var], cause=1, weighting='aalen', times=c(1), ROC=TRUE) #预测时间1年 tiff(file=outFile, width=500, height=500) plot(ROC_rt, time=1, col='red', title=FALSE, lwd=2) text(0.65,0.45,paste0('AUC = ',sprintf("%.03f",ROC_rt$AUC[2])),cex=1.2) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(survival)) install.packages("survival") if (!require(survminer)) install.packages("survminer") if (!require(timeROC)) install.packages("timeROC") # 加载库 library(survival) library(survminer) library(timeROC) inputFile="input.txt" outFile="ROC.tiff" var="score" rt=read.table(inputFile, header=T, sep="\t", check.names=F) #绘制 ROC_rt=timeROC(T=rt$futime, delta=rt$fustat, marker=rt[,var], cause=1, weighting='aalen', times=c(1,2,3), ROC=TRUE) tiff(file=outFile,width=500,height=500) plot(ROC_rt,time=1,col='green',title=FALSE,lwd=2) plot(ROC_rt,time=2,col='blue',add=TRUE,title=FALSE,lwd=2) plot(ROC_rt,time=3,col='red',add=TRUE,title=FALSE,lwd=2) legend('bottomright', c(paste0('AUC at 1 years: ',sprintf("%.03f",ROC_rt$AUC[1])), paste0('AUC at 2 years: ',sprintf("%.03f",ROC_rt$AUC[2])), paste0('AUC at 3 years: ',sprintf("%.03f",ROC_rt$AUC[3]))), col=c("green",'blue','red'),lwd=2,bty = 'n') dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(survival)) install.packages("survival") if (!require(survminer)) install.packages("survminer") if (!require(timeROC)) install.packages("timeROC") # 加载库 library(survival) library(survminer) library(timeROC) inputFile="input.txt" outFile="ROC.tiff" rt=read.table(inputFile, header=T, sep="\t", check.names=F, row.names=1) # 颜色 bioCol=rainbow(ncol(rt)-2) # 绘制 aucText=c() tiff(file=outFile,width=600,height=600) i=3 ROC_rt=timeROC(T=rt$futime,delta=rt$fustat,marker=rt[,i],cause=1,weighting='aalen',times=c(1),ROC=TRUE) plot(ROC_rt,time=1,col=bioCol[i-2],title=FALSE,lwd=2) aucText=c(paste0(colnames(rt)[i],", AUC=",sprintf("%.3f",ROC_rt$AUC[2]))) abline(0,1) for(i in 4:ncol(rt)){ ROC_rt=timeROC(T=rt$futime,delta=rt$fustat,marker=rt[,i],cause=1,weighting='aalen',times=c(1),ROC=TRUE) plot(ROC_rt,time=1,col=bioCol[i-2],title=FALSE,lwd=2,add=TRUE) aucText=c(aucText,paste0(colnames(rt)[i],", AUC=",sprintf("%.3f",ROC_rt$AUC[2]))) } legend("bottomright", aucText,lwd=2,bty="n",col=bioCol[1:(ncol(rt)-2)]) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggplot2)) install.packages("ggplot2") # 加载库 library(ggplot2) inputFile="input.txt" outFile="PCA.tiff" rt=read.table(inputFile,header=T,sep="\t",check.names=F,row.names=1) data=rt[,c(2:ncol(rt))] Type=rt[,1] var=colnames(rt)[1] # PCA分析 data.pca=prcomp(data, scale. = TRUE) pcaPredict=predict(data.pca) PCA = data.frame(PC1=pcaPredict[,1], PC2=pcaPredict[,2], Type=Type) # 定义颜色 col=c("red","blue") if(length(levels(factor(Type)))>2){ col=rainbow(length(levels(factor(Type))))} # 绘制PCA tiff(file=outFile, height=450, width=550) #???????????ļ? p=ggplot(data = PCA, aes(PC1, PC2)) + geom_point(aes(color = Type)) + scale_colour_manual(name=var, values =col)+ 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()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(scatterplot3d)) install.packages("scatterplot3d") # 加载库 library(scatterplot3d) inputFile="input.txt" outFile="PCA.tiff" rt=read.table(inputFile,header=T,sep="\t",check.names=F,row.names=1) data=rt[,c(2:ncol(rt))] Type=rt[,1] #提取分组信息 var=colnames(rt)[1] #颜色 group=levels(factor(Type)) bioCol=c("red","blue","green","yellow") col= bioCol[match(Type,group)] #PCA分析 data.pca=prcomp(data, scale. = TRUE) pcaPredict=predict(data.pca) #绘制 tiff(file=outFile, height=500, width=600) par(oma=c(0.5,0.5,0.5,0.5)) s3d=scatterplot3d(pcaPredict[,1:3], pch = 16, color=col) legend("top", legend =group,pch = 16, inset = -0.2, box.col="white",xpd = TRUE, horiz = TRUE,col=bioCol[1:length(group)]) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(circlize)) install.packages("circlize") # 加载库 library(circlize) bedFile1="bed1.txt" bedFile2="bed2.txt" outFile="circos.tiff" bed1 = read.table(bedFile1, header=T, sep="\t", check.names=F) #读取输入文件1 bed2 = read.table(bedFile2, header=T, sep="\t", check.names=F) #2 #绘制 tiff(file=outFile, width=700, height=700) circos.par("track.height" = 0.2, cell.padding = c(0, 0, 0, 0)) circos.initializeWithIdeogram() circos.genomicLink(bed1, bed2, col =rainbow(nrow(bed1)), border = NA)#连线 circos.clear() dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(BiocManager)) install.packages("BiocManager") if (!require(karyoploteR)) BiocManager::install("karyoploteR") # 加载库 library(karyoploteR) inputFile="input.txt" outFile="genome.tiff" rt=read.table(inputFile, header=T, sep="\t", check.names=F) #提取数据 data.points=makeGRangesFromDataFrame(rt) mcols(data.points)=data.frame(y=rt[,4]) #可视化 ymin=quantile(rt[,4],0.1) ymax=quantile(rt[,4],0.9)*2 tiff(file=outFile, width=1000, height=700) kp=plotKaryotype("hg38", plot.type=1) kpDataBackground(kp, data.panel=1, color="white") kpPoints(kp, data=data.points, pch=".", col="red", ymin=ymin, ymax=ymax, cex=6) kpAddBaseNumbers(kp, tick.dist=10000000, minor.tick.dist=1000000) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(ggplot2)) install.packages("ggplot2") if (!require(ggtree)) install.packages("ggtree") if (!require(colorspace)) install.packages("colorspace") # 加载库 library("ggplot2") library("ggtree") library("colorspace") treFile="input.tre" #进化树文件 groupFile="group.txt" #树枝分类 outFile="tree.tiff" #输出 #读取属性文件,把属性信息保存到list cls=list() rt=read.table(groupFile,sep="\t",header=T) for(i in 1:nrow(rt)){ otu=as.character(rt[i,1]) phylum=as.character(rt[i,2]) cls[[phylum]]=c(cls[[phylum]], otu) } phylumNames=names(cls) phylumNum=length(phylumNames) #读取进化树文件,和属性文件合并 tree=read.tree(treFile) tree=groupOTU(tree, cls) #绘制 tiff(file=outFile, width=700, height=700) ggtree(tree, layout="circular", ladderize = F, branch.length="none", aes(color=group)) + scale_color_manual(values=c(rainbow_hcl(phylumNum+1)),breaks=phylumNames, labels=phylumNames ) + theme(legend.position="right") + geom_text(aes(label=paste(" ",label,sep=""), angle=angle+45), size=2) dev.off()
效果:
代码:
####公众号:熊大学习社#### # 手动设置工作目录为代码和数据所在文件夹 # 步骤方法:点菜单栏“session”->"Set Work Directory"->"Choose Directory",选择代码和数据所在文件夹即可 # 查看工作目录 getwd() # 安装库 if (!require(BiocManager)) install.packages("BiocManager") if (!require(maftools)) BiocManager::install("maftools") # 加载库 library(maftools) inputFile='input.maf' outFile="waterfall.tiff" maf=read.maf(maf = inputFile ) #绘制 tiff(file=outFile,width=700,height=600) oncoplot(maf = maf, top = 30, fontSize = 0.8 ,showTumorSampleBarcodes = F ) dev.off()
(1)学习资料,包括医学SCI绘图-基于R课程的50+种学术图片的代码和数据。关注公众号“熊大学习社”,回复“scih1214”,获取资料链接,代码在文章中。50+种学术图片的代码和数据资料在文章最下面,付费后可见。
谢谢您的支持,我们坚持学以致用、高效学习、质量服务,做好有质量的分享。
我们提供专业的SCI论文指导、数据分析、翻译润色、写作辅导等服务,了解请扫码加客服。
关注B站熊大学习社,公众号熊大学习社、诺维之舟。您的一键三连是我最大的动力。