日本語版
最新ニュース
科学&テクノロジー

研究室のソフトウェアを公開するための 6 つのヒント

計算神経学者のカーセン・ストリンガーとマリウス・パチタリウが、顕微鏡画像内の細胞を自動的に識別して輪郭を描くソフトウェアである Cellpose を構築したとき、彼らの目標は、誰でも使用できるように一般に公開することでした。彼らは2020年にそうしました(参照) go.nature.com/3bbeey3)。しかし、それは順風満帆だったわけではありません。人々はツールを公にリリースすることがどれほど難しいかを過小評価しがちだと、パチタリウ氏とともにバージニア州アッシュバーンにあるハワード・ヒューズ医学研究所ジャネリア・リサーチ・キャンパスで働くストリンガー氏は言う。技術的に機能するプログラムと、堅牢で文書化され、洗練されたユーザー インターフェイスを備えたプログラムとの間には大きな違いがあります。 Stringer 氏と Pachitariu 氏は、Suite2p と Kilosort という 2 つの初期の神経科学ツールを構築した経験から、自分たちが何をしようとしているのかを理解していました。しかし、Cellpose は予想以上に人気があり、ユーザーのクエリの量に不意を突かれた、と彼女は言います。エンゲージメントの観点からすると、それは良い問題です。それでも、研究者は自分たちの生活を楽にすることができます。 自然 ストリンガー氏やその他の科学ソフトウェア開発者に話を聞き、実験用ツールをスムーズに一般公開するためのヒントを学びました。彼らが言ったことは次のとおりです。メンテナンス時間を予測するソフトウェアは静的なものではありません。維持する必要があります。つまり、バグや追加機能のリクエストに対処し、協力者と協力し、ユーザーの質問に答える必要があります。大変な作業だが、そうすることでツールはより良くなる、とドイツのハイデルベルクにある欧州分子生物学研究所のコンピュータ科学者アンナ・クレシュク氏は言う。クレシュクは 2012 年から次のことに取り組んでいます。 弾性のある、対話型機械学習を使用して顕微鏡画像を分析するプログラム。 (このプロジェクトは、その1年前に別の研究者によって始められた、と彼女は言う。)主に自分に役立つツールと、一般に公開されているツールとの違いは、メンテナンスである、と彼女は言う。使ってみて、実際には非常に不便であることがわかり、それを修正してまた繰り返すのです。」 計算手法を使いやすくすることに価値がある理由 ストリンガー氏は、ほとんどのソフトウェア ツールのメンテナンスには週に 5 ~ 15 時間かかると見積もっています。メンテナンスに集中している場合は少なく、プログラムを改善しようとしている場合は長くなります。Cellpose の場合、メンテナンスには週に約 10 時間かかります。博士課程の学生の時間はその範囲に入る、と彼女は言う。 (学生にはコンサルタントとして報酬が支払われます。) カリフォルニア大学デービス校の生物情報学者タイタス ブラウンは、自分の時間の 20 ~ 30% を…

研究室のソフトウェアを公開するための 6 つのヒント

計算神経学者のカーセン・ストリンガーとマリウス・パチタリウが、顕微鏡画像内の細胞を自動的に識別して輪郭を描くソフトウェアである Cellpose を構築したとき、彼らの目標は、誰でも使用できるように一般に公開することでした。彼らは2020年にそうしました(参照) go.nature.com/3bbeey3)。しかし、それは順風満帆だったわけではありません。

人々はツールを公にリリースすることがどれほど難しいかを過小評価しがちだと、パチタリウ氏とともにバージニア州アッシュバーンにあるハワード・ヒューズ医学研究所ジャネリア・リサーチ・キャンパスで働くストリンガー氏は言う。技術的に機能するプログラムと、堅牢で文書化され、洗練されたユーザー インターフェイスを備えたプログラムとの間には大きな違いがあります。 Stringer 氏と Pachitariu 氏は、Suite2p と Kilosort という 2 つの初期の神経科学ツールを構築した経験から、自分たちが何をしようとしているのかを理解していました。しかし、Cellpose は予想以上に人気があり、ユーザーのクエリの量に不意を突かれた、と彼女は言います。

エンゲージメントの観点からすると、それは良い問題です。それでも、研究者は自分たちの生活を楽にすることができます。 自然 ストリンガー氏やその他の科学ソフトウェア開発者に話を聞き、実験用ツールをスムーズに一般公開するためのヒントを学びました。彼らが言ったことは次のとおりです。

メンテナンス時間を予測する

ソフトウェアは静的なものではありません。維持する必要があります。つまり、バグや追加機能のリクエストに対処し、協力者と協力し、ユーザーの質問に答える必要があります。大変な作業だが、そうすることでツールはより良くなる、とドイツのハイデルベルクにある欧州分子生物学研究所のコンピュータ科学者アンナ・クレシュク氏は言う。

