News

TOOLBOX: 皆で育てるデータベースで科学を促進

Credit: ILLUSTRATION BY THE PROJECT TWINS

2014年7月、西アフリカでエボラ出血熱の流行が加速してきたとき、バージニア州立理工科大学(米国ブラックスバーグ)の博士課程学生で計算疫学を専攻していたCaitlin Riversは、流行の広がりをモデル化するため、感染者のデータを収集し始めた。彼女は毎日、ウイルス感染者が出た国々の保健省が発表するPDFの更新分をダウンロードし、その数字をコンピューターで読み取り可能な表へと変換した。彼女はこのファイルを独占せずに、GitHub.comに投稿した。GitHub.comは、ソフトウエアコードの共同開発者たちの間で絶大な人気を誇るウェブサイトで、ここに投稿すれば、エボラ出血熱の流行に関する最新情報に興味を持つ人々の目に留まるだろうと考えたからだ。「私に必要だったのですから、他の人々も必要としているだろうと思ったのです」と彼女は言う。

Riversの読みは正しかった。早速、他の研究者たちがデータをダウンロードし、プロジェクトに貢献し始めた。誰かが彼女より先に保健省のデータをダウンロードして変換し、GitHubのリポジトリにロードする日もあった。日々の患者数データの簡単なエラーチェックを行うスクリプトを作った人もいた。現在は米国陸軍公衆衛生センター(米国メリーランド州エッジウッド)の疫学者であるRiversは、当時はGitHubが「インターネット上でこれらのデータをPDFではなくデータとして扱うことができる、唯一無二の場所」だったと言う。

GitHubの影響の拡大
参考文献でGitHub上のプロジェクトを引用する研究論文の割合は増加傾向にある。 Credit: RICHARD VAN NOORDEN/SOURCE: ELSEVIER SCOPUS DATABASE

ソフトウエア開発者を補助するために2008年に立ち上げられたGitHubは、2016年10月時点で約1500万人(2018年5月時点では2700万人)のユーザー数を誇り、科学者がデータとコードを共有・維持・更新するためのサイトとしてますます人気が高まっている(「GitHubの影響の拡大」参照)。マッコーリー大学(オーストラリア・シドニー)のポスドク研究員である生態学者Daniel Falsterは、「GitHubを使い始めると、その素晴らしさに驚きました。今では、何をするにもGitHubを利用しています」と言う。彼は、植物の大きさに関するさまざまな測定値を176の研究から集めたBiomass and Allometry Databaseや、これまでに論文として出版されたさまざまな系統樹をまとめて1つの「生命の木」を構築しようとするOpen Tree of Lifeプロジェクトのデータもここに格納している。後者のプロジェクトでは、データファイルと出版記録を格納し、第三者から新しいデータを受け入れるのにGitHubを利用している。

データを共有するためのウェブサイトは多いが、GitHubは、コードやデータに加えられた全ての変更を追跡するバージョン管理ソフトウエアを用いており、透明性のあるオープンな共同プロジェクトのために特別に設計されたものである。GitHubを利用することで、1つのプロジェクトに参加する大勢の分散したプログラマーがオンラインで共同作業をすることができ、ユーザーはファイルのバージョン履歴をさかのぼって、それぞれの変更や、変更が加えられた時期や、誰が何のために変更を加えたかを確認することができる。プログラマーはリポジトリをコピーして(この操作を「フォーク」という)、新しいアイデアを試すことができる。便利な変更はメインのプロジェクトに反映させることができるし、そうでない変更は無視したり、前の状態に戻したりすることができる。

例えば、GitHub上にあるOpen Exoplanet Catalogueは、これまでに発見された数千個の太陽系外惑星のデータベースで、現在も拡大し続けている。このデータベースは誰でも訪問することができ、ブラウザから情報を投稿することができる。Open Tree of Lifeと同様、Open Exoplanet CatalogueプロジェクトのメインサイトのURLアドレスにはGitHub.comが入っていないため、偶然訪れただけの人は自分が分散型バージョン管理システムとやりとりしていると気付かないこともあるだろうが、知識のあるユーザーは、GitHubのリポジトリからファイルを自由に入手することができる。誰かが編集をすると、プロジェクトの開発者であるトロント大学(カナダ)の天体物理学者Hanno Reinらに対して、提案された変更について検討するようアラートが行く。GitHubは、どのユーザーでも変更を提案できるだけでなく、データの特定のバージョンをカスタマイズして独自の仕様にできる点でも、第三者が変更できないタイプのオンラインカタログよりも「はるかに民主的なシステム」を可能にするとReinは言う。2016年10月時点で、約100人がOpen Exoplanet Catalogueプロジェクトのリポジトリをフォークしていて(2018年5月時点のフォーク数は180)、Reinが開発した、同じデータベースを利用するスマートフォンアプリExoplanetは約1000万回ダウンロードされている。

始まりはLinux

GitHubはGit(ギット)というソフトウエアツールを利用している。Gitは、リーナス・トーバルズ(Linus Torvalds)というプログラマーによって2005年に作られた。その目的は、オープンソースOSであるLinuxを数千人のプログラマーが独立に関与して開発するという、巨大なプロジェクトを管理するためであった。GitHub社(米国ワシントン州シアトル)のプログラムマネジャーArfon Smithは、「Gitは、ソースコードの変更を1行ずつきめ細かく監視するために設計された技術です」と言う。バージョン管理ソフトウエアには他にMercurialなどがあるが、Gitは最も人気のあるものの1つだ。

