theme_uplots() to unify the layout of plot
functions.download_library() now follows CRAN rules for
downloading external data.calc_norm_int() always recalculates
n_occurrence and n_assignments, the argument
ms_id is passed to
calc_number_assignments().calc_norm_int(): Fixed a corrupt message when using
verbose = TRUE.This version is the first submission to CRAN.
filter_mf_data: The select_file_ids
argument is deprecated.msg is depricated and replaced
verbose.add_known_mf now only adds a single column
(categories) to mfdcheck_peaklist was renamed as as_peaklist
and now allows the import of external peaklists from
e.g. csv-files.UME’s large molecular formula libraries (15–125 MB) are now hosted on Zenodo (https://doi.org/10.5281/zenodo.17606457) for open and persistent access.
lib_02.rds: medium-sized balanced librarylib_05.rds: extended high-coverage library
(default)These library objects are now S3 class objects.
download_library(), allows users to download and load
molecular formula libraries from Zenodo:
overwrite = TRUEdata.table.f_label() looks for pretty labels in
the table ume::nice_labels_dt.uplot_cluster() now returns a list object with cluster
and mds results and figures.uplot_pca() now returns a list object that includes a
plotly PCA figure.main_doc.R.msg() for handling messages
(verbose).ume_vignette.pdf added to repository and can be
accessed via gitlab readme.classify_files() to automatically
group files into categories (e.g., blanks, standards, pools, samples)
based on pattern rules. The function is fully flexible: both the search
column and the returned ID column can be specified by the user.calc_norm_int(): Normalization via “sum_rank” fixed so
that the sum is always based on the exact number of argument
n_rank.normalize_verbose() to
standardize message control across functions. Both verbose
(preferred) and the legacy msg argument are supported. If
both are provided, verbose takes precedence and a warning
is issued.msg is now deprecated in favor of
verbose. Existing code using msg will continue
to work but may trigger a warning.This version introduces a new nomenclature. All columns carrying information on isotopes are now named according to the official IUPAC nomenclature to avoid ambiguities.
For example, the column ‘c’ that contains the number of atoms of 12C is now called ‘12C’ (capital “C”!).
This had implications for the entire ume data pipeline.
Functions such as check_mfd(),
check_formula_library(), and check_peaklist()
can now help to enforce the new nomenclature.
calc_recalibrate_ms.R() now expects a filename
(file). The new argument
insufficient_calibrants (valid argument values:
“extrapolate”, “remove_spectrum”) handles spectra, in which no calibrant
masses were identified. The argument value “extrapolate” takes the
median of calibration slope and intercept for all spectra that could be
calibrated with at least two masses and uses these values to calibrate
the spectra that showed no calibration masses. The argument value
“remove_spectrum” deletes all peaks of those spectra for which no
calibrant masses were identified.get_isotope_info() is now a fundamental function that
identifies element / isotope information in any table. It returns the
original names of the isotope columns of the table and related IUPAC
information on the isotope.identify_isotope_columns() is depricated and merged
into get_isotope_info().add_known_mf() now provides a column that contains all
category labels. In future versions separate columns for each category
(such as “CRAM”) will be depricated.assign_formulas(): pl (peaklist) can now also be a
numeric mass vector or a single mass. For numeric input, a minimal
peaklist is constructed internally. The result data.table is now
returned visibly (before: return(invisible(mfd))). The
consistency of the numeric peaklist is now checked by the function
check- _peaklist().check_peaklist() now allows manual assignment of the
column names containing the mass spectrum filename, file identifier
(numeric column), the m/z values, and peak magnitude. The columns will
be renamed according to the internal naming of these column in
ume.check_mfd() and check_formula_library()
now enforce the new isotope nomenclature.calc_data_summary(), calc_eval_params(),
calc_norm_int(), calc_recalibrate(),
convert_molecular_formula_to_data_table(),
create_custom_formula_library(),
eval_isotopes(), eval_isotopes(),
order_columns(), filter functions, and plotting functions
were all modified to match the new isotope nomenclature.calc_data_summary(): hard-coded conversion of
i_magnitude column to data type numeric.calc_dbe() now stops if the valence of an element in
the formula is not provide. Function modified to match new isotope
nomenclature.convert_data_table_to_molecular_formulas has a new
argument keep_element_sums that provides columns for the
count of atoms for each element (sum of isotope counts such as ‘C_tot’).
Function modified to match new isotope nomenclature.assign_formulas() that was introduced in
version 1.2.1 (April 7 2025).convert_molecular_formula_to_data_table: nominal mass
(nm) is now also returned.calc_exact_mass: Now returns a single numeric vector.
If mfd is a character value, it is interpreted as a
molecular formula and evaluated:
calc_exact_mass("C2H4") returns 28.031300129.calc_nm: Now always returns a single numeric vector. If
mfd is a character value, it is interpreted as a molecular
formula and evaluated:
calc_nm("C2H4") returns 28.uplot_ms(): the column specified by the argument
label is now internally converted by as.factor().ume::peaklist_demo: integer column
file_id added (to be consistent with changes in version
0.2.4. Column file now contains the names of the MS
spectra. Columns m_min, m_max, and
m were removed because they can be calculated using
calc_neutral_mass() and
calc_ma_abs().
Other:
assign_formulas(): The arguments
memory_efficient (FALSE / TRUE) and chunk_n
(number of peaks in each chunk) allow processing in chunks to be more
memory efficient.remove_blanks(): if a column for retention time is
detected or provided (via the ret_time_col argument),
blanks will be removed only for a given retention time and not for the
entire spectrum. The argument LCMS is deprecated.main_docu.R updated.- `calc_recalibrate_ms()`: argument `formula_library` was removed.
The calibration is now only based on lists of molecular formulas provided
either by `calibr_list` or by `custom_calibr_list`.
- `assign_formulas()` is now much faster for small libraries (n<=10 entries),
because the peaklist is pre-filtered before matching with the library.
- `identify_isotope_columns()`: column names "sn" and "sc" are explicitly
excluded to avoid confusions with element names.
identify_isotope_columns(): Apply this function to a
data.table to identify columns that have element or isotope
information.
convert_data_table_to_molecular_formulas(): Create
molecular formula strings for a table that has element or isotope
information.
create_ume_formula_library() completely renovated.
The function now excepts any element and isotope by providing two
molecular formulas for the upper and lower limit of each isotope in the
final library.
Functions calc_dbe(), calc_nm(),
calc_exact_mass() now consider all element and isotopes and
a flexible usage of spelling.
Major update in package documentation: The internal helper
function main_docu() documents arguments that occur in many
ume functions (@inheritParams main_docu).
convert_molecular_formula_to_data_table() is now
fundamentally faster, recognizes isotopes in a formula (square
brackets), and also returns the exact mass of a formula. The function
can now be used to build small custom formula libraries. #### Minor
changesassign_formulas() now checks if all required function
arguments are available.uplot_cluster() now supports custom column names.- `uplot_cluster()`: Cluster + NMDS function added: `uplot_cluster()`
- `uplot_pca()`:
- `uplot_ms()`: Revised and a `data_reduction` argument was added
to accelerate plotting.
- `uplot_ratios()`: For comparing peak intensities of molecular formulas
between two spectra.
- `uplot_cvm()`: new
- `uplot_freq()`: new
- `uplot_freq_ma()`: new
- `uplot_freq_vs_ppm()`: new
- `uplot_hc_vs_m()`: new
- `uplot_heteroatoms()`: new
- `uplot_isotope_precision()`: update
- `uplot_kmd()`: new
- `uplot_layout()`: new
- `uplot_lcms()`: update
- `uplot_ma_vs_mz()`: new
- `uplot_n_mf_per_sample()`: new
- `uplot_pca()`: new
- `uplot_ratios()`: new
- `uplot_reproducibility()`: new
- `uplot_ri_vs_sample()`: new
- `uplot_vk()`: update
- `uplot_ppm_average()`: new
- `uplot_dbe_vs_o()`: new
- `uplot_dbe_vs_c()`: new
- `uplot_dbe_vs_ppm()`: new
- `uplot_dbe_minus_o()`: new
- `ustats_outlier()`: moved from `stats.R`
xml2 has been removed as a dependency. It is
only required for the function read_xml_peaklist(), which
now checks for the xml2 package installation specifically.known_mf updated to UTF-8 encoding.assign_formulas() and
check_formula_library() are now returned invisibly.calc_neutral_mass(): now takes a vector as function
argument.remove_blanks(): There was an error for LC data.assign_formulas() adapted for formula libraries
containing only one formula (e.g. when assigning the post-column
standard in LCMS)calc_recalibrate_ms() adapted for formula libraries
containing only one formula (e.g. when assigning the post-column
standard in LCMS)ume:::extract_metadata_from_ufz_files()check_formula_library()calc_recalibrate_ms() udated because of changes in
calc_neutral_mass()add_known_mf() improved if a
molecular formula column is not existing in the source table
mfd.add_missing_element_columns()assign_formulas()read_xml_files().
Default folder_path now is NULL, which opens a
dialogue box for folder selection.extract_metadata_from_UFZ_files(). Default
folder_path now is NULL, which opens a
dialogue box for folder selection.calc_db() error handling updated and argument
element_names added, which handles the style of element /
isotope symbols (“lower case” (default) / “upper case”)extract_metadata_from_UFZ_files()This version now includes unit tests. Following versions will allow
that functions can be applied to single values and vectors in tables. -
Updates for calc_ma() and calc_ma_abs(): -
checks added in functions - unit tests added - application of functions
now - Dependencies DT and pander removed from
package.
create_custom_formula_library())search_for_mf_target())eval_isotopes(): Provide warning, if there is no
isotope information available in molecular formula data.convert_molecular_formulas()read_xml_peaklist()search_for_mf_target()ume::known_mf that indicates
photo- and biodegradation (Seibt, 2017; PhD thesis)calc_recalibrate_ms() now allows
for customized formula lists as reference for calibration.calc_shannon_index(),
calc_simpson_index(),
calc_pielou_eveness()).data.table::foverlap(), which doubles the speed of formula
assignment.process_orbi_data() that
reads scans from a list of mzML files and assigns formulas to each
scan.create_ume_formula_library() updatedChanges in calibration procedure
(calc_recalibrate_ms.R):
calibr_list was extended by “E_coli_metabolome” for the calibration of
metabolome samples
Mass accuracy plot (uplot.freq_ma in
plot.R):
bug fix: calculation of median and quantile mass accuracies now ignores
missing values.
Updates in documentation
calc_eval_params.R: AI will only be calculated for
molecular formulas in which C > O + N + P
calc_data_summary.R: wa(AI) is now calculated from
intensity weighted average element numbers.calc_recalibrate_ms.R: At least 5 calibrants must now be
detected in an analyses for recalibration. Otherwise the respective
analysis (file_id) will be removed from the recalibration peaklist.NEWS.md file to track changes to the
package.assign_formulas_new.R that is
more memory efficient and faster (now based on
data.table::foverlap())file_id now ALWAYS has to be numeric.