【ツール解説】バイオロジー研究を Git で管理する方法

論文タイトル

GitHub is an effective platform for collaborative and reproducible laboratory research

出典

GitHub is an effective platform for collaborative and reproducible laboratory research
Laboratory research is a complex, collaborative process that involves several stages, including hypothesis formulation, experimental design, data generation and...

要旨

Git を活用した生物工学研究プロジェクトのマネジメント手法を解説した論文です。

解説など

本論文は、研究環境の整備に関する提言です。筆者らはプロジェクトマネジメントツールに Git を使うことを推奨しています。

汎用的なプロジェクトマネジメント用ソフトウェアの役割としては、スケジュールやタスクの統合管理や資料保管が主ですが、生物研究を対象にすると実験計画や記録、データ保管、データ解析ツールの開発などニーズは多岐にわたります。

通常は各目的に特化したソフトウェアが市販化され、それを使用するケースが多いと思いますが、情報を統合することまで考慮すると利用するソフトウェアが増えることは望ましくありません。マイクロソフトのように、ソフトウェアはニーズに特化させながら、Office プラットフォーム(アカウントやクラウド)を利用して情報を統合するという方法もありますが、やはり電子ノート機能やプログラムコードの共有・共同開発など専門的な使い方を望むと限界があります。

Git は一般に、エンジニアのコード共有・共同開発に利用されるバージョン管理システムとして広く認知されていますが、そのほかにも多様な用途で活用されています。例えば、以下のページでは、タンパク質科学に関わる文献を整理して共有されています。

GitHub - Peldom/papers_for_protein_design_using_DL: List of papers about Proteins Design using Deep Learning
List of papers about Proteins Design using Deep Learning - Peldom/papers_for_protein_design_using_DL
GitHub - yangkky/Machine-learning-for-proteins: Listing of papers about machine learning for proteins.
Listing of papers about machine learning for proteins. - GitHub - yangkky/Machine-learning-for-proteins: Listing of papers about machine learning for proteins.

Git には当然リポジトリとしてファイルを格納できる機能はありますし、Wiki などの情報共有スペースや Issues を通じた関係者とのコミュニケーションもできます。この機能をフルに活用してプロジェクトマネジメントに活用する具体的な方法論をこの論文では紹介しています。

百聞は一見にしかずで、デモページが作成されていますので詳細はこちらをご覧ください。

GitHub - rasilab/github_demo: Demo GitHub repo for laboratory research
Demo GitHub repo for laboratory research. Contribute to rasilab/github_demo development by creating an account on GitHub.

まずリポジトリはプロジェクト単位で作成します。そのプロジェクトの関係者はそのリポジトリを共用で使うことになります。ファイルディレクトリは最上位の階層に、 ”experiments”、”manuscripts”、”presentations” など大目的ごとに分類され、それぞれのフォルダの下はプロジェクトメンバー用のディレクトリに分類されています。基本的にデータもこちらに保管しますが、大規模データに関しては S3 などのクラウドサーバーに保管することもあるそうです。

ドキュメントは基本的に Markdown で記述します。また図や画像などは SVG フォーマットで作成します。これにより PDB や PPTX など任意のファイル形式への変換が容易になります。

コミュニケーションは Issues を利用して行います。各 Issues には自動的に番号が振られ、さらに自由にラベルを付与することができますので、この番号・ラベルに各情報を紐づけることでデータ連携や Issue の検索が楽になります。また用途別に Issue の鋳型フォーマットを作成しておくことで、可読性も増します。

ここまでの内容で感じたこととしては、Markdown 形式のドキュメンテーションが、非 Git ユーザーにどれくらい受け入れられるかが運用上の課題であると感じました。