Skip to content

Repair real BaSiCPy readiness, observation semantics and Python 3.14 support #213

Closed

Description

@trissim

Defect and active owner

Linnaeus owns backend/dependency integration in the isolated worktree
/home/ts/wt/openhcs-basicpy-readiness-20260929, branch
fix/basicpy-readiness-20260929. Coordinator owns recipes/policy in PR #151.
This is independent of memory/session PR #208, which still awaits live acceptance.

BaSiCPy is not installed in the active OpenHCS environment. Coordinator verified
that the current JAX wrapper is nevertheless discoverable through actual MCP.
Discovery is not proof of dependency readiness or successful correction.

At OpenHCS main a0263e82a,
openhcs/processing/backends/enhance/basic_processor_jax.py exposes
lambda_sparse, lambda_lowrank and verbose without using them in fitting;
the per-stack help falsely claims parameter mappings. It describes (Z,Y,X)
despite BaSiC fitting an observation ensemble, recasts corrected floating output
to the input dtype, and publishes no fitted flatfield/darkfield for inspection.
No basicpy dependency is declared in pyproject.toml.

Reproducer (read-only)

/home/ts/code/projects/openhcs/.venv/bin/python -c \
  'import importlib.metadata as m; print(m.version("basicpy"))'
rg -n 'lambda_sparse|lambda_lowrank|verbose|BaSiC\(|fit_transform|astype' \
  openhcs/processing/backends/enhance/basic_processor_jax.py

The first command raises PackageNotFoundError. Source review confirms that the
three exposed knobs are not passed to BaSiC. Current installed metadata:
Python 3.12.3, JAX/JAXlib 0.9.2, NumPy 2.1.3, SciPy 1.18.1,
scikit-image 0.25.2, torch 2.6.0+cu124; basicpy and nlm-torch absent.
/usr/bin/python3.14 is Python 3.14.7 and is a separate target interpreter.

Existing work and compatibility boundary

The preserved, clean local prototype at /home/ts/code/projects/BaSiCPy points to
trissim/BaSiCPy, head ae2c647: prior JAX constraints and a deprecated _wraps
repair exist. Inspect/reuse it without changing that checkout.
Published BaSiCPy 2.0.0 instead uses PyTorch and declares scipy<1.13.
Upstream PR 174 already owns modern
NumPy/SciPy compatibility; PR 170
adds 3.12/3.13 coverage. Do not duplicate those changes or claim 3.14 support from
an old blanket JAX pin. A scoped OpenHCSDev fork/paired draft PR is authorized
only where required, with source provenance and exact dependency/API evidence.

Acceptance

  • Use the real upstream BaSiC implementation and existing OpenHCS callable,
    dependency and artifact mechanisms. No second registry or pseudo-BaSiC fallback.
  • Remove ignored knobs and update callers; define independent same-channel
    observations explicitly and preserve corrected floating measurement range.
  • Inspect fitted fields through existing image artifacts where supported.
  • Verify Python 3.14 import and supported API/dependencies separately from a
    bounded real fit-transform/field inspection and compiled OpenHCS/MCP journey.
  • Use synthetic independent shaded observations only; record time/RAM,
    illumination recovery and biological-pattern leakage checks. No blind data.

Source/light checks proceed now. Real fitting, MCP/GUI/JVM runs and environment
creation/install changes remain deferred under Euler's shared validation slot.
No installed user packages or active analysis are changed. No readiness/closure
claim before the affected live path is verified.

Activity

  1. self-assigned this
    on Sep 29, 2026
  2. added a commit that references this issue on Oct 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions