群体结构图形三剑客——PCA图
重测序便宜了,群体的测序和分析也多了起来。群体结构分析,是重测序最常见的分析内容。群体结构分析应用十分广泛,首先其本身是群体进化关系分析里面最基础的分析内容,其次在进行GWAS分析的时候,本身也需要使用PCA或structure分析的结果作为协变量,来校正群体结构对关联分析带来的假阳性。
我们之所以冠以 “群体结构三剑客”的称呼,那是因为这三张图(或者说三项分析)几乎总是在一篇文章中一起出现。虽然这三张图常常一起出现,但它们能够解释的生物学问题,以及绘制的方法都是有所不同的,所以我们还是一一来解释。
2.1 PCA图(主成分分析)
颜值:☆ ☆
实用性:☆ ☆ ☆ ☆
PCA图形的解读
PCA分析是一项朴实无华的分析内容,但它应用十分广泛,的确能够帮助我们解决某些生物问题。说起朴实无华,是因为它的结果不花哨且及其容易看懂,仅仅是一张散点图而已。
比如,下图来自熊猫重测序的文章[1],作者使用主成分1(principal component1)和主成分2作为X轴和Y轴绘制散点图,每个点代表1个样本。在这样的PCA图中,如果两个样本距离越远,则说明两个样本遗传背景差异越大。理想情况下,遗传背景相似的个体会在图中聚类在一起。
例如,这张图中涉及的熊猫个体分别来自3个不同的熊猫自然保护区。PCA分析的结果也将这些个体分为了3个亚群,和熊猫来源的地域信息完全一致。
图1 PCA分析将来自三个区的大熊猫准确区分开
但是如果你不仅仅满足于把图形基本信息读懂的话,你还是需要对PCA这一方法有初步的了解。PCA是一种线性代数中的数据处理方法,而这个方法的数学过程比较抽象,在这里有限的篇幅里不便展开讨论,感兴趣的同学可以自己百度查询。PCA分析应用的情境是:在某些情况下,我们数据实在过于复杂。
例如:对一个群体进行重测序,得到的SNP位点数是百万级别的。如果我们直接使用百万级别的SNP信息作为指标对个体进行区分,就会显得信息过于庞大而无法把握重点。PCA分析过程就是从这百万级别的信息中提取关键的信息,以便我们使用更少的变量(指标)就可以对样本进行有效区分。这些被提取出的信息,按照其效应从大到小排列,我们称之为主成分1(principal component1)、主成分2、主成分3… …
在实际文章中,我们不仅仅只使用PC1和PC2来对样本群体进行区分。从数学上理解,PCA分析的过程就是从大量数据指标中提取关键信息的过程。但PC1或PC2对总体信息的解释程度总是有限的。我们将之称为PCn对总体方差解释的百分比。一般重测序的PCA分析结果中,PC1对总体信息的解释比例在3~10%之间。所以,我们也需要关注一下其他主成分的分类效果。
例如在家蚕重测序文章中,分别使用主成分1和2绘图(左图)以及主成分3与主成分4绘图(右图)。两个聚类结果呈现了不同的意义。在PC1和PC2的聚类图中,将野生蚕和家蚕区分开了两个群体。而在PC3和PC4的聚类中,则分离出了两个来自江南地区高产丝量的品种。
所以,从生物学层面理解,PCA分析的过程就是信息浓缩的过程,会从原始的各个SNP位点信息中提取相似的信息,浓缩为新的变量PC1、PC2、PC3…. 输出。所以不同的主成分可能会(记住,仅仅是可能)对应不同的生物学意义,产生不同的聚类分类效果。
图2蚕群体利用不同主成分的聚类结果比较
在其他实际案例中的使用
PCA分析只是一种非常单纯的数学方法,具体有什么样的生物学意义还是需要具体问题具体分析。PCA分析在实际案例中应用主要包括:
1.检测离群样本
例如,在上图(右)中,两个高产的品种就属于离群样本。如果你材料已知都是来源同一品种的个体,这种离群样本可能就意味着在采样或测序过程中,出现了样本混淆。如果这些材料后续用于GWAS分析,个别样本出现离群则考虑要把这些离群样本剔除。当然,如果大量样本离群或出现群体分层(例如,上图的左图,明显分层为两个亚群体),则需要将PCA或structure分析的结果作为后续关联分析的协变量,校正它们对关联分析的影响。
2.推断亚群间的进化关系
例如下图这篇葡萄群体研究的文章[3],研究的葡萄品种来源三个地域。绿色的西部葡萄和红色的东部葡萄区分比较明显,而蓝色的中部葡萄夹杂在东、西两个亚群间,和两个亚群有大量重叠。作者从中推断,东、西两个地域的葡萄都有传播到中部地区,并伴随大量杂交,导致中部地区的品种系谱比较混杂,并没有形成自己独立的亚群。其实本人作为小白鼠也做过基因型检测,PCA结果最后被归类到江南地区人群。当然我对结果一点也不意外,因为我是如假包换的大胡建人。
<ignore_js_op>
图3 葡萄亚群体的基因混杂现象
PCA分析和绘制的方法
PCA分析只是一种统计方法,我们可以使用一些群体统计软件计算出群体中PC1~pCn的数值,然后绘制散点图就可以了(绘制散点图其实利用excel就可以完成。当然,使用R语言绘图的话,会更加美观一些)。
在群体分析软件上,我们推荐GCTA软件中的PCA模块来完成分析(http://cnsgenomics.com/software/gcta/pca.html)。这个软件有window版本,但和本地blast类似(我们之前分享过)只能在Dos界面下的命令行模式运行。当然还包括比较老牌的PCA分析软件EIGENSOFT(http://www.hsph.harvard.edu/alkes-price/software/),但这个软件只有linux版本。总之,在生物信息领域,软件大都不太友好,这也是这个行业的现状。
当然,PCA分析不仅仅用在重测序的领域,在RNA-seq、16s meta rDNA 测序也被大量使用,只是将上文提到的SNP信息替换为表达丰度了而已。如果你对RNA-seq,16s meta 测序的PCA分析感到头疼,其实可以直接使用我们基迪奥新开发的免费在线分析云工具(www.omicshare.com/tools/)。
被各种生物信息软件虐过的生物狗们一起团结起来,英特纳雄耐尔就一定要实现… … 感觉有点跑题,重新喊一次口号:欢迎被各种生物信息软件虐过的生物狗们多给我们反馈修改意见,OS tools 的用户友好程度一定会持续提高的。
参考文献:
【1】Zhao S, et al. (2013)Whole-genome sequencing of giant pandas provides insights into demographichistory and local adaptation. Nature genetics45(1):67-71.
【2】Xia Q, Guo Y, Zhang Z, et al.Complete resequencing of 40 genomes reveals domestication events and genes insilkworm (Bombyx)[J]. Science, 2009, 326(5951): 433-436.
【3】Myles S, Boyko A R, Owens C L, et al. Genetic structure and domesticationhistory of the grape[J]. Proceedings of the National Academy of Sciences, 2011,108(9): 3530-3535.
转自:
群体结构图形三剑客——PCA图
http://www.omicshare.com/forum/thread-816-1-180.html
(出处: OmicShare Forum)
群体结构图形三剑客——PCA图的更多相关文章
- Matplotlib基本图形之折线图
Matplotlib基本图形之折线图折线图特点 折线图是用折线将各数据连起来组成的图形常用来观察数据随时间变化的趋势例如:股票价格,温度变化,等等 示例代码: import os import tim ...
- VS2010 使用TeeChart画图控件 - 之二 - 绘制图形(折线图,柱状图)
1.前期准备 详细可见VS2010 使用TeeChart画图控件 - 之中的一个 控件和类的导入 1. 1 加入TeeChart控件,给控件加入变量m_TeeChart 加入TeeChart控件,右击 ...
- PCA图
R语言PCA 1.关键点 综述:主成分分析 因子分析 典型相关分析,三种方法的共同点主要是用来对数据降维处理的从数据中提取某些公共部分,然后对这些公共部分进行分析和处理. #主成分分析 是将多指标化为 ...
- java图形界面之图形化按钮
要将按钮图形化,只需创建一个ImageIcon对象,将图形路径赋予ImageIcon对象,然后将该对象传递给按钮即可. 此处涉及eclipse中图形的路径设置,包括(项目路径下.非项目路径下.相对路径 ...
- VS2010 使用TeeChart绘图控件 - 之二 - 绘制图形(折线图,柱状图)
1.前期准备 具体可见VS2010 使用TeeChart绘图控件 - 之一 控件和类的导入 1. 1 添加TeeChart控件,给控件添加变量m_TeeChart 添加TeeChart控件,右击控件, ...
- eclipse 安装图形插件(图形化编程)
打开eclipse 查看什么版本 ,我的是Oxygen help --> install newsoftware 打开地址 http://www.eclipse.org/windowbuilde ...
- EasyMvc入门教程-图形控件说明(21)线形图+柱状图+饼形图
本章将介绍一些基本但常用的图形:线型图,柱状图和饼形图. 以上三种图形对于的数据都是键值对数组,请参考第一个例子: @{ var data = new List<LineItem>(); ...
- R & ggplot2 & Excel绘图(直方图/经验分布图/QQ图/茎叶图/箱线图)实例
持续更新~ 散点图 条形图 文氏图 饼图 盒型图 频率直方图 热图 PCA图 3D图 火山图 分面图 分面制作小多组图 地图 练习数据: year count china Ame jap '12 2. ...
- ggplot2 |legend参数设置,图形精雕细琢
本文首发于微信公众号“生信补给站”,https://mp.weixin.qq.com/s/A5nqo6qnlt_5kF3_GIrjIA 学习了ggplot2|详解八大基本绘图要素后,就可以根据自己的需 ...
随机推荐
- Oracle 中的伪列
昨天做了一个Oracle PL/SQL 相关的测试,其中有一道这样的题目: 下列那些是Oracle的伪列(ACD) A.ROWID B.ROW_NUMBER() C.LEVEL D.RO ...
- cf Round 613
A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...
- margin-top无效的问题解决方法
今天碰到了margin-top无效的问题,解决方法也有很多一行代码就解决了 解决办法: 1.设置父元素或者自身的display:inline-block;(IE6.IE7不识别inline-block ...
- 《Java程序设计与数据结构教程(第二版)》学习指导
<Java程序设计与数据结构教程(第二版)>学习指导 欢迎关注"rocedu"微信公众号(手机上长按二维码) 做中教,做中学,实践中共同进步! 原文地址:http:// ...
- IT行业的技术类岗位分为许多种,如何判断自己适合哪种?
A.硬件工程师B.软件工程师C.UI设计师D.仿真工程师E.ERP工程师F.集成工程师G.系统架构设计师H.数据库工程师I.网络管理员J.网络安全工程师K.网站架构设计师L.网页设计M.Flash设计 ...
- 分享 Ionic 开发 Hybrid App 中遇到的问题以及后期发布 iOS/Android 的方方面面
此篇文章主要整理了最近在使用 Ionic 开发 Hybrid App 过程中遇到的一些疑难点以及后期发布生成 iOS 和 Android 版本过程中的种种问题. 文章目录 Ionic 简介和项目需求介 ...
- html,body的关系
先上一张关系图 最底下的一个是画布,往上一层是html结构,再往上一层是body结构 默认情况下html,body的height都是0,你给这两个元素分别加个边框就能看出来,要特别注意的是加背景颜色是 ...
- redis 的源码编译安装
首先我们下载软件包到指定的目录下 tar -zxvf redis-2.8.19.tar.gz cd redis-2.8.19 make make PREFIX=/usr/local/redis ins ...
- Python 从零学起(纯基础) 笔记 之 迭代器、生成器和修饰器
Python的迭代器. 生成器和修饰器 1. 迭代器是访问集合元素的一种方式,从第一个到最后,只许前进不许后退. 优点:不要求事先准备好整个迭代过程中的所有元素,仅仅在迭代到某个元素时才计算该元素,而 ...
- gif工具 - ScreenToGif
之前我介绍过LiceCap这款制作gif的软件,但是那个软件的获取方式较为麻烦,并且有时候可能在不同的设备上会表现效果有所不同,这里将要介绍的软件我认为还是非常不错的,我们可以在ScreenToGif ...