CHANGES IN VERSION 2.4.2: BUG FIXES o Fix `maybe-uninitialized` warning in some platforms. Set the struct elements to `NULL`. o Fix RI files format incompatibility (affected versions: 2.4.0 and .1). Starting from 2.4.0, these files allow for empty spectra data, but older version raise an error. Therefore, we enforce non empty spectra data to keep compatibility. CHANGES IN VERSION 2.4.1: BUG FIXES o An error is thrown if all paramaters passed to `FindAllPeaks` are integers (a rare occurrence). Make sure that arguments are doubles before passing them to the C interface. Also add a test for it. CHANGES IN VERSION 2.4.0: NEW FEATURES o `plotPeakRI`: new option to plot by RT. This, however, needs the parameter `dev` because the relationship between RI and RT is unknown. o `FindPeaksAll`: new option to search by RT. Basically this change implements the functionality of `plotPeakRI`. o C code: refactor or most part of the code that deals with file parsing, in particular the text parser. The parser is now based on regular expressions, which should be more robust in detecting errors. o Tests: though is not relevant to the user, TargetSearch include more unit testing for several internal functions. BUG FIXES o Add assertion that the option `TS_RI_columns` has three elements and that it is a character or integer vector. CHANGES IN VERSION 2.2.0: BUG FIXES o C code: Refactor the function get_line due to failures in files with CR line terminators, commonly found in MacOS systems. CHANGES IN VERSION 2.0.0: NEW FEATURES o Despite being a 2.0 release, the new features are minimal as this release contains mostly documentation improvements, code refactoring and clean-ups, and bug fixes. o New methods for combining `tsLib`, `tsRim` and `tsSample` objects. These objects can be combined with the `c` operator. The method `length` reports the number of markers for objects of class `tsRim`. o The function `quantMatrix` has been fixed and now it accepts three methods to generate its output. `quantmass` uses the library's quantification mass (QM), `maxint` takes the most abundant mass as QM, and `maxobs` takes the QM with the most observations. In addition the parameter `selmass` allows for selection of selective masses only if turned on. o The function `Write.Results` has a new parameter `selmass` that is passed to `quantMatrix`, and the argument `quantMatrix` accepts the value `quantmass`, also passed to `quantMatrix`. The argument `prefix` changed its default value from `NA` to `NULL`. BUG FIXES o C code: use variables of same size (size_t vs int) o C code: replace and update user-controlled memory interface macros. o Baseline quantiles. Update quantiles computation with partially sorted data instead of sorted data. This yields a three-fold speed increase. o Function `Profile`: set correct rownames. The slots of the `msProfile` object did not have correct rownames. o Example data: fix object inconsistencies due to incorrect rownames. o Plotting functions: they should return `invisible()`. o Modernize the DESCRIPTION file. o Import the whole `stats` package instead of listing each function. o Replace instances of T/F with TRUE/FALSE in functions and vignettes. o Add examples to functions that lacked them. o Fix `quantMatrix`. The function has been broken for years as it did not work as intended. Nevertheless, the default option `quantmass` means that the output is now correct (formely, the options `maxint` and `maxobs` were simply ignored). CHANGES IN VERSION 1.52.0: SIGNIFICANT USER-VISIBLE CHANGES o Deprecate parameter 'libId' and replace it with 'libID' The parameter `libId` conflicts with the method libId, and in other functions we already use a variable `libID` that correspond with the library identifier. Therefore, we replace it for consistency. This change affects the functions `plotRIdev` and `plotSpectra`. BUG FIXES o plotRIdev: use near equality for comparison. The function compares the selective or top masses against the columns of the intensity matrix. However, their lengths are variable, so the for `if` condition threw a warning if the lengths didn't match. o Refactor functions binsearch and find_peaks. Minor optimization to the function binsearch in which the starting RT scan is found directly. This will reduce a couple of CPU cycles. o Extra CDF integrity checks. Check that the length of the variables are all greater than zero and replace logical OR operator for its longer form. CHANGES IN VERSION 1.50.1: BUG FIXES o Fixes the gcc warning produced by passing a pointer and with an incorrect size to the function `swapb`. This went undiscovered for years because the code is only executed in big-endian machines. CHANGES IN VERSION 1.50.0: NEW FEATURES o FindAllPeaks: Allow for asymmetric RT deviations. Formerly, the window search parameter was plus o minus a tolerance; now it can be different on either side of the expected RT. o ncdf4_convert_from_path: New flag to convert CDF files recursively. o checkRimLim: show multiple samples at the same time, as opposed to a single sample in previous versions. BUG FIXES o Make sure that the assertion that checks for NULL or NA is operating in a scalar. For vectors use another assertion. o Code clean-up. Remove unneeded files. CHANGES IN VERSION 1.48.0: NEW FEATURES o Function `ri_data_extract` allows for a time range for each searched m/z, instead of a single range for all masses. o Man-pages typos and clarifications. No more user-significant changes. BUG FIXES o Add extra assertions on `ncdf4_convert`. o The dependency package `ncdf4` should be on `Imports` rather than `Depends` on the DESCRIPTION file. CHANGES IN VERSION 1.46.3: BUG FIXES o Function `ri_plot_peak`: Correct description of arguments on man-page and fix typos. o Update NEWS for version 1.46.2 CHANGES IN VERSION 1.46.2: BUG FIXES o Baseline correction: Cast window parameter as double rather than integer. o Fix off-by-line error in quantile-based baseline calculation. This bug caused an out-of-bound memory access on edge cases, which it was why it took long to be found. CHANGES IN VERSION 1.46.1: BUG FIXES o Functions `plotPeakSimple`, `plotPeakRI`, and `plotRIdev` now correctly reset the graphics parameters by `on.exit()` calls. CHANGES IN VERSION 1.46.0: NEW FEATURES o New function `ri_data_extract` to extract peaks from RI files. It works similar to `FindAllPeaks` but uses different (simpler) input parameters, comparable to ncdf4_data_extract. o New function `ri_plot_peak` to plot peaks from RI files, built upon `ri_data_extract`. It can be used as an alternative to `plotPeakRI` as it has a simple interface. o New function `ncdf4_plot_peak`. An alternative to function `plotPeakSimple` with a simple interface to plot peaks from NetCDF format 4. This function supersedes `plotPeakSimple`. BUG FIXES o Remove unneeded ICO file. o Man pages improvements. Mostly grammar and spelling changes. SIGNIFICANT USER-VISIBLE CHANGES o The function `peakPlotSimple` is considered deprecated, and its use should be avoided. Use the function `ncdf4_plot_peak` instead. o The parameter `column` in many columns is now `NULL` by default. To change the column names use the global option `TS_RI_columns` instead CHANGES IN VERSION 1.44.0: NEW FEATURES o The class tsRim allows subsetting by the `[` operator. This makes possible to choose specific marker for plotting, eg, in `checkRimLim`. o New function `updateRI` to update/correct/force the time of the RI markers. Just like the old function `fixRI`, but it also corrects CDF files. BUG FIXES o Make sure matrix dimensions are not dropped in NCDF extraction. o Fix check warnings due to plot() being moved to `base`. o Clean-up NAMESPACE CHANGES IN VERSION 1.42.0: SIGNIFICANT USER-VISIBLE CHANGES o As announced in version 1.40.0, the graphical user interface is gone for good (i.e., defunct). The source code is available in my github repository. NEW FEATURES o The most interesting feature is the introduction of a custom CDF-4 format which hold the same data as a normal CDF-3 (as exported by the software vendors), but allows faster read-access (specially for plotting) and compression (among other features). This is at the cost of compatibility as the CDF-4 files are unlikely to be used outsied TargetSearch o A new baseline correction method based on quantiles around a retention time window. In addition, the new CDF-4 file format allows storing of baseline-corrected values so it is not needed to recompute the baseline each time like in older TargetSearch versions. o New function to transform to nominal mass. Some GC instruments export CDF not in nominal mass format (some even export high mass accuracy). Formely, this type of files were not supported and TargetSearch would refuse to process them. Now, all types of mass accuracy are allowed, obviously at the cost of losing that accuracy. BUG FIXES o Mostly code refactoring and house-keeping. CHANGES IN VERSION 1.40.0: SIGNIFICANT USER-VISIBLE CHANGES o The graphical user interface (TargetSearchGUI) is being deprecated. This is due to old source code, lack of time for maintenance, and lack of interest. The GUI it is still part of this release and it will be removed in the next release, ie, 1.42.0 BUG FIXES o Fix NA handling in quantMass method. CHANGES IN VERSION 1.38.0: NEW FEATURES o New function `checkRimLim` to vizualise a retention index markers before the actual time correction. It can be useful to fix the search limits. o Peak detection method (NetCDFPeakFinding) has the option to use a gaussian smoothing in addition to usual moving average. o Detects if CDF files are not found during sample description import. In addition, search for column names matching a pattern if the expected names are not found. o Add support for a custom CDF file for faster data retrieval. SIGNIFICANT USER-VISIBLE CHANGES o The parameter `massRange` (m/z mass range) which used to be needed in some functions is deprected. It was used mostly as a hint and usually detected automatically. If it is passed, there would be no effect. BUG FIXES o Big refactor of C code to eliminate duplicated code and to separate what is R-C code (ie, SEXP structs) out of the C code that actually does something. o General R code refactoring and housekeeping. CHANGES IN VERSION 1.36.0: NEW FEATURES o New dataset object TSExample. This dataset contains data that used to be stored in package TargetSearchData. o New low-level function to search peaks (FindAllPeaks). This allows advanced users to refine peak-searches. o New function to plot peaks across samples (plotPeakRI). Used for quality checks of peak annotation and fine-tunning search parameters. SIGNIFICANT USER-VISIBLE CHANGES o Add extra checks when manipulating tsLib objects. Extra care needs to be taken if changes to the quant/selective/top masses are done. o Sample IDs (names) must be unique. These might generate errors when loading old TargetSearch workspaces. BUG FIXES o tsLib: ensure that every slot in the object contain a library ID. o Fix warnings during R CMD check. o Refactor C code for finding peaks. It is possible to return all peaks instead of only the most abundant. No visibles changes for the end user. o Refactor C code for NetCDF manipulation and peak finding to reduce code duplication. No visible changes for the end user. o General R code houskeeping: Removal of mixed tabs and spaces, fix tabulation, add Rbuildignore. CHANGES IN VERSION 1.26.0: SIGNIFICANT USER-VISIBLE CHANGES o TargetSearch now depends on "ncdf" rather than mzR. BUG FIXES o Fix potential potencial pearson correlation errors that occur when the standard is deviation zero. If that is the case, replace the resulting NA/NaN by zero. o Fix R check warnings. CHANGES IN VERSION 1.24.0: BUG FIXES o Add clarification note for "Window" parameter in "RIcorrect" function. CHANGES IN VERSION 1.22.0: BUG FIXES o Fix bug in quantMatrix. make sure that selection mass IDs match the library IDs. Add an attribute to indicate that the quantification mass is also a correlation mass. CHANGES IN VERSION 1.20.0: BUG FIXES o Write the actual retention index value instead of the work 'RI' in `ProfileCleanUp`. CHANGES IN VERSION 1.18.0: NEW FEATURES o New options for function 'ProfileCleanUp' that allow fine tuning of the suggested metabolite in case of redundancy. This problem occurs when the reference library contains two or more metabolites in the same retention time window. o The function 'Write.Results' can create a quantification matrix based in one quantification mass. This mass can be selected automatically or specified by the user. o The above options have been incorporated in the GUI as well. CHANGES IN VERSION 1.16.0: SIGNIFICANT USER-VISIBLE CHANGES o Function 'fixRIcorrection' is now defunct (previously was deprecated). Use 'fixRI'. BUG FIXES o Removed references to deprecated R functions. o Fixed bug in 'ImportLibrary.msp' that occurs if there is only one metabolite. CHANGES IN VERSION 1.14.0: NEW FEATURES o New function 'fixRI'. This function can be used to correct RI markers or to manually force their location to specific retention times if, for example, the RI markers were not co-injected with the biological samples. Replaces the now deprecated 'fixRIcorrection'. o New function 'riMatrix'. This function searches RI markers in RI files instead of CDF files. o Improvements in CDF import functions: - Automatic detection of m/z range. - Detection and correction of CDF files with non-integer m/z values. These values are converted to nominal mass. o ImportLibrary: - New parameter 'file.opt'. A list containing arguments to be passed to 'read.delim'. - It can take a data frame instead of a file to create a library object. SIGNIFICANT USER-VISIBLE CHANGES o Function 'fixRIcorrection' is deprecated. Use 'fixRI'. BUG FIXES o The .Call function in FindPeaks.R would incorrectly coerce RI limits to integers instead of double. o ImportLibrary: - Fixed bug when reading one-metabolite libraries. - Check for unexpected quotation mark characters in input file or input data.frame. They will be removed. o Profile: check for at least three top masses to calculate spectra similarity scores. o quantMatrix: use character indeces instead of numeric indeces. CHANGES IN VERSION 1.12.0: SIGNIFICANT USER-VISIBLE CHANGES o New binary file format for the peak-list files, a.k.a. RI files. This speeds up metabolite searches by 5-10 fold. The old TEXT format is kept for compatibility. See method 'fileFormat'. Also see 'bin2text' and 'text2bin' funtions. o New plot peak function 'plotPeak'. The old function was renamed as plotPeakSimple. The function show also the regions in which the searches were performed to provide better quality controls. BUG FIXES o Changed to check.names=TRUE in 'read.delim' call in functions TargetSearchGUI() and ImportLibrary(). This prevents empty column names that might produce errors in downstream functions. CHANGES IN VERSION 1.10.0: NEW FEATURES o New function "writeLibText" to save "tsLib" objects in a tab-delimited text file (which can consecuently be re-imported). It might be also used to convert a MSP file into a TEXT file. BUG FIXES o Added some 'drop=FALSE' in plotSpectra function. o Calls to 'pdf' are now followed by 'on.exit(dev.off())' to make sure that the device is closed after unexpected errors or user interruption. CHANGES IN VERSION 1.8.2: BUG FIXES o bug fixed error due to changes in TargetSearch object definitions in function writeMSP. CHANGES IN VERSION 1.8.1: BUG FIXES o 'sampleRI' and 'Profile' functions would return NA if the minPairCor parameter was greater than the number of samples. o Change GUI message to a more suitable one. o 'FAMEoutliers' failed if only one sample was analyzed. o 'ProfileCleanUP' accepts a minPairObs parameter like 'Profile' o The parameter minPairObs is now checked so that cannot take a value lower than 5 in 'sampleRI', 'Profile', and 'ProfileCleanUP' functions. CHANGES IN VERSION 1.6.0: NEW FEATURES o The Retention Time information is now imported from the RI files. This means that the RT slot of the "tsMSdata" object contains the R.T. values (formerly it was just an empty slot). BUG FIXES o Several fixes, improvements, and code cleaning. CHANGES IN VERSION 1.4.3: NEW FEATURES o Function NetCDFPeakFinding: 'ppc' is now the default peak picking method. CHANGES IN VERSION 1.4.2: BUG FIXES o Bug creating a new library in GUI. Fixed. CHANGES IN VERSION 1.4.1: BUG FIXES o Fixed bug in "[" method, "tsLib" object. CHANGES IN VERSION 1.3.7: o Column Sample_Count of metabolite Profile renamed to Sample_Count_per_Mass. CHANGES IN VERSION 1.3.6: NEW FEATURES o ImportLibrary.tab() now have a new parameter 'libdata'. BUG FIXES o Fixed bug with corrupted CDF files. Now TS will try to process it and issue a warning to the user. o Fixed bugs in the GUI: - Quantitative masses were not loaded into the tsLib object. - Fixed bug ExcludedMasses parameter. CHANGES IN VERSION 1.3.5: NEW FEATURES o New method 'sampleData<-' for 'tsSample' class. o New method 'libData<-' for 'tsLib' class. DOCUMENTATION o Vignette corrections and rewriting. BUG FIXES o plotFAME(): plot title changed to 'RI marker' to be consistent with the manual. o Fixed examples that did not pass R CMD check. o Object validation bug fixes and new checks (all classes). CHANGES IN VERSION 1.3.4: BUG FIXES o Fixed GUI error that occurred when creating/editing a library. o Fixed Write.Result() file format output: columns were missing and column names were wrong. The file format should be compatible with older versions. CHANGES IN VERSION 1.3.3: NEW FEATURES o New function ImportSamplesFromDir. It makes easier to create a tsSample object from CDF files in a directory. o A new GUI layout and new features: Now it is not required to have all the files in the working directory. Basline, Peak detection, and RI correction options gray out when 'Apex data' is selected. CHANGES IN VERSION 1.3.2: NEW FEATURES o New 'tsProfile' and 'tsMSdata' definitions. Many functions were internaly changed to conform to the changes, however, the changes should be (more or less) transparent for the user. o classes.R: - new 'quantMass' slot in class 'tsLib' - class 'tsMSdata': slots changed from matrix to list - class 'tsProfile': new slots profInt, profRI and ProfRT o Function FindPeaks: Now the parameter refLib can be either a list or a 3-column matrix. If it is a list, the function will iterate for every component, given that the components are 3-column matrices. o Function ImportLibrary: code changed to incorporate the 'quantMass' slot. o methods-tsLib.R: new methods to access quantMass slot. Also, new methods profileInt, profileRI and profileRT to access slots profInt, profRI and ProfRT. New method as.list o Write.Results: Same as before, but the parameter peakData was removed, since the raw data is now included in the 'tsProfile' object. o The following files were changed to conform to the new definicions. No changes in terms of functionality: dayNorm.R, peakFind.R, plot.R, profile.R, profileCleanUp.R, and sampleRI.R. o new function quantMatrix. o Changes in the GUI. Now two new parameters are accepted: topMasses and ExcludedMasses. CHANGES IN VERSION 1.3.1: BUG FIXES o Fixed NetCDFPeakFinding and tsSample-class manpages because of an error caused by wrong regular expressions in the example section at check. DOCUMENTATION o CITATION file of TargetSearch paper at BMC bioinformatics.