PhosPy Release Notes¶
Version 1.5.2 (2026-05-22)¶
Release Overview¶
PhosPy keeps the supported public shape clear: build an
AnalysisReadyPhosphoDataset, run KinaseWorkflow, and optionally run
SignalomeWorkflow when protein identifiers are available.
This release focuses on stricter preprocessing/scientific boundaries, expanded signalome and kinase workflow components, first-class differential analysis, and stronger provenance and typing guarantees.
Added¶
- Explicit KSEA z-score activity scoring, shared threshold-membership policy
handling, and condition-specific
activity_substrate_countsreporting. - Native limma-style moderated differential analysis as a first-class workflow, including robust eBayes trend moderation, explicit quantitative meaning/provenance, and technical replicate aggregation policies.
- Peptide-evidence and multi-site ambiguity models with policy-driven peptide-to-site aggregation integrated into dataset construction.
- FASTA-backed site-sequence resolution components with configurable conflict policies and durable preprocessing/kinase provenance reporting.
- Stricter phosphosite identity/localisation contracts, sequence provenance, and workflow scientific-eligibility reporting surfaces.
- Opt-in missing-data preprocessing policies for MinProb and KNN imputation, plus explicit forbid-path diagnostics and preprocessing readiness reporting.
- Structured identifier normalisation provenance and conflict diagnostics across dataset ingestion and reference-table boundaries.
- Schema-aware table readers with strict metadata/numeric parsing and explicit exact-vs-tolerance table hash metadata.
- Expanded signalome clustering components (candidate scoring/selection, module selection, tree building, scale guards, and backend diagnostics schemas) with explicit policy records.
- Expanded scientific and governance docs, including ADR-0016 through ADR-0022, testing audit assets, workflow contracts, and a PhosR compatibility/scope matrix.
Changed¶
- Reorganised domain implementation under
phospy.scienceand moved internal contract ownership fromphospy.apiinto dedicatedphospy.contractsmodules. - Split preprocessing configuration and processing-state responsibilities into focused modules/packages, with an authoritative stage registry and stricter diagnostics parsing.
- Split dataset-builder and preprocessing orchestration responsibilities into
focused collaborators with stricter
site_sequenceand sample-metadata contract enforcement. - Refactored kinase and signalome workflow orchestration into dedicated runner/result/provenance collaborators for clearer ownership boundaries.
- Promoted high-impact scientific/workflow behaviour toggles to explicit enum-backed policy models with stricter public validation boundaries.
- Expanded strict typing and CI quality gates (Pyright coverage, realistic performance/data-scale benchmark contracts, and broader boundary/parity regression suites).
- Refreshed docs, examples, and MkDocs structure/styling to match the current public API and scientific-scope claims.
Removed¶
- Removed the legacy
phospyconsole-script CLI entry point and retired obsolete CLI workflow docs/tests.
Fixed¶
- Deterministic provenance hashing with typed label/index handling, explicit structure hashing, and composite stage-hash compatibility support.
- MinProb preprocessing stability by column identity plus preserved stage ordering and row-median provenance persistence.
- Duplicate/conflict handling for site identifiers and reference accession normalisation, including explicit post-normalisation conflict/duplicate reporting.
- Stricter scientific matrix guard behaviour (forbid-policy enforcement, bool-frame rejection, and fail-fast invalid preprocessing metadata handling).
- Fixed centred site-sequence validation and phosphosite identity collision handling, and removed duplicate analysis-ready validation paths.
- Enforced established log2 intensity scale before differential
logFCemission and prevented unaudited intensity-scale establishment.
Scientific Scope¶
Bundled runtime references in this release are rat-only. Human and mouse remain
valid enum values, but they require a caller-supplied ReferenceBundle for
workflow execution.
KSEA-style activity output is supported as a PhosPy activity method and is reported as an explicit PhosPy method variant, not as a claim of PhosR equivalence.
Next: Quickstart or API Guide.