calc_std_conc {beadplexr}  R Documentation 
Given a start concentration and dilution factor, the concentration of the given standard samples is calculated
calc_std_conc(.standard_sample, .start_concentration, .dilution_factor = 4L)
.standard_sample 
a vector giving the standard samples. The sample with
the highest value is given the start concentration, and a

.start_concentration 
a numeric vector giving the initial standard concentration. If longer than one the maximum value is taken as start concentration. 
.dilution_factor 
a numeric vector giving the dilution factor. If a
single element is passed, this is applied to all standard samples as a
dilution series. If more then one value is given, it must be of equal
length as the 
In the manuals to the LEGENDplex system, standard are labeled 0 to 8, where 8 indicate the highest concentration and 0 the background (no analyte). The standard is diluted at 1:4 so that
[s7] = [start] [s6] = [s7]/4 [s5] = [s6]/4 [s4] = [s5]/4 [s3] = [s4]/4 [s2] = [s3]/4 [s1] = [s2]/4 [s0] = 0
It might happen, that a dilution step is missing in which case the dilution is corrected to accommodate the missing step. However, since it is inspired guess work and out of the ordinary, a warning is thrown, see Examples.
A numeric vector
If the vector is numeric, the values are ordered numerically from high to low.
If the vector is not numeric, things become a little more difficult, because
sorting a vector like c("a", "c", "0", "b")
by default results in c("0", "a", "b", "c")
, which means that '0' is the highest value and will be
assigned the start concentration and the sample 'a' is then the first
dilution.
To avoid this problem, the vector is split into two: one containing numerical values and one containing alphabetical. Each vector is then sorted appropriately and combined, see Examples.
calc_std_conc(.standard_sample = c(7:0), .start_concentration = 5000) # Sample 5 is missing calc_std_conc(.standard_sample = c(7, 6, 4, 3, 2, 1, 0), .start_concentration = 5000) calc_std_conc(.standard_sample = rep(c(7:0), 2), .start_concentration = 5000) calc_std_conc(.standard_sample = c(9:0), .start_concentration = 5000) calc_std_conc(.standard_sample = c(letters[1:7], 0), .start_concentration = 5000) calc_std_conc(.standard_sample = c(letters[1:7], 0, 1), .start_concentration = 5000) calc_std_conc(.standard_sample = c(7:1, 0), .start_concentration = 5000, .dilution_factor = c(1, 2, 2, 2, 4, 6, 6, 0)) # If 0 exists it is always set to 0 calc_std_conc(.standard_sample = c(7:1, 0), .start_concentration = 5000, .dilution_factor = c(1, 2, 2, 2, 4, 6, 6, 100000)) calc_std_conc(.standard_sample = c(8:1), .start_concentration = 5000, .dilution_factor = c(1, 2, 2, 2, 4, 6, 6, 100000))