GSVA自定义基因集分析

Python013

GSVA自定义基因集分析,第1张

已经很久没有再用R语言跑过数据了,最近有朋友需要跑GSVA,顺便重温了下R,现将内容分享如下。

GSVA全名Gene set variation analysis(基因集变异分析),是一种非参数,无监督的算法。与GSEA不同,GSVA不需要预先对样本进行分组,可以计算每个样本中特定基因集的富集分数。换而言之,GSVA转化了基因表达数据,从单个基因作为特征的表达矩阵,转化为特定基因集作为特征的表达矩阵。GSVA对基因富集结果进行了量化,可以更方便地进行后续统计分析。如果用limma包做差异表达分析可以寻找样本间差异表达的基因,同样地,使用limma包对GSVA的结果(依然是一个矩阵)做同样的分析,则可以寻找样本间有显著差异的基因集。这些“差异表达”的基因集,相对于基因而言,更加具有生物学意义,更具有可解释性,可以进一步用于肿瘤subtype的分型等等与生物学意义结合密切的探究。

关于GSVA的原理与理解,就无需展开说了,在线资源很多!

GSVA其实就是pathway级别的差异分析 ,根据 GSVA 的原理其实就是计算每个sample的GSEA然后得出类似pathway enrich score,把这个可以当作芯片的表达数据一样,再用limma包分析差异基因。

参考以下两个例子:

使用GSVA方法计算某基因集在各个样本的表现

充分理解GSVA和GSEA

以及我一个例子:

例子2

包装为一个函数,使用sbatch,下面是mouse data转化为human gene symbol然后run gsva

shell脚本如下