多くのプログラマーが自分のコンピューター上でGitを使っている。イリノイ大学アーバナ・シャンペーン校(米国)の原子核工学者Katy Huffは、コードを書く科学者にとって、このツールは科学計算のための実験ノートのようなものだと言う。実験ノートと同じように、Gitは出来事を半永久的に記録する。ただし、Gitのシンタックスとワークフローは分かりにくいことで知られる。

GitHubのブラウザインターフェースはこれより見やすく、初心者でも利用しやすい。サイトでは数百万のプロジェクトがホストされていて、個人的なプロジェクトもあれば巨大な共同プロジェクトもあり、オープンソースプロジェクトは無料で利用できる(ユーザーや組織は月額7ドル~でファイルをプライベートにしておくことができる。これに似たサービスにBitbucketがあり、やはりGitで動くが、パブリックリポジトリと5人までのプライベートリポジトリは無料で無制限に使える。これより大きい共同プロジェクトの利用料金は月額10ドル~だ)。

Gitソフトウエアではうまく扱えないデータもある。このツールはファイルがどのように変更されたかを1行ずつ記録しているため、ソースコード、XMLファイル、MarkdownやLaTeXで書いた原稿、CSVファイルなどのテキストファイルは問題なく扱える。しかし、Microsoft Officeの文書や画像など、人間に読めない「バイナリ」ファイルの変更を追跡するのは苦手である。プログラムの差分機能(ファイルがバージョンごとにどのように変更されたかを識別する機能)が、そうしたデータを解釈できないからである。

GitHubにはファイルサイズ制限もあり、1ファイル当たり100MBで、1リポジトリ当たり1GBまでである(Large File Storageというプラグインを使うとGitやGitHubで大きなファイルを扱いやすくなる)。

速さと柔軟さ

GitHubは、Riversのエボラウイルスプロジェクトのように、比較的小さいテキストベースのデータを頻繁に更新・キュレーション・維持する科学者グループに向いている。バーミンガム大学(英国)の微生物ゲノミクス研究者でバイオインフォマティクス研究者でもあるNick Lomanも、病原体研究の速度を速めるためにこのサイトを駆使している。Lomanは現在ブラジルで進められているZiBRA(Zika in Brazil Real Time Analysis)プロジェクトのメンバーだ。このプロジェクトはジカウイルスを監視するための取り組みで、ブラジル全土からウイルス試料を集め、塩基配列を決定し、リアルタイムで解析する。Lomanの説明によると、通常、ウイルスの塩基配列データはGenBankなどのアーカイブに登録され、ジカウイルスの塩基配列データもGenBankに送られるという。GenBankのようなサイトはデータを公開するまでには時間がかかるのに対し、GitHubはドラフト配列データを、より速く、より柔軟に広めることができる。ちょうど、研究から得られた知見について出版する前にTwitterでつぶやくようなものだ。

Smithによると、GitHub上のデータは作者らによって変更されたり削除されたりすることがあるため、そのサイトが恒久的に引用可能なアーカイブである保証はないという。特定の時点(例えば論文出版時)のデータを長期的、恒久的に記録したい人は、そのバージョンのデータをZenodoやFigshareなどの科学者専用リポジトリサイトに格納することを考えるべきだ。どちらのサイトも、GitHubユーザーが自分のリポジトリのスナップショットをアーカイブできるようにしていて、そのデータについて引用できるデジタルオブジェクト識別子(DOI)を発行している。Smithによると、約8000人のGitHubユーザーがこのようにしているという。

もう1つのデータ共有オプションはDatである。これは、異なるコンピューター間でデータを共有し、同期するための汎用ツールだ。Datのリードプログラマーで米国オレゴン州ポートランド在住のMax Ogdenによると、DatはGitと同じようなやり方で共同作業のバージョニングを提供するが、データファイルを分散させるためのピア・ツー・ピアのファイル共有システムも含んでいるという。また、Datは大きいバイナリファイルの扱いが得意であるという。こうしたファイルは分割していくつもの塊にし、変更された塊だけを転送しているからだ。

データ共有はオープンサイエンスの主要な要請であり、研究者は自身が希望する場所でデータを共有することができる。GitやGitHubの使い方を覚えたい研究者のために、多くのオンラインリソースがある。Codecademyは無料のインタラクティブチュートリアルを提供しているし、GitHubにもある(try.github.io)。研究者にコンピューティングスキルを教えるサイトSoftware Carpentryの設立者であるGreg Wilsonも、2016年1月にハウツーガイドを共同執筆している(J. D. Blischak et al. PLoS Comput. Biol. 12, e1004668;2016)。また、プログラマーやバイオインフォマティクス研究者の多くがGitを使っているので、彼らに助けてもらうのもよいだろう。しかし、データを扱う研究者の訓練を行う非営利団体Data Carpentryの事務局長Tracy Tealは、科学者はGitHub.comなしでもGitやそれに相当するツールを使ってデータやデータ処理スクリプトの変更を記録することを考えるべきだと言う。

GitやGitHubの使い方を身につけるのは容易ではないが、科学者の間には忠実なファンが少なくない。Open Tree of Lifeプロジェクトのメンバーであるカリフォルニア大学マーセド校(米国)の進化生物学者Emily Jane McTavishは、GitHubはなくてはならないリソースだと言い切る。「これなしでどうやって生きてきたのか分からないほどです」。

翻訳:三枝小夜子

Nature ダイジェスト Vol. 15 No. 6

DOI: 10.1038/ndigest.2018.180629

原文

Science on GitHub
  • Nature (2016-10-03) | DOI: 10.1038/538127a
  • Jeffrey Perkel