Il s'agit de la base de code officielle de scGPT : Towards Building a Foundation Model for Single-Cell Multi-omics Using Generative AI .
!MISE À JOUR : Nous avons publié plusieurs nouveaux points de contrôle scGPT pré-entraînés. Veuillez consulter la section Points de contrôle scGPT pré-entraînés pour plus de détails.
[2024.02.26] Nous avons fourni un support préliminaire pour l'exécution du flux de travail de pré-formation avec HuggingFace dans la branche Integra-huggingface-model. Nous effectuerons des tests supplémentaires et les fusionnerons bientôt avec la branche principale.
[2023.12.31] De nouveaux tutoriels sur les applications Zero-Shot sont désormais disponibles ! Veuillez les trouver dans le répertoire tutoriels/zero-shot. Nous fournissons également un nouveau point de contrôle continu du modèle pré-entraîné pour les tâches liées à l'intégration de cellules. Veuillez consulter le cahier pour plus de détails.
[2023.11.07] Comme beaucoup l'ont demandé, nous avons désormais fait de flash-attention une dépendance facultative. Les poids pré-entraînés peuvent être chargés sur les backends CPU, GPU et flash-attn de pytorch en utilisant la même fonction load_pretrained, load_pretrained(target_model, torch.load("path_to_ckpt.pt"))
. Un exemple d'utilisation est également ici.
[2023.09.05] Nous avons publié une nouvelle fonctionnalité pour mapper des échantillons de référence à un ensemble de données de référence personnalisé ou à tous les millions de cellules collectées à partir de CellXGene ! Avec l'aide de la bibliothèque faiss, nous avons obtenu une grande efficacité en termes de temps et de mémoire. L'index de plus de 33 millions de cellules ne prend que moins de 1 Go de mémoire et la recherche de similarité prend moins d' 1 seconde pour 10 000 cellules de requête sur GPU . Veuillez consulter le didacticiel de mappage de référence pour plus de détails.
scGPT est désormais également disponible sur les applications en ligne suivantes, vous pouvez donc commencer simplement avec votre navigateur !
scGPT fonctionne avec Python >= 3.7.13 et R >=3.6.1. Veuillez vous assurer que la version correcte de Python et R est installée avant l'installation.
scGPT est disponible sur PyPI. Pour installer scGPT, exécutez la commande suivante :
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"
[Facultatif] Nous vous recommandons d'utiliser wandb pour la journalisation et la visualisation.
pip install wandb
Pour le développement, nous utilisons le gestionnaire de packages Poetry. Pour installer Poetry, suivez les instructions ici.
$ git clone this-repo-url
$ cd scGPT
$ poetry install
Remarque : La dépendance flash-attn
nécessite généralement une version spécifique du GPU et de CUDA. Si vous rencontrez des problèmes, veuillez vous référer au référentiel flash-attn pour les instructions d'installation. Pour l'instant, en mai 2023, nous recommandons d'utiliser CUDA 11.7 et flash-attn<1.0.5 en raison de divers problèmes signalés lors de l'installation de nouvelles versions de flash-attn.
Voici la liste des modèles pré-entraînés. Veuillez trouver les liens pour télécharger les dossiers de points de contrôle. Nous recommandons d'utiliser par défaut le modèle whole-human
pour la plupart des applications. Si votre ensemble de données de réglage fin partage un contexte de type cellulaire similaire avec les données d'entraînement des modèles spécifiques à un organe, ces modèles peuvent généralement également démontrer des performances compétitives. Un fichier de vocabulaire apparié mappant les noms de gènes aux identifiants est fourni dans chaque dossier de point de contrôle. Si des identifiants ENSEMBL sont nécessaires, veuillez trouver la conversion sur gene_info.csv.
Nom du modèle | Description | Télécharger |
---|---|---|
humain entier (recommandé) | Pré-entraîné sur 33 millions de cellules humaines normales. | lien |
préformation continue | Pour les tâches liées à l'intégration de cellules sans tir. | lien |
cerveau | Pré-entraîné sur 13,2 millions de cellules cérébrales. | lien |
sang | Pré-entraîné sur 10,3 millions de cellules sanguines et de moelle osseuse. | lien |
cœur | Pré-entraîné sur 1,8 million de cellules cardiaques | lien |
poumon | Pré-entraîné sur 2,1 millions de cellules pulmonaires | lien |
rein | Pré-entraîné sur 814 000 cellules rénales | lien |
pan-cancer | Pré-entraîné sur 5,7 millions de cellules de différents types de cancer | lien |
Veuillez consulter notre exemple de code dans examples/finetune_integration.py. Par défaut, le script suppose que le dossier de point de contrôle scGPT est stocké dans le répertoire examples/save
.
Nous apprécions grandement les contributions à scGPT. Veuillez soumettre une pull request si vous avez des idées ou des corrections de bugs. Nous acceptons également tous les problèmes que vous rencontrez lors de l’utilisation de scGPT.
Nous remercions sincèrement les auteurs des projets open source suivants :
@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 }
}