Nothing
#' Put GIA measurements into a dplyr format
#'
#' @param data data frame of GIA measurements
#' \describe{
#' \item{well}{one of "IRBC", "uRBC", "RPMI", or "comb"}
#' \item{dose_A}{dose of A in mg/mL}
#' \item{dose_B}{dose of B in mg/mL}
#' \item{exp(X)(Y)rep(Z)}{ where X = 1 or 2, Y = a or b, and Z = 1, 2, or 3}
#' }
#' @return long data frame with columns well, dose_A, dose_B, plate, exp_num (experiment number), plate (a or b), rep_num (repetition number), gia_mean, and average iRBC and uRBC
#' @export
#' @importFrom stats na.omit
#' @importFrom rlang .data
#' @examples
#' df <- loewesadditivity::rh5_ama1ron2
#' df$dose_A <- df$RH5
#' df$dose_B <- df$AMA1RON2
#' fortified_df <- fortify_gia_data(df)
#' head(fortified_df)
fortify_gia_data <- function(data){
gia_data <- data
if(!("well" %in% colnames(gia_data))){
gia_data$well <- "comb"
}
gia_long <- gia_data %>%
dplyr::select(.data$well, .data$dose_A, .data$dose_B,
dplyr::matches("exp.+rep.+")) %>%
tidyr::gather(key = "key", value = "gia_unscaled", -.data$well,
-.data$dose_A, -.data$dose_B) %>%
dplyr::mutate(id = gsub("exp|rep", "", .data$key)) %>%
dplyr::mutate(exp_num = substr(.data$id, 1, 1),
plate = substr(.data$id, 2, 2),
rep_num = substr(.data$id, 3, 3))
well_df <- gia_long %>% dplyr::group_by(.data$well) %>%
dplyr::summarize(mean = mean(.data$gia_unscaled, na.rm = TRUE))
## Scale by uRBC and iRBC
if(any(well_df$well == "uRBC")){
gia_long$uRBC <- well_df$mean[well_df$well == "uRBC"]
} else{
gia_long$uRBC <- 0
}
if(any(well_df$well == "iRBC")){
gia_long$iRBC <- well_df$mean[well_df$well == "iRBC"]
} else{
gia_long$iRBC <- 100
}
if(any(well_df$well == "RPMI")){
gia_long$RPMI <- well_df$mean[well_df$well == "RPMI"]
} else{
gia_long$RPMI <- 0
}
gia_mean <- gia_long %>%
dplyr::filter(.data$well %in% c("comb", "RPMI")) %>%
dplyr::group_by(.data$well, .data$dose_A, .data$dose_B,
.data$uRBC, .data$iRBC, .data$exp_num, .data$plate) %>%
dplyr::summarize(B = mean(.data$gia_unscaled, na.rm = TRUE)) %>%
dplyr::mutate(GIA = 100 * (1 - ((.data$B - .data$uRBC)/(.data$iRBC - .data$uRBC)))) %>%
dplyr::mutate(GIA = ifelse(is.nan(.data$GIA), NA, .data$GIA)) %>%
dplyr::select(-.data$B) %>% na.omit()
return(gia_mean)
}
#' Pipe operator
#'
#' See \code{magrittr::\link[magrittr:pipe]{\%>\%}} for details.
#'
#' @name %>%
#' @rdname pipe
#' @keywords internal
#' @export
#' @importFrom magrittr %>%
#' @usage lhs \%>\% rhs
NULL
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.