Loading...
墨滴

鹿人与狗

2021/05/04  阅读:64  主题:全栈蓝

Ensemble Gene ID转换

写在前面

这是一篇利用利用bioMart转换Ensemble Gene ID的学习笔记。

1.Ensemble ID释义

Ensembl ID有5个组成部分:ENS(物种)(对象类型)(标识符).(版本),例如ENSOARG00020000038。

  • 第一部分“ENS”表示该ID是一个Ensembl ID

  • 第二部分是三个字母的物种代码,OAR为绵羊。对于人类,没有物种代码,因此ID的形式为ENS(对象类型)(标识符).(版本)

  • 第三部分是单字母或双字母对象类型。例如,E为外显子, FM为蛋白质家族,G为基因,GT为基因树,P为蛋白质,R为调节特征,T为转录物。

  • 标识符是该对象的编号,前缀和标识符的组合是唯一的。

  • 版本表示该模型在Ensembl期间发生了多少次变化。

更多详见ID转换之---ID是什么,BioMart咋转?

2.利用bioMart转换ID

# 对基因进行注释-获取gene_symbol,用bioMart将ensembl_id转换成gene_symbol
# listMarts() will display all available BioMart web services
# useMart()函数可以用于连接到指定的BioMart数据库,它必须是listMarts()给定的有效名称。
# BioMart数据库包含不同物种的数据集,使用ensembl <- useMart("ensembl"); datasets <- listDatasets(ensembl)查看哪些数据集可用,head(datasets)显示前5条信息,更多信息打开datasets数据集列表查看。
# 绵羊的两种不同的参考基因组对应的数据集如下:
# oarambouillet_gene_ensembl------Sheep genes (Oar_rambouillet_v1.0)
# oaries_gene_ensembl------Sheep (texel) genes (Oar_v3.1)
# 使用mart <- useDataset("oarambouillet_gene_ensembl", useMart("ensembl")); attributes = listAttributes(mart)查看valid attribute names
# 更多详细说明参考The biomaRt users guide
# https://bioconductor.org/packages/release/bioc/vignettes/biomaRt/inst/doc/biomaRt.html#introduction

BiocManager::install("biomaRt")
BiocManager::install("curl")
library("biomaRt")
library("curl")

# 读入数据
counts <- read.table("featurecounts_paired_v1.0.txt",sep = '\t',header = T# 读入数据,header = T将第一行设为列名,row.names = 1表示第一列设为行名
colnames(counts)[1] <- c('ensembl_gene_id'# 修改第一列列名
colnames(counts)[7:13] <- c('C1','C2','C3','T1','T2','T3','T4'# 修改第7-13列列名
counts <- counts[,-2:-6# 删除2~6列
rownames(counts) <- counts[,1]  #取出第一列并将其设为行名
head(counts)

# ID转换
mart <- useDataset("oarambouillet_gene_ensembl", useMart("ensembl"))
my_ensembl_gene_id <- row.names(counts)
head(my_ensembl_gene_id)
og_symbols <- getBM(attributes = c("ensembl_gene_id","external_gene_name","description","chromosome_name","start_position","end_position","band"), filters = 'ensembl_gene_id', values = my_ensembl_gene_id, mart = mart)
head(og_symbols)
readcount <- merge(counts, og_symbols, by = "ensembl_gene_id"#将表达数据框counts和注释得到的og_symbols整合为一
head(readcount)
write.csv(readcount, file='readcount_all.csv'#输出count表达矩阵

3.Tips

上述转换结果与Emsenbl的BioMart在线工具结果完全一致,唯一不确定的是attributes参数中的external_gene_name。对于人类,大多数选择hgnc_symbol,当然也有选择external_gene_name参数的,那么在非模式生物中该参数怎么选择?external_gene_name是否合适(选择hgnc_symbolexternal_gene_name的转换结果一致)?

更多精彩内容请关注公众号:鹿人与狗

鹿人与狗

2021/05/04  阅读:64  主题:全栈蓝

作者介绍

鹿人与狗

心有迷鹿,余生有鹿,一鹿有你。