reduce_to_nth_field() takes in a string or character vector of HLA alleles,
and reduces their resolution to the specified number of fields.
Arguments
- allele
A string or character vector with (an) HLA allele(s).
- n
An integer. Can technically be anything, but the function will normally only do something with integers between 1 and 3, as these are the only possible number of fields in the current nomenclature (4 fields is the maximum and therefore cannot be further reduced).
Value
A string or character vector of the same length as allele, with the
truncated alleles in each element. Alleles already at the desired level of
resolution will be returned unchanged.
Details
N.B. This does not do a "proper" reduction, but simply truncates the string
to the last field delimiter (":"). It does not take into account G or P
groups, nor null/alternatively expressed alleles. These cannot be simply
be reduced to a lower field, but reduce_to_nth_field() simply strips off
these suffixes and does it anyway.
Examples
reduce_to_nth_field("B*07:14:01", 2)
#> [1] "B*07:14"
# These won't do anything, as the resolution is equal to `n`:
reduce_to_nth_field("A2", 1)
#> [1] "A2"
reduce_to_nth_field("B*07:14:01", 3)
#> [1] "B*07:14:01"
allele_vec <- c("A*01:AABJE", "B*42:08", "C*01:02:01:26")
reduce_to_nth_field(allele_vec, 1)
#> [1] "A*01" "B*42" "C*01"
