CHANGES IN VERSION 1.15.3
-------------------------

    o Concave windows are computed by a C++ port of concaveman, which gives the same polygon as
      concaveman::concaveman(); concaveman is no longer suggested.

CHANGES IN VERSION 1.15.2
-------------------------

    o Fewer dependencies: treekoR, plotly and concaveman move to Suggests (treekoR is used in the vignette,
      plotly for interactive = TRUE, concaveman for concave windows), and spatstat.explore, cluster, purrr,
      tidyselect, magrittr and S4Vectors, which were not used, are no longer imported.

    o makeWindow(window = "concave") works with the default window.length = NULL; it stopped with
      "argument is of length zero".

CHANGES IN VERSION 1.15.1
-------------------------

NEW FEATURES

    o kontextualTest() tests every triple of a parentDf (from parentCombinations()) between
      conditions or against survival, with patients as the units. In each image the Kontextual
      statistic is compared with its exact expectation and variance if the `to` cells were a
      random choice among the parent's cells, so a change in tissue composition does not by
      itself look like a change in the relationship; images are combined by a frailty GEE with
      a CR2 variance. The computation is done by spicyR (>= 1.99.3, now imported); the result
      works with spicyR's topPairs(), signifPlot() and spicyBoxPlot().

    o Faster SpatioMark. getDistances() and getAbundances() find each cell's neighbours with a grid
      search in C++ instead of spatstat's closepairs() and tidyr's pivot_wider() (the same values;
      the columns are in the order the cell types first appear in the data). calcStateChanges()
      fits every marker and every distance (or abundance) column of a group at once by least squares
      (the same coefficients, t statistics and p-values as lmFit; markers that do not vary within a
      group, whose statistics are rounding noise in both, can differ). The negative binomial test
      (test = "nb") and data with missing intensities use the previous code. kerenSCE is re-saved
      with updateObject(), which removes about a second from every reducedDim() assignment.

SIGNIFICANT USER-VISIBLE CHANGES

    o The vignette tests Kontextual relationships against survival with kontextualTest()
      instead of spicy(alternateResult = ), which compares the Kontextual values as they are.

CHANGES IN VERSION 1.8.0
-------------------------

NEW FEATURES

    o Added getParentPhylo() function to extract parent and all children from a 
      treekoR or Phylo object.
    

SIGNIFICANT USER-VISIBLE CHANGES

    o Vingette has been updated with new getParentPhylo() function and survival
      plots.
    