biomaRt基因同源转换时 使用中遇到Timeout was reached的解决办法

根据之前别人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")

轻松秒杀~~~~~~~

真开心
10404FEA.png

参考来源:https://zhuanlan.zhihu.com/p/141445523

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容