首先给大家介绍一下主成分分析(PCA)的定义,PCA是一种通过正交变换将一组可能存在相关性的变量转换为不相关的变量的统计方法,这些转换后的变量就被称为主成分(来自维基百科)。而PCA的主要作用包括但不限于:方便数据可视化、数据降维等等。
对于生物信息和统计的科研工作者而言,生物学领域的数据由于生物与环境、生物之间和生物自身基因、代谢等相互作用的高度复杂,往往具有变量多、样本数较少的特点,这个时候我们通过主成分分析(PCA)就可以快速发现数据背后隐藏的关系。但是如果你作为刚入门的生物信息和生物统计学的小白,自己要实现PCA的整套流程就有一些困难了。
这里我们就给大家推荐一个功能强大但简单好用的在线PCA分析工具——ClustVis
(网址:https://biit.cs.ut.ee/clustvis/)
进入Clustvis网站之后,首页是对工具的一个简单介绍,这个工具主要由R代码构成,源代码在github上面都可以找到,相信一些大神还可以在源代码的基础上加入自定义的功能。首页上面的六张图就是Clustvis目前可以制作的两种图形,其中就有文献中常见的heatmap。话不多说,我们进入ClustVis使用的介绍:
1
Step1:导入数据(data import)
点击Data import就可以进入这个页面。在页面左边的导航栏可以看到,我们可以选择用示例数据(load sample data)熟悉功能,也可以上传数据文件(upload file)或者直接复制粘贴数据(paste data)来分析自己的数据。对基因表达或者代谢通路分析感兴趣的同学也可以尝试ClustVis提供的两个相应的功能(Import public dataset from ArrayExpress和import prepared gene expression matrix)。Import saved setting则是方便需要多次使用ClustVis的同学能使用自定义的设置。
需要注意的是,数据格式要求样本的分类信息或者变量的注释信息都放在最左边的列或者最上面的行,ClustVis会根据数据类型自动识别为column(row) annotations,这些信息对可视化非常重要。一般来说,数据的每列对应一个样本,每行对应样本的一个特征,如果我们上传的数据每行对应一个样本,直接勾选导航栏最下方的transpase matrix就可以将数据矩阵转置了。这里我们直接用ClustVis上的第一个实例(NKI breast cancer dataset (PAM50 genes))作为本教程的示例数据。
2
Step2:
在完成了数据上传之后,就可以开始预处理(data pre-processing)了,非常简单,点击上方的data pre-processing就可以了(数据量比较大的情况下可能需要等待一段时间)!
我们可以看到PCA分析过程实际上已经完成了一部分,上图中的前三个表格展示了数据的大小和missing value的个数,第四个表格按从大到小的顺序给出了每个主成分(PC)对方差的贡献度。第五个和第六个表格则是PC和每个样本或者原特征的关系。
同样的,我们可以通过左边导航栏自定义分析的过程,包括了对原始数据求对数的处理(transformation),样本信息的保留(column annotation groups to keep,这个选项主要影响后面可视化的结果,建议全部保留),样本的过滤与合并以及PCA分析的方法选择等。这些都要根据同学们自己的数据情况和分析的需要来设置。
接下来我们就可以进入可视化的步骤了。
3
Step3:
第三步和前两步一样,点击页面上方的PCA就可以看到第一个可视化的结果。左边的导航栏则包括了change data options、change display options、change plot labels三个选项。
change data options:默认的可视化结果是以PC1、PC2为XY轴的点图,在这个选项下面我们可以选择以其他的主成分为坐标轴来展示结果,可惜的是网页版ClustVis还只支持二维点图。。。这个选项下面的另一个功能是改变X(Y)轴的方向,效果上就是使点图左右(上下)对称变换。
Change display options:顾名思义,这个选项下的参数都是可以改变点图中线条类型(实线或者虚线),颜色灰度、点的大小,图片的长宽比例和大小等等。比较重要的是下图中的change coloring options,大家可选择自己更感兴趣的group对样本点进行分类。
Change plot labels:相信用过ggplot的同学对图层的概念不会陌生,这个选项在这里可以帮助大家按照自己的喜欢设置图例的位置,字体大小等等细节,图中的add interactivity选项勾选之后图像上面每个样本可以点击,点击后可以得到单个样本点的展示图,如果之前pre-processing的过程中选择了数据合并的选项,这里还可以看到小提琴图和箱线图(ClustVis的小提琴图和箱线图并不美观,我们完全可以导出数据之后自己动手绘制)。
4
Step4:
上面三步之后,点击上方的heatmap,我们可以得到本次分析的heatmap,和PCA选项类似的也有change data options、change display options、change plot labels三个选项,功能也十分类似,大家可以自己尝试一下。最后的add interactivity功能在数据量比较大的情况下是无法使用的!!!
最后,可视化的PCA,heatmap两个功能里面都支持将图片导出为不同格式的文件,使用起来非常灵活。分析的数据结果在export选项中也支持导出为csv文件,对linux或者windows平台、R或者python编程语言都非常友好。并且我们还发现ClustVis的R包和本地化方法,可以说非常灵活了。相信这个工具会对大家做PCA分析有很大帮助。
实际上还有一些其他的可以进行降维分析的软件供大家选择,其中BioVinci也很好用,包括了PCA、t-SNE(t-distributed stochastic neighbor embedding)等多种生物信息和统计中常用的数据分析和可视化功能,一度也支持在线使用,但唯一的也是最大的缺陷就是收费……,大家如果只是临时使用,可以考虑BioVinci的15天试用版。
参考文献:
Metsalu T , Vilo J . ClustVis: a web tool for visualizing clustering of multivariate data using Principal Component Analysis and heatmap[J]. Nucleic Acids Research, 2015, 43(W1):W566-W570.