Skip to content
Snippets Groups Projects

replaced extract_a(), extract_b() and calculate_lr() with one function calculate_lr()

Merged Jonathan Kitt requested to merge dev into master
9 files
+ 47
166
Compare changes
  • Side-by-side
  • Inline
Files
9
+ 41
14
#' Calculate lr values from signal A and signal B
#' Calculate lr values from summary file
#'
#' @param signal_a signal_a values
#' @param signal_b signal_b values
#' @param summary_file imported summary file (usually named 'summary')
#' @param format "wide" or "long" table (defaults to "long")
#'
#' @import dplyr
#' @import tidyr
@@ -11,25 +11,52 @@
#'
#' @examples
#' \dontrun{
#' calculate_lr(signal_a, signal_b)
#' calculate_lr(summary_file, format = "long")
#' }
calculate_lr <- function(signal_a, signal_b) {
calculate_lr <- function(summary_file, format = "long") {
# Set NULL variables
a <- b <- pivot_longer <- probeset_id <- NULL
# Transform to long format
# Extract A signal from summary file
message("Extracting A signal from summary file")
signal_a <- summary_file |>
dplyr::filter(!grepl(pattern = "NP", x = probeset_id)) |>
dplyr::filter(grepl("AX-[0-9]*-A", probeset_id)) |>
dplyr::mutate(probeset_id = stringr::str_remove(string = probeset_id, pattern = "-A")) |>
tidyr::pivot_longer(cols = -probeset_id,
names_to = "file_name",
values_to = "signal_a")
signal_a_lg <- signal_a %>%
tidyr::pivot_longer(!probeset_id, names_to = "file_name", values_to = "a")
signal_b_lg <- signal_b %>%
tidyr::pivot_longer(!probeset_id, names_to = "file_name", values_to = "b")
# Extract B signal from summary file
message("Extracting B signal from summary file")
signal_b <- summary_file |>
dplyr::filter(!grepl(pattern = "NP", x = probeset_id)) |>
dplyr::filter(grepl("AX-[0-9]*-B", probeset_id)) |>
dplyr::mutate(probeset_id = stringr::str_remove(string = probeset_id, pattern = "-B")) |>
tidyr::pivot_longer(cols = -probeset_id,
names_to = "file_name",
values_to = "signal_b")
# Calculate lr values
dplyr::left_join(signal_a_lg, signal_b_lg) %>%
dplyr::mutate(lr = log2(sqrt(a^2 + b^2))) %>%
dplyr::select(-c(a, b))
message("Calculating lr values")
lr <- signal_a |>
dplyr::left_join(signal_b) |>
dplyr::mutate(lr = log2(sqrt(signal_a^2 + signal_b^2)),
.keep = "unused")
# If format is set to "wide", transform the table
if (format == "wide") {
message("Pivoting output table to wide format")
lr <- lr |>
tidyr::pivot_wider(id_cols = probeset_id,
names_from = file_name,
values_from = lr)
}
# Assign to Global Environment
assign(x = "lr", value = lr, pos = ".GlobalEnv")
}
Loading