if (FALSE) {
# Minimal core implementation (must accept `idata`)
airr_stats_lengths_impl <- function(idata, seq_col = "cdr3_aa") {
dplyr::as_tibble(idata$annotations) |>
dplyr::distinct(.data[[immundata::imd_schema("repertoire")]], .data[[seq_col]]) |>
dplyr::mutate(seq_len = nchar(.data[[seq_col]])) |>
dplyr::count(.data[[immundata::imd_schema("repertoire")]], seq_len, name = "n")
}
# Register and expose a user-facing function
airr_stats_lengths <- register_immunarch_method(
core = airr_stats_lengths_impl,
family = "airr_stats",
name = "lengths",
required_cols = c("cdr3_aa", immundata::imd_schema("repertoire"))
)
# Optional: call via dispatcher
# make_airr_dispatcher("airr_stats")(idata = immdata, method = "lengths")
}
Run the code above in your browser using DataLab