RNA_seq 热图绘制
若已经拿到表达矩阵exprSet
若差异较大,进行log缩小不同样本的差距
1、热图全体
1 ##加载包
2 library(pheatmap)
3
4 ##缩小表达量差距
5 exprSet <- log2(exprSet+1)
6
7 ##取最大标准差前1000个基因名字
8 cg <-names(tail(sort(apply(exprSet,1,sd)),1000))
9
10 ##标准化,只关注样品间基因差异,不关注基因之间的,将离群点拉平
11 n <-t(scale(t(exprSet[cg,])))
12 n[n>2] <-2
13 n[n<-2] <-2
14
15 ##这是group_list
16 group_list <-c(rep("a",3),rep("b",3))
17 ac <- data.frame(sample=group_list)
18 rownames(ac) <- colnames(n)
19
20 ##draw pheatmap,其中annotation_col 可以增加sample组
21 pheatmap(n, show_rownames = F, show_colnames = F,
22 annotation_col = ac)
23
24 ##draw pheatmap add number
25 pheatmap(n, show_rownames = F, show_colnames = F,
26 annotation_col = ac, display_numbers = TRUE)
2、对差异基因进行绘制,步骤都类似,在进行绘制时,应对数据进行一定处理
1 ##DEseq2 获得dds
2 dds <- DESeq2(dds)
3 res <- results(dds)
4 res <- res[order(res$padj),]
5 DEG <- as.data.frame(res)
6
7 ##去掉NA
8 DEG <- na.omit(DEG)
9
10 ##热图
11 library(pheatmap)
12 choose_gene <- head(rownames(DEG),100) ##50 maybe better
13 choose_matrix <- exprSet[choose_gene,]
14 choose_matrix <- t(scale(t(choose_matrix)))
15 pheatmap(choose_matrix, show_rownames = F, show_colnames = F,
16 annotation_col = ac)
3、rlog 进行数据标准化
1 ##rlog 标准化
2 rld <- rlog(dds)
3 ##读取
4 exprMatrix_rlog <- assay(rld)
5 ##输出
6 write.csv(exprMatrix_rlog, 'exprMatrix.rlog.csv')
标准化和raw count 的比较
png("DEseq_RAWvsNORM.png",height = 800,width=800)
par(cex= 0.7)
n.samples <- ncol(exprSet)
if(n.samples>40) par(cex=0.5)
cols <- rainbow(n.samples*1.2)
par(mfrow =c(2,2))
boxplot(exprSet,col=cols, main="expression value",las=2)
boxplot(exprMatrix_rlog,col=cols, main="expression value",las=2)
hist(as.matrix(exprSet))
hist(exprMatrix_rlog)
dev.off()
可以看到rlog后,样本间可以进行很好观察
参考:生信技能树
------END------
关注下方公众号可获得更多精彩
RNA_seq 热图绘制的更多相关文章
- R语言学习 - 热图绘制heatmap
生成测试数据 绘图首先需要数据.通过生成一堆的向量,转换为矩阵,得到想要的数据. data <- c(1:6, 6:1, 6:1, 1:6, (6:1)/10, (1:6)/10, (1:6)/ ...
- pheatmap绘制“热图”,你需要的都在这
热图可以聚合大量的数据,并可以用一种渐进色来优雅地表现,可以很直观地展现数据的疏密程度或频率高低. 本文利用R语言 pheatmap 包从头开始绘制各种漂亮的热图.参数像积木,拼凑出你最喜欢的热图即可 ...
- [R] 如何绘制各样本的pathway丰度热图?
前言 一般而言,我们做完pathway富集分析,就做下气泡图或bar图来进行展示,但它们实际上只考虑了富集因子和Pvalue.如果我们不关注这两个因素,而是在乎样本本身的pathway丰度呢? 对于K ...
- matplotlib热图
1.基础知识点回顾 1.plot(x, y, marker='D')表示绘制折线图,marker设置样式菱形. 2.scatter(x, y, marker='s', color='r')绘制散点图, ...
- R语言学习 - 热图简化
绘制热图除了使用ggplot2,还可以有其它的包或函数,比如pheatmap::pheatmap (pheatmap包中的pheatmap函数).gplots::heatmap.2等. 相比于gg ...
- 扩增子图表解读3热图:差异菌、OTU及功能
热图是使用颜色来展示数值矩阵的图形.通常还会结合行.列的聚类分析,以表达实验数据多方面的结果. 热图在生物学领域应用广泛,尤其在高通量测序的结果展示中很流行,如样品-基因表达,样品-OTU相对丰度矩 ...
- MATLAB实例:求相关系数、绘制热图并找到强相关对
MATLAB实例:求相关系数.绘制热图并找到强相关对 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 用MATLAB编程,求给定数据不同维度之间的相关系 ...
- 基于HTML5实现3D热图Heatmap应用
Heatmap热图通过众多数据点信息,汇聚成直观可视化颜色效果,热图已广泛被应用于气象预报.医疗成像.机房温度监控等行业,甚至应用于竞技体育领域的数据分析. http://www.hightopo.c ...
- 基于HTML5实现的Heatmap热图3D应用
Heatmap热图通过众多数据点信息,汇聚成直观可视化颜色效果,热图已广泛被应用于气象预报.医疗成像.机房温度监控等行业,甚至应用于竞技体育领域的数据分析. 已有众多文章分享了生成Heatmap热图原 ...
随机推荐
- 我们一起来回顾一下Synchronized关键字吧
多线程一直Java开发中的难点,也是面试中的常客,趁着还有时间,打算巩固一下JUC方面知识,我想机会随处可见,但始终都是留给有准备的人的,希望我们都能加油!!! 沉下去,再浮上来,我想我们会变的不一样 ...
- Spring Cloud Gateway + Jwt + Oauth2 实现网关的鉴权操作
Spring Cloud Gateway + Jwt + Oauth2 实现网关的鉴权操作 一.背景 二.需求 三.前置条件 四.项目结构 五.网关层代码的编写 1.引入jar包 2.自定义授权管理器 ...
- 无网络下,配置yum本地源
1. 新建一个没有iso镜像文件的虚拟机: 2. 本地上传一个镜像文件(CentOS7的镜像),到虚拟机已创建的目录: 例如:上传一个镜像文件CentOS-7-x86_64-Everything-17 ...
- Noip模拟63 2021.9.27(考场惊现无限之环)
T1 电压机制 把题目转化为找那些边只被奇数环包含. 这样的话直接$dfs$生成一棵树,给每个点附上一个深度,根据其他的非树边都是返祖边 可以算出环内边的数量$dep[x]-dep[y]+1$,然后判 ...
- Vue:Vue的介绍以及组件剖析
介绍 现在,随着基于JavaScript的单页应用程序(SPA)和服务器端渲染(SSR)的兴起,可以用JavaScript编写整个前端应用程序,并整洁地管理和维护该应用程序的前端代码.诸如Angula ...
- linux 蓝牙开发调试(rtl8821cs模块)
刚调完rtl8821cs的wifi功能,项目需要打通蓝牙配网功能. 调试过程中遇到各种问题中间几乎放弃,倒腾了几天最后还是打通了,顺便记录下过程. 通信接口:SDIO @WiFi.Uart @BT;工 ...
- Python matplotlib 概率论与数理统计 伯努利分布 二项分布
Python 代码实现 二项分布 import numpy as np import matplotlib.pyplot as plt import math from scipy import st ...
- 跟着老猫来搞GO,集跬步而致千里
上次博客中,老猫已经和大家同步了如何搭建相关的GO语言的开发环境,相信在车上的小伙伴应该都已经搞定了环境了.那么本篇开始,我们就来熟悉GO语言的基础语法.本篇搞定之后,其实期待大家可以和老猫一样,能够 ...
- DeWeb和WebXone的区别
DeWeb和WebXone的区别 相同点: 1 两者为同一开发者研发.QQ:45300355,碧树西风 2 都是为了解决Delphi开发Web的问题 区别: 1 WebXone采用的ActiveX/N ...
- GDB 调试技巧(不断更新中......)
一.break到不同类的同名函数 方法: 在函数前面加类名以及作用域运算符 eg : break A::func //break 到类A的func函数 程序如下: //gdb_test.cpp #in ...