RELEASE HISTORY OF THE "MALDIquant" PACKAGE
===========================================


CHANGES IN MALDIquant VERSION 1.11 [2014-08-11]:
------------------------------------------------

NEW FEATURES

* Add `plotImsSlice`: a function to plot Imaging Mass Spectrometry data.

MODIFICATIONS

* Rename the vignette to MALDIquant-intro.pdf.
* Move the content of the manual pages of `.savitzkyGolay` and `.movingAverage`
  to `smoothIntensity` and remove the old ones.
* Move the content of the manual pages of
  `.estimateBaseline{Snip,TopHat,ConvexHull,Median}` to `estimateBaseline` and
  remove the old ones.
* Move the content of the manual pages of `.estimateNoise{Mad,SuperSmoother}` to
  `estimateNoise` and remove the old ones.


CHANGES IN MALDIquant VERSION 1.10 [2014-04-11]:
------------------------------------------------

IMPROVEMENTS

* Add a general vignette.
* `createMassSpectrum`/`createMassPeaks`: a warning is shown if negative
  intensity values are found.
* `.transformIntensity`: a warning is shown if negative intensity values are
  generated and set them to zero;
  affected functions: `transformIntensity`, `smoothIntensity`,
  `calibrateIntensity`.
* `determineWarpingFunctions`: a warning is shown if the "reference" contains
  less than ten peaks;
  affected functions: `determineWarpingFunctions`, `alignSpectra`
* `trim`: a warning is shown if the resulting MassSpectrum/MassPeaks object
  does not contain any data points.

MODIFICATIONS

* Use `table` instead of `any(length(fiedler2009subset[[1]]) == sapply(...` in
  demo/workflow.R.

DEFUNCT ARGUMENTS/FUNCTIONS

* `intensityMatrix` for MassSpectrum objects.

REMOVED ARGUMENTS/FUNCTIONS

* `isMassObject`/`isMassObjectList`: use `isMassSpectrum`, `isMassPeaks`,
  `isMassSpectrumList` or `isMassPeaksList` instead.
* `totalIonCurrent,MassPeaks-method`: TIC of peaks is meaningless.
* `totalIonCurrent<-,MassSpectrum-method`:
  use `calibrateIntensity(..., method="TIC")` instead to calibrate/normalize
  MassSpectrum objects.
* `standardizeTotalIonCurrent`:
  use `calibrateIntensity(..., method="TIC")` instead to calibrate/normalize
  MassSpectrum objects.
* `calibrate`:
  use `calibrateIntensity(..., method="TIC")` instead to calibrate/normalize
  MassSpectrum objects.
* `ltrim`/`rtrim`: use `trim(..., range=c(min, max))` instead.
* `determineWarpingFunctions`, argument "warpingFunction": use "method" argument
  instead.
* `mergeMassPeaks`, argument "fun": use "method" argument instead.
* `mergeMassSpectra`: use `averageMassSpectra`.
* `savitzkyGolay`: use `smoothIntensity(..., method="SavitzkyGolay")` instead.
* `movingAverage`: use `smoothIntensity(..., method="MovingAverage")` instead.
* `transformIntensity`, argument "fun": use "method" argument instead.
* `removeBaseline`, argument "fun": use "method" argument instead.
* `detectPeaks`, argument "fun": use "method" argument instead.

BUG FIXES

* `.which.closest`: check limits to avoid missing matches in some
  rare edge cases;
  affected functions: `labelPeaks`.
* Add missing reference "Andrew 1979" to the `.estimateBaselineConvexHull`
  manual page.

INTERNAL CHANGES

* `estimateNoise`: move body of `estimateNoise,MassSpectrum` to internal
  `.estimateNoise`.
* Move tests into tests/testthat/ to adapt to testthat 0.8 and new
  CRAN policy; closes #44.
* `.localMaximaR`: removed. It was replaced by a C version of `.localMaxima`
  in 1.5.
* `.snipR`: removed. It was replaced by a C version of `.estimateBaselineSnip`
  in 0.2.
* `.lowerConvexHullR`: removed. It was replaced by a C version of
  `.estimateBaselineConvexHull` in 0.3.
* `.topHatR`: removed. It was never used and replaced by a C version of
  `.estimateBaselineTopHat` in 1.6.


CHANGES IN MALDIquant VERSION 1.9 [2014-01-14]:
-----------------------------------------------

NEW FEATURES

* Add `alignSpectra`: a wrapper around `detectPeaks`,
  `determineWarpingFunctions` and `warpMassSpectra` to provide an easier
  workflow.

