R語(yǔ)言中利用biomaRt包將RNA-seq原始數(shù)據(jù)"ENSG"開(kāi)頭的Ensemble ID批量轉(zhuǎn)換為基因名稱
介紹
????????RNAseq原始數(shù)據(jù)中基因名稱是"ENSG"開(kāi)頭的Ensemble?ID,而實(shí)際分析時(shí)需要將ENSG轉(zhuǎn)換為對(duì)應(yīng)的基因名稱。下面以GEO數(shù)據(jù)庫(kù) (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語(yǔ)言的biomaRt 包將ensemble?ID轉(zhuǎn)換Gene name (Symbol)。

一、biomaRt 包的安裝
????????直接安裝biomaRt 包會(huì)提示報(bào)錯(cuò):
????????首先需要下載與R版本對(duì)應(yīng)的Rtools (https://cran.r-project.org/bin/windows/Rtools/),可使用R.version命令來(lái)查看你的R版本。
????????可以看出這里的R版本是4.2.2,對(duì)應(yīng)RTools 4.2。下載得一個(gè)rtools42-5355-5357.exe文件,將其在電腦上運(yùn)行安裝即可。

?????????安裝好Rtools之后,利用如下代碼測(cè)試是否在安裝過(guò)程中已經(jīng)完成了環(huán)境變量配置
????????如果輸出結(jié)果如上,說(shuō)明環(huán)境配置未完成,需要手動(dòng)配置環(huán)境:
????????以Win10為例,右擊“此電腦”,點(diǎn)擊“屬性”,“高級(jí)系統(tǒng)設(shè)置”,“環(huán)境變量”,選中“Admin的用戶變量”中的“Path”,點(diǎn)擊“編輯”,彈出頁(yè)面后點(diǎn)擊“新建”,添加rtools文件夾下usr和mingw64里的bin文件夾所在路徑,再一直“確定”到所有頁(yè)面關(guān)閉。之后再使用上述代碼進(jìn)行測(cè)試,可見(jiàn)不再出現(xiàn)錯(cuò)誤提示。


????????其次安裝Bioconductor。根據(jù)https://bioconductor.org/install/,Bioconductor version3.16適用于R version 4.2。使用BiocManager來(lái)安裝Bioconductor。
????????此后可以使用命令BiocManager::install("biomaRt")安裝biomaRt 包。
二、Ensembl Gene ID到Gene ID的轉(zhuǎn)換
????????安裝好后,可以使用listMarts()函數(shù)選擇一種Biomart目前提供的四種數(shù)據(jù)庫(kù)。
????????輸入library(biomaRt)加載包:
????????同時(shí)記得也加載tidyverse包,里面包含了常用的一些R包(如dplyr、ggplot等)以進(jìn)行讀取文件、畫圖等操作:
?????????輸入listMarts()查看數(shù)據(jù)庫(kù):
?????????我們使用Ensembl,輸入:
?????????Ensembl數(shù)據(jù)庫(kù)中包含了212個(gè)數(shù)據(jù)集,我們選擇"hsapiens_gene_ensembl"。輸入:
?????????可在data2中生成智人ensembl的基因組。
????????下面開(kāi)始轉(zhuǎn)換。導(dǎo)入數(shù)據(jù) (導(dǎo)入數(shù)據(jù)前記得在原csv文件的A1中加入列名“Gene_ID”,后續(xù)代碼有利用到,而源文件沒(méi)有這個(gè)列名):
?????????輸入listFilters(data2)可以查看要選擇獲得的數(shù)值類型:
?????????我們數(shù)據(jù)中的類型是54 ensembl_gene_id,所需要的獲取的是61?external_gene_name。使用getBM()函數(shù)語(yǔ)句獲取所需的數(shù)值類型:
?????????也可以加入染色體位置等信息:
? ? ? ? ?Attributers里面為要獲取的數(shù)值類型,filters里面為已知的數(shù)值類型
????????去除一些沒(méi)有檢索到的Ensembl對(duì)應(yīng)的基因名字:
????????注意這時(shí)候的symbols是按照Ensembl的序數(shù)排列的,可能和RNA_seq的原始順序不同??梢允褂胷ight_join()語(yǔ)句合并和導(dǎo)出文件:
????????完整代碼:

如需轉(zhuǎn)載,請(qǐng)務(wù)必注明出處?????。
