PCA分析?Emm,快速上手与出图!
写在前面
PCA,principle component analysis,翻译为中文,即常说的主成分分析。
其为相对经典的降维算法,对具体计算逻辑感兴趣的可以Bing搜索看看。
在高通量测序数据出现之前,在生物学上,其最常用的场景是:
假定我们要对某种花的不同品种进行分类,于是进行指标测定,如花瓣长度,花瓣宽度,植株高度,叶片厚度,根部长度等。这些指标都是数量指标,我们几乎无法从某一个或者某两个指标,直接将不通品种分开,所以我们需要用上所有指标试试。但是对于高纬度,如超过三维,我们就很难处理,至少从绘图上,我们几乎无法解决,看不到的,都是虚的。于是,前人提出各种降维策略,而PCA即为最经典的线性降维。算法本质即方差拆解,去除冗余信息,在丢失尽量少信息的情况下,保留最合适的权重指标组合,亦即第一,第二,第三,第N主成分。在实际应用中,我们往往会使用前两个主成分,可以简单认为其代表了样品之间差异信息的最大部分。
以上,是植物分类相关的应用。近日,我们课题组开始整理手上已有的转录组测序样品。怎么说呢?转录组数据分析获得基因表达矩阵,对于每一个样本来说,其实基因的表达量向量即性状数据,一个基因就对应一个指标或者维度。所以,我们同样,可以直接基于表达量矩阵,对样品进行分类(【注:分类是PCA分析的最粗糙的应用,提取主成分,分析主要贡献因子才是优秀操作】)。这样,我们可以从很快判断自己的样品是否存在异常。(如果存在生物学重复的异常,那么必须分析异常是否合理,不合理则应去除,否则影响分析)。
实现一个快速完成PCA分析的工具
PCA分析,事实上,目前应是已有不少工具或者脚本可以实现。具体我并没有做太多地了解。我想,或许很多人跟我一样,主要还是使用R语言进行分析,随后可视化。编程,总是麻烦
。事实上,每次我要回去翻前面写的流程代码,对我来说是一个浪费时间的事情。于是,我还是决定实现这个工具。
如何使用
首先是打开对应的功能
从功能界面可以看出,
使用示例数据进行分析,则直接点击Start
从图片来看,左侧virinica,中间主要是versicolor,右侧则明显是setosa。
灵活调整参数,达到自己的目的
对于这套数据,我们的目的是对品种进行聚类,所以Analysis On Columns是不会变的。不过我们可以不对数据进行Scale试试(一般推荐Scale,主要目的是同一量纲)。
似乎分得还可以。由于我们输入的样品较多,似乎有上百个,labels太多。但是我们也可以不看Labels。
只是,不看Labels的话,就什么都看不出来了。此时我们会选择对样品进行着色
在Excel中编辑并整理样品对应的颜色信息
第一列:样品名
第二列:点的颜色信息
第三列:Label的颜色信息(这一列为可选列)
保存成文本文件-制表符分隔,最后用于可视化。【注:示例数据,每一列代表的是一个样品,由于我们很多样品名字相同,所以只需要设置一个颜色行即可;在转录组测序数据中,则往往每个样品需要专门设立一行】。
注意到,此时我们可以明显地看到,确实不同类型被分开。不错的结果。
将labels显示,看起来也还可以....
总的来说,你可以通过设置点或者文本的颜色信息,来表示两类样品的分组信息。比如生物学重复可以作为一个分组信息,不同时间点或者处理可以是另外一个分组信息。
实际应用
在转录组测序数据分析中,我们常常会得到这样类似的一个表达矩阵
操作起来比较简单,如果你只是做个分类查看。直接全选整个矩阵,复制并黏贴到Simple PCA Analysis
点击Start
从这个图来看,生物学重复聚类较好。此时不要忘了TBtools中的图片是可以交互式调整的。我大体手动调整了下
最后,你可以
Ctrl+S
保存图片写在后面
睡不着的时候,写写一些东西,总还是有用的。
不过可能是时候去写一些可以写到简历的东西了。
祝大家科研顺利!