编辑:有一个新的生物信息学SE https://bioinformatics.stackexchange.com/(目前处于测试模式)。
我希望我能达到你的目标。
顺便说一句,对于生物信息学相关主题,您还可以看看biostar https://www.biostars.org/与 SO 具有相同的目的,但用于生物信息学
如果您只想获得与基因相关的每个功能的列表,您可以查询数据库,例如ENSEMBl http://www.ensembl.org/通过biomaRt https://www.bioconductor.org/packages/release/bioc/html/biomaRt.htmlbioconductor 包,它是一个用于查询 biomart 数据库的 API。
不过,您将需要互联网来进行查询。
Bioconductor 提出了用于生物信息学研究的软件包,这些软件包通常附带良好的小插图,帮助您完成分析的不同步骤(甚至强调您应该如何设计数据或哪些可能是一些陷阱)。
在你的情况下,直接从生物玛小插图 https://www.bioconductor.org/packages/release/bioc/vignettes/biomaRt/inst/doc/biomaRt.pdf- 特别是任务 2:
注意:有比我在下面报告的方法稍微快一点的方法:
# load the library
library("biomaRt")
# I prefer ensembl so that the one I will query, but you can
# query other bases, try out: listMarts()
ensembl=useMart("ensembl")
# as it seems that you are looking for human genes:
ensembl = useDataset("hsapiens_gene_ensembl",mart=ensembl)
# if you want other model organisms have a look at:
#listDatasets(ensembl)
您需要创建查询(您的 ENTREZ id 列表)。要查看可以查询哪些过滤器:
filters = listFilters(ensembl)
然后您想要检索属性:您的 GO 编号和描述。查看可用属性的列表
attributes = listAttributes(ensembl)
对于您来说,查询将类似于:
goids = getBM(
#you want entrezgene so you know which is what, the GO ID and
# name_1006 is actually the identifier of 'Go term name'
attributes=c('entrezgene','go_id', 'name_1006'),
filters='entrezgene',
values=gene_list$ENTREZID,
mart=ensembl)
查询本身可能需要一段时间。
然后,您始终可以将信息折叠为两列(但我不会推荐将其用于报告目的的任何其他用途)。
Go.collapsed<-Reduce(rbind,lapply(gene_list$ENTREZID,function(x)
tempo<-goids[goids$entrezgene==x,]
return(
data.frame('ENTREZGENE'= x,
'Go.ID'= paste(tempo$go_id,collapse=' ; '),
'GO.term'=paste(tempo$name_1006,collapse=' ; '))
)
Edit:
如果你想查询 ensembl 数据库的过去版本:
ens82<-useMart(host='sep2015.archive.ensembl.org',
biomart='ENSEMBL_MART_ENSEMBL',
dataset='hsapiens_gene_ensembl')
然后查询将是:
goids = getBM(attributes=c('entrezgene','go_id', 'name_1006'),
filters='entrezgene',values=gene_list$ENTREZID,
mart=ens82)
However, if you had in mind to do a GO enrichment analysis, your list of genes is too short.