| """ |
| Reusable analysis workflow modules for the DecoupleRpy agent. |
| |
| Architecture |
| ------------ |
| Workflows implement dataset-agnostic analysis steps that compose cleanly |
| for any dataset whose manifest declares them applicable. |
| |
| Separation of concerns |
| ~~~~~~~~~~~~~~~~~~~~~~~ |
| - Dataset-specific knowledge (GEO URL, condition column, expected sample |
| counts, contrast definition) lives in src/datasets/manifests/*.yaml. |
| - Reusable logic (how to validate a condition column, how to extract |
| collapse parameters, how to rank activity scores) lives here. |
| - MCP tool wiring lives in src/tools/dataset_tools.py. |
| |
| This means adding a new PDAC dataset requires only a new YAML manifest. |
| No workflow module needs editing unless the dataset introduces a genuinely |
| new analysis type (e.g. ATAC-seq, spatial) not covered by existing modules. |
| |
| Modules |
| ------- |
| metadata_validation Validate AnnData.obs against a dataset manifest. |
| microarray Microarray-specific preprocessing helpers (probe collapse). |
| activity_scoring TF and pathway activity scoring via decoupleR methods. |
| activity_stats Statistical analysis of activity scores (DE, ranking). |
| survival Survival analysis utilities (placeholder). |
| |
| Usage from MCP tools |
| -------------------- |
| from src.workflows.microarray import get_collapse_params, recommend_analysis_path |
| from src.workflows.activity_stats import get_contrast_groups |
| |
| These functions read from parsed manifest dicts and return plain Python |
| values — they have no side effects and require no external dependencies |
| beyond the standard library. |
| """ |
|
|