
Last chance! 50% off unlimited learning
Sale ends in
This function calculates the ionization of a compound at a given pH. The pKa's are either entered as parameters or taken from a specific compound in the package. The arguments pKa_Donor and pKa_Accept may be single numbers, characters, or vectors. We support characters because there are many instances with multiple predicted values and all those values can be included by concatenating with commas (for example, pKa_Donor = "8.1,8.6". Finally, pka_Donor and pKa_Accept may be vectors of characters representing different chemicals or instances of chemical parameters to allow for uncertainty analysis. A null value for pKa_Donor or pKa_Accept is interpretted as no argument provided, while NA is taken as no equlibria
calc_ionization(
chem.cas = NULL,
chem.name = NULL,
dtxsid = NULL,
parameters = NULL,
pH = NULL,
pKa_Donor = NULL,
pKa_Accept = NULL
)
fraction of compound neutral
fraction of compound charged
fraction of compound negative
fraction of compound positive
fraction of compound zwitterionic
Either the chemical name or the CAS number must be specified.
Either the chemical name or the CAS number must be specified.
EPA's 'DSSTox Structure ID (https://comptox.epa.gov/dashboard) the chemical must be identified by either CAS, name, or DTXSIDs
Chemical parameters from a parameterize_MODEL function, overrides chem.name and chem.cas.
pH where ionization is evaluated.
Compound H dissociation equilibirum constant(s). Overwrites chem.name and chem.cas.
Compound H association equilibirum constant(s). Overwrites chem.name and chem.cas.
Robert Pearce and John Wambaugh
The fractions are calculated by determining the coefficients for each
species and dividing the particular species by the sum of all three. The
positive, negative and zwitterionic/neutral coefficients are given by:
pearce2017evaluationhttk
strope2018highhttk
# Donor pKa's 9.78,10.39 -- Should be almost all neutral at plasma pH:
out <- calc_ionization(chem.name='bisphenola',pH=7.4)
print(out)
out[["fraction_neutral"]]==max(unlist(out))
# Donor pKa's 9.78,10.39 -- Should be almost all negative (anion) at higher pH:
out <- calc_ionization(chem.name='bisphenola',pH=11)
print(out)
out[["fraction_negative"]]==max(unlist(out))
# Fictitious compound, should be almost all all negative (anion):
out <- calc_ionization(pKa_Donor=8,pKa_Accept="1,4",pH=9)
print(out)
out[["fraction_negative"]]>0.9
# Donor pKa 6.54 -- Should be mostly negative (anion):
out <- calc_ionization(chem.name='Acephate',pH=7)
print(out)
out[["fraction_negative"]]==max(unlist(out))
#Acceptor pKa's "9.04,6.04" -- Should be almost all positive (cation) at plasma pH:
out <- calc_ionization(chem.cas="145742-28-5",pH=7.4)
print(out)
out[["fraction_positive"]]==max(unlist(out))
#Fictious Zwitteron:
out <- calc_ionization(pKa_Donor=6,pKa_Accept="8",pH=7.4)
print(out)
out[["fraction_zwitter"]]==max(unlist(out))
Run the code above in your browser using DataLab