1.生存曲线

基础包survival+扩展包survminer。

survival包内置肺癌数据集lung。

library(survival)
library(survminer)
str(lung) #拟合模型
fit <- survfit(Surv(time,status)~sex,data=lung)
#绘制生存曲线
ggsurvplot(fit,
pval = TRUE, #添加log rank检验的p值
conf.int = TRUE, #添加置信区间
risk.table = TRUE, #添加风险表
risk.table.col='strata', #根据数据分组为风险表添加颜色
linetype = 'strata', #不同组别生存曲线线型
surv.median.line = 'hv', #标注中位生存时间
ggtheme = theme_bw(), #主题风格
palette = c("#E7B800","#2E9FDF")) #颜色风格

生存曲线进一步修饰。

ggsurvplot(fit,
pval = TRUE,
conf.int = TRUE,
conf.int.style='ribbon', #置信区间风格
xlab='Time in days',
break.time.by=200, #将x轴按200为间隔切分
ggtheme = theme_light(),
risk.table = 'abs_pct', #风险表中添加绝对数和相对数
risk.table.y.text.col=TRUE, #风险表文字颜色
risk.table.y.text=FALSE, #以条图展示风险表标签(非文字)
ncensor.plot=TRUE, #展示随访中不同时间点死亡和删失的情况
surv.median.line = 'hv',
legend.labs=c('Male','Female'), #改变图例标签
palette = c("#E7B800","#2E9FDF"))



其他类型生存曲线绘制。

fun参数默认pct (survival probability in percentage),即累计生存率,此外fun还可设为cumhaz(cumulative hazard)累计风险,或event(cumulative events)累计的结局事件发生数,即累计死亡人数。

#累计风险
ggsurvplot(fit,
conf.int = TRUE,
risk.table.col="strata",
ggtheme = theme_bw(),
palette = c("#E7B800","#2E9FDF"),
fun = 'cumhaz') #累计死亡人数
ggsurvplot(fit,
conf.int = TRUE,
risk.table.col="strata",
ggtheme = theme_bw(),
palette = c("#E7B800","#2E9FDF"),
fun = 'event')
#注意y轴是累计死亡人数占总人数比例

2. meta分析森林图

常见meta分析(重分析)图形,如森林图、漏斗图。

#install.packages('meta')
library(meta)
data("Olkin95") #内置 #metabin进行二分类数据的meta分析
metal <- metabin(event.e, #实验组事件发生数
n.e, #实验组样本量
event.c, #对照组事件发生数
n.c, #对照组样本量
data = Olkin95,subset = c(41,47,51,59), #选取4篇文章meta分析
sm="RR", #汇总指标
method = "I", #结果汇总方法,I表倒方差法
studlab = paste(author,year))#森林图上文献标识 forest(metal)

认识一下普通meta分析森林图的几大基本元素。图形的最左边,即第一部分,是纳入文献的标识,此处使用的是第一作者姓名加上发表日期,这个标识是由metabin()函数中的studlab参数来决定的。依次往右,第二部分是纳入文献中的原始数据,由于此处使用的是二分类数据,所以有实验组和对照组之分,在每个组中,又列出了事件发生数和总样本数,即events和total。图形第三部分是森林图的图形主干,展示的是每篇纳入文献的点估计和区间估计,大家注意,在图中,纳入文献的点估计是用方块表示,而在所有方块下面,就是汇总的结果,用菱形表示,垂直于菱形中央的虚线表示的是汇总结果的点估计值,菱形的延伸范围表示汇总结果的区间估计值。继续往右,第四部分展示了每篇纳入文献的RR值的点估计和区间估计值。图形第五部分展示的是不同模型下(固定效应模型和随机效应模型)的每篇纳入文献所占权重。第六部分位于图形的下方,可以看到图中展示了固定效应模型和随机效应模型下的汇总结果,并且展示了文献之间的异质性和异质性检验结果。

