今天,只聊一下 RedHat/CentOS 下 gdc-client 安装的那些事~

gdc-client(https://gdc.cancer.gov/access-data/gdc-data-transfer-tool)是由 GDC 官方提供的一个可以在命令行下批量下载 TCGA 数据的客户端工具。

在 gdc-client 官网可以看到 Mac、Windows 和 Ubuntu 的二进制版本下载,却唯独没看到 CentOS/RedHat 版本的!而且还给了我们一个提示说,如果你想要安装 RedHat Enterprise Release 6 版本的 gdc-client 需要跟 GDC 进行联系!!
gdc.png
如果你用 “gdc-client” + “centos6” 的关键字去谷歌,会发现大部分的答案都是教你用 Python2 的虚拟环境去安装 gdc-client。
gdc-client-centos6-Google.png
其实,这些大部分都存在误导的成分,虽然 gdc-client 官网虽然没有提供 CentOS 6 的二进制程序包,但它托管在 GitHub 的源码我们是可以直接安装的,而且是只支持 Python 3!!

坑一:Python 2 引发 parse 模块异常

  1. conda create -n Python2 python=2.7
  2. source activate Python2
  3. git clone https://github.com/NCI-GDC/gdc-client
  4. cd gdc-client
  5. python setup.py install 2>&1 | tee -a install.log

这种方法虽然看起来没什么问题,却会执行 gdc-client -h 提示 parse 模块异常。其原因是 build/bdist.linux-x86_64/egg/gdc_client/download/parser.py 的第三行 from urllib import parse as urlparse 是 py3 的语法:在 python 2.x 中的 urlparse 模块在 Python 3 中已经重命名为 urllib.parse

  1. # Python 2 正确语法
  2. from urlparse import urlparse
  3. # Python 3 正确语法
  4. from urllib import parse as urlparse

gdc-client-parser.png

坑二:conda 安装无法响应

bioconda 虽然也提供了 gdc-client,但是本人 一直没法安装成功,可能是我的运气不太好!
bioconda-gdc-client.png

最后,CentOS 6 的正确解锁姿势

  1. conda create -n gdc python=3.7
  2. source activate gdc
  3. git clone https://github.com/NCI-GDC/gdc-client
  4. cd gdc-client
  5. pip install -r requirements.txt
  6. python setup.py install 2>&1 | tee -a install.log

gdc-client-help.png

最后,打开 GDC 的官方《Data Transfer Tool Command Line Documentation》文档,查看在命令下怎么使用 gdc-client 下载你想要的 TCGA 数据吧!