histoweave-spatial 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- histoweave_spatial-0.1.0/.dockerignore +47 -0
- histoweave_spatial-0.1.0/.gitattributes +7 -0
- histoweave_spatial-0.1.0/.github/CODEOWNERS +4 -0
- histoweave_spatial-0.1.0/.github/dependabot.yml +20 -0
- histoweave_spatial-0.1.0/.github/workflows/ci.yml +211 -0
- histoweave_spatial-0.1.0/.github/workflows/containers.yml +84 -0
- histoweave_spatial-0.1.0/.github/workflows/nextflow-smoke.yml +58 -0
- histoweave_spatial-0.1.0/.github/workflows/pages.yml +101 -0
- histoweave_spatial-0.1.0/.github/workflows/publish.yml +61 -0
- histoweave_spatial-0.1.0/.gitignore +124 -0
- histoweave_spatial-0.1.0/.zenodo.json +30 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/benchmark_long.csv +151 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/dataset_features.csv +6 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/experiment_5x10_dlpfc.py +333 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/figure_data.json +266 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/figures/fig1_performance_heatmap.png +0 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/figures/fig1_performance_heatmap.svg +493 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/figures/fig2_method_boxplot.png +0 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/figures/fig2_method_boxplot.svg +913 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/figures/fig3_landscape_embedding.png +0 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/figures/fig3_landscape_embedding.svg +380 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/figures/fig4_runtime.png +0 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/figures/fig4_runtime.svg +357 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/landscape.json +266 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/make_figures.py +151 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/manifest.json +50 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/performance_matrix_mean.csv +6 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/performance_matrix_std.csv +6 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/prepare_dlpfc.py +153 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/recommendation_loocv.csv +6 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/recommendation_loocv.json +156 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/report_5x10_dlpfc_benchmark.md +168 -0
- histoweave_spatial-0.1.0/5x10_dlpfc_benchmark/timings_mean.csv +51 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/SOTA_COMPARISON.md +53 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/adapters/__init__.py +17 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/adapters/_sota_common.py +87 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/adapters/banksy_py_adapter.py +91 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/adapters/bayesspace_adapter.py +81 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/adapters/graphst_adapter.py +57 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/adapters/harmony_adapter.py +90 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/adapters/moran_adapter.py +115 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/adapters/nnsvg_adapter.py +120 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/adapters/spagcn_adapter.py +87 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/adapters/spatialde_adapter.py +83 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/adapters/stagate_adapter.py +56 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/benchmark_long.csv +226 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/build_sota_and_merge.py +248 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/dataset_features.csv +6 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/env_locks/graphst_env.txt +123 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/env_locks/stagate_env.txt +125 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/experiment_5x15.py +379 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/experiment_5x15_methods.py +507 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/figure_data.json +309 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/figures/heatmap_5x15.png +0 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/figures/heatmap_5x15.svg +628 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/figures/spatial_weight_effect_5x15.png +0 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/figures/spatial_weight_effect_5x15.svg +408 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/heatmap_5x20.png +0 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/heatmap_5x20.svg +760 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/landscape.json +277 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/make_figures.py +100 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/make_heatmap.py +165 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/make_report.py +240 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/manifest.json +50 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/performance_matrix_mean.csv +6 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/performance_matrix_mean_full.csv +6 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/performance_matrix_std.csv +6 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/prepare_dlpfc.py +154 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/recommendation_loocv.csv +6 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/recommendation_loocv.json +156 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/report_5x15_spatial_aware.md +163 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/report_sota_5x20.md +101 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/run_bayesspace.R +59 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/run_method_slices.py +66 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/run_nnsvg.R +93 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/run_one_method.py +93 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/sota_benchmark_long.csv +46 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/sota_merge_manifest.json +68 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/sota_method_means.csv +4 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/sota_runner.py +92 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/svg_domain_pipeline.py +92 -0
- histoweave_spatial-0.1.0/5x15_spatial_aware/timings_mean.csv +76 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/_prep_common.py +135 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/benchmark_long.csv +361 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/dataset_features.csv +9 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/experiment_7x15.py +409 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/figure_data.json +506 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/figures/heatmap_7x15.png +0 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/figures/heatmap_7x15.svg +783 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/figures/platform_topography.png +0 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/figures/platform_topography.svg +808 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/figures/spatial_weight_by_platform_7x15.png +0 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/figures/spatial_weight_by_platform_7x15.svg +372 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/landscape.json +423 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/make_figures_7x15.py +110 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/manifest.json +50 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/performance_matrix_mean.csv +9 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/performance_matrix_std.csv +9 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/platform_topography.csv +9 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/platform_topography.json +251 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/prep_merfish.py +20 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/prep_slideseqv2.py +20 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/prep_xenium.py +135 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/recommendation_loocv.csv +9 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/recommendation_loocv.json +272 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/report_7x15_cross_platform.md +201 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/timings_mean.csv +121 -0
- histoweave_spatial-0.1.0/7x15_cross_platform/topography_manifest.json +38 -0
- histoweave_spatial-0.1.0/CHANGELOG.md +449 -0
- histoweave_spatial-0.1.0/CITATION.cff +43 -0
- histoweave_spatial-0.1.0/CODE_OF_CONDUCT.md +134 -0
- histoweave_spatial-0.1.0/CONTRIBUTING.md +139 -0
- histoweave_spatial-0.1.0/LICENSE +29 -0
- histoweave_spatial-0.1.0/PKG-INFO +628 -0
- histoweave_spatial-0.1.0/README.md +498 -0
- histoweave_spatial-0.1.0/RELEASE_NOTES_v0.1.0.md +75 -0
- histoweave_spatial-0.1.0/ROADMAP.md +100 -0
- histoweave_spatial-0.1.0/SECURITY.md +20 -0
- histoweave_spatial-0.1.0/benchmark_cross_tissue/README.md +48 -0
- histoweave_spatial-0.1.0/benchmark_cross_tissue/experiment_7x19.py +320 -0
- histoweave_spatial-0.1.0/benchmark_cross_tissue/prepare_allen_abc_sections.py +188 -0
- histoweave_spatial-0.1.0/benchmark_cross_tissue/prepare_allen_mouse_brain.py +192 -0
- histoweave_spatial-0.1.0/benchmark_cross_tissue/prepare_human_lymph_node.py +389 -0
- histoweave_spatial-0.1.0/benchmark_crossplatform/build_topography.py +408 -0
- histoweave_spatial-0.1.0/benchmark_crossplatform/experiment_7x15.py +467 -0
- histoweave_spatial-0.1.0/benchmark_crossplatform/make_platform_topography.py +208 -0
- histoweave_spatial-0.1.0/benchmark_crossplatform/prepare_merfish.py +155 -0
- histoweave_spatial-0.1.0/benchmark_crossplatform/prepare_merfish_brain.py +117 -0
- histoweave_spatial-0.1.0/benchmark_crossplatform/prepare_slideseqv2.py +132 -0
- histoweave_spatial-0.1.0/benchmark_crossplatform/prepare_xenium.py +149 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/README.md +189 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/__init__.py +1 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/_xenium_pathology_common.py +243 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/benchmark_5x_external.json +90 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/benchmark_long.csv +226 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/bootstrap_ci.csv +76 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/dataset_manifest.json +47 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/decision_validation.json +33 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/evaluate_banksy_lymph.py +139 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/experiment_5x_external.py +429 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/figures/fig1_performance_heatmap.png +0 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/figures/fig1_performance_heatmap.svg +593 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/figures/fig2_method_boxplot.png +0 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/figures/fig2_method_boxplot.svg +742 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/figures/fig3_landscape_embedding.png +0 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/figures/fig3_landscape_embedding.svg +338 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/figures/fig4_recommender_regret.png +0 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/figures/fig4_recommender_regret.svg +395 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/figures/selective_regret_coverage.png +0 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/figures/selective_regret_coverage.svg +458 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/README.md +24 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/REPORT_independent_test_wu2021.md +46 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/benchmark_long.csv +145 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/dataset_manifest.json +95 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/fig_independent_test_wu2021.png +0 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/fig_independent_test_wu2021.svg +2747 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/independence_audit.json +26 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/independent_test_summary.json +95 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/manifest.json +55 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/preregistered_protocol.json +73 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/run_independent_test.py +636 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/independent_test_wu2021/sample_regret.csv +7 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/make_figures.py +326 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/build_n8_strict_loocv.py +614 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/decision_validation.json +35 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/fig_tissue_condition_flip.png +0 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/fig_tissue_condition_flip.svg +668 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/loocv_rows.csv +9 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/loocv_rows.json +122 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/loocv_summary.json +94 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/manifest.json +51 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/report_n8_strict_loocv.md +46 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/tissue_condition_flip.csv +9 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/tissue_condition_flip.json +54 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/n8_strict_region/within_condition_loocv.csv +9 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/performance_matrix_mean.csv +6 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/performance_matrix_std.csv +6 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/prepare_allen_merfish_brain_section.py +324 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/prepare_visium_hd_crc.py +327 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/prepare_visium_mouse_brain.py +190 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/prepare_xenium_lung_cancer.py +69 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/prepare_xenium_ovarian_cancer.py +60 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/recommendation_loocv.csv +6 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/recommendation_loocv.json +156 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/recommender_loocv_external.py +248 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/report_external_validation.md +162 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/REPORT_strict_external_panel_v2.md +50 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/banksy_lymph_long.csv +4 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/banksy_lymph_manifest.json +16 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/banksy_lymph_summary.json +44 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/build_strict_external_panel_v2.py +560 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/fig_strict_external_panel_v2.png +0 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/fig_strict_external_panel_v2.svg +2374 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/loocv_rows.csv +10 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/loocv_rows.json +137 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/loocv_summary.json +87 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/manifest.json +72 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/sota_coverage.csv +51 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/sota_coverage_summary.json +43 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/strict_external_units.csv +11 -0
- histoweave_spatial-0.1.0/benchmark_external_validation/strict_external_panel_v2/tls_two_dataset_summary.json +28 -0
- histoweave_spatial-0.1.0/case_study_dlpfc_consistency/build_uncertainty_case.py +352 -0
- histoweave_spatial-0.1.0/case_study_dlpfc_consistency/prepare.py +93 -0
- histoweave_spatial-0.1.0/case_study_dlpfc_consistency/report_case_study.md +139 -0
- histoweave_spatial-0.1.0/case_study_dlpfc_consistency/run_case_study.py +388 -0
- histoweave_spatial-0.1.0/conda-recipe/README.md +45 -0
- histoweave_spatial-0.1.0/conda-recipe/conda_build_config.yaml +10 -0
- histoweave_spatial-0.1.0/conda-recipe/meta.yaml +67 -0
- histoweave_spatial-0.1.0/docs/COMPILER_GAPS.md +6 -0
- histoweave_spatial-0.1.0/docs/PR_STREAMS.md +50 -0
- histoweave_spatial-0.1.0/docs/active-calibration.md +119 -0
- histoweave_spatial-0.1.0/docs/api.md +92 -0
- histoweave_spatial-0.1.0/docs/architecture.md +97 -0
- histoweave_spatial-0.1.0/docs/benchmark-comparison-reviewer-response.md +90 -0
- histoweave_spatial-0.1.0/docs/case-study-intercepted-recommendation.md +138 -0
- histoweave_spatial-0.1.0/docs/code-of-conduct.md +22 -0
- histoweave_spatial-0.1.0/docs/compiler.md +150 -0
- histoweave_spatial-0.1.0/docs/concepts.md +142 -0
- histoweave_spatial-0.1.0/docs/contributing.md +43 -0
- histoweave_spatial-0.1.0/docs/decision-protocol.md +233 -0
- histoweave_spatial-0.1.0/docs/digital-twin.md +112 -0
- histoweave_spatial-0.1.0/docs/failure-fingerprints.md +93 -0
- histoweave_spatial-0.1.0/docs/faq.md +96 -0
- histoweave_spatial-0.1.0/docs/index.md +45 -0
- histoweave_spatial-0.1.0/docs/method-lifecycle.md +87 -0
- histoweave_spatial-0.1.0/docs/method-selection.md +508 -0
- histoweave_spatial-0.1.0/docs/methods/banksy_py.md +29 -0
- histoweave_spatial-0.1.0/docs/methods/catalog.md +126 -0
- histoweave_spatial-0.1.0/docs/methods/categories/annotation.md +47 -0
- histoweave_spatial-0.1.0/docs/methods/categories/ccc.md +23 -0
- histoweave_spatial-0.1.0/docs/methods/categories/deconvolution.md +47 -0
- histoweave_spatial-0.1.0/docs/methods/categories/domain_detection.md +173 -0
- histoweave_spatial-0.1.0/docs/methods/categories/ingestion.md +64 -0
- histoweave_spatial-0.1.0/docs/methods/categories/integration.md +105 -0
- histoweave_spatial-0.1.0/docs/methods/categories/neighborhood.md +46 -0
- histoweave_spatial-0.1.0/docs/methods/categories/normalization.md +104 -0
- histoweave_spatial-0.1.0/docs/methods/categories/qc.md +67 -0
- histoweave_spatial-0.1.0/docs/methods/categories/segmentation.md +23 -0
- histoweave_spatial-0.1.0/docs/methods/categories/svg.md +91 -0
- histoweave_spatial-0.1.0/docs/methods/categories/virtual_st.md +33 -0
- histoweave_spatial-0.1.0/docs/methods/cell2location.md +30 -0
- histoweave_spatial-0.1.0/docs/methods/gaussian_mixture.md +25 -0
- histoweave_spatial-0.1.0/docs/methods/generated/agglomerative.md +49 -0
- histoweave_spatial-0.1.0/docs/methods/generated/arcsinh_transform.md +27 -0
- histoweave_spatial-0.1.0/docs/methods/generated/banksy.md +54 -0
- histoweave_spatial-0.1.0/docs/methods/generated/banksy_py.md +48 -0
- histoweave_spatial-0.1.0/docs/methods/generated/basic_qc.md +35 -0
- histoweave_spatial-0.1.0/docs/methods/generated/bayesspace.md +43 -0
- histoweave_spatial-0.1.0/docs/methods/generated/birch.md +51 -0
- histoweave_spatial-0.1.0/docs/methods/generated/bisecting_kmeans.md +40 -0
- histoweave_spatial-0.1.0/docs/methods/generated/cell2location.md +57 -0
- histoweave_spatial-0.1.0/docs/methods/generated/cellpose2.md +52 -0
- histoweave_spatial-0.1.0/docs/methods/generated/celltypist.md +43 -0
- histoweave_spatial-0.1.0/docs/methods/generated/clr_per_cell.md +27 -0
- histoweave_spatial-0.1.0/docs/methods/generated/combat.md +36 -0
- histoweave_spatial-0.1.0/docs/methods/generated/cosmx_reader.md +32 -0
- histoweave_spatial-0.1.0/docs/methods/generated/dbscan.md +40 -0
- histoweave_spatial-0.1.0/docs/methods/generated/denoising_spatial_autoencoder.md +45 -0
- histoweave_spatial-0.1.0/docs/methods/generated/gaussian_mixture.md +49 -0
- histoweave_spatial-0.1.0/docs/methods/generated/gearys_c.md +28 -0
- histoweave_spatial-0.1.0/docs/methods/generated/gene_complexity_qc.md +27 -0
- histoweave_spatial-0.1.0/docs/methods/generated/graph_expression_autoencoder.md +45 -0
- histoweave_spatial-0.1.0/docs/methods/generated/graphst.md +50 -0
- histoweave_spatial-0.1.0/docs/methods/generated/harmony.md +41 -0
- histoweave_spatial-0.1.0/docs/methods/generated/image_expression_attention.md +44 -0
- histoweave_spatial-0.1.0/docs/methods/generated/image_expression_autoencoder.md +44 -0
- histoweave_spatial-0.1.0/docs/methods/generated/image_expression_contrastive.md +44 -0
- histoweave_spatial-0.1.0/docs/methods/generated/kmeans.md +36 -0
- histoweave_spatial-0.1.0/docs/methods/generated/liana_plus.md +47 -0
- histoweave_spatial-0.1.0/docs/methods/generated/library_size_qc.md +27 -0
- histoweave_spatial-0.1.0/docs/methods/generated/library_size_scale.md +27 -0
- histoweave_spatial-0.1.0/docs/methods/generated/log1p_cp10k.md +31 -0
- histoweave_spatial-0.1.0/docs/methods/generated/marker_deconv.md +33 -0
- histoweave_spatial-0.1.0/docs/methods/generated/marker_score.md +30 -0
- histoweave_spatial-0.1.0/docs/methods/generated/mean_shift.md +39 -0
- histoweave_spatial-0.1.0/docs/methods/generated/merfish_reader.md +32 -0
- histoweave_spatial-0.1.0/docs/methods/generated/merscope_reader.md +32 -0
- histoweave_spatial-0.1.0/docs/methods/generated/minibatch_kmeans.md +50 -0
- histoweave_spatial-0.1.0/docs/methods/generated/mitochondrial_qc.md +28 -0
- histoweave_spatial-0.1.0/docs/methods/generated/morans_i.md +36 -0
- histoweave_spatial-0.1.0/docs/methods/generated/multimodal_graph_fusion.md +44 -0
- histoweave_spatial-0.1.0/docs/methods/generated/nnsvg.md +40 -0
- histoweave_spatial-0.1.0/docs/methods/generated/optics.md +39 -0
- histoweave_spatial-0.1.0/docs/methods/generated/r_lognorm.md +33 -0
- histoweave_spatial-0.1.0/docs/methods/generated/rctd.md +52 -0
- histoweave_spatial-0.1.0/docs/methods/generated/scanvi.md +50 -0
- histoweave_spatial-0.1.0/docs/methods/generated/sctransform.md +40 -0
- histoweave_spatial-0.1.0/docs/methods/generated/slideseq_reader.md +32 -0
- histoweave_spatial-0.1.0/docs/methods/generated/spagcn.md +52 -0
- histoweave_spatial-0.1.0/docs/methods/generated/spatial_autoencoder.md +45 -0
- histoweave_spatial-0.1.0/docs/methods/generated/spatial_graph.md +36 -0
- histoweave_spatial-0.1.0/docs/methods/generated/spatial_variance_ratio.md +28 -0
- histoweave_spatial-0.1.0/docs/methods/generated/spatialde.md +47 -0
- histoweave_spatial-0.1.0/docs/methods/generated/spectral.md +49 -0
- histoweave_spatial-0.1.0/docs/methods/generated/sqrt_transform.md +21 -0
- histoweave_spatial-0.1.0/docs/methods/generated/stagate.md +50 -0
- histoweave_spatial-0.1.0/docs/methods/generated/stereoseq_reader.md +32 -0
- histoweave_spatial-0.1.0/docs/methods/generated/tfidf_l2.md +21 -0
- histoweave_spatial-0.1.0/docs/methods/generated/variational_spatial_autoencoder.md +45 -0
- histoweave_spatial-0.1.0/docs/methods/generated/virtual_st_morphology.md +46 -0
- histoweave_spatial-0.1.0/docs/methods/generated/virtual_st_scellst.md +46 -0
- histoweave_spatial-0.1.0/docs/methods/generated/virtual_st_storm.md +46 -0
- histoweave_spatial-0.1.0/docs/methods/generated/visium_reader.md +28 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_adaptive_radius_graph.md +33 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_adaptive_saturation_qc.md +34 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_anchor_residual_integrate.md +35 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_anisotropy_svg.md +33 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_bootstrap_robust_svg.md +36 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_boundary_aware_domains.md +38 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_boundary_svg.md +33 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_expression_spatial_graph.md +34 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_graph_diffusion_normalize.md +36 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_hotspot_svg.md +33 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_multiscale_consensus_domains.md +37 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_multiscale_svg.md +34 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_mutual_knn_graph.md +32 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_neighbor_discordance_qc.md +36 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_neighbor_marker_annotate.md +36 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_rank_stabilize.md +32 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_robust_pearson_residual.md +34 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_spatial_entropy_qc.md +36 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_spatial_median_normalize.md +35 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_spatial_quantile_integrate.md +35 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_spatial_simplex_deconv.md +36 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_topology_regularized_domains.md +39 -0
- histoweave_spatial-0.1.0/docs/methods/generated/weave_uncertainty_domains.md +38 -0
- histoweave_spatial-0.1.0/docs/methods/generated/xenium_reader.md +29 -0
- histoweave_spatial-0.1.0/docs/methods/index.md +46 -0
- histoweave_spatial-0.1.0/docs/methods/spagcn.md +27 -0
- histoweave_spatial-0.1.0/docs/methods/spectral.md +26 -0
- histoweave_spatial-0.1.0/docs/methods/validation/agglomerative.md +113 -0
- histoweave_spatial-0.1.0/docs/methods/validation/banksy.md +60 -0
- histoweave_spatial-0.1.0/docs/methods/validation/banksy_py.md +29 -0
- histoweave_spatial-0.1.0/docs/methods/validation/birch.md +113 -0
- histoweave_spatial-0.1.0/docs/methods/validation/cell2location.md +150 -0
- histoweave_spatial-0.1.0/docs/methods/validation/gaussian_mixture.md +27 -0
- histoweave_spatial-0.1.0/docs/methods/validation/graphst.md +85 -0
- histoweave_spatial-0.1.0/docs/methods/validation/index.md +103 -0
- histoweave_spatial-0.1.0/docs/methods/validation/minibatch_kmeans.md +76 -0
- histoweave_spatial-0.1.0/docs/methods/validation/rctd.md +100 -0
- histoweave_spatial-0.1.0/docs/methods/validation/spagcn.md +111 -0
- histoweave_spatial-0.1.0/docs/methods/validation/spatialde.md +118 -0
- histoweave_spatial-0.1.0/docs/methods/validation/spectral.md +28 -0
- histoweave_spatial-0.1.0/docs/methods/validation/stagate.md +103 -0
- histoweave_spatial-0.1.0/docs/multimodal-virtual-st.md +224 -0
- histoweave_spatial-0.1.0/docs/parallel-experiment-table.md +49 -0
- histoweave_spatial-0.1.0/docs/phenomenology-benchmark.md +138 -0
- histoweave_spatial-0.1.0/docs/quickstart.md +305 -0
- histoweave_spatial-0.1.0/docs/reference-artefacts.md +156 -0
- histoweave_spatial-0.1.0/docs/research-methods.md +62 -0
- histoweave_spatial-0.1.0/docs/roadmap.md +12 -0
- histoweave_spatial-0.1.0/docs/sota-reproduction.md +78 -0
- histoweave_spatial-0.1.0/docs/spatial-automl.md +117 -0
- histoweave_spatial-0.1.0/docs/statistical-review.md +113 -0
- histoweave_spatial-0.1.0/docs/troubleshooting.md +175 -0
- histoweave_spatial-0.1.0/docs/tutorials/01_real_visium_dlpfc.md +177 -0
- histoweave_spatial-0.1.0/docs/tutorials/02_custom_plugin_development.md +168 -0
- histoweave_spatial-0.1.0/docs/tutorials/03_batch_effect_correction.md +155 -0
- histoweave_spatial-0.1.0/docs/tutorials/04_xenium_merfish.md +163 -0
- histoweave_spatial-0.1.0/docs/tutorials/05_large_imaging_scale.md +108 -0
- histoweave_spatial-0.1.0/docs/tutorials/06_virtual_st_he.md +150 -0
- histoweave_spatial-0.1.0/docs/vs-squidpy-spatialdata.md +122 -0
- histoweave_spatial-0.1.0/docs/zh/quickstart.md +311 -0
- histoweave_spatial-0.1.0/examples/README.md +43 -0
- histoweave_spatial-0.1.0/examples/case_study_intercepted_recommendation.py +487 -0
- histoweave_spatial-0.1.0/examples/quickstart.py +52 -0
- histoweave_spatial-0.1.0/examples/tutorial_batch_correction.py +105 -0
- histoweave_spatial-0.1.0/examples/tutorial_custom_plugin.py +96 -0
- histoweave_spatial-0.1.0/examples/tutorial_real_visium.py +85 -0
- histoweave_spatial-0.1.0/examples/workshop_30min.ipynb +312 -0
- histoweave_spatial-0.1.0/failure_boundary_mapping/failure_boundary.py +42 -0
- histoweave_spatial-0.1.0/failure_boundary_mapping/make_figures.py +234 -0
- histoweave_spatial-0.1.0/failure_boundary_mapping/report_failure_boundary_mapping.md +147 -0
- histoweave_spatial-0.1.0/failure_boundary_mapping/run_failure_mapping.py +68 -0
- histoweave_spatial-0.1.0/federation/CONTRIBUTING_EVIDENCE.md +157 -0
- histoweave_spatial-0.1.0/federation/PROTOCOL.md +216 -0
- histoweave_spatial-0.1.0/federation/bundles/histoweave-reference.json +1429 -0
- histoweave_spatial-0.1.0/federation/nodes/TEMPLATE.node.json +21 -0
- histoweave_spatial-0.1.0/federation/nodes/histoweave-reference.json +20 -0
- histoweave_spatial-0.1.0/federation/nodes/index.json +15 -0
- histoweave_spatial-0.1.0/figure3_results/benchmark_long.csv +31 -0
- histoweave_spatial-0.1.0/figure3_results/dataset_features.csv +4 -0
- histoweave_spatial-0.1.0/figure3_results/figure3_data.json +317 -0
- histoweave_spatial-0.1.0/figure3_results/landscape.json +189 -0
- histoweave_spatial-0.1.0/figure3_results/landscape_dlpfc_merged.json +460 -0
- histoweave_spatial-0.1.0/figure3_results/manifest.json +46 -0
- histoweave_spatial-0.1.0/figure3_results/performance_matrix.csv +4 -0
- histoweave_spatial-0.1.0/figure3_results/recommendation_loocv.csv +4 -0
- histoweave_spatial-0.1.0/figure3_results/recommendation_loocv.json +194 -0
- histoweave_spatial-0.1.0/figure3_results/validation.json +21 -0
- histoweave_spatial-0.1.0/independent_personalisation_results/README.md +33 -0
- histoweave_spatial-0.1.0/independent_personalisation_results/cross_lab_reproducibility.json +393 -0
- histoweave_spatial-0.1.0/independent_personalisation_results/independent_personalisation_report.md +44 -0
- histoweave_spatial-0.1.0/independent_personalisation_results/independent_personalisation_summary.json +55 -0
- histoweave_spatial-0.1.0/independent_personalisation_results/independent_unit_landscape.json +1035 -0
- histoweave_spatial-0.1.0/independent_personalisation_results/personalisation_policies.json +346 -0
- histoweave_spatial-0.1.0/independent_personalisation_results/real_independent_unit_landscape.json +722 -0
- histoweave_spatial-0.1.0/leaderboard/README.md +74 -0
- histoweave_spatial-0.1.0/leaderboard/SUBMISSION.md +109 -0
- histoweave_spatial-0.1.0/leaderboard/data.json +5620 -0
- histoweave_spatial-0.1.0/leaderboard/generate.py +473 -0
- histoweave_spatial-0.1.0/leaderboard/index.html +175 -0
- histoweave_spatial-0.1.0/leaderboard/main.js +567 -0
- histoweave_spatial-0.1.0/leaderboard/styles.css +321 -0
- histoweave_spatial-0.1.0/mkdocs.yml +127 -0
- histoweave_spatial-0.1.0/non_oracle_k_sota/README.md +34 -0
- histoweave_spatial-0.1.0/non_oracle_k_sota/benchmark_long.csv +41 -0
- histoweave_spatial-0.1.0/non_oracle_k_sota/benchmark_long.json +1922 -0
- histoweave_spatial-0.1.0/non_oracle_k_sota/dual_track_k.csv +16 -0
- histoweave_spatial-0.1.0/non_oracle_k_sota/dual_track_k.json +627 -0
- histoweave_spatial-0.1.0/non_oracle_k_sota/figures/non_oracle_k_ari_recovery.png +0 -0
- histoweave_spatial-0.1.0/non_oracle_k_sota/figures/non_oracle_k_ari_recovery.svg +1213 -0
- histoweave_spatial-0.1.0/non_oracle_k_sota/report_non_oracle_k_sota.md +115 -0
- histoweave_spatial-0.1.0/non_oracle_k_sota/run_non_oracle_k_sota.py +704 -0
- histoweave_spatial-0.1.0/non_oracle_k_sota/summary.json +119 -0
- histoweave_spatial-0.1.0/parallel_experiment_table/README.md +73 -0
- histoweave_spatial-0.1.0/parallel_experiment_table/build_parallel_table.py +603 -0
- histoweave_spatial-0.1.0/parallel_experiment_table/figures/parallel_heatmap.png +0 -0
- histoweave_spatial-0.1.0/parallel_experiment_table/figures/parallel_heatmap.svg +943 -0
- histoweave_spatial-0.1.0/parallel_experiment_table/make_heatmap.py +170 -0
- histoweave_spatial-0.1.0/parallel_experiment_table/method_meta.json +204 -0
- histoweave_spatial-0.1.0/parallel_experiment_table/parallel_experiment_matrix.csv +6 -0
- histoweave_spatial-0.1.0/parallel_experiment_table/parallel_experiment_summary.csv +34 -0
- histoweave_spatial-0.1.0/parallel_experiment_table/parallel_experiment_table.csv +166 -0
- histoweave_spatial-0.1.0/parallel_experiment_table/report_parallel_experiment.md +153 -0
- histoweave_spatial-0.1.0/pareto_isus_results/README.md +49 -0
- histoweave_spatial-0.1.0/pareto_isus_results/isus_calibration.json +47 -0
- histoweave_spatial-0.1.0/pareto_isus_results/isus_calibration.png +0 -0
- histoweave_spatial-0.1.0/pareto_isus_results/isus_calibration.svg +511 -0
- histoweave_spatial-0.1.0/pareto_isus_results/isus_calibration_table.csv +6 -0
- histoweave_spatial-0.1.0/pareto_isus_results/pareto_frontier_151669.png +0 -0
- histoweave_spatial-0.1.0/pareto_isus_results/pareto_frontier_151669.svg +127 -0
- histoweave_spatial-0.1.0/pareto_isus_results/pareto_frontier_151673.png +0 -0
- histoweave_spatial-0.1.0/pareto_isus_results/pareto_frontier_151673.svg +118 -0
- histoweave_spatial-0.1.0/pareto_isus_results/pareto_report.json +691 -0
- histoweave_spatial-0.1.0/phenomenology_benchmark/clean_pilot/capability_index.csv +236 -0
- histoweave_spatial-0.1.0/phenomenology_benchmark/clean_pilot/capability_matrix.csv +325 -0
- histoweave_spatial-0.1.0/phenomenology_benchmark/clean_pilot/coverage_summary.csv +55 -0
- histoweave_spatial-0.1.0/phenomenology_benchmark/clean_pilot/experiment_manifest.json +125 -0
- histoweave_spatial-0.1.0/phenomenology_benchmark/clean_pilot/method_manifest.json +1307 -0
- histoweave_spatial-0.1.0/phenomenology_benchmark/clean_pilot/pilot_summary.json +29 -0
- histoweave_spatial-0.1.0/phenomenology_benchmark/clean_pilot/status_by_category.csv +23 -0
- histoweave_spatial-0.1.0/phenomenology_benchmark/clean_pilot/status_by_method.csv +60 -0
- histoweave_spatial-0.1.0/plugin-template/README.md +45 -0
- histoweave_spatial-0.1.0/plugin-template/pyproject.toml +20 -0
- histoweave_spatial-0.1.0/plugin-template/src/histoweave_myplugin/__init__.py +11 -0
- histoweave_spatial-0.1.0/plugin-template/src/histoweave_myplugin/method.py +46 -0
- histoweave_spatial-0.1.0/protocol_endpoints_results/README.md +34 -0
- histoweave_spatial-0.1.0/protocol_endpoints_results/multisource_landscape.json +940 -0
- histoweave_spatial-0.1.0/protocol_endpoints_results/oracle_k_leakage.json +192 -0
- histoweave_spatial-0.1.0/protocol_endpoints_results/pareto_stability.json +178 -0
- histoweave_spatial-0.1.0/protocol_endpoints_results/protocol_endpoints_report.md +31 -0
- histoweave_spatial-0.1.0/protocol_endpoints_results/protocol_endpoints_summary.json +43 -0
- histoweave_spatial-0.1.0/protocol_endpoints_results/selective_regret_coverage.json +146 -0
- histoweave_spatial-0.1.0/protocol_endpoints_results/sota_unified_resource.json +595 -0
- histoweave_spatial-0.1.0/protocol_endpoints_results/study_grouped_20_recommendation.json +1789 -0
- histoweave_spatial-0.1.0/protocol_endpoints_results/study_grouped_20_report.md +39 -0
- histoweave_spatial-0.1.0/pyproject.toml +190 -0
- histoweave_spatial-0.1.0/reference_artefacts/MANIFEST.json +1137 -0
- histoweave_spatial-0.1.0/reference_artefacts/README.md +28 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/DISCOVERY_REPORT.md +140 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/FINAL_RESULTS_ADDENDUM.md +50 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/audit_h5ad.py +178 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/dlpfc_sct_scvi/README.md +31 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/dlpfc_sct_scvi/RESULTS_README.md +129 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/dlpfc_sct_scvi/plot_scvi_only.py +132 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/dlpfc_sct_scvi/run_dlpfc_sct_scvi.py +1232 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/dlpfc_sct_scvi/run_sct_scores.R +121 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/pilot_gei.py +991 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/scale_hierarchy/README.md +29 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/scale_hierarchy/run_scale_hierarchy.py +1038 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/scp815_manifest.json +1 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/slideseq_raw/README.md +35 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/slideseq_raw/RESULTS_README.md +78 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/slideseq_raw/export_raw_rdata.R +105 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/slideseq_raw/run_raw_recovery.py +905 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/slideseq_raw/run_sct_pilot.R +94 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/slideseq_raw/run_scvi_smoke.py +438 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/slideseq_raw/run_scvi_smoke_repro.py +28 -0
- histoweave_spatial-0.1.0/research/cross_tissue_niches/slideseq_raw/run_vascular_external_hypothesis.py +424 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/BIOLOGICAL_STORY.md +243 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/CLAIM_LADDER.md +73 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/COHORT_META_REPORT.md +69 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/COMPONENT_COMPARISON.md +112 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/COMPONENT_REPORT_dlpfc_151508.md +85 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/COMPONENT_REPORT_dlpfc_151508_rank1_n138.md +92 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/COMPONENT_REPORT_dlpfc_151669.md +80 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/COMPONENT_REPORT_dlpfc_151669_rank0_n137.md +80 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/COMPONENT_REPORT_dlpfc_151673.md +86 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/COMPONENT_REPORT_dlpfc_151673_rank0_n47.md +86 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/COMPONENT_REPORT_dlpfc_151673_rank1_n24.md +62 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/DISCOVERY_REPORT.md +76 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/DONOR_BOOTSTRAP_L3.md +38 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/FUNCTIONAL_EXPERIMENTS.md +340 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/FUNCTIONAL_VALIDATION.md +351 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/IF_LAB_BRIEF.md +70 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/IF_PROTOCOL.md +73 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/PANEL_VALIDATION_REPORT.md +121 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/PROJECT_STATUS.md +106 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/README.md +125 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/VALIDATED_BIOLOGY_REPORT.md +44 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/analyze_functional_return.py +582 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/analyze_if_return.py +525 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/analyze_largest_component.py +626 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/compose_biological_story.py +655 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/functional_experiments.py +421 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/functional_modules.py +327 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/prepare_functional_experiment_package.py +405 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/prepare_if_lab_package.py +576 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/run_cohort_panel.py +503 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/run_discovery.py +638 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/run_donor_bootstrap.py +144 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/run_functional_validation.py +933 -0
- histoweave_spatial-0.1.0/research/discovery_uncertainty_niches/validate_panel_and_rois.py +686 -0
- histoweave_spatial-0.1.0/research/discovery_xenium_lymph/GC_DEEP_DIVE_REPORT.md +32 -0
- histoweave_spatial-0.1.0/research/discovery_xenium_lymph/KCNN4_ORAI3_NEIGHBORHOOD.md +255 -0
- histoweave_spatial-0.1.0/research/discovery_xenium_lymph/LYMPH_DISCOVERY_REPORT.md +58 -0
- histoweave_spatial-0.1.0/research/discovery_xenium_lymph/OFFICIAL_SWAP_COMPARISON.md +95 -0
- histoweave_spatial-0.1.0/research/discovery_xenium_lymph/README.md +80 -0
- histoweave_spatial-0.1.0/research/discovery_xenium_lymph/analyze_ca2_niche_neighborhood.py +710 -0
- histoweave_spatial-0.1.0/research/discovery_xenium_lymph/analyze_gc_components.py +741 -0
- histoweave_spatial-0.1.0/research/discovery_xenium_lymph/prepare_bundle.py +470 -0
- histoweave_spatial-0.1.0/research/discovery_xenium_lymph/run_discovery_ln.py +393 -0
- histoweave_spatial-0.1.0/research/discovery_xenium_lymph/swap_and_rerun.py +242 -0
- histoweave_spatial-0.1.0/research/method_validation/GRAPHST_STAGATE_REAL_ARI.md +37 -0
- histoweave_spatial-0.1.0/research/method_validation/PROTOCOL.md +73 -0
- histoweave_spatial-0.1.0/research/method_validation/README.md +47 -0
- histoweave_spatial-0.1.0/research/method_validation/compile_validation_evidence.py +775 -0
- histoweave_spatial-0.1.0/research/method_validation/merge_real_ari_checkpoints.py +103 -0
- histoweave_spatial-0.1.0/research/method_validation/run_cell2location_multidataset.py +315 -0
- histoweave_spatial-0.1.0/research/method_validation/run_real_graphst_stagate_ari.py +279 -0
- histoweave_spatial-0.1.0/research/method_validation/run_sota_batch_multidataset.py +580 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/DISCOVERY_tls_niche_under_resolution.md +101 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/analyze_tls_consensus.py +329 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/analyze_tls_second_dataset.py +303 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/figures/fig1_tls_niche_spatial.png +0 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/figures/fig1_tls_niche_spatial.svg +13310 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/figures/fig2_resolution_sensitivity.png +0 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/figures/fig2_resolution_sensitivity.svg +908 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/figures/fig3_marker_validation.png +0 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/figures/fig3_marker_validation.svg +841 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/run_bc_method_labels.py +134 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/second_dataset_xenium_lymph/REPORT_tls_second_dataset.md +37 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/second_dataset_xenium_lymph/manifest.json +21 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/second_dataset_xenium_lymph/tls_second_dataset_summary.json +71 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/tables/discovery_summary.json +62 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/tables/recovery_metrics.csv +7 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/tables/resolution_sensitivity.csv +21 -0
- histoweave_spatial-0.1.0/research/phaseB_tls_consensus/tables/resolution_sensitivity_summary.json +31 -0
- histoweave_spatial-0.1.0/scalability_proof/complexity_fits.csv +31 -0
- histoweave_spatial-0.1.0/scalability_proof/figures/fig1_time_vs_cells.png +0 -0
- histoweave_spatial-0.1.0/scalability_proof/figures/fig1_time_vs_cells.svg +4342 -0
- histoweave_spatial-0.1.0/scalability_proof/figures/fig2_memory_vs_cells.png +0 -0
- histoweave_spatial-0.1.0/scalability_proof/figures/fig2_memory_vs_cells.svg +3540 -0
- histoweave_spatial-0.1.0/scalability_proof/figures/fig3_throughput_vs_cells.png +0 -0
- histoweave_spatial-0.1.0/scalability_proof/figures/fig3_throughput_vs_cells.svg +3412 -0
- histoweave_spatial-0.1.0/scalability_proof/figures/fig4_complexity_exponents.png +0 -0
- histoweave_spatial-0.1.0/scalability_proof/figures/fig4_complexity_exponents.svg +646 -0
- histoweave_spatial-0.1.0/scalability_proof/figures/fig5_status_matrix.png +0 -0
- histoweave_spatial-0.1.0/scalability_proof/figures/fig5_status_matrix.svg +686 -0
- histoweave_spatial-0.1.0/scalability_proof/report_scalability_proof.md +190 -0
- histoweave_spatial-0.1.0/scalability_proof/scaling_metrics.csv +151 -0
- histoweave_spatial-0.1.0/scalability_proof/scaling_summary.json +48 -0
- histoweave_spatial-0.1.0/scripts/__init__.py +1 -0
- histoweave_spatial-0.1.0/scripts/_clean_unused_ignores.py +51 -0
- histoweave_spatial-0.1.0/scripts/build_dlpfc_bundles.py +287 -0
- histoweave_spatial-0.1.0/scripts/build_merged_landscape.py +63 -0
- histoweave_spatial-0.1.0/scripts/build_reference_artefact_manifest.py +221 -0
- histoweave_spatial-0.1.0/scripts/dlpfc_cell2location_reference.py +282 -0
- histoweave_spatial-0.1.0/scripts/expand_real_independent_studies.py +666 -0
- histoweave_spatial-0.1.0/scripts/generate_method_docs.py +430 -0
- histoweave_spatial-0.1.0/scripts/prepare_visium_hne_virtual_st.py +147 -0
- histoweave_spatial-0.1.0/scripts/run_independent_personalisation.py +208 -0
- histoweave_spatial-0.1.0/scripts/run_protocol_endpoints.py +653 -0
- histoweave_spatial-0.1.0/scripts/run_sota_dlpfc.py +110 -0
- histoweave_spatial-0.1.0/scripts/scientific_figure_pro.py +155 -0
- histoweave_spatial-0.1.0/src/histoweave/__init__.py +67 -0
- histoweave_spatial-0.1.0/src/histoweave/__main__.py +8 -0
- histoweave_spatial-0.1.0/src/histoweave/_math.py +186 -0
- histoweave_spatial-0.1.0/src/histoweave/automl/__init__.py +36 -0
- histoweave_spatial-0.1.0/src/histoweave/automl/compiler.py +710 -0
- histoweave_spatial-0.1.0/src/histoweave/automl/report.py +290 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/__init__.py +481 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/active_calibration.py +401 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/causal.py +529 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/complexity.py +40 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/decision.py +674 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/digital_twin.py +260 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/digital_twin_report.py +217 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/donor_bootstrap.py +262 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/failure_boundary.py +990 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/failure_fingerprint.py +596 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/features.py +449 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/figure3.py +554 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/harness.py +482 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/independent_personalisation.py +996 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/isus.py +1195 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/k_selection.py +1073 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/landscape.py +592 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/landscape_io.py +436 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/multiple_testing.py +158 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/pareto.py +505 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/pareto_io.py +243 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/phenomenology_contracts.py +406 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/phenomenology_metrics.py +555 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/phenomenology_runner.py +580 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/phenomenology_statistics.py +293 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/phenomenology_suite.py +238 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/protocol_endpoints.py +1258 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/real_data.py +433 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/recommend.py +871 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/scaling.py +301 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/sota_pipeline.py +646 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/stats_review.py +382 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/study_grouped.py +322 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/task_contract.py +519 -0
- histoweave_spatial-0.1.0/src/histoweave/benchmark/uncertainty.py +230 -0
- histoweave_spatial-0.1.0/src/histoweave/cli.py +2664 -0
- histoweave_spatial-0.1.0/src/histoweave/compiler/__init__.py +208 -0
- histoweave_spatial-0.1.0/src/histoweave/compiler/catalog.py +28 -0
- histoweave_spatial-0.1.0/src/histoweave/compiler/executor.py +173 -0
- histoweave_spatial-0.1.0/src/histoweave/compiler/gaps.py +29 -0
- histoweave_spatial-0.1.0/src/histoweave/compiler/llm.py +86 -0
- histoweave_spatial-0.1.0/src/histoweave/compiler/prompts.py +78 -0
- histoweave_spatial-0.1.0/src/histoweave/compiler/schema.py +320 -0
- histoweave_spatial-0.1.0/src/histoweave/compiler/serialization.py +167 -0
- histoweave_spatial-0.1.0/src/histoweave/compiler/templates.py +195 -0
- histoweave_spatial-0.1.0/src/histoweave/compiler/validate.py +88 -0
- histoweave_spatial-0.1.0/src/histoweave/data/__init__.py +7 -0
- histoweave_spatial-0.1.0/src/histoweave/data/model.py +651 -0
- histoweave_spatial-0.1.0/src/histoweave/datasets/__init__.py +94 -0
- histoweave_spatial-0.1.0/src/histoweave/datasets/digital_twin.py +574 -0
- histoweave_spatial-0.1.0/src/histoweave/datasets/domain_mappings.json +159 -0
- histoweave_spatial-0.1.0/src/histoweave/datasets/histology.py +471 -0
- histoweave_spatial-0.1.0/src/histoweave/datasets/pathology_domains.py +184 -0
- histoweave_spatial-0.1.0/src/histoweave/datasets/phenomenology.py +625 -0
- histoweave_spatial-0.1.0/src/histoweave/datasets/real.py +942 -0
- histoweave_spatial-0.1.0/src/histoweave/datasets/scale_contract.py +150 -0
- histoweave_spatial-0.1.0/src/histoweave/datasets/synthetic.py +739 -0
- histoweave_spatial-0.1.0/src/histoweave/datasets/vendor.py +179 -0
- histoweave_spatial-0.1.0/src/histoweave/decision.py +146 -0
- histoweave_spatial-0.1.0/src/histoweave/federation/__init__.py +135 -0
- histoweave_spatial-0.1.0/src/histoweave/federation/cli_fed.py +544 -0
- histoweave_spatial-0.1.0/src/histoweave/federation/consensus.py +348 -0
- histoweave_spatial-0.1.0/src/histoweave/federation/landscape_bridge.py +162 -0
- histoweave_spatial-0.1.0/src/histoweave/federation/registry.py +290 -0
- histoweave_spatial-0.1.0/src/histoweave/federation/schema.py +538 -0
- histoweave_spatial-0.1.0/src/histoweave/federation/signing.py +355 -0
- histoweave_spatial-0.1.0/src/histoweave/federation/store.py +264 -0
- histoweave_spatial-0.1.0/src/histoweave/io/__init__.py +31 -0
- histoweave_spatial-0.1.0/src/histoweave/io/_tenx.py +164 -0
- histoweave_spatial-0.1.0/src/histoweave/io/base.py +36 -0
- histoweave_spatial-0.1.0/src/histoweave/io/bundle.py +510 -0
- histoweave_spatial-0.1.0/src/histoweave/io/readers.py +308 -0
- histoweave_spatial-0.1.0/src/histoweave/logging.py +174 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/__init__.py +59 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/__init__.py +49 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/_markers.py +111 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/_r_base.py +169 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/_sklearn_base.py +280 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/_sota_common.py +113 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/_validation.py +82 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/annotate.py +51 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/banksy.py +110 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/banksy_py.py +145 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/cell2location.py +241 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/cellpose2.py +183 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/celltypist.py +146 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/deconv.py +71 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/deep_learning.py +335 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/domains.py +72 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/extended_native.py +280 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/ingestion.py +237 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/integration.py +389 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/liana_plus.py +133 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/nnsvg.py +96 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/normalize.py +71 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/qc.py +100 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/r_demo.py +74 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/real_methods.py +8 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/release_manifest.py +409 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/research_context.py +734 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/research_preprocessing.py +443 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/research_spatial.py +506 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/scanvi.py +185 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/sctransform.py +110 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/sklearn_clustering.py +268 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/sota_domains.py +693 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/spatial_graph.py +126 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/spatial_svg.py +157 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/spatialde.py +184 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/builtin/virtual_st.py +497 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/coverage.py +196 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/experimental/__init__.py +1 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/experimental/banksy_py.py +11 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/interfaces.py +437 -0
- histoweave_spatial-0.1.0/src/histoweave/plugins/registry.py +383 -0
- histoweave_spatial-0.1.0/src/histoweave/report/__init__.py +14 -0
- histoweave_spatial-0.1.0/src/histoweave/report/report.py +208 -0
- histoweave_spatial-0.1.0/src/histoweave/report/svg.py +178 -0
- histoweave_spatial-0.1.0/src/histoweave/report/templates/report.html.j2 +289 -0
- histoweave_spatial-0.1.0/src/histoweave/report/vitessce_data.py +326 -0
- histoweave_spatial-0.1.0/src/histoweave/workflow/__init__.py +23 -0
- histoweave_spatial-0.1.0/src/histoweave/workflow/pipeline.py +310 -0
- histoweave_spatial-0.1.0/study_grouped_5slice_results/study_grouped_landscape.json +356 -0
- histoweave_spatial-0.1.0/study_grouped_5slice_results/study_grouped_recommendation.json +296 -0
- histoweave_spatial-0.1.0/study_grouped_5slice_results/study_grouped_report.md +20 -0
- histoweave_spatial-0.1.0/study_grouped_phaseb_results/landscape.json +447 -0
- histoweave_spatial-0.1.0/study_grouped_results/study_grouped_landscape.json +280 -0
- histoweave_spatial-0.1.0/study_grouped_results/study_grouped_recommendation.json +187 -0
- histoweave_spatial-0.1.0/study_grouped_results/study_grouped_report.md +21 -0
- histoweave_spatial-0.1.0/submission_freeze_v1/DATA_CODE_AVAILABILITY.md +135 -0
- histoweave_spatial-0.1.0/submission_freeze_v1/README.md +62 -0
- histoweave_spatial-0.1.0/submission_freeze_v1/main_figures.lock.json +120 -0
- histoweave_spatial-0.1.0/submission_freeze_v1/reproduce_submission_freeze.py +424 -0
- histoweave_spatial-0.1.0/submission_freeze_v1/submission_freeze_manifest.json +99 -0
- histoweave_spatial-0.1.0/submission_freeze_v1/supplement_benchmark_table.csv +7 -0
- histoweave_spatial-0.1.0/tests/conftest.py +38 -0
- histoweave_spatial-0.1.0/tests/federation_helpers.py +118 -0
- histoweave_spatial-0.1.0/tests/perf_baselines.json +33 -0
- histoweave_spatial-0.1.0/tests/test_active_calibration.py +127 -0
- histoweave_spatial-0.1.0/tests/test_allen_mouse_brain_preparer.py +59 -0
- histoweave_spatial-0.1.0/tests/test_annotate_graph_smoke.py +20 -0
- histoweave_spatial-0.1.0/tests/test_banksy_spatialde.py +113 -0
- histoweave_spatial-0.1.0/tests/test_benchmark.py +59 -0
- histoweave_spatial-0.1.0/tests/test_benchmark_extended.py +322 -0
- histoweave_spatial-0.1.0/tests/test_boundary_uncertainty.py +80 -0
- histoweave_spatial-0.1.0/tests/test_bundle.py +129 -0
- histoweave_spatial-0.1.0/tests/test_case_study_intercepted_recommendation.py +79 -0
- histoweave_spatial-0.1.0/tests/test_causal.py +102 -0
- histoweave_spatial-0.1.0/tests/test_cli.py +126 -0
- histoweave_spatial-0.1.0/tests/test_cli_stats_and_discovery.py +85 -0
- histoweave_spatial-0.1.0/tests/test_compiler.py +568 -0
- histoweave_spatial-0.1.0/tests/test_complexity_unit.py +16 -0
- histoweave_spatial-0.1.0/tests/test_core_real_method_contracts.py +209 -0
- histoweave_spatial-0.1.0/tests/test_cross_tissue_validation.py +81 -0
- histoweave_spatial-0.1.0/tests/test_data_model.py +166 -0
- histoweave_spatial-0.1.0/tests/test_dataset_registry.py +218 -0
- histoweave_spatial-0.1.0/tests/test_decision.py +325 -0
- histoweave_spatial-0.1.0/tests/test_digital_twin.py +97 -0
- histoweave_spatial-0.1.0/tests/test_dlpfc_cell2location.py +219 -0
- histoweave_spatial-0.1.0/tests/test_dlpfc_real.py +166 -0
- histoweave_spatial-0.1.0/tests/test_domains_deconv_smoke.py +27 -0
- histoweave_spatial-0.1.0/tests/test_donor_bootstrap.py +161 -0
- histoweave_spatial-0.1.0/tests/test_env_contract_unit.py +10 -0
- histoweave_spatial-0.1.0/tests/test_external_validation_preparers.py +428 -0
- histoweave_spatial-0.1.0/tests/test_failure_boundary.py +168 -0
- histoweave_spatial-0.1.0/tests/test_failure_fingerprint.py +97 -0
- histoweave_spatial-0.1.0/tests/test_features_unit.py +34 -0
- histoweave_spatial-0.1.0/tests/test_federation_cli.py +347 -0
- histoweave_spatial-0.1.0/tests/test_federation_consensus.py +133 -0
- histoweave_spatial-0.1.0/tests/test_federation_properties.py +76 -0
- histoweave_spatial-0.1.0/tests/test_federation_registry_loading.py +185 -0
- histoweave_spatial-0.1.0/tests/test_federation_registry_sim.py +201 -0
- histoweave_spatial-0.1.0/tests/test_federation_schema_signing.py +294 -0
- histoweave_spatial-0.1.0/tests/test_figure3.py +72 -0
- histoweave_spatial-0.1.0/tests/test_harmony_integration.py +99 -0
- histoweave_spatial-0.1.0/tests/test_harness_defaults_unit.py +16 -0
- histoweave_spatial-0.1.0/tests/test_harness_stats_and_k.py +60 -0
- histoweave_spatial-0.1.0/tests/test_histology_virtual_st_real.py +200 -0
- histoweave_spatial-0.1.0/tests/test_independent_personalisation.py +131 -0
- histoweave_spatial-0.1.0/tests/test_independent_test_wu2021.py +62 -0
- histoweave_spatial-0.1.0/tests/test_ingestion_methods.py +80 -0
- histoweave_spatial-0.1.0/tests/test_interfaces_unit.py +33 -0
- histoweave_spatial-0.1.0/tests/test_io_readers.py +82 -0
- histoweave_spatial-0.1.0/tests/test_isus.py +257 -0
- histoweave_spatial-0.1.0/tests/test_k_selection.py +206 -0
- histoweave_spatial-0.1.0/tests/test_logging_contract.py +94 -0
- histoweave_spatial-0.1.0/tests/test_logging_helpers_unit.py +13 -0
- histoweave_spatial-0.1.0/tests/test_math.py +237 -0
- histoweave_spatial-0.1.0/tests/test_method_coverage_expansion.py +90 -0
- histoweave_spatial-0.1.0/tests/test_method_docs_coverage.py +76 -0
- histoweave_spatial-0.1.0/tests/test_method_lifecycle.py +129 -0
- histoweave_spatial-0.1.0/tests/test_method_maturity_policies_unit.py +11 -0
- histoweave_spatial-0.1.0/tests/test_method_validation_evidence.py +135 -0
- histoweave_spatial-0.1.0/tests/test_methods.py +114 -0
- histoweave_spatial-0.1.0/tests/test_multimodal_tasks_virtual_st.py +292 -0
- histoweave_spatial-0.1.0/tests/test_n8_external_validation.py +41 -0
- histoweave_spatial-0.1.0/tests/test_nextflow_contract.py +124 -0
- histoweave_spatial-0.1.0/tests/test_nnsvg.py +84 -0
- histoweave_spatial-0.1.0/tests/test_p0_platform_hardening.py +227 -0
- histoweave_spatial-0.1.0/tests/test_p1_landscape_and_registry.py +171 -0
- histoweave_spatial-0.1.0/tests/test_p2_sota_and_scale.py +137 -0
- histoweave_spatial-0.1.0/tests/test_pareto.py +79 -0
- histoweave_spatial-0.1.0/tests/test_performance_regression.py +102 -0
- histoweave_spatial-0.1.0/tests/test_phenomenology_cli.py +101 -0
- histoweave_spatial-0.1.0/tests/test_phenomenology_contracts.py +112 -0
- histoweave_spatial-0.1.0/tests/test_phenomenology_metrics.py +198 -0
- histoweave_spatial-0.1.0/tests/test_phenomenology_runner.py +225 -0
- histoweave_spatial-0.1.0/tests/test_phenomenology_statistics.py +130 -0
- histoweave_spatial-0.1.0/tests/test_phenomenology_suite.py +87 -0
- histoweave_spatial-0.1.0/tests/test_phenomenology_synthetic.py +158 -0
- histoweave_spatial-0.1.0/tests/test_pipeline_and_report.py +132 -0
- histoweave_spatial-0.1.0/tests/test_pipeline_defaults_unit.py +13 -0
- histoweave_spatial-0.1.0/tests/test_production_wrappers.py +296 -0
- histoweave_spatial-0.1.0/tests/test_properties_math.py +110 -0
- histoweave_spatial-0.1.0/tests/test_properties_task_and_data.py +89 -0
- histoweave_spatial-0.1.0/tests/test_protocol_endpoints.py +298 -0
- histoweave_spatial-0.1.0/tests/test_provenance_unit.py +18 -0
- histoweave_spatial-0.1.0/tests/test_qc_normalize_smoke.py +36 -0
- histoweave_spatial-0.1.0/tests/test_quality_inventory.py +69 -0
- histoweave_spatial-0.1.0/tests/test_r_bridge.py +73 -0
- histoweave_spatial-0.1.0/tests/test_real_data.py +354 -0
- histoweave_spatial-0.1.0/tests/test_real_methods.py +193 -0
- histoweave_spatial-0.1.0/tests/test_recommend.py +189 -0
- histoweave_spatial-0.1.0/tests/test_reference_artefacts_present.py +63 -0
- histoweave_spatial-0.1.0/tests/test_registry.py +90 -0
- histoweave_spatial-0.1.0/tests/test_release_docs_and_container_contracts.py +169 -0
- histoweave_spatial-0.1.0/tests/test_release_manifest_unit.py +26 -0
- histoweave_spatial-0.1.0/tests/test_report_svg_unit.py +21 -0
- histoweave_spatial-0.1.0/tests/test_research_context.py +299 -0
- histoweave_spatial-0.1.0/tests/test_research_method_inventory.py +50 -0
- histoweave_spatial-0.1.0/tests/test_research_preprocessing.py +178 -0
- histoweave_spatial-0.1.0/tests/test_research_spatial.py +140 -0
- histoweave_spatial-0.1.0/tests/test_scalability.py +98 -0
- histoweave_spatial-0.1.0/tests/test_scale_contract_unit.py +26 -0
- histoweave_spatial-0.1.0/tests/test_scientific_contracts.py +48 -0
- histoweave_spatial-0.1.0/tests/test_selective_regret_figure.py +32 -0
- histoweave_spatial-0.1.0/tests/test_sota_benchmark_adapters.py +79 -0
- histoweave_spatial-0.1.0/tests/test_sota_common_unit.py +39 -0
- histoweave_spatial-0.1.0/tests/test_spatial_automl.py +169 -0
- histoweave_spatial-0.1.0/tests/test_spatialdata_bridge.py +87 -0
- histoweave_spatial-0.1.0/tests/test_stats_review.py +140 -0
- histoweave_spatial-0.1.0/tests/test_strict_external_panel_v2.py +58 -0
- histoweave_spatial-0.1.0/tests/test_study_grouped.py +90 -0
- histoweave_spatial-0.1.0/tests/test_submission_freeze_v1.py +57 -0
- histoweave_spatial-0.1.0/tests/test_svg_methods_smoke.py +15 -0
- histoweave_spatial-0.1.0/tests/test_svg_report.py +71 -0
- histoweave_spatial-0.1.0/tests/test_synthetic_generators_unit.py +24 -0
- histoweave_spatial-0.1.0/tests/test_task_contract_unit.py +70 -0
- histoweave_spatial-0.1.0/tests/test_vendor_fixtures_unit.py +20 -0
- histoweave_spatial-0.1.0/tests/test_vitessce_report.py +184 -0
- histoweave_spatial-0.1.0/tmp/maturity-cli.patch +24 -0
- histoweave_spatial-0.1.0/tmp/maturity-contract.patch +168 -0
- histoweave_spatial-0.1.0/tmp/maturity-enum.patch +59 -0
- histoweave_spatial-0.1.0/tmp/maturity-enum2.patch +59 -0
- histoweave_spatial-0.1.0/tmp/maturity-exports.patch +26 -0
- histoweave_spatial-0.1.0/tmp/maturity-interfaces.patch +80 -0
- histoweave_spatial-0.1.0/tmp/maturity-interfaces2.patch +80 -0
- histoweave_spatial-0.1.0/tmp/maturity-methodspec.patch +11 -0
- histoweave_spatial-0.1.0/tmp/maturity-registry.patch +33 -0
- histoweave_spatial-0.1.0/tmp/production-wrappers-wiring.patch +34 -0
- histoweave_spatial-0.1.0/tmp/production-wrappers-wiring2.patch +34 -0
- histoweave_spatial-0.1.0/tmp/recommend-smoke/knowledge.json +112 -0
- histoweave_spatial-0.1.0/tmp/recommend-smoke/query.ttab/X.npy +0 -0
- histoweave_spatial-0.1.0/tmp/recommend-smoke/query.ttab/bundle.json +49 -0
- histoweave_spatial-0.1.0/tmp/recommend-smoke/query.ttab/obs.parquet +0 -0
- histoweave_spatial-0.1.0/tmp/recommend-smoke/query.ttab/obsm/k-c3BhdGlhbA.npy +0 -0
- histoweave_spatial-0.1.0/tmp/recommend-smoke/query.ttab/uns.json +45 -0
- histoweave_spatial-0.1.0/tmp/recommend-smoke/query.ttab/var.parquet +0 -0
- histoweave_spatial-0.1.0/tmp/recommend-smoke/recommendation.json +93 -0
- histoweave_spatial-0.1.0/variance_decomposition/report_variance.md +92 -0
- histoweave_spatial-0.1.0/variance_decomposition/run_variance_experiment.py +268 -0
- histoweave_spatial-0.1.0/workflows/containers/histoweave-python/Dockerfile +48 -0
- histoweave_spatial-0.1.0/workflows/containers/histoweave-r/Dockerfile +49 -0
- histoweave_spatial-0.1.0/workflows/containers/histoweave-r/histoweave-banksy.R +103 -0
- histoweave_spatial-0.1.0/workflows/containers/histoweave-r/histoweave-nnsvg.R +114 -0
- histoweave_spatial-0.1.0/workflows/containers/histoweave-r/histoweave-r-lognorm.R +64 -0
- histoweave_spatial-0.1.0/workflows/containers/histoweave-r/histoweave-sctransform.R +95 -0
- histoweave_spatial-0.1.0/workflows/nextflow/main.nf +397 -0
- histoweave_spatial-0.1.0/workflows/nextflow/nextflow.config +118 -0
- histoweave_spatial-0.1.0/workflows/nextflow/sota.nf +139 -0
- histoweave_spatial-0.1.0/workflows/sota/env_contract.yaml +52 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Git
|
|
2
|
+
.git
|
|
3
|
+
.gitattributes
|
|
4
|
+
.gitignore
|
|
5
|
+
|
|
6
|
+
# Python cache & build
|
|
7
|
+
__pycache__
|
|
8
|
+
*.pyc
|
|
9
|
+
*.pyo
|
|
10
|
+
*.egg-info
|
|
11
|
+
dist/
|
|
12
|
+
build/
|
|
13
|
+
|
|
14
|
+
# Tests, benchmarks, and generated results
|
|
15
|
+
.pytest_cache/
|
|
16
|
+
.pytest_tmp/
|
|
17
|
+
.tox/
|
|
18
|
+
htmlcov/
|
|
19
|
+
.coverage
|
|
20
|
+
5x10_dlpfc_benchmark/
|
|
21
|
+
figure3_results/
|
|
22
|
+
study_grouped_5slice_results/
|
|
23
|
+
study_grouped_phaseb_results/
|
|
24
|
+
study_grouped_results/
|
|
25
|
+
work/
|
|
26
|
+
tmp/
|
|
27
|
+
|
|
28
|
+
# Documentation output
|
|
29
|
+
docs/_build/
|
|
30
|
+
docs/site/
|
|
31
|
+
site/
|
|
32
|
+
|
|
33
|
+
# IDE and local tools
|
|
34
|
+
.vscode/
|
|
35
|
+
.idea/
|
|
36
|
+
.claude/
|
|
37
|
+
.playwright-cli/
|
|
38
|
+
output/
|
|
39
|
+
|
|
40
|
+
# OS
|
|
41
|
+
.DS_Store
|
|
42
|
+
Thumbs.db
|
|
43
|
+
|
|
44
|
+
# Environment
|
|
45
|
+
.venv/
|
|
46
|
+
venv/
|
|
47
|
+
.env
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
* text=auto
|
|
2
|
+
*.svg text eol=lf
|
|
3
|
+
7x15_cross_platform/dataset_features.csv text eol=lf
|
|
4
|
+
7x15_cross_platform/performance_matrix_mean.csv text eol=lf
|
|
5
|
+
7x15_cross_platform/platform_topography.csv text eol=lf
|
|
6
|
+
7x15_cross_platform/platform_topography.json text eol=lf
|
|
7
|
+
7x15_cross_platform/topography_manifest.json text eol=lf
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
- package-ecosystem: pip
|
|
4
|
+
directory: "/"
|
|
5
|
+
schedule:
|
|
6
|
+
interval: weekly
|
|
7
|
+
groups:
|
|
8
|
+
python-dependencies:
|
|
9
|
+
patterns:
|
|
10
|
+
- "*"
|
|
11
|
+
|
|
12
|
+
- package-ecosystem: github-actions
|
|
13
|
+
directory: "/"
|
|
14
|
+
schedule:
|
|
15
|
+
interval: weekly
|
|
16
|
+
|
|
17
|
+
- package-ecosystem: docker
|
|
18
|
+
directory: "/workflows/containers"
|
|
19
|
+
schedule:
|
|
20
|
+
interval: weekly
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
quality_build:
|
|
14
|
+
name: quality and build gate
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- name: Set up Python
|
|
20
|
+
uses: actions/setup-python@v5
|
|
21
|
+
with:
|
|
22
|
+
python-version: "3.12"
|
|
23
|
+
|
|
24
|
+
- name: Install quality and build dependencies
|
|
25
|
+
run: |
|
|
26
|
+
python -m pip install --upgrade pip
|
|
27
|
+
python -m pip install -e ".[dev,docs]"
|
|
28
|
+
python -m pip install pip-audit
|
|
29
|
+
|
|
30
|
+
- name: Audit Python dependencies
|
|
31
|
+
run: python -m pip_audit
|
|
32
|
+
|
|
33
|
+
- name: Build documentation
|
|
34
|
+
run: mkdocs build --strict
|
|
35
|
+
|
|
36
|
+
- name: Lint
|
|
37
|
+
run: ruff check .
|
|
38
|
+
|
|
39
|
+
- name: Type-check
|
|
40
|
+
run: mypy src
|
|
41
|
+
|
|
42
|
+
- name: Quality inventory (mypy strength + test/src ratio)
|
|
43
|
+
run: pytest tests/test_quality_inventory.py -q
|
|
44
|
+
|
|
45
|
+
- name: Method docs cover every registered method
|
|
46
|
+
run: |
|
|
47
|
+
python scripts/generate_method_docs.py
|
|
48
|
+
pytest tests/test_method_docs_coverage.py tests/test_method_coverage_expansion.py -q
|
|
49
|
+
|
|
50
|
+
- name: Build distributions
|
|
51
|
+
run: python -m build
|
|
52
|
+
|
|
53
|
+
- name: Validate built wheel dependencies
|
|
54
|
+
run: |
|
|
55
|
+
python -m pip install --force-reinstall dist/*.whl
|
|
56
|
+
python -m pip check
|
|
57
|
+
|
|
58
|
+
test:
|
|
59
|
+
needs: quality_build
|
|
60
|
+
name: test (py${{ matrix.python-version }} on ${{ matrix.os }})
|
|
61
|
+
runs-on: ${{ matrix.os }}
|
|
62
|
+
strategy:
|
|
63
|
+
fail-fast: false
|
|
64
|
+
matrix:
|
|
65
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
66
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
67
|
+
steps:
|
|
68
|
+
- uses: actions/checkout@v4
|
|
69
|
+
|
|
70
|
+
- name: Set up Python
|
|
71
|
+
uses: actions/setup-python@v5
|
|
72
|
+
with:
|
|
73
|
+
python-version: ${{ matrix.python-version }}
|
|
74
|
+
|
|
75
|
+
- name: Clean stale pytest temp dirs (Windows)
|
|
76
|
+
if: runner.os == 'Windows'
|
|
77
|
+
shell: pwsh
|
|
78
|
+
run: |
|
|
79
|
+
$toRemove = Get-ChildItem -Path "$env:USERPROFILE\AppData\Local\Temp" -Filter "pytest-*" -Directory -ErrorAction SilentlyContinue
|
|
80
|
+
if ($toRemove) {
|
|
81
|
+
$toRemove | ForEach-Object { Remove-Item -Recurse -Force $_.FullName -ErrorAction SilentlyContinue }
|
|
82
|
+
Write-Host "Cleaned $($toRemove.Count) stale pytest temp dir(s)"
|
|
83
|
+
} else {
|
|
84
|
+
Write-Host "No stale pytest temp dirs found"
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
- name: Install
|
|
88
|
+
run: |
|
|
89
|
+
python -m pip install --upgrade pip
|
|
90
|
+
python -m pip install -e ".[dev]"
|
|
91
|
+
|
|
92
|
+
- name: Test
|
|
93
|
+
run: pytest -m "not property and not perf" --cov=histoweave --cov-report=term-missing --cov-fail-under=79
|
|
94
|
+
|
|
95
|
+
- name: Property-based tests
|
|
96
|
+
run: pytest -m property -q
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
federation:
|
|
100
|
+
name: federated evidence network gate
|
|
101
|
+
runs-on: ubuntu-latest
|
|
102
|
+
needs: test
|
|
103
|
+
steps:
|
|
104
|
+
- uses: actions/checkout@v4
|
|
105
|
+
- uses: actions/setup-python@v5
|
|
106
|
+
with:
|
|
107
|
+
python-version: "3.12"
|
|
108
|
+
- name: Install federation + dev dependencies
|
|
109
|
+
run: |
|
|
110
|
+
python -m pip install --upgrade pip
|
|
111
|
+
python -m pip install -e ".[federation,dev]"
|
|
112
|
+
|
|
113
|
+
# 1. Federation unit + integration + property tests (isolated view).
|
|
114
|
+
- name: Federation test suite
|
|
115
|
+
run: pytest tests/test_federation_*.py -q
|
|
116
|
+
|
|
117
|
+
# 2. Every committed node registry entry must parse + validate, and the
|
|
118
|
+
# generated index must build. (Skeleton/index files are auto-skipped.)
|
|
119
|
+
- name: Validate node registry
|
|
120
|
+
run: |
|
|
121
|
+
python - <<'PY'
|
|
122
|
+
from histoweave.federation import load_registry, build_index
|
|
123
|
+
entries = load_registry("federation/nodes")
|
|
124
|
+
print(f"validated {len(entries)} node(s): {[e.node_id for e in entries]}")
|
|
125
|
+
for e in entries:
|
|
126
|
+
e.validate()
|
|
127
|
+
build_index(entries)
|
|
128
|
+
PY
|
|
129
|
+
|
|
130
|
+
# 3. Every committed evidence bundle must offline-verify against the registry.
|
|
131
|
+
- name: Verify committed evidence bundles
|
|
132
|
+
run: |
|
|
133
|
+
shopt -s nullglob
|
|
134
|
+
bundles=(federation/bundles/*.json)
|
|
135
|
+
if [ ${#bundles[@]} -eq 0 ]; then
|
|
136
|
+
echo "no committed bundles to verify"; exit 0
|
|
137
|
+
fi
|
|
138
|
+
for b in "${bundles[@]}"; do
|
|
139
|
+
echo "::group::verify $b"
|
|
140
|
+
histoweave fed verify "$b" --nodes-dir federation/nodes
|
|
141
|
+
echo "::endgroup::"
|
|
142
|
+
done
|
|
143
|
+
|
|
144
|
+
# 4. End-to-end dogfood: pull committed bundles -> consensus -> landscape check.
|
|
145
|
+
- name: Pull + consensus dry run
|
|
146
|
+
run: |
|
|
147
|
+
histoweave fed pull \
|
|
148
|
+
--nodes-dir federation/nodes \
|
|
149
|
+
--store "$RUNNER_TEMP/evidence_store.jsonl"
|
|
150
|
+
histoweave fed consensus \
|
|
151
|
+
--store "$RUNNER_TEMP/evidence_store.jsonl" \
|
|
152
|
+
--out "$RUNNER_TEMP/consensus.json" \
|
|
153
|
+
--check-landscape
|
|
154
|
+
histoweave fed status \
|
|
155
|
+
--store "$RUNNER_TEMP/evidence_store.jsonl" \
|
|
156
|
+
--nodes-dir federation/nodes
|
|
157
|
+
|
|
158
|
+
benchmark:
|
|
159
|
+
name: scientific + performance regression gates
|
|
160
|
+
runs-on: ubuntu-latest
|
|
161
|
+
needs: test
|
|
162
|
+
steps:
|
|
163
|
+
- uses: actions/checkout@v4
|
|
164
|
+
- uses: actions/setup-python@v5
|
|
165
|
+
with:
|
|
166
|
+
python-version: "3.12"
|
|
167
|
+
- name: Install benchmark dependencies
|
|
168
|
+
run: |
|
|
169
|
+
python -m pip install --upgrade pip
|
|
170
|
+
python -m pip install -e ".[dev]"
|
|
171
|
+
# Scientific accuracy gate (ARI / leaderboard).
|
|
172
|
+
# Oracle-K is explicit here: this gate checks method capacity when K is known.
|
|
173
|
+
# The default scientific protocol uses k_policy=estimate (non-oracle).
|
|
174
|
+
- name: Domain-detection leaderboard (oracle-K capacity gate)
|
|
175
|
+
run: >
|
|
176
|
+
histoweave benchmark --min-score 0.90 --fail-on-error
|
|
177
|
+
--k-policy oracle --allow-oracle-k
|
|
178
|
+
--out benchmark.json
|
|
179
|
+
- name: Non-oracle K + statistical review smoke
|
|
180
|
+
run: >
|
|
181
|
+
histoweave benchmark --k-policy estimate --stats --n-boot 50
|
|
182
|
+
--out benchmark_estimate_stats.json
|
|
183
|
+
- name: Stats review + K-selection unit tests
|
|
184
|
+
run: pytest tests/test_stats_review.py tests/test_k_selection.py tests/test_harness_stats_and_k.py -q
|
|
185
|
+
# Computational performance gate (kNN / zscore / PCA / features).
|
|
186
|
+
- name: Micro-benchmark performance ceilings
|
|
187
|
+
run: pytest -m perf -q --tb=line
|
|
188
|
+
|
|
189
|
+
- name: Freeze phenomenology capability plan
|
|
190
|
+
run: |
|
|
191
|
+
histoweave benchmark --suite phenomenology --dry-run \
|
|
192
|
+
--out-dir phenomenology_plan
|
|
193
|
+
|
|
194
|
+
- name: Run dependency-light phenomenology smoke
|
|
195
|
+
run: |
|
|
196
|
+
histoweave benchmark --suite phenomenology --tiny \
|
|
197
|
+
--phenomena compartment --conditions clean \
|
|
198
|
+
--methods basic_qc,log1p_cp10k,kmeans \
|
|
199
|
+
--fail-on-error --out-dir phenomenology_smoke
|
|
200
|
+
|
|
201
|
+
- name: Upload benchmark artifacts
|
|
202
|
+
if: always()
|
|
203
|
+
uses: actions/upload-artifact@v4
|
|
204
|
+
with:
|
|
205
|
+
name: benchmark-regression-artifacts
|
|
206
|
+
path: |
|
|
207
|
+
benchmark.json
|
|
208
|
+
benchmark_estimate_stats.json
|
|
209
|
+
phenomenology_plan/
|
|
210
|
+
phenomenology_smoke/
|
|
211
|
+
if-no-files-found: warn
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
name: Publish containers
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
tags: ["v*"]
|
|
7
|
+
paths:
|
|
8
|
+
- "src/**"
|
|
9
|
+
- "pyproject.toml"
|
|
10
|
+
- "workflows/containers/**"
|
|
11
|
+
- ".github/workflows/containers.yml"
|
|
12
|
+
pull_request:
|
|
13
|
+
paths:
|
|
14
|
+
- "src/**"
|
|
15
|
+
- "pyproject.toml"
|
|
16
|
+
- "workflows/containers/**"
|
|
17
|
+
- ".github/workflows/containers.yml"
|
|
18
|
+
workflow_dispatch:
|
|
19
|
+
|
|
20
|
+
permissions:
|
|
21
|
+
contents: read
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
build-and-push:
|
|
25
|
+
name: Build and push ${{ matrix.name }}
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
permissions:
|
|
28
|
+
contents: read
|
|
29
|
+
packages: write
|
|
30
|
+
strategy:
|
|
31
|
+
fail-fast: false
|
|
32
|
+
matrix:
|
|
33
|
+
include:
|
|
34
|
+
- name: histoweave-python
|
|
35
|
+
context: .
|
|
36
|
+
dockerfile: workflows/containers/histoweave-python/Dockerfile
|
|
37
|
+
- name: histoweave-r
|
|
38
|
+
context: .
|
|
39
|
+
dockerfile: workflows/containers/histoweave-r/Dockerfile
|
|
40
|
+
steps:
|
|
41
|
+
- uses: actions/checkout@v4
|
|
42
|
+
|
|
43
|
+
- name: Set up Docker Buildx
|
|
44
|
+
uses: docker/setup-buildx-action@v3
|
|
45
|
+
|
|
46
|
+
- name: Log in to GHCR
|
|
47
|
+
if: github.event_name != 'pull_request'
|
|
48
|
+
uses: docker/login-action@v3
|
|
49
|
+
with:
|
|
50
|
+
registry: ghcr.io
|
|
51
|
+
username: ${{ github.actor }}
|
|
52
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
53
|
+
|
|
54
|
+
- name: Extract image metadata
|
|
55
|
+
id: meta
|
|
56
|
+
uses: docker/metadata-action@v5
|
|
57
|
+
with:
|
|
58
|
+
images: ghcr.io/${{ github.repository_owner }}/${{ matrix.name }}
|
|
59
|
+
tags: |
|
|
60
|
+
type=raw,value=latest,enable={{is_default_branch}}
|
|
61
|
+
type=ref,event=branch
|
|
62
|
+
type=ref,event=tag
|
|
63
|
+
type=semver,pattern={{version}}
|
|
64
|
+
type=semver,pattern={{major}}.{{minor}}
|
|
65
|
+
type=sha,prefix=sha-
|
|
66
|
+
labels: |
|
|
67
|
+
org.opencontainers.image.title=${{ matrix.name }}
|
|
68
|
+
org.opencontainers.image.description=HistoWeave spatial transcriptomics ${{ matrix.name }} container
|
|
69
|
+
|
|
70
|
+
- name: Build and push
|
|
71
|
+
uses: docker/build-push-action@v6
|
|
72
|
+
with:
|
|
73
|
+
context: ${{ matrix.context }}
|
|
74
|
+
file: ${{ matrix.dockerfile }}
|
|
75
|
+
push: ${{ github.event_name != 'pull_request' }}
|
|
76
|
+
tags: ${{ steps.meta.outputs.tags }}
|
|
77
|
+
labels: ${{ steps.meta.outputs.labels }}
|
|
78
|
+
build-args: |
|
|
79
|
+
VERSION=${{ steps.meta.outputs.version }}
|
|
80
|
+
REVISION=${{ github.sha }}
|
|
81
|
+
cache-from: type=gha,scope=${{ matrix.name }}
|
|
82
|
+
cache-to: type=gha,mode=max,scope=${{ matrix.name }}
|
|
83
|
+
provenance: mode=max
|
|
84
|
+
sbom: true
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
name: Nextflow smoke test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- "src/**"
|
|
8
|
+
- "workflows/nextflow/**"
|
|
9
|
+
- "pyproject.toml"
|
|
10
|
+
- ".github/workflows/nextflow-smoke.yml"
|
|
11
|
+
pull_request:
|
|
12
|
+
paths:
|
|
13
|
+
- "src/**"
|
|
14
|
+
- "workflows/nextflow/**"
|
|
15
|
+
- "pyproject.toml"
|
|
16
|
+
- ".github/workflows/nextflow-smoke.yml"
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
|
|
19
|
+
permissions:
|
|
20
|
+
contents: read
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
smoke:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
timeout-minutes: 20
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v4
|
|
28
|
+
|
|
29
|
+
- uses: actions/setup-python@v5
|
|
30
|
+
with:
|
|
31
|
+
python-version: "3.12"
|
|
32
|
+
|
|
33
|
+
- name: Install HistoWeave
|
|
34
|
+
run: |
|
|
35
|
+
python -m pip install --upgrade pip
|
|
36
|
+
python -m pip install -e ".[dev]"
|
|
37
|
+
|
|
38
|
+
- name: Install Nextflow
|
|
39
|
+
uses: nf-core/setup-nextflow@v3
|
|
40
|
+
with:
|
|
41
|
+
version: "26.04.4"
|
|
42
|
+
|
|
43
|
+
- name: Run demo pipeline
|
|
44
|
+
run: |
|
|
45
|
+
nextflow run workflows/nextflow/main.nf -profile local,test --outdir nf-smoke
|
|
46
|
+
test -s nf-smoke/pipeline_trace.tsv
|
|
47
|
+
grep -q "COMPLETED" nf-smoke/pipeline_trace.tsv
|
|
48
|
+
find nf-smoke -maxdepth 1 -name "*_report.html" -size +0 | grep -q .
|
|
49
|
+
|
|
50
|
+
- name: Upload smoke-test diagnostics
|
|
51
|
+
if: always()
|
|
52
|
+
uses: actions/upload-artifact@v4
|
|
53
|
+
with:
|
|
54
|
+
name: nextflow-smoke-diagnostics
|
|
55
|
+
path: |
|
|
56
|
+
.nextflow.log*
|
|
57
|
+
nf-smoke/
|
|
58
|
+
if-no-files-found: warn
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
name: Deploy leaderboard to GitHub Pages
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Rebuild whenever anything the site depends on changes.
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
paths:
|
|
8
|
+
- "leaderboard/**"
|
|
9
|
+
- "5x15_spatial_aware/benchmark_long.csv"
|
|
10
|
+
- "5x10_dlpfc_benchmark/benchmark_long.csv"
|
|
11
|
+
- "benchmark_crossplatform/benchmark_long.csv"
|
|
12
|
+
- "benchmark_crossplatform/dataset_manifest.json"
|
|
13
|
+
# Federated evidence: refresh the site when nodes or their signed bundles change.
|
|
14
|
+
- "federation/nodes/**"
|
|
15
|
+
- "federation/bundles/**"
|
|
16
|
+
- "federation/consensus.json"
|
|
17
|
+
- ".github/workflows/pages.yml"
|
|
18
|
+
# Manual trigger from the Actions tab.
|
|
19
|
+
workflow_dispatch:
|
|
20
|
+
|
|
21
|
+
# GH Pages: one deployment in flight at a time; skip queued duplicates.
|
|
22
|
+
concurrency:
|
|
23
|
+
group: pages
|
|
24
|
+
cancel-in-progress: true
|
|
25
|
+
|
|
26
|
+
permissions:
|
|
27
|
+
contents: read
|
|
28
|
+
pages: write
|
|
29
|
+
id-token: write
|
|
30
|
+
|
|
31
|
+
jobs:
|
|
32
|
+
build:
|
|
33
|
+
runs-on: ubuntu-latest
|
|
34
|
+
steps:
|
|
35
|
+
- uses: actions/checkout@v4
|
|
36
|
+
|
|
37
|
+
- name: Set up Python
|
|
38
|
+
uses: actions/setup-python@v5
|
|
39
|
+
with:
|
|
40
|
+
python-version: "3.11"
|
|
41
|
+
|
|
42
|
+
# generate.py has no external dependencies beyond the stdlib + optional
|
|
43
|
+
# h5py; we don't install h5py here because CI has no h5ad files anyway
|
|
44
|
+
# and the script gracefully degrades.
|
|
45
|
+
|
|
46
|
+
# Rebuild the derived consensus view from the committed, signed evidence
|
|
47
|
+
# bundles so the site shows current federation status. consensus.json is
|
|
48
|
+
# not committed (derived, regenerable); if there are no nodes/bundles this
|
|
49
|
+
# is a no-op and generate.py emits the plain v2 feed.
|
|
50
|
+
- name: Rebuild federation consensus (if any evidence is registered)
|
|
51
|
+
run: |
|
|
52
|
+
if compgen -G "federation/bundles/*.json" > /dev/null && \
|
|
53
|
+
compgen -G "federation/nodes/*.json" > /dev/null; then
|
|
54
|
+
python -m pip install --upgrade pip
|
|
55
|
+
python -m pip install -e ".[federation]"
|
|
56
|
+
histoweave fed pull \
|
|
57
|
+
--nodes-dir federation/nodes \
|
|
58
|
+
--store "$RUNNER_TEMP/evidence_store.jsonl"
|
|
59
|
+
histoweave fed consensus \
|
|
60
|
+
--store "$RUNNER_TEMP/evidence_store.jsonl" \
|
|
61
|
+
--out federation/consensus.json
|
|
62
|
+
else
|
|
63
|
+
echo "no registered evidence; skipping consensus rebuild"
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
- name: Regenerate data.json
|
|
67
|
+
run: python leaderboard/generate.py
|
|
68
|
+
|
|
69
|
+
- name: Prepare pages artifact
|
|
70
|
+
run: |
|
|
71
|
+
required_files=(
|
|
72
|
+
leaderboard/index.html
|
|
73
|
+
leaderboard/styles.css
|
|
74
|
+
leaderboard/main.js
|
|
75
|
+
leaderboard/data.json
|
|
76
|
+
leaderboard/README.md
|
|
77
|
+
)
|
|
78
|
+
for file in "${required_files[@]}"; do
|
|
79
|
+
if [[ ! -f "$file" ]]; then
|
|
80
|
+
echo "::error file=$file::Required GitHub Pages asset is missing"
|
|
81
|
+
exit 1
|
|
82
|
+
fi
|
|
83
|
+
done
|
|
84
|
+
|
|
85
|
+
install -d _site
|
|
86
|
+
cp "${required_files[@]}" _site/
|
|
87
|
+
|
|
88
|
+
- name: Upload artifact
|
|
89
|
+
uses: actions/upload-pages-artifact@v3
|
|
90
|
+
with:
|
|
91
|
+
path: _site
|
|
92
|
+
|
|
93
|
+
deploy:
|
|
94
|
+
needs: build
|
|
95
|
+
runs-on: ubuntu-latest
|
|
96
|
+
environment:
|
|
97
|
+
name: github-pages
|
|
98
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
99
|
+
steps:
|
|
100
|
+
- id: deployment
|
|
101
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
build:
|
|
12
|
+
name: Build distributions
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- uses: actions/setup-python@v5
|
|
18
|
+
with:
|
|
19
|
+
python-version: "3.12"
|
|
20
|
+
|
|
21
|
+
- name: Verify release tag matches package version
|
|
22
|
+
shell: bash
|
|
23
|
+
run: |
|
|
24
|
+
package_version="$(python -c 'from pathlib import Path; import re; text=Path("src/histoweave/__init__.py").read_text(); print(re.search(r"__version__\s*=\s*\"([^\"]+)\"", text).group(1))')"
|
|
25
|
+
release_version="${GITHUB_REF_NAME#v}"
|
|
26
|
+
if [[ "$package_version" != "$release_version" ]]; then
|
|
27
|
+
echo "::error::Release tag $GITHUB_REF_NAME does not match package version $package_version"
|
|
28
|
+
exit 1
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
- name: Build and validate distributions
|
|
32
|
+
run: |
|
|
33
|
+
python -m pip install --upgrade build twine
|
|
34
|
+
python -m build
|
|
35
|
+
python -m twine check dist/*
|
|
36
|
+
|
|
37
|
+
- name: Upload distributions
|
|
38
|
+
uses: actions/upload-artifact@v4
|
|
39
|
+
with:
|
|
40
|
+
name: python-package-distributions
|
|
41
|
+
path: dist/
|
|
42
|
+
if-no-files-found: error
|
|
43
|
+
|
|
44
|
+
publish:
|
|
45
|
+
name: Publish distributions to PyPI
|
|
46
|
+
needs: build
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
environment:
|
|
49
|
+
name: pypi
|
|
50
|
+
url: https://pypi.org/p/histoweave-spatial
|
|
51
|
+
permissions:
|
|
52
|
+
id-token: write
|
|
53
|
+
steps:
|
|
54
|
+
- name: Download distributions
|
|
55
|
+
uses: actions/download-artifact@v4
|
|
56
|
+
with:
|
|
57
|
+
name: python-package-distributions
|
|
58
|
+
path: dist/
|
|
59
|
+
|
|
60
|
+
- name: Publish with Trusted Publishing
|
|
61
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|