轉(zhuǎn)錄組完整的ID轉(zhuǎn)換:biomaRt和gtf

ID轉(zhuǎn)換過(guò)程中會(huì)有基因丟失這件事情李破,在部分做干實(shí)驗(yàn)的人看來(lái)宠哄,是非常正常的。但不做干實(shí)驗(yàn)的濕實(shí)驗(yàn)人知道這件事嗤攻,心里可能會(huì)有疙瘩琳拨。為什么要丟失呢?為什么丟失了不補(bǔ)回來(lái)屯曹?

在分析結(jié)果中查閱重要的基因并繪圖時(shí)發(fā)現(xiàn)竟然無(wú)此基因的數(shù)據(jù)狱庇,或者是繪圖時(shí)row.name的部分丟失,會(huì)讓我們的強(qiáng)迫癥爆發(fā)恶耽。真心希望有一個(gè)完整的ID轉(zhuǎn)換方法密任。在這之前我使用的是ENSEMBL的官方工具BiomaRt。目前BiomaRt囊括了多達(dá)208種物種的ID數(shù)據(jù)偷俭,可以說(shuō)是又大由全浪讳。然而即使我做的是人類基因ID轉(zhuǎn)換,仍然還是發(fā)現(xiàn)有基因丟失涌萤,是可忍孰不可忍淹遵。后經(jīng)過(guò)多方查閱,決定使用參考基因組的gtf文件進(jìn)行完整的ID轉(zhuǎn)換负溪。下面我們就來(lái)對(duì)比一下,BiomaRt和gtf的ID轉(zhuǎn)換結(jié)果川抡。

(注:使用BiomaRt進(jìn)行ID轉(zhuǎn)化出現(xiàn)ID丟失的原因不一定是因?yàn)镽包不好辐真,有可能是數(shù)據(jù)的版本不同)

數(shù)據(jù)準(zhǔn)備

在這里使用本人的轉(zhuǎn)錄組數(shù)據(jù)用于測(cè)試崖堤,數(shù)據(jù)經(jīng)過(guò)上游處理后簡(jiǎn)單整理數(shù)據(jù)如下:

0
> dim(count) # 檢查數(shù)據(jù)框大小
[1] 58884     9

> table(duplicated(count$geneid)) # 檢查是否有重復(fù)的ensemble ID
FALSE 
58884 

由上信息可見(jiàn),我的轉(zhuǎn)錄組數(shù)據(jù)經(jīng)過(guò)比對(duì)后得到58884個(gè)“基因”,因此gene symbol轉(zhuǎn)換要越接近這個(gè)數(shù)值越好胯甩。

1. BiomaRt

1.1 install BiomaRt

安裝代碼可以從bioconductor http://www.bioconductor.org/packages/release/bioc/html/biomaRt.html上查閱

if (!requireNamespace("biomaRt", quietly = TRUE) ){
  BiocManager::install("biomaRt")
}
  
library(biomaRt)  # 激活R包

1.2 選定人類數(shù)據(jù)集

listMarts()  ## 查看目前提供的數(shù)據(jù)庫(kù)
# formal class mart 
my_mart<- useMart("ENSEMBL_MART_ENSEMBL") # 選定數(shù)據(jù)集
## 查看數(shù)據(jù)集
datasets<- listDatasets(my_mart)
datasets
dim(datasets)  # [1] 202   3  目前有208個(gè)數(shù)據(jù)集(物種ID信息)
# 設(shè)定人類ID數(shù)據(jù)集
human_dataset<- useDataset("hsapiens_gene_ensembl",mart = my_mart) # 約1.3 M
1

1.3 簡(jiǎn)單查看人類ID數(shù)據(jù)集

human_dataset@attributes$name[1:20] ## 查看一下都有什么名字
2

可以看到數(shù)據(jù)集中包含:ensemble ID和gene id的轉(zhuǎn)換昧廷,基因轉(zhuǎn)錄本ID等等內(nèi)容。簡(jiǎn)單查閱一遍蜡豹,可知“ensembl_gene_id”是我們想要的內(nèi)容麸粮。

1.4 設(shè)定attributes參數(shù)

attributes參數(shù)定義了四個(gè)輸出項(xiàng)ensembl_gene_id,chromosome_name镜廉, hgnc_smbol以及hgnc_id弄诲。

count_value<- count$geneid  # 設(shè)定需要轉(zhuǎn)換的ID
attr1<- c("ensembl_gene_id","chromosome_name","hgnc_symbol","hgnc_id") # 設(shè)定參數(shù)
count_ID<- getBM(attributes = attr1,
          filters = "ensembl_gene_id",
          values = count_value, 
          mart = human_dataset)

輸出結(jié)果如下:可見(jiàn)attribute定義的四個(gè)輸出項(xiàng)

ID conversion

1.5 查看ID轉(zhuǎn)換的完整度

> dim(count_ID)  # 查看ID轉(zhuǎn)換結(jié)果
[1] 58666     4  # 有58666個(gè)ensemble ID完成了比對(duì)

