Advertisement

(生物信息学)R语言绘图初-中-高级——3-10分文章必备——森林图(初级)

阅读量:

`

在发表生物信息学文章时, 除了研究思路和前沿热点之外, 图片绘制的质量对文章整体效果具有重要影响. 本专栏专注于(生物信息学)领域中的R语言绘图技术培训, 并针对获得3至10分的文章质量标准, 通过全面梳理相关文献资料, 在高频考分段落中提炼出常见图表类型. 不仅提供了实现这些图表所需的R语言代码库, 并且还配备了相应的图表识别指南.

本专栏将向大家介绍的图片绘制如下:

1. 散点图

2. 箱线图

3.条形图

4.正负条形图

5.区组条形图

6.小提琴图

7.热图

8.Venn图

9.生存曲线

10.森林图

11.TSNE

12.瀑布图

13.ROC曲线

14.点阵图

15.相关系数图

16.饼图

17.树形图

18.气泡图

19.火山图

20.点图

上次提到生存曲线:

该平台提供R语言绘图基础至高级课程,并专为3至10分的文章准备了必修内容:生存曲线分析的初级指导

在当前部分中,我们将详细讲解如何制作生存曲线 Forest Plot. 这种图表通常用于展示不同研究之间的综述效果,能够直观地呈现数据分布情况. 为了更好地理解这一过程,请参考下面的链接

首先准备如下数据:

id被定义为基因,在本研究中代表风险比。其中其95%置信区间下限为 HR.95L ,而 HR.95H 则为其对应的上限。此外对应的P值即为其显著性水平的指标。接下来我们将绘制该研究的森林图以展示各分研究效应的综合分析结果

复制代码
 setwd("D:\ 自噬临床模型预测\ 自噬相关基因临床模型预测\ 取交集,做Venn图")

    
 dir()
    
 data <- read.csv("uniCox.csv",header = T,sep = ",")
    
 gene <- read.csv("Genes.csv",header = T,sep = ",")
    
 head(data)
    
 head(gene)
    
 dim(data)
    
 dim(gene)
    
  
    
 #> head(data)
    
 #     id        HR    HR.95L    HR.95H      pvalue
    
 #1  ARNT 0.6351214 0.4632206 0.8708145 0.004817746
    
 #2  ARSA 1.3420299 1.0574458 1.7032024 0.015549633
    
 #3  ARSB 0.8044525 0.6854727 0.9440839 0.007708357
    
 #4  ATF4 1.2992683 0.9911638 1.7031474 0.058000088
    
 #5  ATF6 0.5463545 0.4204763 0.7099168 0.000006060
    
 #6 ATG10 0.5813549 0.4138701 0.8166173 0.001757369
    
 #> head(gene)
    
 #  X   gene
    
 #1 1   MTOR
    
 #2 2 CDKN2A
    
 #3 3  ERBB2
    
 #4 4  LAMP1
    
 #5 5  HSPA8
    
 #6 6   BAG1
    
 #> dim(data)
    
 #[1] 213   5
    
 #> dim(gene)
    
 #[1] 41  2
    
    
    
    
    AI助手

将第一列变成行名:

复制代码
 rownames(data) <- data$id

    
 data <- data[,-1]
    
 head(data)
    
  
    
 #> head(data)
    
 #              HR    HR.95L    HR.95H       pvalue
    
 #MTOR   0.6400590 0.4651810 0.8806799 0.0061381040
    
 #CDKN2A 1.2660554 1.0990494 1.4584388 0.0010810870
    
 #ERBB2  0.6362310 0.5311304 0.7621290 0.0000009170
    
 #LAMP1  0.6604439 0.4853477 0.8987087 0.0083037820
    
 #HSPA8  0.6870117 0.5782518 0.8162275 0.0000196000
    
 #BAG1   0.5103609 0.4004077 0.6505076 0.0000000553
    
    
    
    
    AI助手

下面的代码直接从头运行到尾,不需要任何改动:

复制代码
 rt <- data

    
 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))
    
  
    
 gene <- rownames(rt)
    
  
    
 n <- nrow(rt)
    
 nRow <- n+1
    
 ylim <- c(1,nRow)
    
 layout(matrix(c(1,2),nc=2),width=c(3,2.5))
    
 xlim = c(0,3)
    
 par(mar=c(4,2.5,2,1))
    
 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,2,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.05,col="darkblue",lwd=2.5)
    
 abline(v=1,col="black",lty=2,lwd=2)
    
 boxcolor = ifelse((as.numeric(hr)>1)&(pVal<0.05),'red3',"green3")
    
 points(as.numeric(hr), n:1, pch = 15, col = boxcolor, cex=1.3)
    
 axis(1)
    
    
    
    
    AI助手

运行完了以后,可以在R软件旁边看到如下图像:

确定图片没有问题,大小合适,我们就可以点击导出图片了。

全部评论 (0)

还没有任何评论哟~