Changelog
Source:NEWS.md
enviGCMS 0.9.1
New features and improvements
-
HORIZON Engine for formula decomposition: Introduce the native HORIZON (Heavy-first Ordered Recursive Inference with Zero-loop Optimal Navigation) engine, completely eliminating the legacy dependency on Bioconductor’s
Rdisopandimslib. Provides microsecond-level mass decomposition via heavy-element priority ordering, double-sided mass horizon pruning, and O(1) analytical leaf solving. -
Fiehn Seven Golden Rules: Integrate full heuristic chemical validation rules (Kind & Fiehn 2007) including Senior’s valence rules (Senior 1951), Hydrogen-to-Carbon (H/C) ratio bounds, heteroatom ratios (N/C, O/C, P/C, S/C, Halogen/C), and Double Bond Equivalents (DBE). Added exported function
checkGoldenRules(). -
Modern scoring metrics: Added
scoreIsotopes()computing Cosine similarity (unweighted spectral dot product), weighted dot product (MassBank/NIST style), and multinomial log-likelihood between experimental and theoretical isotopic distributions. - High-resolution instrument modeling: Added instrument resolution () and FWHM-based isotope peak merging, accurately modeling Orbitrap, Q-TOF, and FT-ICR isotopic profiles.
-
Batch vectorization and parallel computing: Implemented vectorized and OpenMP multi-threaded mass decomposition (
rcpp_decompose_masses()), enabling high-throughput chemical formula decomposition of thousands of features in fractions of a second.getformula()now supports vectorized input and multi-threading vianthreads.
Bug fixes
- Fix
getisotopologues(): resolve variable shadowing and indexing bugs in isotopologue pair selection, correct relative abundance calculations, and introducecutoffparameter (default 0.05) with automatic fallback for molecules with few isotopic peaks.
Documentation and maintenance
- Clean up documentation and references across manual pages, fixing trailing punctuation in titles and resolving non-ASCII character warnings.
- Update documentation for
HRMF(),cleanMGF(), andgetisotopologues()to reflect the internal C++ formula engine instead of external package dependencies. - Ensure all exported functions have complete and valid Rd documentation.
enviGCMS 0.9.0
CRAN release: 2026-10-07
Breaking changes
- Remove all deprecated functions from v0.7.x (32 functions including
getdata,getdata2,getmzrt2,svabatch,svaplot, etc.). Users should migrate to current API. - Remove
Mode()(statistical mode function) – unused internally sincegetmdg()moved to pmd package. - Standardize API naming conventions:
- Intensity column renamed from
instointensityingetMSP()andwriteMSP()spectra data.frames. - Rename
Integration()tointegration(),GetIntegration()togetintegration(),Getisotopologues()togetisotopologues()for consistent lowercase naming.
- Intensity column renamed from
New features (merged from MSxplorer)
- Add
HRMF()for high-resolution mass filtering with forward/reverse scoring and Figure of Merit (FoM), based on Kwiecien et al. (2015). Uses Rdisop instead of rcdk/rJava – no new hard dependencies. - Add
getHRMF()for batch HRMF processing of entire MSP files. - Add
adductargument toHRMF()/getHRMF()for ESI adduct ions ([M+H]+,[M+Na]+,[M+NH4]+,[M+K]+,[M+H-H2O]+,[M-H]-,[M+Cl]-,[M+HCOO]-,[M+CH3COO]-, or user-defined named mass deltas); fragment m/z are converted internally and scores gain anAdductcolumn. - Add
cleanMGF()to clean MGF files by keeping only fragment peaks explainable as sub-formulae of the best precursor formula candidate (derived fromPEPMASS/CHARGEand the supplied adduct); the chosen formula is stored as aFORMULA=header. - Add
plotEIC()for extracted ion chromatogram plotting from mzML/mzXML files using RaMS. - Add
plotTopMS1Peaks()interactive Shiny app to extract top MS1 ions from MS2 chromatograms. - Add
plotTopMS2Peaks()interactive Shiny app to extract top MS2 ions from MS1 chromatograms.
Bug fixes
- Fix
getmdh():cbind.data.frame(mz, MD1, MD1)corrected tocbind.data.frame(mz, MD1, MD2)for ceiling method. - Fix
HRMF(): remove a doubled electron-mass shift (about 0.55 mDa bias) in thedecomposeMass()query, and fall back to all candidates when Rdisop’s parity filter rejects every sub-formula for a peak (the closed-shell molecular formula was never annotated at charge +/-1). - Fix
runMDPlot(): filename case mismatch (MDPlot.rmd->mdplot.Rmd). - Fix
getdoe():sum(NROW(lv) > 1) != 0(always TRUE) corrected toNROW(lv) > 1. - Fix
getMSP(): extract duplicated peak-parsing code into internal helper. - Fix
getmzrtcsv(): remove broken cross-reference to deletedgetmzrt. - Fix
integration(): RT/noise window subsetting compared> upper & < lower(always empty), corrected to> lower & < upperso the function returns a real peak area. - Fix
getmdh():floormethod with more than three units assigned toMD1_3instead ofMD3, causing an “object ‘MD3’ not found” error. - Fix
getintegration():m <= 2branch referenced an undefinedtand mis-parenthesised the per-scandelta_t; now computes(last - first) / (n - 1). - Fix
findlipid():modebranch logic was inverted –pos/negapplied no adduct correction while the neutral branch held an unreachableifelse.posnow corrects[M+H]+andnegcorrects[M-H]-to neutral mass;noneis unchanged. - Fix
gifmr(): defaultimputation = "i"was not a validgetimputation()method (silently skipped imputation); changed to"l". - Register
c.mzrt()as an S3 method soc()dispatches onmzrtobjects. -
getcsv(): warn instead of silently doing nothing whentypecontains none ofm/a/p/o. - Remove dead code in
getpn()(two discarded subset expressions).
Dependency changes
- Move
animationfrom Imports to Suggests (only used bygifmr()). - Move
mixtoolsfrom Imports to Suggests (only used bygetimputation()). - Add
RaMSto Suggests for lightweight mzML/mzXML access (replaces MSnbase). - Hard Imports reduced from 11 to 8 packages.
Code quality
- Add unit tests across 10 test files (was 1 test), including regression tests for the bug fixes above.
- Refactor
HRMF()from 285-line monolith into 135-line function with 4 internal helpers. - Remove 809 lines of dead deprecated code and 35 orphan man pages.
enviGCMS 0.7.4
- CRAN
- remove rdisop related example
- update citation
- remove dependency of xcms and msnbase
- add onAttach message for bioc packages
enviGCMS 0.6.9
- update writeMSP function
- add findpfc to find potential PFCs
- add getpn to connect pos and neg mode data and return mzrt object
- add support for xcms 3 EIC extraction
- add getcompare to align multiple mzrt objects
enviGCMS 0.6.7
- fix bug in getpower function
- change default par parameters for plotmrc
- remove the export of deprecated function
- fix the typo in documents
- improve getMSP to fit MoNA MSP format
- add getalign function to align two peaks vectors and remove getoverlapmass, getoverlaprt
- modify getmass to accept negative value
- add getms1anno for MS1 annotation by local compounds database with predefined paired mass distances
- add support to save target data csv without change default name
- add retention time alignment function for peaks lists
- add getalign2 function to align mass to charge ratio, retention time for the same peak list, this function could be used to refine peaks list
- fix color issues in plotrla and plotridge function
enviGCMS 0.6.5
- change to formal group information for mzrt class
- fix log infinite issue in plotridge
- update list data
enviGCMS 0.6.4
- plotpeak for intensity of peaks across samples or samples across peaks
- plotridge for ridgeline density plot
- plotrug for 1-d density for multiple samples
enviGCMS 0.6.2
- add getMSP to read in EI-MS or MS/MS msp file as list for annotation
- add xrankanno and dotpanno function for MS/MS X Rank and dot product annotation
- add getrangecsv for MS2 mgf file extraction
enviGCMS 0.6.1
- remove dependency of genefilter
- remove dependency of reshape2
- remove dependency of ggplot2
- remove dependency of ggridges
enviGCMS 0.5.8
- add functions to get and plot density weighted intensity
- add pooled QC vignette
- add plotcc to plot calibration curve
enviGCMS 0.5.6
- fix group issue in mzrt object
- all the group info will be imported as character while user could change the character into dataframe
- export getmzrtcsv
- add findmet to export metabolites for certain compounds based on mass defect
- add demo data for TBBPA metabolites from this publication
enviGCMS 0.5.4
Major changes
- move dependances of xcms and MSnbase to suggest and remove the export for those functions
- introduce parallel computation in getdoe
- add demo data and organize examples
- add Relative Log Abundance (RLA) plots and Relative Log Abundance Ridge(RLA) plots
- add getcsv to save the list as csv file
- add getfilter to filter the list
- add getpower to deal with power analysis in metabolomics
- rewrite getmzrt and getdoe to make analysis easier
- deprecated getupload, getfeaturest and getfeaturesanova
- update vignettes
- add support for group dim larger than 2
enviGCMS 0.5.2
Major changes
- combine xcms and xcms 3 object function
- add support for single group plot
- add shiny application for mass defect analysis
- add function to compute high order mass defect
- add function to compare two peak list by overlap
- add function to output csv file from list object
- add function to perform pmd analysis
- add function to get chemical formula
- fix wrong object name in getmzrt/getmzrt2
- add options to export EIC object
- add function to screen organohalogen compounds
- add density plot for multiple samples
enviGCMS 0.5.0
CRAN release: 2018-04-25
- CRAN
Major changes from last CRAN version 0.3.4
- use list to communicate results between function instead of xcms objects
- getdoe function to handle data for various experimental design
- add functions and shiny application for Short-Chain Chlorinated Paraffins analysis
- update the visualization function
- support xcms 3 new objects
enviGCMS 0.4.4
Major changes
- Shiny application for GlobalStd
- New GlobalStd algorithm
- New paired analysis based on retention time hierarchical clustering, paired mass differences(PMD), PMD frequency analysis
- Remove mass defect related analysis
- Plot function for paired analysis
- Plot function for GlobalStd result
- Organize the codes
enviGCMS 0.4.3
Major changes
- RT cluster analysis for tentative isotope, adducts, and neutral loss peaks detection
- Correlation analysis to select the feature peaks within rt groups
- Mass defect(cluster) analysis for homologous series detection
- Add csv file generation for simulation data
- Add heatmap for mzrt profile
- Add index to plotpca