diff --git a/R/mix.R b/R/mix.R index da6e54dd104f37f64b4541a6f8320df8c1e58130..3386aa2de15a56fb84855fe90a17f3ac05557f5a 100644 --- a/R/mix.R +++ b/R/mix.R @@ -76,6 +76,20 @@ calc_mz_from_formula <- function(chform,adduct,id) { dt } +calc_mz_from_smiles <- function(smiles,adduct,id) { + mol <- try(getMolecule(smiles), silent = T) + mol <- lapply(smiles,function(s) try(RMassBank::getMolecule(s), silent = T)) + check <- which(is.atomic(mol)) + if (length(check) > 0) + stop("Errors in SMILES with IDs:",paste(id[which],collapse = T)) + + mol_form <- sapply(mol,function(x) (rcdk::get.mol2formula(x))@string,USE.NAMES = F) + names(mol_form) <- id + calc_mz_from_formula(mol_form,adduct,id) + + +} +