Skip to content

docs: update documentation and add RECONST_2_5D_WORKFLOW#105

Closed
FIrgolitsch wants to merge 529 commits intopr-a-build-toolingfrom
pr-j-documentation
Closed

docs: update documentation and add RECONST_2_5D_WORKFLOW#105
FIrgolitsch wants to merge 529 commits intopr-a-build-toolingfrom
pr-j-documentation

Conversation

@FIrgolitsch
Copy link
Copy Markdown
Contributor

Docs update: refresh existing docs and add RECONST_2_5D_WORKFLOW.md.

Stacks on top of #95 (pr-a-build-tooling).

joe-from-mtl and others added 30 commits April 24, 2025 14:16
Copilot recommendation

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Charles Poirier <41654474+CHrlS98@users.noreply.github.com>
Co-authored-by: Charles Poirier <41654474+CHrlS98@users.noreply.github.com>
…saic_parallel

# Conflicts:
#	linumpy/reconstruction.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…act step handling, adding unreliable transition refinement via image registration, and improving inter-slice shift estimation from tile stage positions.
Improve pairwise registration: multi-scale ITK, shift filtering, motor-position mode
Relocates thread-pool configuration into a dedicated config sub-package.
- Remove dead modules data_io.py and npz.py (unused).
- Move Allen brain atlas helpers from io/allen.py into a new
  linumpy.reference sub-package.
- Drop star imports from io/__init__.py.
- Modernize remaining io/ modules (Path, type hints, docstrings).
- Move utils/io.py argparse helpers to a new linumpy.cli.args module.
- Move utils/metrics.py into a top-level linumpy.metrics package.
- Remove now-empty linumpy.utils package.
…in.py

Promotes the single-file linumpy.segmentation module into a package
with a dedicated brain.py module for clarity and future extension.
- imaging/transform.py: image transformation helpers.
- imaging/overlay.py: overlay/composite helpers.
…osaic.quick_stitch

- mosaic/discovery.py: tile-discovery helpers.
- mosaic/quick_stitch.py: quick low-resolution stitching helpers.
- mosaic/grid.py:    grid construction (from stitching/mosaic_grid.py).
- mosaic/overlap.py: tile overlap helpers (extracted from stitching).
- registration/manual.py:           interactive registration GUI
                                    (from stitching/manual_registration.py).
- registration/sitk.py:             SimpleITK-based registration
                                    (from stitching/registration.py).
- registration/phase_correlation.py: phase-correlation registration.
- registration/refinement.py:       multi-stage refinement helpers.
- registration/transforms.py:       affine/rigid transform utilities.
- Drop dead modules stitching/FileUtils.py, stitching/topology.py,
  stitching/stitch_utils.py.
…ckage

Splits the 1786-line linumpy/preproc/icorr.py module into focused modules:

- intensity/normalize.py:   intensity normalization helpers.
- intensity/attenuation.py: attenuation correction.
- intensity/psf_model.py:   PSF-model-based illumination correction.
- intensity/vignette.py:    vignetting correction.
- intensity/artifact.py:    artifact removal helpers.
- intensity/convert.py:     intensity conversion helpers.
…ckage

Splits xyzcorr.py into focused modules:

- geometry/crop.py:      volume cropping helpers.
- geometry/resample.py:  resampling utilities.
- geometry/interface.py: tissue-interface detection and fitting.
- geometry/galvo.py:     galvo / scanner geometry helpers.

Repoints linumpy.microscope.oct to use the new geometry.galvo module.
…it utils.py

- stack_alignment/io.py:     I/O helpers (CSV/JSON read/write).
- stack_alignment/units.py:  unit conversion helpers.
- stack_alignment/filter.py: outlier filtering helpers.

Renames the corresponding test module from test_utils_shifts.py to
test_stack_alignment.py.
- psf/synthetic.py: synthesize_3d_psf helper (renamed from get_3d_psf
  for clarity).
- psf/extract.py:   extract experimental PSFs from data.
Updates all 43 linum_*.py scripts plus 2 script tests to use the
new sub-packages introduced in this refactor:

  linumpy.preproc.icorr    -> linumpy.intensity.{normalize,attenuation,
                                                 psf_model,vignette,
                                                 artifact,convert}
  linumpy.preproc.xyzcorr  -> linumpy.geometry.{crop,resample,
                                                interface,galvo}
  linumpy.shifts.utils     -> linumpy.stack_alignment.{io,units,filter}
  linumpy.psf.psf_estimator -> linumpy.psf.{synthetic,extract}
  linumpy.stitching        -> linumpy.mosaic.{grid,overlap,discovery,
                                              quick_stitch} and
                              linumpy.registration.{manual,sitk,
                                                    phase_correlation,
                                                    refinement,transforms}
  linumpy.utils_images     -> linumpy.imaging.{transform,overlay}
  linumpy.utils.io         -> linumpy.cli.args
  linumpy.utils.metrics    -> linumpy.metrics
  linumpy.io.allen         -> linumpy.reference.allen
  linumpy.segmentation     -> linumpy.segmentation.brain
  linumpy.reconstruction   -> linumpy.mosaic.{discovery,quick_stitch}
  linumpy._thread_config   -> linumpy.config.threads
- Update setuptools `packages.find` and ruff `per-file-ignores` to
  reflect the renamed/split modules (intensity/, geometry/, mosaic/,
  registration/, stack_alignment/, etc.).
- Update isort `thread-config` section to reference
  linumpy.config.threads.
- Refresh uv.lock to pick up incidental dependency updates.
- Pre-existing tooling tweaks (expanded ruff rule set, ty config,
  GPU dependency cleanup) carried in the working tree.
Refreshes all transitive package versions to current resolutions
(idna, magicgui, ome-zarr, pre-commit, pydantic, pytest, ruff, ty,
typer, virtualenv, etc.).
Removed pins on numpy, scipy, hyperactive, pynrrd, and numcodecs.
basicpy 2.0.0 (latest available) transitively pins scipy<1.13, which
forces numpy<2; override that ceiling via [tool.uv].override-dependencies
so we resolve modern numpy 2.x and scipy 1.17 across the stack.
@FIrgolitsch FIrgolitsch deleted the pr-j-documentation branch May 1, 2026 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants