我有这样的GenBank核苷酸序列表:
>list
NM_144958
NM_144959
NM_144960
NM_144961
NM_144962
NM_144963
XM_006539402
我希望使用Biomart将它们转换为自己的Gene Symbols,我试过这个
ensembl = useMart(biomart = "ENSEMBL_MART_ENSEMBL",
dataset="mmusculus_gene_ensembl",
host = "www.ensembl.org")
convert.fun<-function(x){
getBM(attributes="external_gene_name", values = x, mart=ensembl )
}
convert<-apply(list,1,FUN=convert.fun)
它返回一个列表,其中包含每个元素中相同的名称和数字。
答案 0 :(得分:2)
"external_gene_name"
属性需要按您拥有的值进行过滤。您的值是RefSeq RNA标识符,因此您希望使用过滤器"refseq_mrna"
。 getBM()
是矢量化的,因此一次处理所有基因标识符,因此创建一个字符向量(我不确定list
是什么,我认为你编辑了上面的输出),例如,
values = c("NM_144958", "NM_144959", "NM_144960")
并使用它们
getBM(c("refseq_mrna", "external_gene_name"), "refseq_mrna", values,
mart=ensembl)
(第一个参数返回查询以及标识符,当有1:0或1:多个映射时,这有助于第二个标识符)。
> getBM(c("refseq_mrna", "external_gene_name"), "refseq_mrna", values,
+ mart=ensembl)
refseq_mrna external_gene_name
1 NM_144958 Eif4a1
2 NM_144960 Fcamr
对于此类问题,biostars或Bioconductor support forum可能是更合适的论坛。