
CHANGES IN VERSION 3.0.1 [2022-11-14]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Overwriting existing MSI files is now a warning instead of an error

BUG FIXES

    o Fixed issue in 'peakAlign()' reference m/z's being sort and unique

CHANGES IN VERSION 2.99.1 [2022-10-31]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Updated vignettes for Cardinal 3
    o Widened default m/z 'tolerance' for sparse spectra
    o Switched to linear interpolation for sparse spectra

CHANGES IN VERSION 2.99.0 [2022-10-26]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Updated out-of-memory backend to Matter 2.0
    o Removed support for legacy classes and methods

CHANGES IN VERSION 2.11.3 [2021-9-15]
-----------------------------------

BUG FIXES

    o Fix strange behavior from random number generation in R >= 4.1.1

CHANGES IN VERSION 2.11.2 [2021-8-5]
-----------------------------------

BUG FIXES

    o Fix reference naming scheme for binning and alignment methods

CHANGES IN VERSION 2.11.1 [2021-7-26]
-----------------------------------

BUG FIXES

    o Use as(x, 'DFrame') instead of as(x, 'DataFrame')
    o Fix logical length > 1 error in 'segmentationTest()'

CHANGES IN VERSION 2.7.2 [2020-10-21]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o For 'mzAlign()', the 'ref' parameter now expects a vector
        of reference m/z-values rather than a complete spectrum

CHANGES IN VERSION 2.7.1 [2020-6-30]
-----------------------------------

BUG FIXES

    o Fixed issue where 'spatialDGMM()' would sometimes
        fail for features with singular segmentations
    o Suppressed warnings on 'Mclust()' initialization
        to 'spatialDGMM()' caused by R 4.0 changes
    o Fixed pixel/feature mapping in 'spatialDGMM()' metadata

CHANGES IN VERSION 2.5.12 [2020-4-24]
-----------------------------------

BUG FIXES

    o Drawing a region-of-interest using 'selectROI()' should
        now update the plot properly in RStudio devices
    o Fixed issues with automatically guessing a reasonable
        mass tolerance for certain pre-processing methods
    o In 'mzBin()', the previous value of 'centroided()'
        from the original dataset is now preserved after binning

CHANGES IN VERSION 2.5.11 [2020-4-23]
-----------------------------------

BUG FIXES

    o Fixed bug in 'spatialShrunkenCentroids()' that produced
        in NaNs when discriminant scores were very large
    o Fixed bug in 'spatialFastmap()' where subsetting produced
        vectors instead of matrices due to omitting 'drop=FALSE'

CHANGES IN VERSION 2.5.10 [2020-4-22]
-----------------------------------

NEW FEATURES

    o Added 'topFeatures()' method for 'spatialKMeans()'
    o Added coercion to 'DataFrame' from 'MSImagingExperiment'

SIGNIFICANT USER-VISIBLE CHANGES

    o Deprecated legacy classes (MSImageSet, etc.):
        class definitions will remain for supporting
        datasets from CardinalWorkflows, but methods
        operating on them will be defunct in BioC 3.12

CHANGES IN VERSION 2.5.9 [2020-4-22]
-----------------------------------

NEW FEATURES

    o Added 'aggregate()' method for imaging experiments
        including 'summarizePixels()' and 'summarizeFeatures()'
    o Added 'subset()' method for imaging experiments
        including 'subsetPixels()' and 'subsetFeatures()'

SIGNIFICANT USER-VISIBLE CHANGES

    o Deprecated 'dplyr' verbs in favor of the above functions;
        this is to remove the (rather large) dependency on
        the tidyverse for a relatively small functionality

BUG FIXES

    o Fix bug in 'spatialDGMM()' printing caused by a change in
        default.stringsAsFactors() == FALSE in R 4.0

CHANGES IN VERSION 2.5.8 [2020-4-18]
-----------------------------------

NEW FEATURES

    o Automatic estimation of mass resolution will now work
        for 'processed' imzML with centroid spectra
    o New getter/setter options for Cardinal options such as
        'getCardinalBPPARAM()' and 'setCardinalBPPARAM()'

SIGNIFICANT USER-VISIBLE CHANGES

    o Default BPPARAM backend is now set to 'SerialParam()';
        use 'setCardinalBPPARAM()' to change the backend
    o Expose '.view' argument of 'matter::chunk_apply()' in
        'pixelApply()', 'featureApply()', and 'spatialApply()'
    o Previously-deprecated functions 'generateSpectrum()'
        and 'generateImage()' are now defunct
    o Removed defunct functions 'Binmat()' and 'topLabels()'

BUG FIXES

    o Fix large intensity text cutoffs in 'image()' colorkey

CHANGES IN VERSION 2.5.7 [2020-3-30]
-----------------------------------

BUG FIXES

    o Fix bug when using 'rbind()' or 'cbind()' on
        'MassDataFrame' and 'PositionDataFrame'

CHANGES IN VERSION 2.5.6 [2020-3-24]
-----------------------------------

BUG FIXES

    o Fix bug when assigning a dense matrix via iData()<-
        for an 'MSProcessedImagingExperiment' object

CHANGES IN VERSION 2.5.5 [2020-3-14]
-----------------------------------