IMPROVEMENTS

* `filterPeaks`: introduce "mergeWhitelists" argument to additionally keep peaks
  that occur at least in one group. The default behaviour does not changed.
  Please see the man page of `filterPeaks` for details.
* `intensityMatrix`: add "spectra" argument to allow interpolation of missing
  peaks if corresponding spectra is given.
* Replace some `lapply` calls by `mapply` to allow different
  "halfWindowSize" arguments etc.;
  affected methods: `smoothIntensity`, `removeBaseline`, `detectPeaks`.

MODIFICATIONS

* `filterPeaks`: "minFrequency" > 1 and "minNumber" > n is not set
  to 1 or n anymore; only a warning about "empty peak whitelists" is given;
  see also issue #26.
* `filterPeaks`: replace warning about too large "minFrequency" or "minNumber"
  by a warning about "empty peak whitelists".
* `intensityMatrix`: rename first argument to "peaks"
* demo/workflow.R: introduce `alignSpectra`.
* demo/warping.R: adapt to current preferred workflow.
* demo/peaks.R: add smoothing and a few new plots.

DEPRECATED ARGUMENTS/FUNCTIONS

* `intensityMatrix` for MassSpectrum objects.

DEFUNCT ARGUMENTS/FUNCTIONS

* `isMassObject`/`isMassObjectList`: use `isMassSpectrum`, `isMassPeaks`,
  `isMassSpectrumList` or `isMassPeaksList` instead.
* `totalIonCurrent,MassPeaks-method`: TIC of peaks is meaningless.
* `totalIonCurrent<-,MassSpectrum-method`:
  use `calibrateIntensity(..., method="TIC")` instead to calibrate/normalize
  MassSpectrum objects.
* `standardizeTotalIonCurrent`:
  use `calibrateIntensity(..., method="TIC")` instead to calibrate/normalize
  MassSpectrum objects.
* `calibrate`:
  use `calibrateIntensity(..., method="TIC")` instead to calibrate/normalize
  MassSpectrum objects.
* `ltrim`/`rtrim`: use `trim(..., range=c(min, max))` instead.
* `determineWarpingFunctions`, argument "warpingFunction": use "method" argument
  instead.
* `mergeMassPeaks`, argument "fun": use "method" argument instead.
* `mergeMassSpectra`: use `averageMassSpectra`.
* `savitzkyGolay`: use `smoothIntensity(..., method="SavitzkyGolay")` instead.
* `movingAverage`: use `smoothIntensity(..., method="MovingAverage")` instead.
* `transformIntensity`, argument "fun": use "method" argument instead.
* `removeBaseline`, argument "fun": use "method" argument instead.
* `detectPeaks`, argument "fun": use "method" argument instead.

BUGFIXES

* `plot`: fix subtitle for averaged spectra.

INTERNAL CHANGES

* Add `.as.matrix.MassObjectList` to avoid internal dependencies on
  `intensityMatrix`;
  affected functions: `filterPeaks`, `referencePeaks`.
* Add `.as.binary.matrix`.
* Remove man/MALDIquant-internal.Rd.
* Argument "representation" of `setClass` is deprecated since R 3.0.0;
  use "slots" instead.
  affected classes: AbstractMassObject, MassPeaks, MassSpectrum.


CHANGES IN MALDIquant VERSION 1.8 [2013-09-08]:
-----------------------------------------------

NEW FEATURES

* Add `smoothIntensity`: to apply smoothing filters. Supports
  "SavitzkyGolay" and "MovingAverage". `savitzkyGolay` and `movingAverage`
  are now marked as deprecated.
* Add `calibrateIntensity`: to calibrate/normalize intensity values.
  Supports "TIC", "median" and "PQN" calibration/normalization.
  It replaces three similar functions with
  different names: `totalIonCurrent<-`, `standardizeTotalIonCurrent`,
  `calibrate` (these three are marked as deprecated and will be removed in
  future releases).
* Add `averageMassSpectra`: supports "mean", "median" and "sum" aggregation of
  spectra. It replaces `mergeMassSpectra`.
* Add C implementation of colMedians for faster averaging/merging of
  MassSpectrum/MassPeaks objects.
* Add LongVector support; now MALDIquant depends on R >= 3.0.0.

MODIFICATIONS

* MassSpectrum/MassPeaks class: change representation of slots mass, intensity,
  snr to "numeric" (was "vector" before). Should not affect anything. Maybe you
  have to reimport raw data and resave RData files.
