Version 1.3
Changes in 1.3.3
Major
ChromBackendSpectraperformance improvements:chromExtract(),Chromatograms(spectra),peaksData()and[no longer re-validate the wrappedSpectraon every call (which re-stated every backing file), so they no longer scale with the number of files.Improve performance of
peaksData()forChromBackendSpectrawith overlapping chromatogram windows (e.g. fromchromExtract()): each spectrum is aggregated once and shared across the windows it falls in, instead of once per window. Results are unchanged; the speed-up grows with the number of overlapping windows.Improve performance of
peakBoundary(): valleys flanking the apex are located by scanning outwards from it rather than scanning the whole chromatogram. Results are unchanged.Order
dataOriginby first appearance when computing the spectra sort index, consistent withbackendParallelFactor().
Changes in 1.3.2
- Change
plotChromatograms()andplotChromatogramsOverlay()to methods. - Import
compareChromatograms()from ProtGenerics.
Version 1.1
Changes in 1.1.8
Improve performance of
matchRtime().Fix
compareChromatograms():...arguments (e.g.tolerance) are now routed toMAPFUNorFUNbased on their formal parameters, preventing errors whenFUN = correceived unknown arguments.
Changes in 1.1.7
- Improve performance of
.prepare_spectra_input(): spectra are now pre-filtered to the non-overlapping union of EIC retention time ranges usingMsCoreUtils::reduce()andSpectra::filterRanges(), and peak data is loaded in a singlepeaksData()call instead of separatemz()andintensity()calls. This reduces I/O and memory usage, especially for file-backed backends.
Changes in 1.1.6
- Add
compareChromatograms()andmatchRtime()for pairwise similarity of chromatographic intensity profiles.
Changes in 1.1.5
- Add
peakBoundary()method forChromatogramsobjects. Determines the retention time boundaries of the tallest peak in each chromatogram usingMsCoreUtils::valleys()to locate flanking valleys, with a threshold-based fallback. Returns a matrix withleft_boundaryandright_boundarycolumns.
Changes in 1.1.4
setBackend()now clears the processing queue after switching backend, preventing queued processing steps from being applied twice (once during the data transfer and again on subsequentpeaksData()calls).Fix
setBackend()parallel branch (used forChromBackendMzR) to correctly apply queued processing steps to each chunk before transferring data to the new backend.Major performance improvement in
.process_peaks_data()forChromBackendSpectra. Key optimizations include: pre-extractingmz()andintensity()as plain R lists (avoiding slowSimpleNumericListindexing), global retention time pre-filtering, a fast path for TIC/BPC cases, and usingfindInterval()withcumsum()for m/z range lookups. Combined,setBackend()showed 9x speed up for 1000 chromatograms.Add optimized
intensity()andrtime()accessors forChromBackendMemoryusing direct[[extraction instead of the slower[, col, drop]path throughpeaksData().Further accessor optimizations:
intensity(),rtime(), andlengths()onChromatogramsnow bypasspeaksData()dispatch when the processing queue is empty.peaksData()onChromBackendMemoryuses a fast[[path for single-column requests. Directlengths()methods added for all backends usingnrow()instead of going throughintensity().Replace
do.call(rbind, ...)withdata.table::rbindlist()inchromExtract()forChromBackendMemory,ChromBackendMzR, andChromBackendSpectrafor faster row-binding of many data.frames.Replace
replicate(n, .EMPTY_PEAKS_DATA, simplify = FALSE)withrep(list(.EMPTY_PEAKS_DATA), n)across backends to avoid repeated expression evaluation overhead.
Changes in 1.1.3
Add
filterEmptyChromatograms()function to remove empty chromatograms (i.e., chromatograms without peaks) from aChromatogramsorChromBackendobject.Add
concatenateChromatograms()function andc()method to combine multipleChromatogramsobjects into a single object. Also addsplit()method to split aChromatogramsobject based on a grouping factor.Add
extrapolateparameter toimputePeaksData()(defaultFALSE). WhenTRUE, leading/trailingNAvalues outside the range of observed data are extrapolated. WhenFALSE(default), only interpolation is performed and edgeNAvalues remain asNA.
Changes in 1.1.2
- Fix
peaksData()forChromBackendSpectrato return data in the correct row order when multiple chromatograms share the samechromSpectraIndex. This bug causedsetBackend()to produce mismatchedchromDataandpeaksDatawhen converting fromChromBackendSpectratoChromBackendMemorywith objects containing multiple EICs.
Changes in 1.1.1
- Aligned the package with the Bioconductor 3.22 release.
- Expanded the vignette to cover ChromBackendSpectra usage, chromatogram extraction with
chromExtract(), and imputation workflows viaimputePeaksData(). - Added
spectraSortIndex()forChromBackendSpectrato compute the desired retention-time order on demand, avoiding the need to keep on-diskSpectraobjects sorted in memory.
Version 0.99
Changes in 0.99.7
- Add
chromExtract()method to generate a newChromatogramsobject from an existing one by extracting a subset of chromatograms based on retention times (optionally m/z) boundaries. - Add
imputePeaksData()method to impute missing values in the chromatographic peaks data. - Fix
factorize()so that the parameterfactorize.bycan take acharactervector of length 1.
Changes in 0.6.0
- Addition of
ChromBackendSpectraclass and its respective methods. - Addition of
plotChromatograms()andplotChromatogramsOverlay()functions. - Addition of the
extractByIndeximplementation in the backends.
Changes in 0.5.0
- Addition of
ChromBackendMzRand its respective methods. - Addition of the Chromatograms vignette, which provides an overview of the object and related functionalities.
Changes in 0.4.0
- Addition of
peaksData()and implementation of chunkwise (and therefore paralleled) processing ofChromatogramsobject. - Addition of
addProcessing(),applyProcessing(),processingChunkFactor(), andprocessingChunkSize().
Changes in 0.3.0
- Addition of
filterChromData()method forChromBackend. - Creation of the
Chromatogramsclass and implementation of basic accessor methods. - Addition of basic plotting functions.
