CHANGELOG.md
LICENSE
MANIFEST.in
README.md
pyproject.toml
.github/workflows/ci.yml
case_studies/README.md
case_studies/jorge/README.md
case_studies/jorge/expected_findings.csv
case_studies/jorge/manifest.yaml
case_studies/jorge/expected_outputs/validation_results.csv
case_studies/lincs/README.md
case_studies/lincs/expected_findings.csv
case_studies/lincs/manifest.yaml
case_studies/lincs/expected_outputs/validation_results.csv
case_studies/sciplex/README.md
case_studies/sciplex/expected_findings.csv
case_studies/sciplex/manifest.yaml
case_studies/sciplex/expected_outputs/validation_results.csv
configs/default.yaml
configs/jorge_example.yaml
configs/lincs_example.yaml
configs/sciplex_example.yaml
docs/advanced_features.md
docs/assumptions.md
docs/beta_test_report.md
docs/example_workflows.md
docs/input_contract.md
docs/release_checklist.md
scripts/__init__.py
scripts/download_norman_2019.py
scripts/make_demo_subset.py
scripts/run_smoke_matrix.py
src/perturbguard/__init__.py
src/perturbguard.egg-info/PKG-INFO
src/perturbguard.egg-info/SOURCES.txt
src/perturbguard.egg-info/dependency_links.txt
src/perturbguard.egg-info/entry_points.txt
src/perturbguard.egg-info/requires.txt
src/perturbguard.egg-info/top_level.txt
src/perturbguard/adversarial/__init__.py
src/perturbguard/adversarial/tests.py
src/perturbguard/benchmark/__init__.py
src/perturbguard/benchmark/manifest.py
src/perturbguard/benchmark/validation.py
src/perturbguard/claims/__init__.py
src/perturbguard/claims/claim_checker.py
src/perturbguard/cli/__init__.py
src/perturbguard/cli/main.py
src/perturbguard/compare/__init__.py
src/perturbguard/compare/datasets.py
src/perturbguard/design/__init__.py
src/perturbguard/design/checker.py
src/perturbguard/design/power.py
src/perturbguard/evaluate/__init__.py
src/perturbguard/evaluate/model.py
src/perturbguard/io/__init__.py
src/perturbguard/io/config.py
src/perturbguard/io/config_wizard.py
src/perturbguard/io/schema.py
src/perturbguard/io/split_loader.py
src/perturbguard/leakage/__init__.py
src/perturbguard/leakage/combination_leakage.py
src/perturbguard/leakage/leakage_graph.py
src/perturbguard/leakage/pathway_leakage.py
src/perturbguard/leakage/split_balance.py
src/perturbguard/leakage/split_leakage.py
src/perturbguard/qc/__init__.py
src/perturbguard/qc/cell_count.py
src/perturbguard/qc/confounding.py
src/perturbguard/qc/control_balance.py
src/perturbguard/qc/dataset_validator.py
src/perturbguard/qc/guide_consistency.py
src/perturbguard/qc/matched_controls.py
src/perturbguard/qc/metadata_shortcut.py
src/perturbguard/qc/perturbation_summary.py
src/perturbguard/qc/target_effect.py
src/perturbguard/qc/target_mapping.py
src/perturbguard/repair/__init__.py
src/perturbguard/repair/anndata.py
src/perturbguard/reports/__init__.py
src/perturbguard/reports/dataset_card.py
src/perturbguard/reports/html.py
src/perturbguard/reports/plots.py
src/perturbguard/reports/preflight.py
src/perturbguard/reports/recommendations.py
src/perturbguard/reports/summary.py
src/perturbguard/simulate/__init__.py
src/perturbguard/simulate/synthetic_anndata.py
src/perturbguard/splitting/__init__.py
src/perturbguard/splitting/strategies.py
src/perturbguard/streaming/__init__.py
src/perturbguard/streaming/profile.py
src/perturbguard/utils/__init__.py
src/perturbguard/utils/controls.py
src/perturbguard/utils/matrix.py
src/perturbguard/utils/status.py
tests/test_bug_hunt_edge_cases.py
tests/test_cli_completion.py
tests/test_hardening.py
tests/test_mvp.py
tests/test_production_readiness.py
tests/test_top10_features.py
tests/test_v02_qc.py
tests/test_v03_quality.py
tests/test_v04_splits_claims.py
tests/test_v05_reports_demo.py
tests/test_v06_stretch.py
workflows/snakemake/Snakefile
workflows/snakemake/config.yaml
workflows/snakemake/profiles/slurm/config.yaml