クレシュクは 2012 年から次のことに取り組んでいます。 弾性のある、対話型機械学習を使用して顕微鏡画像を分析するプログラム。 (このプロジェクトは、その1年前に別の研究者によって始められた、と彼女は言う。)主に自分に役立つツールと、一般に公開されているツールとの違いは、メンテナンスである、と彼女は言う。使ってみて、実際には非常に不便であることがわかり、それを修正してまた繰り返すのです。」

ストリンガー氏は、ほとんどのソフトウェア ツールのメンテナンスには週に 5 ~ 15 時間かかると見積もっています。メンテナンスに集中している場合は少なく、プログラムを改善しようとしている場合は長くなります。Cellpose の場合、メンテナンスには週に約 10 時間かかります。博士課程の学生の時間はその範囲に入る、と彼女は言う。 (学生にはコンサルタントとして報酬が支払われます。) カリフォルニア大学デービス校の生物情報学者タイタス ブラウンは、自分の時間の 20 ~ 30% を Sourmash の維持に費やしています (NTピアス 他。 F1000解像度 8、1006; 2019年)、ゲノム比較およびメタゲノム分析のためのツール。対照的に、Ilastik には専任のフルタイム開発者がいます、とクレシュク氏は言います。

実際、科学ソフトウェアは、差し迫った問題に対処するために博士課程の学生やポスドクによって構築されることがよくありますが、ツールを公開する予定がある場合は、より広い視野で考える必要があるかもしれません。 「真剣にゲームに携わり続けたいのであれば、これに取り組む最初のプロのソフトウェア開発者をいつ雇うのか、そしてその費用はどのように支払うのかを考えるのは良いことです。学業の給料のために働くな。」

設置を簡素化

優れたソフトウェアは使いやすく、難しいインストール プロセスほど潜在的なユーザーのエクスペリエンスを損なうものはありません。 「インストールの問題は、人々が行動を思いとどまる最大の理由です」とストリンガー氏は言います。 Brown 氏も同じ意見です。「あなたのツールに興味があり、インストールに 1 分以上かかる場合は、もうあなたのツールには興味がありません。」

オンライン コード共有サービス GitHub にコードを投稿するだけではなく、さまざまなオペレーティング システム用にすぐにインストールできるバイナリ パッケージを作成します。プログラミング言語 Python で記述されたプログラムの PyPI や、R で記述されたコードの Bioconductor などの既存のパッケージ リポジトリを操作すると、品質管理とダウンロードのための集中的な場所を提供できます。

依存関係を最小限に抑えたり、ツールを動作させるためにユーザーがインストールする必要があるその他のソフトウェア ツールを最小限に抑えたりすることで、インストールを簡素化することもできます。 Cellpose には機械学習ライブラリ PyTorch や数値解析ツール NumPy など 11 の依存関係がありますが、不足している依存関係は自動的にインストールされます。依存関係が少なくなると、依存関係の変更に応じてプログラムを更新する必要が生じる可能性があるため、今後の作業も削減されます。 「ソフトウェアをリリースする際に最も難しいのは、依存関係が最新であることを確認することです」と Stringer 氏は言います。

あるいは、ユーザーがソフトウェアをインストールせずに試用できるようにします。研究者は、インストールを決定する前に、ツールの Web サイトで Cellpose を実行して、データが機能するかどうかを確認できます。また、Google のクラウドベースの計算ノートブック システムである Colab 上で実行することもでき、これにより、ユーザーがローカルに持っていない可能性のあるリモートのグラフィック処理ユニットにアクセスできるようになるとストリンガー氏は言います。

Cellpose は、顕微鏡画像内の細胞を自動的に識別し、輪郭を描きます。クレジット: Carsen Stringer および Marius Pachitariu

インターフェースを検討してください

ソフトウェアのインターフェイスは直感的ではなく、乱雑である場合がありますが、それを使用するのがあなただけであれば、それは問題ありません。そうでない場合は、「ユーザー エクスペリエンス」にある程度のエネルギーを注ぐ必要があるかもしれません。

ストリンガー氏によれば、グラフィカル ユーザー インターフェイスを設計するには多大な労力がかかりますが、グラフィカル ユーザー インターフェイスがあれば、非常に簡単に始めることができます。コマンドライン インターフェイスは作業量が少ないですが、より技術に精通したユーザーを必要とします。

Cellpose にはグラフィカル ユーザー インターフェイスとコマンドライン インターフェイスの両方があり、前者ではユーザーが画像を直接操作でき、後者では自動化が可能になります。 「データの視覚化は、ソフトウェアの出力にバグや偏りがあるかどうかを確認するために非常に重要です」と Stringer 氏は説明します。 「すべてが抽象的で視覚化されていないと、データ品質に問題があるかどうかを確認することが非常に困難になる可能性があります。」

