CHANGES IN VERSION 1.51.11
--------------------------

NEW FEATURES:
- Parameter "filled" for featureValues (issue #157).
- Parameters "rt" and "mz" in chromPeaks method allowing to extract
  chromatographic peaks from the specified ranges (issue #156).

BUG FIXES:
- Fixed possible memory problem in obiwarp (issue #159).
- Update getPeaks to use non-deprecated API (issue #163).


CHANGES IN VERSION 1.51.10
--------------------------

NEW FEATURES:
- filterRt for Chromatogram class (issue #142).
- adjustRtimePeakGroups function (issue #147).
- adjustRtime,XCMSnExp,PeakGroupsParam and do_adjustRtime_peakGroups support
  use of pre-defined matrix to perform alignment (issue #153).
- plotAdjustedRtime to visualize alignment results (issue #141).

USER VISIBLE CHANGES:
- featureDefinitions and featureValues return DataFrame and matrix with rownames
  corresponding to arbitrary feature IDs (issue #148).
- New peakGroupsMatrix slot for PeakGroupsParam class (issue #153).

BUG FIXES:
- Issue #146: ensure adjusted retention times returned by the peakGroups method
  to be in the same order than the raw retention times.


CHANGES IN VERSION 1.51.9
-------------------------

NEW FEATURES:
- fillChromPeaks, dropFilledChromPeaks methods and FillChromPeaksParam class.
- featureValues method.

USER VISIBLE CHANGES:
- Extended new_functionality vignette.
- Change default backend for reading mzML files to pwiz.

BUG FIXES:
- Issue #135: fix peak signal integration for centWave.
- Issue #139: problem with expand.mz and expand.rt in fillPeaks.chrom.
- Issue #137: Error in findChromPeaks if no peaks are found.


CHANGES IN VERSION 1.51.8
-------------------------

NEW FEATURES:
- Add Chromatogram class and extractChromatograms method.

BUG FIXES:
- Issue #118: failing unit test on Windows build machine.
- Issue #133: error with c() and xcmsSet without peaks.
- Issue #134: xcmsSet constructor endless loop.


CHANGES IN VERSION 1.51.7
-------------------------

USER VISIBLE CHANGES:
- Major renaming of methods and classes to follow the naming convention:
  - chromatographic peak (chromPeak): the peaks identified in rt dimension.
  - feature: mz-rt feature, being the grouped chromatographic peaks within and
    across samples.

BUG FIXES:
- Issue #127: failing unit test on Windows build machine.


CHANGES IN VERSION 1.51.6
-------------------------

NEW FEATURES:
- groupFeatures and adjustRtime methods for XCMSnExp objects.
- New Param classes for groupFeatures and adjustRtime analysis methods: FeatureDensityParam,
  MzClustParam, NearestFeaturesParam, FeatureGroupsParam and ObiwarpParam.

BUG FIXES:
- Issue #124 (filterRt,XCMSnExp returned empty object).


CHANGES IN VERSION 1.51.5
-------------------------

NEW FEATURES:
- MsFeatureData and XCMSnExp objects.
- features, features<-, adjustedRtime, adjustedRtime<-, featureGroups,
  featureGroups<-, hasAlignedFeatures, hasAdjustedRtime and hasDetectedFeatures
  methods.
- dropFeatures, dropFeatureGroups and dropAdjustedRtime methods.
- filterMz, filterRt, filterFile etc implemented.
- mz, intensity and rtime methods for XCMSnExp allowing to return values grouped
  by sample.

BUG FIXES:
- Issue #99 (rtrange outside of retention time range in getEIC,xcmsSet).
- Issue #101 (xcmsRaw function returns NULL if mslevel = 1 is specified).
- Issue #102 (centWave returns empty matrix if scales not OK). Thanks to J. Stanstrup.
- Issue #91 (warning instead of error if no peaks in ROI). Thanks to J. Stanstrup.


CHANGES IN VERSION 1.51.4
-------------------------

BUG FIXES:
- added deepCopy to avoid corrupting the original object, thanks to J. Stanstrup, closes #93

CHANGES IN VERSION 1.51.3
-------------------------

NEW FEATURES:
- binYonX binning function.
- imputeLinInterpol function providing linear interpolation of missing values.
- breaks_on_binSize and breaks_on_nBins functions to calculate breaks defining
  bins.
- New vignette "new_functionality.Rmd" describing new and modified functionality
  in xcms.
- Add do_detectFeatures_matchedFilter function.
- Add do_detectFeatures_centWave function.
- Add do_detectFeatures_centWaveWithPredIsoROIs function and unit test.
- Implement a new data import function.
- Add do_detectFeatures_MSW function and unit test.
- Argument stopOnError in xcmsSet function that allows to perform feature
  detection on all files without stopping on errors.
- Method showError for xcmsSet objects that list all errors during feature
  detection (if stopOnError = FALSE in the xcmsSet function).
- [ method to subset xcmsRaw objects by scans.
- profMat method to extract/create the profile matrix from/for an xcmsRaw.
- Add new detectFeatures methods for MSnExp and OnDiskMSnExp objects from the
  MSnbase package.
- Add new CentWaveParam, MatchedFilterParam, MassifquantParam, MSWParam and
  CentWavePredIsoParam parameter class to perform method dispatch in the
  detectFeatures method.
- retcor.obiwarp uses the new binning methods for profile matrix generation.
- scanrange,xcmsRaw reports always a scanrange of 1 and length(object@scantime).
- scanrange,xcmsSet reports the scanrange eventually specified by the user in
  the xcmsSet function.
- Fixed bug in rawMat (issue #58).
- Fix issue #60: findPeaks.massifquant always returns a xcmsPeaks object.


CHANGES IN VERSION 1.51.2
-------------------------

USER VISIBLE CHANGES:
- As suggested by Jan Stanstrup, do not error if a centWave ROI
  contains no data, closes #90

CHANGES IN VERSION 1.51.1
-------------------------

BUG FIXES:
- Fix incorrrect indexing getEIC function reported by Will Edmands, closes #92

CHANGES IN VERSION 1.49.7
-------------------------

BUG FIXES:
- Fix documentation warnings.


CHANGES IN VERSION 1.49.6
-------------------------

USER VISIBLE CHANGES:
- Peak Picking function findPeaks.centWaveWithPredictedIsotopeROIs() and findPeaks.addPredictedIsotopeFeatures(),
  which allow more sensitive detection of isotope features.

CHANGES IN VERSION 1.49.5
-------------------------

USER VISIBLE CHANGES:
- Some documentation updates.
- Preparation for a new binning function


CHANGES IN VERSION 1.49.4
-------------------------

BUG FIXES:
- Fix getXcmsRaw that would prevent retention time correction to be applied
  (issue #44 reported by Aleksandr).


CHANGES IN VERSION 1.49.3
-------------------------

NEW FEATURE:
- updateObject method for xcmsSet.

USER VISIBLE CHANGES:
- xcms uses now BiocParallel for parallel processing. All other parallel
  processing functions have been deprecated.

BUG FIXES:
- Added missing package imports.
- Fix bug in fillPeaksChromPar referencing a non-existing variables i and
  object.
- Fix bug in group.nearest: variable scoreList was mis-spelled (coreList).
- Remove all DUP = FALSE from the .C calls as they are ignored anyways.

OTHER CHANGES
- Re-organization of class, function and method definitions in R-files.
- Use roxygen2 to manage the DESCRIPTION's collate field.


CHANGES IN VERSION 1.49.2
-------------------------

NEW FEATURE:

- Initial support for exporint mzTab format. Since Changes are
  still to be expected, xcms:::writeMzTab() is not yet exported.

CHANGES IN VERSION 1.49.1
-------------------------

NEW FEATURE:

- The raw CDF/mzXML/mzData/mzML is assumed to have scans sorted by m/z.
  Instead of throwing an "m/z sort assumption violated !" error,
  the data is re-read and on-demand sorted by m/z.

CHANGES IN VERSION 1.47.3
-------------------------
- Disable parallel processing in unit tests causing a timeout
  on BioC build machines

CHANGES IN VERSION 1.47.2
-------------------------

BUG FIXES
- Fix problem in getEIC on xcmsSet objects reported by Alan Smith in issue #7 and
  add a RUnit test case to test for this (test.issue7 in runit.getEIC.R).
- Changed some unnecessary warnings into messages.


CHANGES IN VERSION 1.47.2
-------------------------

USER VISIBLE CHANGES:
- Disabled parallel processing in unit tests
* migrate dependencies from ncdf -> ncdf4

CHANGES IN VERSION 1.45.7
-------------------------

USER VISIBLE CHANGES:
- Disabled Rmpi support and usage on Windows


CHANGES IN VERSION 1.45.6
-------------------------

NEW FEATURE:
- J. Rainer implemented a [ method that allows to subset an xcmsSet.

BUG FIXES:
- Fixed a problem in split.xcmsSet that did not split the phenoData properly.
  Added some details to the documentation of xcmsSet-class.


CHANGES IN VERSION 1.45.5
-------------------------

USER VISIBLE CHANGES:
- The sampclass method for xcmsSet will now return the content of the
  column "class" from the data.frame in the phenoData slot, or if not
  present, the interaction of all factors (columns) of that data.frame.
- The sampclass<- method replaces the content of the "class" column in
  the phenoData data.frame. If a data.frame is submitted, the interaction
  of its columns is calculated and stored into the "class" column.

BUG FIXES:
- Fixed a bug that resulted in a cryptic error message
  when no input files are available to the xcmsSet function.


CHANGES IN VERSION 1.45.4
-------------------------

BUG FIXES:
- Fixed a bug in the levelplot method for xcmsSet.


CHANGES IN VERSION 1.45.3
-------------------------

NEW FEATURE:

- xcmsSet now allows phenoData to be an AnnotatedDataFrame.
- new slots for xcmsRaw:
  - mslevel: store the mslevel parameter submitted to xcmsRaw.
  - scanrange: store the scanrange parameter submitted to xcmsRaw.
- new slots for xcmsSet:
  - mslevel: stores the mslevel argument from the xcmsSet method.
  - scanrange: to keep track of the scanrange argument of the xcmsSet method.
- new methods for xcmsRaw:
  - levelplot: similar to the image method, plots m/z vs RT with color coded intensities.
  - mslevel: returns the value for the .mslevel slot. For downstream compatibility, this method returns NULL if the object does not have the same named slot.
  - profinfo: same functionality as the profinfo method for xcmsSet.
  - scanrange: returns the value for the scanrange slot. For downstream compatibility, this method returns NULL if the object does not have the same named slot.
- new methods for xcmsSet:
  - getXcmsRaw: returns a xcmsRaw object for one or more files in the xcmsSet, eventually applying retention time correction etc.
  - levelplot: similar to the image method, plots m/z vs RT with color coded intensities. Allows in addition to highlight identified peaks.
  - mslevel: returns the value for the mslevel slot. For downstream compatibility, this method returns NULL if the object does not have the same named slot.
  - profMethod: same functionality as the profMethod method of xcmsRaw.
  - profStep: same functionality as the profStep method of xcmsRaw.
  - scanrange: returns the value for the scanrange slot. For downstream compatibility, this method returns NULL if the object does not have the same named slot.

USER VISIBLE CHANGES:
- show method for xcmsSet updated to display also informations about the mslevel and scanrange.
- Elaborated some documentation entries.
- rtrange and mzrange for xcmsRaw method plotEIC use by default the full RT and m/z range.
- Added arguments "lty" and "add" to plotEIC method for xcmsRaw.
- getEIC without specifying mzrange returns the ion chromatogram for the full m/z range (i.e. the base peak chromatogram).

BUG FIXES:
- Checking if phenoData is a data.frame or AnnotatedDataFrame and throw an error otherwise.
- xcmsSet getEIC method for water Lock mass corrected files for a subset of files did not evaluate whether the specified files were corrected.

CHANGES IN VERSION 1.45.2
-------------------------

BUG FIXES:
    o The xcms split() function now accepts factors that are shorter
      than the number of samples in the xcmsSet, following more closely
      the standard split() behaviour


CHANGES IN VERSION 1.45.1
-------------------------

NEW FEATURE:
    o plotrt now allows col to be a vector of color definition,
      same as the plots for retcor methods.
    o Added $ method to access phenoData columns in a eSet/ExpressionSet like manner.
    o Allow to use the "parallel" package for parallel processing of the functions xcmsSet and fillPeaks.chrom.
    o Thanks to J. Rainer!

CHANGES IN VERSION 1.43.3
-------------------------

BUG FIXES:
    o Give a more verbose error message when file not found

CHANGES IN VERSION 1.43.2
--------------------------

BUG FIXES:
    o Use ProtGenerics, adapted xcms peaks()

CHANGES IN VERSION 1.43.1
--------------------------

NEW FEATURE:
    o function plotQC() for plotting various QC plots on RT and m/z

CHANGES IN VERSION 1.41.1
--------------------------

BUG FIXES:
    o fix sampclass generation from phenoData if some combinations of factors don't exist
    o disable parallel code in manpages to avoid issues on BioC windows build farm machines

CHANGES IN VERSION 1.39.6
--------------------------
USER VISIBLE CHANGES:
     o Massifquant reports the maximum intensity for each isotope trace
(peak). This is useful for interactive parameter optimization.
BUG FIXES:
    o Major memory reduction in parallel fillPeaks() thanks to
      Jan Stanstrup. Now using an environment to mirror gvals
      to each list item in the very large argList.

CHANGES IN VERSION 1.39.4
--------------------------
BUG FIXES:
    o Fixed write.cdf(), which had an intensity offset of +1, added a unit test

CHANGES IN VERSION 1.39.3
--------------------------
BUG FIXES:
    o New R-devel check unload better. Lingering ramp code removed, import from mzR. Cleaned up other errors in package check.

CHANGES IN VERSION 1.39.1
--------------------------
BUG FIXES:
    o Updated doubleMatrix c code to allow for larger profile matrixes

REQUIRED CHANGES
	o Moved inst/doc to vignettes

CHANGES IN VERSION 1.37.6
--------------------------
NEW FEATURE:
     o Introducing write.mzQuantML(xcmsSet) to export the peak list and grouped matrix to the PSI format mzQuantML (see http://www.psidev.info/mzquantml)
USER VISIBLE CHANGES:
     o Add Brigham Young University to LICENSE file for copyright purposes.
     o Add copyright information display when running findPeaks.massifquant()
     within xcmsRaw.R
     o Clean and update documentation for findPeaks.massifquant-methods.Rd
BUG FIXES:
     o Remove unused parameters in findKalmanROIs() within xcmsRaw.R
CHANGES IN VERSION 1.37.5
--------------------------
BUG FIXES
    o fixed bug in retcor.obiwarp where the scanrange of the first sample would be checked instead of the center sample

CHANGES IN VERSION 1.37.4
--------------------------
BUG FIXES
    o Skip t-test in diffreport() if one class has less than 2 samples.

CHANGES IN VERSION 1.37.3
--------------------------
BUG FIXES
    o fixed bug in patternVsRowScore (group.nearest) that was introduced by the
      modifications in rev 65169 and caused features to be aligned that were far outside the given m/z and retention time windows.


CHANGES IN VERSION 1.37.1
--------------------------
BUG FIXES
    o fixed fillPeaks, which 1) dropped non-standard columns
    and 2) failed if nothing to do, based on patches by Tony Larson.

CHANGES IN VERSION 1.37.1
--------------------------

NEW FEATURES:
     o Introducing msn2xcmsRaw, to allow findPeaks() on MS2 and MSn data


CHANGES IN VERSION 1.35.7
--------------------------
BUG FIXES
    o fixed indexing bug in group.nearest, which under certain circumstances caused all peaks in the first sample to be ignored (reported by Tony Larson)

CHANGES IN VERSION 1.35.6
--------------------------
BUG FIXES
    o Obiwarp retention time alignment error-ed if scanrange was used as a parameter setting during xcmsSet/peak detection
        The method now tries to automatically find the set scanrange and uses this range for alignment.

CHANGES IN VERSION 1.35.4
--------------------------

NEW FEATURES:
     o Introducing parallel fillPeaks

USER VISIBLE CHANGES
    o Replace snow requirement with minimum R version 2.14.0


CHANGES IN VERSION 1.35.3
--------------------------
BUG FIXES
  o if group.density was used with very low minfrac settings (< 0.5) it did not return all feature groups,
    but only those that include features from at least 50% of samples in a group. This limitation was removed.


CHANGES IN VERSION 1.35.2
--------------------------

UPDATED FEATURES:
     o Behind the scenes xcms now uses the xcmsSource class to read raw data.
       This allows e.g. to write a class that pulls raw data
       from e.g. a database
BUG FIXES
     o massifquant: simplified logic structure of Tracker::claimDataIdx
     resolved failure on new test case.
     o massifquant: reporting features data structure compatible with
     multiple sample comparison within XCMS.

CHANGES IN VERSION 1.35.1
--------------------------

UPDATED FEATURES:
     o The mzData export is now much faster and uses less memory

CHANGES IN VERSION 1.33.16
--------------------------

USER VISIBLE CHANGES

    o diffreport and plotEIC have a new parameter mzdec, with is the number of decimal places
      of the m/z values in the EIC plot title

CHANGES IN VERSION 1.33.16
--------------------------

UPDATED FEATURES:
Lock mass gap filler now works with netCDF lock mass function file to find the exact times of the scans and works with
the newer Waters MS instruments.

CHANGES IN VERSION 1.33.15
--------------------------

BUG FIXES

    o scanrage is now honoured in xcmsSet, also when in parallel mode

CHANGES IN VERSION 1.33.14
--------------------------

BUG FIXES

    o scanrage is now honoured in xcmsRaw, and consequently
      also in xcmsSet(matchedFilter), where previously
      it was ignored.

CHANGES IN VERSION 1.33.13
--------------------------

BUG FIXES

    o write.cdf() has been fixed to write files AMDIS can read

CHANGES IN VERSION 1.33.12
--------------------------

BUG FIXES

    o write.mzData adds Polarity to the file if available

CHANGES IN VERSION 1.33.11
--------------------------

USER VISIBLE CHANGES

    o centWave uses a new method to estimate local noise which improves detection of closely spaced peaks

NEW FEATURES

    o placeholder

BUG FIXES

    o group.mzClust was failing when result had one peak


For more details and all changes before May 2012 please see the (now discontinued) CHANGELOG in the source package (inst/ folder).

CHANGED BEHAVIOUR since Version 1.32:

Other Changes since Version 1.32:

* improved mzData writing, now includes MSn spectra and less verbose.
* improved netCDF writing, but not yet good enough for AMDIS


CHANGED BEHAVIOUR since Version 1.14:

* centWave may report a smaller set of peaks, due to a small bug
  in the ROI algorithm some features with mass deviation > ppm were retained.

Other Changes since Version 1.14:

* New method for grouping: an algorithm inspired by mzMine
  group(method="nearest") has been implemented. It is slower
  than group(method="density"). It can individually group
  close-eluting peaks of very similar mass

* New method for retention time correction:
  The retcor(method="obiwarp") algorithm operates on the raw data,
  and thus allows to correct runs without well-behaving
  peak groups, or without peak picking at all.

* fillPeaks(method="MSW") is now also available
  for direct infusion spectra. The findPeaks(method="MSW")
  now returns several intensities, and correctly reports
  mzmin and mzmax for peaks.

* centWave now uses dynamic memory allocation, needs much less memory,
  and these BUF related errors should be a thing of the past.

* centWave gains an optional argument "noise",
  which is useful for data that was centroided without any intensity threshold,
  centroids with intensity < "noise" are omitted from ROI detection

* the fillPeaks() methods now remember which was
  an observed, and which was a "filled" peak.

* For direct infusion spectra diffreport() now shows
  the raw peak shapes, and also indicated "real" and "filled" peaks.

* xcmsRaw can now filter for positive/negative spectra,
  if the file includes both polarities. xcmsSet() can pass
  the polarity to contain positive/negative peaks only.
