有了这个包,猪的GSEA和GSVA分析也不在话下(第一集)

救救孩子吧,GSVA分析都是做人的,有现成的人的数据集,可是其他物种的就惨了,很难下手!
今天我们就说说小鼠,也是常见物种的GSVA分析,结合单细胞的数据!

GSVA的作用不用多说了,大家都熟悉,至少选择要做这个分析,那么他的作用也是清楚的。其实就是对功能富集的量化,然后进行差异分析,寻找感兴趣的通路在样本中的变化。不同于常规的GO、KEGG受差异基因阈值的影响,GSEA受实验分组的影响,GSVA能够对通路量化,看感兴趣通路在多组之间的变化!

首先加载和安装必要的包

library(Seurat)
#source("http://bioconductor.org/biocLite.R")
#biocLite("GSVA")
library(GSVA)
library(tidyverse)
library(ggplot2)
library(clusterProfiler)
library(org.Mm.eg.db)
library(dplyr)

导入单细胞转录组数据:

load("D:/SC_re.RData") #加载数据集
T.sc <- subset(SC_re, celltype=="T cells")#用subset函数提取我们需要分析的细胞类型
T.exp <- as.matrix(Rods.sc@assays$RNA@counts)#提取count矩阵,一定要是as.matrix,如果开始时是dataframe,后期GSVA分析时也要转为matrix
meta <- T.sc.sc@meta.data[,c("orig.ident", "sex", "age", "stim", "samples")]#分组信息,为了后续作图

这里有个重要的问题就是,单细胞GSVA到底用什么数据,count or data?之前《单细胞天地》公众号依据测试过这个问题了,count数据和data数据做GSVA分析没有区别,但是不能使用高变基因去做,对结果的影响较大,还是使用原始的count 或者 data数据吧。

==================重点来了==================

之前一直苦于MSigDB数据库只有人的数据集,没有小鼠和其他物种的,网上也有教程如何根据基因同源性进行转化的,但是很麻烦,也不一定成功。还好有一个新的数据包被发现了,简直是福音---msigdbr包,可以做GSEA和GSVA。

#install.packages("msigdbr")
library(msigdbr)
msigdbr_species() #可以看到,这个包涵盖了20个物种
# A tibble: 20 x 2
   species_name                 species_common_name                                   
   <chr>                        <chr>                                                 
 1 Anolis carolinensis          Carolina anole, green anole                           
 2 Bos taurus                   bovine, cattle, cow, dairy cow, domestic cattle, dome~
 3 Caenorhabditis elegans       roundworm                                             
 4 Canis lupus familiaris       dog, dogs                                             
 5 Danio rerio                  leopard danio, zebra danio, zebra fish, zebrafish     
 6 Drosophila melanogaster      fruit fly                                             
 7 Equus caballus               domestic horse, equine, horse                         
 8 Felis catus                  cat, cats, domestic cat                               
 9 Gallus gallus                bantam, chicken, chickens, Gallus domesticus          
10 Homo sapiens                 human                                                 
11 Macaca mulatta               rhesus macaque, rhesus macaques, Rhesus monkey, rhesu~
12 Monodelphis domestica        gray short-tailed opossum                             
13 Mus musculus                 house mouse, mouse                                    
14 Ornithorhynchus anatinus     duck-billed platypus, duckbill platypus, platypus     
15 Pan troglodytes              chimpanzee                                            
16 Rattus norvegicus            brown rat, Norway rat, rat, rats                      
17 Saccharomyces cerevisiae     baker's yeast, brewer's yeast, S. cerevisiae          
18 Schizosaccharomyces pombe 9~ NA                                                    
19 Sus scrofa                   pig, pigs, swine, wild boar                           
20 Xenopus tropicalis           tropical clawed frog, western clawed frog    
查看下小鼠的基因集,是否与MSigDB数据库一样

mouse <- msigdbr(species = "Mus musculus")
mouse[1:5,1:5]
# A tibble: 5 x 5
  gs_cat gs_subcat      gs_name        gene_symbol entrez_gene
  <chr>  <chr>          <chr>          <chr>             <int>
1 C3     MIR:MIR_Legacy AAACCAC_MIR140 Abcc4            239273
2 C3     MIR:MIR_Legacy AAACCAC_MIR140 Abraxas2         109359
3 C3     MIR:MIR_Legacy AAACCAC_MIR140 Actn4             60595
4 C3     MIR:MIR_Legacy AAACCAC_MIR140 Acvr1             11477
5 C3     MIR:MIR_Legacy AAACCAC_MIR140 Adam9             11502
table(mouse$gs_cat) #查看目录,与MSigDB一样,包含9个数据集
###C1      C2      C3      C4      C5      C6      C7      C8       H 
  20049  533767  795972   92353 1248327   30556  988358  109328    7411

例如,本例中,我们要分析GO,因为mouse文件包含了所有的基因集,所以要查看GO在哪里,然后将需要的文件提出来。

