生物学重复好不好--看看样本相关性
文章目录
- 引言
- 数据
- 计算相关系数
- 映射相关系数到热图
- 完整代码
引言
生物学实验中,常常需要设置重复,例如技术重复、生物学重复,以此确保不是个体的偶然变异对结果产生影响。以转录组数据为例,一般会设置3-5个生物学重复,如何确认生物学重复的效果好坏呢,方法有很多,可以计算两两样本之间的相关性,可以进行样本的PCA分析,或者绘制聚类热图,这里首先介绍样本相关性方法。
我们将在R,使用Rstudio进行计算绘图。
数据
转录组数据分析完成以后,我们会拿到基因表达矩阵,格式如下,行为基因,列为样本(也可以是行为样本,列为基因,在R中转置函数t()
可以秒秒种搞定)。
计算相关系数
何谓相关?简单来说若你高我也高,你低我也低,或者你高我低都可以叫做相关。数理统计上通过计算相关系数来衡量,取值[-1, 1],负数表示负相关,正数表示正相关。在显著性的前提下,绝对值越大,相关性越强。绝对值为0, 无线性关系;绝对值为1表示完全线性相关。有Pearson, Spearman和 Kendall 三类相关系数,它们的特点是:
相关系数 | 适用变量类型 | 假设条件 |
---|---|---|
Pearson | 连续变量 | 1.服从正态分布,2.两个变量的标准差不为0 |
Spearman | 连续变量/等级数据 | 成对等级相关数据即可 |
Kendall | 有序分类变量 | 成对等级相关数据即可 |
可以看到除了Pearson相关系数对数据有严格要求外,其他两种的适用范围都比较广,当你不确定数据分布时,一般适用Spearman即可。
这里要计算样本之间的相关性,落实到代码中,其实就是分别计算数据列与列之间的相关系数。
## 设置工作路径
setwd('/Users/yut/Desktop/data')fpkm <- read.table('control_case_fpkm.txt', header = T, row.names = 1) #header=T,第一行指定为列名,row.names=1指定第一列为行名
View(fpkm) #查看数据
## 计算样本之间的相关性corr <- cor(fpkm, method = 'spearman') #cor函数计算两两样本(列与列)之间的相关系数
View(corr) #查看样本之间的相关系数
cor
函数返回样本之间的相关系数矩阵,对角线为样本自身与自身的相关系数1,左下和右上半角是一样的
映射相关系数到热图
为了更直观的展示,使用corrplot
将相关系数矩阵映射成热图
## 如果不存在corrplot就安装这个包
if (!requireNamespace('corrplot', quietly = TRUE))install.packages('corrplot')
library('corrplot') #加载corrplot包用于绘制相关性矩阵热图
# corrplot并不能直接计算两两样本之间的相关系数,而需要通过R内置函数cor计算,corrplot真正做的是把cor计算得到的样本相关系数矩阵映射成不同的颜色和样式
# 映射成热图
corrplot(corr, type = 'upper', tl.col = 'black', order = 'hclust', tl.srt = 45, addCoef.col = 'white') # type='upper':只显示右上角相关系数矩阵
# tl.col='black':字体颜色黑色
# order='hclust':使用层次聚类算法
# tl.srt = 45:x轴标签倾斜45度
# addCoef.col='white':添加相关系数数值,颜色白色
一般来说:
0.8-1.0 极强相关
0.6-0.8 强相关
0.4-0.6 中等程度相关
0.2-0.4 弱相关
0.0-0.2 极弱相关或无相关
从上面的结果看,case组内和control组内的相关系数都较高,而组间的相关系数都较低,说明生物学重复效果好,可以继续后续分析。若组内某个样本与同组内其他样本的相关系数都较低,则可以考虑去除,或者加测样本进行重分析
完整代码
# <样本相关性>
## 1.如果不存在corrplot就安装这个包
if (!requireNamespace('corrplot', quietly = TRUE))install.packages('corrplot')
library('corrplot') #加载corrplot包用于绘制相关性矩阵热图
# corrplot并不能直接计算两两样本之间的相关系数,而需要通过R内置函数cor计算,corrplot真正做的是把cor计算得到的样本相关系数矩阵映射成不同的颜色和样式## 2.读入基因fpkm的表达矩阵
##设置工作路径
setwd('/Users/yut/Desktop/data')fpkm <- read.table('control_case_fpkm.txt', header = T, row.names = 1) #header=T,第一行指定为列名,row.names=1指定第一列为行名
View(fpkm) #查看数据
##3.计算样本之间的相关性corr <- cor(fpkm, method = 'spearman') #cor函数计算两两样本(列与列)之间的相关系数
View(corr) #查看样本之间的相关系数# pdf('../sample_correlation.pdf', width = 8, height = 8) #打开绘图设备,保存为pdf文件
corrplot(corr, type = 'upper', tl.col = 'black', order = 'hclust', tl.srt = 45, addCoef.col = 'white') # type='upper':只显示右上角相关系数矩阵
# tl.col='black':字体颜色黑色
# order='hclust':使用层次聚类算法
# tl.srt = 45:x轴标签倾斜45度
# addCoef.col='white':添加相关系数数值,颜色白色# dev.off() #配合pdf()使用,关闭绘图设备
生物学重复好不好--看看样本相关性相关推荐
- CHIP-seq流程学习笔记(9)-使用IDR 软件对生物学重复样本间的差异peak进行提取
参考文章: 使用IDR软件处理生物学重复样本的peak calling Irreproducible Discovery Rate (IDR) 1. 使用Conda安装IDR软件 (base) zex ...
- 微生物组项目设计四:生物学重复及样本信息收集
上一期我们谈到了实验分组设计,之后提到了取样和样本量的问题.今天就跟大家聊一聊这两个问题. 样本量设置 怎样的样本量可以证明我们的研究结果具有普适性,更有助于我们发现特征性的规律.这也是我在跟大家交流 ...
- RNA-seq中的生物学重复
生物学重复:经过相同方式处理相同样品(不是同一个体).指样本重复,比如3只小鼠,同时做一种处理,就是三个生物学重复. 消除组内误差:生物学重复可以测量变异程度. 增强结果可靠性:测序的样本数越多,越能 ...
- 分清楚技术重复和生物学重复
1.技术重复 同一个样品测多次.例如给某伙计取血样,测5次基因表达量 能得到的信息 1.这伙计精确的基因表达量 2.基因表达量测量方法的准确程度(看多次测量的重复性好不好) 使用场景 1.只关心这一个 ...
- chip-seq三个生物学重复样品处理——IDR
前言 ATAC-seq/ChIP-Seq中重复样本的处理 ATAC-Seq要求必须有2次或更多次生物学重复(十分珍贵或者稀有样本除外,但必须做至少2次技术重复).理论上重复样本的peaks应该有高度的 ...
- 生物学重复吗?还有技术重复?
转录组测序多少生物重复合适?2个?3个?48个? 生信宝典 2020-03-30 21:10:44 664 收藏 1 分类专栏: 生物信息 版权 2016年英国邓迪大学的Geoffrey J Ba ...
- Python之数据分析(numpy裁剪、压缩、累乘,样本相关性曲线的绘制)
文章目录 一.裁剪.压缩.累乘 二.样本相关性曲线 一.裁剪.压缩.累乘 1.裁剪 概念:指的是削掉波峰或波谷这类型的,将调用数组中小于min的元素设置为min,大于max的元素设置为max 用法:n ...
- 冗余分析(RDA)中若包含生物学重复会怎样?
一般微生物测序实验会包含三个生物学重复,然后获得有重复的OTU table和环境因子的数据.许多文献在对OTUs进行冗余分析时都包含了重复,包含重复与不包含重复会有何种不同?是否会影响我们对分析结 ...
- 不用linux转录组数据分析,没有生物学重复的转录组数据怎么进行差异分析?
设置生物学重复这个环节也是你实验设计很重要的一part,设置的好对你下游分析也有利,通常我们做转录组测序,需要的样本量每组至少为3个生物学重复,这个处理起来就很合理,并且现在流行的差异分析软件DEse ...
最新文章
- [转]使用设计模式改善程序结构(二)
- 聊聊前端国际化文案该如何处理
- Vue.js 系列教程 3:Vue-cli,生命周期钩子
- jQuery的核心函数
- 自动化交易综述——互联网金融
- Spring Boot中带有CKEditor的AJAX
- (82)zabbix如何选择适合的监控类型
- 6月16日!蒋江伟深度解读基础云产品生态战略 | 凌云时刻
- JSP实用教程(第二版)jsp源代码 word 免费
- 全球人工智能发展白皮书
- 前端项目打包后生成的chunk-vendors文件过大,导致加载太慢
- 【esp32-s3】6.1 文件系统——spi挂载tf卡
- android系统更新原理简介
- java 反射,根据类获取 属性名字和值
- python 爬取拉钩招聘数据
- 股票全自动交易软件的风险有哪些?
- 图像处理项目-监控视频的行人追踪
- 函数空间一览:从线性空间到再生核希尔伯特空间
- 基于python的Django框架购物商城设计与实现毕业设计毕设参考
- 去除Flexgrid表格的隔行底色为白的样式
热门文章
- opencv神经网络库之SVM和ANN_MLP的使用【 OpenCV 技能树评测】
- 16进制编码与字符编码的相互转化
- 【gflags 】google gflags 使用方法
- Android图表控件MPAndroidChart——LineChart实现 XY轴、原点线的直尺刻度样式
- 如何制作全息视频--3D max+AE搞定
- ORCAD CAPTURE 软件自带元件库介绍
- 武纺淘宝网站项目总结
- 慧眼舆情热词分析架构简述
- 调用MQ发生错误, MQJE001: 完成代码为“2”,原因为“2495”
- cs python课程 加州大学_cs选uci还是ucsd呢?