* `trim`: replace "minMass" and "maxMass" arguments by new "range" argument.
* `transformIntensity`: add "method" argument (supports "sqrt", "log", "log2",
  "log10"). "fun" argument is deprecated.
* `estimateBaseline`/`removeBaseline`: rename argument method="Median" to
  method="median".
* `determineWarpingFunctions`: add "method" argument (supports "lowess",
  "linear", "quadratic", "cubic"); "warpingFunctions" argument is deprecated.
* `mergeMassPeaks`: add "method" (supports "mean", "median", "sum") argument;
  "fun" argument is deprecated.

DEPRECATED ARGUMENTS/FUNCTIONS

* `isMassObject`/`isMassObjectList`: use `isMassSpectrum`, `isMassPeaks`,
  `isMassSpectrumList` or `isMassPeaksList` instead.
* `totalIonCurrent,MassPeaks-method`: TIC of peaks is meaningless.
* `totalIonCurrent<-,MassSpectrum-method`:
  use `calibrateIntensity(..., method="TIC")` instead to calibrate/normalize
  MassSpectrum objects.
* `standardizeTotalIonCurrent`:
  use `calibrateIntensity(..., method="TIC")` instead to calibrate/normalize
  MassSpectrum objects.
* `calibrate`:
  use `calibrateIntensity(..., method="TIC")` instead to calibrate/normalize
  MassSpectrum objects.
* `ltrim`/`rtrim`: use `trim(..., range=c(min, max))` instead.
* `determineWarpingFunctions`, argument "warpingFunction": use "method" argument
  instead.
* `mergeMassPeaks`, argument "fun": use "method" argument instead.
* `mergeMassSpectra`: use `averageMassSpectra`.
* `savitzkyGolay`: use `smoothIntensity(..., method="SavitzkyGolay")` instead.
* `movingAverage`: use `smoothIntensity(..., method="MovingAverage")` instead.
* `transformIntensity`, argument "fun": use "method" argument instead.
* `removeBaseline`, argument "fun": use "method" argument instead.
* `detectPeaks`, argument "fun": use "method" argument instead.

REMOVED FUNCTIONS

