根据之前别人po文中的代码进行,发现行不通
library(biomaRt)
listMarts()
umart = useMart('ensembl') ###制定选择的数据库
datalist = listDatasets(umart) #查看特定数据库支持ID转换的物种,'ensembl'表示使用所有数据库,可以看到所有可用数据库里共有215个数据集
searchDatasets(mart = umart, pattern = "Rat") #模糊搜索数据库里的数据集
human <- useMart('ensembl',dataset = "hsapiens_gene_ensembl")
出现了下面这样子的报错:
Error in curl::curl_fetch_memory(url, handle = handle) :
Timeout was reached: [dec2021.archive.ensembl.org:80] Operation timed out after 10009 milliseconds with 40396 bytes received
看了下bioconduct上管理员还是谁回复的说是近期biomaRt上有很多下载大量数据的人,导致速度变慢,所以限制了下载时间为10秒钟,所以我们通过修改R中的timeout是行不通的(原先就是60s,马德比biomaRt上长多了),找了一晚上,发现这个问题最近半年内都没有人专门解决,在预览知乎回答的时候突然找到了方法,分享给大家。只要修改一下host值就好,完美解决。
完整代码如下:
library(biomaRt)
listMarts()
umart = useMart('ensembl') ###制定选择的数据库
datalist = listDatasets(umart) #查看特定数据库支持ID转换的物种,'ensembl'表示使用所有数据库,可以看到所有可用数据库里共有215个数据集
searchDatasets(mart = umart, pattern = "Rat") #模糊搜索数据库里的数据集
human <- useMart('ensembl',dataset = "hsapiens_gene_ensembl",host = "https://asia.ensembl.org/")
#mouse <- useMart('ensembl',dataset = "mmusculus_gene_ensembl")
轻松秒杀~~~~~~~