BUG FIXES

    o Fix bug in 'show' method for 'SimpleImageList'
        caused by class(matrix) -> c("matrix", "array")

CHANGES IN VERSION 2.5.4 [2020-3-13]
-----------------------------------

BUG FIXES

    o Fix bugs in legacy classes caused by a change in
        default.stringsAsFactors() == FALSE in R 4.0

CHANGES IN VERSION 2.5.3 [2020-3-13]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o The 'resolution' argument in all methods has been
        redefined to always mean **full bin widt
        for both "mz" and "ppm" units

CHANGES IN VERSION 2.5.2 [2020-3-2]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o The 'pixelApply()', 'featureApply()', and 'spatialApply()'
        methods now internally use 'matter::chunk_apply()'

CHANGES IN VERSION 2.5.1 [2020-1-22]
-----------------------------------

BUG FIXES

    o Fixed bug in 'mzBin()' binning spectra incorrectly
    o Fixed bug in contrast enhancement with missing intensities

CHANGES IN VERSION 2.3.18 [2019-10-27]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Processing in 'crossValidate()' now allows processing
        unprocessed data by performing peak-picking
        on the mean spectra of the training sets

BUG FIXES

    o Fixed some errors in user messages during peak processing

CHANGES IN VERSION 2.3.17 [2019-10-25]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Default for 'peakBin()' argument 'type' is now "area"
    o In 'peakBin()', peak boundaries should be calculated
        more accurately now, and general speed improvements
    o In 'peakAlign()', peak centers are now calculated as
        weighted average mass rather than the highest point

CHANGES IN VERSION 2.3.16 [2019-10-14]
-----------------------------------

NEW FEATURES

    o New class 'ImagingSummary' with sub-classes including
        'SparseImagingSummary' and 'MSImagingSummary' with
        appropriate 'plot()' and 'image()' methods

SIGNIFICANT USER-VISIBLE CHANGES

    o The 'summarize()' method for 'SparseImagingExperiment'
        now returns a 'SparseImagingSummary', to more closely
        reflect "tidy" data principles by returning an object
        of a similar class; the previous behavior can be
        reproduced by specifying '.as="DataFrame"' 

CHANGES IN VERSION 2.3.15 [2019-10-13]
-----------------------------------

NEW FEATURES

    o For methods requiring 'resolution' or 'tolerance',
        the default arguments have been updated to
        automatically guess based on the data

CHANGES IN VERSION 2.3.14 [2019-5-26]
-----------------------------------

NEW FEATURES

    o Add spectraData() as an alias for 'imageData()'
        for 'MSImagingExperiment' sub-classes
    o Formalize 'mzData()' and 'intensityData()' getters
        and setters for 'MSProcessedImagingExperiment'
    o Add 'peaks()' and 'peakData()' methods for extracting
        peak matrices and/or peak information
    o Add 'isCentroided()' method for guessing whether spectra
        are centroided (without using the @centroided slot)

SIGNIFICANT USER-VISIBLE CHANGES
    
    o Allow 'NA' for @centroided slot for 'MSImagingExperiment'
    o 'mzBin()' method now sets centroided = NA
    o Update 'mzFilter()' with parameter defaults so that
        'thresh.max = NA' and new arg 'rm.zero = TRUE'
    o Log more pre-processing information (e.g., method name)

CHANGES IN VERSION 2.3.13 [2019-5-23]
-----------------------------------

BUG FIXES

    o Try using 'parent.frame(1)' instead of 'parent.frame(2)'
        to fix NSE methods when used in LHS of a maggritr pipe
    o Fix weird 'iData()<-' missing argument 'i' bug

CHANGES IN VERSION 2.3.12 [2019-5-22]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Changed default 'peakPick()' method to 'mad'
    o In 'peakPick()' method 'mad', change the default
        number of blocks to 1 (no adaptive smoothing)
    o In 'peakPick()' method 'mad', update w/ new arguments
        w/ new defaults 'fun=median' and 'tform=diff'

BUG FIXES

    o In 'peakPick()' methods 'simple' and 'adaptive', warn
        if kurtosis cannot be estimated and try to recover
    o In 'normalize()' method 'reference', provide a warning
        if the reference value is 0 for a pixel

CHANGES IN VERSION 2.3.11 [2019-5-19]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Improved speed in 'spatialFastmap()'
    o Improved speed in 'spatialShrunkenCentroids()'
    o New dissimilarity metrics for 'spatialFastmap()'
        including a new default metric='average'

BUG FIXES

    o Fix error in 'print()' for facet plots where lims=NULL

CHANGES IN VERSION 2.3.10 [2019-5-18]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Improved speed in 'spatialDGMM()', by moving spatial
        filtering of probabilities to C code, up to 10x faster
    o Linesearch in 'spatialDGMM()' now uses 'optimize()'
        rather than 'optim()' -- results may differ slightly

CHANGES IN VERSION 2.3.9 [2019-5-17]
-----------------------------------

NEW FEATURES

    o Added 'Cardinal.history()' and 'Cardinal.version()'

SIGNIFICANT USER-VISIBLE CHANGES

    o Removed under-used setter generic function definitions

