Skip to content

Releases

v0.5.2

Choose a tag to compare

@guijacquemet guijacquemet released this 12 Nov 13:35
6d81bcf

What's Changed

  • Fixes #258, fixes #252 by @guijacquemet in #278
  • Fixes #279 by @guijacquemet in #280
  • Fixes #281 by @guijacquemet in #282
  • Stage 3 S3.3: per-unit channel lists, plane_histograms v5 by @guijacquemet in #288
  • Parent-label (grouped) masks: re-pin Spec 69a58b3, resolver contract v2 by @guijacquemet in #289
  • Notebook: one image viewer for every step, formatted report, X/Y pixel inputs (redesign 3, part 1) by @guijacquemet in #284
  • Notebook: axes proposed at the quick scan and validated on all images; pixel sizes that differ in one line (redesign 3, part 2) by @guijacquemet in #285
  • Notebook: Z-stacks saved as recorded projections from the Axes step; 3-D stacks kept recorded (redesign 3, part 3) by @guijacquemet in #286
  • OME-Zarr copies: asked on the first screen, written as a recorded conversion once the axes are confirmed (redesign 3, part 4) by @guijacquemet in #287
  • Conversion record version 4: refuse version 3, require source_relative_path where written by @guijacquemet in #291
  • Axes: show the confirmation at once and make it faster; image type moves to Channels (v0.5.2 owner feedback) by @guijacquemet in #292
  • Release v0.5.2 by @guijacquemet in #290

Full Changelog: v0.5.1...v0.5.2

v0.5.1

Choose a tag to compare

@guijacquemet guijacquemet released this 11 Nov 05:33
8726cb4

