biomaRt包实现不同物种之间同源基因转换

biomaRt包实现不同物种之间同源基因转换TCGA GEO 文献阅读 数据库 理论知识 R 语言 Bioconductor 服务器与 Linux 在之前 我介绍过生物学中常听见的各种 ID 名称 参考文章 常用生物信

TCGA | GEO | 文献阅读 | 数据库 理论知识

R语言 | Bioconductor | 服务器与Linux

biomaRt包实现不同物种之间同源基因转换


在之前,我介绍过生物学中常听见的各种ID名称【参考文章:常用生物信息 ID的介绍】,然后介绍了这些ID名称之间的转换。【参考文章:生信中各种ID转换】,这些转换通常都是基于同一物种而言,但在基础医学研究中,很多实验模型都是在动物上完成的,比如小鼠。假如我们研究某药物的抗肿瘤效果,涉及到机制,最终都会往人上靠的,一般几个基因,数据库直接查一下就可以啦。但如果基因很多,人工查就不太现实,一般也是测序后的数据。所以在这里我给大家介绍一下,不同物种之间的同源基因名称转换,这种转换是基于物种间基因的同源性的。同源基因是由一个共同祖先在不同物种中遗传的基因。虽然同源基因在序列上是相似的,但相似的序列不一定是同源的。

,约80%的小鼠蛋白质在人类基因组中具有严格的1:1种间同源体,其序列同一性通常介于70%~100%。当然跟人类亲缘关系最近的物种是黑猩猩。

好了,我们正式介绍如何把小鼠的gene ID进行同源性映射到人的基因上去?

我们用到的R包是biomaRt包。bioMart包是一个连接bioMart数据库的R语言接口,能通过这个软件包自由连接到bioMart数据库。可以进行各种基因转换。

if (!requireNamespace("BiocManager", quietly = TRUE))     install.packages("BiocManager") BiocManager::install("biomaRt") library(biomaRt) 

使用biomaRt包的第一步是选择要使用的BioMart 数据库和数据集。使用useMart函数可以连接到指定的BioMart 数据库和数据库中的数据集。要知道哪些BioMart 数据库是可用的,可以利用listMarts函数查看。

> listMarts() biomart version 1 ENSEMBL_MART_ENSEMBL Ensembl Genes 101 2 ENSEMBL_MART_MOUSE Mouse strains 101 3 ENSEMBL_MART_SNP Ensembl Variation 101 4 ENSEMBL_MART_FUNCGEN Ensembl Regulation 101 

要知道在一个BioMart数据库中哪些数据集是可用的,首先选择使用useMart的BioMart数据库,然后使用listDatasets函数在选定的BioMart,见listDatasets函数。

listDatasets()用于查询当前数据库所含的基因组注释。比如查看人的和鼠的。

> listDatasets(human) dataset 1 acalliptera_gene_ensembl 2 acarolinensis_gene_ensembl 3 acchrysaetos_gene_ensembl 4 acitrinellus_gene_ensembl .......... 79 hhucho_gene_ensembl 80 hsapiens_gene_ensembl ........... 
> listDatasets(mouse) dataset 1 acalliptera_gene_ensembl 2 acarolinensis_gene_ensembl 3 acchrysaetos_gene_ensembl 4 acitrinellus_gene_ensembl ........... 105 mmurinus_gene_ensembl 106 mmusculus_gene_ensembl ........... 

用useDataseq()函数选定数据库中的基因组。

useDataset(dataset,mart, verbose = FALSE) 

dataset就是要使用的数据集。可能的数据集的列表可以使用listDatasets函数检索,也就是我们上面介绍的。mart是使用useMart函数创建的Mart对象。

mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl")) 

用lsitFilters()函数查看可选择的类型,选定要获取的注释类型,以及已知注释的类型。

> listFilters(mart) name 1 chromosome_name 2 start 3 end 4 band_start 5 band_end 6 marker_start 

那么我们怎进行同源基因转换呢?按照开始说的,使用biomaRt包的第一步是选择要使用的BioMart 数据库和数据集。使用useMart函数可以连接到指定的BioMart 数据库和数据库中的数据集。所以第一步是构建mart对象。

human <- useMart('ensembl',dataset = "hsapiens_gene_ensembl") mouse <- useMart('ensembl',dataset = "mmusculus_gene_ensembl") 

也就是选择数据库ensembl,数据集是人的hsapiens_gene_ensembl或者小鼠的mmusculus_gene_ensembl。

getLDS函数是biomaRt查询的主要功能,连接两个数据集,并从这些链接的biomaRt数据集检索信息。在Ensembl中,这转化为同源映射。

我这里有一串小鼠基因。mouse.gene

biomaRt包实现不同物种之间同源基因转换

m2h.g <- getLDS(attributes = c("mgi_symbol"),filters = "mgi_symbol", values = mouse.gene,mart = mouse, attributesL = c("hgnc_symbol","chromosome_name","start_position"), martL = human,uniqueRows = T) 

attributes:属性参数:代表我们所要检索的数据集的属性参数,比如这里我们用的是mgi_symbol,代表的就是小鼠的基因的symbol名字。可以使用listAttributes函数检索可能的属性列表。

> head(listAttributes(mouse)) name description page 1 ensembl_gene_id Gene stable ID feature_page 2 ensembl_gene_id_version Gene stable ID version feature_page 3 ensembl_transcript_id Transcript stable ID feature_page 4 ensembl_transcript_id_version Transcript stable ID version feature_page 5 ensembl_peptide_id Protein stable ID feature_page 6    ensembl_peptide_id_version    Protein stable ID version feature_page 

filter:参数过滤器,应在查询中使用的过滤器。这些过滤器将应用于主数据集。可以使用函数listFilters检索可能的过滤器列表。

value:代表我们想要输入的数据集,就是输入我们构造的要查询的向量。

mart :指的是输入数据的mart对象,由于输入数据是小鼠的基因,自然选择的mart对象为小鼠。

attributesL:代表的是我们需要同源转化的另外一个数据库,这里我们自然是由小鼠转为人,选择的就是需要连接到的人的Mart对象,在属性参数里面我们填写了三个参数,分别是gene_symbol ,染色体位置,基因起始位点。

useMartL:参数是代表我们需要链接的Mart对象,这里自然就是人的。


我们查看一下结果:

> head(m2h.g) MGI.symbol HGNC.symbol Chromosome.scaffold.name Gene.start..bp. 1 mt-Nd1 MT-ND1 MT 3307 2 Ube2j2 UBE2J2 1  3 Aurkaip1 AURKAIP1 1  4 mt-Nd5 MT-ND5 MT 12337 5 Agrn AGRN 1  6 mt-Co3 MT-CO3 MT 9207 
ensg <- c("ENSG00000","ENSG00000", "ENSG00000","ENSG00000", "ENSG00000078237","ENSG00000", "ENSG00000","ENSG00000", "ENSG00000","ENSG00000",   "ENSG00000","ENSG00000") 
hg_symbols<- getBM(attributes=c('ensembl_gene_id','hgnc_symbol',"chromosome_name", "start_position","end_position", "band"), filters= 'ensembl_gene_id', values = ensg, mart = mart) 

biomaRt包实现不同物种之间同源基因转换

这也达到的注释的目的。

更多功能,参考官方文档。


参考:

http://www.bioconductor.org/packages/release/bioc/html/biomaRt.html

本公众号文章目录:https://www.yuque.com/doublehelix/mbictitles/dmiy4u

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213930.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午5:19
下一篇 2026年3月18日 下午5:19


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号