Changes in version 0.99.0 (2022-09-16):

+ Initial bioconductor submission

Changes in version 0.99.1 (2022-09-28):

+ Bug fixing
+ loading missing functions into NAMESPACE

Changes in version 0.99.2 (2022-010-06):

+ Extensive reformatting for bioconductor
+ Adding imports for functions
+ Extended the description
+ Added bug reports and url field
+ added ggplot to suggestes
+ Added news filedata generation script added
+ Various improvements to the vignette
+ Added unit tests
+ Replaced sapply with vapply

Changes in version 0.99.7 (2022-010-21):

+ More changes based on the Bioconductor review process
+ Modified test to make them more robust

Changes in version 1.15.1 (2026-10-14):

+ cellBody = "discModel" and cell body markers work again for several images
  of the same size, and cell body markers work for a single image.
+ An image where no nuclei pass the threshold gives a warning and an empty
  mask instead of an lm.fit error (#20).
+ simpleSeg() checks that nucleus and tissue markers exist, and checks
  watershed, cellBody and cores; nucleus can be given as channel positions.
+ normalizeCells() stops when imageID is missing and a per-image method is
  requested (#16, #22), and works with a single marker.
+ Faster segmentation with lower memory use: each image is processed once in
  one task, on plain arrays, with fitted values from one QR fit.
+ Parallel processing starts the BiocParallel workers once per call, runs
  BLAS with one thread per worker, and gives every image its own random
  number stream, so masks do not depend on the number of cores.
+ simpleSeg() reads images from files: multi-channel files (OME-TIFF,
  QPTIFF, multi-page TIFF), folders of single-channel files (one image split
  by marker) and folders of such folders.
+ New argument output: "masks", "cells" (a SpatialExperiment with the mean
  intensity of every channel, area and centroid of each cell, as from
  cytomapper::measureObjects()) or "none"; maskDir saves the masks as TIFF
  files. Paths return cells by default, images in R return masks.
+ Images larger than tileSize are segmented tile by tile without reading them
  into memory; the cells and masks are those of the whole image.
+ Gaussian smoothing is done in C++ (faster, and much less memory than the
  FFT used before; values agree to about 1e-13).
+ Pixels of equal height are separated by a tiny amount (1e-6 of the
  tolerance) depending on their position before the watershed, so masks no
  longer depend on how ties are ordered. Masks from watershed = "distance",
  where most pixels are tied, and from transform "norm99" change slightly.
+ PCA uses the markers that vary over the pixels it is fitted on.
+ spatstat.geom and grDevices are no longer imported; terra is suggested
  (for reading files) rather than imported.


Changes in version 1.15.2 (2026-10-14):

+ Tiled segmentation of large images supports pca, cellBody = "discModel" or
  cell body markers, and transform "tissueMask". The PCA and the cell body
  models are fitted on pixels sampled across the whole image (up to 100,000
  and about 1,000,000), chosen by their position so that the sample does not
  depend on the tiles or the number of cores.
+ Image files are opened once per process, which makes reading tiles much
  faster.
+ Channel names are read from the band names of multi-band TIFF files.
+ Pixels equal to a file's "no data" value (such as 255 in 8-bit TIFFs
  written by terra) keep that value instead of becoming missing.
+ Cell body models no longer fail when the cell body signal is constant.
