Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,9 @@ src/morphobricks_preprocessing/
description.py the model (Description, Condition, Channel, Repeat, Member, Unit, Mask)
built from a reader-accepted document; description_from_bytes -> DescriptionError
description_write.py the canonical writer (Spec experiment-v1 9.1) and section digests (9.3)
physical_check.py the physical R_* checks of a description against the folder and image headers
(units found/declared, homogeneity, header evidence, image type, mask types
declared); layout_groups (header-named layouts are batch-confirmable, Q3)
description_reconcile.py reconcile(published, observed): units unchanged/new/removed by exact folder
labels, N35 reopening (confirmed_on kept), stated renames (FolderRename),
confirm_repeat; description_removal.py candidate (the draft), removal_questions
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,20 @@ are in [docs/plan.md](docs/plan.md) §12. Upgrading from v0.3: see the

## Unreleased

- **Physical `R_*` checks of an experiment description (Stage 1, PR 8; stacked on the
discovery and header additions, which provide the raw header names).** New module
`physical_check`: `check_physical(description, discovery, metadata, ...)` reports
`R_UNIT_NOT_FOUND`, `R_UNIT_NOT_DECLARED`, `R_UNIT_NOT_HOMOGENEOUS` (names the FOV, path and C
index; it replaces the count and header checks of its unit), `R_CHANNEL_COUNT_MISMATCH`,
`R_HEADER_CONTRADICTION` (raw names, NFC of both sides, no trimming, no case folding),
`R_IMAGE_TYPE_CONTRADICTS_HEADER` (both directions, header only; OME-Zarr states no colour
interpretation and is recorded as not header-verified) and `R_MASK_TYPE_NOT_DECLARED`. Pixels
are never read and no mask representation is defaulted or inferred. Homogeneity compares the
axes with `T` left out, so time-lapses of different lengths are one layout. An image whose
channel count the header does not state (a plain stack without confirmed roles) or whose header
cannot be read is listed in `unchecked`, not passed. `layout_groups` groups units by identical
layout; only groups whose channels are all header-named are batch-confirmable. Not used by any
run, notebook or CLI command yet.
- **Reconciliation of the published description with the folder (Stage 1, PR 9; conformance
P07, P08, P15, P33).** New modules `description_reconcile`, `description_removal` and
`reconcile_observe`. Each unit is `unchanged`, `new` or `removed`, matched only by its exact
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ baseline = "tools/code_rules_baseline.json"
"morphobricks_preprocessing.design" = "io"
"morphobricks_preprocessing.design_values" = "pure"
"morphobricks_preprocessing.description_identity" = "pure"
"morphobricks_preprocessing.physical_check" = "io"
"morphobricks_preprocessing.description" = "pure"
"morphobricks_preprocessing.description_write" = "pure"
"morphobricks_preprocessing.description_transition" = "pure"
Expand Down
Loading
Loading