调用特定版本的BioMart database
在R中安装biomart
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("biomaRt")
library(biomaRt)
大家一般用biomart对id进行转换,或者加上其他注释信息,比如gene type等等
但是一直存在的问题是biomart的版本更新很快,比如之前分析数据是下载的ensembl 99版本的GTF文件,但是现在已经是ensembl 104 版本了,不同版本之间的注释信息之间略有不同。所以在ID转换的时候常常会发现有一小部分ID转换不了,这对强迫症患者来说无异于是无法接受的。
这里只针对从ensembl官网下的注释文件,如果是从encode下载的话,那可能需要找到其对应的ensembl版本。
废话不多说,直接上代码,是从http://web.mit.edu/~r/current/arch/i386_linux26/lib/R/library/biomaRt/doc/biomaRt.html#using-archived-versions-of-ensembl
找到的,找了好久。
>library(biomaRt)
>listEnsemblArchives()
name date url version current_release
1 Ensembl GRCh37 Feb 2014 http://grch37.ensembl.org GRCh37
2 Ensembl 104 May 2021 http://may2021.archive.ensembl.org 104 *
3 Ensembl 103 Feb 2021 http://feb2021.archive.ensembl.org 103
4 Ensembl 102 Nov 2020 http://nov2020.archive.ensembl.org 102
5 Ensembl 101 Aug 2020 http://aug2020.archive.ensembl.org 101
6 Ensembl 100 Apr 2020 http://apr2020.archive.ensembl.org 100
7 Ensembl 99 Jan 2020 http://jan2020.archive.ensembl.org 99
8 Ensembl 98 Sep 2019 http://sep2019.archive.ensembl.org 98
9 Ensembl 97 Jul 2019 http://jul2019.archive.ensembl.org 97
10 Ensembl 96 Apr 2019 http://apr2019.archive.ensembl.org 96
11 Ensembl 95 Jan 2019 http://jan2019.archive.ensembl.org 95
12 Ensembl 94 Oct 2018 http://oct2018.archive.ensembl.org 94
13 Ensembl 93 Jul 2018 http://jul2018.archive.ensembl.org 93
14 Ensembl 92 Apr 2018 http://apr2018.archive.ensembl.org 92
15 Ensembl 91 Dec 2017 http://dec2017.archive.ensembl.org 91
16 Ensembl 90 Aug 2017 http://aug2017.archive.ensembl.org 90
17 Ensembl 89 May 2017 http://may2017.archive.ensembl.org 89
18 Ensembl 88 Mar 2017 http://mar2017.archive.ensembl.org 88
19 Ensembl 87 Dec 2016 http://dec2016.archive.ensembl.org 87
20 Ensembl 86 Oct 2016 http://oct2016.archive.ensembl.org 86
21 Ensembl 85 Jul 2016 http://jul2016.archive.ensembl.org 85
22 Ensembl 80 May 2015 http://may2015.archive.ensembl.org 80
23 Ensembl 77 Oct 2014 http://oct2014.archive.ensembl.org 77
24 Ensembl 75 Feb 2014 http://feb2014.archive.ensembl.org 75
25 Ensembl 67 May 2012 http://may2012.archive.ensembl.org 67
26 Ensembl 54 May 2009 http://may2009.archive.ensembl.org 54
##可以看到不同的版本下有一个网址
其中,ensembl 88(可能记错了)之前的是hg19版本,后面的是hg38版本,
如果我们分析数据时下载的时ensembl 99 版本的gtf注释文件,但现在biomart默认的是ensembl 104 版本,那我们可以换成ensembl 99 的版本。
> listMarts(host = 'jan2020.archive.ensembl.org')
biomart version
1 ENSEMBL_MART_ENSEMBL Ensembl Genes 99
2 ENSEMBL_MART_MOUSE Mouse strains 99
3 ENSEMBL_MART_SNP Ensembl Variation 99
4 ENSEMBL_MART_FUNCGEN Ensembl Regulation 99
> ensembl99 <- useMart(host='jan2020.archive.ensembl.org',
+ biomart='ENSEMBL_MART_ENSEMBL',
+ dataset='hsapiens_gene_ensembl')
至此,ensembl 99 版本的human biomart就导入完成了,如果是mouse,则把dataset='hsapiens_gene_ensembl'该成mouse对应的就好了。
结语
最新的ensembl已经不是mm10(GRCm38)版本了,改成了最新的GRCm39,所以可能有些问题,但对于ensembl 101 以及以前的版本,用以上的方法足以切换到对应版本的biomart,同时人类和小鼠的ensembl 版本号是相同的(hg38 ensembl 99 和mm10 ensembl 99 是同一时间更新的,因此host='jan2020.archive.ensembl.org' 这一参数是相同的)