Cook R数据科学与R语言生物信息学与算法

「r<-包」UCSCXenaTools v1.2.7

2019-10-08  本文已影响0人  王诗翔

今天在推特上看到 UCSC Xena 更新了关于 GDC 的数据

以及收到 B.C 君关于 UCSC Xena 支持断点续传的邮件

所以花了一下午时间重新审查了下项目相关的代码。更新有哪些呢?

单细胞数据 hub 域名更正

单细胞数据 hub 之前域名是 https://singlecell.xenahubs.net,现在是 https://singlecellnew.xenahubs.net,已更新。

GDC 数据下载问题的修复

详情见 https://github.com/ropensci/UCSCXenaTools/issues/12。原因是 GDC hub 的 URL 下载链接拼错了。UCSC Xena 的设计本身不是很规整,所以容易出这种问题,不过相应的也比较好修复。如果读者有发现类似的问题请及时提醒我。

数据下载断点续传的支持

之前 UCSC Xena 的数据集是不支持断点续传的,这对大文件很不友好,特别是 toil hub 中几个大型数据集都有5、6G。这个我原先是不知道的,用户有需求时我测试才发现它不支持。所以与 官方的 team 联系交流了下,在他们经过测试后现在已经对所有的数据 hub 进行了升级。

从用户角度来说,只需要在下载时增加几个选项的指定就可以了。下面是一个示例,推荐使用 curl 方法。

library(UCSCXenaTools)
xe = XenaGenerate(subset = XenaDatasets == "TcgaTargetGtex_expected_count")
xe
xq = XenaQuery(xe)
# You cannot resume from breakpoint in default mode
XenaDownload(xq, destdir = "~/test/", force = TRUE)
# You can do it with 'curl' command
XenaDownload(xq, destdir = "~/test/", method = "curl", extra = "-C -", force = TRUE)
# You can do it with 'wget' command
XenaDownload(xq, destdir = "~/test/", method = "wget", extra = "-c", force = TRUE)

数据的更新以及相关代码的优化

之前我使用 UCSCXenaTools 收录的数据集大概是 1650 个,现在有 1738个,有接近 100 个数据集的增加。是否有一些版本的更新我倒没仔细查看。

趁着数据集更新的机会花时间优化了更新代码。我上一次更新 XenaData 已经有好几个月了,一般不更新它,因为费时间。我相信用户之前如果想自己更新数据也会比较困难,因为之前是对每一个数据集进行查询,而且有2次这样的操作,接近两千个数据集的HTTP查询如果网不好肯定会断掉,等于没做。

现在则方便多了,之前感觉个把小时,现在大概几分钟就可以搞定。下面是实测:

> system.time(XenaDataUpdate(saveTolocal = F))
=> Obtaining info from UCSC Xena hubs...
...
=> Done.
  用户   系统   流逝 
 3.832  0.120 70.285 

原理在于我从 hub 层次去获取 cohort 信息,从 cohort 层次去获取 datasets 的信息。数据 hub 目前总共才 10 个,而 cohort 总共也就 100 多的样子,查询量至少少了 20 倍。

以后就算我没时间更新,用户如果获取到了官方的更新信息,也可以自己手动用函数更新了。

安装

最新版本已经提交到 CRAN,但是到可获取还需要几天时间,目前可以通过 GitHub 上安装:

# install.packages("remotes")
remotes::install_github("ropensci/UCSCXenaTools")
上一篇下一篇

猜你喜欢

热点阅读