高通量数据中批次效应的鉴定和处理(二)
前文讲了什么是批次效应和有哪些影响,我们继续往下看……
怎么确认数据有无受到批次效应影响
通过样品的层级聚类热图+样品属性信息的注释来展示样品聚类结果有无受批次效应的影响。如下面右图中可见WT_1
样品在聚类分支上与其它样品处于不同的分支,而从列注释图可以看到WT_1
的seqPlatform
和batch
信息与其它样品不同,这是给我们的一个提示可能存在批次效应影响。
通常我们在整合多套数据集进行展示时也会加上数据来源信息以展示自己的分析结果未受批次等因素影响。如下图每一列是一个样品,每一行是一个菌群;列注释中有一行为Dataset
指示样品来源于 2 个数据集,并且聚类结果没有明显受到数据集来源的影响(四个大的聚类分支中样品来源分布没有明显偏好性);
通过主成分分析PCA查看有无批次效应的影响。如下左图,样品在PC1
和PC2
组成的空间中按数据集而非样本类型聚在一起,表示数据来源对样本检测结果的影响超出了样本类型的影响,提示存在批次效应。如右图,批次效应移除后,在PC1
轴上样品基本按正常-癌旁-肿瘤
分布,表示当前样品差异的主要影响因素是样本类型。这时可以绘制样品在更多PC
轴上的分布,如PC1-PC3
、PC1-PC4
等构成的空间中样品差异的主要因素是什么,也可以进一步判断批次效应移除的程度怎样。
通过样本整体表达分布查看有无批次影响。不同来源的样本一般是各自进行标准化(尤其是芯片数据),合并在一起后,可以简单的从整体表达分布来查看是否存在明显的偏移。如下左图存在明显的偏移,则提示有批次效应的存在。校正后,如右图,看上去样本的整体表达分布均一了。但是否批次影响就被移除了,却很难据此下结论。
通过部分基因集的表达变化查看有无批次效应影响。不同来源的数据一起标准化之后,如果标准化效果好的话,样品整体表达分布也会是均一的(如下面左数第二幅图)。但从中随机抽取数百基因却发现其表达收到了批次的影响(如下面左数第三幅图,只展示了数个基因),而且聚类结果也把两组正常样品分到了各自来源相对应的分支上。
- CaseStudy(showcase)布局篇-全屏效果
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(12)-系统日志和异常的处理②
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-EasyUI缺陷修复与扩展
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(10)-系统菜单栏[附源码]
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(5)-EF增删改查
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(15)-权限管理系统准备
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(11)-系统日志和异常的处理①
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查
- No.3 啥是数据运营(三):思维方式
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(7)-MVC与EasyUI DataGrid
- MySQL数据同步【双主热备】
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(6)-Unity 依赖注入
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(4)-创建项目解决方案
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法