Changelog¶
Version 2.5.0 (2026-10-12)¶
Adds mcd_gui, a desktop app for converting and stitching without the command line, and a documentation site. Region indices now follow acquisition order, which changes what -r selects.
Breaking Changes¶
readimcandpandasare no longer installed. Code that imported them viamcd_stitchermust depend on them directly.- ROI indices are now ordered oldest-first instead of newest-first.
load_roissorts ascending by acquisition time (StartTimeStamp, falling back toEndTimeStamp), so the-mROI table readsROI_001at index 0 throughROI_nnnat the bottom, and-rselects against that. Scripts that hard-code-rindices will select different regions: an indexiunder v2.4.0 and earlier islen(rois) - 1 - inow. Stitch layer order is unchanged (see Bug Fixes) — only the index space moved. mcd_stitch'sselected_roisparameter is a selection rather than an ordering. Compositing order is re-derived insidemcd_stitchfrom acquisition time, so a caller passing a deliberately ordered list no longer controls which region wins an overlap.
Enhancements¶
- Added
mcd_gui, a desktop window overmcd_process. Work on one.mcdfile or a batch (a folder of them): check each file's regions and channels in tables, tick the outputs (convert, stitch, panoramas, pyramid), and follow a progress bar. In a batch, region picks are per file and channel picks can apply to every file by name. A channel subset writes_filteredcopies, as-fdoes, and the run log can be saved to a file. Stop halts a run at the next safe point, and a second click, Force stop, ends it at once and deletes any file it left half-written. The controls are locked while a run is going. Files whose outputs already exist are skipped unless Overwrite existing files is ticked, and the system's notification sound plays when a run finishes. It is built on the standard-librarytkinter, so no dependency is added; on Linux, a Python without Tk needs the distribution'spython3-tkpackage. mcd_guichecks for a newer version when it opens and offers to update itself.- Added a documentation site, https://pawanchaurasia.github.io/mcd_stitcher/, with guides to the desktop app and the command line, tutorials, and a Python API reference generated from the docstrings. The README is shorter and links to it.
- Added
mcd_inspect(input_path), which returns a file's regions, channels and panoramas as plain data instead of printing them. Region indexiis the index-rselects, and no live reader objects are returned, so the result stays valid after the file is closed. mcd_process,mcd_convert,mcd_stitchandtiff_subsetaccept aprogress=callback, called once per region or file with the stage, a completion count and the total, so a caller can drive a progress bar. Raising from it stops the run at that point: writes already under way finish, and none is left half-written.- The
-mROI table reads oldest-first, so regions appear in acquisition order rather than reversed.
Bug Fixes¶
- The order
-rindices are written no longer changes stitch layer order.-r "3,1"composited region 3 then region 1, and compositing is last-positive-writer-wins, so typing indices out of ascending order silently put a newer region on top, inverting the intended reverse-time layering for every overlap in that pair. Layer order is now derived from acquisition time, independently of the selection's order, so no-rstring can alter it. Un-filtered runs, ranges and ascending selections are unchanged.
Dependencies¶
- Removed
readimcandpandasfrom runtime dependencies.
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v2.4.0...v2.5.0
Version 2.4.0 (2026-09-29)¶
A performance release built on a new in-package .mcd reader: faster conversion and stitching, memory use that scales to the machine, and output pixels identical to v2.3.2.
Enhancements¶
- The
-mchannel list prints as an indexed, column-major grid fitted to the terminal width instead of one unindexed comma-joined line.-ftakes channel indices but they were not shown anywhere; a 45-channel panel now lists in 15 lines with every index visible, andtiff_subset -lshares the same layout instead of printing one channel per line. - Panorama ROI overlays are drawn whenever the panorama's longest side reaches 3000 px, instead of requiring both sides to reach 4000. The threshold exists to tell a real panorama from an imported slide photograph, and testing both dimensions was too strict for wide, short panoramas: a 58000 x 16000 um slide panorama — written at 4 um/px by CyTOF v9.0.2 and later, which applies the resolution drop per dimension rather than by area — is exactly 14500 x 4000 px and cleared the old test by a single pixel. Across the test set imported photographs reach at most 2094 px on their long edge while real panoramas start at 7521, so the new test separates them with margin either way. No overlay in the test set changes.
- The memory budget is resolved from a priority chain, so a declared limit always beats a measurement: the new
--max-memoryoption, then$MCD_STITCHER_MAX_MEM, then a cgroup cap, then a Slurm allocation, then a reading of free RAM. A declared budget is an entitlement and is used exactly as given; only the measurement carries a safety reserve, because free memory is racy in a way an allocation is not. This matters on a cluster, where the host's free memory is not the job's: a container capped at 8 GB on a 512 GB node is planned against 8 GB. It also keeps a run reproducible on a shared workstation, where the execution plan would otherwise depend on what else happened to be open at the time. -mon its own no longer creates an empty output directory. It writes nothing, so it no longer makes somewhere to write to;-p,--roi_map,--convertand--stitchstill create theirs, including when combined with-m.- Added a built-in
.mcdreader (mcd_stitcher._mcdread) covering schema parsing, slides, acquisitions, panoramas and raw acquisition data. It locates the MCD schema by reading the tail of the file rather than memory-mapping the whole of it: on a large.mcdwith a small pagefile, the mapping approach failed outright withOSError: [WinError 1455] The paging file is too small. The schema sits in the last few MB of every file tested. - The schema namespace is now derived from the document root rather than hardcoded, so
.mcdfiles written by other instrument-software versions parse without a code change. mcd_convertconverts ROIs concurrently. Worker count is derived from free RAM, the CPU count and the largest acquisition, so the same code runs a few workers on a laptop and many on a workstation. Added-j/--workersto override it.mcd_process --convert --stitchnow reads each acquisition once instead of twice, writing the per-ROI OME-TIFF from the same decoded array that feeds the stitched canvas. The progress line readsConverting + stitching N ROI(s). This path andtiff_subsetalways attempt a strict read before falling back to recovery mode, so a truncated file is reported rather than silently padded.mcd_stitchbuilds the stitched canvas in channel slabs when it will not fit in RAM: each slab of channels is composited across every region, written, and released, so the working set is one slab rather than the whole canvas. A canvas that fits is composited in a single pass, which is faster. Each region's placement geometry is computed once and reused across passes rather than rebuilt for each one -- the polygon mask costs 11.5 seconds and 1.2 GB of transient allocation to build, and a whole-slide acquisition needs eighteen passes on a small machine, a 44-region slide 308. A file holding a single large region is not charged for the one-region read-ahead that cannot happen there, which keeps it to one pass and measured ~1.75x faster. Output is identical at every slab size.- Acquisitions too large to hold in one piece are now read in channel groups rather than failing with an out-of-memory error. A high-channel-count acquisition covering a whole slide can exceed the RAM of a small machine on its own; grouping bounds peak memory at the cost of an extra pass over the raw data, and applies to both conversion and stitching. Values are identical either way.
- Pyramid generation (
--pyramid,tiff_subset -p) no longer requires the whole channel stack in memory. It holds the stack when there is room and streams plane-by-plane when there is not, cutting peak memory by roughly two thirds on the streaming path. The choice is made against the shared memory budget rather than a private reserve, so a stack that comfortably fits is not streamed for no reason: a 10.9 GB stack with 15 GB free is held, and post-processing a whole-slide canvas that way measured ~2.5x faster than streaming it. - Panorama export no longer re-decodes the PNG it has just written in order to draw the ROI overlay, and writes PNGs at compression level 3 instead of Pillow's default 6. PNG is lossless at every level, so pixels are unchanged.
- Every output file is written under a temporary
<name>.partname and renamed into place only once complete, so an interrupted run (Ctrl+C, a crash, a killed process) never leaves a truncated file under the real name. Rewriting an existing output keeps the old file intact until the new one is finished.
Bug Fixes¶
load_roisno longer raisesTypeErrorwhen some acquisitions carry aStartTimeStampand others do not. The sort key returned adatetimefor one and astrfor the other;mcd_processcaught the resulting error and reported it asSKIPPED: No ROIs found, which was actively misleading. The ordering key readsStartTimeStamp, falling back toEndTimeStamp, so such an acquisition still sorts on a real acquisition time.- Recovery mode can now actually recover from a truncated
.mcd. A short read used to reachnp.frombuffer(...).reshape(...)and raiseValueError, which the strict/recovery retry does not catch; the reader raisesOSErrorinstead. - The OME-XML
Creatorattribute is taken frommcd_stitcher._versionrather than installed distribution metadata, so it records the correct version when running from a source checkout instead of degrading to an unversionedMCD_Stitcher. - Every public path argument now accepts a plain string as well as a
Path. The CLI always supplied aPath, so calling the Python API the obvious way —mcd_process(input_path="slide.mcd")— failed withAttributeError: 'str' object has no attribute 'is_file'from inside a helper. Applies tomcd_convert,mcd_stitch,mcd_processandtiff_subset, includingtiff_fileslists. - Converted regions with repeated descriptions no longer overwrite each other. Each region's file was named after its description as-is, so a second region with the same description silently replaced the first, an empty description wrote a file named
.ome.tiff, and a character not allowed in file names (such as/or:) broke the write. Repeats, compared ignoring case as Windows and macOS file systems do, now get_2,_3… appended in acquisition order, disallowed characters become_, and an empty description falls back toROI_<id>. - Removed an unused
uuidimport left behind by the v2.3.1 OME-XML change.
Performance¶
- Acquisition reads are several times faster. Records are stored in row-major raster order, so the per-record coordinate scatter is usually an identity map; where a band's coordinates verify against the expected raster it is written with a transpose instead. Verification is per band and never assumed — one acquisition in the test set starts mid-frame and correctly falls back to the scatter.
- Reads are threaded. Raster bands write disjoint rows, so they parallelise safely.
- OME-TIFFs are written with 512x512 tiles, threaded tile compression and zstd level 1: roughly twice as fast for under 1% more disk.
mcd_stitchreads acquisitions directly in the output dtype when no resampling is needed, halving peak read memory and removing a full-array conversion, and composites all channels in one vectorised operation instead of a Python loop.skimage.transformis imported only on the resampling path, which most acquisitions never take. Package import drops from roughly a second to a third of that.- Gains are largest on files with many moderate ROIs and smallest on a single very large acquisition with an irregular raster, which has neither ROI-level parallelism nor a raster fast path.
- Measured on the six-file, 67 GB test corpus, warm-cache best-of-two, both versions on one interpreter and dependency set: convert 4.79-5.84x on five of six files, stitch 2.01-2.33x, and
--convert --stitchtogether 1.79x over the whole corpus (2.31x excluding the single irregular-raster acquisition). Package import is 4.06x. Stitch peak memory is lower on every file, by 5-15%, the largest being 23.0 -> 19.5 GB. Absolute figures depend heavily on storage and on numpy/tifffile/imagecodecs versions; the ratios above were taken with both versions sharing both. - The one irregular-raster acquisition in the corpus converts slower than v2.3.2 in the 2026-09-22 re-run (0.84x, 55.0 -> 65.5 s) while its stitch improves (1.31x), netting 1.24x end to end. An earlier measurement on different storage and dependency versions put its convert at 1.58x, so the direction is environment-dependent and unresolved.
- Concurrency costs memory: peak RAM during conversion is several times higher than v2.3.2 on a machine with RAM to spare. Worker sizing scales this down automatically on smaller machines, and single-worker operation is still faster than v2.3.2.
Internal¶
- Memory policy is centralised in
mcd_stitcher.fastio(work_budget,plan_workers,channel_group) so worker count, canvas slab size and channel grouping all derive from one view of available memory. The budget never reports more memory than is actually free. - Messages describing a memory-driven decision (channel grouping, multi-pass canvas) are printed even when a caller asks for silence, so the behaviour of a constrained run is visible rather than inferred.
Dependencies¶
- Added
psutil. It reads free memory for the budget resolver and is the best-tested cross-platform source for that, notably on macOS where the Mach calls are easy to get wrong. It is required rather than optional so that no code path ever has to guess a memory figure: where no budget can be resolved the tool stops and names--max-memory. build-systemnow requiressetuptools>=77, the first version that accepts the PEP 639license = "MIT"string. The previous floor of 61 failed a--no-build-isolationbuild.readimcandpandasare no longer used — the built-in reader replaces them — but stay installed until v2.5.0, so code that imports them throughmcd_stitcherkeeps working.
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v2.3.2...v2.4.0
Version 2.3.2 (2026-09-11)¶
Bug Fixes¶
- OME-TIFFs are now written as a single
CYXseries.write_planespasseddescription=Nonefor every plane after the first, which madetifffilefall back to its own shaped metadata and describe the file as N single-plane series;tifffile.imread()consequently returned only the first channel. Bio-Formats readers (QuPath / Fiji) were never affected because they honour the OME-XML. Pixel data is unchanged. - Non-ASCII channel labels and ROI descriptions (
α-SMA,β-catenin,γH2AX) no longer abort the write withValueError: TIFF strings must be 7-bit ASCII.ome_xml_builderemits them as XML numeric character references, which round-trip to the original text on read. tiff_subset()no longer destroys its input when called through the Python API with neither a channel filter norpyramid. The output path resolved to the input path, so the source was truncated in place and the run still reported success. The CLI was already guarded; the guard now lives in the function, andsubset_single_filerefuses outright to write over its own source..mcdfile handles are no longer leaked when an exception is raised mid-run.mcd_convert,mcd_stitch, andmcd_processmanage the file with a context manager instead of paired__enter__/__exit__calls at each exit point.
Enhancements¶
mcd_processcontinues to the next.mcdwhen one fails instead of aborting the batch. Each failure is reported inline asFAILED: <file>: <error>, all failures are listed again at the end, and the CLI exits non-zero if any occurred.mcd_process()returns the number of failed files.
Internal¶
- Dropped the dependency on
readimc's private_fhattribute.mcd_convertandmcd_stitchopen their own read handle for raw acquisition data;readimcis now used only for metadata parsing. Output verified byte-identical against real data.
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v2.3.1...v2.3.2
Version 2.3.1 (2026-07-08)¶
Relicenses the project under MIT, fixes a metadata limitation that blocked renaming single-file OME-TIFFs, lowers peak memory of pyramidal generation and uint16 conversion, and relaxes dependency constraints for cleaner installs.
License¶
- Relicensed from GPL-3.0-only to the MIT License.
Bug Fixes¶
- Renamed single-file OME-TIFFs are no longer treated as broken multi-file datasets:
ome_xml_builderno longer writes theFileNameattribute on the OME-XML<UUID>element.
Performance¶
- Pyramidal OME-TIFF generation (
--pyramid/tiff_subset -p) uses roughly 3-4x less peak RAM on the defaultuint16path by building the channel stack in the output dtype one plane at a time instead of holding the whole stack infloat32. Pixel data is unchanged. - Faster MCD reads (every convert and stitch):
read_acquisition_chunkedscatters all channels in a single vectorized assignment instead of a per-channel loop. Pixel data is unchanged. - Lower peak RAM for
uint16convert:read_acquisition_chunkedbuilds the channel stack directly inuint16(clipping during the read) instead of readingfloat32and casting afterward, roughly halving the RAM a convert holds.float32output and stitching are unaffected, and pixel data is unchanged. - Faster channel subsetting (
tiff_subset -f, non-pyramid): the source OME-TIFF is opened once instead of once per channel. Pixel data is unchanged.
Dependencies¶
- Relaxed dependency constraints to lower bounds (removing the 2.3.0 upper caps) to avoid resolver conflicts, and un-pinned
python-dateutilandreadimcfrom exact versions.
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v2.3.0...v2.3.1
Version 2.3.0 (2026-06-03)¶
Breaking Changes¶
mcd_stitch -r/--roiis now a value option instead of an interactive prompt. Use-r "0,3,5"or-r "0-5"; omit-r(or pass-r "all") for every ROI.
Enhancements¶
- Added
mcd_process— a unified command that opens each.mcdfile once and runs any combination of--convert,--stitch,-p,-m, and--roi_mapin a single pass. - Added
-p/--panorama: export every panorama as a PNG, with ROI outlines drawn on sufficiently large panoramas. - Added
--roi_map: write per-ROI TXT maps of slide and panorama-pixel coordinates. - Added
-m/--metadata: print an ROI / channel / panorama summary without writing images. - Added
-f/--filterand--pyramidpost-processing tomcd_process: after--convert/--stitch, optionally subset channels and/or write pyramidal copies alongside the originals (_filtered/_pyramid/_filtered_pyramid). Both require--convertor--stitch. - Stitched OME-TIFFs are now written as 256x256 tiles (matching the per-ROI converts) for smoother panning and zooming in QuPath / Napari. Pixel data is unchanged.
mcd_processreports live per-step progress with timings, e.g.Converting 12 ROI(s)... done (0.7s), for panorama export, convert, stitch, and post-processing.- Renamed
mcd_utils.py→helper_utils.pyand consolidated all shared helpers into it.
Bug Fixes¶
mcd_convertandmcd_stitchnow reject folder and non-.mcdinput with a clean usage error instead of a traceback. Folder batching stays exclusive tomcd_process.read_acquisition_chunkedderives the buffer dtype fromValueBytes(2 → float16, 4 → float32, 8 → float64) instead of hardcodingfloat32; unexpected values now fail fast.- Panorama overlay labels render at the intended size on Linux / macOS — the overlay falls back through DejaVuSans / Liberation before a tiny default, instead of only looking for Windows
arial.ttf. - Post-processed OME-TIFFs (
_filtered/_pyramid) now include the<Instrument>element, matchingmcd_convert/mcd_stitchoutput. Pixel data is unchanged. - Fixed
uint16stitched output where high-intensity or resampled pixels could wrap into bright artifacts.
Performance¶
- Multi-operation runs open each
.mcdonce instead of per operation (convert + stitch: 2 opens → 1; convert + panorama + stitch: 3 → 1).
Internal¶
- Unified the OME-TIFF write path behind a single
ome_xml_builder()and a sharedwrite_planes()writer used bymcd_convert,mcd_stitch, and the subset path. Output verified pixel-identical against real data. - Consolidated the range-string parsers into
helper_utils.parse_index_string()(parse_channelsis now a thin sorted wrapper over it).
Dependencies¶
- Updated and pinned all dependency version ranges in
pyproject.tomlfor more reproducible installs.
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v2.2.0...v2.3.0
Version 2.2.0 (2026-03-05)¶
Enhancements¶
- Added Python API support for
mcd_stitchviafrom mcd_stitcher import mcd_stitch. Source: https://github.com/PawanChaurasia/mcd_stitcher/issues/1 - Added Python 3.9 and 3.10 support. Source: https://github.com/PawanChaurasia/mcd_stitcher/issues/2
- Implemented chunked MCD loading in
read_acquisition_chunked()(default chunk size: ~50k pixels). - Updated
mcd_stitchandmcd_convertto use chunked reads with strict mode and recovery fallback. - Reworked TIFF subset pipeline to support metadata-only channel listing, lazy per-channel reads, and streaming writes.
- Improved dtype handling to reduce redundant conversions and memory pressure.
- Updated XML generation to use
xml.etree.ElementTree.indent()for faster, cleaner metadata formatting.
Performance¶
- Up to 2x faster processing on large MCD files.
- Around 10% faster TIFF filtering and pyramid generation.
- Lower peak RAM usage across stitching, conversion, and TIFF processing workflows.
Removed¶
- Legacy XML formatting path based on
xml.dom.minidom. - Redundant float copy paths in processing pipeline.
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v2.1.1.post1...v2.2.0
Version 2.1.1 (2026-02-20)¶
Bug Fixes¶
- Fixed
tiff_subsetbehavior where-l/--list-channelsdid not exit immediately and continued processing files. - Improved flag validation for
--list-channelswith--filterand--pyramidcombinations.
Source¶
- Release notes: https://github.com/PawanChaurasia/mcd_stitcher/releases/tag/v2.1.1.post1
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v2.1.0...v2.1.1.post1
Version 2.1.0 (2026-02-18)¶
Enhancements¶
- Added interactive ROI selection in
mcd_stitch(-r/--roi). - Improved recursive TIFF folder processing.
- Updated stitching logic with improved ROI handling.
- Standardized BigTIFF output behavior.
- Improved CLI validation, progress reporting, and error logging behavior.
- Cleaner TIFF writing and metadata handling.
Removed¶
- Unused and legacy code paths.
- Redundant directory logic.
- Old compression argument paths.
General¶
- Code cleanup and minor performance improvements.
Source¶
- Release notes: https://github.com/PawanChaurasia/mcd_stitcher/releases/tag/v2.1.0
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v2.0.0...v2.1.0
Version 2.0.0 (2026-01-16)¶
General¶
- Major v2 workflow update.
Enhancements¶
- Removed Zarr intermediates from default workflow.
- Simplified pipeline to direct
MCD -> OME-TIFFprocessing. - Improved robustness for:
- variable pixel resolutions
- mixed-resolution ROIs in the same MCD file
- polygonal (non-rectangular) ROIs
Breaking Changes¶
- v1 workflows relying on Zarr intermediates are not compatible.
- Command behavior and defaults changed in v2.
Source¶
- Release notes: https://github.com/PawanChaurasia/mcd_stitcher/releases/tag/v2.0.0
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v1.1.3...v2.0.0
Version 1.1.3 (2025-09-28)¶
Enhancements¶
- Added Zstandard compression support in:
zarr2tiff(--zstd)tiff_subset(--zstdfor standard and pyramidal outputs)mcd_convert(--zstdsupport in conversion pipeline)- Refactored
zarr2tiffto be standalone (removedZarrStitcherdependency).
Source¶
- Release notes: https://github.com/PawanChaurasia/mcd_stitcher/releases/tag/v1.1.3
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v1.1.2...v1.1.3
Version 1.1.2 (2025-09-18)¶
Enhancements¶
- Added
zarr2tiffcommand to export ROIs from Zarr datasets to standalone OME-TIFF files. - Added
mcd_convertcommand as a unifiedmcd -> zarr -> OME-TIFFconversion entry point.
Bug Fixes¶
- Fixed
tiff_subsethandling of the-pflag.
Source¶
- Release notes: https://github.com/PawanChaurasia/mcd_stitcher/releases/tag/v1.1.2
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v1.1.1...v1.1.2
Version 1.1.1 (2025-08-23)¶
Enhancements¶
- Introduced dual-track development workflow (clean production branch + documented development iterations).
- Improved code quality, CLI consistency, and logging/error handling.
- Improved OME-TIFF metadata handling.
- Improved memory use and performance reliability.
Source¶
- Release notes: https://github.com/PawanChaurasia/mcd_stitcher/releases/tag/v1.1.1
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v1.1.0.post1...v1.1.1
Version 1.1.0.post1 (2025-06-21)¶
Enhancements¶
- Added parallel ROI stitching and processing for faster execution on multi-core systems.
- Switched stitched output dtype to
float32for higher dynamic range and precision. - Updated TIFF writing path for compatibility with newer
tifffilebehavior.
Source¶
- Release notes: https://github.com/PawanChaurasia/mcd_stitcher/releases/tag/v1.1.0.post1
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v1.1.0...v1.1.0.post1
Version 1.1.0 (2025-06-21)¶
Enhancements¶
- TIFF subset workflow updates and command-level improvements.
Source¶
- Tag notes:
v1.1.0
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v1.0.2...v1.1.0
Version 1.0.2 (2025-05-31)¶
Enhancements¶
- Modernized build system with
pyproject.toml. - Updated dependency handling for improved compatibility.
- Improved documentation and examples.
Bug Fixes¶
- Fixed
-fflag behavior intiff_subset.
Source¶
- Release notes: https://github.com/PawanChaurasia/mcd_stitcher/releases/tag/v1.0.2
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v1.0.1...v1.0.2
Version 1.0.1 (2025-03-17)¶
General¶
- Updated project license to GNU GPLv3.
Source¶
- Release notes: https://github.com/PawanChaurasia/mcd_stitcher/releases/tag/v1.0.1
Compare¶
- Full diff: https://github.com/PawanChaurasia/mcd_stitcher/compare/v1.0.0...v1.0.1
Version 1.0.0 (2024-06-15)¶
Enhancements¶
- Added improved progress monitoring and command help output.
- Improved README and usage examples.
- Added robust error logging with continuation behavior for batch processing.
- Improved handling of inconsistent channels/ROIs during stitching.
Workflow Changes¶
Imc2Zarr: madeoutput_pathoptional with sensible default output directory.ZarrStitch: improved channel handling, folder validation, and anomaly tolerance.mcd_stitch: aligned optional argument behavior with conversion workflow.tiff_subset: expanded list/filter/pyramid behavior and improved help output.
Source¶
- Release notes: https://github.com/PawanChaurasia/mcd_stitcher/releases/tag/v1.0.0