作为开篇的介绍,这好像是我第一次写关于R画图的内容,原因呢当然是因为本人懒。现在既然有要做平台,那么就努力更新点干货给大家吧! 虽然是一门统计语言,它的画图能力也毫不逊色。“R以能创建漂亮优雅的图形而闻名。”这是《R语言实战》一书中对R语言的简短有力的一句评价。 那么在研究生涯中。对于简单的统计图,我们使用prism、excel等画出来的竟然比自己用R画出来的还要好看。不禁让我们产生了疑问,这到底是为什么呢? 于是乎,大家就开始在百度上搜啊搜,谷歌上搜啊搜,很难找到对上自己口味的图,找到了呢可能又没有代码实操。 此次就是给大家这样一次机会,自己动手,丰衣足食。图给你,代码也给你。当然啦,文章分享出去,有了影响力,以后会有更多的同学从其他地方搜到我们的内容,就更好不过了。 以TP53基因和肝癌的关系为例,下面开始主线内容:
代码语言:javascript复制load('20211104.Rda')#加载数据
library(ggplot2)#加载包
library(ggpubr)
library(ggthemes)
复制代码
代码语言:javascript复制1.比较癌和癌旁
df <- df1[,c('TP53','group')]#选择表达和分组的列
dfgroup <- as.factor(df
levels(df$group)#这里就可以看到分组的等级了,主要是为了检查,比如年龄分组,简单as.factor可能不是你想要的顺序,这个时候就需要factor(变量,levels=c('<40','40-50','≥50'))
复制代码
代码就不解释了,R语言的”?函数名“可以给大家很好的帮助。最后的效果呢?
是不是很赞?当然颜色不符合你的口味,大胆的去尝试不同的‘Red’Blue‘。 2.比较不同的肿瘤分级
代码语言:javascript复制df <- df1[df1$group == 'Tumor',]#373个,去除了癌旁
table(df$neoplasm_histologic_grade)#查看变量
# G1 G2 G3 G4
# 5 55 178 123 12
#这个时候存在<span style="background-color: yellow;">5个空值</span>,那么我们分析前需要排除
df <- df[c('TP53','neoplasm_histologic_grade')]#选取对应列
df <- na.omit(df)#373
df <- df[!df$neoplasm_histologic_grade %in% c(''),]#已排除''的样本,373-5=368
table(df$neoplasm_histologic_grade)#正常了
dfneoplasm_histologic_grade <- as.factor(df
levels(df$neoplasm_histologic_grade) #"G1" "G2" "G3" "G4",顺序也完美
ggviolin(df, "neoplasm_histologic_grade", "TP53", fill = "neoplasm_histologic_grade",
palette = c('#C1FFC1','#7AC5CD','#E9967A','#FFB6C1'),
add = "boxplot", add.params = list(fill = "white"), trim = T)
stat_compare_means()
labs(x = 'histologic grade', y = 'log2(TP53 fpkm 1)',title = 'TCGA-LIHC')
theme(panel.grid = element_blank(), axis.line = element_line(colour = 'black'), panel.background = element_blank(),
axis.text = element_text(size = 10, color = 'black'), axis.title = element_text(size = 12, color = 'black'))
theme(plot.title = element_text(hjust = 0.5, face = "bold"))
theme(legend.position="none")
复制代码
3.自定义分组 “一千个人眼中就有一千个哈姆雷特”,莎士比亚说过这样一句话,那么在生信分析中,不同的人有不同的分析手段,展现的结果也会不同。 就好比上图G4只有12人,我们可以合并到G3组中去。
代码语言:javascript复制dfneoplasm_histologic_grade <- ifelse(df
ifelse(df$neoplasm_histologic_grade == 'G1','G1','G2'))#合并G3G4
levels(df$neoplasm_histologic_grade)#因为改动了数据,原有的因子转换成字符型了,这里返回NULL
class(df$neoplasm_histologic_grade)#查看类型果然是"character"
dfneoplasm_histologic_grade <- as.factor(df
levels(df$neoplasm_histologic_grade) #"G1" "G2" "G3_4"完美,顺序也对
ggviolin(df, "neoplasm_histologic_grade", "TP53", fill = "neoplasm_histologic_grade",
palette = c('#C1FFC1','#7AC5CD','#E9967A','#FFB6C1'),
add = "boxplot", add.params = list(fill = "white"), trim = T)
stat_compare_means()
labs(x = 'histologic grade', y = 'log2(TP53 fpkm 1)',title = 'TCGA-LIHC')
theme(panel.grid = element_blank(), axis.line = element_line(colour = 'black'), panel.background = element_blank(),
axis.text = element_text(size = 10, color = 'black'), axis.title = element_text(size = 12, color = 'black'))
theme(plot.title = element_text(hjust = 0.5, face = "bold"))
theme(legend.position="none")
复制代码
至此。本篇内容介绍到这里。代码没有多余的了,全部分享给大家了。
代码中需要用到的输入数据:临床信息和TP53的表达数据。