Title: | Risk Score Plot for Cox Regression |
Version: | 1.3 |
Description: | The risk plot may be one of the most commonly used figures in tumor genetic data analysis. We can conclude the following two points: Comparing the prediction results of the model with the real survival situation to see whether the survival rate of the high-risk group is lower than that of the low-level group, and whether the survival time of the high-risk group is shorter than that of the low-risk group. The other is to compare the heat map and scatter plot to see the correlation between the predictors and the outcome. |
License: | GPL-2 |
Encoding: | UTF-8 |
LazyData: | true |
RoxygenNote: | 7.1.1 |
Depends: | R (≥ 2.10) |
Imports: | ggplot2, survival, egg, do, set, cutoff, grid, rms, nomogramFormula, reshape2 |
URL: | https://github.com/yikeshu0611/ggrisk |
BugReports: | https://github.com/yikeshu0611/ggrisk/issues |
NeedsCompilation: | no |
Packaged: | 2021-08-07 14:40:20 UTC; asus |
Author: | Jing Zhang [aut, cre], Zhi Jin [aut] |
Maintainer: | Jing Zhang <zj391120@163.com> |
Repository: | CRAN |
Date/Publication: | 2021-08-09 07:40:06 UTC |
ICGC Liver Data from Japan
Description
This data is a liver cancer data from Japan Data released in ICGC database (Link). It cantains time, event and four genes.
Usage
data(LIRI)
Format
An object of class data.frame
with 232 rows and 6 columns.
Examples
data(LIRI)
Risk Score Plot for Cox Regression
Description
Risk Score Plot for Cox Regression
Usage
ggrisk(
fit,
heatmap.genes = NULL,
new.data = NULL,
code.0 = "Alive",
code.1 = "Dead",
code.highrisk = "High",
code.lowrisk = "Low",
cutoff.show = TRUE,
cutoff.value = "median",
cutoff.x = NULL,
cutoff.y = NULL,
cutoff.label = NULL,
title.A.ylab = "Risk Score",
title.B.ylab = "Survival Time",
title.A.legend = "Risk Group",
title.B.legend = "Status",
title.C.legend = "Expression",
size.ABC = 1.5,
size.ylab.title = 14,
size.Atext = 11,
size.Btext = 11,
size.Ctext = 11,
size.yticks = 0.5,
size.yline = 0.5,
size.points = 2,
size.dashline = 1,
size.cutoff = 5,
size.legendtitle = 13,
size.legendtext = 12,
color.A = c(low = "blue", high = "red"),
color.B = c(code.0 = "blue", code.1 = "red"),
color.C = c(low = "blue", median = "white", high = "red"),
vjust.A.ylab = 1,
vjust.B.ylab = 2,
family = "sans",
expand.x = 3,
relative_heights = c(0.1, 0.1, 0.01, 0.15)
)
Arguments
fit |
cox regression results of coxph() from 'survival' package or cph() from 'rms' package |
heatmap.genes |
(optional) numeric variables. Name for genes |
new.data |
new data for validation |
code.0 |
string. Code for event 0. Default is 'Alive' |
code.1 |
string. Code for event 1. Default is 'Dead' |
code.highrisk |
string. Code for highrisk in risk score. Default is 'High' |
code.lowrisk |
string. Code for lowrisk in risk score. Default is 'Low' |
cutoff.show |
logical, whether to show text for cutoff in figure A. Default is TRUE |
cutoff.value |
string, which can be 'median', 'roc' or 'cutoff'. Even you can define it by yourself |
cutoff.x |
numeric (optional), ordination x for cutoff text |
cutoff.y |
numeric (optional), ordination y for cutoff text |
cutoff.label |
(should be) string. Define cutoff label by yourself |
title.A.ylab |
string, y-lab title for figure A. Default is 'Risk Score' |
title.B.ylab |
string, y-lab title for figure B. Default is 'Survival Time' |
title.A.legend |
string, legend title for figure A. Default is 'Risk Group' |
title.B.legend |
string, legend title for figure B. Default is 'Status' |
title.C.legend |
string, legend title for figure C. Default is 'Expression' |
size.ABC |
numeric, size for ABC. Default is 1.5 |
size.ylab.title |
numeric, size for y-axis label title. Default is 14 |
size.Atext |
numeric, size for y-axis text in figure A. Default is 11 |
size.Btext |
numeric, size for y-axis text in figure B. Default is 11 |
size.Ctext |
numeric, size for y-axis text in figure C. Default is 11 |
size.yticks |
numeric, size for y-axis ticks. Default is 0.5 |
size.yline |
numeric, size for y-axis line. Default is 0.5 |
size.points |
numeric, size for scatter points. Default is 2 |
size.dashline |
numeric, size for dashline. Default is 1 |
size.cutoff |
numeric, size for cutoff text. Default is 5 |
size.legendtitle |
numeric, size for legend title. Default is 13 |
size.legendtext |
numeric, size for legend text. Default is 12 |
color.A |
color for figure A. Default is low = 'blue', high = 'red' |
color.B |
color for figure B. Default is code.0 = 'blue', code.1 = 'red' |
color.C |
color for figure C. Default is low = 'blue', median = 'white', high = 'red' |
vjust.A.ylab |
numeric, vertical just for y-label in figure A. Default is 1 |
vjust.B.ylab |
numeric, vertical just for y-label in figure B. Default is 2 |
family |
family, default is sans |
expand.x |
numeric, expand for x-axis |
relative_heights |
numeric, relative heights for figure A, B, colored side bar and heatmap. Default is 0.1 0.1 0.01 and 0.15 |
Value
A risk score picture
Examples
library(rms)
library(ggrisk)
fit <- cph(Surv(time,status)~ANLN+CENPA+GPR182+BCO2,LIRI)
ggrisk(fit,
cutoff.value='median',
cutoff.x = 145,
cutoff.y = -0.8)
#more detailed example
#plot
ggrisk(fit)
#heatmap.genes
ggrisk(fit,
heatmap.genes=c('GPR182','CENPA','BCO2'))
#cutoff
ggrisk(fit,
cutoff.value='median') #default
ggrisk(fit,
cutoff.value='roc')
ggrisk(fit,
cutoff.value='cutoff')
ggrisk(fit,
cutoff.value=-1)
ggrisk(fit,
cutoff.value='median',
cutoff.x = 145,
cutoff.y = -0.8)
ggrisk(fit,
cutoff.value='median',
cutoff.x = 145,
cutoff.y = -0.8,
cutoff.label='This is cutoff')
#code for 0 and 1
ggrisk(fit,
cutoff.value='median',
cutoff.x = 145,
cutoff.y = -0.8,
code.0 = 'Still Alive',
code.1 = 'Already Dead')
#code for high and low risk group
ggrisk(fit,
cutoff.value='median',
cutoff.x = 145,
cutoff.y = -0.8,
code.0 = 'Still Alive',
code.1 = 'Already Dead',
code.highrisk = 'High Risk',
code.lowrisk = 'Low Risk')
#title
ggrisk(fit,
cutoff.value='median',
cutoff.x = 145,
cutoff.y = -0.8,
code.0 = 'Still Alive',
code.1 = 'Already Dead',
code.highrisk = 'High Risk',
code.lowrisk = 'Low Risk',
title.A.ylab='Risk Score',
title.B.ylab='Survival Time(year)',
title.A.legend='Risk Group',
title.B.legend='Status',
title.C.legend='Expression')
#size
ggrisk(fit,
cutoff.value='median',
cutoff.x = 145,
cutoff.y = -0.8,
code.0 = 'Still Alive',
code.1 = 'Already Dead',
code.highrisk = 'High Risk',
code.lowrisk = 'Low Risk',
title.A.ylab='Risk Score',
title.B.ylab='Survival Time(year)',
title.A.legend='Risk Group',
title.B.legend='Status',
title.C.legend='Expression',
size.ABC=1.5,
size.ylab.title=14,
size.Atext=11,
size.Btext=11,
size.Ctext=11,
size.yticks=0.5,
size.yline=0.5,
size.points=2,
size.dashline=1,
size.cutoff=5,
size.legendtitle=13,
size.legendtext=12)
#color
ggrisk(fit,
cutoff.value='median',
cutoff.x = 145,
cutoff.y = -0.8,
code.0 = 'Still Alive',
code.1 = 'Already Dead',
code.highrisk = 'High Risk',
code.lowrisk = 'Low Risk',
title.A.ylab='Risk Score',
title.B.ylab='Survival Time(year)',
title.A.legend='Risk Group',
title.B.legend='Status',
title.C.legend='Expression',
size.ABC=1.5,
size.ylab.title=14,
size.Atext=11,
size.Btext=11,
size.Ctext=11,
size.yticks=0.5,
size.yline=0.5,
size.points=2,
size.dashline=1,
size.cutoff=5,
size.legendtitle=13,
size.legendtext=12,
color.A=c(low='blue',high='red'),
color.B=c(code.0='blue',code.1='red'),
color.C=c(low='blue',median='white',high='red'))
#vjust
ggrisk(fit,
cutoff.value='median',
cutoff.x = 145,
cutoff.y = -0.8,
code.0 = 'Still Alive',
code.1 = 'Already Dead',
code.highrisk = 'High Risk',
code.lowrisk = 'Low Risk',
title.A.ylab='Risk Score',
title.B.ylab='Survival Time(year)',
title.A.legend='Risk Group',
title.B.legend='Status',
title.C.legend='Expression',
size.ABC=1.5,
size.ylab.title=14,
size.Atext=11,
size.Btext=11,
size.Ctext=11,
size.yticks=0.5,
size.yline=0.5,
size.points=2,
size.dashline=1,
size.cutoff=5,
size.legendtitle=13,
size.legendtext=12,
color.A=c(low='blue',high='red'),
color.B=c(code.0='blue',code.1='red'),
color.C=c(low='blue',median='white',high='red'),
vjust.A.ylab=1,
vjust.B.ylab=2)
#family, expand, relative height
ggrisk(fit,
cutoff.value='median',
cutoff.x = 145,
cutoff.y = -0.8,
code.0 = 'Still Alive',
code.1 = 'Already Dead',
code.highrisk = 'High Risk',
code.lowrisk = 'Low Risk',
title.A.ylab='Risk Score',
title.B.ylab='Survival Time(year)',
title.A.legend='Risk Group',
title.B.legend='Status',
title.C.legend='Expression',
size.ABC=1.5,
size.ylab.title=14,
size.Atext=11,
size.Btext=11,
size.Ctext=11,
size.yticks=0.5,
size.yline=0.5,
size.points=2,
size.dashline=1,
size.cutoff=5,
size.legendtitle=13,
size.legendtext=12,
color.A=c(low='blue',high='red'),
color.B=c(code.0='blue',code.1='red'),
color.C=c(low='blue',median='white',high='red'),
vjust.A.ylab=1,
vjust.B.ylab=2,
family='sans',
expand.x=3,
relative_heights=c(0.1,0.1,0.01,0.15))
Two Scatter Plot Plot for Cox Regression
Description
Two Scatter Plot Plot for Cox Regression
Usage
two_scatter(
fit,
new.data = NULL,
code.0 = "Alive",
code.1 = "Dead",
code.highrisk = "High",
code.lowrisk = "Low",
cutoff.show = TRUE,
cutoff.value = "median",
cutoff.x,
cutoff.y,
cutoff.label,
title.A.ylab = "Risk Score",
title.B.ylab = "Survival Time",
title.xlab = "Rank",
title.A.legend = "Risk Group",
title.B.legend = "Status",
size.AB = 1.5,
size.ylab.title = 14,
size.xlab.title = 14,
size.Atext = 11,
size.Btext = 11,
size.xtext = 11,
size.xyticks = 0.5,
size.xyline = 0.5,
size.points = 2,
size.dashline = 1,
size.cutoff = 5,
size.legendtitle = 13,
size.legendtext = 12,
color.A = c(low = "blue", high = "red"),
color.B = c(code.0 = "blue", code.1 = "red"),
vjust.A.ylab = 1,
vjust.B.ylab = 2,
family = "sans",
expand.x = 3
)
Arguments
fit |
cox regression results of coxph() from 'survival' package or cph() from 'rms' package |
new.data |
new data for validation |
code.0 |
string. Code for event 0. Default is 'Alive' |
code.1 |
string. Code for event 1. Default is 'Dead' |
code.highrisk |
string. Code for highrisk in risk score. Default is 'High' |
code.lowrisk |
string. Code for lowrisk in risk score. Default is 'Low' |
cutoff.show |
logical, whether to show text for cutoff in figure A. Default is TRUE |
cutoff.value |
string, which can be 'median', 'roc' or 'cutoff'. Even you can define it by yourself |
cutoff.x |
numeric (optional), ordination x for cutoff text |
cutoff.y |
numeric (optional), ordination y for cutoff text |
cutoff.label |
(should be) string. Define cutoff label by yourself |
title.A.ylab |
string, y-lab title for figure A. Default is 'Riskscore' |
title.B.ylab |
string, y-lab title for figure B. Default is 'Survival Time' |
title.xlab |
string, x-lab title for figure B. Default is 'Rank' |
title.A.legend |
string, legend title for figure A. Default is 'Risk Group' |
title.B.legend |
string, legend title for figure B. Default is 'Status' |
size.AB |
numeric, size for ABC. Default is 1.5 |
size.ylab.title |
numeric, size for y-axis label title. Default is 14 |
size.xlab.title |
numeric, size for x-axis lab title. Default is 11 |
size.Atext |
numeric, size for y-axis text in figure A. Default is 11 |
size.Btext |
numeric, size for y-axis text in figure B. Default is 11 |
size.xtext |
numeric, size for x-axis text. Default is 11 |
size.xyticks |
numeric, size for y-axis ticks. Default is 0.5 |
size.xyline |
numeric, size for y-axis line. Default is 0.5 |
size.points |
numeric, size for scatter points. Default is 2 |
size.dashline |
numeric, size for dashline. Default is 1 |
size.cutoff |
numeric, size for cutoff text. Default is 5 |
size.legendtitle |
numeric, size for legend title. Default is 13 |
size.legendtext |
numeric, size for legend text. Default is 12 |
color.A |
color for figure A. Default is low = 'blue', high = 'red' |
color.B |
color for figure B. Default is code.0 = 'blue', code.1 = 'red' |
vjust.A.ylab |
numeric, vertical just for y-label in figure A. Default is 1 |
vjust.B.ylab |
numeric, vertical just for y-label in figure B. Default is 2 |
family |
family, default is sans |
expand.x |
numeric, expand for x-axis |
Value
A riskscore picture
Examples
library(rms)
fit <- cph(Surv(time,status)~ANLN+CENPA+GPR182+BCO2,LIRI)
two_scatter(fit,
cutoff.value = 'median',
cutoff.x = 142,
cutoff.y = -0.5)
#more detailed example
library(ggrisk)
#plot
two_scatter(fit)
#regulate cutoff
##hidden cutoff
two_scatter(fit,
cutoff.show = FALSE)
two_scatter(fit,
cutoff.value = 'median')
two_scatter(fit,
cutoff.value = 'roc')
two_scatter(fit,
cutoff.value = 'cutoff')
two_scatter(fit,
cutoff.value = -1)
two_scatter(fit,
cutoff.value = 'median',
cutoff.x = 142,
cutoff.y = -0.5)
#code for 0 and 1
two_scatter(fit,
cutoff.value = 'median',
cutoff.x = 142,
cutoff.y = -0.5,
code.0 = 'Still Alive',
code.1 = 'Dead')
#code for high and low risk group
two_scatter(fit,
cutoff.value = 'median',
cutoff.x = 142,
cutoff.y = -0.5,
code.0 = 'Still Alive',
code.1 = 'Dead',
code.highrisk = 'High Group',
code.lowrisk = 'Low Group')
#title for legend, x and y lab
two_scatter(fit,
cutoff.value = 'median',
cutoff.x = 142,
cutoff.y = -0.5,
code.0 = 'Still Alive',
code.1 = 'Dead',
code.highrisk = 'High Group',
code.lowrisk = 'Low Group',
title.A.legend = 'Riskscore',
title.B.legend = 'Event Status',
title.A.ylab = 'Riskscore',
title.B.ylab = 'Survival Time(year)',
title.xlab = 'This is rank')
#vertical just for y-axis lab
two_scatter(fit,
cutoff.value = 'median',
cutoff.x = 142,
cutoff.y = -0.5,
code.0 = 'Still Alive',
code.1 = 'Dead',
code.highrisk = 'High Group',
code.lowrisk = 'Low Group',
title.A.legend = 'Riskscore',
title.B.legend = 'Event Status',
title.A.ylab = 'Riskscore',
title.B.ylab = 'Survival Time(year)',
title.xlab = 'This is rank',
vjust.A.ylab = 1,
vjust.B.ylab = 3)
#size
two_scatter(fit,
cutoff.value = 'median',
cutoff.x = 142,
cutoff.y = -0.5,
code.0 = 'Still Alive',
code.1 = 'Dead',
code.highrisk = 'High Group',
code.lowrisk = 'Low Group',
title.A.legend = 'Riskscore',
title.B.legend = 'Event Status',
title.A.ylab = 'Riskscore',
title.B.ylab = 'Survival Time(year)',
title.xlab = 'This is rank',
vjust.A.ylab = 1,
vjust.B.ylab = 3,
size.AB = 2,
size.ylab.title = 14,
size.xlab.title = 14,
size.Atext = 12,
size.Btext = 12,
size.xtext = 12,
size.xyticks = 0.5,
size.xyline = 0.5,
size.dashline = 1.5,
size.points = 1,
size.cutoff = 5,
size.legendtitle = 14,
size.legendtext = 13)
#color
two_scatter(fit,
cutoff.value = 'median',
cutoff.x = 142,
cutoff.y = -0.5,
code.0 = 'Still Alive',
code.1 = 'Dead',
code.highrisk = 'High Group',
code.lowrisk = 'Low Group',
title.A.legend = 'Riskscore',
title.B.legend = 'Event Status',
title.A.ylab = 'Riskscore',
title.B.ylab = 'Survival Time(year)',
title.xlab = 'This is rank',
vjust.A.ylab = 1,
vjust.B.ylab = 3,
size.AB = 2,
size.ylab.title = 14,
size.xlab.title = 14,
size.Atext = 12,
size.Btext = 12,
size.xtext = 12,
size.xyticks = 0.5,
size.xyline = 0.5,
size.dashline = 1.5,
size.points = 1,
size.cutoff = 5,
size.legendtitle = 14,
size.legendtext = 13,
color.A = c(low='green',high='red'),
color.B = c(code.0='green',code.1='red'))
#famli and expand
two_scatter(fit,
cutoff.value = 'median',
cutoff.x = 142,
cutoff.y = -0.5,
code.0 = 'Still Alive',
code.1 = 'Dead',
code.highrisk = 'High Group',
code.lowrisk = 'Low Group',
title.A.legend = 'Riskscore',
title.B.legend = 'Event Status',
title.A.ylab = 'Riskscore',
title.B.ylab = 'Survival Time(year)',
title.xlab = 'This is rank',
vjust.A.ylab = 1,
vjust.B.ylab = 3,
size.AB = 2,
size.ylab.title = 14,
size.xlab.title = 14,
size.Atext = 12,
size.Btext = 12,
size.xtext = 12,
size.xyticks = 0.5,
size.xyline = 0.5,
size.dashline = 1.5,
size.points = 1,
size.cutoff = 5,
size.legendtitle = 14,
size.legendtext = 13,
color.A = c(low='green',high='red'),
color.B = c(code.0='green',code.1='red'),
family = 'sans', # sans for Arail, serif for Times New Roman
expand.x=10)