step_sec_protein() creates a specification of a recipe step that
provides a streamlined workflow for protein SEC analysis, combining
baseline correction, aggregate quantitation, and optionally oligomer
analysis in a single step.
Usage
step_sec_protein(
recipe,
measures = NULL,
type = c("native", "denaturing"),
monomer_mw = NULL,
monomer_start = NULL,
monomer_end = NULL,
extinction_coef = NULL,
aggregate_threshold = 0.001,
baseline_method = c("linear", "median", "spline"),
baseline_left_frac = 0.05,
baseline_right_frac = 0.05,
include_oligomer = NULL,
output_prefix = "protein_",
role = NA,
trained = FALSE,
skip = FALSE,
id = recipes::rand_id("sec_protein")
)Arguments
- recipe
A recipe object.
- measures
Character vector of measure columns to analyze. If
NULL, analyzes all measure columns.- type
Analysis type:
"native"(default): Native conditions (aqueous buffer, non-denaturing)"denaturing": Denaturing conditions (e.g., with SDS or guanidine)
- monomer_mw
Expected monomer molecular weight in Da. Required for oligomer analysis if
include_oligomer = TRUE.- monomer_start
Start of the monomer peak region (in location units). If
NULL, automatically determined.- monomer_end
End of the monomer peak region. If
NULL, automatically determined.- extinction_coef
Extinction coefficient for UV-based concentration. If
NULL, signal remains in raw units.- aggregate_threshold
Minimum fraction of signal to report as aggregate/fragment. Default is 0.001 (0.1%).
- baseline_method
Method for baseline correction. One of
"linear"(default),"median", or"spline".- baseline_left_frac
Fraction of chromatogram start for baseline. Default is 0.05.
- baseline_right_frac
Fraction of chromatogram end for baseline. Default is 0.05.
- include_oligomer
Logical. Include detailed oligomer analysis? Default is
TRUEifmonomer_mwis provided.- output_prefix
Prefix for output columns. Default is
"protein_".- 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.
Value
An updated recipe with new columns:
- protein_hmws_pct
Percent high molecular weight species
- protein_monomer_pct
Percent monomer
- protein_lmws_pct
Percent low molecular weight species
- protein_main_start
Start of main peak region
- protein_main_end
End of main peak region
If include_oligomer = TRUE and monomer_mw is provided:
- protein_monomer_oligo_pct
Percent monomer (from oligomer analysis)
- protein_dimer_pct
Percent dimer
- protein_trimer_pct
Percent trimer
- protein_hmw_oligo_pct
Percent HMW oligomers
- protein_lmw_oligo_pct
Percent fragments
- protein_species_count
Number of detected species
Details
This step provides a convenient "one-stop" workflow for protein SEC analysis, suitable for biopharmaceutical characterization. It combines:
Baseline correction: SEC-optimized linear or median baseline
Aggregate quantitation: HMWS/monomer/LMWS percentages
Oligomer analysis (optional): Detailed species identification
Native vs Denaturing:
Native: Preserves quaternary structure; use for oligomer analysis
Denaturing: Disrupts non-covalent interactions; use for covalent aggregate detection
Regulatory Context: Aggregate analysis is critical for biopharmaceutical characterization:
ICH Q6B requires aggregate content specification
USP <129> provides guidance on aggregate testing
Typical specifications: HMWS < 5%, Monomer > 95%
For More Control: For advanced analysis or custom workflows, use the individual steps:
step_sec_baseline()for baseline correctionstep_sec_uv()for UV signal processingstep_sec_aggregates()for HMWS/monomer/LMWSstep_sec_oligomer()for detailed species analysis
See also
step_sec_aggregates(), step_sec_oligomer()
Other sec-protein:
step_sec_aggregates(),
step_sec_oligomer()
Examples
if (FALSE) { # \dontrun{
library(recipes)
library(measure)
# Basic protein SEC workflow
rec <- recipe(~., data = mab_data) |>
step_measure_input_long(uv280, location = vars(time), col_name = "uv") |>
step_sec_protein(monomer_mw = 150000) |>
prep()
# Native mAb analysis with oligomer detection
rec <- recipe(~., data = mab_data) |>
step_measure_input_long(uv280, location = vars(time), col_name = "uv") |>
step_sec_protein(
type = "native",
monomer_mw = 150000,
extinction_coef = 1.4,
include_oligomer = TRUE
) |>
prep()
# Denaturing conditions (SDS-SEC)
rec <- recipe(~., data = sds_sec_data) |>
step_measure_input_long(uv280, location = vars(time), col_name = "uv") |>
step_sec_protein(type = "denaturing", monomer_mw = 150000) |>
prep()
} # }