scvi-tools

Par anthropics · knowledge-work-plugins

Deep learning pour l'analyse de cellules uniques avec scvi-tools. Ce skill doit être utilisé lorsque les utilisateurs ont besoin de : (1) l'intégration de données et la correction de batch avec scVI/scANVI, (2) l'analyse ATAC-seq avec PeakVI, (3) l'analyse multi-modale CITE-seq avec totalVI, (4) l'analyse multiome RNA+ATAC avec MultiVI, (5) la déconvolution de transcriptomique spatiale avec DestVI, (6) le transfert de labels et le mapping de référence avec scANVI/scArches, (7) la RNA velocity avec veloVI, ou (8) toute méthode de cellules uniques basée sur le deep learning. Les déclencheurs incluent les mentions de scVI, scANVI, totalVI, PeakVI, MultiVI, DestVI, veloVI, sysVI, scArches, variational autoencoder, VAE, batch correction, intégration de données, multi-modal, CITE-seq, multiome, reference mapping, latent space.

npx skills add https://github.com/anthropics/knowledge-work-plugins --skill scvi-tools

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

  1. Identifiez le workflow approprié dans les tableaux de modèles/workflows ci-dessous
  2. Lisez le fichier de référence correspondant pour les étapes détaillées et le code
  3. Utilisez les scripts dans scripts/ pour éviter de réécrire du code courant
  4. Pour les problèmes d'installation ou de GPU, consultez references/environment_setup.md
  5. 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

  1. 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")
  2. 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()
  3. 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)

Ressources clés

Skills similaires