table(mouse$gs_subcat)
  CGN             CGP              CM              CP 
         167344           42770          376981           49583            3881 
    CP:BIOCARTA         CP:KEGG          CP:PID     CP:REACTOME CP:WIKIPATHWAYS 
           4860           13694            8196           98232           27923 
          GO:BP           GO:CC           GO:MF             HPO     IMMUNESIGDB 
         660368          100991          105717          381251          944068 
 MIR:MIR_Legacy       MIR:MIRDB        TFT:GTRD  TFT:TFT_Legacy             VAX 
          34118          372658          235886          153310           44290 
mouse_GO_bp = msigdbr(species = "Mus musculus",
                      category = "C5", #GO在C5
                      subcategory = "GO:BP") %>% 
                      dplyr::select(gs_name,gene_symbol)#这里可以选择gene symbol,也可以选择ID,根据自己数据需求来,主要为了方便
head(mouse_GO_bp)
# A tibble: 6 x 2
  gs_name                                          gene_symbol
  <chr>                                            <chr>      
1 GOBP_10_FORMYLTETRAHYDROFOLATE_METABOLIC_PROCESS Aldh1l1    
2 GOBP_10_FORMYLTETRAHYDROFOLATE_METABOLIC_PROCESS Aldh1l2    
3 GOBP_10_FORMYLTETRAHYDROFOLATE_METABOLIC_PROCESS Mthfd1     
4 GOBP_10_FORMYLTETRAHYDROFOLATE_METABOLIC_PROCESS Mthfd1l    
5 GOBP_10_FORMYLTETRAHYDROFOLATE_METABOLIC_PROCESS Mthfd2l    
6 GOBP_2_OXOGLUTARATE_METABOLIC_PROCESS            Aadat
mouse_GO_bp_Set = mouse_GO_bp %>% split(x = .$gene_symbol, f = .$gs_name)#后续gsva要求是list,所以将他转化为list

表达矩阵数据有了,通路信息有了,就可以进行GEVA分析了,代码简单就一句!
提示:数据大的话这一步时间较长,出去吃个饭吧(正好午饭时间)!

T_gsva <- gsva(expr = T.exp, 
                gset.idx.list = mouse_GO_bp_Set,
                kcdf="Poisson", #查看帮助函数选择合适的kcdf方法 
                parallel.sz = 5)
                #Setting parallel calculations through a MulticoreParam back-end
#with workers=5 and tasks=100.
#Estimating GSVA scores for 7410 gene sets.
#Estimating ECDFs with Poisson kernels
#Estimating ECDFs in parallel
#iteration: 100
#|=============================================================================| 100%
#查看分析结果:变成了GOBP的表达值了
head(MG_gsva[1:4, 1:4])
#GOBP_10_FORMYLTETRAHYDROFOLATE_METABOLIC_PROCESS                         0.3971866
#GOBP_2_OXOGLUTARATE_METABOLIC_PROCESS                                   -0.3306133
#GOBP_2FE_2S_CLUSTER_ASSEMBLY                                            -0.2476997
#GOBP_3_PHOSPHOADENOSINE_5_PHOSPHOSULFATE_BIOSYNTHETIC_PROCESS            0.1370572

记得将结果保存一下

write.table(T_gsva, 'T_gsva.xls', row.names=T, col.names=NA, sep="\t")

先画个热图展示一下结果吧:


library(pheatmap)
library(patchwork)
A <- MG_gsva[1:50,]  #为了方便展示,我们只展示前50行
pheatmap(A, show_rownames=1, show_colnames=0)

结果如下:

 

之后的差异分析,可视化我们下节再说!

更多精彩内容请关注我的公众号《KS科研服务与分享》

      

 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GSEA(基因集富集分析)是一种常用的生物信息学分析方法,用于对基因表达数据进行高级功能和通路分析。对于标准化后的数据集进行KEGG(Kyoto Encyclopedia of Genes and Genomes)和GO(Gene Ontology)分析,可以进一步理解基因在代谢途径和代谢方式中的功能和相互作用关系。 KEGG分析是通过对基因的富集和显著性分析,找出某一特定代谢途径或功能模块中的关键基因集合。通过GSEA分析方法,我们可以将标准化后的数据集中的基因按照其表达水平有无进行排序,然后利用先验知识库(KEGG数据库)来计算在每个基因集中的基因上或下调的富集得分。这样,我们可以快速找到在代谢途径中显著富集的基因集合,从而识别出对该代谢途径有重要影响的基因。 GO分析是常用的基因功能注释和分类系统,涵盖分子功能、细胞组分和生物过程。与KEGG类似,通过GSEA分析方法,我们可以将标准化后的数据集中的基因按照其表达水平进行排序,然后利用GO数据库来计算在每个基因集中的基因上或下调的富集得分。这样,我们可以快速找到在不同的GO功能分类中显著富集的基因集合,从而了解基因在不同功能和生物过程中的作用。 综上所述,通过GSEA分析方法对标准化后的数据集进行KEGG和GO分析,可以帮助我们深入探索代谢途径和代谢方式中的关键基因及其相互作用关系。这种方法有效地扩展了我们对基因在生物学过程中的功能和相互关系的理解,为我们进一步研究代谢相关疾病的发生机制提供了有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值