Skip to contents

adductFormula calculates the chemical formulas for the specified adducts of provided chemical formulas.


adductFormula(formulas, adduct = "[M+H]+", standardize = TRUE)



character with molecular formulas for which adduct formulas should be calculated.


character or data.frame of valid adduct. to be used. Custom adduct definitions can be provided via a data.frame but its format must follow adducts()


logical(1) whether to standardize the molecular formulas to the Hill notation system before calculating their mass.


character matrix with formula rows and adducts columns containing all ion formulas. In case an ion can't be generated (eg. [M-NH3+H]+ in a molecule that doesn't have nitrogen), a NA is returned instead.

See also

adductNames() for a list of all available predefined adducts and adducts() for the adduct data.frame definition style.


Roger Gine


# Calculate the ion formulas of glucose with adducts [M+H]+, [M+Na]+ and [M+K]+
adductFormula("C6H12O6", c("[M+H]+", "[M+Na]+", "[M+K]+"))
#>         [M+H]+       [M+Na]+        [M+K]+       
#> C6H12O6 "[C6H13O6]+" "[C6H12O6Na]+" "[C6H12O6K]+"

# > "[C6H13O6]+" "[C6H12O6Na]+" "[C6H12O6K]+"

# Use a custom set of adduct definitions (For instance, a iron (Fe2+) adduct)
custom_ads <- data.frame(name = "[M+Fe]2+", mass_multi = 0.5, charge = 2,
                         formula_add = "Fe", formula_sub = "C0",
                         positive = "TRUE")
adductFormula("C6H12O6", custom_ads)
#>         1              
#> C6H12O6 "[C6H12O6Fe]2+"