距离上一次写简书已经有两个月了,这两个月我可是过着昏天黑地的分析数据的日子,单细胞数据真TM.....太复杂了!
偶尔看了一下我上一篇文章阅读量已经快过千了,心里很高兴,就想着再写一篇;
偶尔昨天帮师姐分析做的一个图很好看,就想展示一波;
偶尔的偶尔,今天中午有点时间,那就开整:
之前大家展示差异基因最常用的是这个
嗯。。。有点老套,缺乏新意
直到看见这种耳目一新的图:
呐
想模仿,那就展示:
rm(list=ls())#清除环境变量
setwd("")#设置工作路径
#读取示例数据
express <- read.delim('gene_diff.txt', sep = '\t')#RNA-seq差异分析后的数据,不是表达矩阵
#将基因表达值取个log(1+)转换
express$control <- log(express$control+1)#值不大时可以不取log
express$treat <- log(express$treat+1)
#排序,目的是将显著的基因展示在前方图层,避免被不显著基因的点遮盖
express$diff <- factor(express$diff, levels = c('up', 'down', 'none'))
express <- express[order(express$diff, decreasing = TRUE), ]
#write.csv(express,"anjun.csv")
head(express) #查看读取并预处理后的数据表格
#绘制散点图,显著上、下调基因以不同颜色区分
library(ggplot2)
library(cowplot)
library(Seurat)
library(dplyr)
p1<- ggplot(express, aes(x = control, y = treat)) +
geom_point(aes(color = diff), size = 1.5) + #按上下调指定基因点的颜色
scale_color_manual(values = c('red', 'gray', 'green4'), limit = c('up', 'none', 'down')) + #上下调基因颜色赋值
theme_bw() + #背景调整
labs(x = 'control group', y = 'treat group', color = '') + #坐标轴标题设置
geom_abline(intercept = 0.58, slope = 1, col = 'black', linetype = 'dashed', size = 0.5) + #这3句用于添加 |log2FC|>1 的阈值线
geom_abline(intercept = -0.58, slope = 1, col = 'black', linetype = 'dashed', size = 0.5) +
geom_abline(intercept = 0, slope = 1, col = 'black', linetype = 'dashed', size = 0.5)
p1
师姐表示想展示感兴趣的基因,那就安排上
genes.to.label = c("ENSG00000257743", "ENSG00000043355")#换成你要的基因名
rownames(p1[["data"]])=p1[["data"]]$gene_id
p1 <- LabelPoints(plot = p1, points = genes.to.label, repel = TRUE, size=2.5)
p1
桥豆麻袋,买一送一
#按 p 值数值的渐变色散点图
p2<- ggplot(express, aes(x = control, y = treat)) +
geom_point(aes(color = pvalue), size = 1.5) + #按 p 值大小指定基因点的颜色
scale_color_gradient2(low = 'red', mid = 'darkgoldenrod2', high = 'royalblue2', midpoint = 0.5) + #渐变色颜色指定
theme_bw() + #背景调整
labs(x = 'control group', y = 'treat group', color = '') + #坐标轴标题设置
geom_abline(intercept = 1, slope = 1, col = 'black', linetype = 'dashed', size = 0.5) + #这3句用于添加 |log2FC|>1 的阈值线
geom_abline(intercept = -1, slope = 1, col = 'black', linetype = 'dashed', size = 0.5) +
geom_abline(intercept = 0, slope = 1, col = 'black', linetype = 'dashed', size = 0.5)
p2
图我就不放辣,自己跑一遍就行,
示例数据我放到了网盘,请自取哦
链接:https://pan.baidu.com/s/1tGkw0f8_sDgmQyY0CWB5uA
提取码:khby
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V4的分享