Calculate UV/RI Ratio for Composition Analysis
Source:R/step_sec_uv_ri_ratio.R
step_sec_uv_ri_ratio.Rdstep_sec_uv_ri_ratio() creates a specification of a recipe step that
calculates the ratio of UV to RI detector signals at each elution point.
This ratio is useful for detecting compositional heterogeneity in copolymers
and conjugates.
Usage
step_sec_uv_ri_ratio(
recipe,
uv_col = NULL,
ri_col = NULL,
output_col = "uv_ri_ratio",
min_signal = 0.01,
smooth = TRUE,
smooth_window = 5,
role = NA,
trained = FALSE,
skip = FALSE,
id = recipes::rand_id("sec_uv_ri_ratio")
)Arguments
- recipe
A recipe object.
- uv_col
Name of the UV detector measure column.
- ri_col
Name of the RI detector measure column.
- output_col
Name for the output ratio column. Default is
"uv_ri_ratio".- min_signal
Minimum signal threshold (as fraction of max) below which ratio is set to NA. Default is 0.01 (1%). Prevents noisy ratios in baseline.
- smooth
Logical. Apply smoothing to the ratio? Default is
TRUE.- smooth_window
Window size for smoothing (number of points). Default is 5.
- 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/RI ratio provides information about chemical composition across the molecular weight distribution:
$$Ratio(t) = \frac{UV(t)}{RI(t)} = \frac{\varepsilon \cdot c(t)}{(dn/dc) \cdot c(t) \cdot K}$$
Since concentration cancels out, the ratio reflects the relative detector response factors, which depend on chemical composition.
Applications:
Copolymer composition drift with molecular weight
Block copolymer characterization
PEGylation analysis (protein-PEG conjugates)
Detection of chemical heterogeneity
End-group analysis with UV labels
Interpretation:
Constant ratio: Uniform composition across MW
Increasing ratio with MW: More chromophore in higher MW species
Decreasing ratio with MW: Less chromophore in higher MW species
Note
Both UV and RI signals should be baseline-corrected and properly aligned
(using step_sec_detector_delay()) before calculating the ratio.
See also
Other sec-composition:
step_sec_composition()
Examples
if (FALSE) { # \dontrun{
library(recipes)
library(measure)
# Calculate UV/RI ratio for copolymer
rec <- recipe(~., data = sec_copolymer) |>
step_measure_input_long(ri_signal, location = vars(elution_time), col_name = "ri") |>
step_measure_input_long(uv_signal, location = vars(elution_time), col_name = "uv") |>
step_sec_detector_delay(reference = "ri", delay_volumes = c(uv = 0.05)) |>
step_sec_baseline() |>
step_sec_uv_ri_ratio(uv_col = "uv", ri_col = "ri") |>
prep()
} # }