提到差异分析,大家都不陌生,什么是差异分析呢?差异分析的目的是为了什么呢?怎么做差异分析呢?
首先差异分析是什么?
差异分析又可以被称为差距分析,主要就是为了查看两组之间影响两组之间差距较大的因素有哪些。
对于基因芯片的差异分析而言,由于芯片数据基本都是服从正态分布。由于一次性找的基因多,因此需要对多重试验进行校正,控制假阳性,目前基因芯片数据分析用的最多的就是limma包。limma包使用是广义线性模型的一种,主要就是通过对每一个基因的表达量拟合成一个线性方程。limma的分析包括ANOVA分析、线性回归等。该方法的核心步骤包括voom、fit、eBays等步骤。
而对于高通量测序的差异分析分析而言,由于高通量的read count 基本都是服从泊松分布,不能直接使用limma包筛选差异。一般情况下,使用DEseq2包和edgeR包对read count的高通量测序数据进行差异分析,这两个包都是基于负二项分布的模型,将数据进行转化,让其满足正态分布。
总之,不管是使用什么方法进行差异分析,核心点都是分为如下几步:
1、预处理,不管是什么样的表达数据,数据的预处理是非常重要的,过滤/取对数,过滤的目的是为了去除某一些基因在所有样本的表达变化较小的基因,或者去除表达量较低的基因;而取对数的目的其实是为了伸缩数据,让数据更符合正态分布。
2、差异计算,即计算两组比较中,不同基因在两组的表达的差距,如用A组的基因比B组的基因的表达量,得到差异倍数,差异倍数越大,说明该基因在A组和B组的表达差别越大,同样的也说明该基因也就越重要。
3、p值的计算,或者是FDR计算。在计算差异后,同样的也需要计算该基因在两组中的表达是否存在偶然性,因此会根据数据分布的类型选择合适的统计方法。如数据符合正态分布,样本量小于30使用t检验,样本量大于30使用u检验,如果数据符合偏态分布,使用秩和检验。为了控制假阳性的存在,使用多重检验对p值进行校正,方法有很多,如BH等等。
目前做差异分析的工具很多,很多都是需要用到编程的,这对于不会代码的人来说,很不友好。有没有一种工具,可以做到直接输入表达谱矩阵,直接作出差异分析的结果呢?
这里推荐生信豆芽菜平台
如果是芯片数据,直接用limma包做差异,如果是高通量测序数据,count数据则使用edgeR包或者是deseq2包做差异分析,如果是tpm/fpkm则先取log,在进行差异分析。
上传准备的文件都是一样的,需要准备一个基因的表达谱数据,和一个分组文件,记得比较组和被比较组尽量不要出现中文,或者空格这些
表达谱数据
分组数据:有两列,第一列为样本,第二列为分组(最好只写两组),不要出现空行,如果不确定可以选择下载notepad进行查看。
运行后等到成功即可。
如果不清楚可以查看左侧的说明文档,写的很详细。