cBioPortalを自分のMacで動かしてみた

## はじめに

cBioPortalとは、がんゲノム解析のデータをわかりやすく表示してくれるWebアプリケーションです。メモリアル・スローン・ケタリング(Memorial Sloan Kettering)がんセンターの人たちが中心となって開発しています。

一般的にはWebアプリケーションとしてよりも、TCGAやPCAWGのデータを便利に閲覧できるサードーパーティーのツールとして認知されていると思います。

https://www.cbioportal.org/

しかし、cBioPortalは本来は単なるTCGAデータビューアーではありません。たとえば病院、臨床現場で患者さんのデータを表示することも想定して作られています。

## cBioPortalを自分のMacで動かす

公式ドキュメントにやり方が書いてあるので、その通りにやれば動きます。

https://docs.cbioportal.org/

https://docs.cbioportal.org/deployment/

けれども日本語で「やってみて実際にできた」という体験記があると背中を押される人もいるでしょう。何よりも日本語の報が少ない中で少しでもググラビリティに貢献したいので書いていきます。

## 事前準備

- Docker
  - 公式でDockerを用いたデプロイが推奨されているのでDockerを使います。Dockerをインストールしていない人は、Dockerをインストールしてください。

## Quick Start

Macログイン時にDockerが自動で起動しない設定になっている人は、Dockerのアプリをあらかじめ起動しておきます。

```
git clone https://github.com/cBioPortal/cbioportal-docker-compose.git
cd cbioportal-docker-compose
```

```
./init.sh
docker compose up
```

これでcBioPortalが立ち上がります。

`./init.sh` をしたところで、

```
x lgg_ucsf_2014/
x lgg_ucsf_2014/data_timeline_surgery.txt
x lgg_ucsf_2014/data_timeline_treatment.txt
x lgg_ucsf_2014/data_mutations_extended.txt
x lgg_ucsf_2014/data_mutations_mskcc.txt
x lgg_ucsf_2014/data_timeline_specimen.txt
x lgg_ucsf_2014/meta_mutations_extended.txt
x lgg_ucsf_2014/meta_clinical_sample.txt
x lgg_ucsf_2014/data_clinical_patient.txt
x lgg_ucsf_2014/LICENSE
x lgg_ucsf_2014/data_timeline_status.txt
x lgg_ucsf_2014/meta_study.txt
x lgg_ucsf_2014/meta_clinical_patient.txt
x lgg_ucsf_2014/meta_timeline_treatment.txt
x lgg_ucsf_2014/meta_timeline_status.txt
x lgg_ucsf_2014/data_clinical_sample.txt
x lgg_ucsf_2014/case_lists/
x lgg_ucsf_2014/case_lists/cases_all.txt
x lgg_ucsf_2014/case_lists/cases_sequenced.txt
x lgg_ucsf_2014/meta_timeline_specimen.txt
x lgg_ucsf_2014/meta_timeline_surgery.txt
```

とxが並んで心配になりますが、これで問題ないようです。

これでcBioPortalが起動します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/4debe9ef-f6af-cbf6-cbda-f837ca991f4d.png)

うまくいかない場合は、

```
docker compose down -v
```

としてやり直すとうまくいくことがあります。

次に標準で添付されている低悪性度神経膠腫(Low Grade Glioma）のデータを読み込みます。ターミナルで新しいタブを開き、`cbioportal-docker-compose` に移動して

```
docker compose run cbioportal metaImport.py -u http://cbioportal:8080 -s study/lgg_ucsf_2014/ -o
```

と打ち込みます。これで先ほどの `./init.sh` で `study` ディレクトリに保存したデータが読み込まれます。

![cBioPortalにlgg_ucsf_2014のデータが読み込まれる](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/b1d7cf7c-0eb1-c2bf-a41b-d9ee4569fff0.png)

これで臨床情報が閲覧できるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/8053ff1a-b4be-2372-d32e-efe2de6ac9fd.png)

「Query By Gene」を実行してみます。

![貼り付けた画像_2023_10_05_11_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/c02c044a-5cf3-6ea1-be16-1424110f54fb.png)

cBioPortalのOncoPrintが表示されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/b733c58e-6792-3795-a5fd-6928f987df74.png)

## データセットを追加する

これだけだと寂しいと思うので、データセットを追加してみましょう。TCGAなど、Web版のcBioPortalで閲覧できるデータセットは、先ほどの `./init.sh` スクリプトを使ってダウンロードすることができます。環境変数 `DATAHUB_STUDIES` に、ダウンロードしたいスタディを設定して、`init.sh` を走らせます。

cBioPortalのデータを管理しているリポジトリがGitHub上にあります。

https://github.com/cBioPortal/datahub

ここの、publicというディレクトリを見て、`DATAHUB_STUDIES` にセットするスタディを選びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/f4a2cb81-7be8-1112-cbbf-22581c0dae44.png)

TCGAの癌腫の略語がよくわからない人はこちらを見てください。

https://gdc.cancer.gov/resources-tcga-users/tcga-code-tables/tcga-study-abbreviations

今回は、胃がん（STAD：Stomach adenocarcinoma）をダウンロードします。

```
DATAHUB_STUDIES=stad_tcga ./init.sh
```

ダウンロードには少し時間がかかると思います。しかし、fastqやbamなどをダウンロードするわけではないので、10分程度で終わることが多いと思います。

データを読み込みます。この行程には数分かかります。

```
docker compose run cbioportal metaImport.py -u http://cbioportal:8080 -s study/stad_tcga/ -o
```

データの読み込みが終わったら、webコンテナを再起動します。

```
docker compose restart cbioportal
```

![貼り付けた画像_2023_10_05_12_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/5525d555-ae22-f213-9a26-c0e9b5da02d3.png)

今回のデータセットはコピーナンバーの情報も含んでいます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/5b1bf44b-ae6d-04eb-1248-736983efe7ea.png)

Cell Cycle の遺伝子について、OncoPrintを表示したところ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/d23b2adc-3bf3-23aa-ea50-f23a479f4870.png)

lollipopプロットもわかりやすく表示できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/e9c8f987-3594-1b8a-69bd-ab21ba1fab29.png)

こんな感じでパスウェイもわかりやすく表示してくれるようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/2e2a6f6e-b556-dfc1-d0fe-fc77b2027c2c.png)

生存曲線も見ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/db8e1c1a-e814-3c41-1a07-ffea17cf1e54.png)

## 自前のデータを読み込みこみたい

さて、ここまできたら、次にやりたいことは、自前のデータの読み込みだと思います。
まずは、ダウンロードしたSTADのデータをチェックしましょう。`study/stad_tcga` ディレクトリの内容を見ると、次のようになっています。

![stad_tcga.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/004d1baf-3767-1e1d-a993-61e041ff4587.png)

膨大なデータでありますが、すべてテキストファイル、それもタブ区切りテキストファイルとなっていることがわかります。つまり、自前のデータを整形したタブ区切りテキストファイルにすれば、cBioPortalを用いて閲覧できるようになるはずです。

まだ試していませんが、うまくいったらまたQiitaに記録を書くかも知れません。

## 追記

今回調べていたら、cBioPortalの商用サポート（コンサルティング、導入、データロード、実装、トレーニング）を行っている企業があることがわかりました。本社はオランダのユトレヒトにあるようです。

https://thehyve.nl/

世界はさすがだなあ。

この記事は、以上です。