書類

商用ソフトウェアには、かつては印刷されたマニュアルが付属していました。そんな時代はとうの昔に過ぎましたが、たとえ書くのが楽しくなくても、ソフトウェアを使用するにはドキュメントが必須であることに変わりはありません。 「私はドキュメントに対して好き嫌いの感情を抱いています」とブラウンは認めます。ソフトウェアを適切に文書化することは「常に苦労の連続です」。しかし、それは不可欠です。

最も基本的なレベルでは、開発者はツールの計算要件 (メモリや依存関係など)、そのライセンス、およびそれがどの程度サポートされているかを明記する必要があるとブラウン氏は言います。オープンソース プログラムには、開発者が貢献に興味があるかどうかも含めることができます。

ユーザーにツールについて教える他の方法もあります。 Brown 氏は、マニュアルの要点のみを凝縮したクイックスタート ガイドを作成するようアドバイスしています。あるいは、Stringer が Cellpose で行ったように、ビデオ チュートリアルを作成することもできます。 27,000 回以上の再生回数を記録した 45 分間のプレゼンテーションについて、彼女は「ビデオ チュートリアルがこれほど役立つとは知りませんでした」と語ります。ストリンガー氏によると、彼女のビデオは、彼女が直接話すときに使用する公式に従っています。「ツールがどのように機能するかについての背景と使用例を紹介し、その後、それが実際にどのように機能するかを示します。」

GitHubを使用する

バージョン管理はソフトウェア開発において非常に重要です。なぜなら、バージョン管理は、コードがいつどのように変更されたのか (そして、なぜ、誰によって変更されたのか) を追跡し、ソフトウェアの明確な最新バージョンを維持し、たとえば共同作業者がコードを変更した場合に開発者が不要な変更を簡単に元に戻せるようにするためです。ツールを壊すようなコード。

最も人気のあるバージョン管理システムの 1 つは Git です。 Git は、最新の開発環境のほとんどに組み込まれているコマンドライン ツールであり、多くの開発者が GitHub と組み合わせて使用しています。しかし、GitHub は単なるリポジトリではありません。ユーザーがコードの変更や問題を送信することもできるため、「人々がソフトウェアでどのように苦労しているのか、何を改善する必要があるのかが簡単にわかります」とストリンガー氏は言います。また、開発者同士を結び付けることもできます。

転職を考えている人にとっては、もう 1 つの利点があります。GitHub が自分の仕事の記録を提供してくれるということです。ストリンガー氏によると、雇用主は求職者を検討する際に、GitHub の履歴を精査することがよくあります。

テストを自動化する

ソフトウェアが動作したら、それが正しく動作していることを確認する必要があります。それがソフトウェア テストの仕事です。このタスクは、多くの場合、「継続的インテグレーション」サービスを使用して自動化されます。コードが変更されるたびに、Travis CI や GitHub Actions を含むこれらのサービスは一連のユーザー定義のテストを実行し、テストが失敗した場合にフラグを立てます。

Cellpose は当初 Travis CI を使用していましたが、現在は GitHub Actions を使用しています。これは、ソフトウェアがオープンソース ツールとして無料であり、GitHub に組み込まれているためです。 Stringer 氏によると、Cellpose チームが必要とするものはすべて揃っており、さまざまなオペレーティング システムや Python バージョン間でのテスト、インストールの問題のチェックなどを行っています。

簡単に言うと、ソフトウェアを一般公開できるようにするのには手間がかかりますが、公開ツールを構築することで、透明性、コミュニティの構築、そして最終的には科学が促進されます。 「生物学的理解の現在と未来はソフトウェアにかかっています」とブラウン氏は言います。 「データを分析できなければ生物学の進歩はありません。」

他にも利点があります。ブラウン氏は、Sourmash の開発とユーザーからリクエストされた機能の追加を通じて、ユーザーの多くが予想もしなかった方法でソフトウェアを使用することで、彼と彼のチームがどのような種類の科学的問題を調査できるかについてのアイデアを広げたと述べています。たとえば、Sourmash は微生物のメタゲノム配列データにおける種の分類学的分類に驚くほど優れていることがわかりました。ブラウン氏が調査したところ、このツールが焦点を当てている微生物ゲノムの特徴は、そのようなゲノムが進化する方法に関連しているようであることがわかりました。

ブラウン氏は、ソフトウェアの開発を続け、公開ツールのメンテナンスに時間を費やすことに価値があると語ります。「他の方法では学べなかったと思う新しいことを学び続けているからです」。

#研究室のソフトウェアを公開するための #つのヒント

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。