BUG FIXES

    o Cleaned up generics to reflect ProtGenerics >= 1.17.2

CHANGES IN VERSION 2.3.8 [2019-5-16]
-----------------------------------

NEW FEATURES

    o Added boxplot, histogram, and bar chart functionality
        to the 'plot()' method for 'XDataFrame'
    o Added 'plot()' plotting for 'AnnotatedImageList'
    o Added 'plot()' methods for 'SpatialDGMM',
        'MeansTest', and 'SegmentationTest' result classes
    o Added 'image()' method for 'MeansTest' result class

SIGNIFICANT USER-VISIBLE CHANGES

    o Updated 'plot()' and 'image()' methods for 'SpatialDGMM',
        'MeansTest', and 'SegmentationTest' result classes

BUG FIXES

    o Various bug fixes in object printing and plot auto-layout

CHANGES IN VERSION 2.3.7 [2019-5-13]
-----------------------------------

NEW FEATURES

    o Added 'image()' plotting for 'AnnotatedImageList'

BUG FIXES

    o Plotting with 'add=TRUE' now respects 'par('usr')' coordinates

CHANGES IN VERSION 2.3.6 [2019-5-13]
-----------------------------------

NEW FEATURES

    o Add 'AnnotatedImageList' class for list of 'AnnotatedImage' objects
    o Add 'AnnotatedImagingExperiment' class for containing data for
        an optical imaging experiment (e.g., a microscopy experiments)
    o Add 'image()' plotting for 'AnnotatedImagingExperiment'

SIGNIFICANT USER-VISIBLE CHANGES

    o Redefine '@featureData' slot of a 'SparseImagingExperiment'
        to be a 'DataFrame' rather than requiring an 'XDataFrame'

BUG FIXES

    o Respect 'layout' and 'byrow' passed through ... args
        to 'print()' method on facet plot objects

CHANGES IN VERSION 2.3.5 [2019-5-11]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Moved some S4 method definitions from 'ImagingExperiment'
        to 'SparseImagingExperiment' so that the former can be
        more flexible for a wider variety of imaging modalities

BUG FIXES

    o Pass more ... args through to 'par()' in plotting functions

CHANGES IN VERSION 2.3.4 [2019-5-10]
-----------------------------------

NEW FEATURES

    o Added 'AnnotatedImage' class for optical images

CHANGES IN VERSION 2.3.3 [2019-5-10]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Improved facet plotting when 'add=TRUE'

BUG FIXES

    o Better 'cex.axis' defaults and user setting for colorkeys

CHANGES IN VERSION 2.3.2 [2019-5-9]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Improved 'writeMSIData()' for 3D and non-gridded data

CHANGES IN VERSION 2.3.1 [2019-5-8]
-----------------------------------

NEW FEATURES

    o Output directly to imzML while processing with 'process()'

SIGNIFICANT USER-VISIBLE CHANGES

    o Improved auto-layout for visualization with multiple runs
    o Added 'parse.only' option to 'readImzML()' for parsing only

CHANGES IN VERSION 2.2.4 [2019-5-8]
-----------------------------------

BUG FIXES

    o Fix large external array offsets in 'writeImzML'

CHANGES IN VERSION 2.2.3 [2019-5-8]
-----------------------------------

BUG FIXES

    o Cleaned up some 'writeImzML' mapping validity issues

CHANGES IN VERSION 2.2.2 [2019-5-7]
-----------------------------------

BUG FIXES

    o Removed curly braces around UUID when writing imzML

CHANGES IN VERSION 2.2.1 [2019-5-6]
-----------------------------------

BUG FIXES

    o Fixed bug in plotting results where 'column' argument
        would get matched before the 'col' argument

CHANGES IN VERSION 2.1.30 [2019-4-30]
-----------------------------------

BUG FIXES

    o Fixed bug where 'spatialShrunkenCentroids' classification
        would change the user 'options(Cardinal.progress)'

CHANGES IN VERSION 2.1.29 [2019-4-29]
-----------------------------------

BUG FIXES

    o Coercing to 'SpatialShrunkenCentroids2' now drops
        empty classes for segmentations (as expected)

CHANGES IN VERSION 2.1.28 [2019-4-28]
-----------------------------------

BUG FIXES

    o Fixed 'topFeatures' method for 'SpatialShrunkenCentroids2'
        where 'statistic' was actually printing the 'centers'
    o The 'collect' method for 'MSProcessedImagingExperiment'
        now preserves sparseness when pulling into memory

CHANGES IN VERSION 2.1.27 [2019-4-26]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Added 'mzFilter' as an alias for 'peakFilter' with more
        suitable defaults for non-peak-picked spectra

BUG FIXES

    o Minor fixes to 'print' method for plots and images
    o Minor fixes to margin padding for 'colorkey' in images

CHANGES IN VERSION 2.1.26 [2019-4-25]
-----------------------------------

BUG FIXES

    o Fixed 'print' method for plots and images to respect
        updating plotting parameters via '...' arguments

CHANGES IN VERSION 2.1.25 [2019-4-25]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Add 'run' argument to 'pixels' for 'MSImagingExperiment'
    o Add 'run' argument to 'plot' for 'MSImagingExperiment'

