step_sec_uv() creates a specification of a recipe step that processes
UV detector signals for SEC analysis, including application of extinction
coefficients for concentration determination.
Usage
step_sec_uv(
recipe,
measures = NULL,
extinction_coef = NULL,
extinction_column = NULL,
wavelength = 280,
path_length = 1,
output_col = NULL,
role = NA,
trained = FALSE,
skip = FALSE,
id = recipes::rand_id("sec_uv")
)Arguments
- recipe
A recipe object.
- measures
Character vector of UV detector column names to process. If
NULL, will look for columns containing "uv" in the name.- extinction_coef
Extinction coefficient in mL/(mgcm) or L/(gcm). Can be:
A single numeric value applied to all samples
NULLto skip normalization (signal remains in AU)
- extinction_column
Character name of a column containing sample-specific extinction coefficients. Overrides
extinction_coefif provided.- wavelength
UV detection wavelength in nm. For documentation only.
- path_length
Path length of the flow cell in cm. Default is 1.0.
- output_col
Name for the output column. Default is to modify in place.
- 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
The UV detector measures absorbance according to the Beer-Lambert law:
$$A = \varepsilon \times c \times l$$
where:
A is absorbance (AU)
epsilon is the molar extinction coefficient in mL/(mg*cm)
c is the concentration (mg/mL)
l is the path length (cm)
This step can convert UV absorbance to concentration-proportional signals by dividing by the extinction coefficient and path length.
Common UV applications in SEC:
Proteins at 280 nm (aromatic amino acids)
Nucleic acids at 260 nm
Conjugated polymers
UV-active end groups or labels
UV vs RI for concentration:
UV is more sensitive for chromophore-containing analytes
UV response depends on chemical composition (may vary with MW)
RI is more universal but less sensitive
For accurate MW, combine both detectors
Examples
if (FALSE) { # \dontrun{
library(recipes)
library(measure)
# Apply fixed extinction coefficient
rec <- recipe(~., data = sec_triple_detect) |>
step_measure_input_long(uv_signal, location = vars(elution_time), col_name = "uv") |>
step_sec_uv(extinction_coef = 1.0, wavelength = 280) |>
prep()
# Use sample-specific extinction coefficients
rec <- recipe(~., data = sec_triple_detect) |>
step_measure_input_long(uv_signal, location = vars(elution_time), col_name = "uv") |>
step_sec_uv(extinction_column = "ext_coef") |>
prep()
} # }