Slack,zoom,Google Drive,esa,GitHub…
尾崎 遼
「実験医学」2019年9月号掲載「厳選!ラボ活性化ツール」(尾崎 遼)では,ラボで使えるメッセンジャー,ビデオ会議,スケジュール共有などの多彩なデジタルツールをご紹介いただきました.昨今のリモートワーク推進の情勢を受け,読者のみなさまに本記事の内容をお役立ていただけることを期待して,この度,ウェブ記事として公開させていただきます.ご活用いただけましたら幸いです.(誌面に掲載の内容をもとに,ビデオ会議ツール「appear.in」の紹介を「zoom」に更新しています)
(編集部)
「メールではなかなか連絡をくれない,電話も繋がらないラボメンバーが,メッセンジャーではすぐ返信をくれた」「共同研究者にSkypeで会議しようと持ちかけられたが,どうすれば良いのかわからず取り残されてしまった」…生命科学と同じく,デジタルツールは日々進化し,そのあり方は大きく変化しています.コミュニケーションにしても,マネジメントにおいても,昨日はもっとも適切だった方法が,今日も変わらず最適とはいえないかも知れません.特に昨今,個人の努力を超えた部分で,情報共有のスピード,チームワークが不可欠な研究においては,ツールの扱いの巧拙がプロジェクトの成否を分けるシチュエーションも少なくないのではないでしょうか? 今回の「いま知りたい!!」では,バイオインフォマティクスの研究室を主宰し,多様なデジタルツールを活用する尾崎 遼先生(筑波大学)に,ラボを「活性化する」ツールを厳選してご紹介いただきました.「Slack」「GitHub」聞いたことはあるけど何なのだろう,と思っている方もぜひご一読ください.(編集部)
研究室は研究のためのコミュニティであり,複数のメンバーが連携することで単独の研究者ではできないスケールとスピードでの研究を可能にします.研究室では,個々のメンバーによって実験やデータ解析,ディスカッション,文献調査や論文執筆といった研究活動が行われます.加えて,狭義の研究以外の活動も行われます.例えば,ラボセミナー,技術の伝達,ノウハウの伝達といった教育要素の強いタスクがそれに当てはまります.また,種々の手続きに必要な書類の作成,試薬や物品の注文や伝票処理といった研究を円滑に進めるための事務作業があります.さらに,予定のすり合わせ,さまざまなイベント(法定停電など)への対応といった仕事もあります.研究室が組織におけるコミュニティである以上,このような研究以外のタスクが発生することに避けようはありません.しかし,近年の組織や情報の高度化に伴い,これらの雑務がしばしば本来の目的(研究)を圧迫するほどに肥大していることは,皆さんご存知の通りです.時間は有限であるため,これら研究および研究以外のさまざまなタスクを効率化させることができると,研究室の活性化や生産性向上につながるに違いありません.
それではこのようなタスクに,皆さんはどう対処されているでしょうか.昔ながらの方法(口頭,文書,電子メール,Microsoft Office)で共有・処理されているかもしれません.一方で,最近では個人やビジネス向けに開発されたさまざまな新しいデジタルツールがあります.これらのデジタルツールを活用することで,タスク処理を効率化し,ひいては研究時間を増やしたり,研究室内のコミュニケーションの健全化・活性化が期待できます.
本稿では,研究室で使えるデジタルツールを,連絡手段,遠隔会議,個人的なドキュメント,共用ドキュメント,再現性担保というジャンルごとに紹介します.筆者は2018年6月からドライのみのバイオインフォマティクスの研究室を立ち上げました.本稿は,2019年4月からメンバーが急に増えたという状況下において,さまざまなデジタルツールを研究室に導入し運用した経験に基づいて書かれています.弊研究室はウェット実験の設備をもたないドライの研究室であるため,やや偏りはあるかもしれませんが,研究室での諸活動がウェット実験だけではない以上,皆さんの研究室生活の参考になるはずです.
研究室が複数の人間で構成されている以上,何らかの手段で互いにやりとりする必要があります.対面での会話やミーティングは,てっとり早く意思疎通できる点で第一の選択肢ではありますが,メンバーごとに忙しい時間帯が異なると,時間を確保するのが難しいこともあります.そこで,目の前にいない相手との非同期的なコミュニケーション手段が重要となります.
非同期的なコミュニケーション手段としては電子メールやメーリングリストが伝統的ですが,他のメールに埋もれたり,(ビジネスマナーの過度の重視により)気軽には使いづらいといった問題があります.SNS(social networking service)をラボメンバー間で使う方法もありますが,LINEやFacebook messengerではプロジェクトやテーマごとに「部屋」をつくりづらく,研究という目的にはちょっと使いにくい印象です.
非同期的なコミュニケーションを円滑に進めるために,われわれの研究室ではSlack(スラック,図1,https://slack.com/)というチャットサービスを活用しています.Slackはウェブブラウザでも,デスクトップやスマートフォンのアプリケーションとしても使えるので,複数の機器をまたいで移動中などにも気軽にコミュニケーションをとることができます.
Slackでは,固有の名前をもったワークスペースを作成できます.ワークスペースはラボ単位でつくるとよいでしょう.1つのワークスペースのなかで,複数のチャンネルをつくることができます.チャンネルはメンバーがメッセージを投稿する「部屋」です.チャンネルごとにどのユーザーがメンバーになるかを自由に設定できるので,居室関連の連絡用に全員がメンバーであるチャンネルをつくったり,研究プロジェクトごとのメンバーが集まるチャンネルなどを作っています.例えば,研究プロジェクト用のチャンネルでは,プロジェクトに関係がありそうな論文や情報,ツイートを投稿したり,アイデアを書いて互いにレスポンスを投げます.投稿に対して絵文字でレスポンスもできるので,返事をするほどでもなくても気軽に反応を示すことができます.チャンネル以外にも,個々のメンバーや少人数のグループでのプライベートな会話ができるダイレクトメッセージ機能もあります.
これらの機能により,対面での会話ができなくても非同期的コミュニケーションをさまざまなトピックについて行うことができます.Slackは単にラボメンバー間でのメールのやりとりを代替するだけでなく,「メールを出すほどではなく,会ったときについでに言ったり聞けばいいこと」を非同期的にやりとりできる手段にもなります.
最後に,料金プランについて.Slackは無料で使うことができますが,その場合,「検索可能な投稿が最新10,000件のみに限られる」といった機能制限があります.投稿を蓄積された情報リソースと考えると,有料プランにするとよいと思います(2019年7月現在,スタンダードプランで960円/月人).無料プランでも投稿データの一括ダウンロードはできるので,自前でデータベースを構築することも可能です.
Slackなどのチャットツールがあっても,やはりface to faceでのコミュニケーションは不可欠です.しかし,昨今では,講義や実習,委員会,プロジェクト会議などで,特にPIや教員が居室にいないことが多くなっていると思います.
われわれの研究室では,遠隔会議ツールの一つであるzoom(https://zoom.us)を利用して,出張先や外勤先から研究室にいる学生とディスカッションをおこなっています.zoomではアカウント登録をして,まずURLを発行します.このURLにウェブブラウザでアクセスするだけでビデオチャットを使いはじめることができます(初回利用時には,ブラウザからのマイク・カメラへのアクセスを許可する必要があります).
通話中に最もよく使うのが,画面共有機能です.これは,互いの映像をカメラ映像から自分の画面に切り替えることができます.また,画面全体だけでなく,特定のアプリケーションのウィンドウやウェブブラウザ(Chrome)のあるタブのみを画面共有することもできます.これにより,PowerPointのスライドや論文のPDFを互いに見たりマウスポインタで指しながらディスカッションできます.また,ファイル送信機能やチャット機能もあるので,ディスカッション中にファイルやURLを送るといったこともできます.
zoomは事前のID交換が不要で,会議用URLを知らせればいいので,ラボメンバーだけでなく,共同研究者など外部の人との遠隔会議に使いやすいと思っています.
また,同期的なコミュニケーションの際には,どうしてもあらかじめお互いの予定をすり合わせる必要があります.そのときに地味に便利なのが,Googleカレンダー(図2)でのラボメンバーの予定の共有です.あらかじめ自分の予定や集中したい(話しかけてほしくない)時間を示しておけば,ミーティングや技術指導といった複数人が予定を合わせる際に,事前に相手が空いていそうな時間を知りたいときに確認することができます.
ここで大事なのは,予定の詳細を公開させたり,厳密な記述を求めるような強制力をもたせないことです.共用ツールは皆が気軽に使うようにならないと,元も子もありません.プライバシーなどもあるので,詳細は書かずに単に予定があることを表示するに留めるような運用をお勧めします.このように,あるレベルまでの情報をオープンにしておくことで,コミュニケーションコストを削減できるメリットがあります.
研究室に複数の人が集まるメリットとして,ちょっとしたノウハウを共有しやすいということがあります.最近ではブログなどでそういったノウハウを書く人もいますが,機密性のある内容,公開で書くほどでもないことやあまりにローカルすぎるネタは,不特定多数への公開をためらうことも多いでしょう.
そのような研究室のノウハウというのは研究室の宝でもあります.ノウハウの共有・伝達のハードルを下げることは研究活動や研究室生活に大きなメリットをもたらします.一方で,ノウハウを口頭で伝達していたら同じことを色んな人にその都度伝えなくてはいけません.また,自分自身もノウハウを覚えておくのはたいへんです.そのため,自分のノートやPCにメモを蓄積している場合もあるでしょう.でも,誰にとって必要かもわからないし,死蔵されていると気づかないことになります.さらに,ノウハウをもつ人がいなくなるとそのノウハウへアクセスできなくなるのは研究室として大きな損失です.なので,属人性を排除する意味でもノウハウの伝達速度を上げる意味でも,その共有が課題になります.ノウハウ共有の効率化というのは,企業よりも人材の流動性が高いことが多い,研究室というコミュニティならではの重要課題なのかもしれません.
ノウハウは研究上のものだけではありません.論文のサーベイのコツや,煩雑な事務作業のマニュアルといったものも含まれるでしょう.あとは,ラボのルールやその運用がなぜ現在のようになったのかの経緯もわからないと,古参のメンバーが変な権力を持ったり,恣意的な運用をする危険さえあります.そこで,そのようなノウハウ(とその履歴)を文書化して共有する必要があります.
弊研究室では,ノウハウの共有にesa(エサ,図3,https://esa.io/)を使っています.esaはチーム内情報共有サービスです.ブログのように記事を書き,ツリー構造によって記事を整理・分類できます.また,記事に「タグ」をつけられるので,ツリー構造と独立にタグによる分類も可能です.そのため,件数が多くなっても目的の記事を見つけやすくなっています.さらに,記事の編集履歴が自動で記録されるため,ルールブックやマニュアルの変更をあとから簡単に追うことができます.
記事には画像を挿入したり,数式の表示(MathJax)もできるため,生物系の研究内容を共有するのにも向いています.記事をスライドショーにもできるので,進捗報告を文書として書いてそのままプレゼンをすることもできます.また,ブログのようにコメントをつけられるので,簡単なディスカッションならコメント上で事足りるでしょう.さらに,日本語・英語でヘルプがあるため,英語が苦手な日本人学生,日本語が苦手な留学生の双方にとって使いやすいと思います.
esaでは書きはじめるハードルを下げるために,完成記事として公開するモードに加え,「書き途中だけど保存して公開」するWIP(work in progress)というモードがあります.「これは書くべきことか」と悩む前にまずは書いてみて,適切な分類を施すことで,必要な人に必要なノウハウを行き渡らせるイメージです. 弊研究室ではesaを使って,サーベイ結果,進捗報告,はたまた事務手続きのマニュアルといった雑多な内容を共有しており,「エサに書いときました」という声がよく聞かれます.ぼんやりしたノウハウを言語化することはそれなりに負荷の伴う作業ですが,たまに回ってくるセミナーでの進捗報告に加えて学生にとってもアウトプットの練習になると期待しています.
esaは有償ですが,教育機関に属する学生・教職員が活動する非営利チームに向けて,アカデミックプランとして無償提供されているのが嬉しいところです(https://docs.esa.io/posts/129).無償期間は1年間ですが延長が可能なため,(今のところ)毎年延長し続ければ無料で利用できるので,弊研究室のような立ち上げたばかりのラボにもありがたいです.
1つのドキュメントを特定の人間が書く場合にはブログのようなサービスがあれば十分ですが,1つのドキュメントを複数の人間が同時に編集する場合もあります.例えば,備品や試薬の管理,物品の注文の記録などは,定期的または散発的に継続的に,かつ複数のメンバーが同時に編集する状況が起こりえます.そのような場合に,弊研究室ではGoogleドライブを活用しています.ラボで共有のフォルダをつくり,そこにGoogleドキュメント(Wordみたいなもの)やGoogleスプレッドシート(Excelみたいなもの)のファイルを置いて共同編集するようにしています.
例えば弊研究室では,学生やスタッフとのプロジェクトミーティングの際に,Googleドキュメント(図4)を用いてその場で議事録をつくっています.ミーティングの最中に,正面のスクリーンにGoogleドキュメントを表示させ,メンバーで見ながら,問題点や解決案,修正された目標,次のミーティング日程,今後のTODO,長期的な目標を書き連ねておきます.共有されたファイルに書き込むことで,互いの認識の齟齬やメモのし忘れを防ぐというメリットがあります.また,ディスカッション中にリアルタイムで議論のまとめをみることで,議論が脱線したり「結局何が決まったんだっけ?」といった事態になることを防いでいます.
また,メンバーが購入したい書籍や物品などをGoogleスプレッドシート(図4)に書いておいてもらうようにしています.弊研究室ではここにリストアップされた物品を,責任者が判断して定期的に発注しています.これにより,メンバーがPIの居室に出向き,いちいち許可を求める必要がなくなります.Googleスプレッドシートは,ウェット実験が主軸の研究室においても,共通試薬や備品の管理などに使えるのではないでしょうか.
なお,類似のサービスはGoogleドライブ以外にもあると思いますが,最近の学生は少なからずGoogle(Gmail)アカウントをすでに持っているため(弊研究室に入った学生は全員がそうでした),新たにアカウントを作る手間なく使いはじめてもらえるというメリットがあります.
また,Googleドライブは論文の共同執筆の際にも便利です.共有ディレクトリを作成し,論文執筆に必要なファイルを集め,Googleドキュメントで文章を共同執筆できます.弊研究室では,最初は箇条書きで論文構成を書き,コメント機能で議論しつつ,修正し,清書していくという作業を行っています.また,多くのラボでは「Wordファイルに日付をファイル名にして,メールに添付して送り,コメントを書き込んで返してもらう」といった作業を行いますが,「版に名前をつける」という機能を使うことで,ある状態でのバージョンを固定し,さらにバージョン間での変更履歴(差分)も表示することができます(https://support.google.com/docs/answer/190843?co=GENIE.Platform% 3DDesktop&hl=ja).
なお,共同執筆する人がTeXを使える場合はOverleafもおすすめです.OverleafではTeX文書を共同編集したり,コメントをつけることができます.オンラインサービスのためインターネットアクセスがない場所で論文執筆したい方には向いていませんが,Texの環境をローカルのPCで構築しなくてよいこともメリットだと思います.
次世代シークエンサーやマススペクトロメトリー,イメージング技術の発達と普及により,ウェット研究者であってもバイオインフォマティクスのソフトウェアを用いたデータ解析が当たり前になっています.生命科学データ解析の普及書やウェブ上での資料も充実しています.一方で,世界中で生命科学研究の再現性が問題になっています1).近年,生命科学研究においてバイオインフォマティクスの比重が高まっていることを考慮すると,その再現性を担保することが必須となります2)3).
バイオインフォマティクスの再現性を担保することは,研究者コミュニティへの貢献という意味だけでなく,研究室における属人性の排除にとっても重要です.例えば,データ解析が得意な人がラボから居なくなったときにどうやって再現したらいいかわからなかったり,メモが残っていてもうまく再現できない状況を防ぐことができます.また,再現性の確保は研究を加速するというメリットもあります.例えば,再現性が確保できていれば,「同じ解析を別のデータでやってみたらどうなるか」といった問いに迅速に答えられるようになります.それではバイオインフォマティクスの再現性はどのように担保すればよいでしょうか.
例えば,実験であれば,実験プロトコールや実験ノートをきちんと残します.同様に,データ処理・解析のプロトコールも残すべきでしょう.しかし,計算プロトコールの場合,コンピューターを操るのが目的なので,スクリプト(とそのコメント文)にすでに示されていることを,わざわざ人間が読むためだけにWordなどの文書ファイルに閉じ込め直すのは二度手間な感じがします.以下では,①スクリプト自体,スクリプトには示されていない②実行環境,③ワークフローの3つのレベルについて再現性を担保する方策を紹介します.
❶ スクリプトのバージョンの管理
スクリプトやソースコードは適宜バグを取り除いたり,機能を追加することで頻繁に変化します.そのような変更をバージョン管理によって記録することで,スクリプトと結果の不一致といったミスを防ぐことができます.ソースコードのバージョン管理にはGitが使えます.Gitはコマンドライン操作に慣れていないと使いづらいのが難点ですが,GitKrakenやGitHub DesktopといったGitクライアントソフトウェアを使うことでGUI操作でバージョン管理ができます.
複数人でスクリプト・コードを共有・管理する場合はGitHubを利用することができます.研究室などアカデミアのグループではGitHub Teamを無料で利用できます.レポジトリごとに公開・非公開の設定ができるため,研究室内だけでレポジトリを共有したい場合にも便利です.
❷ 実行環境の管理
ソフトウェアは,そのソフトウェア自身のバージョンや,プログラミング言語や依存するライブラリのバージョンが変わることで,エラーが出て動かなくなったり,挙動・出力結果が変わったりしてしまいます.そのため,ソフトウェアの特定のバージョンについてインストールされた状態を正しく保つことが,再現性の担保に重要です.また,ソフトウェアは多くの場合,別のライブラリやソフトウェアに依存するため,インストールの際にdependency hell(依存性地獄)に悩まされることも多く,バイオインフォマティクスの専門家であってもソフトウェアのインストールには苦労しているのが実情です.
これらの問題を解決するのが,コンテナ技術です.コンテナ技術では「イメージ」というものをつくることで「他のシステムと分離された特別な状態のプロセス」をいつでも実行できるようになります.コンテナ技術としてはDocker(図5左,https://www.docker.com/)やSingularity(図5右,https://sylabs.io/ singularity/)が有名です.コンテナ技術を使うことにより,すでに使いたいソフトウェアがインストールされている「イメージ」が存在すれば,インストールなしでいつでもそのソフトウェアを使えるようになります.
また,Docker HubやQuayといったコンテナイメージのレポジトリにアクセスすることで,世界中の研究所や個人の研究者・エンジニアによって公開された,特定のソフトウェアをインストールしたイメージを利用できます.最近では,ユーザによるインストールの手間を省けるというメリットから,バイオインフォマティクスソフトウェアの開発者が自身のソフトウェアをDockerイメージとして配布することが多くなっています.また,自分自身で作成したコンテナイメージをアップロードすることもできます.
さらに,国立遺伝学研究所および東京大学医科学研究所ヒトゲノム解析センターで提供しているスーパーコンピューターシステムではSingularityがサポートされています(2019年7月現在).また,DockerイメージをSingularityイメージに変換できるため,Docker HubなどのDockerイメージも利用できます.これにより,外部のスパコンでもインストールの手間なく使いたいソフトウェアを簡単に利用しはじめることができるようになります.
❸ ワークフローの管理
次世代シークエンサーデータ解析では,パイプラインのように,時に枝分かれしながら,複数のソフトウェアをデータに対して適用していきます.そのようなパイプラインを表現するのに,古くはWord文書や「秘伝のタレ」のようなシェルスクリプトがあり,利用者はそのファイルをコピペし,ファイル名を適宜書き換えている研究室もあります.しかし,ファイル名を書き換えていくのは,人為ミスが起こりえますし,人間が時間を割くべき作業ではありません.
ワークフローを管理するのに便利なのが,ワークフロー言語(workflow language)です.ワークフロー言語では,1つのソフトウェアの動かし方だけでなく,解析パイプラインの記述ができます.また,ワークフロー言語で記述されたワークフローを実行するソフトウェアはワークフローエンジンとよばれます.ワークフロー言語とワークフローエンジンの開発元は同じ場合もあれば別々の場合もあります.
例えば,Nextflow(図6,https://www.nextflow.io/)はワークフロー言語とワークフローエンジンの開発が同一です.Nextflowは,条件分岐や条件の組合わせなどを柔軟に記述できるといったメリットがあります.例えば,各ソフトウェアに関して複数のオプションを用いた場合の結果を並行に計算して比較するのに便利です.また,遺伝研のスパコンなどの計算機環境で,ソフトウェアごとに計算資源を調整しつつジョブを実行していくこともできます.さらに,“-resume”という機能を使うと途中でワークフローに変更があったりエラーが出て途中で計算が止まった場合に,前回と共通の部分の計算結果を使い回すことで計算し直す手間を軽減できます.
また,CWL(common workflow language)も有名です.CWLはワークフロー言語の一種ですが,「ワークフロー言語の共通言語をつくる」というコンセプトのもと開発が進んでいる,ある意味メタな存在です.かなり厳密に記述できるため,誰が読んでも曖昧さが少ないというメリットがあります.また,cwltoolsをはじめとして,さまざまなワークフローエンジンがCWLに対応しているのも魅力です.
ワークフロー言語は国内でまだそれほど普及していません.しかしながら,CWLについては日本語ドキュメントも整備されていたり(https://github.com/ pitagora-galaxy/cwl/wiki/CWL-Start-Guide-JP),国内では定期的にworkflow meetupという勉強会が開催されている(https://github.com/manabuishii/workflow-meetup)こともあり,今後ワークフロー言語の活用は進んでいくと期待しています.
本稿では,デジタルツールが工夫しだいで研究室におけるさまざまな活動・タスクの効率化に活用できることを述べてきました.どのようなツールを選択すべきかというのは難しい問題ですが,導入前に何を目的にするかを明確にし,そのために必要なツールと運用方法を選択することが大切です.加えて,もう一つ重要なのが,目的を達成できているかを検証し,ツールの使い方を適宜,変えたり廃止することです.そもそも何を計測してどのような基準で生産性につながったと判断するかも一筋縄ではいかない問題ではありますが,最初からなんでもうまくいくと過度に期待せず,研究と同じように実験と検証をくり返して,目的に合ったツールやその運用方法を探して行くのが大切だと思います.まずは軽い気持ちで使ってみて,合わなければ使うのをやめればよいのです.
今回紹介したデジタルツールが弊研究室の生産性向上に本当につながっているかについては検証の余地があります.筆者の体感的なストレスは減ったものの,他のメンバーにとって本当に研究時間の確保につながったかはわかりませんでした.そこで本稿の執筆にあたり,研究室のメンバー全員が使用しているzoom,Slack,esa,Googleドライブ,Googleカレンダーに関してアンケートを実施してみました.まず,「各デジタルツールが研究室の生産性向上につながったか」という問いに対して,SlackとGoogleカレンダーは100%,それ以外は75%が「はい」と回答しました.一方,「各デジタルツールがあなた自身の生産性向上につながったか」という問いに対して,「はい」と答えた割合はSlack,zoom,esaは75%,GoogleドライブとGoogleカレンダーは50%が「はい」と回答しました.あくまで主観的な評価ですが,今回のアンケート結果からこれらのツールの使用を今後も継続しつつ,検証を続けようと考えています.
本稿は,研究室で活用できるデジタルツールを網羅したものではなく,実際にはもっと多様なデジタルツールが世のなかにはあります.例えば,世のなかにはTrelloやClickUpといったプロジェクト・TODO管理ツールがたくさんありますが,弊研究室ではいまだ適したものを見つけられなかったため,今回は紹介することができませんでした.研究室で扱うプロジェクトの規模や性質,メンバーの多寡などによっても,使いやすいツールセットは大きく変わってくるでしょう.今後,本稿のような研究室におけるデジタルツール活用に関する記事が他の研究室の方によって書かれ,ノウハウが共有されることを望みます.