🐥

【WSL】[Bioinformatics] GDC Data Transfer Toolを使ってGDCからデータ取得

2023/06/28に公開
GDCとは chatGPTより

Genomic Data Commons(GDC)は、がんゲノムデータの共有とアクセスを促進するためのプラットフォームです。GDCは、米国国立がん研究所(NCI)によって運営されており、がん研究者や臨床医師、バイオインフォマティクス研究者など、さまざまな利用者ががんゲノムデータにアクセスできるようにしています。

GDCは、がんゲノムデータの収集、統合、保管、解析、配信などの機能を提供しています。具体的には、がん患者のゲノムデータや関連する臨床データ、試験データなどを収集し、統合して統一的なフォーマットで保管します。また、バイオインフォマティクス解析のためのツールやパイプラインを提供し、利用者がデータを効果的に解析できるよう支援します。

GDCの主な目的は、がんゲノムデータの共有と再利用を通じてがん研究の進歩を促進することです。研究者や医師は、GDCからデータセットを取得して、研究や治療のための新たな知見を得ることができます。また、GDCは、がんゲノムデータの標準化や品質管理にも取り組んでおり、データの信頼性と品質を確保しています。

GDCのデータセットには、がんのさまざまなタイプや病期に関連するデータが含まれており、TCGA(The Cancer Genome Atlas)プロジェクトなど、さまざまな研究プロジェクトのデータが集約されています。これにより、利用者は多様ながんゲノムデータにアクセスし、独自の研究や治療戦略の開発に役立てることができます。

GDCは、オープンアクセスの原則に基づいており、誰もが利用者として登録し、がんゲノムデータにアクセスすることができます。

処理済みのRNAseqデータやバーチャルスライドデータなどOpen accessで取得できるものも多いが、ファイルサイズが大きいためブラウザからのダウンロードは不安定である。
コマンドを使ってデータをダウンロードするGDC Data Transfer Toolを紹介する。

GDC Data Transfer Toolのページ下部のGDC Data Transfer Tool ClientからUbuntu用をダウンロードする。

アクセスしやすいようにWSLのホームディレクトリに配置した。

インストール

  1. インストーラーの解凍
unzip gdc-client_v1.6.1_Ubuntu_x64.zip

解凍が終わるとgdc-clientというファイルが1つ作られる。

  1. パスを通す
    ホームディレクトリにあるgdc-clientをWSLで認識可能にするには、ホームディレクトリにパスを通すか、すでにパスが通ったディレクトリに移すか、何通りかやり方がある。
    ここではToolsフォルダを作成し、gdc-clientを移動。Toolsフォルダに永続パスを通すことにした。
# フォルダ作成
mkdir Tools

# ファイル移動
mv gdc-client Tools/

# パスを通す
echo 'export PATH=~/Tools:$PATH' >> .profile

以下でgdc-clientが認識されるか確認しておく。

# .profileを再実行 (Ubuntuを立ち上げなおしてもよい)
. .profile

# 通っているパス一覧
echo $PATH

# gdc-clientのパス確認
which gdc-client

使い方

ユーザーガイドはこちらにある。
https://docs.gdc.cancer.gov/Data_Transfer_Tool/Users_Guide/Getting_Started/

gdc-client downloadの後に、ManifestファイルかファイルIDを指定する。


https://docs.gdc.cancer.gov/Data_Transfer_Tool/Users_Guide/Data_Download_and_Upload/



-mオプションをつけてManifestファイルのパスを指定し、-dオプションで保存先ディレクトリを指定する。
Control accessのファイルでアクセス許可を持っている場合は-tオプションでTOKENファイルの指定ができる。

gdc-client downloadのヘルプ
gdc-client download --help
usage: gdc-client download [-h] [--debug] [--log-file LOG_FILE] [--color_off]
                           [-t TOKEN_FILE] [-d DIR] [-s server]
                           [--no-segment-md5sums] [--no-file-md5sum]
                           [-n N_PROCESSES]
                           [--http-chunk-size HTTP_CHUNK_SIZE]
                           [--save-interval SAVE_INTERVAL] [-k]
                           [--no-related-files] [--no-annotations]
                           [--no-auto-retry] [--retry-amount RETRY_AMOUNT]
                           [--wait-time WAIT_TIME] [--latest] [--config FILE]
                           [-m MANIFEST]
                           [file_id [file_id ...]]

