これはscGPT の公式コードベースです: Towards Building a Foundation Model for Single-Cell Multi-omics using Generative AI 。
!更新: いくつかの新しい事前トレーニング済み scGPT チェックポイントをリリースしました。詳細については、「事前トレーニングされた scGPT チェックポイント」セクションを参照してください。
[2024.02.26] Integrated-huggingface-model ブランチで、HuggingFace を使用した事前トレーニング ワークフローを実行するための初期サポートを提供しました。さらにテストを実施し、すぐにメインブランチにマージする予定です。
[2023.12.31]ゼロショットアプリに関する新しいチュートリアルを公開しました!これらは、tutorials/zero-shot ディレクトリにあります。また、セル埋め込み関連タスク用の新しい継続的な事前トレーニング済みモデル チェックポイントも提供します。詳しくはノートをご覧ください。
[2023.11.07]多くのご要望にお応えして、フラッシュアテンションをオプションの依存関係にしました。事前トレーニングされた重みは、同じload_pretrained関数load_pretrained(target_model, torch.load("path_to_ckpt.pt"))
を使用して、pytorch CPU、GPU、およびflash-attnバックエンドにロードできます。使用例もここにあります。
[2023.09.05]サンプルをカスタム参照データセットまたは CellXGene から収集した数百万の細胞すべてに参照マッピングするための新機能をリリースしました。 faiss ライブラリの助けにより、時間とメモリの大幅な効率化が達成されました。 3,300 万を超えるセルのインデックスに必要なメモリは 1GB 未満であり、類似性検索はGPU 上で 10,000 個のクエリ セルに対して 1 秒もかかりません。詳細については、参照マッピングのチュートリアルを参照してください。
scGPT は以下のオンライン アプリでも利用できるようになりました。ブラウザから簡単に始めることができます。
scGPT は Python >= 3.7.13 および R >= 3.6.1 で動作します。インストール前に正しいバージョンの Python と R がインストールされていることを確認してください。
scGPT は PyPI で利用できます。 scGPT をインストールするには、次のコマンドを実行します。
pip install scgpt " flash-attn<1.0.5 " # optional, recommended
# As of 2023.09, pip install may not run with new versions of the google orbax package, if you encounter related issues, please use the following command instead:
# pip install scgpt "flash-attn<1.0.5" "orbax<0.1.8"
[オプション] ロギングと視覚化には wandb を使用することをお勧めします。
pip install wandb
開発には Poetry パッケージ マネージャーを使用しています。 Poetry をインストールするには、ここの手順に従ってください。
$ git clone this-repo-url
$ cd scGPT
$ poetry install
注: flash-attn
依存関係には、通常、特定の GPU および CUDA バージョンが必要です。問題が発生した場合は、flash-attn リポジトリのインストール手順を参照してください。新しいバージョンの flash-attn のインストールに関してさまざまな問題が報告されているため、2023 年 5 月の現時点では、CUDA 11.7 および flash-attn<1.0.5 を使用することをお勧めします。
事前トレーニング済みモデルのリストは次のとおりです。チェックポイント フォルダーをダウンロードするためのリンクを見つけてください。ほとんどのアプリケーションでは、デフォルトでwhole-human
モデルを使用することをお勧めします。微調整データセットが臓器固有モデルのトレーニング データと同様の細胞タイプ コンテキストを共有している場合、これらのモデルは通常、同様に競争力のあるパフォーマンスを実証できます。遺伝子名を ID にマッピングするペアの語彙ファイルが各チェックポイント フォルダーに提供されます。 ENSEMBL ID が必要な場合は、gene_info.csv で変換を見つけてください。
機種名 | 説明 | ダウンロード |
---|---|---|
全人類(推奨) | 3,300 万個の正常なヒト細胞で事前トレーニング済み。 | リンク |
継続的な事前トレーニング済み | ゼロショットセル埋め込み関連タスク用。 | リンク |
脳 | 1,320万個の脳細胞で事前トレーニング済み。 | リンク |
血 | 1,030 万個の血液および骨髄細胞で事前トレーニング済み。 | リンク |
心臓 | 180万個の心臓細胞で事前トレーニング済み | リンク |
肺 | 210万個の肺細胞で事前トレーニング済み | リンク |
腎臓 | 814,000 個の腎臓細胞で事前トレーニング済み | リンク |
汎がん | さまざまな種類のがんの 570 万個の細胞で事前トレーニング済み | リンク |
example/finetune_integration.py のコード例を参照してください。デフォルトでは、スクリプトは、 examples/save
ディレクトリに保存されている scGPT チェックポイント フォルダーを想定します。
scGPT への貢献を大いに歓迎します。アイデアやバグ修正がある場合は、プル リクエストを送信してください。 scGPT の使用中に発生した問題も歓迎します。
以下のオープンソース プロジェクトの作成者に心から感謝します。
@article { cui2023scGPT ,
title = { scGPT: Towards Building a Foundation Model for Single-Cell Multi-omics Using Generative AI } ,
author = { Cui, Haotian and Wang, Chloe and Maan, Hassaan and Pang, Kuan and Luo, Fengning and Wang, Bo } ,
journal = { bioRxiv } ,
year = { 2023 } ,
publisher = { Cold Spring Harbor Laboratory }
}