Implements the SIMPOL.1 group contribution method for predicting liquid vapor
pressure of organic compounds as described in Pankow & Asher (2008) and a
modified version described in Meredith et al. (2023). Users will not usually
use this function directly, but rather through calc_vol()
.
Arguments
- fx_groups
A data.frame or tibble with counts of functional groups produced by
get_fx_groups()
(or manually, with the same column names).- meredith
Logical;
FALSE
: use the original SIMPOL.1 method.TRUE
: use the modified version in Meredith et al. (2023).
Details
The output includes a column for log10_P
where
\(\textrm{log}_{10} P_{\textrm{L},i}^\circ(T) = \sum_k\nu_{k,i}b_k(T)\), or
the sum of the counts of functional groups (\(\nu_{k,i}\)) times the
coefficients for each functional group (\(b_K(T)\)). Units are in log10
atmospheres.
The modified method in Meredith et al. (2023) adds the following additional functional groups and coefficients:
Phosphoric acid (-2.23)
Phosphoric ester (-2.23)
Sulfate (-2.23)
Sulfonate (-2.23)
Thiol (-2.23)
Carbothioester (-1.20)
Note
The method described in Pankow & Asher (2008) allows for calculations of logP at different temperatures. This implementation currently only calculates values at 20ºC.
References
Meredith L, Ledford S, Riemer K, Geffre P, Graves K, Honeker L, LeBauer D, Tfaily M, Krechmer J. 2023. Automating methods for estimating metabolite volatility. Frontiers in Microbiology. doi:10.3389/fmicb.2023.1267234
Pankow, J.F., Asher, W.E. 2008. SIMPOL.1: a simple group contribution method for predicting vapor pressures and enthalpies of vaporization of multifunctional organic compounds. Atmos. Chem. Phys. doi:10.5194/acp-8-2773-2008
Examples
mol_path <- mol_example()[3]
sdf <- ChemmineR::read.SDFset(mol_path)
fx_groups <- get_fx_groups(sdf)
simpol1(fx_groups)
#> # A tibble: 1 × 52
#> formula name exact_mass molecular_weight carbons carbons_asa rings_aromatic
#> <chr> <chr> <dbl> <dbl> <int> <int> <int>
#> 1 C12H18O3 (-)-J… 210. 210. 12 0 0
#> # ℹ 45 more variables: rings_total <int>, rings_aliphatic <int>,
#> # carbon_dbl_bonds_aliphatic <int>, CCCO_aliphatic_ring <int>,
#> # hydroxyl_total <int>, hydroxyl_aromatic <int>, hydroxyl_aliphatic <int>,
#> # aldehydes <int>, ketones <int>, carbox_acids <int>, ester <int>,
#> # ether_total <int>, ether_alkyl <int>, ether_alicyclic <int>,
#> # ether_aromatic <int>, nitrate <int>, nitro <int>, amine_primary <int>,
#> # amine_secondary <int>, amine_tertiary <int>, amine_aromatic <int>, …