BUG FIXES

    o Fixed bug in 'ylab' with one-sided formulas in 'plot'
    o Relaxed errors for out-of-range m/z values in 'features'
    o Value range of 'colorkey' now obeys 'zlim' argument
    o NULL values for plot limits no longer give errors

CHANGES IN VERSION 2.1.24 [2019-4-24]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Documented new 'options(Cardinal.dark=FALSE)' default

BUG FIXES

    o Fixed linear subsetting of models using '['' for
        'SparseImagingResult' objects
    o Check length of 'classControl' in 'segmentationTest'

CHANGES IN VERSION 2.1.23 [2019-4-24]
-----------------------------------

NEW FEATURES

    o Added 'slice' for slicing imaging datasets (as a data cube)
    o Added 'alpha.power' argument for 'image' methods

SIGNIFICANT USER-VISIBLE CHANGES

    o Added documentation for options() under '?Cardinal'

CHANGES IN VERSION 2.1.22 [2019-4-24]
-----------------------------------

NEW FEATURES

    o Added new 'Cardinal 2: Statistical methods' vignette

CHANGES IN VERSION 2.1.21 [2019-4-23]
-----------------------------------

NEW FEATURES

    o Added 'image3D' methods for new classes

CHANGES IN VERSION 2.1.20 [2019-4-23]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Updated documentation and simulation examples

BUG FIXES

    o Fixed bug in 'summary' for 'SpatialShrunkenCentroids2'

CHANGES IN VERSION 2.1.19 [2019-4-23]
-----------------------------------

NEW FEATURES

    o Added 'colocalized' method for colocalization

CHANGES IN VERSION 2.1.19 [2019-4-23]
-----------------------------------

NEW FEATURES

    o Added 'colocalized' method for colocalization

CHANGES IN VERSION 2.1.18 [2019-4-23]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Updated 'Cardinal 2: User guide' vignette

BUG FIXES

    o Fixed bug in 'simulateSpectrum' when n > 1

CHANGES IN VERSION 2.1.17 [2019-4-22]
-----------------------------------

NEW FEATURES

    o Added 'topFeatures' method for extracting top-ranked
        features from statistical analyses
    o Added 'summary' methods for new results objects
    o Added 'SummaryDataFrame' for printing result summaries

SIGNIFICANT USER-VISIBLE CHANGES

    o Deprecated 'topLabels' method -> use 'topFeatures'

CHANGES IN VERSION 2.1.16 [2019-4-20]
-----------------------------------

NEW FEATURES

    o Added dplyr verbs for 'DataFrame' and "XDataFrame'

CHANGES IN VERSION 2.1.15 [2019-4-19]
-----------------------------------

NEW FEATURES

    o Added new 'PCA' method for 'SparseImagingExperiment'
    o Added new 'PLS' method for 'SparseImagingExperiment'
    o Added new 'OPLS' method for 'SparseImagingExperiment'

SIGNIFICANT USER-VISIBLE CHANGES

    o The 'selectROI' method will now use the last plot
        if no additional plotting arguments are given
    o Setting 'resolution' on 'MSProcessedImagingExperiment'
        will now update the m/z values binning scheme
    o The 'select' and 'filter' methods now using integers
        as row/col IDs without the '.id' argument

BUG FIXES

    o Fixed bug in 'OPLS' methods causing cross-validation 
        to produce slightly optimistic results

CHANGES IN VERSION 2.1.14 [2019-4-18]
-----------------------------------

NEW FEATURES

    o New 'mzAlign' processing method for spectral alignment
    o New 'mzBin' processing method for spectral binning
    o New 'crossValidate' method that cleans up 'cvApply' output
    o New normalization methods: 'rms' and 'reference'
    o New baseline reduction method: 'locmin'
    o New peak picking method: 'mad'
    o New 'darkmode' and 'lightmode' plotting options
    o Added 'cvApply' methods for new classes

SIGNIFICANT USER-VISIBLE CHANGES

    o Image plotting now uses different 'colorkey' legend
        placed beside plot that no longer obscures the image
    o All plotting now uses different 'strip' labels
        placed above plot that no longer obscures the plot area
    o All plotting now accept hidden 'dark=TRUE' argument to
        switch to plotting in new "dark mode"
    o Changed/updated presets for 'presetImageDef' which
        provides presets for 'simulateImage' function

CHANGES IN VERSION 2.1.13 [2019-4-15]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Added message when printing a 'SparseImagingExperiment'
        object without un-applied pre-processing steps

BUG FIXES

    o Added C routine registration with "C_" prefix for .Call
    o Cleaned up '.o' objects in /src created by accident

CHANGES IN VERSION 2.1.12 [2019-4-14]
-----------------------------------

NEW FEATURES

    o Added 'meansTest' method for linear model-based
        hypothesis tests of mean-summarized images
    o Added 'segmentationTest' method for linear model-based
        hypothesis tests of spatially-segmented images

CHANGES IN VERSION 2.1.11 [2019-4-12]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Added option to set the probability regularization
        parameter (p0) to 'spatialDGMM' method
    o Added option to initialize 'spatialDGMM' algorithm
        with either k-means or Gaussian mixture model

