Galaxy - GUIベースのワークフローシステム

Galaxyとは

Galaxyは、プログラミングに長けていないユーザーでもバイオインフォマティクス解析のパイプラインを構築できるように作られたOSS(Academic Free License)です。世界中のユーザーから構成されるコミュニティによって維持されており、ヘルプページトレーニングコンテンツが充実している他、定期的に国際的なイベントが開かれています。

今や7,000を超えるツール、10,000を超える引用数を誇り、有力なワークフローシステムの1つであることは間違いありません。

snakemake、Airflowなど、数あるワークフローシステムの中でもGUIに特化しており、直感的にパイプラインを組むことができます。
小難しいコマンドを覚える必要なくバイオインフォマティクスの解析を実行できることから、教育コンテンツとしても利用されることが多いようです。

参考:慶應義塾大学理工学部生命情報学科「生命情報実験A」(情報系課題)

Galaxyの使い方

細かい使用法に関しては、説明するよりGalaxy Trainingという教育コンテンツに含まれる下記の動画を見て頂くのが早いかと思います。

training.galaxyproject.org

動画を見て頂くとわかる通り、プログラミングの経験がないユーザーでも、データのアップロード/取得、複雑なツールやワークフローの実行、データの視覚化を再現性と透過性を持って簡単に行うことができます。

様々なGalaxyサーバー

Galaxyを使用するにはローカルにインストールする他、すでに構築された公開されているWebサーバーを使用することもできます。公開されているサーバは、アカウントを作成するのみで使用できるため、面倒な環境構築抜きにちょっと解析を回してみたい等の用途にピッタリです。

f:id:kimoppy126:20201108212313p:plain 下記リンクのダッシュボードから、現在利用することのできるGalaxyサーバを確認することができます。大別すると、無料で利用可能な公開サーバ、クラウドベースの商用サーバ、独自のサーバに簡単にデプロイできる仮想マシン・コンテナに分けられます。
現時点で160以上のGalaxyサーバ(120以上の公開サーバ)が利用可能です。

参考:Galaxy Platform Directory: Servers, Clouds, and Deployable Resources

公開サーバ

研究者であれば無料で使うことのできるサーバです。中でもUseGalaxy.*という名前のUseGalaxyサーバは、十分な計算リソースに支えられている他、一般的に用いられるツールとリファレンスゲノムが実装されています。Galaxy に入門する際はこのサーバーを用いると良いでしょう。
例えば usegalaxy.org では、10万人を超える登録ユーザーがおり、Texas Advanced Computing Center(TACC)の重要な計算リソースによってサポートされています。

その他の公開サーバとしては下記のようなものが挙げられます(タイトルがリンクになってます)。

NanoGalaxy

Oxford Nanopore Technologies(ONT)データおよび同様のロングリードを処理、分析、および視覚化するためのサーバです。PorechopMinimap2Nanoplot等、ONTデータの処理に有用なツールが含まれます。

Human Cell Atlas Galaxy

Human Cell Atlasに関連するシングルセルRNA-Seqデータを分析するための分析ツールとワークフローで構成されているサーバです。ScanpySC3Scater、およびSeuratなど、シングルセル関連のツールが含まれます。

商用サーバ

AWSなど、クラウドプロバイダーを利用した商用のサーバです。
Galaxyコミュニティが開発しているCloudLaunchというツールによってサポートされています。公開サーバでは各アカウントのリソース使用量の上限が設定されている場合があります。商用サーバでは、クラウドの利用料を支払う必要がありますが、簡単に環境構築が可能なことやマシンリソースを自由に設定できるカスタマイズ性の高さがメリットとして挙げられます。

CloudLaunchで使用可能な商用サーバはここから確認できます。

G-OnRamp

真核生物のゲノムアノテーションのためのGalaxyサーバです。VM版もあります。

コンテナ

コンテナを利用すると、ローカルで同様の環境を構築することができます。

Galaxy BLAST+

GalaxyでBLAST+を利用するためのコンテナです。Docker Hubでホストされています。

Galaxy Imaging

Galaxyで画像解析を行うためのコンテナです。Docker Hubでホストされています。

仮想マシン

仮想マシンを提供しているコミュニティもあります。

PiRATE

Galaxyで転移因子を取得して注釈を付けるためのパイプラインを実行するためのVMイメージを論文のデータとして提供しています。

Galaxyの用途

Galaxyはどのような用途に向いているのでしょうか。
個人的には、大きく下記の用途が考えられるのではないかと思いました。

  1. dryの解析をできる人が少ない環境における解析プラットフォーム
  2. バイオインフォマティクスを指導する際の教育コンテンツ

1. dryの解析をできる人が少ない環境における解析プラットフォーム

自分は解析ができる一方、周囲の人の大半が解析できない場合です。

このような場合、周囲の人から様々なパラメータで解析を回したいという要望が出てくるかと思いますが、いちいち対応していられません。
各自で自由にパラメータを設定してツールを実行できる環境を整えたい!という場合にGalaxyは最適解かと思います。実行に使用したツールのバージョン・各種ログ等もきちんと管理されるため、運用の手間が省けること間違いなしです。

2. バイオインフォマティクスを指導する際の教育コンテンツ