positional arguments:
  file_id               The GDC UUID of the file(s) to download

optional arguments:
  -h, --help            show this help message and exit
  --debug               Enable debug logging. If a failure occurs, the program
                        will stop.
  --log-file LOG_FILE   Save logs to file. Amount logged affected by --debug
  --color_off           Disable colored output
  -t TOKEN_FILE, --token-file TOKEN_FILE
                        GDC API auth token file
  -d DIR, --dir DIR     Directory to download files to. Defaults to current
                        directory
  -s server, --server server
                        The TCP server address server[:port]
  --no-segment-md5sums  Do not calculate inbound segment md5sums and/or do not
                        verify md5sums on restart
  --no-file-md5sum      Do not verify file md5sum after download
  -n N_PROCESSES, --n-processes N_PROCESSES
                        Number of client connections.
  --http-chunk-size HTTP_CHUNK_SIZE, -c HTTP_CHUNK_SIZE
                        Size in bytes of standard HTTP block size.
  --save-interval SAVE_INTERVAL
                        The number of chunks after which to flush state file.
                        A lower save interval will result in more frequent
                        printout but lower performance.
  -k, --no-verify       Perform insecure SSL connection and transfer
  --no-related-files    Do not download related files.
  --no-annotations      Do not download annotations.
  --no-auto-retry       Ask before retrying to download a file
  --retry-amount RETRY_AMOUNT
                        Number of times to retry a download
  --wait-time WAIT_TIME
                        Amount of seconds to wait before retrying
  --latest              Download latest version of a file if it exists
  --config FILE         Path to INI-type config file
  -m MANIFEST, --manifest MANIFEST
                        GDC download manifest file


Manifestファイルの用意

GDC Data Portalからダウンロードしたいファイル情報のManifestを取得する。
https://portal.gdc.cancer.gov/


Repository

RepositoryページのCasesタブ、Filesタブから条件をチェックしていき欲しいファイルだけにしていく。
ここでは以下の条件で1231個のRNAseqデータを得る。

Cases:
	Program:
		TCGA
	Project:
		TCGA-BRCA
		
Files:
	Experimental Strategy:
		STAR-count
	Access:
		Open


Repositoryからファイル選別後

画面右側のManifestボタンからManifestファイルをダウンロードする。

Manifestはファイル名やファイルIDなどが記載されているテキストファイルである。

Manifest.txt


download

Manifestファイルを使ってダウンロードを実行する。

# 出力フォルダ作成
mkdir TCGA-BRCA

# ダウンロード
gdc-client download -d TCGA-BRCA -m gdc_manifest.2023-06-28.txt

以下のようにダウンロードが始まる。Caseごとにダウンロードが実行されていく。

開始直後

Errorが出るCaseもあったが、annotationファイルがダウンロードできなかったとのことで、発現マトリクス自体はダウンロードされていた。(annotationファイルは特に使用しないので--no-annotationsオプションを入れておいてもいいかも)

Max retries exceeded

幾つかのCaseはMax retries exceededのエラーが出ていた。

トラブルシューティングのページによると接続がタイムアウトしているとのこと。


Caseごとにフォルダがあり、その中に目的のファイル(ここでは発現マトリクス)がある。

ダウンロードされたフォルダ


1つのフォルダの中身

1サンプル分の発現マトリクスを見てみると、ヘッダー行が6行、遺伝子ID/遺伝子名、count値/TPM値/FPKM値などが入っていた。

発現マトリクス


ファイルIDをサンプルIDへ変換

ダウンロードされたファイルやフォルダの名前は長いIDが付与されており、サンプルID (患者ID)の情報は付随していない。
この長ったらしいファイル名をサンプルIDへ変換するにはSample sheetファイルが必要となる。こちらもGDC Data Portalから取得できる。

手順

  1. Repository画面で選別したファイルたちを一括でCartへ入れる。Add All Files to Cartを選択。

  2. 右上のCartの箇所にファイル数が表示される。

  3. CartをクリックしてCart内のファイルを扱うページへ移動。

  4. 画面右中央のSample Sheetをクリックしてダウンロードする。

ちなみにManifestファイルはCart画面からダウンロードしてもよい。


Sample sheet

Sample sheetのFile ID列にフォルダ名、File Name列にファイル名が入っている。Sample ID列もあるのでこれを対応表にすれば変換可能である。

Discussion