文章目录

  • 引言
  • 数据
  • 计算相关系数
  • 映射相关系数到热图
  • 完整代码

引言

生物学实验中,常常需要设置重复,例如技术重复、生物学重复,以此确保不是个体的偶然变异对结果产生影响。以转录组数据为例,一般会设置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()使用,关闭绘图设备

生物学重复好不好--看看样本相关性相关推荐

  1. CHIP-seq流程学习笔记(9)-使用IDR 软件对生物学重复样本间的差异peak进行提取

    参考文章: 使用IDR软件处理生物学重复样本的peak calling Irreproducible Discovery Rate (IDR) 1. 使用Conda安装IDR软件 (base) zex ...

  2. 微生物组项目设计四:生物学重复及样本信息收集

    上一期我们谈到了实验分组设计,之后提到了取样和样本量的问题.今天就跟大家聊一聊这两个问题. 样本量设置 怎样的样本量可以证明我们的研究结果具有普适性,更有助于我们发现特征性的规律.这也是我在跟大家交流 ...

  3. RNA-seq中的生物学重复

    生物学重复:经过相同方式处理相同样品(不是同一个体).指样本重复,比如3只小鼠,同时做一种处理,就是三个生物学重复. 消除组内误差:生物学重复可以测量变异程度. 增强结果可靠性:测序的样本数越多,越能 ...

  4. 分清楚技术重复和生物学重复

    1.技术重复 同一个样品测多次.例如给某伙计取血样,测5次基因表达量 能得到的信息 1.这伙计精确的基因表达量 2.基因表达量测量方法的准确程度(看多次测量的重复性好不好) 使用场景 1.只关心这一个 ...

  5. chip-seq三个生物学重复样品处理——IDR

    前言 ATAC-seq/ChIP-Seq中重复样本的处理 ATAC-Seq要求必须有2次或更多次生物学重复(十分珍贵或者稀有样本除外,但必须做至少2次技术重复).理论上重复样本的peaks应该有高度的 ...

  6. 生物学重复吗?还有技术重复?

    转录组测序多少生物重复合适?2个?3个?48个? 生信宝典 2020-03-30 21:10:44  664  收藏 1 分类专栏: 生物信息 版权 2016年英国邓迪大学的Geoffrey J Ba ...

  7. Python之数据分析(numpy裁剪、压缩、累乘,样本相关性曲线的绘制)

    文章目录 一.裁剪.压缩.累乘 二.样本相关性曲线 一.裁剪.压缩.累乘 1.裁剪 概念:指的是削掉波峰或波谷这类型的,将调用数组中小于min的元素设置为min,大于max的元素设置为max 用法:n ...

  8. 冗余分析(RDA)中若包含生物学重复会怎样?

      一般微生物测序实验会包含三个生物学重复,然后获得有重复的OTU table和环境因子的数据.许多文献在对OTUs进行冗余分析时都包含了重复,包含重复与不包含重复会有何种不同?是否会影响我们对分析结 ...

  9. 不用linux转录组数据分析,没有生物学重复的转录组数据怎么进行差异分析?

    设置生物学重复这个环节也是你实验设计很重要的一part,设置的好对你下游分析也有利,通常我们做转录组测序,需要的样本量每组至少为3个生物学重复,这个处理起来就很合理,并且现在流行的差异分析软件DEse ...

最新文章

  1. [转]使用设计模式改善程序结构(二)
  2. 聊聊前端国际化文案该如何处理
  3. Vue.js 系列教程 3:Vue-cli,生命周期钩子
  4. jQuery的核心函数
  5. 自动化交易综述——互联网金融
  6. Spring Boot中带有CKEditor的AJAX
  7. (82)zabbix如何选择适合的监控类型
  8. 6月16日!蒋江伟深度解读基础云产品生态战略 | 凌云时刻
  9. JSP实用教程(第二版)jsp源代码 word 免费
  10. 全球人工智能发展白皮书
  11. 前端项目打包后生成的chunk-vendors文件过大,导致加载太慢
  12. 【esp32-s3】6.1 文件系统——spi挂载tf卡
  13. android系统更新原理简介
  14. java 反射,根据类获取 属性名字和值
  15. python 爬取拉钩招聘数据
  16. 股票全自动交易软件的风险有哪些?
  17. 图像处理项目-监控视频的行人追踪
  18. 函数空间一览:从线性空间到再生核希尔伯特空间
  19. 基于python的Django框架购物商城设计与实现毕业设计毕设参考
  20. 去除Flexgrid表格的隔行底色为白的样式

热门文章

  1. opencv神经网络库之SVM和ANN_MLP的使用【 OpenCV 技能树评测】
  2. 16进制编码与字符编码的相互转化
  3. 【gflags 】google gflags 使用方法
  4. Android图表控件MPAndroidChart——LineChart实现 XY轴、原点线的直尺刻度样式
  5. 如何制作全息视频--3D max+AE搞定
  6. ORCAD CAPTURE 软件自带元件库介绍
  7. 武纺淘宝网站项目总结
  8. 慧眼舆情热词分析架构简述
  9. 调用MQ发生错误, MQJE001: 完成代码为“2”,原因为“2495”
  10. cs python课程 加州大学_cs选uci还是ucsd呢?