Dies ist die offizielle Codebasis für scGPT: Towards Building a Foundation Model for Single-Cell Multi-Omics Using Generative AI .
!UPDATE : Wir haben mehrere neue vorab trainierte scGPT-Kontrollpunkte veröffentlicht. Weitere Informationen finden Sie im Abschnitt „Vortrainierte scGPT-Kontrollpunkte“.
[26.02.2024] Wir haben eine vorläufige Unterstützung für die Ausführung des Pretraining-Workflows mit HuggingFace im Zweig „integrate-huggingface-model“ bereitgestellt. Wir werden weitere Tests durchführen und es bald mit dem Hauptzweig zusammenführen.
[31.12.2023] Neue Tutorials zu Zero-Shot-Anwendungen sind jetzt verfügbar! Sie finden sie im Verzeichnis „tutorials/zero-shot“. Wir bieten außerdem einen neuen, kontinuierlich vorab trainierten Modellprüfpunkt für Aufgaben im Zusammenhang mit der Zelleneinbettung. Weitere Einzelheiten finden Sie im Notizbuch.
[07.11.2023] Wie von vielen gewünscht, haben wir Flash-Attention nun zu einer optionalen Abhängigkeit gemacht. Die vorab trainierten Gewichte können mit derselben Load_pretrained-Funktion, load_pretrained(target_model, torch.load("path_to_ckpt.pt"))
auf Pytorch-CPU, GPU und Flash-Attn-Backends geladen werden. Ein Beispiel für die Verwendung finden Sie auch hier.
[05.09.2023] Wir haben eine neue Funktion für die Referenzzuordnung von Proben zu einem benutzerdefinierten Referenzdatensatz oder zu all den Millionen von Zellen veröffentlicht, die von CellXGene gesammelt wurden! Mit Hilfe der faiss-Bibliothek haben wir eine große Zeit- und Speichereffizienz erreicht. Der Index von über 33 Millionen Zellen benötigt nur weniger als 1 GB Speicher und die Ähnlichkeitssuche dauert weniger als 1 Sekunde für 10.000 Abfragezellen auf der GPU . Weitere Informationen finden Sie im Tutorial zur Referenzzuordnung.
scGPT ist jetzt auch in den folgenden Online-Apps verfügbar, sodass Sie einfach mit Ihrem Browser loslegen können!
scGPT funktioniert mit Python >= 3.7.13 und R >=3.6.1. Bitte stellen Sie sicher, dass Sie vor der Installation die richtige Version von Python und R installiert haben.
scGPT ist auf PyPI verfügbar. Um scGPT zu installieren, führen Sie den folgenden Befehl aus:
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"
[Optional] Wir empfehlen die Verwendung von wandb für die Protokollierung und Visualisierung.
pip install wandb
Für die Entwicklung verwenden wir den Poetry-Paketmanager. Um Poetry zu installieren, befolgen Sie die Anweisungen hier.
$ git clone this-repo-url
$ cd scGPT
$ poetry install
Hinweis : Die flash-attn
Abhängigkeit erfordert normalerweise eine bestimmte GPU- und CUDA-Version. Wenn Sie auf Probleme stoßen, finden Sie Installationsanweisungen im Flash-Attn-Repository. Für den Moment, Mai 2023, empfehlen wir die Verwendung von CUDA 11.7 und flash-attn<1.0.5, da verschiedene Probleme bei der Installation neuer Versionen von flash-attn gemeldet wurden.
Hier ist die Liste der vorab trainierten Modelle. Hier finden Sie die Links zum Herunterladen der Checkpoint-Ordner. Wir empfehlen, für die meisten Anwendungen standardmäßig das whole-human
zu verwenden. Wenn Ihr Feinabstimmungsdatensatz einen ähnlichen Zelltypkontext mit den Trainingsdaten der organspezifischen Modelle aufweist, können diese Modelle in der Regel auch eine Wettbewerbsleistung zeigen. In jedem Checkpoint-Ordner wird eine gepaarte Vokabulardatei bereitgestellt, die Gennamen IDs zuordnet. Wenn ENSEMBL-IDs benötigt werden, finden Sie die Konvertierung unter gene_info.csv.
Modellname | Beschreibung | Herunterladen |
---|---|---|
Ganzmensch (empfohlen) | Vorab trainiert auf 33 Millionen normalen menschlichen Zellen. | Link |
kontinuierlich vortrainiert | Für Zero-Shot-Zelleinbettungsaufgaben. | Link |
Gehirn | Vortrainiert auf 13,2 Millionen Gehirnzellen. | Link |
Blut | Vortrainiert auf 10,3 Millionen Blut- und Knochenmarkszellen. | Link |
Herz | Vortrainiert auf 1,8 Millionen Herzzellen | Link |
Lunge | Vorab trainiert auf 2,1 Millionen Lungenzellen | Link |
Niere | Vorab auf 814.000 Nierenzellen trainiert | Link |
Pan-Krebs | Vorab trainiert auf 5,7 Millionen Zellen verschiedener Krebsarten | Link |
Bitte sehen Sie sich unseren Beispielcode in examples/finetune_integration.py an. Standardmäßig geht das Skript davon aus, dass der scGPT-Prüfpunktordner im Verzeichnis examples/save
gespeichert ist.
Wir freuen uns über Beiträge zu scGPT. Bitte senden Sie eine Pull-Anfrage, wenn Sie Ideen oder Fehlerbehebungen haben. Wir freuen uns auch über alle Probleme, die bei der Verwendung von scGPT auftreten.
Wir danken den Autoren folgender Open-Source-Projekte herzlich:
@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 }
}