这两周在几个生信交流群里都看到了有人在问上面这张图的做法,刚好就写了一下作为推送。没有问出处是哪篇文献,所以以下用来分析的数据就是我自己胡编的喽。
首先分析一下图,不是很清楚,大家将就看一下吧。A就是一个散点图,根据Risk Score进行了sort,用基础的plot或者ggplot就能画一个一毛一样的。B也是一个散点图,我习惯用ggplot,只需要把生存状态映射给颜色就可以了。C是一个没有聚类的热图,用pheatmap就可以做出来了。
实在不想去TCGA下载数据整理再来做推送了,机(lan)智(duo)的我直接在R包ggplot2里面找了一组数据,然后把行名给改了,处理了一下,和代码一起放在网盘里,不嫌弃的话可以直接去下载用来练习。
01
A 散点图
用ggplot2做的图,先做一个散点图,然后去掉x轴标签,再删除x轴刻度。点的形状、大小那些细节大家可以自己把握。文献图中的竖线调用geom_vline(),设置一下显示部位就可以了。刻度大小调用
Scatter Plots
install.packages("ggplot2")
library(ggplot2)
mydata <- read.table("witty.txt",sep = "\t",header=T,stringsAsFactors = F,na.strings = "")
p = ggplot(mydata,aes(x=seq,y=risk))+
geom_point(shape=21,color="black",fill="white",sort(aes(mydata$seq)))+
labs(x="",y="Risk Score") #设置坐标轴标签,也可以用axis.title.x = element_blank()处理x轴标签
p + ylim(0,6)+
theme_bw()+
theme(axis.line = element_line(color="black"), #设置坐标轴线
axis.text.x = element_blank(), #删除x轴刻度
axis.text.y = element_text(size = 10))
02
B 生存情况
这个表示生存情况的图和我们平时看到的K-M曲线不太一样,但是这个图也是很好画的,同样用ggplot2就可以了。和上面的那个散点图差不多,只是这里多了一个把生存状态映射给颜色的步骤。在geom_point里面调用color就OK了。另外,我们平常看到的图都是绿色表示Live,红色表示Dead,所以最后又调用了scale_color_manual()对颜色进行了设置。
Survival Graph
library(ggplot2)
survdata <- read.table("witty.txt",sep = "\t",header=T,stringsAsFactors = F,na.strings = "")
survdata$state <- factor(survdata$state)
sg <- ggplot(survdata,aes(x=seq,y=OS,color=state))+
geom_point(shape=21,sort(aes(survdata$seq)))+
ylab("Survival time in years")
final <- sg + theme_bw()+
theme(axis.line = element_line(color = "black"),
axis.text.x = element_blank(),
axis.title.x = element_blank(),
axis.text.y = element_text(size = 10))
final + labs(color="state")+
scale_color_manual(values = c("red","green"))
03
C 热图
忘记RNA-Seq的那篇推送有没有说热图的绘制了。绘制热图的R包有很多,比较习惯用pheatmap,做的图比较漂亮,也很方便,甚至只要把表达数据导入RStudio,然后直接调用pheatmap就能做出聚类图了,具体的用法大家可以去下载说明书研究一下。
pheatmap的缺点可能就是横坐标只能垂直显示吧。最后,导出文件时最好是在pheatmap()中调用filename="xx.pdf",别问我怎么知道的,某次用pdf()作图打开输出文件PDF时是空白的,最后发现竟然有两页,图在第2页。
heapmap
install.packages("pheatmap")
library(pheatmap)
mydata <- read.table("miExpr.txt",sep = "\t",header=T,row.names = 1,stringsAsFactors = F,na.strings = "")
pheatmap(mydata,cluster_rows = F,cluster_cols = F,show_rownames = T,show_colnames = T)
col_anno <- data.frame(SampleType=rep(c("Normal","Cancer"),c(16,16)),row.names= colnames(mydata)) #样本分组信息
anno_color <- list(SampleType = c(Normal="green",Cancer="red")) #设置样本颜色
pheatmap::pheatmap(mydata,scale = "column",show_colnames = F,
cluster_rows = F,cluster_cols = F,
annotation_col = col_anno,annotation_colors = anno_color)
这周就这么多咯,主要分析了文献里面的一个实例。代码和数据可以在网盘中下载,ggplot2的说明书也放在里面了,链接:https://pan.baidu.com/s/1WFYQdwWIqczJ1wZnP_cXeA 密码:1cvs。
这次没有碎碎念,同样欢迎大家投稿和交流,有趣的案例或者是有什么问题都可以,或者只是交换一下学习资料或者分享学习资料也是OK的。
不会搞科研的医生不是好厨子,欢迎大家来厨房找我玩,虽然你们肯定找不到我hahahahaha~~~~~~
PS: 大家要是觉得这个公众号还OK的话可以推荐给同学或者同事啊,比无数个心心
欢迎关注生信人
TCGA | 小工具 | 数据库 |组装| 注释 | 基因家族 | Pvalue
基因预测 |bestorf | sci | NAR | 在线工具 | 生存分析 | 热图
生信不死 | 初学者 | circRNA | 一箭画心| 十二生肖 | circos
舞台|基因组 | 黄金测序 | 套路 | 杂谈组装 | 进化 | 测序简史
联系客服