前面我们介绍过了多种不同来源的基因列表获取方式,首先是msigdb数据库的gmt文件(网页下载),然后是这个msigdb的R包。小伙伴们看完了我们的笔记后自行摸索就发现了一个有意思的“bug”:
有意思的“bug”
MSigDB(Molecular Signatures Database)数据库中定义了已知的基因集合:http://software.broadinstitute.org/gsea/msigdb 需要简单的注册才能下载。但是 msigdbr 包,它内置了MSigDB(Molecular Signatures Database)数据库的全部基因集合。安装方法非常简单:
install.packages("msigdbr")
包括H和C1-C7八个系列(Collection),每个系列分别是:
-
H: hallmark gene sets (癌症)特征基因集合,共50组,最常用;
-
C1: positional gene sets 位置基因集合,根据染色体位置,共326个,用的很少;
-
C2: curated gene sets:(专家)校验基因集合,基于通路、文献等:
-
C3: motif gene sets:模式基因集合,主要包括microRNA和转录因子靶基因两部分
-
C4: computational gene sets:计算基因集合,通过挖掘癌症相关芯片数据定义的基因集合;
-
C5: GO gene sets:Gene Ontology 基因本体论,包括BP(生物学过程biological process,细胞原件cellular component和分子功能molecular function三部分)
-
C6: oncogenic signatures:癌症特征基因集合,大部分来源于NCBI GEO 发表芯片数据
-
C7: immunologic signatures: 免疫相关基因集合。
因为 msigdbr 包内置MSigDB数据库的信息了,所以无需访问MSigDB的官网了,加载这个msigdbr包即可获取全部的基因合集信息,至于更新频率问题,大部分情况下并不重要。
比如我们想获取,上面的msigdbr 包内置的kegg数据库的小鼠物种的基因列表,如下所示:
library(msigdbr) #install.packages("msigdbr")
## msigdbr包提取下载 一般尝试KEGG和GO做GSVA分析,获取KEGG数据集
glist <- msigdbr(species = "Mus musculus", # Homo sapiens or Mus musculus
category = "C2",
subcategory = "KEGG")
colnames(glist)
glist <- dplyr::select(glist, gs_name,
gene_symbol)
glist <- split(glistgs_name)
glist
names(glist)
当然了,这个因为仍然是获取的是MSigDB数据库里面的资源,比如MSigDB里面的kegg信息,其实是十多年前的了,
虽然说我们不在乎kegg的更新频率,但是十多年前的数据总归是不好的。还是建议大家直接去kegg官网下载kegg数据库的信息,而不是使用MSigDB里面的kegg信息。
确实是会出现上面的小伙伴反馈的问题,基本上每个通路里面的基因是有重复的:
lapply(glist, function(x){
return(c(length(x),length(unique(x))))
})
$KEGG_VASOPRESSIN_REGULATED_WATER_REABSORPTION
[1] 44 43
$KEGG_VEGF_SIGNALING_PATHWAY
[1] 76 75
$KEGG_VIBRIO_CHOLERAE_INFECTION
[1] 54 53
$KEGG_VIRAL_MYOCARDITIS
[1] 77 68
$KEGG_WNT_SIGNALING_PATHWAY
[1] 150 147
很容易看出来就是有一些基因是有多个ens的id的,所以看起来是重复了,:
glist=as.data.frame(glist)
glist=glist[glist$gs_name=='KEGG_WNT_SIGNALING_PATHWAY',]
dg=glist[duplicated(glist$gene_symbol),'gene_symbol']
glist[glist$gene_symbol %in% dg,4:6]
> glist[glist$gene_symbol %in% dg,4:6]
gene_symbol entrez_gene ensembl_gene
13628 Csnk1a1 93687 ENSMUSG00000024576
13629 Csnk1a1 93687 ENSMUSG00000024576
13704 Prkaca 18747 ENSMUSG00000005469
13706 Prkaca 18747 ENSMUSG00000005469
13731 Tbl1x 21372 ENSMUSG00000025246
13733 Tbl1x 21372 ENSMUSG00000025246
熟悉基因命名体系
基因体系通常指的是用于识别和命名基因的标准化系统。以下是两个主要的基因体系:
1. HUGO Gene Nomenclature Committee (HGNC)
HGNC
是一个国际合作组织,负责为人类基因提供标准名称和符号。HGNC系统的主要特点包括:
-
唯一性
:每个人类基因都有一个独特的HGNC符号,通常由三个大写字母组成,后跟一个数字(例如,TP53)。
-
稳定性
:一旦分配,HGNC符号即使在基因功能或序列信息发生变化时也保持不变。
-
易于识别
:HGNC符号通常易于记忆和识别,有助于科学文献和数据库中的基因识别。
-
更新和维护
:随着新基因的发现和基因知识的增加,HGNC不断更新和维护其数据库,确保基因名称的准确性和相关性。
2. Ensembl
Ensembl
是一个开源生物信息学项目,旨在为科学研究人员提供基于互联网的基因组浏览器和数据库。Ensembl系统的主要特点包括:
-
多种物种
:Ensembl数据库不仅包括人类基因组,还包括多种模型生物和非模式生物的基因组数据。
-
自动化注释
:Ensembl使用自动化管道进行基因预测和注释,以保持数据库的更新和准确性。
-
基因ID系统
:Ensembl为每个基因分配一个唯一的稳定ID(例如,ENSG00000139618对应人类BRCA2基因)。
-
综合信息
:Ensembl数据库提供了关于基因的详细信息,包括基因位置、转录本、蛋白质信息、表达数据和功能注释。
-
基因组浏览器
:Ensembl提供了一个直观的基因组浏览器,用户可以在线查看基因组区域和相关基因的信息。
这两个体系都是基因组研究中不可或缺的资源,它们为全球的研究人员提供了标准化的基因命名和详细的基因组信息。HGNC侧重于为人类基因提供标准化的名称和符号,而Ensembl则提供了一个更广泛的基因组信息平台,包括多个物种的基因组数据和详细的基因注释。通过这些体系,研究人员可以更容易地识别、比较和研究不同物种的基因。
不同体系的基因命名方式会有冲突
基因符号(symbol)名字对应多个Ensembl数据库的基因ID的现象通常与基因的转录多样性和基因组的复杂性有关。以下是几个导致这种现象的原因:
-
-
一个基因可以通过选择性剪接产生多种mRNA转录异构体,每种异构体可能编码不同的蛋白质或在不同的组织中表达。这些异构体在Ensembl中通常会被赋予不同的基因ID。