* `iplot`: because it throws NOTEs on CRAN's R CMD check and the most
  important function `grDevices::getGraphicEvents` behaves
  different on Unix/Windows platform (some keys don't working) and contains some
  nasty bugs, e.g.: https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=15208
  Also the "zoom" R package provides similar functionality.

BUG FIXES

* `totalIonCurrent`: fix calculation by estimating the integral; fixes #29.
  affected functions: `totalIonCurrent`,
    `calibrateIntensity(..., method="TIC")`.
* `filterPeaks`: reduce minNumber to length(l) to avoid complete removal
  of peaks; fixes #26.
* src/snip.c: fix some segmention faults because of a missing
  PROTECT for "duplicate" call.
  affected functions: `estimateBasline/removeBaseline(..., method="SNIP")`
- Add `import("methods")` to NAMESPACE (fixes #36).

INTERNAL CHANGES

* Remove internal `imputeMass`.
* Remove internal `.replaceNonEmptyMassObjects`.
* `approxfun`: returns NA for empty MassSpectrum objects.
* `[` (subset method): little speed up by calling `which` to evaluate logical
  expressions only once.
* Use integer values where possible.
* Modify C written functions to support LongVectors; closes #13;
  now MALDIquant depends on R >= 3.0.0.


CHANGES IN MALDIquant VERSION 1.7 [2013-05-23]:
-----------------------------------------------

NEW FEATURES

* Add `isRegular` method to test MassSpectrum objects for regular increasing
  mass values/intervals; closes #23.
* Add `savitzkyGolay`, Savitzky-Golay Smoothing Filter.
* Add memory usage to `show` output.
* `iplot`: add horizontal distance measurement (using left mouse clicks).
* `filterPeaks`: add "minNumber" argument to allow an absolute threshold for
  filtering; closes #21.
* demo/workflow.R: add raw data check.

IMPROVEMENTS

* demo/workflow.R: replace moving average smoother by Savitzky-Golay-Filter.
* `.estimateBaselineSnip`: support decreasing/increasing clipping window;
  controlled by new argument "decreasing"; use a decreasing window per default
  to get a smoother baseline; (use decreasing=FALSE to get the old behaviour).
* `isEmpty`: treat spectra with only zeros as intensity values as empty ones.
* `movingAverage`: left/right extrema now calculated for 0:windowSize and
  (n-windowSize+1):n (before they were set to NA).

BUG FIXES

* `filterPeaks`: doesn't round (floor) minFrequency argument anymore; led to
  unexpected results; fixes #22.
* `mergeMassSpectra`: empty MassSpectrum objects are ignored now
  (but if all objects are empty `mergeMassSpectra` will return an empty
  MassSpectrum object, too); fixes #20.
* `.mergeMetaData`: fix merging of lists with different lengths; fixes #17.
  affected functions: `mergeMassPeaks`, `mergeMassSpectra`.
* `.doByLabels: preserve order of non-factor labels; fixes #19;
  affected functions: `filterPeaks`, `mergeMassPeaks`, `mergeMassSpectra`.
* `totalIonCurrent`/`isEmpty`: fix integer overflow; fixes #25.
* `totalIonCurrent<-`: fix handling of empty spectra; fixes #15.
* Remove LICENSE file.

INTERNAL CHANGES

* Replace all `paste(..., sep="")` calls by `paste0`;
  now MALDIquant depends on R >= 2.15.
* Replace all `.C` interfaces by `.Call`.


CHANGES IN MALDIquant VERSION 1.6 [2013-03-01]:
-----------------------------------------------

NEW FEATURES

* Add interactive plot method: `iplot`.
* Add TopHat baseline estimation: `estimateBaseline(..., method="TopHat")`/
  `removeBaseline(..., method="TopHat")`.

IMPROVEMENTS

* Include tests in inst/tests.

BUG FIXES

* `.which.closest`: rounding .5 to the next highest integer (before: to the next
  lowest one); affected functions: `labelPeaks`.
* `.doByLabels`: fix an error that occurred if all labels were unique
  (fixes #1); affected functions: `filterPeaks`, `mergeMassPeaks`,
  `mergeMassSpectra`.
* `estimateBaseline(..., method="Median")`: do not allow a window size > n
  (fixes #4).


CHANGES IN MALDIquant VERSION 1.5 [2012-12-06]:
-----------------------------------------------

NEW FEATURES

* Add `movingAverage`.
* `labelPeaks`: add labels argument.

IMPROVEMENTS

* `detectPeaks`: only throw an error if windowSize > length
  (windowSize == length is no error anymore).
* `.doByLabels`: drop unused levels of argument "labels";
  affected functions: `filterPeaks`, `mergeMassPeaks`, `mergeMassSpectra`.
* Rewrite `localMaxima` in C to reduce running time and memory consumption.


CHANGES IN MALDIquant VERSION 1.4 [2012-10-30]:
-----------------------------------------------

NEW FEATURES

* Add slot "snr" to MassPeaks.
* Add `.estimateNoiseMad` (same implementation as old `estimateNoise` method).
* Add `.estimateNoiseSuperSmoother`.
* `estimateNoise`: add method argument, change return value to two column
  matrix.
* `binPeaks`/`referencePeaks`: add argument method=c("strict", "relaxed");
  "relaxed" allows multiple peaks of the same spectrum in a bin.

IMPROVEMENTS

* `labelPeaks`: remove tolerance argument (now always select the closest one).
* `mergeMassPeaks`/`mergeMassSpectra`: merge metaData, too.
* `detectPeaks`: new example for a custom noise estimation function.
* `calibrate`: add ... to generic definition of `calibrate`.
* Change demo licences to public domain.

INTERNAL CHANGES

* `detectPeaks`: change internal snr handling.
* `show`: rewrite (OO design).


CHANGES IN MALDIquant VERSION 1.3 [2012-09-16]:
-----------------------------------------------

NEW FEATURES

* Add `trim` and `[` methods.
* `labelPeaks`: add avoidOverlap argument to avoid overlapping of peak labels.

IMPROVEMENTS

* `detectPeaks`: add error message if windowSize >= length.
* `determineWarpingFunctions`: add error message if it could not match any peak
  to reference peaks.

MODIFICATIONS

* `labelPeaks`: change default value for verticalOffset argument.
* `labelPeaks`: remove family argument.

BUG FIXES

* Fix `isMassSpectrumList`.

GENERAL

* Update DESCRIPTION file to use Authors@R and depends on R>=2.14 now.
* Add CITATION file.


CHANGES IN MALDIquant VERSION 1.2 [2012-07-18]:
-----------------------------------------------

BUG FIXES

* `determineWarpingFunctions`: stop with an error if reference MassPeaks
  object is empty.
* `.doByLabel`: preserve list order (affects `filterPeaks`).

INTERNAL CHANGES

* Replace some `sapply` calls by `lapply`.


CHANGES IN MALDIquant VERSION 1.1 [2012-05-06]:
-----------------------------------------------

NEW FEATURES

* Add `totalIonCurrent` method (replacement for `calibrate` function on
  MassSpectrum objects).
* Add methods accepting lists as arguments: `transformIntensity`,
  `removeBaseline`, `detectPeaks`.

MODIFICATIONS

* `detectPeaks`: remove localMaxima argument.
* `detectPeaks`: replace noise argument by fun.
* `removeBaseline`: replace baseline argument by fun.
* `labelPeaks`: use par("usr") to calculate default verticalOffset.
* `labelPeaks`: add absoluteVerticalPos argument.
* `plot`: change "sub" for merged spectra/peaks.
* `intensityMatrix`: remove argument replaceByNa.
* `determineWarpingFunctions`, `warpMassSpectra`, `warpMassPeaks` now require
  lists as arguments and return a list.
* `calibrate`: works only on matrices now.
* Replace all `lapply` calls by new methods in demonstration scripts.
* Allow only numeric values for `intensity<-` and `mass<-`.
* Rename `findLocalMaxima` to `.findLocalMaxima` and hide by NAMESPACE.
* Rename dataset spectra in fiedler2009subset.
* Remove peaks dataset.


CHANGES IN MALDIquant VERSION 1.0 [2012-03-28]:
-----------------------------------------------

NEW FEATURES

* Add demonstration scripts.
* Add functions: `binPeaks`, `determineWarpingFunctions`, `filterPeaks`,
  `isMassObject`, `isMassPeaks`, `isMassSpectrum`, `mergeMassPeaks`,
  `mergeMassSpectra`, `referencePeaks`, `warpMassPeaks`, `warpMassSpectra`.

MODIFICATIONS

* Change NAMESPACE.
* Hide `imputeMass` method because it fails on Bruker Daltonics' CompassXport
  32bit output.
* Add \keyword{internal} to estimateBasline*-functions.Rd.
* `labelPeaks`: rename massTolerance argument to tolerance.
* Replace dataset sA1/pA1 by spectra/peaks (containing 16 example spectra).


CHANGES IN MALDIquant VERSION 0.5 [2012-01-18]:
-----------------------------------------------

NEW FEATURES

* Add `imputeMass` method.

IMPROVEMENTS

* Rewrite intensityMatrix function (little speed improvement).


CHANGES IN MALDIquant VERSION 0.4 [2011-08-04]:
-----------------------------------------------

NEW FEATURES

* Add functions: `isMassObjectList`, `isMassPeaksList`, `isMassSpectrumList`,
  `findEmptyMassObjects`, `removeEmptyMassObjects`, `intensityMatrix` and
  `calibrate` (only TIC supported up to now).
* Add mass and massTolerance argument to `labelPeaks`.

IMPROVEMENTS

* Change default value for verticalOffset argument in `labelPeaks`.
* Add pA1 dataset.

MODIFICATIONS

* Rename AbstractMassSpectrumData to AbstractMassObject.


CHANGES IN MALDIquant VERSION 0.3 [2011-05-28]:
-----------------------------------------------

NEW FEATURES

* Add `transformIntensity`, `estimateNoise`, `findLocalMaxima`, `detectPeaks`
  and `points` method.
* Add `createMassPeaks` constructor.

IMPROVEMENTS

* Replace `.estimateBaselineMovingEstimator` by `.estimateBaselineMedian` (uses
  `runmed` instead of an own slow `movingEstimator` function).

MODIFICATIONS

* Rewrite `labelPeaks` (some arguments changed).
* Rename SingleSpectrum class to MassSpectrum.
* Rename SinglePeakList class to MassPeaks.
* Remove fdrtool dependency and rewrite `.estimateBaselineConvexHull` in C.
* Move importing functions to the following R-packages: readBrukerFlexData,
  readMzXmlData.

BUG FIXES

* change `.C(..., DUP=F)` to `.C(..., DUP=T)` in `.estimateBaselineSnip`
  to avoid changes of global variables.


CHANGES IN MALDIquant VERSION 0.2 [2011-03-29]:
-----------------------------------------------

* Add baseline correction algorithm SNIP (implemented in C) [default].
* Add MovingEstimator and ConvexHull baseline estimation algorithm.
* Add `as.matrix`, `intensity`, `length`, `lines`, `mass` and `metaData`
  methods.
* Add basic SinglePeakList class, adopt `plot` and `lines`, add `labelPeaks`
  (still useless).


CHANGES IN MALDIquant VERSION 0.1 [2011-02-22]:
-----------------------------------------------

* First public release.
* Up to now only importing and plotting of a single mass spectrum are supported.