CHANGES IN VERSION 2.1.10 [2019-4-12]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Changed default colorscale for images to 'viridis'
    o Updated 'simulateImage' presets to handle multiple runs

CHANGES IN VERSION 2.1.9 [2019-4-11]
-----------------------------------

NEW FEATURES

    o Added 'spatialDGMM' method for fitting feature-wise
        spatially-aware Dirichlet Gaussian mixture models
    o Added 'predict' method for 'SpatialShrunkenCentroids2'

BUG FIXES

    o Fixed 'spatialShrunkenCentroids' classification methods
        for new ('SparseImagingExperiment'-based) classes
    o Cleaned up unit tests for statistical methods

CHANGES IN VERSION 2.1.8 [2019-4-1]
-----------------------------------

BUG FIXES

    o Updated 'PositionDataFrame' initialization
        due to change in S4Vectors [<-,DataFrame behavior
    o Updated 'MassDataFrame' initialization due to change
        in S4Vectors [<-,DataFrame behavior

CHANGES IN VERSION 2.1.7 [2019-2-21]
-----------------------------------

BUG FIXES

    o Updated 'filter' signature due to dplyr changes

CHANGES IN VERSION 2.1.6 [2019-1-4]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Added ImmunoOncology biocViews term

CHANGES IN VERSION 2.1.5 [2018-12-14]
-----------------------------------

BUG FIXES

    o Updated read/write methods for 'matter' filemode changes

CHANGES IN VERSION 2.1.4 [2018-12-12]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o In 'readImzML' and 'readAnalyze', changed defaults
        from 'attach.only=FALSE' to 'attach.only=TRUE'
    o In 'readImzML' and 'readAnalyze', changed defaults
        from 'as=MSImageSet' to 'as=MSImagingExperiment'

BUG FIXES

    o Subsetting large 'SparseImagingExperiment' objects
        with 'sparse_mat' imageData should no longer hang

CHANGES IN VERSION 2.1.3 [2018-12-12]
-----------------------------------

NEW FEATURES

    o Added 'ImagingResult' class for results
        of statistical analyses of imaging experiments
    o Added 'spatialFastmap' method for 'SparseImagingExperiment'
    o Updated 'summarize' to accept a '.group_by' argument
    o Added 'simulateSpectrum' and 'simulateImage' functions

SIGNIFICANT USER-VISIBLE CHANGES

    o Automatically detect and setup 'layout' for new classes
    o Using 'layout' now assumes (row, column) order
        when creating facet plots for new classes (only)
    o Updated examples in documentation to use new classes

BUG FIXES

    o Fixed bug in 'spatialKMeans' that caused 'spatialFastmap'
        to fail for datasets with fewer features than components
    o Fixed bug where 'plot' did not facet over runs
        of a 'SparseImagingExperiment' when using 'plusminus'

CHANGES IN VERSION 2.1.2 [2018-11-30]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Updated 'spatialKMeans' to use new 'spatialFastmap'
    o Updated 'spatialShrunkenCentroids' to use new
        spatially-aware discriminant scores calculation

CHANGES IN VERSION 2.1.1 [2018-11-30]
-----------------------------------

NEW FEATURES

    o Added 'spatialFastmap' method for performing
        spatially-aware FastMap projection more easily

CHANGES IN VERSION 2.0.2 [2018-11-30]
-----------------------------------

BUG FIXES

    o Fixed bug in 'reduceDimension.peaks' that caused
        peak intensities to be binned incorrectly

CHANGES IN VERSION 2.0.1 [2018-11-14]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Updated 'peakFilter' to check for freq.min >= 1 to
        accomodate old behavior (counts)

CHANGES IN VERSION 1.99.2 [2018-10-28]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Updated vignettes for Cardinal 2.0

BUG FIXES

    o Removed a unit test broken on Windows

CHANGES IN VERSION 1.99.1 [2018-10-26]
-----------------------------------

NEW FEATURES

    o Added vignettes and documentation for Cardinal 2.0

CHANGES IN VERSION 1.99.0 [2018-10-25]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Version bump for Cardinal v2 release candidate

CHANGES IN VERSION 1.13.3 [2018-10-24]
-----------------------------------

NEW FEATURES

    o Added 'process' method for queueing delayed processing
        functions to an imaging dataset and applying them
    o Added new processing methods for Cardinal v2 including 
        new versions of 'normalize', 'smoothSignal', 'reduceBaseline',
        'peakPick', 'peakAlign', and 'peakFilter'
    o Added new 'peakBin' function for binning peaks
    o Updated 'show' method for new Cardinal v2 classes
    o New support for exporting 'processed' imzML files
        via the 'writeImzML' function

CHANGES IN VERSION 1.13.2 [2018-7-22]
-----------------------------------

NEW FEATURES

    o Added new classes for Cardinal v2 including 'XDataFrame',
        'PositionDataFrame', 'MassDataFrame', 'ImagingExperiment', 'SparseImagingExperiment', and 'MSImagingExperiment'

CHANGES IN VERSION 1.13.1 [2018-7-22]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Updated installation instructions for "CardinalWorkflows"

CHANGES IN VERSION 1.12.1 [2018-7-22]
-----------------------------------

BUG FIXES

    o Fixed bug in reading Analyze 7.5 files

CHANGES IN VERSION 1.11.2 [2017-12-2]
-----------------------------------

NEW FEATURES

    o Added 'writeMSIData', 'writeImzML', and 'writeAnalyze'
        methods for writing MSI data to supported file formats
    o Added support for on-disk 'processed' imzML (via argument
        'attach.only' in 'readImzML' method)

SIGNIFICANT USER-VISIBLE CHANGES

    o Package 'matter' is used for all file I/O now
    o Switched from using 'Hashmat' to using 'sparse_mat'
        class from 'matter' for 'processed' imzML data

BUG FIXES

    o Changed compiler settings for parsing XML so reading
        large imzML files should use much less memory now
        (but may take slightly longer for smaller files)

CHANGES IN VERSION 1.11.1 [2017-10-25]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Use 'drop=NULL' from now on instead of 'drop=NA' to do
        endomorphic subsetting of 'SimageData' objects

BUG FIXES

    o Use 'keys' and 'keys<-' generic from 'matter'

CHANGES IN VERSION 1.9.2 [2017-10-25]
-----------------------------------

BUG FIXES

    o Corrected author name in all documentation

CHANGES IN VERSION 1.9.1 [2017-10-23]
-----------------------------------

BUG FIXES

    o Fixed bug in package dependency 'matter' affecting the size
        of datasets that can be processed with 'batchProcess'
    o Fixed bug where bin sizes for units='ppm' were twice as wide
        as they should be in 'readImzML' and 'reduceDimension'

CHANGES IN VERSION 1.7.2 [2017-3-22]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o In 'image' method, 'superpose = TRUE' now supports multiple LHS
        arguments in the formula (e.g., formula = a + b ~ x * y)

CHANGES IN VERSION 1.7.1 [2016-11-29]
-----------------------------------

NEW FEATURES

    o PCA is now supported for larger-than-memory on-disk datasets
    o External 'matter' matrices replace 'Binmat' matrices for on-disk support
    o Added 'image3D' aliases for all 'ResultSet' subclasses

SIGNIFICANT USER-VISIBLE CHANGES

    o Added 'matter' package to Depends list

CHANGES IN VERSION 1.5.2 [2016-10-6]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Updated 'batchProcess' to support reduceDimension and peakAlign
    o Now 'peakAlign' looks for an existing 'mean' column in featureData
    o Added 'matter' support to readAnalyze (previously only readImzML)

BUG FIXES

    o Fixed bug when indexing into data cube using 'imageData' method

CHANGES IN VERSION 1.5.1 [2016-9-21]
-----------------------------------

BUG FIXES

    o Corrected author and maintainer contact information

CHANGES IN VERSION 1.5.0 [2016-5-25]
-----------------------------------

NEW FEATURES

    o Added experimental support for 'matter' on-disk matrices, from
        package 'matter', hosted at https://github.com/kuwisdelu/matter,
        as a replacement for 'Binmat' matrices

BUG FIXES

    o Fixed subsetting SImageData objects with variables

CHANGES IN VERSION 1.3.3 [2016-4-20]
-----------------------------------

BUG FIXES

    o Subsetting the S4 part of Binmat objects by row is now an error
    o Providing non-positive m/z values to 'readImzML' is now an error
    o Elements of 'imageData' that fail to 'combine' or which
        are missing from one or more of the objects are now
        dropped from the result with warning rather than failing
    o Moved unit tests in 'ints/tests' to 'tests/testthat'

CHANGES IN VERSION 1.3.2 [2016-3-29]
-----------------------------------

NEW FEATURES

    o Added 'image3D' method for plotting 3D images
    o Added 'batchProcess' method for batch pre-processing

CHANGES IN VERSION 1.3.1 [2016-3-14]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Added 'mass.accuracy' and 'units.accuracy' arguments for
        controlling the m/z accuracy when reading 'processed' imzML
    o Function 'reduceDimension.bin' now takes argument 'units' with
        value 'ppm' or 'mz', and new corresponding defaults

BUG FIXES

    o Fixed bug in reading 'processed' imzML format that caused
        mass spectra to be reconstructed in the wrong order
    o Improved speed accessing columns of Hashmat sparse matrices
    o In 'pixelApply' and 'featureApply', zero-length return values
        are no longer returned as a list when '.simplify=FALSE'
    o Function 'peakAlign.diff' should be more memory efficient now

CHANGES IN VERSION 1.3.0 [2015-12-16]
-----------------------------------

NEW FEATURES

    o Added experimental Binmat class for working with on-disk matrices
    o Added experimental support for 3D files from benchmark datasets
    o Added experimental support for plotting 3D images
    o Added experimental support for 'processed' imzML format

SIGNIFICANT USER-VISIBLE CHANGES

    o Added 'attach.only' argument to readImzML and readAnalyze

BUG FIXES

    o Fixed bug in plotting 3D image slices in the z dimension
    o Fixed bug where large imzML files could not be read due to byte
        offsets being stored as ints; they are now stored as doubles.
    o Fixed bug with strip labels in 3D plotting and with mixed labels
    o Fixed bug with unique m/z feature names for high mass resolutions

CHANGES IN VERSION 1.1.0 [2015-10-1]
-----------------------------------

BUG FIXES

    o Fixed bug in formatting m/z labels affecting R 3.2.2
    o Removed dependency on 'fields' because 'maps' is broken on Windows

CHANGES IN VERSION 0.99.6 [2015-4-5]
-----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Bioconductor Release Candidate 7
    o Added CITATION file for citing Cardinal

BUG FIXES

    o In 'readAnalyze' and 'readMSIData', removed endianness check
      in Analyze 7.5 headers because some ABSciex data files
      specify an incorrect header size, thereby fixing a bug where
      bits would be swapped wrongly and file read incorrectly.

CHANGES IN VERSION 0.99.5 [2015-3-3]
------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Bioconductor Release Candidate 6
    o Added new vignette for Cardinal design and development
    o Now using ProtGenerics generics for 'spectra', 'peaks', and 'mz'

CHANGES IN VERSION 0.99.4 [2015-2-15]
-------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Bioconductor Release Candidate 5
    o Updated vignette with biological examples
    o Added new citations to vignette

CHANGES IN Version 0.99.3 [2015-2-3]
------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES


    o Bioconductor Release Candidate 4
    o In plot and image methods, 'groups' arg now coerced to factor

BUG FIXES

    o Fixed bug in subset arg in select method
    o Fixed bug in plot and image methods with NA in 'groups' arg

CHANGES IN Version 0.99.2 [2015-1-20]
-------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES


    o Bioconductor Release Candidate 3
    o Adjusts NIPALS unit tests for Windows build

CHANGES IN Version 0.99.1 [2015-1-12]
-------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Bioconductor Release Candidate 2
    o Cleaned up biocViews

BUG FIXES

    o Fixed bug in SImageData coord factor levels not being
      properly updated when SImageSet is subsetted


CHANGES IN Version 0.99.0 [2014-12-22]
--------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Bioconductor Release Candidate 1

CHANGES IN Version 0.9.0 [2014-12-22]
-------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Added standardizeSamples method for between-sample normalization

CHANGES IN Version 0.8.9 [2014-12-5]
------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Improved plot methods for object summaries
    o Fixed minor issurs in walkthrough vignette

CHANGES IN Version 0.8.8 [2014-11-27]
-------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Changed modelData for ResultSet from facors to original parameters
    o Added plot method for summaries of ResultSet objects
    o Added 'normalize.image' argument for image method
    o Improved plot and image methods for CrossValidated

CHANGES IN VERSION 0.8.7 [2014-11-23]
-------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Completed Cardinal-walkthrough vignette

BUG FIXES

    o Fixed bug in plotting vectors from ResultSet
    o Fixed bug in PCA summary in reporting explained variance

CHANGES IN Version 0.8.6 [2014-11-21]

SIGNIFICANT USER-VISIBLE CHANGES

    o Completed walkthrough vignettes
    o Added ImagingMassSpectrometry biocView

CHANGES IN Version 0.8.5 [2014-11-20]
-------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Added 'show' and 'print' methods for most objects
    o Changed 'combine' method for IAnnotatedDataFame, SImageData, and SImageSet
    o Completed .Rd documentation for all public methods
    o Cleaned up R CMD check warnings (except C++ .hpp headers)

BUG FIXES

    o Fixed bug in between-cluster SS calculation for spatialKMeans
    o Fixed bug with pre-processing 1-pixel datasets


CHANGES IN Version 0.8.4 [2014-10-16]
-------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Changed 'topIons' to 'topLabels' method for summarization
    o Added MSImageData class for peakData and mzData methods
    o Changed naming scheme for SImageData (.iData => iData)

BUG FIXES

    o Fixed bug in plotting of classes for SpatialShrunkenCentroids
    o Fixed bug in fopen in readAnalyze and readImzML affecting Windows

CHANGES IN Version 0.8.3 [2014-9-18]
------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Added 'coregistration' for SpatialKMeans
    o Added 'summary' methods for all ResultSet subclasses
    o Added 'topIons' method for summarization
    o Added plotting methods for 'ResultSet' classes
    o Added 'cvApply' method for cross-validation
    o Added additional statistics to SpatialKmeans class results
    o Changed 'auto.key' argument to 'key' in plotting methods

BUG FIXES

    o Fixed bug in spatialShrunkenCentroids with prior probabilties
    o Fixed bug in OPLS with proper scaling of data matrices during prediction


CHANGES IN Version 0.8.2 [2014-7-23]
------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES


    o Added 'peakFilter' method
    o Minor fixes to documentation

CHANGES IN Version 0.8.1 [2014-7-10]
------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Changed 'parameters' argument to 'model' for ResultSet plot and image
    o Added 'auto.key' to plot and image for when 'groups' are specified
    o Added strip labels to plot and image when using base graphics
    o Added 'coregister' method for 'SpatialShrunkenCentroids'
    o Method 'image' is now vectorized for argument 'mz'
    o Method 'plot' is now vectorized for argument 'coord'

BUG FIXES

    o Fixed a bug where conditions are plotted in an incorrect order

CHANGES IN Version 0.8.0 [2014-6-16]
------------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o First public beta available for ASMS 2014.

CHANGES IN Version 0.7 [2014-6-2]
---------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Refactored version of the package prepared for internal testing.
    o New processing methods, renamed to 'normalize', 'smoothSignal',
    	'reduceBaseline', 'peakPick', 'peakAlign', 'reduceDimension'.
    o New function 'readMSIData' for reading supported formats.
    o Native support for imzML added (no longer requires Java).
    o Methods 'pixels' and 'features' replaced with updated versions.
    o In 'features' method, m/z matching now done using bisection search.
    o New analysis method, renamed to spatialShrunkenCentroids.
    o Analysis methods now return a new class: 'ResultSet'.
    o New method 'select' to replace 'selectROI' and 'selectPixels'.

CHANGES IN Version 0.6 [2013-2-19]
----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Major revision to use Bioconductor base packages.
    o New dependencies on BiocGenerics and Biobase.
    o New virtual class iSet for generic imaging data.
    o New classes ImageSet, SImageSet, ImageData, and SImageData.
    o Revised MSImageSet that uses new parent classes.
    o New class MIAPE-Imaging for Minimum Information About
    	a Protemics Experiment - Imaging.
    o New class MSImageProcess for pre-processing information.
    o Revised functions for importing Analyze 7.5 and imzML
    o New plotting and image methods using lattice-style formula interface.
    o New pixelApply and featureApply methods.

CHANGES IN Version 0.5 [2013-11-8]
----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Added image coregistration for 3D sections.
    o Added 'volume' method for 3D visualization.

CHANGES IN Version 0.4 [2013-11-7]
----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Added 'summaryPlot' method for segmentation visualization.
    o Exposed 'calibrateSegmentation' method to calibrate colors
    	between multiple MSImageSegmentation objects.
    o Added more thorough verbose output for 'spatialSparseCluster'
    	and 'spatialSparseKMeans' methods.
    o Improved behavior of 'intensities' method when reconstructing
    	complex datacubes and with non-contiguous pixel requests.
    o Changed 'trellisImage' to plot all coordinates for dimensions
    	omitted from 'fixCoord' by default.
    o Minor changes to the 'MSImageSegmentation' class structure.
    o Improved 'likPlot' method and added AIC and BIC results and
    	the resulting number of classes.

CHANGES IN Version 0.3 [2013-7-5]
---------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Improved speed of imaging processing (smoothing and interpolation)
    	methods for use with 'image' and 'trellisImage'.
    o Added option for verbose output and hooks for GUI progress bars.
    o For prediction on 'MSImageSegmentation' objects, 'autoDimNames'
    	is now automatically passed along from the original call.
    o Changed 'MSImageSegmentation' to an S4 class derived from 'list'.
    o Added option for plotting the probabilities of an 'MSImageSegmentation'
    	using overlaid transparency masks for improved visualization.

CHANGES IN Version 0.2 [2013-6-20]
----------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o Package renamed from internal code-name "Canary" to "Cardinal".
    o Split off GUI to a new package called "CardinaliView".
    o New GUI in "CardinaliView" now based on gWidgets and RGtk2.
    o Added slot 'peaks' to 'MSImageSet' class.
    o Changed 'MSPeakFrame' and 'MSPeakList' to S4 classes, and added
    	new class 'MSPeak Alignment'.
    o Changed how the 'estimateNoise' method estimates noise.
    o Changed options in the 'detectPeaks' method to be more useful.
    o Changed the 'alignPeaks' methods to align to the mean spectrum
    	as a reference when aligning a list of peaks.
    o Added 'interpolate' option for images.
    o Added new method "selectPeaks" for manual peak selection.
    o Modified the 'type' arguments in the plotting methods.
    o Changed 'crossValidate' method to now return predictions for the
    	full dataset for every fold instead of the test set only.

BUG FIXES

    o Fixed bug where plotting mass spectra for multiple pixels fails
      on datasets with missing mass spectra.
    o Fixed bug where the 'unload' method did not remove the object.
    o Fixed bug in the 'crossValidate' method where the dots arguments
      were not passed to the 'predict' method.

CHANGES IN Version 0.1 [2013-6-6]
---------------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o First internal release for Stanford Canary Center for Cancer
    	Early Detection as primary beta testers.
    o Implementation of MSImageSet S4 class; mass spectra are stored as a
    	flat matrix with rows as features and columns as pixels; original
    	data cube can be reconstructed dynamically using a position array;
    	spectra stored using environments to prevent redundant data copying.
    o Visualization that includes plotting ion images and mass spectra,
    	using both base graphics and lattice graphics, allowing trellis
    	display of multiple ion images and multipe mass spectra.
    o Pre-processing for that includes normalization, baseline correct,
    	peak-picking, peak-alignment, resampling, and binning.
    o Multivaritate statistical analysis includes PCA, PLS, and OPLS.
    o Supervised analysis includes a spatially-aware version of nearest
    	shrunken centroids, PLS-DA, and OPLS-DA.
    o Unsupervised analysis includes spatially-aware clustering based on
    	nearest shrunken centroids, and an implementation based on sparse
    	k-means.
    o GUI based on tcltk using rpanel that supports all major
    	processing and statistical analysis methods in the package,
    	except for PLS and OPLS.

