Skill Deep Learning scvi-tools
Ce skill fournit des conseils pour l'analyse de cellules uniques basée sur le deep learning en utilisant scvi-tools, le framework leader pour les modèles probabilistes en génomique de cellules uniques.
Comment utiliser ce skill
- Identifiez le workflow approprié dans les tableaux de modèles/workflows ci-dessous
- Lisez le fichier de référence correspondant pour les étapes détaillées et le code
- Utilisez les scripts dans
scripts/pour éviter de réécrire du code courant - Pour les problèmes d'installation ou de GPU, consultez
references/environment_setup.md - Pour le débogage, consultez
references/troubleshooting.md
Quand utiliser ce skill
- Quand scvi-tools, scVI, scANVI ou les modèles associés sont mentionnés
- Quand une correction ou intégration de batch basée sur le deep learning est nécessaire
- Quand vous travaillez avec des données multi-modales (CITE-seq, multiome)
- Quand un mappage de référence ou un transfer de labels est requis
- Quand vous analysez des données ATAC-seq ou de transcriptomique spatiale
- Quand vous apprenez des représentations latentes de données de cellules uniques
Guide de sélection de modèles
| Type de données | Modèle | Cas d'usage principal |
|---|---|---|
| scRNA-seq | scVI | Intégration non supervisée, DE, imputation |
| scRNA-seq + labels | scANVI | Transfer de labels, intégration semi-supervisée |
| CITE-seq (RNA+protein) | totalVI | Intégration multi-modale, débruitage de protéines |
| scATAC-seq | PeakVI | Analyse d'accessibilité chromatinienne |
| Multiome (RNA+ATAC) | MultiVI | Analyse jointe de modalités |
| Spatial + référence scRNA | DestVI | Déconvolution de types cellulaires |
| RNA velocity | veloVI | Dynamiques transcriptionnelles |
| Cross-technologie | sysVI | Correction de batch au niveau système |
Fichiers de référence de workflows
| Workflow | Fichier de référence | Description |
|---|---|---|
| Environment Setup | references/environment_setup.md |
Installation, GPU, infos de version |
| Data Preparation | references/data_preparation.md |
Formatage de données pour tout modèle |
| scRNA Integration | references/scrna_integration.md |
Correction de batch scVI/scANVI |
| ATAC-seq Analysis | references/atac_peakvi.md |
PeakVI pour l'accessibilité |
| CITE-seq Analysis | references/citeseq_totalvi.md |
totalVI pour protein+RNA |
| Multiome Analysis | references/multiome_multivi.md |
MultiVI pour RNA+ATAC |
| Spatial Deconvolution | references/spatial_deconvolution.md |
Analyse spatiale DestVI |
| Label Transfer | references/label_transfer.md |
Mappage de référence scANVI |
| scArches Mapping | references/scarches_mapping.md |
Mappage query-to-reference |
| Batch Correction | references/batch_correction_sysvi.md |
Méthodes de batch avancées |
| RNA Velocity | references/rna_velocity_velovi.md |
Dynamiques veloVI |
| Troubleshooting | references/troubleshooting.md |
Problèmes courants et solutions |
Scripts CLI
Scripts modulaires pour les workflows courants. À chaîner ou modifier selon les besoins.
Pipeline Scripts
| Script | Objectif | Utilisation |
|---|---|---|
prepare_data.py |
QC, filtrage, sélection HVG | python scripts/prepare_data.py raw.h5ad prepared.h5ad --batch-key batch |
train_model.py |
Entraîner n'importe quel modèle scvi-tools | python scripts/train_model.py prepared.h5ad results/ --model scvi |
cluster_embed.py |
Neighbors, UMAP, Leiden | python scripts/cluster_embed.py adata.h5ad results/ |
differential_expression.py |
Analyse DE | python scripts/differential_expression.py model/ adata.h5ad de.csv --groupby leiden |
transfer_labels.py |
Transfer de labels avec scANVI | python scripts/transfer_labels.py ref_model/ query.h5ad results/ |
integrate_datasets.py |
Intégration multi-datasets | python scripts/integrate_datasets.py results/ data1.h5ad data2.h5ad |
validate_adata.py |
Vérifier la compatibilité des données | python scripts/validate_adata.py data.h5ad --batch-key batch |
Exemple de workflow
# 1. Valider les données d'entrée
python scripts/validate_adata.py raw.h5ad --batch-key batch --suggest
# 2. Préparer les données (QC, sélection HVG)
python scripts/prepare_data.py raw.h5ad prepared.h5ad --batch-key batch --n-hvgs 2000
# 3. Entraîner le modèle
python scripts/train_model.py prepared.h5ad results/ --model scvi --batch-key batch
# 4. Clustériser et visualiser
python scripts/cluster_embed.py results/adata_trained.h5ad results/ --resolution 0.8
# 5. Expression différentielle
python scripts/differential_expression.py results/model results/adata_clustered.h5ad results/de.csv --groupby leiden
Utilitaires Python
scripts/model_utils.py fournit des fonctions importables pour les workflows personnalisés :
| Fonction | Objectif |
|---|---|
prepare_adata() |
Préparation de données (QC, HVG, setup de layers) |
train_scvi() |
Entraîner scVI ou scANVI |
evaluate_integration() |
Calculer les métriques d'intégration |
get_marker_genes() |
Extraire les marqueurs DE |
save_results() |
Sauvegarder modèle, données, graphiques |
auto_select_model() |
Suggérer le meilleur modèle |
quick_clustering() |
Neighbors + UMAP + Leiden |
Exigences critiques
-
Comptages bruts requis : les modèles scvi-tools nécessitent des données de comptages entiers
adata.layers["counts"] = adata.X.copy() # Avant normalisation scvi.model.SCVI.setup_anndata(adata, layer="counts") -
Sélection HVG : utiliser 2000-4000 gènes hautement variables
sc.pp.highly_variable_genes(adata, n_top_genes=2000, batch_key="batch", layer="counts", flavor="seurat_v3") adata = adata[:, adata.var['highly_variable']].copy() -
Informations de batch : spécifier batch_key pour l'intégration
scvi.model.SCVI.setup_anndata(adata, layer="counts", batch_key="batch")
Arbre de décision rapide
Besoin d'intégrer des données scRNA-seq ?
├── Avez-vous des labels de types cellulaires ? → scANVI (references/label_transfer.md)
└── Pas de labels ? → scVI (references/scrna_integration.md)
Avez-vous des données multi-modales ?
├── CITE-seq (RNA + protein) ? → totalVI (references/citeseq_totalvi.md)
├── Multiome (RNA + ATAC) ? → MultiVI (references/multiome_multivi.md)
└── scATAC-seq uniquement ? → PeakVI (references/atac_peakvi.md)
Avez-vous des données spatiales ?
└── Besoin de déconvolution de types cellulaires ? → DestVI (references/spatial_deconvolution.md)
Avez-vous un modèle de référence pré-entraîné ?
└── Mapper query vers référence ? → scArches (references/scarches_mapping.md)
Besoin de RNA velocity ?
└── veloVI (references/rna_velocity_velovi.md)
Forts effets de batch cross-technologie ?
└── sysVI (references/batch_correction_sysvi.md)