欢迎光临散文网 会员登陆 & 注册

R语言中利用biomaRt包将RNA-seq原始数据"ENSG"开头的Ensemble ID批量转换为基因名称

2023-05-18 01:06 作者:疏水收缩色素  | 我要投稿

介绍

        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)。

原始数据,只有Ensemble ID

一、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文件,将其在电脑上运行安装即可。

适用于R version 4.2 的是 RTools 4.2

         安装好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()语句合并和导出文件:

        完整代码:

转换后的数据拥有了基因名称和染色体位置等信息

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



R语言中利用biomaRt包将RNA-seq原始数据"ENSG"开头的Ensemble ID批量转换为基因名称的评论 (共 条)

分享到微博请遵守国家法律