What's Changed

  • PP-C1: drop the v0.4.0 parity tests, keep the histogram goldens (v0.5.1, 1/3) by @guijacquemet in #259
  • PP-C2: every run is described; undescribed runs and their compatibility code removed (v0.5.1, 2/3) by @guijacquemet in #260
  • PP-C3: document that every run is described (v0.5.1, 3/3) by @guijacquemet in #261
  • RunInputs.resolve_request: the shared request resolver (contract v1, v0.5.1) by @guijacquemet in #256
  • PP-1: Fov.image_type per position, partial-mask helper, pinned brick surface by @guijacquemet in #263
  • PP-2: lab-tool links (--lab-links), recorded in the run manifest only by @guijacquemet in #264
  • SWEEP-PP (A): remove the remaining compatibility code (PP-05..PP-10) and fix the frozen clock (#262) by @guijacquemet in #265
  • SWEEP-PP (B): experiment_design.csv is output only, and the pairing card is rebuilt on the draft (PP-02) by @guijacquemet in #266
  • Notebook: three code cells (1. Install, 2. Mount Google Drive, 3. Run preprocessing) by @guijacquemet in #267
  • Pin morphobricks-normalization v0.4.0 (position_id required) by @guijacquemet in #268
  • Quiet the notebook output: no debug flood from ImageJ TIFFs by @guijacquemet in #271
  • Notebook redesign 1: file lists without empty bullets, the references dropdown stays, disabled actions say why by @guijacquemet in #269
  • Notebook redesign 2: progress for every wait, progress callbacks from the readers, quick scan first by @guijacquemet in #270
  • Notebook redesign 3: the axes step shows the data as the roles read it; pixel size in one line by @guijacquemet in #272
  • Drop the legacy experiment_design.csv migration (PP-03) by @guijacquemet in #274
  • Notebook rework 1: one column, no inner scroll box, every channel in the quick scan; Compare groups in the run step by @guijacquemet in #275
  • Notebook rework 2: seven steps (Images, Axes, Channels, Masks, Design, Check and save, Run) by @guijacquemet in #276
  • Release v0.5.1 by @guijacquemet in #277

Full Changelog: v0.5.0...v0.5.1

v0.5.0

Choose a tag to compare

@guijacquemet guijacquemet released this 10 Nov 12:46
3f10545

What's Changed

  • [after-v0.4.0-tag] Roadmap: explicit projection step (P1) and experiment schema (P2) by @guijacquemet in #174
  • I/O minors: same_file export, OME-Zarr time unit, open errors, 1-D refusal by @guijacquemet in #177
  • Per-channel group statistics and explicit refusal of cyclic mask hierarchies by @guijacquemet in #178
  • Bind masks to their fingerprints for the whole run and the relationship scan by @guijacquemet in #180
  • Index MaskInventory by image once (for_image O(1)) by @guijacquemet in #181
  • Doc cleanup: archive plan milestones and status log, refresh v0.4.0 status by @guijacquemet in #182
  • Vendor the Spec conformance fixtures at a pinned commit (Stage 1, PR 1 of 3) by @guijacquemet in #183
  • Strict description reader, phases 1-3 (Stage 1, PR 2 of 3) by @guijacquemet in #184
  • Strict description reader, phases 4-5 and warnings (Stage 1, PR 3 of 3) by @guijacquemet in #185
  • Re-pin the vendored Spec to 745259b; condition single rule (Stage 1, PR A) by @guijacquemet in #186
  • Description model, canonical writer and section digests (Stage 1, PR 4) by @guijacquemet in #187
  • Description publication: lock, base SHA, symlink refusal, transitions, records (Stage 1, PR 5) by @guijacquemet in #188
  • Turn content hashing of the sources on by default by @guijacquemet in #189
  • Discovery and header additions for the experiment description (Stage 1, PR 6) by @guijacquemet in #190
  • Reconciliation of the published description with the folder (Stage 1, PR 9) by @guijacquemet in #193
  • Physical R_* checks of an experiment description (Stage 1, PR 8) by @guijacquemet in #192
  • Safe display of planes: reduced reads, channel strip, mask overlay (Stage 1, PR 13) by @guijacquemet in #194
  • Draft description, proposed IDs and legacy design migration (Stage 1, PR 7) by @guijacquemet in #191
  • Re-pin the vendored Spec to 7dbae0c (byte rules, goldens, t13, records encoding) by @guijacquemet in #195
  • Say a time step cannot be stated in calibration.csv by @guijacquemet in #201
  • Derived experiment_design.csv and cross-version parity suite (Stage 1, PR 10) by @guijacquemet in #196
  • Detect mask hierarchy cycles before reducing direct edges by @guijacquemet in #200
  • Re-check every mask fingerprint right before the manifest replacement by @guijacquemet in #202
  • Hold module-level skips and missing modules in the Spec test gate by @guijacquemet in #205
  • Make the records append rollback-safe and validate record shapes by @guijacquemet in #207
  • Re-pin the vendored Spec to b197ac1; reserved names apply to used_ids.channels by @guijacquemet in #208
  • Run integration of the published experiment description (Stage 1, PR 11) by @guijacquemet in #209
  • Semantic RunInputs from a published description (Stage 1, PR 12) by @guijacquemet in #210
  • Notebook bootstrap: show the Git identity of a local checkout and refuse a non-release one by @guijacquemet in #214
  • Z projection 1/6: the pure arithmetic (part of #176) by @guijacquemet in #211
  • Z projection 2/6: conversion record version 3 (part of #176) by @guijacquemet in #212
  • Spec conformance P26: per-unit header channel-name checks for described runs by @guijacquemet in #218
  • Description reader: own rule vocabulary; pin path and value of five refusals by @guijacquemet in #219
  • CLI describe, docs and conformance run (Stage 1, PR 17) by @guijacquemet in #220
  • Draft file and draft-to-description (Stage 1) by @guijacquemet in #221
  • Z projection 3/6: plan and write projected copies (part of #176) by @guijacquemet in #213
  • Z projection 4/6: convert --project on the command line (part of #176) by @guijacquemet in #215
  • Publication writes the removed and image_count_changed records (RR2, RR1) by @guijacquemet in #216
  • Refuse a draft written under another Spec commit at resume and save by @guijacquemet in #224
  • List images without header channel names in a described run by @guijacquemet in #226
  • Stage 2: described runs write manifest version "4" by @guijacquemet in #227
  • Stage 2: make_clean_run(description=...) builds a described run for tests by @guijacquemet in #228
  • Stage 2: A_* error classes and RunInputs.section_digests() by @guijacquemet in #229
  • Z projection 5/6: the run side (part of #176) by @guijacquemet in #217
  • Re-pin the vendored Spec to c8f6852 by @guijacquemet in #230
  • Notebook Step 1 cards: IDs, names, pairing, references (Stage 1, PR 14) by @guijacquemet in #231
  • Document the window after the final mask check by @guijacquemet in #232
  • Notebook: your channels (labels first, then tag per unit) (Stage 1, PR 15) by @guijacquemet in #233
  • Fixes #234: make_described_run spreads image_count over technical repeats by @guijacquemet in #236
  • Notebook: your masks (Stage 1, PR 16a) by @guijacquemet in #237
  • Notebook: check and save, reopen (Stage 1, PR 16b) by @guijacquemet in #238
  • Run page: channel and replicate IDs, no-problems icon, plan card, mask kinds by @guijacquemet in #241
  • Re-pin Spec 1bed024; read_records follows §4.6 (R_RECORDS_FILE_INVALID) by @guijacquemet in #242
  • Described runs: pixel-type and dimension checks per unit (#239, narrowed) by @guijacquemet in #243
  • Notebook: one step at a time, in the decided order (PR 17a) by @guijacquemet in #244
  • Report the layout refusal first in described runs with several layouts by @guijacquemet in #246
  • Notebook: tags per header block, colour pictures, one-click axes (PR 17b-1) by @guijacquemet in #247
  • Notebook: fold unchanged rows on reopen (PR 17b-2) by @guijacquemet in #248
  • Notebook: Stains is not applicable when every folder is colour (RGB) by @guijacquemet in #249
  • Notebook: folder pictures with a 1:1 crop, tag like the saved group, colour mask evidence (PR 17c) by @guijacquemet in #250
  • Audit batches 33, 34a, 34b: publish only what was answered, of the image checked by @guijacquemet in #254
  • Batch 34b: preview-gat...
Read more

v0.4.0

Choose a tag to compare

@guijacquemet guijacquemet released this 05 Nov 19:48
bc7b872

What's Changed

  • Keep an unreadable experiment_design.csv untouched in step 1 by @guijacquemet in #61
  • load_design raises DesignCheckError for an unreadable experiment_design.csv by @guijacquemet in #62
  • Read masks one pixel high or wide as 2D YX masks by @guijacquemet in #63
  • PP-1: the axis check (swaps and contradictions are errors; plain stacks confirmed) by @guijacquemet in #64
  • PP-0: code standards with a shrink-only baseline; one atomic writer, one grammar helper by @guijacquemet in #65
  • PP-2: remove convert_tiffs, zarr_export, the moved-name shims and the old axis functions by @guijacquemet in #66
  • PP-3: split run.py into the run package (move only) by @guijacquemet in #109
  • PP-4: manifest version 2, row keys, per-file plain-stack confirmation by @guijacquemet in #110
  • PP-5: masks (stated axes, never converted, labels always used) by @guijacquemet in #111
  • PP-6: RunInputs and testing.make_clean_run by @guijacquemet in #112
  • PP-7: modes, lock and report by @guijacquemet in #113
  • PP-8: calibration (stated pixel sizes, recorded with their source) by @guijacquemet in #114
  • Roadmap: quick quality checks from whole-FOV embeddings and masks by @guijacquemet in #116
  • PP-8b: refuse X-before-Y masks in the run; RunInputs names unrecorded files by @guijacquemet in #115
  • PP-8c: fixes from running on real data (file modes, absent-axis sizes, masks inputs, stopped-run text, read arguments, design command) by @guijacquemet in #117
  • PP-8d: Colab and LabConstrictor readiness of the notebook by @guijacquemet in #118
  • PP-9: split notebook_ui.py (move only) and pin the embedding API by @guijacquemet in #119
  • PP-10a: notebook cards (calibration, design, recorded inputs, report, stale lock) by @guijacquemet in #120
  • PP-10b: notebook debt from PP-9 (computation out of the UI, functions within §9) by @guijacquemet in #121
  • PP-10c: the notebook's masks field and mask-axis statements by @guijacquemet in #122
  • PP-10d: the notebook's masks-step button (Describe the masks) by @guijacquemet in #123
  • Release v0.4.0rc3: version and the notebook's pinned tag by @guijacquemet in #125
  • PP-11: convert, named-axis OME-TIFF copies of images with axis errors by @guijacquemet in #124
  • PP-11c: conversion integrity (copy SHA-256, metadata epochs, exact CLI sizes) by @guijacquemet in #126
  • PP-11b: the notebook's Make named-axis copies card by @guijacquemet in #127
  • OME-Zarr axes and calibration: nothing guessed, nothing silent (#72, #73, #94) by @guijacquemet in #129
  • Experiment design identity and counts: excluded folders, duplicate columns, output folder (#82, #83, #98) by @guijacquemet in #130
  • Links stay inside the experiment and masks folders; --log is checked before it opens (#81, #99) by @guijacquemet in #128
  • Micrometre conversions are always positive and finite; check and design exit 1 on errors (#93) by @guijacquemet in #133
  • same_objects is a one-to-one matching; size and plane-count warnings follow the confirmed roles (#67, #74) by @guijacquemet in #131
  • PP-12: staging and resume, crash-consistent publication, OME-Zarr inventory fingerprint (#86, #90) by @guijacquemet in #132
  • PP-13: migration guide, CHANGELOG, Colab release check, docs pass; version 0.4.0rc4 by @guijacquemet in #134
  • Audit B1, I1: keep the experiment, copies and output out of the masks folder by @guijacquemet in #135
  • Audit I4: notebook inputs start from the earlier run's recorded inputs by @guijacquemet in #137
  • Fix audit findings I2, I3, I5, m4, m5, m6 (what RunInputs gives the bricks) by @guijacquemet in #136
  • Compare output and copy folders with the experiment by device and inode by @guijacquemet in #138
  • Fix cross-brick test findings F1, F8, F9, F10, F11 by @guijacquemet in #139
  • Fix the rc4 external review: mount points, hard links, commit fsync, content verification by @guijacquemet in #140
  • Round-2 audit fixes: strict v2 position_id (A-m5), physical-size read errors (A-m6), exact unit conversion (B-m7) by @guijacquemet in #142
  • v0.4.0rc5: tie-break gives no parent, ImageJ unit without resolution, plan Q66/Q73/Q74, changelog by @guijacquemet in #143
  • Pin normalization v0.3.3; warn about channels without finite pixels (normalization#57) by @guijacquemet in #145
  • rc5 release blockers: strict manifest version 3, final content check before commit by @guijacquemet in #146
  • Final v0.4.0 prep: shared write-target rule, normalization compatibility, #146 follow-ups by @guijacquemet in #147
  • F10: check --missing-as-singleton; a YX-named 2-D mask is shared by a Z/T image by @guijacquemet in #148
  • Commit a publication only once its manifest has left .publish by @guijacquemet in #149
  • Share a 2-D mask across Z/T planes only when its type is stated YX by @guijacquemet in #150
  • docs: add Colab notebook badge by @guijacquemet with @Copilot in #161
  • Fix Colab widgets and simplify preprocessing notebook by @guijacquemet in #162
  • Repair Colab/Jupyter notebook packaging and restore readable guidance by @guijacquemet in #163
  • 2-D planes only: refuse Z-stacks, remove the stated shared 2-D mask (tracker row 36) by @guijacquemet in #173
  • Release v0.4.0 by @guijacquemet in #175

New Contributors

Full Changelog: v0.3.4...v0.4.0

v0.4.0rc5

Choose a tag to compare

@guijacquemet guijacquemet released this 03 Nov 16:39
79dd68e

What's Changed

  • Fix cross-brick test findings F1, F8, F9, F10, F11 by @guijacquemet in #139
  • Fix the rc4 external review: mount points, hard links, commit fsync, content verification by @guijacquemet in #140
  • Round-2 audit fixes: strict v2 position_id (A-m5), physical-size read errors (A-m6), exact unit conversion (B-m7) by @guijacquemet in #142
  • v0.4.0rc5: tie-break gives no parent, ImageJ unit without resolution, plan Q66/Q73/Q74, changelog by @guijacquemet in #143
  • Pin normalization v0.3.3; warn about channels without finite pixels (normalization#57) by @guijacquemet in #145
  • rc5 release blockers: strict manifest version 3, final content check before commit by @guijacquemet in #146

Full Changelog: v0.4.0rc4...v0.4.0rc5

v0.4.0rc4

v0.4.0rc4 Pre-release
Pre-release

Choose a tag to compare

@guijacquemet guijacquemet released this 03 Nov 04:49
c6d8aff

What's Changed

  • PP-11: convert, named-axis OME-TIFF copies of images with axis errors by @guijacquemet in #124
  • PP-11c: conversion integrity (copy SHA-256, metadata epochs, exact CLI sizes) by @guijacquemet in #126
  • PP-11b: the notebook's Make named-axis copies card by @guijacquemet in #127
  • OME-Zarr axes and calibration: nothing guessed, nothing silent (#72, #73, #94) by @guijacquemet in #129
  • Experiment design identity and counts: excluded folders, duplicate columns, output folder (#82, #83, #98) by @guijacquemet in #130
  • Links stay inside the experiment and masks folders; --log is checked before it opens (#81, #99) by @guijacquemet in #128
  • Micrometre conversions are always positive and finite; check and design exit 1 on errors (#93) by @guijacquemet in #133
  • same_objects is a one-to-one matching; size and plane-count warnings follow the confirmed roles (#67, #74) by @guijacquemet in #131
  • PP-12: staging and resume, crash-consistent publication, OME-Zarr inventory fingerprint (#86, #90) by @guijacquemet in #132
  • PP-13: migration guide, CHANGELOG, Colab release check, docs pass; version 0.4.0rc4 by @guijacquemet in #134
  • Audit B1, I1: keep the experiment, copies and output out of the masks folder by @guijacquemet in #135
  • Audit I4: notebook inputs start from the earlier run's recorded inputs by @guijacquemet in #137
  • Fix audit findings I2, I3, I5, m4, m5, m6 (what RunInputs gives the bricks) by @guijacquemet in #136
  • Compare output and copy folders with the experiment by device and inode by @guijacquemet in #138

Full Changelog: v0.4.0rc3...v0.4.0rc4

v0.4.0rc3

v0.4.0rc3 Pre-release
Pre-release

Choose a tag to compare

@guijacquemet guijacquemet released this 02 Nov 15:03
ae71bfd

What's Changed

  • PP-9: split notebook_ui.py (move only) and pin the embedding API by @guijacquemet in #119
  • PP-10a: notebook cards (calibration, design, recorded inputs, report, stale lock) by @guijacquemet in #120
  • PP-10b: notebook debt from PP-9 (computation out of the UI, functions within §9) by @guijacquemet in #121
  • PP-10c: the notebook's masks field and mask-axis statements by @guijacquemet in #122
  • PP-10d: the notebook's masks-step button (Describe the masks) by @guijacquemet in #123
  • Release v0.4.0rc3: version and the notebook's pinned tag by @guijacquemet in #125

Full Changelog: v0.4.0rc2...v0.4.0rc3

v0.4.0rc2

v0.4.0rc2 Pre-release
Pre-release

Choose a tag to compare

@guijacquemet guijacquemet released this 02 Nov 09:35
44971bc

What's Changed

  • PP-7: modes, lock and report by @guijacquemet in #113
  • PP-8: calibration (stated pixel sizes, recorded with their source) by @guijacquemet in #114
  • Roadmap: quick quality checks from whole-FOV embeddings and masks by @guijacquemet in #116
  • PP-8b: refuse X-before-Y masks in the run; RunInputs names unrecorded files by @guijacquemet in #115
  • PP-8c: fixes from running on real data (file modes, absent-axis sizes, masks inputs, stopped-run text, read arguments, design command) by @guijacquemet in #117
  • PP-8d: Colab and LabConstrictor readiness of the notebook by @guijacquemet in #118

Full Changelog: v0.4.0rc1...v0.4.0rc2

v0.4.0rc1

v0.4.0rc1 Pre-release
Pre-release

Choose a tag to compare

@guijacquemet guijacquemet released this 01 Nov 18:23
bd4a5dc

What's Changed

  • Keep an unreadable experiment_design.csv untouched in step 1 by @guijacquemet in #61
  • load_design raises DesignCheckError for an unreadable experiment_design.csv by @guijacquemet in #62
  • Read masks one pixel high or wide as 2D YX masks by @guijacquemet in #63
  • PP-1: the axis check (swaps and contradictions are errors; plain stacks confirmed) by @guijacquemet in #64
  • PP-0: code standards with a shrink-only baseline; one atomic writer, one grammar helper by @guijacquemet in #65
  • PP-2: remove convert_tiffs, zarr_export, the moved-name shims and the old axis functions by @guijacquemet in #66
  • PP-3: split run.py into the run package (move only) by @guijacquemet in #109
  • PP-4: manifest version 2, row keys, per-file plain-stack confirmation by @guijacquemet in #110
  • PP-5: masks (stated axes, never converted, labels always used) by @guijacquemet in #111
  • PP-6: RunInputs and testing.make_clean_run by @guijacquemet in #112

Full Changelog: v0.3.4...v0.4.0rc1

v0.3.4

Choose a tag to compare

@guijacquemet guijacquemet released this 31 Oct 14:52
2d1517d
  • A plain stack declared YXC is accepted (positional Y/X no longer count as named axes).
  • A declaration that differs from the header only by swapping Y and X is accepted and read transposed (declared_axes_transposed); any other disagreement is refused.
  • New shared reader read_confirmed_design. Edits to the design file are refused, naming the row and column, when a repeat group is empty, NA-like or differs from another only by case, or when confirmed_on is not an ISO date (YYYY-MM-DD).