step_sec_universal_cal() creates a specification of a recipe step that
applies universal calibration to determine molecular weight from intrinsic
viscosity and retention data.
Usage
step_sec_universal_cal(
recipe,
measures = NULL,
calibration = NULL,
calibration_col = NULL,
intrinsic_visc_col = NULL,
K_sample,
a_sample,
K_standard = 0.000114,
a_standard = 0.716,
output_col = "mw_universal",
role = NA,
trained = FALSE,
skip = FALSE,
id = recipes::rand_id("sec_universal_cal")
)Arguments
- recipe
A recipe object.
- measures
Character vector of measure columns to apply calibration to. If
NULL, uses all measure columns.- calibration
A calibration object or data frame containing the universal calibration curve (log([eta]M) vs retention).
- calibration_col
If calibration is a column name in the data, specify it here.
- intrinsic_visc_col
Column containing intrinsic viscosity values. Required for converting between polymer types.
- K_sample
Mark-Houwink K parameter for the sample polymer.
- a_sample
Mark-Houwink a (alpha) exponent for the sample polymer.
- K_standard
Mark-Houwink K for the calibration standard polymer. Default is 0.000114 (polystyrene in THF).
- a_standard
Mark-Houwink a for the calibration standard. Default is 0.716 (polystyrene in THF).
- output_col
Name for the output molecular weight column. Default is
"mw_universal".- role
Role for generated columns.
- trained
Logical indicating if the step has been trained.
- skip
Logical. Should the step be skipped when baking?
- id
Unique step identifier.
Details
Universal calibration is based on the principle that polymers with the same hydrodynamic volume elute at the same retention time, regardless of chemical structure. The hydrodynamic volume is proportional to [eta]M:
$$V_h \propto [\eta] \cdot M$$
The Universal Calibration Curve: $$\log([\eta] \cdot M)_{sample} = \log([\eta] \cdot M)_{standard}$$
At the same retention volume, using Mark-Houwink equations: $$[\eta] = K \cdot M^a$$
We can solve for sample MW: $$M_{sample} = \left(\frac{K_{std} \cdot M_{std}^{1+a_{std}}}{K_{sample}}\right)^{\frac{1}{1+a_{sample}}}$$
Mark-Houwink Parameters (THF, 25C):
Polystyrene: K = 0.000114, a = 0.716
PMMA: K = 0.000128, a = 0.690
Polyisoprene: K = 0.000251, a = 0.728
Polybutadiene: K = 0.000457, a = 0.693
Note
Universal calibration requires:
Known Mark-Houwink parameters for both standard and sample
Calibration with narrow standards (typically polystyrene)
Same solvent and temperature for all measurements
For absolute MW determination, consider using MALS detection instead.
Examples
if (FALSE) { # \dontrun{
library(recipes)
library(measure)
# Apply universal calibration to convert PS calibration to PMMA
rec <- recipe(~., data = pmma_data) |>
step_measure_input_long(ri, location = vars(time), col_name = "ri") |>
step_sec_baseline() |>
step_sec_universal_cal(
calibration = ps_calibration,
K_sample = 0.000128, # PMMA
a_sample = 0.690,
K_standard = 0.000114, # PS (default)
a_standard = 0.716
) |>
prep()
} # }