プログラミングではなく、バイオインフォマティクスの知識に焦点を当てたコンテンツとして、バイオインフォマティクス関連の授業で使用する用途にはかなりフィットするのではないでしょうか。
ブラウザ実行型かつ環境による差異が生まれないことから、円滑に分析を試してもらうことができそうです。

Galaxyでは、Galaxy Trainingという教育コンテンツが提供されています。

Galaxy Trainingでは、世界中のGalaxyコミュニティによって開発および保守されているチュートリアル、スライド、および演習が公開されています。

単純なGalaxyの使い方にとどまらず、メタゲノム・プロテオミクス・トランスクリプトミクス・配列解析・世界の天気情報の可視化などなど、多岐に渡るコンテンツが無料で公開されています。
どれも完成度が高く、面倒な環境構築抜きにバイオインフォマティクスの知識を身に着けることができます。

COVID-19に関する分析例も公開されているので必見です。

training.galaxyproject.org

Galaxy実践編

それでは実際に手を動かしてみましょう。
下記では環境構築と簡単な動作確認を行います。Galaxyの実力はこんなものではないので深掘りたい方は自作ツールの作成なども行ってみると面白いかもしれません。

Galaxy環境をDockerで構築

まずはGalaxy環境をDockerで構築してみます。
勿論こんな事せずとも上記で紹介したusegalaxy.orgをはじめとする公開サーバを使用することでGalaxyを利用することはできますが、ローカルで環境を構築することで、導入するツールやセクションの切り方など色々とカスタマイズが効くためラボ導入の際は是非dockerで環境を作ることを推奨します。

1. Dockerをインストール

色々なところで紹介されているので参照してください。

参考:Docker のインストール

2. Dockerコンテナを起動

# データ格納用のディレクトリを作成
$ mkdir galaxy_storage

# Dockerイメージを起動
$ docker run -d -p 8080:80 -p 8021:21 -p 8022:22 -v ./galaxy_storage:/export bgruening/galaxy-stable 
  • -p は、各種ポートのポートフォワーディングを指定しています。ホストのポート8080番でコンテナー内のポート80番にアクセスできるようにします。また、8021・8022番ポートはそれぞれFTPまたはSFTPプロトコルを介してデータを転送するために使用しています。
  • -d は、Dockerコンテナをデーモンモードで起動することを意味しています。
  • -v は、マウントするディレクトリを指定しています。Dockerイメージは「読み取り専用」であり、1つのセッション内のすべての変更は再起動後に失われます。データを保存するには、計算されたデータをホストコンピューターにエクスポートする必要があります。このDockerイメージでは、コンテナ内の各種データは/export以下に保存されるため、ホストのディレクトリ(./galaxy_storage)をマウントしてあげることでコンテナ内のデータを永続化しています。

3. URLにアクセス

http://localhost:8080/ にアクセスしましょう。正しくコンテナが起動できていれば、Galaxyのトップページが表示されるはずです。

4. ログイン

Users & Passwordsに記載がある通り、デフォルトの管理者ユーザ名・管理者パスワードは下記の通りとなっています。ツールの追加などには管理者でのログインが必要となるため、この情報を用いてログインしましょう。

user_name: admin@galaxy.org
password: password

Galaxyを用いた解析例

Galaxy Training の1コンテンツであるA short introduction to Galaxyに沿って、簡単にGalaxyを使用する例を見ていきましょう。
やることは至って単純、データを取得してFastQCをかけるのみです。

0. Galaxy画面構成について

Galaxyのトップページは3つのパネルに分かれています。
左側のToolsパネル、中央のMainパネル 右側のHistoryパネルに別れます。

1. ツールの追加

ナビゲーションバーから「管理者」を選択し、サイドバーの「Install and Uninstall」を選択します。

QCというセクションを新たに作成して、その中にFastQCをインストールします。

2. データのダウンロード

今回はあるURLで公開されているテスト用のデータ(fastq)を用います。 トップぺージに戻り、Toolsパネルの右上「Download from URL or upload files from disk」から「Paste/Fetch data」をクリックし、下記のファイルパスを入力します。

https://zenodo.org/record/582600/files/mutant_R1.fastq

「Start」をクリックすることで、ダウンロードが始まります。

3. ダウンロードしたデータを確認

ダウンロードしたデータは、Historyパネルに追加されます。
目のアイコンをクリックすることで、データの詳細をMainパネルで確認することができます。

4. FasQCを実行

Toolsパネルで「FastQC」を検索し、クリックします。
「Short read data from your current history」に先ほどダウンロードしたデータを選択し、「Execute」をクリックします。

Historyパネルの「2. FastQC on data 1: Webpage」にHTML形式のレポートが出力されます。目のアイコンをクリックすることで、Mainパネルでレポートを確認することができます。

終わりに

Galaxy環境をローカルPCに構築し、FastQCを実行する例を見てみました。

日本でも一時的に盛り上がりを見せたものの(Galaxyアドベントカレンダーができたことも)、最近あまり名を聞かなくなった気がします。

qiita.com

最近はREST APIが用意されたことにより、ワークフローシステムとしての有用性はさらに高まりました。強力なGalaxyコミュニティの力により、今後も益々発展していくことが期待されます。