ワークフロー言語を紹介したNatureの記事を読んでみた

NatureのTOOLBOXというコーナーに今週、ワークフロー言語に関する記事が載っていた。以下に、記事を読んだ内容に基づき、自分が重要だと思った点を(かなり意訳・改変して)まとめてみた。

ワークフロー言語とは

データ解析パイプラインは、生データを科学知識に変換するためにデザインされた計算ステップ群である。データ解析パイプラインを共有することができれば、別のグループのパイプラインを自分のデータに適用して研究を進めたり、科学研究の再現性を担保することにつながる。

しかし、データ解析パイプラインを共有する際にはいくつか問題点がある。まず、パイプラインは一般にステップ数が多く、各ステップのドキュメント化も大変であること。また、様々な言語を使って書かれていること。さらに、計算機のインフラ、計算リソース、ファイルツリーに依存していることが多く、研究室やサーバーの外に出せないという点が挙げられる。

これらの問題を解決するのがワークフロー言語(Workflow languages)である。ワークフロー言語は単一の言語でなく、以下の特徴の多くを有するワークフロー記述系および実行系を指す。

1. 数百から数千のデータファイルを扱える
2. 進捗の監視やエラー処理も行う
3. re-entrancy(前回の実行時に止まったステップから再実行できる)
4. スケーラビリティがある(ラップトップで実行していたパイプラインをクラスター計算機やクラウドでそのまま実行するなど)
5. ステップごとに計算機環境を指定できる(例:Condaなどのパッケージ管理ツール、Dockerなどのコンテナシステム)
6. ワークフロー実行のレポートを生成できる

Common Workflow Language

ワークフロー言語はすでに数百ある。数多のワークフロー言語の間でパイプラインを共有する仕組みとしてCommon Workflow Language (CWL)が開発されている。

CWLはパイプラインを記述する様々なシステム間でパイプラインを共有するための交換言語であり、現在、SnakemakeやGalaxy など250以上のシステムに対応している(本文にはNextflowも例として書かれていたが、NextflowはCWLと連携をしなくなって久しい)。また、CWLはテスト、実行(クラウド上での実行も含む)、共有が楽に行える。

CWLの開発者たちはワークフローの記述系と実行系を分離して捉え、「CWLはあくまでワークフロー言語の標準化のみを目指す」という立場を取っているのも特徴である。

ワークフローの標準化・共有

ワークフロー言語はワークフローを記述することに特化しているため(スクリプト言語に比べると)標準化がされやすい。また、パイプラインの各ステップを用意して、それをユーザがブロック遊びのように組み合わせるようにさせるという工夫もある。例として、Broad Instituteが開発したCromwell workflow system とWDL(Workflow Definition Language) が紹介されている。

ワークフローの共有・公開も重要なトピックである。Broad InstituteはWDLベースのGATKのワークフローを科学向けのコンテナ/ワークフローレポジトリであるDockstoreで公開している。また、別のグループはワークフローの共有を目的に、ワークフロー自体をコンテナ化して提供した論文がすでに出版されている。他にも、Nextflowで書かれたバイオインフォマティクスパイプラインのレポジトリであるnf-coreなどワークフローを共有するためのプラットフォームも整備されつつある。

終わりに

ワークフロー言語はどうしても学習コストがかかる。それでも学習コストに見合う見返りがあるという希望に満ちた引用をして終える。

There is a learning curve to adopting workflow languages. But, says Brian Naughton, data lead and co-founder of the drug-discovery firm Hexagon Bio in Menlo Park, California, “the energy that you expend learning is more than made up for by the energy you save in having your code be reproducible.”
Fortunately, says Ewels, the languages are easy to pick up, and examples are abundant. “Once you’re familiar with it, you get in the habit of using it,” he says. “And then you wonder how you ever lived without it.”


この記事が気に入ったらサポートをしてみませんか?