forest函数的参数非常多,下面对其中主要参数进行设置。

修饰的森林图。

forest(metal,
studlab = TRUE, #添加文献标识
layout = 'RevMan5', #布局模式,JAMA
comb.fixed = TRUE, #展示固定效应模型结果
comb.random = FALSE, #展示随机效应模型结果
overall = TRUE, #展示汇总值
lty.fixed = 2,#固定效应模型点估计值的线型,1-6
prediction = TRUE,#展示汇总值预测区间
xlab = 'RR estimates',
xlab.pos = 1, #x轴标签中点的位置
xlim = c(0.1,5),
ref = 1, #设置参考值
lab.e = '实验组',
lab.c='对照组',
col.square='forestgreen', #每篇文献对应方形颜色
col.square.lines='blue',#每篇文献对应区间线条颜色
col.diamond.fixed='deeppink1',#固定效应模型汇总值的菱形颜色
test.overall=TRUE, #汇总值统计检验
fs.study=10, #每篇文献结果字体大小
ff.study='italic',
fs.study.label=11, #文献标识字体大小
ff.study.label='bold',
fs.axis=5,
ff.axis='italic',
ff.smlab='bold.italic',
ff.fixed='plain',
ff.hetstat='plain',
digits=3
)

统计结果汇总森林图

分组汇总结果。

使用forestplot包。

3.曼哈顿图

展示全基因组关联分析(GWAS)结果。

#install.packages('qqman')
library(qqman)
gwasdata <- data.frame(SNP=1:50000,
CHR=c(paste0('Chr',rep(1:10,each=50000))),
BP=rep(1:50000,10), #染色体中SNP位点的位置
P=abs(rnorm(50000*10,0.2,0.3))) #SNP位点的统计检验P值
library(RColorBrewer) manhattan(gwasdata,
col=brewer.pal(10,'Spectral'), #定义x轴染色体颜色
cex=0.6,
chrlabs = rep(paste0('Chr',1:10)), #自定义染色体标号
suggestiveline = -log10(1e-5), #添加指示线,默认-log10(1e-5)
genomewideline = -log10(1e-7))#添加P值显著线,默认-log10(5e-10) #内置数据
str(gwasResults)
manhattan(gwasResults,
highlight = snpsOfInterest, #需要标亮的SNP位点
col=c("#A4D3EE","#DDA0DD")) #单条染色体
manhattan(subset(gwasResults,CHR==2),col="#DDA0DD")