可見(jiàn)有58666個(gè)ensemble ID完成了轉(zhuǎn)換,這比原始數(shù)據(jù)中的58884少了218個(gè)ensemble ID齐遵。但這僅僅是ensemble ID的轉(zhuǎn)換結(jié)果寂玲,我們還需要查看gene symbol(也就是表格中的hgnc_symbol)的完成度。

table(is.na(count_ID$ensembl_gene_id))
table(is.na(count_ID$hgnc_symbol))
table( count_ID$hgnc_symbol == "")
table(duplicated(count_ID$hgnc_symbol))
biomaRt

小結(jié):biomaRt ID轉(zhuǎn)換會(huì)出現(xiàn)大量的gene symbol的丟失梗摇,具體原因可能是已經(jīng)將重復(fù)的gene symbol去除(有多個(gè)ensemble ID對(duì)應(yīng)gene symbol的情況)拓哟。

2. 使用基因組的gtf注釋文件

在自己用于比對(duì)的參考基因組那里可以找到相應(yīng)的注釋文件,我使用的是hg38版本

hg38

2.1 配置R包

BiocManager::install("rtracklayer")
library(rtracklayer)

進(jìn)行相應(yīng)的文件設(shè)置

# input 
gff <- readGFF("Homo_sapiens.GRCh38.96.gtf")
head(gff)

mapid <- gff[gff$type == "gene", c("gene_id", "gene_name")]
head(mapid)
#gff文件很大伶授,用掉就刪掉

# 判斷我們要轉(zhuǎn)換的基因是不是都在
table(count$geneid %in%mapid$gene_id)
mapid <- read.csv("ensemble2symbol.csv")
head(mapid)
whether all

至此断序,mapid文件則是存儲(chǔ)ID轉(zhuǎn)換信息的文件。

2.2 合并

查看mapid文件并與需要進(jìn)行ID轉(zhuǎn)換的數(shù)據(jù)合并

# 查看gene symbol是否有空值
table( mapid$gene_name == "")

# 用merge進(jìn)行合并
df <- merge(count, mapid, by.x="geneid", by.y="gene_id")

# 先判斷是不是存在重復(fù)的基因名糜烹,如果存在重復(fù)违诗,先考慮去重
table(duplicated(df$gene_name))

df <- df[!duplicated(df$gene_name),]
table(duplicated(df$gene_name))
image

由上可知,使用gtf文件進(jìn)行ID轉(zhuǎn)換會(huì)得到最全的結(jié)果疮蹦。但最全的結(jié)果是否最適合后續(xù)分析诸迟,我們還需要進(jìn)一步考察。

2.3 查看gtf轉(zhuǎn)換文件

image

由上圖可見(jiàn)愕乎,有一些ensemble ID其實(shí)是對(duì)應(yīng)同一個(gè)gene symbol阵苇,只不過(guò)這些gene symbol有不同的版本號(hào),可見(jiàn)名字后面的小數(shù)點(diǎn)感论。于是我們會(huì)提出疑問(wèn)绅项,該如何處理不同版本的gene symbol呢?暫未明確笛粘,須待考察趁怔。

3. 小結(jié)

總體來(lái)說(shuō)湿硝,使用gtf注釋文件進(jìn)行ID轉(zhuǎn)換是最完整的ID轉(zhuǎn)換薪前。關(guān)于ID轉(zhuǎn)換的事情困擾我已久,或許這本不是什么大問(wèn)題关斜,但仍是一個(gè)問(wèn)題示括。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市痢畜,隨后出現(xiàn)的幾起案子垛膝,更是在濱河造成了極大的恐慌,老刑警劉巖丁稀,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吼拥,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡线衫,警方通過(guò)查閱死者的電腦和手機(jī)凿可,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人枯跑,你說(shuō)我怎么就攤上這事惨驶。” “怎么了敛助?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵粗卜,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我纳击,道長(zhǎng)续扔,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任焕数,我火速辦了婚禮测砂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘百匆。我一直安慰自己砌些,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布加匈。 她就那樣靜靜地躺著存璃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雕拼。 梳的紋絲不亂的頭發(fā)上纵东,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音啥寇,去河邊找鬼偎球。 笑死,一個(gè)胖子當(dāng)著我的面吹牛辑甜,可吹牛的內(nèi)容都是我干的衰絮。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼磷醋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼猫牡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起邓线,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤淌友,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后骇陈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體震庭,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年你雌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了器联。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖主籍,靈堂內(nèi)的尸體忽然破棺而出习贫,到底是詐尸還是另有隱情,我是刑警寧澤千元,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布苫昌,位于F島的核電站,受9級(jí)特大地震影響幸海,放射性物質(zhì)發(fā)生泄漏祟身。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一物独、第九天 我趴在偏房一處隱蔽的房頂上張望袜硫。 院中可真熱鬧,春花似錦挡篓、人聲如沸婉陷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)秽澳。三九已至,卻和暖如春戏羽,著一層夾襖步出監(jiān)牢的瞬間掸冤,已是汗流浹背倦西。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工置尔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趋惨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓酷宵,卻偏偏與公主長(zhǎng)得像亥贸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子忧吟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容