R语言中利用biomaRt包将RNA-seq原始数据"ENSG"开头的Ensemble ID批量转换为基因名称
介绍
RNAseq原始数据中基因名称是"ENSG"开头的Ensemble ID,而实际分析时需要将ENSG转换为对应的基因名称。下面以GEO数据库 (https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE213001)
下载到的GSE213001_Entrez-IDs-Lung-IPF-GRCh38-p12-logRPKMs-normalised.csv为例 (肺纤维化患者与健康人的Bulk tissue RNA-seq),利用R语言的biomaRt 包将ensemble ID转换Gene name (Symbol)。

一、biomaRt 包的安装
直接安装biomaRt 包会提示报错:
首先需要下载与R版本对应的Rtools (https://cran.r-project.org/bin/windows/Rtools/),可使用R.version命令来查看你的R版本。
可以看出这里的R版本是4.2.2,对应RTools 4.2。下载得一个rtools42-5355-5357.exe文件,将其在电脑上运行安装即可。

安装好Rtools之后,利用如下代码测试是否在安装过程中已经完成了环境变量配置
如果输出结果如上,说明环境配置未完成,需要手动配置环境:
以Win10为例,右击“此电脑”,点击“属性”,“高级系统设置”,“环境变量”,选中“Admin的用户变量”中的“Path”,点击“编辑”,弹出页面后点击“新建”,添加rtools文件夹下usr和mingw64里的bin文件夹所在路径,再一直“确定”到所有页面关闭。之后再使用上述代码进行测试,可见不再出现错误提示。


其次安装Bioconductor。根据https://bioconductor.org/install/,Bioconductor version3.16适用于R version 4.2。使用BiocManager来安装Bioconductor。
此后可以使用命令BiocManager::install("biomaRt")安装biomaRt 包。
二、Ensembl Gene ID到Gene ID的转换
安装好后,可以使用listMarts()函数选择一种Biomart目前提供的四种数据库。
输入library(biomaRt)加载包:
同时记得也加载tidyverse包,里面包含了常用的一些R包(如dplyr、ggplot等)以进行读取文件、画图等操作:
输入listMarts()查看数据库:
我们使用Ensembl,输入:
Ensembl数据库中包含了212个数据集,我们选择"hsapiens_gene_ensembl"。输入:
可在data2中生成智人ensembl的基因组。
下面开始转换。导入数据 (导入数据前记得在原csv文件的A1中加入列名“Gene_ID”,后续代码有利用到,而源文件没有这个列名):
输入listFilters(data2)可以查看要选择获得的数值类型:
我们数据中的类型是54 ensembl_gene_id,所需要的获取的是61 external_gene_name。使用getBM()函数语句获取所需的数值类型:
也可以加入染色体位置等信息:
Attributers里面为要获取的数值类型,filters里面为已知的数值类型
去除一些没有检索到的Ensembl对应的基因名字:
注意这时候的symbols是按照Ensembl的序数排列的,可能和RNA_seq的原始顺序不同。可以使用right_join()语句合并和导出文件:
完整代码:

如需转载,请务必注明出处⑉•ᴗ•⑉。
