Skip to main content

dynamo-preprocess

Run or adapt dynamo preprocessing with `dynamo.preprocessing.Preprocessor`, including the `recipe` branches `monocle`, `seurat`, `sctransform`, `pearson_residuals`, and `monocle_pearson_residuals`. Use when converting or reproducing `docs/tutorials/notebooks/100_tutorial_preprocess.ipynb`, preprocessing an `AnnData` object for downstream dynamo analysis, customizing preprocessing kwargs, or translating notebook-level preprocessing into a reusable agent workflow.

Informations de source

Dépôt
aristoteleo/dynamo-release
Dernière activité de la source
19 mars 2026 à 06:17
Langue détectée de SKILL.md
anglais
Étoiles
510
Forks
60

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
6 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
dynamo-preprocess
description
Run or adapt dynamo preprocessing with `dynamo.preprocessing.Preprocessor`, including the `recipe` branches `monocle`, `seurat`, `sctransform`, `pearson_residuals`, and `monocle_pearson_residuals`. Use when converting or reproducing `docs/tutorials/notebooks/100_tutorial_preprocess.ipynb`, preprocessing an `AnnData` object for downstream dynamo analysis, customizing preprocessing kwargs, or translating notebook-level preprocessing into a reusable agent workflow.
# Dynamo Preprocess ## Goal Preprocess an `AnnData` object with the current `dynamo.preprocessing.Preprocessor` API, choose the correct `recipe` branch for the downstream task, customize kwargs before execution when needed, and validate that the expected keys and embeddings exist for later dynamo analysis. ## Quick Workflow 1. Inspect the user's data, environment, and downstream goal. 2. Choose the `recipe` branch that matches the goal instead of defaulting blindly to the notebook's first example. 3. Use `Preprocessor.preprocess_adata(...)` for the common case. 4. If the user needs customization, call `config_*_recipe(...)`, mutate kwargs, then run the matching recipe-specific method. 5. If the user needs debugging or a custom pipeline, run the preprocessing steps individually in notebook order. 6. Validate `obs`, `var`, `layers`, and `obsm` keys before treating preprocessing as complete. ## Interface Summary - `Preprocessor.preprocess_adata(adata, recipe='monocle', tkey=None, experiment_type=None)` is the main wrapper. - The live source dispatches `recipe` across five branches: `monocle`, `seurat`, `sctransform`, `pearson_residuals`, `monocle_pearson_residuals`. - `config_monocle_recipe(adata, n_top_genes=2000)` is the only recipe config in this notebook family that exposes an extra tuning argument directly in the signature. - The constructor exposes many overridable callables and kwargs dictionaries, but the notebook mainly mutates: `filter_cells_by_outliers_kwargs`, `filter_genes_by_outliers_kwargs`, and `select_genes_kwargs`. Read `references/source-grounding.md` before documenting parameters in more detail or when you need the exact inspected signatures. ## Recipe Selection - Use `monocle` as the default when the goal is standard dynamo preprocessing for velocity or vector-field analysis. - Use `seurat` when the user specifically wants Seurat-style highly variable gene selection inside the current `Preprocessor` wrapper. - Use `sctransform` only when the user explicitly wants that transformation and the environment has `KDEpy`. - Use `pearson_residuals` when the goal is HVG selection and PCA on `adata.X`, not layer-preserving velocity normalization. - Use `monocle_pearson_residuals` when the user wants Pearson-residual-based feature selection and PCA but still needs monocle-style normalized layers for downstream velocity analysis. Read `references/recipe-selection.md` before choosing a non-default `recipe`. ## Minimal Execution Patterns For the common case, use the wrapper: ```python import dynamo as dyn from dynamo.preprocessing import Preprocessor adata = dyn.sample_data.zebrafish() preprocessor = Preprocessor() preprocessor.preprocess_adata(adata, recipe="monocle") dyn.tl.reduceDimension(adata, basis="pca") ``` For recipe customization, configure first, then mutate kwargs, then run the matching method: ```python import numpy as np from dynamo.preprocessing import Preprocessor preprocessor = Preprocessor() preprocessor.config_monocle_recipe(adata) preprocessor.filter_cells_by_outliers_kwargs = { "filter_bool": None, "layer": "all", "min_expr_genes_s": 300, "min_expr_genes_u": 100, "min_expr_genes_p": 50, "max_expr_genes_s": np.inf, "max_expr_genes_u": np.inf, "max_expr_genes_p": np.inf, "shared_count": None, } preprocessor.select_genes_kwargs = { "n_top_genes": 2500, "sort_by": "cv_dispersion", "keep_filtered": True, "SVRs_kwargs": { "relative_expr": True, "total_szfactor": "total_Size_Factor", "min_expr_cells": 0, "min_expr_avg": 0, "max_expr_avg": np.inf, "winsorize": False, "winsor_perc": (1, 99.5), "sort_inverse": False, "svr_gamma": None, }, } preprocessor.preprocess_adata_monocle(adata) ``` For direct stepwise execution, follow the notebook spine: 1. `pp.standardize_adata(adata, tkey, experiment_type)` 2. `pp.filter_cells_by_outliers(...)` 3. `pp.filter_genes_by_outliers(...)` 4. `pp.normalize_by_cells(...)` 5. `pp.select_genes(...)` 6. `pp.norm_method(...)` 7. `pp.pca(...)` 8. `dyn.tl.reduceDimension(adata, basis="pca")` Use the stepwise path for debugging or nonstandard workflows, not as the default wrapper replacement. ## Validation After preprocessing, check these items: - `adata.obs` may contain QC keys such as `pass_basic_filter`, `Size_Factor`, `nGenes`, `nCounts`, and `pMito`. - `adata.var` may contain `pass_basic_filter`, `use_for_pca`, and recipe-specific variability metrics. - `adata.obsm["X_pca"]` should exist after PCA-based recipes. - Layer-preserving workflows may create normalized layers such as `X_spliced` and `X_unspliced`. - `dyn.tl.reduceDimension(adata, basis="pca")` should run without shape or key errors. If notebook-style visualization parity matters, the standard post-check is: ```python dyn.tl.reduceDimension(adata, basis="pca") dyn.pl.umap(adata, color=celltype_key) ``` ## Constraints - Do not assume the notebook covers every `recipe` branch; the live source adds `monocle_pearson_residuals` as a distinct hybrid path. - Pearson residuals and sctransform are intended for `adata.X`; using them on velocity-relevant layers can create downstream problems. - `sctransform` requires `KDEpy`. - `dyn.sample_data.zebrafish()` may require data download if the dataset is not cached. - Prefer the current `dynamo.preprocessing.Preprocessor` API over older recipe helpers unless the user explicitly asks for legacy behavior. ## Resource Map - Read `references/recipe-selection.md` for branch-by-branch guidance. - Read `references/source-notebook-map.md` to trace each part of the notebook to the generated skill. - Read `references/source-grounding.md` for inspected signatures, doc-derived notes, and source-level `recipe` branch evidence. - Read `references/compatibility.md` when notebook prose and current source behavior may have drifted.
Voir sur GitHub