R语言与医学统计图形-【33】生存曲线、森林图、曼哈顿图的更多相关文章

  1. R语言与医学统计图形【1】par函数

    张铁军,陈兴栋等 著 R语言基础绘图系统 基础绘图包之高级绘图函数--par函数 基础绘图包并非指单独某个包,而是由几个R包联合起来的一个联盟,比如graphics.grDevices等. 掌握par ...

  2. R语言与医学统计图形【5】饼图、条件图

    R语言基础绘图系统 基础图形--饼图.克利夫兰点图.条件图 6.饼图 pie(rep(1,26),col=rainbow(26), labels = LETTERS[1:26], #标签 radius ...

  3. R语言与医学统计图形【6】低级绘图函数

    R语言基础绘图系统 基础绘图包之低级绘图函数--定义坐标轴.图例.文本 低级绘图函数:本身不具备图形绘制能力,只是在已有图形基础上添加元素. 函数 功能 arrows 添加箭头 axis 坐标轴 bo ...

  4. R语言与医学统计图形【4】直方图、金字塔图

    R语言基础绘图系统 基础图形--直方图.金字塔图 3.直方图 参数设置及比较. op <- par(mfrow=c(2,3)) data <- rnorm(100,10,5) hist(d ...

  5. R语言与医学统计图形【3】条形图、误差图

    R语言基础绘图系统 基础图形--条形图.误差图 3.条形图 barplot接收的数据是矩阵而非数据框. data <- sample(c(50:80),5) barplot(data,col=h ...

  6. R语言与医学统计图形【2】散点图、盒形图

    R语言基础绘图系统 基础图形--散点图.盒形图 plot是一个泛型函数(generic method),对于不同的数据绘制不同的图形. par函数的大部分参数在plot中通用. 1.散点图 plot绘 ...

  7. R语言与医学统计图形【8】颜色的选取

    R语言基础绘图系统 基础绘图包之低级绘图函数--内置颜色. 1.内置颜色选取 功能657种内置颜色.colors() 调色板函数:palette(), rgb(), rainbow(). palett ...

  8. R语言与医学统计图形【7】低级绘图函数

    R语言基础绘图系统 基础绘图包之低级绘图函数--气泡图.一页多图.背景网格.添加线条和散点.数学表达式 4.气泡图 symbols是高级绘图函数,可在图上添加标记,标记的形状包括:circles,sq ...

  9. R语言与医学统计图形-【28】ggplot2扩展包ggrepel、ggsci、gganimate、ggpubr

    ggplot2绘图系统--扩展包ggrepel.ggsci.gganimate.ggpubr等 部分扩展包可在CRAN直接下载,有些需借助devtools包从Github下载. 1. ggrepel包 ...

随机推荐

  1. BUAA SE | 提问回顾与个人总结

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾与个人总结 我在这个课程的目标是 深入理解软件工程 这个作业在哪个具体方面帮助我实现目标 ...

  2. 基于自定义Validator来验证枚举类型

    基于自定义Validator来验证枚举类型 一.背景 二.技术要点 三.实现一个自定义枚举校验. 1.需求. 2.实现步骤 1.自定义一个 Sex 枚举. 2.自定义一个 Enum 注解 3.编写具体 ...

  3. linux下命令拼接

    前言:我个five,一道特别简单的拼接题没有做出来,我吐了,不过也是涨知识了 直接切入正题了 linux命令是可以拼接的,也就是说在一个system("???")下我们的???可以 ...

  4. VS2019、Qt5.12及QGis3.16开发常见问题汇总

    在C++.Qt软件开发过程中,常常遇到一些编译错误或警告:本文将VS2019.Qt5.12.10和QGis3.16.10的二次开发过程常见的问题做了整理,供大家参考,也便于日后查阅.该内容分为四部分: ...

  5. 在c中使用正则表达式

    今天学习编译原理的时候,用c写一个简易的文法识别器实验遇到了一个问题:要用正则表达式去识别正则文法里面的A->ω,A->Bω, 其中ω属于T的正闭包,也就是说我们对正则文法的产生式进行抽象 ...

  6. cf16E Fish(状压DP)

    题意: N只FISH.每个回合会有一只FISH吃掉另一个FISH.直到池塘里只剩一只FISH. 给出aij:第i只FISH吃掉第J只FISH的概率. 问每一只FISH是最后存活者的概率. Input ...

  7. hadoop前期准备

    最近想要学习一下hadoop,现在想边学习边记录下,方便以后自己或别人查看.(注意最好ubantu,jdk及其他软件选择32bit的,jdk最好7以上) 首先配置下jdk,下载下jdk的包,把jdk- ...

  8. 【Go语言学习笔记】Go的函数

    函数还是这几块: 参数 返回值 作用域 执行顺序 参数和返回值 func FuncName(/*参数列表*/) (o1 type1, o2 type2/*返回类型*/) { //函数体 return ...

  9. k8s入坑之路(10)kubernetes coredns详解

    概述 作为服务发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,那么就需要一个集群范围内的DNS服务来完成从服务名到ClusterIP的解析. DNS服务在kubernetes中经历了三个 ...

  10. 彻底掌握 Commonjs 和 Es Module

    目录 Commonjs commonjs 实现原理 require 文件加载流程 require 模块引入与处理 require 加载原理 require 避免重复加载 require 避免循环引用 ...