生物学とGPTの架け橋 - scGPTプロジェクトの詳細解説
生物学者は長年にわたり.single-cellデータを収集し、私たちの臓器が最も詳細なレベルでどのように機能するかを理解しようとしてきました。問題は、現在このデータが多すぎる上に、さまざまな「言語」を話すということです。遺伝子活性を記録した何百万ものテーブルを想像してみてください。しかし、各研究室が独自のプロトコルとフォーマットを持っています。これらをマニュアルで統合して統一的な像を描くことはほぼ不可能です。
ここで登場するのがscGPTです。bowang-labの開発者たちはこう考えました:もしTransformerが人間の言語を理解することを学んだのなら、細胞の言語を学ぶことはできないだろうか?
開発者とデータサイエンティストにとってなぜ重要か
一般的に、バイオinformaticsはScanpyやSeuratのような専門パッケージに依存しています。これらは強力ですが、各データセットに対して手動の設定が必要なことが多いです。scGPTは.single-cell生物学のためのFoundation Modelを作成しようとする試みです。
これは単なるグラフ描画スクリプトではありません。このプロジェクトはGPTアーキテクチャを取り、3300万以上のヒト細胞という大量のデータで学習します。その結果、ChatGPTが文中の単語間の関係を理解するのと同じように、モデルが遺伝子間の内部依存関係を理解し始めます。
リポジトリの中身
このプロジェクトはPythonで書かれており、PyTorchを積極的に使用しています。HuggingFaceでの作業に慣れているなら、ここでもすぐに馴染めるでしょう(ただし、完全なHub統合はまだ進行中です)。
主要機能
最も有用な機能の一つがReference Mappingです。新しいデータがある場合、わずか1秒で3300万の細胞データベースと照合できます。faissライブラリにより、GPU上で10,000セルのインデックス検索は1秒未満で完了します。インデックスは1ギガバイト未満の重さです。
もう一つ重要なのはZero-shotアプリケーションです。追加のファインチューニングなしで、セルタイプのアノテーションやデータ統合にモデルを使用できます。これにより、多くの時間と計算リソースを節約できます。
特定のソリューションを必要とする人のために、作者たちは事前に学習されたモデルの完全な「zoo」をリリースしています:
- whole-human:3300万の細胞で学習された汎用オプション。
- 脳、血液、心臓、肺、腎臓用の専門モデル。
- Pan-cancer:異なるがん細胞タイプ用に調整されたモデル。
実行方法
インストールはpip経由では標準的ですが、flash-attn依存関係にニュアンスがあります。これは作業を大幅に高速化しますが、CUDAバージョンにうるさいです。著者はバージョン11.7を推奨しています。
pip install scgpt "flash-attn<1.0.5"
ところで、環境に対処したくない場合、Superbio.aiの人々がscGPT用のクラウドアプリケーションを作成してくれました。ブラウザ内でセルアノテーションや遺伝子制御ネットワーク推論を試すことができます。
技術的詳細
古典的なテキストベースのGPTとは異なり、このモデルは生成的なアテンションマスキングを使用します。これにより、モデルは遺伝子発現を予測し、データ内の欠損値を回復できます(インプット)。
興味深いことに、このプロジェクトはCPUとGPUの両方をサポートしています。load_pretrained関数は、重量が任意のバックエンドで苦痛なくロードされるように書き直されました。そして、トレーニングモニタリングのファンなら、コードにネイティブwandbサポートがあります。
実践的なユースケース
実際の使用用途:
- バッチ統合:10の異なる研究室からのデータを単一の整合性のあるデータセットに結合する必要がある場合。
- 摂動予測:モデルは細胞が特定の薬や遺伝子操作にどのように反応するかを推定できます。
- 遺伝子ネットワーク解析:どの遺伝子が「一緒に働く」かを特定します。
試してみる価値はあるか
バイオinformaticsやシステム生物学で働いているなら、scGPTはブックマークに必須です。Single-Cell Foundation Modelsニッチで最もアクティブなプロジェクトの1つです。
このプロジェクトが向いていない可能性のある人:離散型グラフィックスカードのないローカルラップトップ用の軽量ソリューションを探している人。大規模な発現マトリックスの処理には、すべての最適化にもかかわらず、リソースが必要です。
学習はtutorials/zero-shotフォルダから始めることをおすすめします。そこには、モデルが длительныйトレーニングなしでデータを消化する方法を明確に示すノートブックが含まれています。
このプロジェクトは積極的に開発されています:最近、別のブランチでHuggingFaceサポートを追加し、ReadTheDocsのドキュメントを更新しました。チームが単に論文のためのコードをリリースしただけでなく、確かにツールを維持していることが明らかです。
関連プロジェクト