[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-anthropic-scvi-tools":3,"mdc--3gwngf-key":40,"related-repo-anthropic-scvi-tools":1506,"related-org-anthropic-scvi-tools":1589},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":29,"repoUrl":30,"updatedAt":31,"license":32,"forks":33,"topics":34,"repo":35,"sourceUrl":38,"mdContent":39},"scvi-tools","analyze single-cell data with scvi-tools","Deep learning for single-cell analysis using scvi-tools. This skill should be used when users need (1) data integration and batch correction with scVI\u002FscANVI, (2) ATAC-seq analysis with PeakVI, (3) CITE-seq multi-modal analysis with totalVI, (4) multiome RNA+ATAC analysis with MultiVI, (5) spatial transcriptomics deconvolution with DestVI, (6) label transfer and reference mapping with scANVI\u002FscArches, (7) RNA velocity with veloVI, or (8) any deep learning-based single-cell method. Triggers include mentions of scVI, scANVI, totalVI, PeakVI, MultiVI, DestVI, veloVI, sysVI, scArches, variational autoencoder, VAE, batch correction, data integration, multi-modal, CITE-seq, multiome, reference mapping, latent space.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"anthropic","Anthropic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fanthropic.png","anthropics",[13,17,20,23,26],{"name":14,"slug":15,"type":16},"Single-Cell","single-cell","tag",{"name":18,"slug":19,"type":16},"Deep Learning","deep-learning",{"name":21,"slug":22,"type":16},"Life Sciences","life-sciences",{"name":24,"slug":25,"type":16},"Bioinformatics","bioinformatics",{"name":27,"slug":28,"type":16},"Python","python",537,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Flife-sciences","2026-04-06T17:57:02.70437",null,101,[],{"repoUrl":30,"stars":29,"forks":33,"topics":36,"description":37},[],"Repo for the Claude Code Marketplace to use with the Claude for Life Sciences Launch. This will continue to host the marketplace.json long-term, but not the actual MCP servers.","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Flife-sciences\u002Ftree\u002FHEAD\u002Fscvi-tools","---\nname: scvi-tools\ndescription: Deep learning for single-cell analysis using scvi-tools. This skill should be used when users need (1) data integration and batch correction with scVI\u002FscANVI, (2) ATAC-seq analysis with PeakVI, (3) CITE-seq multi-modal analysis with totalVI, (4) multiome RNA+ATAC analysis with MultiVI, (5) spatial transcriptomics deconvolution with DestVI, (6) label transfer and reference mapping with scANVI\u002FscArches, (7) RNA velocity with veloVI, or (8) any deep learning-based single-cell method. Triggers include mentions of scVI, scANVI, totalVI, PeakVI, MultiVI, DestVI, veloVI, sysVI, scArches, variational autoencoder, VAE, batch correction, data integration, multi-modal, CITE-seq, multiome, reference mapping, latent space.\n---\n\n# scvi-tools Deep Learning Skill\n\nThis skill provides guidance for deep learning-based single-cell analysis using scvi-tools, the leading framework for probabilistic models in single-cell genomics.\n\n## How to Use This Skill\n\n1. Identify the appropriate workflow from the model\u002Fworkflow tables below\n2. Read the corresponding reference file for detailed steps and code\n3. Use scripts in `scripts\u002F` to avoid rewriting common code\n4. For installation or GPU issues, consult `references\u002Fenvironment_setup.md`\n5. For debugging, consult `references\u002Ftroubleshooting.md`\n\n## When to Use This Skill\n\n- When scvi-tools, scVI, scANVI, or related models are mentioned\n- When deep learning-based batch correction or integration is needed\n- When working with multi-modal data (CITE-seq, multiome)\n- When reference mapping or label transfer is required\n- When analyzing ATAC-seq or spatial transcriptomics data\n- When learning latent representations of single-cell data\n\n## Model Selection Guide\n\n| Data Type | Model | Primary Use Case |\n|-----------|-------|------------------|\n| scRNA-seq | **scVI** | Unsupervised integration, DE, imputation |\n| scRNA-seq + labels | **scANVI** | Label transfer, semi-supervised integration |\n| CITE-seq (RNA+protein) | **totalVI** | Multi-modal integration, protein denoising |\n| scATAC-seq | **PeakVI** | Chromatin accessibility analysis |\n| Multiome (RNA+ATAC) | **MultiVI** | Joint modality analysis |\n| Spatial + scRNA reference | **DestVI** | Cell type deconvolution |\n| RNA velocity | **veloVI** | Transcriptional dynamics |\n| Cross-technology | **sysVI** | System-level batch correction |\n\n## Workflow Reference Files\n\n| Workflow | Reference File | Description |\n|----------|---------------|-------------|\n| Environment Setup | `references\u002Fenvironment_setup.md` | Installation, GPU, version info |\n| Data Preparation | `references\u002Fdata_preparation.md` | Formatting data for any model |\n| scRNA Integration | `references\u002Fscrna_integration.md` | scVI\u002FscANVI batch correction |\n| ATAC-seq Analysis | `references\u002Fatac_peakvi.md` | PeakVI for accessibility |\n| CITE-seq Analysis | `references\u002Fciteseq_totalvi.md` | totalVI for protein+RNA |\n| Multiome Analysis | `references\u002Fmultiome_multivi.md` | MultiVI for RNA+ATAC |\n| Spatial Deconvolution | `references\u002Fspatial_deconvolution.md` | DestVI spatial analysis |\n| Label Transfer | `references\u002Flabel_transfer.md` | scANVI reference mapping |\n| scArches Mapping | `references\u002Fscarches_mapping.md` | Query-to-reference mapping |\n| Batch Correction | `references\u002Fbatch_correction_sysvi.md` | Advanced batch methods |\n| RNA Velocity | `references\u002Frna_velocity_velovi.md` | veloVI dynamics |\n| Troubleshooting | `references\u002Ftroubleshooting.md` | Common issues and solutions |\n\n## CLI Scripts\n\nModular scripts for common workflows. Chain together or modify as needed.\n\n### Pipeline Scripts\n\n| Script | Purpose | Usage |\n|--------|---------|-------|\n| `prepare_data.py` | QC, filter, HVG selection | `python scripts\u002Fprepare_data.py raw.h5ad prepared.h5ad --batch-key batch` |\n| `train_model.py` | Train any scvi-tools model | `python scripts\u002Ftrain_model.py prepared.h5ad results\u002F --model scvi` |\n| `cluster_embed.py` | Neighbors, UMAP, Leiden | `python scripts\u002Fcluster_embed.py adata.h5ad results\u002F` |\n| `differential_expression.py` | DE analysis | `python scripts\u002Fdifferential_expression.py model\u002F adata.h5ad de.csv --groupby leiden` |\n| `transfer_labels.py` | Label transfer with scANVI | `python scripts\u002Ftransfer_labels.py ref_model\u002F query.h5ad results\u002F` |\n| `integrate_datasets.py` | Multi-dataset integration | `python scripts\u002Fintegrate_datasets.py results\u002F data1.h5ad data2.h5ad` |\n| `validate_adata.py` | Check data compatibility | `python scripts\u002Fvalidate_adata.py data.h5ad --batch-key batch` |\n\n### Example Workflow\n\n```bash\n# 1. Validate input data\npython scripts\u002Fvalidate_adata.py raw.h5ad --batch-key batch --suggest\n\n# 2. Prepare data (QC, HVG selection)\npython scripts\u002Fprepare_data.py raw.h5ad prepared.h5ad --batch-key batch --n-hvgs 2000\n\n# 3. Train model\npython scripts\u002Ftrain_model.py prepared.h5ad results\u002F --model scvi --batch-key batch\n\n# 4. Cluster and visualize\npython scripts\u002Fcluster_embed.py results\u002Fadata_trained.h5ad results\u002F --resolution 0.8\n\n# 5. Differential expression\npython scripts\u002Fdifferential_expression.py results\u002Fmodel results\u002Fadata_clustered.h5ad results\u002Fde.csv --groupby leiden\n```\n\n### Python Utilities\n\nThe `scripts\u002Fmodel_utils.py` provides importable functions for custom workflows:\n\n| Function | Purpose |\n|----------|---------|\n| `prepare_adata()` | Data preparation (QC, HVG, layer setup) |\n| `train_scvi()` | Train scVI or scANVI |\n| `evaluate_integration()` | Compute integration metrics |\n| `get_marker_genes()` | Extract DE markers |\n| `save_results()` | Save model, data, plots |\n| `auto_select_model()` | Suggest best model |\n| `quick_clustering()` | Neighbors + UMAP + Leiden |\n\n## Critical Requirements\n\n1. **Raw counts required**: scvi-tools models require integer count data\n   ```python\n   adata.layers[\"counts\"] = adata.X.copy()  # Before normalization\n   scvi.model.SCVI.setup_anndata(adata, layer=\"counts\")\n   ```\n\n2. **HVG selection**: Use 2000-4000 highly variable genes\n   ```python\n   sc.pp.highly_variable_genes(adata, n_top_genes=2000, batch_key=\"batch\", layer=\"counts\", flavor=\"seurat_v3\")\n   adata = adata[:, adata.var['highly_variable']].copy()\n   ```\n\n3. **Batch information**: Specify batch_key for integration\n   ```python\n   scvi.model.SCVI.setup_anndata(adata, layer=\"counts\", batch_key=\"batch\")\n   ```\n\n## Quick Decision Tree\n\n```\nNeed to integrate scRNA-seq data?\n├── Have cell type labels? → scANVI (references\u002Flabel_transfer.md)\n└── No labels? → scVI (references\u002Fscrna_integration.md)\n\nHave multi-modal data?\n├── CITE-seq (RNA + protein)? → totalVI (references\u002Fciteseq_totalvi.md)\n├── Multiome (RNA + ATAC)? → MultiVI (references\u002Fmultiome_multivi.md)\n└── scATAC-seq only? → PeakVI (references\u002Fatac_peakvi.md)\n\nHave spatial data?\n└── Need cell type deconvolution? → DestVI (references\u002Fspatial_deconvolution.md)\n\nHave pre-trained reference model?\n└── Map query to reference? → scArches (references\u002Fscarches_mapping.md)\n\nNeed RNA velocity?\n└── veloVI (references\u002Frna_velocity_velovi.md)\n\nStrong cross-technology batch effects?\n└── sysVI (references\u002Fbatch_correction_sysvi.md)\n```\n\n## Key Resources\n\n- [scvi-tools Documentation](https:\u002F\u002Fdocs.scvi-tools.org\u002F)\n- [scvi-tools Tutorials](https:\u002F\u002Fdocs.scvi-tools.org\u002Fen\u002Fstable\u002Ftutorials\u002Findex.html)\n- [Model Hub](https:\u002F\u002Fhuggingface.co\u002Fscvi-tools)\n- [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fscverse\u002Fscvi-tools\u002Fissues)\n",{"data":41,"body":42},{"name":4,"description":6},{"type":43,"children":44},"root",[45,54,60,67,118,124,158,164,366,372,661,667,672,679,888,894,1174,1180,1193,1333,1339,1433,1439,1449,1455,1500],{"type":46,"tag":47,"props":48,"children":50},"element","h1",{"id":49},"scvi-tools-deep-learning-skill",[51],{"type":52,"value":53},"text","scvi-tools Deep Learning Skill",{"type":46,"tag":55,"props":56,"children":57},"p",{},[58],{"type":52,"value":59},"This skill provides guidance for deep learning-based single-cell analysis using scvi-tools, the leading framework for probabilistic models in single-cell genomics.",{"type":46,"tag":61,"props":62,"children":64},"h2",{"id":63},"how-to-use-this-skill",[65],{"type":52,"value":66},"How to Use This Skill",{"type":46,"tag":68,"props":69,"children":70},"ol",{},[71,77,82,96,107],{"type":46,"tag":72,"props":73,"children":74},"li",{},[75],{"type":52,"value":76},"Identify the appropriate workflow from the model\u002Fworkflow tables below",{"type":46,"tag":72,"props":78,"children":79},{},[80],{"type":52,"value":81},"Read the corresponding reference file for detailed steps and code",{"type":46,"tag":72,"props":83,"children":84},{},[85,87,94],{"type":52,"value":86},"Use scripts in ",{"type":46,"tag":88,"props":89,"children":91},"code",{"className":90},[],[92],{"type":52,"value":93},"scripts\u002F",{"type":52,"value":95}," to avoid rewriting common code",{"type":46,"tag":72,"props":97,"children":98},{},[99,101],{"type":52,"value":100},"For installation or GPU issues, consult ",{"type":46,"tag":88,"props":102,"children":104},{"className":103},[],[105],{"type":52,"value":106},"references\u002Fenvironment_setup.md",{"type":46,"tag":72,"props":108,"children":109},{},[110,112],{"type":52,"value":111},"For debugging, consult ",{"type":46,"tag":88,"props":113,"children":115},{"className":114},[],[116],{"type":52,"value":117},"references\u002Ftroubleshooting.md",{"type":46,"tag":61,"props":119,"children":121},{"id":120},"when-to-use-this-skill",[122],{"type":52,"value":123},"When to Use This Skill",{"type":46,"tag":125,"props":126,"children":127},"ul",{},[128,133,138,143,148,153],{"type":46,"tag":72,"props":129,"children":130},{},[131],{"type":52,"value":132},"When scvi-tools, scVI, scANVI, or related models are mentioned",{"type":46,"tag":72,"props":134,"children":135},{},[136],{"type":52,"value":137},"When deep learning-based batch correction or integration is needed",{"type":46,"tag":72,"props":139,"children":140},{},[141],{"type":52,"value":142},"When working with multi-modal data (CITE-seq, multiome)",{"type":46,"tag":72,"props":144,"children":145},{},[146],{"type":52,"value":147},"When reference mapping or label transfer is required",{"type":46,"tag":72,"props":149,"children":150},{},[151],{"type":52,"value":152},"When analyzing ATAC-seq or spatial transcriptomics data",{"type":46,"tag":72,"props":154,"children":155},{},[156],{"type":52,"value":157},"When learning latent representations of single-cell data",{"type":46,"tag":61,"props":159,"children":161},{"id":160},"model-selection-guide",[162],{"type":52,"value":163},"Model Selection Guide",{"type":46,"tag":165,"props":166,"children":167},"table",{},[168,192],{"type":46,"tag":169,"props":170,"children":171},"thead",{},[172],{"type":46,"tag":173,"props":174,"children":175},"tr",{},[176,182,187],{"type":46,"tag":177,"props":178,"children":179},"th",{},[180],{"type":52,"value":181},"Data Type",{"type":46,"tag":177,"props":183,"children":184},{},[185],{"type":52,"value":186},"Model",{"type":46,"tag":177,"props":188,"children":189},{},[190],{"type":52,"value":191},"Primary Use Case",{"type":46,"tag":193,"props":194,"children":195},"tbody",{},[196,219,240,261,282,303,324,345],{"type":46,"tag":173,"props":197,"children":198},{},[199,205,214],{"type":46,"tag":200,"props":201,"children":202},"td",{},[203],{"type":52,"value":204},"scRNA-seq",{"type":46,"tag":200,"props":206,"children":207},{},[208],{"type":46,"tag":209,"props":210,"children":211},"strong",{},[212],{"type":52,"value":213},"scVI",{"type":46,"tag":200,"props":215,"children":216},{},[217],{"type":52,"value":218},"Unsupervised integration, DE, imputation",{"type":46,"tag":173,"props":220,"children":221},{},[222,227,235],{"type":46,"tag":200,"props":223,"children":224},{},[225],{"type":52,"value":226},"scRNA-seq + labels",{"type":46,"tag":200,"props":228,"children":229},{},[230],{"type":46,"tag":209,"props":231,"children":232},{},[233],{"type":52,"value":234},"scANVI",{"type":46,"tag":200,"props":236,"children":237},{},[238],{"type":52,"value":239},"Label transfer, semi-supervised integration",{"type":46,"tag":173,"props":241,"children":242},{},[243,248,256],{"type":46,"tag":200,"props":244,"children":245},{},[246],{"type":52,"value":247},"CITE-seq (RNA+protein)",{"type":46,"tag":200,"props":249,"children":250},{},[251],{"type":46,"tag":209,"props":252,"children":253},{},[254],{"type":52,"value":255},"totalVI",{"type":46,"tag":200,"props":257,"children":258},{},[259],{"type":52,"value":260},"Multi-modal integration, protein denoising",{"type":46,"tag":173,"props":262,"children":263},{},[264,269,277],{"type":46,"tag":200,"props":265,"children":266},{},[267],{"type":52,"value":268},"scATAC-seq",{"type":46,"tag":200,"props":270,"children":271},{},[272],{"type":46,"tag":209,"props":273,"children":274},{},[275],{"type":52,"value":276},"PeakVI",{"type":46,"tag":200,"props":278,"children":279},{},[280],{"type":52,"value":281},"Chromatin accessibility analysis",{"type":46,"tag":173,"props":283,"children":284},{},[285,290,298],{"type":46,"tag":200,"props":286,"children":287},{},[288],{"type":52,"value":289},"Multiome (RNA+ATAC)",{"type":46,"tag":200,"props":291,"children":292},{},[293],{"type":46,"tag":209,"props":294,"children":295},{},[296],{"type":52,"value":297},"MultiVI",{"type":46,"tag":200,"props":299,"children":300},{},[301],{"type":52,"value":302},"Joint modality analysis",{"type":46,"tag":173,"props":304,"children":305},{},[306,311,319],{"type":46,"tag":200,"props":307,"children":308},{},[309],{"type":52,"value":310},"Spatial + scRNA reference",{"type":46,"tag":200,"props":312,"children":313},{},[314],{"type":46,"tag":209,"props":315,"children":316},{},[317],{"type":52,"value":318},"DestVI",{"type":46,"tag":200,"props":320,"children":321},{},[322],{"type":52,"value":323},"Cell type deconvolution",{"type":46,"tag":173,"props":325,"children":326},{},[327,332,340],{"type":46,"tag":200,"props":328,"children":329},{},[330],{"type":52,"value":331},"RNA velocity",{"type":46,"tag":200,"props":333,"children":334},{},[335],{"type":46,"tag":209,"props":336,"children":337},{},[338],{"type":52,"value":339},"veloVI",{"type":46,"tag":200,"props":341,"children":342},{},[343],{"type":52,"value":344},"Transcriptional dynamics",{"type":46,"tag":173,"props":346,"children":347},{},[348,353,361],{"type":46,"tag":200,"props":349,"children":350},{},[351],{"type":52,"value":352},"Cross-technology",{"type":46,"tag":200,"props":354,"children":355},{},[356],{"type":46,"tag":209,"props":357,"children":358},{},[359],{"type":52,"value":360},"sysVI",{"type":46,"tag":200,"props":362,"children":363},{},[364],{"type":52,"value":365},"System-level batch correction",{"type":46,"tag":61,"props":367,"children":369},{"id":368},"workflow-reference-files",[370],{"type":52,"value":371},"Workflow Reference Files",{"type":46,"tag":165,"props":373,"children":374},{},[375,396],{"type":46,"tag":169,"props":376,"children":377},{},[378],{"type":46,"tag":173,"props":379,"children":380},{},[381,386,391],{"type":46,"tag":177,"props":382,"children":383},{},[384],{"type":52,"value":385},"Workflow",{"type":46,"tag":177,"props":387,"children":388},{},[389],{"type":52,"value":390},"Reference File",{"type":46,"tag":177,"props":392,"children":393},{},[394],{"type":52,"value":395},"Description",{"type":46,"tag":193,"props":397,"children":398},{},[399,420,442,464,486,508,530,552,574,596,618,640],{"type":46,"tag":173,"props":400,"children":401},{},[402,407,415],{"type":46,"tag":200,"props":403,"children":404},{},[405],{"type":52,"value":406},"Environment Setup",{"type":46,"tag":200,"props":408,"children":409},{},[410],{"type":46,"tag":88,"props":411,"children":413},{"className":412},[],[414],{"type":52,"value":106},{"type":46,"tag":200,"props":416,"children":417},{},[418],{"type":52,"value":419},"Installation, GPU, version info",{"type":46,"tag":173,"props":421,"children":422},{},[423,428,437],{"type":46,"tag":200,"props":424,"children":425},{},[426],{"type":52,"value":427},"Data Preparation",{"type":46,"tag":200,"props":429,"children":430},{},[431],{"type":46,"tag":88,"props":432,"children":434},{"className":433},[],[435],{"type":52,"value":436},"references\u002Fdata_preparation.md",{"type":46,"tag":200,"props":438,"children":439},{},[440],{"type":52,"value":441},"Formatting data for any model",{"type":46,"tag":173,"props":443,"children":444},{},[445,450,459],{"type":46,"tag":200,"props":446,"children":447},{},[448],{"type":52,"value":449},"scRNA Integration",{"type":46,"tag":200,"props":451,"children":452},{},[453],{"type":46,"tag":88,"props":454,"children":456},{"className":455},[],[457],{"type":52,"value":458},"references\u002Fscrna_integration.md",{"type":46,"tag":200,"props":460,"children":461},{},[462],{"type":52,"value":463},"scVI\u002FscANVI batch correction",{"type":46,"tag":173,"props":465,"children":466},{},[467,472,481],{"type":46,"tag":200,"props":468,"children":469},{},[470],{"type":52,"value":471},"ATAC-seq Analysis",{"type":46,"tag":200,"props":473,"children":474},{},[475],{"type":46,"tag":88,"props":476,"children":478},{"className":477},[],[479],{"type":52,"value":480},"references\u002Fatac_peakvi.md",{"type":46,"tag":200,"props":482,"children":483},{},[484],{"type":52,"value":485},"PeakVI for accessibility",{"type":46,"tag":173,"props":487,"children":488},{},[489,494,503],{"type":46,"tag":200,"props":490,"children":491},{},[492],{"type":52,"value":493},"CITE-seq Analysis",{"type":46,"tag":200,"props":495,"children":496},{},[497],{"type":46,"tag":88,"props":498,"children":500},{"className":499},[],[501],{"type":52,"value":502},"references\u002Fciteseq_totalvi.md",{"type":46,"tag":200,"props":504,"children":505},{},[506],{"type":52,"value":507},"totalVI for protein+RNA",{"type":46,"tag":173,"props":509,"children":510},{},[511,516,525],{"type":46,"tag":200,"props":512,"children":513},{},[514],{"type":52,"value":515},"Multiome Analysis",{"type":46,"tag":200,"props":517,"children":518},{},[519],{"type":46,"tag":88,"props":520,"children":522},{"className":521},[],[523],{"type":52,"value":524},"references\u002Fmultiome_multivi.md",{"type":46,"tag":200,"props":526,"children":527},{},[528],{"type":52,"value":529},"MultiVI for RNA+ATAC",{"type":46,"tag":173,"props":531,"children":532},{},[533,538,547],{"type":46,"tag":200,"props":534,"children":535},{},[536],{"type":52,"value":537},"Spatial Deconvolution",{"type":46,"tag":200,"props":539,"children":540},{},[541],{"type":46,"tag":88,"props":542,"children":544},{"className":543},[],[545],{"type":52,"value":546},"references\u002Fspatial_deconvolution.md",{"type":46,"tag":200,"props":548,"children":549},{},[550],{"type":52,"value":551},"DestVI spatial analysis",{"type":46,"tag":173,"props":553,"children":554},{},[555,560,569],{"type":46,"tag":200,"props":556,"children":557},{},[558],{"type":52,"value":559},"Label Transfer",{"type":46,"tag":200,"props":561,"children":562},{},[563],{"type":46,"tag":88,"props":564,"children":566},{"className":565},[],[567],{"type":52,"value":568},"references\u002Flabel_transfer.md",{"type":46,"tag":200,"props":570,"children":571},{},[572],{"type":52,"value":573},"scANVI reference mapping",{"type":46,"tag":173,"props":575,"children":576},{},[577,582,591],{"type":46,"tag":200,"props":578,"children":579},{},[580],{"type":52,"value":581},"scArches Mapping",{"type":46,"tag":200,"props":583,"children":584},{},[585],{"type":46,"tag":88,"props":586,"children":588},{"className":587},[],[589],{"type":52,"value":590},"references\u002Fscarches_mapping.md",{"type":46,"tag":200,"props":592,"children":593},{},[594],{"type":52,"value":595},"Query-to-reference mapping",{"type":46,"tag":173,"props":597,"children":598},{},[599,604,613],{"type":46,"tag":200,"props":600,"children":601},{},[602],{"type":52,"value":603},"Batch Correction",{"type":46,"tag":200,"props":605,"children":606},{},[607],{"type":46,"tag":88,"props":608,"children":610},{"className":609},[],[611],{"type":52,"value":612},"references\u002Fbatch_correction_sysvi.md",{"type":46,"tag":200,"props":614,"children":615},{},[616],{"type":52,"value":617},"Advanced batch methods",{"type":46,"tag":173,"props":619,"children":620},{},[621,626,635],{"type":46,"tag":200,"props":622,"children":623},{},[624],{"type":52,"value":625},"RNA Velocity",{"type":46,"tag":200,"props":627,"children":628},{},[629],{"type":46,"tag":88,"props":630,"children":632},{"className":631},[],[633],{"type":52,"value":634},"references\u002Frna_velocity_velovi.md",{"type":46,"tag":200,"props":636,"children":637},{},[638],{"type":52,"value":639},"veloVI dynamics",{"type":46,"tag":173,"props":641,"children":642},{},[643,648,656],{"type":46,"tag":200,"props":644,"children":645},{},[646],{"type":52,"value":647},"Troubleshooting",{"type":46,"tag":200,"props":649,"children":650},{},[651],{"type":46,"tag":88,"props":652,"children":654},{"className":653},[],[655],{"type":52,"value":117},{"type":46,"tag":200,"props":657,"children":658},{},[659],{"type":52,"value":660},"Common issues and solutions",{"type":46,"tag":61,"props":662,"children":664},{"id":663},"cli-scripts",[665],{"type":52,"value":666},"CLI Scripts",{"type":46,"tag":55,"props":668,"children":669},{},[670],{"type":52,"value":671},"Modular scripts for common workflows. Chain together or modify as needed.",{"type":46,"tag":673,"props":674,"children":676},"h3",{"id":675},"pipeline-scripts",[677],{"type":52,"value":678},"Pipeline Scripts",{"type":46,"tag":165,"props":680,"children":681},{},[682,703],{"type":46,"tag":169,"props":683,"children":684},{},[685],{"type":46,"tag":173,"props":686,"children":687},{},[688,693,698],{"type":46,"tag":177,"props":689,"children":690},{},[691],{"type":52,"value":692},"Script",{"type":46,"tag":177,"props":694,"children":695},{},[696],{"type":52,"value":697},"Purpose",{"type":46,"tag":177,"props":699,"children":700},{},[701],{"type":52,"value":702},"Usage",{"type":46,"tag":193,"props":704,"children":705},{},[706,732,758,784,810,836,862],{"type":46,"tag":173,"props":707,"children":708},{},[709,718,723],{"type":46,"tag":200,"props":710,"children":711},{},[712],{"type":46,"tag":88,"props":713,"children":715},{"className":714},[],[716],{"type":52,"value":717},"prepare_data.py",{"type":46,"tag":200,"props":719,"children":720},{},[721],{"type":52,"value":722},"QC, filter, HVG selection",{"type":46,"tag":200,"props":724,"children":725},{},[726],{"type":46,"tag":88,"props":727,"children":729},{"className":728},[],[730],{"type":52,"value":731},"python scripts\u002Fprepare_data.py raw.h5ad prepared.h5ad --batch-key batch",{"type":46,"tag":173,"props":733,"children":734},{},[735,744,749],{"type":46,"tag":200,"props":736,"children":737},{},[738],{"type":46,"tag":88,"props":739,"children":741},{"className":740},[],[742],{"type":52,"value":743},"train_model.py",{"type":46,"tag":200,"props":745,"children":746},{},[747],{"type":52,"value":748},"Train any scvi-tools model",{"type":46,"tag":200,"props":750,"children":751},{},[752],{"type":46,"tag":88,"props":753,"children":755},{"className":754},[],[756],{"type":52,"value":757},"python scripts\u002Ftrain_model.py prepared.h5ad results\u002F --model scvi",{"type":46,"tag":173,"props":759,"children":760},{},[761,770,775],{"type":46,"tag":200,"props":762,"children":763},{},[764],{"type":46,"tag":88,"props":765,"children":767},{"className":766},[],[768],{"type":52,"value":769},"cluster_embed.py",{"type":46,"tag":200,"props":771,"children":772},{},[773],{"type":52,"value":774},"Neighbors, UMAP, Leiden",{"type":46,"tag":200,"props":776,"children":777},{},[778],{"type":46,"tag":88,"props":779,"children":781},{"className":780},[],[782],{"type":52,"value":783},"python scripts\u002Fcluster_embed.py adata.h5ad results\u002F",{"type":46,"tag":173,"props":785,"children":786},{},[787,796,801],{"type":46,"tag":200,"props":788,"children":789},{},[790],{"type":46,"tag":88,"props":791,"children":793},{"className":792},[],[794],{"type":52,"value":795},"differential_expression.py",{"type":46,"tag":200,"props":797,"children":798},{},[799],{"type":52,"value":800},"DE analysis",{"type":46,"tag":200,"props":802,"children":803},{},[804],{"type":46,"tag":88,"props":805,"children":807},{"className":806},[],[808],{"type":52,"value":809},"python scripts\u002Fdifferential_expression.py model\u002F adata.h5ad de.csv --groupby leiden",{"type":46,"tag":173,"props":811,"children":812},{},[813,822,827],{"type":46,"tag":200,"props":814,"children":815},{},[816],{"type":46,"tag":88,"props":817,"children":819},{"className":818},[],[820],{"type":52,"value":821},"transfer_labels.py",{"type":46,"tag":200,"props":823,"children":824},{},[825],{"type":52,"value":826},"Label transfer with scANVI",{"type":46,"tag":200,"props":828,"children":829},{},[830],{"type":46,"tag":88,"props":831,"children":833},{"className":832},[],[834],{"type":52,"value":835},"python scripts\u002Ftransfer_labels.py ref_model\u002F query.h5ad results\u002F",{"type":46,"tag":173,"props":837,"children":838},{},[839,848,853],{"type":46,"tag":200,"props":840,"children":841},{},[842],{"type":46,"tag":88,"props":843,"children":845},{"className":844},[],[846],{"type":52,"value":847},"integrate_datasets.py",{"type":46,"tag":200,"props":849,"children":850},{},[851],{"type":52,"value":852},"Multi-dataset integration",{"type":46,"tag":200,"props":854,"children":855},{},[856],{"type":46,"tag":88,"props":857,"children":859},{"className":858},[],[860],{"type":52,"value":861},"python scripts\u002Fintegrate_datasets.py results\u002F data1.h5ad data2.h5ad",{"type":46,"tag":173,"props":863,"children":864},{},[865,874,879],{"type":46,"tag":200,"props":866,"children":867},{},[868],{"type":46,"tag":88,"props":869,"children":871},{"className":870},[],[872],{"type":52,"value":873},"validate_adata.py",{"type":46,"tag":200,"props":875,"children":876},{},[877],{"type":52,"value":878},"Check data compatibility",{"type":46,"tag":200,"props":880,"children":881},{},[882],{"type":46,"tag":88,"props":883,"children":885},{"className":884},[],[886],{"type":52,"value":887},"python scripts\u002Fvalidate_adata.py data.h5ad --batch-key batch",{"type":46,"tag":673,"props":889,"children":891},{"id":890},"example-workflow",[892],{"type":52,"value":893},"Example Workflow",{"type":46,"tag":895,"props":896,"children":901},"pre",{"className":897,"code":898,"language":899,"meta":900,"style":900},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# 1. Validate input data\npython scripts\u002Fvalidate_adata.py raw.h5ad --batch-key batch --suggest\n\n# 2. Prepare data (QC, HVG selection)\npython scripts\u002Fprepare_data.py raw.h5ad prepared.h5ad --batch-key batch --n-hvgs 2000\n\n# 3. Train model\npython scripts\u002Ftrain_model.py prepared.h5ad results\u002F --model scvi --batch-key batch\n\n# 4. Cluster and visualize\npython scripts\u002Fcluster_embed.py results\u002Fadata_trained.h5ad results\u002F --resolution 0.8\n\n# 5. Differential expression\npython scripts\u002Fdifferential_expression.py results\u002Fmodel results\u002Fadata_clustered.h5ad results\u002Fde.csv --groupby leiden\n","bash","",[902],{"type":46,"tag":88,"props":903,"children":904},{"__ignoreMap":900},[905,917,952,962,971,1012,1020,1029,1070,1078,1087,1119,1127,1136],{"type":46,"tag":906,"props":907,"children":910},"span",{"class":908,"line":909},"line",1,[911],{"type":46,"tag":906,"props":912,"children":914},{"style":913},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[915],{"type":52,"value":916},"# 1. Validate input data\n",{"type":46,"tag":906,"props":918,"children":920},{"class":908,"line":919},2,[921,926,932,937,942,947],{"type":46,"tag":906,"props":922,"children":924},{"style":923},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[925],{"type":52,"value":28},{"type":46,"tag":906,"props":927,"children":929},{"style":928},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[930],{"type":52,"value":931}," scripts\u002Fvalidate_adata.py",{"type":46,"tag":906,"props":933,"children":934},{"style":928},[935],{"type":52,"value":936}," raw.h5ad",{"type":46,"tag":906,"props":938,"children":939},{"style":928},[940],{"type":52,"value":941}," --batch-key",{"type":46,"tag":906,"props":943,"children":944},{"style":928},[945],{"type":52,"value":946}," batch",{"type":46,"tag":906,"props":948,"children":949},{"style":928},[950],{"type":52,"value":951}," --suggest\n",{"type":46,"tag":906,"props":953,"children":955},{"class":908,"line":954},3,[956],{"type":46,"tag":906,"props":957,"children":959},{"emptyLinePlaceholder":958},true,[960],{"type":52,"value":961},"\n",{"type":46,"tag":906,"props":963,"children":965},{"class":908,"line":964},4,[966],{"type":46,"tag":906,"props":967,"children":968},{"style":913},[969],{"type":52,"value":970},"# 2. Prepare data (QC, HVG selection)\n",{"type":46,"tag":906,"props":972,"children":974},{"class":908,"line":973},5,[975,979,984,988,993,997,1001,1006],{"type":46,"tag":906,"props":976,"children":977},{"style":923},[978],{"type":52,"value":28},{"type":46,"tag":906,"props":980,"children":981},{"style":928},[982],{"type":52,"value":983}," scripts\u002Fprepare_data.py",{"type":46,"tag":906,"props":985,"children":986},{"style":928},[987],{"type":52,"value":936},{"type":46,"tag":906,"props":989,"children":990},{"style":928},[991],{"type":52,"value":992}," prepared.h5ad",{"type":46,"tag":906,"props":994,"children":995},{"style":928},[996],{"type":52,"value":941},{"type":46,"tag":906,"props":998,"children":999},{"style":928},[1000],{"type":52,"value":946},{"type":46,"tag":906,"props":1002,"children":1003},{"style":928},[1004],{"type":52,"value":1005}," --n-hvgs",{"type":46,"tag":906,"props":1007,"children":1009},{"style":1008},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1010],{"type":52,"value":1011}," 2000\n",{"type":46,"tag":906,"props":1013,"children":1015},{"class":908,"line":1014},6,[1016],{"type":46,"tag":906,"props":1017,"children":1018},{"emptyLinePlaceholder":958},[1019],{"type":52,"value":961},{"type":46,"tag":906,"props":1021,"children":1023},{"class":908,"line":1022},7,[1024],{"type":46,"tag":906,"props":1025,"children":1026},{"style":913},[1027],{"type":52,"value":1028},"# 3. Train model\n",{"type":46,"tag":906,"props":1030,"children":1032},{"class":908,"line":1031},8,[1033,1037,1042,1046,1051,1056,1061,1065],{"type":46,"tag":906,"props":1034,"children":1035},{"style":923},[1036],{"type":52,"value":28},{"type":46,"tag":906,"props":1038,"children":1039},{"style":928},[1040],{"type":52,"value":1041}," scripts\u002Ftrain_model.py",{"type":46,"tag":906,"props":1043,"children":1044},{"style":928},[1045],{"type":52,"value":992},{"type":46,"tag":906,"props":1047,"children":1048},{"style":928},[1049],{"type":52,"value":1050}," results\u002F",{"type":46,"tag":906,"props":1052,"children":1053},{"style":928},[1054],{"type":52,"value":1055}," --model",{"type":46,"tag":906,"props":1057,"children":1058},{"style":928},[1059],{"type":52,"value":1060}," scvi",{"type":46,"tag":906,"props":1062,"children":1063},{"style":928},[1064],{"type":52,"value":941},{"type":46,"tag":906,"props":1066,"children":1067},{"style":928},[1068],{"type":52,"value":1069}," batch\n",{"type":46,"tag":906,"props":1071,"children":1073},{"class":908,"line":1072},9,[1074],{"type":46,"tag":906,"props":1075,"children":1076},{"emptyLinePlaceholder":958},[1077],{"type":52,"value":961},{"type":46,"tag":906,"props":1079,"children":1081},{"class":908,"line":1080},10,[1082],{"type":46,"tag":906,"props":1083,"children":1084},{"style":913},[1085],{"type":52,"value":1086},"# 4. Cluster and visualize\n",{"type":46,"tag":906,"props":1088,"children":1090},{"class":908,"line":1089},11,[1091,1095,1100,1105,1109,1114],{"type":46,"tag":906,"props":1092,"children":1093},{"style":923},[1094],{"type":52,"value":28},{"type":46,"tag":906,"props":1096,"children":1097},{"style":928},[1098],{"type":52,"value":1099}," scripts\u002Fcluster_embed.py",{"type":46,"tag":906,"props":1101,"children":1102},{"style":928},[1103],{"type":52,"value":1104}," results\u002Fadata_trained.h5ad",{"type":46,"tag":906,"props":1106,"children":1107},{"style":928},[1108],{"type":52,"value":1050},{"type":46,"tag":906,"props":1110,"children":1111},{"style":928},[1112],{"type":52,"value":1113}," --resolution",{"type":46,"tag":906,"props":1115,"children":1116},{"style":1008},[1117],{"type":52,"value":1118}," 0.8\n",{"type":46,"tag":906,"props":1120,"children":1122},{"class":908,"line":1121},12,[1123],{"type":46,"tag":906,"props":1124,"children":1125},{"emptyLinePlaceholder":958},[1126],{"type":52,"value":961},{"type":46,"tag":906,"props":1128,"children":1130},{"class":908,"line":1129},13,[1131],{"type":46,"tag":906,"props":1132,"children":1133},{"style":913},[1134],{"type":52,"value":1135},"# 5. Differential expression\n",{"type":46,"tag":906,"props":1137,"children":1139},{"class":908,"line":1138},14,[1140,1144,1149,1154,1159,1164,1169],{"type":46,"tag":906,"props":1141,"children":1142},{"style":923},[1143],{"type":52,"value":28},{"type":46,"tag":906,"props":1145,"children":1146},{"style":928},[1147],{"type":52,"value":1148}," scripts\u002Fdifferential_expression.py",{"type":46,"tag":906,"props":1150,"children":1151},{"style":928},[1152],{"type":52,"value":1153}," results\u002Fmodel",{"type":46,"tag":906,"props":1155,"children":1156},{"style":928},[1157],{"type":52,"value":1158}," results\u002Fadata_clustered.h5ad",{"type":46,"tag":906,"props":1160,"children":1161},{"style":928},[1162],{"type":52,"value":1163}," results\u002Fde.csv",{"type":46,"tag":906,"props":1165,"children":1166},{"style":928},[1167],{"type":52,"value":1168}," --groupby",{"type":46,"tag":906,"props":1170,"children":1171},{"style":928},[1172],{"type":52,"value":1173}," leiden\n",{"type":46,"tag":673,"props":1175,"children":1177},{"id":1176},"python-utilities",[1178],{"type":52,"value":1179},"Python Utilities",{"type":46,"tag":55,"props":1181,"children":1182},{},[1183,1185,1191],{"type":52,"value":1184},"The ",{"type":46,"tag":88,"props":1186,"children":1188},{"className":1187},[],[1189],{"type":52,"value":1190},"scripts\u002Fmodel_utils.py",{"type":52,"value":1192}," provides importable functions for custom workflows:",{"type":46,"tag":165,"props":1194,"children":1195},{},[1196,1211],{"type":46,"tag":169,"props":1197,"children":1198},{},[1199],{"type":46,"tag":173,"props":1200,"children":1201},{},[1202,1207],{"type":46,"tag":177,"props":1203,"children":1204},{},[1205],{"type":52,"value":1206},"Function",{"type":46,"tag":177,"props":1208,"children":1209},{},[1210],{"type":52,"value":697},{"type":46,"tag":193,"props":1212,"children":1213},{},[1214,1231,1248,1265,1282,1299,1316],{"type":46,"tag":173,"props":1215,"children":1216},{},[1217,1226],{"type":46,"tag":200,"props":1218,"children":1219},{},[1220],{"type":46,"tag":88,"props":1221,"children":1223},{"className":1222},[],[1224],{"type":52,"value":1225},"prepare_adata()",{"type":46,"tag":200,"props":1227,"children":1228},{},[1229],{"type":52,"value":1230},"Data preparation (QC, HVG, layer setup)",{"type":46,"tag":173,"props":1232,"children":1233},{},[1234,1243],{"type":46,"tag":200,"props":1235,"children":1236},{},[1237],{"type":46,"tag":88,"props":1238,"children":1240},{"className":1239},[],[1241],{"type":52,"value":1242},"train_scvi()",{"type":46,"tag":200,"props":1244,"children":1245},{},[1246],{"type":52,"value":1247},"Train scVI or scANVI",{"type":46,"tag":173,"props":1249,"children":1250},{},[1251,1260],{"type":46,"tag":200,"props":1252,"children":1253},{},[1254],{"type":46,"tag":88,"props":1255,"children":1257},{"className":1256},[],[1258],{"type":52,"value":1259},"evaluate_integration()",{"type":46,"tag":200,"props":1261,"children":1262},{},[1263],{"type":52,"value":1264},"Compute integration metrics",{"type":46,"tag":173,"props":1266,"children":1267},{},[1268,1277],{"type":46,"tag":200,"props":1269,"children":1270},{},[1271],{"type":46,"tag":88,"props":1272,"children":1274},{"className":1273},[],[1275],{"type":52,"value":1276},"get_marker_genes()",{"type":46,"tag":200,"props":1278,"children":1279},{},[1280],{"type":52,"value":1281},"Extract DE markers",{"type":46,"tag":173,"props":1283,"children":1284},{},[1285,1294],{"type":46,"tag":200,"props":1286,"children":1287},{},[1288],{"type":46,"tag":88,"props":1289,"children":1291},{"className":1290},[],[1292],{"type":52,"value":1293},"save_results()",{"type":46,"tag":200,"props":1295,"children":1296},{},[1297],{"type":52,"value":1298},"Save model, data, plots",{"type":46,"tag":173,"props":1300,"children":1301},{},[1302,1311],{"type":46,"tag":200,"props":1303,"children":1304},{},[1305],{"type":46,"tag":88,"props":1306,"children":1308},{"className":1307},[],[1309],{"type":52,"value":1310},"auto_select_model()",{"type":46,"tag":200,"props":1312,"children":1313},{},[1314],{"type":52,"value":1315},"Suggest best model",{"type":46,"tag":173,"props":1317,"children":1318},{},[1319,1328],{"type":46,"tag":200,"props":1320,"children":1321},{},[1322],{"type":46,"tag":88,"props":1323,"children":1325},{"className":1324},[],[1326],{"type":52,"value":1327},"quick_clustering()",{"type":46,"tag":200,"props":1329,"children":1330},{},[1331],{"type":52,"value":1332},"Neighbors + UMAP + Leiden",{"type":46,"tag":61,"props":1334,"children":1336},{"id":1335},"critical-requirements",[1337],{"type":52,"value":1338},"Critical Requirements",{"type":46,"tag":68,"props":1340,"children":1341},{},[1342,1376,1409],{"type":46,"tag":72,"props":1343,"children":1344},{},[1345,1350,1352],{"type":46,"tag":209,"props":1346,"children":1347},{},[1348],{"type":52,"value":1349},"Raw counts required",{"type":52,"value":1351},": scvi-tools models require integer count data",{"type":46,"tag":895,"props":1353,"children":1356},{"className":1354,"code":1355,"language":28,"meta":900,"style":900},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","adata.layers[\"counts\"] = adata.X.copy()  # Before normalization\nscvi.model.SCVI.setup_anndata(adata, layer=\"counts\")\n",[1357],{"type":46,"tag":88,"props":1358,"children":1359},{"__ignoreMap":900},[1360,1368],{"type":46,"tag":906,"props":1361,"children":1362},{"class":908,"line":909},[1363],{"type":46,"tag":906,"props":1364,"children":1365},{},[1366],{"type":52,"value":1367},"adata.layers[\"counts\"] = adata.X.copy()  # Before normalization\n",{"type":46,"tag":906,"props":1369,"children":1370},{"class":908,"line":919},[1371],{"type":46,"tag":906,"props":1372,"children":1373},{},[1374],{"type":52,"value":1375},"scvi.model.SCVI.setup_anndata(adata, layer=\"counts\")\n",{"type":46,"tag":72,"props":1377,"children":1378},{},[1379,1384,1386],{"type":46,"tag":209,"props":1380,"children":1381},{},[1382],{"type":52,"value":1383},"HVG selection",{"type":52,"value":1385},": Use 2000-4000 highly variable genes",{"type":46,"tag":895,"props":1387,"children":1389},{"className":1354,"code":1388,"language":28,"meta":900,"style":900},"sc.pp.highly_variable_genes(adata, n_top_genes=2000, batch_key=\"batch\", layer=\"counts\", flavor=\"seurat_v3\")\nadata = adata[:, adata.var['highly_variable']].copy()\n",[1390],{"type":46,"tag":88,"props":1391,"children":1392},{"__ignoreMap":900},[1393,1401],{"type":46,"tag":906,"props":1394,"children":1395},{"class":908,"line":909},[1396],{"type":46,"tag":906,"props":1397,"children":1398},{},[1399],{"type":52,"value":1400},"sc.pp.highly_variable_genes(adata, n_top_genes=2000, batch_key=\"batch\", layer=\"counts\", flavor=\"seurat_v3\")\n",{"type":46,"tag":906,"props":1402,"children":1403},{"class":908,"line":919},[1404],{"type":46,"tag":906,"props":1405,"children":1406},{},[1407],{"type":52,"value":1408},"adata = adata[:, adata.var['highly_variable']].copy()\n",{"type":46,"tag":72,"props":1410,"children":1411},{},[1412,1417,1419],{"type":46,"tag":209,"props":1413,"children":1414},{},[1415],{"type":52,"value":1416},"Batch information",{"type":52,"value":1418},": Specify batch_key for integration",{"type":46,"tag":895,"props":1420,"children":1422},{"className":1354,"code":1421,"language":28,"meta":900,"style":900},"scvi.model.SCVI.setup_anndata(adata, layer=\"counts\", batch_key=\"batch\")\n",[1423],{"type":46,"tag":88,"props":1424,"children":1425},{"__ignoreMap":900},[1426],{"type":46,"tag":906,"props":1427,"children":1428},{"class":908,"line":909},[1429],{"type":46,"tag":906,"props":1430,"children":1431},{},[1432],{"type":52,"value":1421},{"type":46,"tag":61,"props":1434,"children":1436},{"id":1435},"quick-decision-tree",[1437],{"type":52,"value":1438},"Quick Decision Tree",{"type":46,"tag":895,"props":1440,"children":1444},{"className":1441,"code":1443,"language":52},[1442],"language-text","Need to integrate scRNA-seq data?\n├── Have cell type labels? → scANVI (references\u002Flabel_transfer.md)\n└── No labels? → scVI (references\u002Fscrna_integration.md)\n\nHave multi-modal data?\n├── CITE-seq (RNA + protein)? → totalVI (references\u002Fciteseq_totalvi.md)\n├── Multiome (RNA + ATAC)? → MultiVI (references\u002Fmultiome_multivi.md)\n└── scATAC-seq only? → PeakVI (references\u002Fatac_peakvi.md)\n\nHave spatial data?\n└── Need cell type deconvolution? → DestVI (references\u002Fspatial_deconvolution.md)\n\nHave pre-trained reference model?\n└── Map query to reference? → scArches (references\u002Fscarches_mapping.md)\n\nNeed RNA velocity?\n└── veloVI (references\u002Frna_velocity_velovi.md)\n\nStrong cross-technology batch effects?\n└── sysVI (references\u002Fbatch_correction_sysvi.md)\n",[1445],{"type":46,"tag":88,"props":1446,"children":1447},{"__ignoreMap":900},[1448],{"type":52,"value":1443},{"type":46,"tag":61,"props":1450,"children":1452},{"id":1451},"key-resources",[1453],{"type":52,"value":1454},"Key Resources",{"type":46,"tag":125,"props":1456,"children":1457},{},[1458,1470,1480,1490],{"type":46,"tag":72,"props":1459,"children":1460},{},[1461],{"type":46,"tag":1462,"props":1463,"children":1467},"a",{"href":1464,"rel":1465},"https:\u002F\u002Fdocs.scvi-tools.org\u002F",[1466],"nofollow",[1468],{"type":52,"value":1469},"scvi-tools Documentation",{"type":46,"tag":72,"props":1471,"children":1472},{},[1473],{"type":46,"tag":1462,"props":1474,"children":1477},{"href":1475,"rel":1476},"https:\u002F\u002Fdocs.scvi-tools.org\u002Fen\u002Fstable\u002Ftutorials\u002Findex.html",[1466],[1478],{"type":52,"value":1479},"scvi-tools Tutorials",{"type":46,"tag":72,"props":1481,"children":1482},{},[1483],{"type":46,"tag":1462,"props":1484,"children":1487},{"href":1485,"rel":1486},"https:\u002F\u002Fhuggingface.co\u002Fscvi-tools",[1466],[1488],{"type":52,"value":1489},"Model Hub",{"type":46,"tag":72,"props":1491,"children":1492},{},[1493],{"type":46,"tag":1462,"props":1494,"children":1497},{"href":1495,"rel":1496},"https:\u002F\u002Fgithub.com\u002Fscverse\u002Fscvi-tools\u002Fissues",[1466],[1498],{"type":52,"value":1499},"GitHub Issues",{"type":46,"tag":1501,"props":1502,"children":1503},"style",{},[1504],{"type":52,"value":1505},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1507,"total":1014},[1508,1525,1542,1560,1571,1579],{"slug":1509,"name":1509,"fn":1510,"description":1511,"org":1512,"tags":1513,"stars":29,"repoUrl":30,"updatedAt":1524},"clinical-trial-protocol-skill","generate clinical trial protocols for FDA submissions","Generate clinical trial protocols for medical devices or drugs. This skill should be used when users say \"Create a clinical trial protocol\", \"Generate protocol for [device\u002Fdrug]\", \"Help me design a clinical study\", \"Research similar trials for [intervention]\", or when developing FDA submission documentation for investigational products.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1514,1517,1520,1521],{"name":1515,"slug":1516,"type":16},"Clinical Trials","clinical-trials",{"name":1518,"slug":1519,"type":16},"FDA","fda",{"name":21,"slug":22,"type":16},{"name":1522,"slug":1523,"type":16},"Regulatory Compliance","regulatory-compliance","2026-04-06T17:57:05.297219",{"slug":1526,"name":1526,"fn":1527,"description":1528,"org":1529,"tags":1530,"stars":29,"repoUrl":30,"updatedAt":1541},"instrument-data-to-allotrope","convert instrument data to Allotrope ASM","Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV. Use this skill when scientists need to standardize instrument data for LIMS systems, data lakes, or downstream analysis. Supports auto-detection of instrument types. Outputs include full ASM JSON, flattened CSV for easy import, and exportable Python code for data engineers. Common triggers include converting instrument files, standardizing lab data, preparing data for upload to LIMS\u002FELN systems, or generating parser code for production pipelines.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1531,1534,1537,1540],{"name":1532,"slug":1533,"type":16},"Allotrope","allotrope",{"name":1535,"slug":1536,"type":16},"Data Cleaning","data-cleaning",{"name":1538,"slug":1539,"type":16},"Laboratory","laboratory",{"name":21,"slug":22,"type":16},"2026-04-06T17:57:07.996807",{"slug":1543,"name":1543,"fn":1544,"description":1545,"org":1546,"tags":1547,"stars":29,"repoUrl":30,"updatedAt":1559},"nextflow-development","run nf-core bioinformatics pipelines on sequencing data","Run nf-core bioinformatics pipelines (rnaseq, sarek, atacseq) on sequencing data. Use when analyzing RNA-seq, WGS\u002FWES, or ATAC-seq data—either local FASTQs or public datasets from GEO\u002FSRA. Triggers on nf-core, Nextflow, FASTQ analysis, variant calling, gene expression, differential expression, GEO reanalysis, GSE\u002FGSM\u002FSRR accessions, or samplesheet creation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1548,1549,1552,1553,1556],{"name":24,"slug":25,"type":16},{"name":1550,"slug":1551,"type":16},"Data Pipeline","data-pipeline",{"name":21,"slug":22,"type":16},{"name":1554,"slug":1555,"type":16},"Nextflow","nextflow",{"name":1557,"slug":1558,"type":16},"RNA-seq","rna-seq","2026-04-06T17:57:04.014571",{"slug":1561,"name":1561,"fn":1562,"description":1563,"org":1564,"tags":1565,"stars":29,"repoUrl":30,"updatedAt":1570},"scientific-problem-selection","guide scientific research problem selection","This skill should be used when scientists need help with research problem selection, project ideation, troubleshooting stuck projects, or strategic scientific decisions. Use this skill when users ask to pitch a new research idea, work through a project problem, evaluate project risks, plan research strategy, navigate decision trees, or get help choosing what scientific problem to work on. Typical requests include \"I have an idea for a project\", \"I'm stuck on my research\", \"help me evaluate this project\", \"what should I work on\", or \"I need strategic advice about my research\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1566,1567],{"name":21,"slug":22,"type":16},{"name":1568,"slug":1569,"type":16},"Research","research","2026-04-06T17:57:06.62424",{"slug":4,"name":4,"fn":5,"description":6,"org":1572,"tags":1573,"stars":29,"repoUrl":30,"updatedAt":31},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1574,1575,1576,1577,1578],{"name":24,"slug":25,"type":16},{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"name":27,"slug":28,"type":16},{"name":14,"slug":15,"type":16},{"slug":1580,"name":1580,"fn":1581,"description":1582,"org":1583,"tags":1584,"stars":29,"repoUrl":30,"updatedAt":1588},"single-cell-rna-qc","run quality control on single-cell RNA-seq data","Performs quality control on single-cell RNA-seq data (.h5ad or .h5 files) using scverse best practices with MAD-based filtering and comprehensive visualizations. Use when users request QC analysis, filtering low-quality cells, assessing data quality, or following scverse\u002Fscanpy best practices for single-cell analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1585,1586,1587],{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},{"name":1557,"slug":1558,"type":16},"2026-04-06T17:57:01.442679",{"items":1590,"total":1777},[1591,1612,1626,1638,1657,1670,1691,1711,1725,1740,1748,1761],{"slug":1592,"name":1592,"fn":1593,"description":1594,"org":1595,"tags":1596,"stars":1609,"repoUrl":1610,"updatedAt":1611},"algorithmic-art","create algorithmic art with p5.js","Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1597,1600,1603,1606],{"name":1598,"slug":1599,"type":16},"Creative","creative",{"name":1601,"slug":1602,"type":16},"Design","design",{"name":1604,"slug":1605,"type":16},"Generative Art","generative-art",{"name":1607,"slug":1608,"type":16},"JavaScript","javascript",161831,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","2026-04-06T17:56:15.455818",{"slug":1613,"name":1613,"fn":1614,"description":1615,"org":1616,"tags":1617,"stars":1609,"repoUrl":1610,"updatedAt":1625},"brand-guidelines","apply Anthropic brand colors and typography","Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1618,1621,1622],{"name":1619,"slug":1620,"type":16},"Branding","branding",{"name":1601,"slug":1602,"type":16},{"name":1623,"slug":1624,"type":16},"Typography","typography","2026-04-06T17:56:05.042852",{"slug":1627,"name":1627,"fn":1628,"description":1629,"org":1630,"tags":1631,"stars":1609,"repoUrl":1610,"updatedAt":1637},"canvas-design","create posters and visual art as PNG or PDF","Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1632,1633,1634],{"name":1598,"slug":1599,"type":16},{"name":1601,"slug":1602,"type":16},{"name":1635,"slug":1636,"type":16},"PDF","pdf","2026-04-06T17:56:03.794732",{"slug":1639,"name":1639,"fn":1640,"description":1641,"org":1642,"tags":1643,"stars":1609,"repoUrl":1610,"updatedAt":1656},"claude-api","build apps with the Claude API","Reference for the Claude API \u002F Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration.\nTRIGGER — read BEFORE opening the target file; don't skip because it \"looks like a one-liner\" — whenever: the prompt names Claude\u002FAnthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`, `[1m]`); the user asks about an LLM (pricing\u002Fmodel choice\u002Flimits\u002Fcaching) — never answer from memory; OR the task is LLM-shaped with provider unstated (agent\u002FMCP\u002Ftool-definition\u002Fmulti-agent\u002FRAG\u002FLLM-judge\u002Fcomputer-use; generate\u002Fsummarize\u002Fextract\u002Fclassify\u002Frewrite\u002Fconverse over NL; debugging refusals\u002Fcutoffs\u002Fstreaming\u002Ftool-calls\u002Ftokens).\nSKIP only when another provider is being worked on (overrides all triggers): OpenAI\u002FGPT\u002FGemini\u002FLlama\u002FMistral\u002FCohere\u002FOllama named in the query; OR `grep -rE 'openai|langchain_openai|google.generativeai|genai|mistralai|cohere|ollama'` over the project hits (run this grep FIRST if no provider named — don't Read the file).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1644,1647,1648,1651,1653],{"name":1645,"slug":1646,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":1649,"slug":1650,"type":16},"Anthropic SDK","anthropic-sdk",{"name":1652,"slug":1639,"type":16},"Claude API",{"name":1654,"slug":1655,"type":16},"LLM","llm","2026-07-28T05:36:08.213335",{"slug":1658,"name":1658,"fn":1659,"description":1660,"org":1661,"tags":1662,"stars":1609,"repoUrl":1610,"updatedAt":1669},"doc-coauthoring","co-author documentation and technical specs","Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1663,1666],{"name":1664,"slug":1665,"type":16},"Documentation","documentation",{"name":1667,"slug":1668,"type":16},"Technical Writing","technical-writing","2026-04-06T17:56:14.18897",{"slug":1671,"name":1671,"fn":1672,"description":1673,"org":1674,"tags":1675,"stars":1609,"repoUrl":1610,"updatedAt":1690},"docx","create and edit Word documents","Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1676,1679,1681,1684,1687],{"name":1677,"slug":1678,"type":16},"Documents","documents",{"name":1680,"slug":1671,"type":16},"DOCX",{"name":1682,"slug":1683,"type":16},"Office","office",{"name":1685,"slug":1686,"type":16},"Templates","templates",{"name":1688,"slug":1689,"type":16},"Word","word","2026-07-18T05:16:23.136271",{"slug":1692,"name":1692,"fn":1693,"description":1694,"org":1695,"tags":1696,"stars":1609,"repoUrl":1610,"updatedAt":1710},"frontend-design","design production-grade frontend interfaces","Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1697,1698,1701,1704,1707],{"name":1601,"slug":1602,"type":16},{"name":1699,"slug":1700,"type":16},"Frontend","frontend",{"name":1702,"slug":1703,"type":16},"React","react",{"name":1705,"slug":1706,"type":16},"Tailwind CSS","tailwind-css",{"name":1708,"slug":1709,"type":16},"UI Components","ui-components","2026-04-06T17:56:16.723469",{"slug":1712,"name":1712,"fn":1713,"description":1714,"org":1715,"tags":1716,"stars":1609,"repoUrl":1610,"updatedAt":1724},"internal-comms","write internal company communications","A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1717,1720,1721],{"name":1718,"slug":1719,"type":16},"Communications","communications",{"name":1685,"slug":1686,"type":16},{"name":1722,"slug":1723,"type":16},"Writing","writing","2026-04-06T17:56:20.695522",{"slug":1726,"name":1726,"fn":1727,"description":1728,"org":1729,"tags":1730,"stars":1609,"repoUrl":1610,"updatedAt":1739},"mcp-builder","build MCP servers","Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node\u002FTypeScript (MCP SDK).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1731,1732,1735,1736],{"name":1645,"slug":1646,"type":16},{"name":1733,"slug":1734,"type":16},"API Development","api-development",{"name":1654,"slug":1655,"type":16},{"name":1737,"slug":1738,"type":16},"MCP","mcp","2026-04-06T17:56:10.357665",{"slug":1636,"name":1636,"fn":1741,"description":1742,"org":1743,"tags":1744,"stars":1609,"repoUrl":1610,"updatedAt":1747},"read edit and manipulate PDF files","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1745,1746],{"name":1677,"slug":1678,"type":16},{"name":1635,"slug":1636,"type":16},"2026-04-06T17:56:02.483316",{"slug":1749,"name":1749,"fn":1750,"description":1751,"org":1752,"tags":1753,"stars":1609,"repoUrl":1610,"updatedAt":1760},"pptx","create and edit PowerPoint presentations","Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1754,1757],{"name":1755,"slug":1756,"type":16},"PowerPoint","powerpoint",{"name":1758,"slug":1759,"type":16},"Presentations","presentations","2026-07-18T05:16:24.1471",{"slug":1762,"name":1762,"fn":1763,"description":1764,"org":1765,"tags":1766,"stars":1609,"repoUrl":1610,"updatedAt":1776},"skill-creator","create and optimize agent skills","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1767,1768,1769,1772,1775],{"name":1645,"slug":1646,"type":16},{"name":1664,"slug":1665,"type":16},{"name":1770,"slug":1771,"type":16},"Evals","evals",{"name":1773,"slug":1774,"type":16},"Performance","performance",{"name":1667,"slug":1668,"type":16},"2026-04-19T06:45:40.804",490]