From 533c6625a7990ddd8157b0e519c444bd0f052841 Mon Sep 17 00:00:00 2001 From: xuewei cao <36172337+xueweic@users.noreply.github.com> Date: Tue, 22 Apr 2025 13:40:09 -0400 Subject: [PATCH 1/6] change --- NAMESPACE | 2 + R/colocboost.R | 9 +- R/colocboost_output.R | 254 ++++++++++++++++++++++++- R/data.R | 20 ++ _pkgdown.yml | 2 +- data/Ambiguous_Colocalization.rda | Bin 0 -> 496648 bytes man/Ambiguous_Colocalization.Rd | 38 ++++ man/Heterogeneous_Effect.Rd | 1 + man/Ind_5traits.Rd | 1 + man/Non_Causal_Strongest_Marginal.Rd | 1 + man/Sumstat_5traits.Rd | 1 + man/Weaker_GWAS_Effect.Rd | 1 + man/colocboost.Rd | 5 +- man/get_ambiguous_colocalization.Rd | 48 +++++ man/get_colocboost_summary.Rd | 101 ++++++++++ man/get_cos_summary.Rd | 2 + man/get_robust_colocalization.Rd | 3 + man/get_ucos_summary.Rd | 2 + vignettes/Ambiguous_Colocalization.Rmd | 69 +++++++ vignettes/ColocBoost_Diagnostics.Rmd | 49 ----- 20 files changed, 552 insertions(+), 57 deletions(-) create mode 100644 data/Ambiguous_Colocalization.rda create mode 100644 man/Ambiguous_Colocalization.Rd create mode 100644 man/get_ambiguous_colocalization.Rd create mode 100644 man/get_colocboost_summary.Rd create mode 100644 vignettes/Ambiguous_Colocalization.Rmd delete mode 100644 vignettes/ColocBoost_Diagnostics.Rmd diff --git a/NAMESPACE b/NAMESPACE index 4650e0f..ae0fd67 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -2,6 +2,8 @@ export(colocboost) export(colocboost_plot) +export(get_ambiguous_colocalization) +export(get_colocboost_summary) export(get_cormat) export(get_cos) export(get_cos_purity) diff --git a/R/colocboost.R b/R/colocboost.R index dcc1802..25fc181 100644 --- a/R/colocboost.R +++ b/R/colocboost.R @@ -85,8 +85,9 @@ #' @param check_null_max The smallest value of change of profile loglikelihood for each outcome. #' @param weaker_effect If \code{weaker_effect = TRUE}, consider the weaker single effect due to coupling effects #' @param LD_free When \code{LD_free = FALSE}, objective function doesn't include LD information. -#' @param output_level When \code{output_level = 2}, return the ucos details for the single specific effects. -#' When \code{output_level = 3}, return the entire Colocboost model to diagnostic results (more space). +#' @param output_level When \code{output_level = 1}, return basic cos details for colocalization results +#' When \code{output_level = 2}, return the ucos details for the single specific effects. +#' When \code{output_level = 3}, return the entire Colocboost model to diagnostic results (more space). #' #' @return A \code{"colocboost"} object with some or all of the following elements: #' @@ -95,7 +96,9 @@ #' \item{cos_details}{A object with all information for colocalization results.} #' \item{data_info}{A object with detailed information from input data} #' \item{model_info}{A object with detailed information for colocboost model} -#' +#' \item{ucos_details}{A object with all information for trait-specific effects when \code{output_level = 2}.} +#' \item{diagnositci_details}{A object with diagnostic details for ColocBoost model when \code{output_level = 3}.} +#' #' @examples #' # colocboost example #' set.seed(1) diff --git a/R/colocboost_output.R b/R/colocboost_output.R index b7a0265..89eb560 100644 --- a/R/colocboost_output.R +++ b/R/colocboost_output.R @@ -1,3 +1,109 @@ +#' @rdname get_colocboost_summary +#' +#' @title Get summary tables from a ColocBoost output. +#' +#' @description `get_colocboost_summary` get colocalization and trait-specific summary table +#' with or without the outcomes of interest. +#' +#' @param cb_output Output object from `colocboost` analysis +#' @param outcome_names Optional vector of names of outcomes, which has the same order as Y in the original analysis. +#' @param interest_outcome Optional vector specifying a subset of outcomes from \code{outcome_names} to focus on. When provided, only colocalization events that include at least one of these outcomes will be returned. +#' @param region_name Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses. +#' +#' @return A list of all summary tables for colocalization events and trait-specific associations if exists. +#' +#' \item{cos_summary}{A summary table for colocalization events with the following columns: +#' \itemize{ +#' \item{focal_outcome}{The focal outcome being analyzed if exists. Otherwise, it is \code{FALSE}.} +#' \item{colocalized_outcomes}{Colocalized outcomes for colocalization confidence set (CoS)} +#' \item{cos_id}{Unique identifier for colocalization confidence set (CoS)} +#' \item{purity}{Minimum absolute correlation of variables with in colocalization confidence set (CoS)} +#' \item{top_variable}{The variable with highest variant colocalization probability (VCP)} +#' \item{top_variable_vcp}{Variant colocalization probability for the top variable} +#' \item{cos_npc}{Normalized probability of colocalization} +#' \item{min_npc_outcome}{Minimum normalized probability of colocalized traits} +#' \item{n_variables}{Number of variables in colocalization confidence set (CoS)} +#' \item{colocalized_index}{Indices of colocalized variables} +#' \item{colocalized_variables}{List of colocalized variables} +#' \item{colocalized_variables_vcp}{Variant colocalization probabilities for all colocalized variables} +#' } +#' } +#' +#' \item{ambigouse_cos_summary}{Colocalized outcomes for colocalization confidence set (CoS) } +#' +#' \item{ucos_summary}{A summary table for trait-specific, uncolocalized associations with the following columns: +#' \itemize{ +#' \item{outcomes}{Outcome being analyzed} +#' \item{ucos_id}{Unique identifier for trait-specific confidence sets} +#' \item{purity}{Minimum absolute correlation of variables within trait-specific confidence sets} +#' \item{top_variable}{The variable with highest variant-level probability of association (VPA)} +#' \item{top_variable_vpa}{Variant-level probability of association (VPA) for the top variable} +#' \item{ucos_npc}{Normalized probability of causal association for the trait-specific confidence set} +#' \item{n_variables}{Number of variables in trait-specific confidence set} +#' \item{ucos_index}{Indices of variables in the trait-specific confidence set} +#' \item{ucos_variables}{List of variables in the trait-specific confidence set} +#' \item{ucos_variables_vpa}{Variant-level probability of association (VPA) for all variables in the confidence set} +#' \item{region_name}{Region name if provided through the region_name parameter} +#' } +#' } +#' +#' @examples +#' # colocboost example +#' set.seed(1) +#' N <- 1000 +#' P <- 100 +#' # Generate X with LD structure +#' sigma <- 0.9^abs(outer(1:P, 1:P, "-")) +#' X <- MASS::mvrnorm(N, rep(0, P), sigma) +#' colnames(X) <- paste0("SNP", 1:P) +#' L <- 3 +#' true_beta <- matrix(0, P, L) +#' true_beta[10, 1] <- 0.5 # SNP10 affects trait 1 +#' true_beta[10, 2] <- 0.4 # SNP10 also affects trait 2 (colocalized) +#' true_beta[50, 2] <- 0.3 # SNP50 only affects trait 2 +#' true_beta[80, 3] <- 0.6 # SNP80 only affects trait 3 +#' Y <- matrix(0, N, L) +#' for (l in 1:L) { +#' Y[, l] <- X %*% true_beta[, l] + rnorm(N, 0, 1) +#' } +#' res <- colocboost(X = X, Y = Y) +#' get_cos_summary(res) +#' +#' @source See detailed instructions in our tutorial portal: +#' \url{https://statfungen.github.io/colocboost/articles/Interpret_ColocBoost_Output.html} +#' +#' @family colocboost_inference +#' @export +#' +get_colocboost_summary <- function(cb_output, + outcome_names = NULL, + interest_outcome = NULL, + region_name = NULL, + min_abs_corr = 0.5, + median_cos_abs_corr = 0.8){ + + if (!inherits(cb_output, "colocboost")) { + stop("Input must from colocboost output!") + } + cos_summary <- get_cos_summary(cb_output, outcome_names, interest_outcome, region_name) + + if ("ucos_detais" %in% names(cb_output)) { + ucos_summary <- get_ucos_summary(cb_output, outcome_names, region_name) + + } else { + ucos_summary <- NULL + } + + summary_tables <- list( + cos_summary = cos_summary, + ucos_summary = NULL, + ambigouse_cos_summary = NULL + ) + +} + + + #' @rdname get_cos_summary #' #' @title Get colocalization summary table from a ColocBoost output. @@ -152,6 +258,7 @@ get_cos_summary <- function(cb_output, #' \item{cos_details}{A object with all information for colocalization results.} #' \item{data_info}{A object with detailed information from input data} #' \item{model_info}{A object with detailed information for colocboost model} +#' \item{ucos_from_cos}{A object with information for trait-specific effects if exists after removing weaker signals.} #' #' @examples #' # colocboost example @@ -621,6 +728,147 @@ get_in_cos <- function(weights, coverage = 0.95) { } +#' @rdname get_ambiguous_colocalization +#' +#' @title Get ambiguous colocalization events from trait-specific (uncolocalized) effects. +#' +#' @description `get_ambiguous_colocalization` get the colocalization by discarding the weaker colocalization events or colocalized outcomes +#' +#' @param cb_output Output object from `colocboost` analysis +#' @param min_abs_corr_between_ucos Minimum absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.5. +#' @param median_abs_corr_between_ucos Median absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.8. +#' @param tol A small, non-negative number specifying the convergence tolerance for checking the overlap of the variables in different sets. +#' +#' @return A \code{"colocboost"} object of colocboost output with additional elements: +#' \item{ambiguous_ucos}{If exists, a list of ambiguous trait-specific (uncolocalized) effects.} +#' +#' @examples +#' data(Ambiguous_Colocalization) +#' test_colocboost_results <- Ambiguous_Colocalization$ColocBoost_Results +#' res <- get_ambiguous_colocalization(test_colocboost_results) +#' names(res$ambigous_ucos) +#' +#' @source See detailed instructions in our tutorial portal: +#' \url{https://statfungen.github.io/colocboost/articles/Interpret_ColocBoost_Output.html} +#' +#' @family colocboost_inference +#' @export +get_ambiguous_colocalization <- function(cb_output, + min_abs_corr_between_ucos = 0.5, + median_abs_corr_between_ucos = 0.8, + tol = 1e-9) { + + if (!inherits(cb_output, "colocboost")) { + stop("Input must from colocboost output!") + } + + if (!("ucos_details" %in% names(cb_output))) { + warning( + "Since you want to extract ambiguous colocalization from trait-specific (uncolocalized) sets,", + " but there is no output of ucos_details from colocboost.\n", + " Please run colocboost model with output_level=2!", + ) + return(cb_output) + } + + if (is.null(cb_output$ucos_details)){ + message("No trait-specific (uncolocalized) effects in this region!") + return(cb_output) + } + + ucos_details <- cb_output$ucos_details + nucos <- length(ucos_details$ucos$ucos_index) + if (nucos == 1){ + message("Only one trait-specific (uncolocalized) effect in this region!") + return(cb_output) + } + + # Function to merge ambiguous ucos + merge_sets <- function(vec) { + split_lists <- lapply(vec, function(x) as.numeric(unlist(strsplit(x, ";")))) + result <- list() + while (length(split_lists) > 0) { + current <- split_lists[[1]] + split_lists <- split_lists[-1] + repeat { + overlap_index <- NULL + for (i in seq_along(split_lists)) { + if (length(intersect(current, split_lists[[i]])) > 0) { + overlap_index <- i + break + } + } + if (!is.null(overlap_index)) { + current <- union(current, split_lists[[overlap_index]]) + split_lists <- split_lists[-overlap_index] + } else { + break + } + } + result <- c(result, list(paste(sort(current), collapse = ";"))) + } + return(result) + } + + + purity <- ucos_details$ucos_purity + min_abs_cor <- purity$min_abs_cor + median_abs_cor <- purity$median_abs_cor + max_abs_cor <- purity$max_abs_cor + is_ambiguous <- (min_abs_cor > min_abs_corr_between_ucos) * + (abs(max_abs_cor - 1) < tol) * + (median_abs_cor > median_abs_corr_between_ucos) + diag(is_ambiguous) <- 0 # no need to check within ucos + + if (sum(is.between) == 0){ + message("No ambiguous colocalization events!") + return(cb_output) + } else { + message("There exists the ambiguous colocalization events from trait-specific effects. Extracting!") + } + + temp <- sapply(1:nrow(is_ambiguous), function(x) { + tt <- c(x, which(is_ambiguous[x, ] != 0)) + return(paste0(sort(tt), collapse = ";")) + }) + temp <- merge_sets(temp) + potential_merged <- lapply(temp, function(x) as.numeric(unlist(strsplit(x, ";")))) + potential_merged <- potential_merged[which(sapply(potential_merged, length) >= 2)] + + ambigous_events <- list() + ambigouse_ucos_names <- c() + for (i in 1:length(potential_merged)) { + idx <- potential_merged[[i]] + test_outcome <- unique(unlist(ucos_details$ucos_outcomes$outcome_index[idx])) + if (length(test_outcome) == 1) next + ambigouse_ucos_names[i] <- paste0(names(ucos_details$ucos$ucos_index)[idx], collapse = ";") + tmp <- list( + ambigouse_ucos = list( + ucos_index = ucos_details$ucos$ucos_index[idx], + ucos_variables = ucos_details$ucos$ucos_variables[idx] + ), + ambigouse_ucos_outcomes = list( + outcome_idx = ucos_details$ucos_outcomes$outcome_index[idx], + outcome_name = ucos_details$ucos_outcomes$outcome_name[idx] + ), + ambigous_ucos_weight = ucos_details$ucos_weight[idx], + ambigous_ucos_puriry = list( + min_abs_cor = min_abs_cor[idx, idx], + median_abs_cor = median_abs_cor[idx, idx], + max_abs_cor = max_abs_cor[idx, idx] + ) + ) + ambigous_events[[i]] <- tmp + } + names(ambigous_events) <- ambigouse_ucos_names + message(paste("There are", length(ambigous_events), "ambiguous trait-specific effects.")) + + cb_output$ambigous_ucos <- ambigous_events + return(cb_output) + +} + + #' Calculate purity within and in-between CoS #' #' @description Calculate purity statistics between all pairs of colocalization confidence sets (CoS) @@ -879,7 +1127,7 @@ get_cos_details <- function(cb_obj, coloc_out, data_info = NULL) { cset2 <- coloc_csets$cos_index[[j]] y.i <- coloc_outcomes$outcome_index[[i]] y.j <- coloc_outcomes$outcome_index[[j]] - yy <- unique(y.i, y.j) + yy <- unique(c(y.i, y.j)) res <- list() flag <- 1 for (ii in yy) { @@ -1133,7 +1381,7 @@ get_full_output <- function(cb_obj, past_out = NULL, variables = NULL, cb_output cset2 <- specific_css$ucos_index[[j]] y.i <- specific_outcomes$outcome_index[[i]] y.j <- specific_outcomes$outcome_index[[j]] - yy <- unique(y.i, y.j) + yy <- unique(c(y.i, y.j)) res <- list() flag <- 1 for (ii in yy) { @@ -1173,7 +1421,7 @@ get_full_output <- function(cb_obj, past_out = NULL, variables = NULL, cb_output cset2 <- specific_css$ucos_index[[j]] y.i <- cb_output$cos_details$cos_outcomes$outcome_index[[i]] y.j <- specific_outcomes$outcome_index[[j]] - yy <- unique(y.i, y.j) + yy <- unique(c(y.i, y.j)) res <- list() flag <- 1 for (ii in yy) { diff --git a/R/data.R b/R/data.R index 8be1ab2..32950da 100644 --- a/R/data.R +++ b/R/data.R @@ -90,3 +90,23 @@ #' #' @family colocboost_data "Non_Causal_Strongest_Marginal" + + + +#' A real data example includes an ambiguous colocalization between eQTL and GWAS +#' +#' An example result from one of our real data applications, which shows an ambiguous colocalization between eQTL and GWAS. +#' +#' @format ## `Ambiguous_Colocalization` +#' A list with 2 elements +#' \describe{ +#' \item{ColocBoost_Results}{A `colocboost` output objective} +#' \item{SuSiE_Results}{Two `susie` output objective for eQTL and GWAS} +#' } +#' @source The Ambiguous_Colocalization dataset contains a real data example from one of our real data applications, +#' which shows an ambiguous colocalization between eQTL and GWAS. +#' The dataset is specifically designed for evaluating and demonstrating the capabilities of ColocBoost in real data applications. +#' See details in tutorial vignette \url{https://statfungen.github.io/colocboost/articles/index.html}. +#' +#' @family colocboost_data +"Ambiguous_Colocalization" diff --git a/_pkgdown.yml b/_pkgdown.yml index 5354be6..738478d 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -38,6 +38,7 @@ articles: - Partial_Overlap_Variants - ColocBoost_Wrapper_Pipeline - LD_Free_Colocalization + - Ambiguous_Colocalization - FineBoost_Special_Case - title: internal @@ -45,7 +46,6 @@ articles: - announcements - installation - Pairwise_Colocalization - - ColocBoost_Diagnostics reference: - title: "Example Data" diff --git a/data/Ambiguous_Colocalization.rda b/data/Ambiguous_Colocalization.rda new file mode 100644 index 0000000000000000000000000000000000000000..0063776316eafbdb6c0260f669f02d6f1783c4d2 GIT binary patch literal 496648 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 z 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 m75CCoyniNF-;UTG!L&hrocj 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 N?35+f=()-8(tSojqeV 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

en(LOfTg4uKo_}WE9 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 literal 0 HcmV?d00001 diff --git a/man/Ambiguous_Colocalization.Rd b/man/Ambiguous_Colocalization.Rd new file mode 100644 index 0000000..28dbccc --- /dev/null +++ b/man/Ambiguous_Colocalization.Rd @@ -0,0 +1,38 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{Ambiguous_Colocalization} +\alias{Ambiguous_Colocalization} +\title{A real data example includes an ambiguous colocalization between eQTL and GWAS} +\format{ +\subsection{\code{Ambiguous_Colocalization}}{ + +A list with 2 elements +\describe{ +\item{ColocBoost_Results}{A \code{colocboost} output objective} +\item{SuSiE_Results}{Two \code{susie} output objective for eQTL and GWAS} +} +} +} +\source{ +The Ambiguous_Colocalization dataset contains a real data example from one of our real data applications, +which shows an ambiguous colocalization between eQTL and GWAS. +The dataset is specifically designed for evaluating and demonstrating the capabilities of ColocBoost in real data applications. +See details in tutorial vignette \url{https://statfungen.github.io/colocboost/articles/index.html}. +} +\usage{ +Ambiguous_Colocalization +} +\description{ +An example result from one of our real data applications, which shows an ambiguous colocalization between eQTL and GWAS. +} +\seealso{ +Other colocboost_data: +\code{\link{Heterogeneous_Effect}}, +\code{\link{Ind_5traits}}, +\code{\link{Non_Causal_Strongest_Marginal}}, +\code{\link{Sumstat_5traits}}, +\code{\link{Weaker_GWAS_Effect}} +} +\concept{colocboost_data} +\keyword{datasets} diff --git a/man/Heterogeneous_Effect.Rd b/man/Heterogeneous_Effect.Rd index d4b7d29..4708a7c 100644 --- a/man/Heterogeneous_Effect.Rd +++ b/man/Heterogeneous_Effect.Rd @@ -28,6 +28,7 @@ An example dataset with simulated genotypes and traits for 2 traits and 2 common } \seealso{ Other colocboost_data: +\code{\link{Ambiguous_Colocalization}}, \code{\link{Ind_5traits}}, \code{\link{Non_Causal_Strongest_Marginal}}, \code{\link{Sumstat_5traits}}, diff --git a/man/Ind_5traits.Rd b/man/Ind_5traits.Rd index a1cc697..6347f4a 100644 --- a/man/Ind_5traits.Rd +++ b/man/Ind_5traits.Rd @@ -28,6 +28,7 @@ An example dataset with simulated genotypes and traits for 5 traits } \seealso{ Other colocboost_data: +\code{\link{Ambiguous_Colocalization}}, \code{\link{Heterogeneous_Effect}}, \code{\link{Non_Causal_Strongest_Marginal}}, \code{\link{Sumstat_5traits}}, diff --git a/man/Non_Causal_Strongest_Marginal.Rd b/man/Non_Causal_Strongest_Marginal.Rd index 7ecffa9..8fba152 100644 --- a/man/Non_Causal_Strongest_Marginal.Rd +++ b/man/Non_Causal_Strongest_Marginal.Rd @@ -28,6 +28,7 @@ An example dataset with simulated genotypes and traits for 2 traits and 2 common } \seealso{ Other colocboost_data: +\code{\link{Ambiguous_Colocalization}}, \code{\link{Heterogeneous_Effect}}, \code{\link{Ind_5traits}}, \code{\link{Sumstat_5traits}}, diff --git a/man/Sumstat_5traits.Rd b/man/Sumstat_5traits.Rd index bdf8ee5..c024bc9 100644 --- a/man/Sumstat_5traits.Rd +++ b/man/Sumstat_5traits.Rd @@ -28,6 +28,7 @@ An example dataset with simulated statistics for 5 traits } \seealso{ Other colocboost_data: +\code{\link{Ambiguous_Colocalization}}, \code{\link{Heterogeneous_Effect}}, \code{\link{Ind_5traits}}, \code{\link{Non_Causal_Strongest_Marginal}}, diff --git a/man/Weaker_GWAS_Effect.Rd b/man/Weaker_GWAS_Effect.Rd index 5819ada..14db5a3 100644 --- a/man/Weaker_GWAS_Effect.Rd +++ b/man/Weaker_GWAS_Effect.Rd @@ -28,6 +28,7 @@ An example dataset with simulated genotypes and traits for 2 traits and 2 common } \seealso{ Other colocboost_data: +\code{\link{Ambiguous_Colocalization}}, \code{\link{Heterogeneous_Effect}}, \code{\link{Ind_5traits}}, \code{\link{Non_Causal_Strongest_Marginal}}, diff --git a/man/colocboost.Rd b/man/colocboost.Rd index 6b71d2f..5cfbacc 100644 --- a/man/colocboost.Rd +++ b/man/colocboost.Rd @@ -188,7 +188,8 @@ to merge colocalized sets, which may resulting in a huge set.} \item{LD_free}{When \code{LD_free = FALSE}, objective function doesn't include LD information.} -\item{output_level}{When \code{output_level = 2}, return the ucos details for the single specific effects. +\item{output_level}{When \code{output_level = 1}, return basic cos details for colocalization results +When \code{output_level = 2}, return the ucos details for the single specific effects. When \code{output_level = 3}, return the entire Colocboost model to diagnostic results (more space).} } \value{ @@ -199,6 +200,8 @@ A \code{"colocboost"} object with some or all of the following elements: \item{cos_details}{A object with all information for colocalization results.} \item{data_info}{A object with detailed information from input data} \item{model_info}{A object with detailed information for colocboost model} +\item{ucos_details}{A object with all information for trait-specific effects when \code{output_level = 2}.} +\item{diagnositci_details}{A object with diagnostic details for ColocBoost model when \code{output_level = 3}.} } \description{ \code{colocboost} implements a proximity adaptive smoothing gradient boosting approach for multi-trait colocalization at gene loci, diff --git a/man/get_ambiguous_colocalization.Rd b/man/get_ambiguous_colocalization.Rd new file mode 100644 index 0000000..72ca201 --- /dev/null +++ b/man/get_ambiguous_colocalization.Rd @@ -0,0 +1,48 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/colocboost_output.R +\name{get_ambiguous_colocalization} +\alias{get_ambiguous_colocalization} +\title{Get ambiguous colocalization events from trait-specific (uncolocalized) effects.} +\source{ +See detailed instructions in our tutorial portal: +\url{https://statfungen.github.io/colocboost/articles/Interpret_ColocBoost_Output.html} +} +\usage{ +get_ambiguous_colocalization( + cb_output, + min_abs_corr_between_ucos = 0.5, + median_abs_corr_between_ucos = 0.8, + tol = 1e-09 +) +} +\arguments{ +\item{cb_output}{Output object from \code{colocboost} analysis} + +\item{min_abs_corr_between_ucos}{Minimum absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.5.} + +\item{median_abs_corr_between_ucos}{Median absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.8.} + +\item{tol}{A small, non-negative number specifying the convergence tolerance for checking the overlap of the variables in different sets.} +} +\value{ +A \code{"colocboost"} object of colocboost output with additional elements: +\item{ambiguous_ucos}{If exists, a list of ambiguous trait-specific (uncolocalized) effects.} +} +\description{ +\code{get_ambiguous_colocalization} get the colocalization by discarding the weaker colocalization events or colocalized outcomes +} +\examples{ +data(Ambiguous_Colocalization) +test_colocboost_results <- Ambiguous_Colocalization$ColocBoost_Results +res <- get_ambiguous_colocalization(test_colocboost_results) +names(res$ambigous_ucos) + +} +\seealso{ +Other colocboost_inference: +\code{\link{get_colocboost_summary}()}, +\code{\link{get_cos_summary}()}, +\code{\link{get_robust_colocalization}()}, +\code{\link{get_ucos_summary}()} +} +\concept{colocboost_inference} diff --git a/man/get_colocboost_summary.Rd b/man/get_colocboost_summary.Rd new file mode 100644 index 0000000..836a435 --- /dev/null +++ b/man/get_colocboost_summary.Rd @@ -0,0 +1,101 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/colocboost_output.R +\name{get_colocboost_summary} +\alias{get_colocboost_summary} +\title{Get summary tables from a ColocBoost output.} +\source{ +See detailed instructions in our tutorial portal: +\url{https://statfungen.github.io/colocboost/articles/Interpret_ColocBoost_Output.html} +} +\usage{ +get_colocboost_summary( + cb_output, + outcome_names = NULL, + interest_outcome = NULL, + region_name = NULL, + min_abs_corr = 0.5, + median_cos_abs_corr = 0.8 +) +} +\arguments{ +\item{cb_output}{Output object from \code{colocboost} analysis} + +\item{outcome_names}{Optional vector of names of outcomes, which has the same order as Y in the original analysis.} + +\item{interest_outcome}{Optional vector specifying a subset of outcomes from \code{outcome_names} to focus on. When provided, only colocalization events that include at least one of these outcomes will be returned.} + +\item{region_name}{Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses.} +} +\value{ +A list of all summary tables for colocalization events and trait-specific associations if exists. + +\item{cos_summary}{A summary table for colocalization events with the following columns: +\itemize{ +\item{focal_outcome}{The focal outcome being analyzed if exists. Otherwise, it is \code{FALSE}.} +\item{colocalized_outcomes}{Colocalized outcomes for colocalization confidence set (CoS)} +\item{cos_id}{Unique identifier for colocalization confidence set (CoS)} +\item{purity}{Minimum absolute correlation of variables with in colocalization confidence set (CoS)} +\item{top_variable}{The variable with highest variant colocalization probability (VCP)} +\item{top_variable_vcp}{Variant colocalization probability for the top variable} +\item{cos_npc}{Normalized probability of colocalization} +\item{min_npc_outcome}{Minimum normalized probability of colocalized traits} +\item{n_variables}{Number of variables in colocalization confidence set (CoS)} +\item{colocalized_index}{Indices of colocalized variables} +\item{colocalized_variables}{List of colocalized variables} +\item{colocalized_variables_vcp}{Variant colocalization probabilities for all colocalized variables} +} +} + +\item{ambigouse_cos_summary}{Colocalized outcomes for colocalization confidence set (CoS) } + +\item{ucos_summary}{A summary table for trait-specific, uncolocalized associations with the following columns: +\itemize{ +\item{outcomes}{Outcome being analyzed} +\item{ucos_id}{Unique identifier for trait-specific confidence sets} +\item{purity}{Minimum absolute correlation of variables within trait-specific confidence sets} +\item{top_variable}{The variable with highest variant-level probability of association (VPA)} +\item{top_variable_vpa}{Variant-level probability of association (VPA) for the top variable} +\item{ucos_npc}{Normalized probability of causal association for the trait-specific confidence set} +\item{n_variables}{Number of variables in trait-specific confidence set} +\item{ucos_index}{Indices of variables in the trait-specific confidence set} +\item{ucos_variables}{List of variables in the trait-specific confidence set} +\item{ucos_variables_vpa}{Variant-level probability of association (VPA) for all variables in the confidence set} +\item{region_name}{Region name if provided through the region_name parameter} +} +} +} +\description{ +\code{get_colocboost_summary} get colocalization and trait-specific summary table +with or without the outcomes of interest. +} +\examples{ +# colocboost example +set.seed(1) +N <- 1000 +P <- 100 +# Generate X with LD structure +sigma <- 0.9^abs(outer(1:P, 1:P, "-")) +X <- MASS::mvrnorm(N, rep(0, P), sigma) +colnames(X) <- paste0("SNP", 1:P) +L <- 3 +true_beta <- matrix(0, P, L) +true_beta[10, 1] <- 0.5 # SNP10 affects trait 1 +true_beta[10, 2] <- 0.4 # SNP10 also affects trait 2 (colocalized) +true_beta[50, 2] <- 0.3 # SNP50 only affects trait 2 +true_beta[80, 3] <- 0.6 # SNP80 only affects trait 3 +Y <- matrix(0, N, L) +for (l in 1:L) { + Y[, l] <- X \%*\% true_beta[, l] + rnorm(N, 0, 1) +} +res <- colocboost(X = X, Y = Y) +get_cos_summary(res) + +} +\seealso{ +Other colocboost_inference: +\code{\link{get_ambiguous_colocalization}()}, +\code{\link{get_cos_summary}()}, +\code{\link{get_robust_colocalization}()}, +\code{\link{get_ucos_summary}()} +} +\concept{colocboost_inference} diff --git a/man/get_cos_summary.Rd b/man/get_cos_summary.Rd index c6af013..52ed605 100644 --- a/man/get_cos_summary.Rd +++ b/man/get_cos_summary.Rd @@ -67,6 +67,8 @@ get_cos_summary(res) } \seealso{ Other colocboost_inference: +\code{\link{get_ambiguous_colocalization}()}, +\code{\link{get_colocboost_summary}()}, \code{\link{get_robust_colocalization}()}, \code{\link{get_ucos_summary}()} } diff --git a/man/get_robust_colocalization.Rd b/man/get_robust_colocalization.Rd index caa0193..1e805b5 100644 --- a/man/get_robust_colocalization.Rd +++ b/man/get_robust_colocalization.Rd @@ -38,6 +38,7 @@ A \code{"colocboost"} object with some or all of the following elements: \item{cos_details}{A object with all information for colocalization results.} \item{data_info}{A object with detailed information from input data} \item{model_info}{A object with detailed information for colocboost model} +\item{ucos_from_cos}{A object with information for trait-specific effects if exists after removing weaker signals.} } \description{ \code{get_robust_colocalization} get the colocalization by discarding the weaker colocalization events or colocalized outcomes @@ -69,6 +70,8 @@ filter_res$cos_details$cos$cos_index } \seealso{ Other colocboost_inference: +\code{\link{get_ambiguous_colocalization}()}, +\code{\link{get_colocboost_summary}()}, \code{\link{get_cos_summary}()}, \code{\link{get_ucos_summary}()} } diff --git a/man/get_ucos_summary.Rd b/man/get_ucos_summary.Rd index 4aaaa5c..e2349f0 100644 --- a/man/get_ucos_summary.Rd +++ b/man/get_ucos_summary.Rd @@ -57,6 +57,8 @@ get_ucos_summary(res) } \seealso{ Other colocboost_inference: +\code{\link{get_ambiguous_colocalization}()}, +\code{\link{get_colocboost_summary}()}, \code{\link{get_cos_summary}()}, \code{\link{get_robust_colocalization}()} } diff --git a/vignettes/Ambiguous_Colocalization.Rmd b/vignettes/Ambiguous_Colocalization.Rmd new file mode 100644 index 0000000..c434e78 --- /dev/null +++ b/vignettes/Ambiguous_Colocalization.Rmd @@ -0,0 +1,69 @@ +--- +title: "Ambiguous Colocalization from Trait-Specific Effects" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Ambiguous Colocalization from Trait-Specific Effects} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + + +This vignette demonstrates an example of ambiguous colocalization from trait-specific effects using the `colocboost` package. +Specifically, we will use the `Ambiguous_Colocalization`, which is an example result from one of our real data applications, +showing an ambiguous colocalization between eQTL and GWAS. + + +```{r setup} +library(colocboost) +# Run colocboost with diagnostic details +data(Ambiguous_Colocalization) +names(Ambiguous_Colocalization) +``` + +# 1. ColocBoost results + + +```{r colocboost-results} +# Trait-specific effects for both eQTL and GWAS +Ambiguous_Colocalization$ColocBoost_Results$ucos_details$ucos$ucos_index + +# Intersection of eQTL and GWAS variants +Reduce(intersect, Ambiguous_Colocalization$ColocBoost_Results$ucos_details$ucos$ucos_index) + +# With-in and between purity +Ambiguous_Colocalization$ColocBoost_Results$ucos_details$ucos_purity +``` + +```{r colocboost-plot} +colocboost_plot( + Ambiguous_Colocalization$ColocBoost_Results, + plot_cols = 1, + plot_ucos = TRUE, + show_cos_to_uncoloc = TRUE +) +``` + + +# 2. Fine-mapping results from SuSiE + +```{r susie-results} +susie_eQTL <- Ambiguous_Colocalization$SuSiE_Results$SuSiE_eQTL +susie_GWAS <- Ambiguous_Colocalization$SuSiE_Results$SuSiE_GWAS + +# Fine-mapped eQTL +susie_eQTL$sets$cs$L1 + +# Fine-mapped GWAS variants +susie_GWAS$sets$cs$L1 + +# Intersection of fine-mapped eQTL and GWAS variants +intersect(susie_eQTL$sets$cs$L1, susie_GWAS$sets$cs$L1) +``` + diff --git a/vignettes/ColocBoost_Diagnostics.Rmd b/vignettes/ColocBoost_Diagnostics.Rmd deleted file mode 100644 index 0344b32..0000000 --- a/vignettes/ColocBoost_Diagnostics.Rmd +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "Diagnostic for ColocBoost" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{Diagnostic for ColocBoost} - %\VignetteEngine{knitr::rmarkdown} - %\VignetteEncoding{UTF-8} ---- - -```{r, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>" -) -``` - - -This vignette demonstrates how to perform multi-trait colocalization analysis using diagnosic details in ColocBoost, -including model parameters, model fitting, and model performance metrics. There is `diagnostic_details` in ColocBoost output when setting `output_level = 3`: - - -```{r setup} -library(colocboost) -# Run colocboost with diagnostic details -data(Ind_5traits) -res <- colocboost(X = Ind_5traits$X, Y = Ind_5traits$Y, output_level = 3) -names(res) -``` - -# 1. Diagnostic details of the model parameters - -- **`cb_model_para`**: parameters used in fitting ColocBoost model. - - -```{r cb-model-para} -names(res$diagnostic_details$cb_model_para) -``` - - -# 2. Diagnostic details of the model fitting - -- **`cb_model`**: trait-specific proximity gradient boosting model, including proximity weight at each iteration, residual after gradient boosting, et al. -- **`weights_paths`**: individual trait-specific weights for each iteration. - -```{r cb-model} -names(res$diagnostic_details$cb_model) -names(res$diagnostic_details$cb_model$ind_outcome_1) -``` - From 1d15e96f1aafd100a7a4d45b9611867f2fd9d8ef Mon Sep 17 00:00:00 2001 From: xuewei cao <36172337+xueweic@users.noreply.github.com> Date: Tue, 22 Apr 2025 13:41:36 -0400 Subject: [PATCH 2/6] Update colocboost_utils.R --- R/colocboost_utils.R | 528 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 528 insertions(+) diff --git a/R/colocboost_utils.R b/R/colocboost_utils.R index c5571f6..702590e 100644 --- a/R/colocboost_utils.R +++ b/R/colocboost_utils.R @@ -504,3 +504,531 @@ get_merge_ordered_with_indices <- function(vector_list) { result } + + + +#' @title Set of internal functions to re-organize ColocBoost output format +#' +#' @description +#' The `colocboost_output_reorganization` functions access basic properties inferences from a fitted ColocBoost model. This documentation serves as a summary for all related post-inference functions. +#' +#' @details +#' The following functions are included in this set: +#' `get_data_info` get formatted \code{data_info} in ColocBoost output +#' `get_cos_details` get formatted \code{cos_details} in ColocBoost output +#' `get_model_info` get formatted \code{model_info} in ColocBoost output +#' `get_full_output` get formatted additional information in ColocBoost output when \code{output_level!=1} +#' +#' These functions are not exported individually and are accessed via `colocboost_output_reorganization`. +#' +#' @rdname colocboost_output_reorganization +#' @keywords cb_reorganization +#' @noRd +colocboost_output_reorganization <- function() { + message("This function re-formats colocboost output as internal used. See details for more information.") +} + +#' Get formatted \code{data_info} in ColocBoost output +#' @noRd +#' @keywords cb_reorganization +get_data_info <- function(cb_obj) { + ## - analysis data information + n_outcome <- cb_obj$cb_model_para$L + n_variables <- cb_obj$cb_model_para$P + analysis_outcome <- cb_obj$cb_model_para$outcome_names + variables <- cb_obj$cb_data$variable.names + focal_outcome <- NULL + is_focal <- rep(FALSE, n_outcome) + if (!is.null(cb_obj$cb_model_para$focal_outcome_idx)) { + focal_outcome <- analysis_outcome[cb_obj$cb_model_para$focal_outcome_idx] + is_focal[cb_obj$cb_model_para$focal_outcome_idx] <- TRUE + } + is_sumstat <- grepl("sumstat_outcome", names(cb_obj$cb_data$data)) + N <- cb_obj$cb_model_para$N + check_no_N <- sapply(cb_obj$cb_model_para$N, is.null) + if (sum(check_no_N)!=0){ + N[which(check_no_N)] <- "NA" + N <- unlist(N) + } + outcome_info <- data.frame( + "outcome_names" = analysis_outcome, "sample_size" = N, + "is_sumstats" = is_sumstat, "is_focal" = is_focal + ) + rownames(outcome_info) <- paste0("y", 1:n_outcome) + + ## - marginal associations + z_scores <- lapply(cb_obj$cb_model, function(cb) { + as.numeric(cb$z_univariate) + }) + betas <- lapply(cb_obj$cb_model, function(cb) { + as.numeric(cb$beta) + }) + names(z_scores) <- names(betas) <- analysis_outcome + ## - output data info + data.info <- list( + "n_outcomes" = n_outcome, + "n_variables" = n_variables, + "outcome_info" = outcome_info, + "variables" = variables, + "coef" = betas, + "z" = z_scores + ) + return(data.info) +} + +#' Get formatted \code{cos_details} in ColocBoost output +#' @noRd +#' @keywords cb_reorganization +get_cos_details <- function(cb_obj, coloc_out, data_info = NULL) { + if (is.null(data_info)) { + data_info <- get_data_info(cb_obj) + } + + + ### ----- Define the colocalization results + coloc_sets <- coloc_out$cos + if (length(coloc_sets) != 0) { + # - colocalization outcome configurations + tmp <- get_cos_evidence(cb_obj, coloc_out, data_info) + normalization_evidence <- tmp$normalization_evidence + npc <- tmp$npc + cos_min_npc_outcome <- sapply(normalization_evidence, function(cp) min(cp$npc_outcome)) + + # - colocalized outcomes + analysis_outcome <- cb_obj$cb_model_para$outcome_names + coloc_outcome_index <- coloc_outcome <- list() + colocset_names <- c() + for (i in 1:length(coloc_out$cos)) { + coloc_outcome_index[[i]] <- coloc_out$coloc_outcomes[[i]] + coloc_outcome[[i]] <- analysis_outcome[coloc_outcome_index[[i]]] + colocset_names[i] <- paste0("cos", i, ":", paste0(paste0("y", coloc_outcome_index[[i]]), collapse = "_")) + if (grepl("merged", names(coloc_sets)[i])) { + colocset_names[i] <- paste0(colocset_names[i], ":merged") + } + } + names(coloc_outcome) <- names(coloc_outcome_index) <- colocset_names + names(npc) <- names(normalization_evidence) <- names(cos_min_npc_outcome) <- colocset_names + coloc_outcomes <- list("outcome_index" = coloc_outcome_index, "outcome_name" = coloc_outcome) + + # - colocalized sets for variables + coloc_csets_variableidx <- coloc_out$cos + coloc_csets_variablenames <- lapply(coloc_csets_variableidx, function(coloc_tmp) { + cb_obj$cb_model_para$variables[coloc_tmp] + }) + coloc_csets_variableidx <- lapply(coloc_csets_variablenames, function(variable) match(variable, data_info$variables)) + names(coloc_csets_variableidx) <- names(coloc_csets_variablenames) <- colocset_names + coloc_csets_original <- list("cos_index" = coloc_csets_variableidx, "cos_variables" = coloc_csets_variablenames) + + # - colocalized set cs_change + cs_change <- coloc_out$cs_change + rownames(cs_change) <- colocset_names + colnames(cs_change) <- analysis_outcome + + # - VCP + cos_weights <- lapply(coloc_out$avWeight, function(w) { + pos <- match(data_info$variables, cb_obj$cb_model_para$variables) + return(w[pos, , drop = FALSE]) + }) + int_weight <- lapply(cos_weights, get_integrated_weight, weight_fudge_factor = cb_obj$cb_model_para$weight_fudge_factor) + names(int_weight) <- names(cos_weights) <- colocset_names + vcp <- as.vector(1 - apply(1 - do.call(cbind, int_weight), 1, prod)) + names(vcp) <- data_info$variables + + # - resummary results + cos_re_idx <- lapply(int_weight, function(w) { + unlist(get_in_cos(w, coverage = cb_obj$cb_model_para$coverage)) + }) + cos_re_var <- lapply(cos_re_idx, function(idx) { + data_info$variables[idx] + }) + coloc_csets <- list("cos_index" = cos_re_idx, "cos_variables" = cos_re_var) + + # - hits variables in each csets + coloc_hits <- coloc_hits_variablenames <- coloc_hits_names <- c() + for (i in 1:length(int_weight)) { + inw <- int_weight[[i]] + pp <- which(inw == max(inw)) + coloc_hits <- c(coloc_hits, pp) + coloc_hits_variablenames <- c(coloc_hits_variablenames, data_info$variables[pp]) + if (length(pp) == 1) { + coloc_hits_names <- c(coloc_hits_names, names(int_weight)[i]) + } else { + coloc_hits_names <- c(coloc_hits_names, paste0(names(int_weight)[i], ".", 1:length(pp))) + } + } + coloc_hits <- data.frame("top_index" = coloc_hits, "top_variables" = coloc_hits_variablenames) + rownames(coloc_hits) <- coloc_hits_names + + # - purity + ncos <- length(coloc_csets$cos_index) + if (ncos >= 2) { + empty_matrix <- matrix(NA, ncos, ncos) + colnames(empty_matrix) <- rownames(empty_matrix) <- colocset_names + csets_purity <- lapply(1:3, function(ii) { + diag(empty_matrix) <- coloc_out$purity[, ii] + return(empty_matrix) + }) + for (i in 1:(ncos - 1)) { + for (j in (i + 1):ncos) { + cset1 <- coloc_csets$cos_index[[i]] + cset2 <- coloc_csets$cos_index[[j]] + y.i <- coloc_outcomes$outcome_index[[i]] + y.j <- coloc_outcomes$outcome_index[[j]] + yy <- unique(c(y.i, y.j)) + res <- list() + flag <- 1 + for (ii in yy) { + X_dict <- cb_obj$cb_data$dict[ii] + res[[flag]] <- get_between_purity(cset1, cset2, + X = cb_obj$cb_data$data[[X_dict]]$X, + Xcorr = cb_obj$cb_data$data[[X_dict]]$XtX, + miss_idx = cb_obj$cb_data$data[[ii]]$variable_miss, + P = cb_obj$cb_model_para$P + ) + flag <- flag + 1 + } + res <- Reduce(pmax, res) + csets_purity <- lapply(1:3, function(ii) { + csets_purity[[ii]][i, j] <- csets_purity[[ii]][j, i] <- res[ii] + return(csets_purity[[ii]]) + }) + } + } + names(csets_purity) <- c("min_abs_cor", "max_abs_cor", "median_abs_cor") + } else { + csets_purity <- lapply(1:length(coloc_out$purity), function(i) { + tmp <- as.matrix(coloc_out$purity[i]) + rownames(tmp) <- colnames(tmp) <- colocset_names + tmp + }) + names(csets_purity) <- c("min_abs_cor", "max_abs_cor", "median_abs_cor") + } + + # - save coloc_results + coloc_results <- list( + "cos" = coloc_csets, + "cos_outcomes" = coloc_outcomes, + "cos_vcp" = int_weight, + "cos_outcomes_npc" = normalization_evidence, + "cos_npc" = npc, + "cos_min_npc_outcome" = cos_min_npc_outcome, + "cos_purity" = csets_purity, + "cos_top_variables" = coloc_hits, + "cos_weights" = cos_weights + ) + + + # - missing variable and warning message + missing_variables_idx <- Reduce(union, lapply(cb_obj$cb_data$data, function(cb) cb$variable_miss)) + missing_variables <- cb_obj$cb_model_para$variables[missing_variables_idx] + cos_missing_variables_idx <- lapply(coloc_csets_original$cos_variables, function(variable) { + missing <- intersect(variable, missing_variables) + if (length(missing) != 0) { + match(missing, data_info$variables) + } else { + NULL + } + }) + cos_missing_variables <- lapply(cos_missing_variables_idx, function(variable) { + if (!is.null(variable)) { + data_info$variables[variable] + } else { + NULL + } + }) + warning_needed <- any(!sapply(cos_missing_variables, is.null)) + if (warning_needed) { + is_missing <- which(!sapply(cos_missing_variables, is.null)) + cos_missing_variables_idx <- cos_missing_variables_idx[is_missing] + cos_missing_variables <- cos_missing_variables[is_missing] + cos_missing_vcp <- lapply(cos_missing_variables_idx, function(idx) { + vcp[idx] + }) + warning_message <- paste( + "CoS", paste(names(cos_missing_variables_idx), collapse = ","), + "contains missing variables in at least one outcome.", + "The missing variables will cause the ~0 VCP scores." + ) + cos_warnings <- list( + "cos_missing_info" = list( + "index" = cos_missing_variables_idx, + "variables" = cos_missing_variables, + "vcp" = cos_missing_vcp + ), + "warning_message" = warning_message + ) + coloc_results$cos_warnings <- cos_warnings + } + } else { + coloc_results <- NULL + vcp <- NULL + } + return(list("cos_results" = coloc_results, "vcp" = vcp)) +} + +#' Get formatted \code{model_info} in ColocBoost output +#' @noRd +#' @keywords cb_reorganization +get_model_info <- function(cb_obj, outcome_names = NULL) { + if (is.null(outcome_names)) { + data_info <- get_data_info(cb_obj) + outcome_names <- data_info$outcome_info$outcome_names + } + + profile_loglik <- cb_obj$cb_model_para$profile_loglike + n_updates <- cb_obj$cb_model_para$num_updates + n_updates_outcome <- cb_obj$cb_model_para$num_updates_outcome + model_coveraged <- cb_obj$cb_model_para$coveraged + model_coveraged_outcome <- cb_obj$cb_model_para$coveraged_outcome + jk_update <- cb_obj$cb_model_para$real_update_jk + if (!is.null(jk_update)){ + rownames(jk_update) <- paste0("jk_star_", 1:nrow(jk_update)) + colnames(jk_update) <- outcome_names + } + outcome_proximity_obj <- lapply(cb_obj$cb_model, function(cb) cb$obj_path) + outcome_coupled_best_update_obj <- lapply(cb_obj$cb_model, function(cb) cb$obj_single) + outcome_profile_loglik <- lapply(cb_obj$cb_model, function(cb) cb$profile_loglike_each) + names(outcome_proximity_obj) <- names(outcome_coupled_best_update_obj) <- + names(outcome_profile_loglik) <- names(n_updates_outcome) <- + names(model_coveraged_outcome) <- outcome_names + ll <- list( + "model_coveraged" = model_coveraged, + "n_updates" = n_updates, + "profile_loglik" = profile_loglik, + "outcome_profile_loglik" = outcome_profile_loglik, + "outcome_proximity_obj" = outcome_proximity_obj, + "outcome_coupled_best_update_obj" = outcome_coupled_best_update_obj, + "outcome_model_coveraged" = model_coveraged_outcome, + "outcome_n_updates" = n_updates_outcome, + "jk_star" = jk_update + ) + return(ll) +} + +#' Get formatted additional information in ColocBoost output when \code{output_level!=1} +#' @noRd +#' @keywords cb_reorganization +get_full_output <- function(cb_obj, past_out = NULL, variables = NULL, cb_output = NULL, weaker_ucos = FALSE) { + cb_model <- cb_obj$cb_model + cb_model_para <- cb_obj$cb_model_para + + ## - obtain the order of variables based on the variables names if it has position information + if (!is.null(variables)) { + ordered <- 1:length(cb_obj$cb_model_para$variables) + } else { + ordered <- match(variables, cb_obj$cb_model_para$variables) + } + + ## - reorder all output + # - cb_model + tmp <- lapply(cb_model, function(cb) { + cb$beta <- cb$beta[ordered] + cb$weights_path <- cb$weights_path[, ordered] + cb$change_loglike <- cb$change_loglike[ordered] + cb$correlation <- as.numeric(cb$correlation[ordered]) + cb$z <- as.numeric(cb$z[ordered]) + cb$ld_jk <- cb$ld_jk[, ordered] + cb$z_univariate <- as.numeric(cb$z_univariate[ordered]) + cb$beta_hat <- as.numeric(cb$beta_hat[ordered]) + cb$multi_correction <- as.numeric(cb$multi_correction[ordered]) + cb$multi_correction_univariate <- as.numeric(cb$multi_correction_univariate[ordered]) + return(cb) + }) + cb_model <- tmp + + # - sets + if (!is.null(past_out)) { + out_ucos <- past_out$ucos + # - single sets + if (!is.null(out_ucos$ucos_each)) { + out_ucos$ucos_each <- lapply(out_ucos$ucos_each, function(cs) { + match(cb_model_para$variables[cs], variables) + }) + out_ucos$avW_ucos_each <- out_ucos$avW_ucos_each[ordered, , drop = FALSE] + + # - re-orginize specific results + analysis_outcome <- cb_obj$cb_model_para$outcome_names + specific_outcome_index <- specific_outcome <- list() + specific_cs_names <- c() + for (i in 1:length(out_ucos$ucos_each)) { + cc <- out_ucos$avW_ucos_each[, i, drop = FALSE] + tmp_names <- colnames(cc) + specific_outcome_index[[i]] <- as.numeric(gsub(".*Y([0-9]+).*", "\\1", tmp_names)) + specific_outcome[[i]] <- analysis_outcome[specific_outcome_index[[i]]] + specific_cs_names[i] <- paste0("ucos", i, ":y", specific_outcome_index[[i]]) + } + names(specific_outcome) <- names(specific_outcome_index) <- specific_cs_names + specific_outcomes <- list("outcome_index" = specific_outcome_index, "outcome_name" = specific_outcome) + + # - specific sets for variables + specific_cs_variableidx <- out_ucos$ucos_each + specific_cs_variablenames <- lapply(specific_cs_variableidx, function(specific_tmp) { + cb_obj$cb_model_para$variables[specific_tmp] + }) + specific_cs_variableidx <- lapply(specific_cs_variablenames, function(variable) match(variable, variables)) + names(specific_cs_variableidx) <- names(specific_cs_variablenames) <- specific_cs_names + specific_css <- list("ucos_index" = specific_cs_variableidx, "ucos_variables" = specific_cs_variablenames) + + # - specific set cs_change + cs_change <- out_ucos$change_obj_each + rownames(cs_change) <- specific_cs_names + colnames(cs_change) <- analysis_outcome + index_change <- as.data.frame(which(cs_change != 0, arr.ind = TRUE)) + change_outcomes <- analysis_outcome[index_change$col] + change_values <- diag(as.matrix(cs_change[index_change$row, index_change$col])) + cs_change <- data.frame("ucos_outcome" = change_outcomes, "ucos_delta" = change_values) + + # - filter weak ucos + check_null_max <- sapply(cb_model, function(cb) cb$check_null_max) + remove_weak <- sapply(1:nrow(cs_change), function(ic) { + outcome_tmp <- cs_change$ucos_outcome[ic] + delta_tmp <- cs_change$ucos_delta[ic] + pp <- which(cb_obj$cb_model_para$outcome_names == outcome_tmp) + check_tmp <- check_null_max[pp] + delta_tmp >= check_tmp + }) + keep_ucos <- which(remove_weak) + if (length(keep_ucos) == 0) { + specific_results <- NULL + } else { + specific_outcomes$outcome_index <- specific_outcomes$outcome_index[keep_ucos] + specific_outcomes$outcome_name <- specific_outcomes$outcome_name[keep_ucos] + specific_css$ucos_index <- specific_css$ucos_index[keep_ucos] + specific_css$ucos_variables <- specific_css$ucos_variables[keep_ucos] + cs_change <- cs_change[keep_ucos, , drop = FALSE] + out_ucos$avW_ucos_each <- out_ucos$avW_ucos_each[, keep_ucos, drop = FALSE] + specific_cs_names <- specific_cs_names[keep_ucos] + out_ucos$purity_each <- out_ucos$purity_each[keep_ucos, , drop = FALSE] + + # - ucos_weight + specific_w <- lapply(1:ncol(out_ucos$avW_ucos_each), function(ii) out_ucos$avW_ucos_each[, ii, drop = FALSE]) + names(specific_w) <- specific_cs_names + + # - hits variables in each csets + cs_hits <- sapply(1:length(specific_w), function(jj) { + inw <- specific_w[[jj]] + sample(which(inw == max(inw)), 1) + }) + cs_hits_variablenames <- sapply(cs_hits, function(ch) variables[ch]) + specific_cs_hits <- data.frame("top_index" = cs_hits, "top_variables" = cs_hits_variablenames) # save + rownames(specific_cs_hits) <- specific_cs_names + + # - purity + nucos <- length(specific_css$ucos_index) + if (nucos >= 2) { + empty_matrix <- matrix(NA, nucos, nucos) + colnames(empty_matrix) <- rownames(empty_matrix) <- specific_cs_names + specific_cs_purity <- lapply(1:3, function(ii) { + diag(empty_matrix) <- out_ucos$purity_each[, ii] + return(empty_matrix) + }) + for (i in 1:(nucos - 1)) { + for (j in (i + 1):nucos) { + cset1 <- specific_css$ucos_index[[i]] + cset2 <- specific_css$ucos_index[[j]] + y.i <- specific_outcomes$outcome_index[[i]] + y.j <- specific_outcomes$outcome_index[[j]] + yy <- unique(c(y.i, y.j)) + res <- list() + flag <- 1 + for (ii in yy) { + X_dict <- cb_obj$cb_data$dict[ii] + res[[flag]] <- get_between_purity(cset1, cset2, + X = cb_obj$cb_data$data[[X_dict]]$X, + Xcorr = cb_obj$cb_data$data[[X_dict]]$XtX, + miss_idx = cb_obj$cb_data$data[[ii]]$variable_miss, + P = cb_obj$cb_model_para$P + ) + flag <- flag + 1 + } + res <- Reduce(pmax, res) + specific_cs_purity <- lapply(1:3, function(ii) { + specific_cs_purity[[ii]][i, j] <- specific_cs_purity[[ii]][j, i] <- res[ii] + return(specific_cs_purity[[ii]]) + }) + } + } + names(specific_cs_purity) <- c("min_abs_cor", "max_abs_cor", "median_abs_cor") + } else { + specific_cs_purity <- out_ucos$purity_each + rownames(specific_cs_purity) <- specific_cs_names + } + + # - cos&ucos purity + cos <- cb_output$cos_details$cos$cos_index + ncos <- length(cos) + if (ncos != 0) { + empty_matrix <- matrix(NA, ncos, nucos) + colnames(empty_matrix) <- specific_cs_names + rownames(empty_matrix) <- names(cos) + cos_ucos_purity <- lapply(1:3, function(ii) empty_matrix) + for (i in 1:ncos) { + for (j in 1:nucos) { + cset1 <- cos[[i]] + cset2 <- specific_css$ucos_index[[j]] + y.i <- cb_output$cos_details$cos_outcomes$outcome_index[[i]] + y.j <- specific_outcomes$outcome_index[[j]] + yy <- unique(c(y.i, y.j)) + res <- list() + flag <- 1 + for (ii in yy) { + X_dict <- cb_obj$cb_data$dict[ii] + res[[flag]] <- get_between_purity(cset1, cset2, + X = cb_obj$cb_data$data[[X_dict]]$X, + Xcorr = cb_obj$cb_data$data[[X_dict]]$XtX, + miss_idx = cb_obj$cb_data$data[[ii]]$variable_miss, + P = cb_obj$cb_model_para$P + ) + flag <- flag + 1 + } + res <- Reduce(pmax, res) + cos_ucos_purity <- lapply(1:3, function(ii) { + cos_ucos_purity[[ii]][i, j] <- res[ii] + return(cos_ucos_purity[[ii]]) + }) + } + } + names(cos_ucos_purity) <- c("min_abs_cor", "max_abs_cor", "median_abs_cor") + } else { + cos_ucos_purity <- NULL + } + + + # - save coloc_results + specific_results <- list( + "ucos" = specific_css, + "ucos_outcomes" = specific_outcomes, + "ucos_weight" = specific_w, + "ucos_top_variables" = specific_cs_hits, + "ucos_purity" = specific_cs_purity, + "cos_ucos_purity" = cos_ucos_purity, + "ucos_outcomes_delta" = cs_change + ) + } + } else { + specific_results <- NULL + } + + # - cb_model_para + cb_model_para$N <- as.numeric(unlist(cb_model_para$N)) + cb_model_para$variables <- variables + + ll <- list( + "ucos_details" = specific_results, + "cb_model" = cb_model, + "cb_model_para" = cb_model_para + ) + } else { + # - cb_model_para + cb_model_para$N <- as.numeric(unlist(cb_model_para$N)) + cb_model_para$variables <- variables + ll <- list( + "ucos_detials" = NULL, + "cb_model" = cb_model, + "cb_model_para" = cb_model_para + ) + } + + return(ll) +} + From dcd516f458f310c1f514a33a717bc6a5ab84e57c Mon Sep 17 00:00:00 2001 From: xuewei cao <36172337+xueweic@users.noreply.github.com> Date: Tue, 22 Apr 2025 16:02:09 -0400 Subject: [PATCH 3/6] update --- R/colocboost_inference.R | 1 + R/colocboost_output.R | 1487 +++++++++--------------- man/get_ambiguous_colocalization.Rd | 4 +- man/get_colocboost_summary.Rd | 80 +- man/get_cormat.Rd | 4 +- man/get_cos.Rd | 4 +- man/get_cos_purity.Rd | 4 +- man/get_cos_summary.Rd | 12 +- man/get_hierarchical_clusters.Rd | 4 +- man/get_robust_colocalization.Rd | 4 +- man/get_ucos_summary.Rd | 64 +- tests/testthat/test_corner_cases.R | 57 +- tests/testthat/test_inference.R | 81 +- vignettes/Ambiguous_Colocalization.Rmd | 4 +- 14 files changed, 762 insertions(+), 1048 deletions(-) diff --git a/R/colocboost_inference.R b/R/colocboost_inference.R index 0648bd8..567d43d 100644 --- a/R/colocboost_inference.R +++ b/R/colocboost_inference.R @@ -568,3 +568,4 @@ get_cos_evidence <- function(cb_obj, coloc_out, data_info) { names(normalization_evidence) <- names(npc) <- names(coloc_out$cos) return(list(normalization_evidence = normalization_evidence, npc = npc)) } + diff --git a/R/colocboost_output.R b/R/colocboost_output.R index 89eb560..21bd9e1 100644 --- a/R/colocboost_output.R +++ b/R/colocboost_output.R @@ -6,46 +6,48 @@ #' with or without the outcomes of interest. #' #' @param cb_output Output object from `colocboost` analysis +#' @param summary_level When \code{summary_level = 1}, return basic sumamry table for colocalization results. See details in `get_ucos_summary` function when \code{summary_level = 2}. #' @param outcome_names Optional vector of names of outcomes, which has the same order as Y in the original analysis. #' @param interest_outcome Optional vector specifying a subset of outcomes from \code{outcome_names} to focus on. When provided, only colocalization events that include at least one of these outcomes will be returned. #' @param region_name Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses. +#' @param min_abs_corr_between_ucos Minimum absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.5. +#' @param median_abs_corr_between_ucos Median absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.8. +#' @param tol A small, non-negative number specifying the convergence tolerance for checking the overlap of the variables in different sets. #' -#' @return A list of all summary tables for colocalization events and trait-specific associations if exists. -#' -#' \item{cos_summary}{A summary table for colocalization events with the following columns: +#' @return A list containing results from the ColocBoost analysis: +#' \itemize{ +#' \item When \code{summary_level = 1} (default): #' \itemize{ -#' \item{focal_outcome}{The focal outcome being analyzed if exists. Otherwise, it is \code{FALSE}.} -#' \item{colocalized_outcomes}{Colocalized outcomes for colocalization confidence set (CoS)} -#' \item{cos_id}{Unique identifier for colocalization confidence set (CoS)} -#' \item{purity}{Minimum absolute correlation of variables with in colocalization confidence set (CoS)} -#' \item{top_variable}{The variable with highest variant colocalization probability (VCP)} -#' \item{top_variable_vcp}{Variant colocalization probability for the top variable} -#' \item{cos_npc}{Normalized probability of colocalization} -#' \item{min_npc_outcome}{Minimum normalized probability of colocalized traits} -#' \item{n_variables}{Number of variables in colocalization confidence set (CoS)} -#' \item{colocalized_index}{Indices of colocalized variables} -#' \item{colocalized_variables}{List of colocalized variables} -#' \item{colocalized_variables_vcp}{Variant colocalization probabilities for all colocalized variables} +#' \item \code{cos_summary}: A summary table for colocalization events with the following columns: +#' \itemize{ +#' \item \code{focal_outcome}: The focal outcome being analyzed if exists. Otherwise, it is \code{FALSE}. +#' \item \code{colocalized_outcomes}: Colocalized outcomes for colocalization confidence set (CoS) +#' \item \code{cos_id}: Unique identifier for colocalization confidence set (CoS) +#' \item \code{purity}: Minimum absolute correlation of variables within colocalization confidence set (CoS) +#' \item \code{top_variable}: The variable with highest variant colocalization probability (VCP) +#' \item \code{top_variable_vcp}: Variant colocalization probability for the top variable +#' \item \code{cos_npc}: Normalized probability of colocalization +#' \item \code{min_npc_outcome}: Minimum normalized probability of colocalized traits +#' \item \code{n_variables}: Number of variables in colocalization confidence set (CoS) +#' \item \code{colocalized_index}: Indices of colocalized variables +#' \item \code{colocalized_variables}: List of colocalized variables +#' \item \code{colocalized_variables_vcp}: Variant colocalization probabilities for all colocalized variables +#' } #' } -#' } -#' -#' \item{ambigouse_cos_summary}{Colocalized outcomes for colocalization confidence set (CoS) } -#' -#' \item{ucos_summary}{A summary table for trait-specific, uncolocalized associations with the following columns: +#' \item When \code{summary_level = 2}: +#' \itemize{ +#' \item \code{cos_summary}: As described above +#' \item \code{ucos_summary}: A summary table for trait-specific (uncolocalized) effects +#' } +#' \item When \code{summary_level = 3}: #' \itemize{ -#' \item{outcomes}{Outcome being analyzed} -#' \item{ucos_id}{Unique identifier for trait-specific confidence sets} -#' \item{purity}{Minimum absolute correlation of variables within trait-specific confidence sets} -#' \item{top_variable}{The variable with highest variant-level probability of association (VPA)} -#' \item{top_variable_vpa}{Variant-level probability of association (VPA) for the top variable} -#' \item{ucos_npc}{Normalized probability of causal association for the trait-specific confidence set} -#' \item{n_variables}{Number of variables in trait-specific confidence set} -#' \item{ucos_index}{Indices of variables in the trait-specific confidence set} -#' \item{ucos_variables}{List of variables in the trait-specific confidence set} -#' \item{ucos_variables_vpa}{Variant-level probability of association (VPA) for all variables in the confidence set} -#' \item{region_name}{Region name if provided through the region_name parameter} +#' \item \code{cos_summary}: As described above +#' \item \code{ucos_summary}: A summary table for trait-specific (uncolocalized) effects +#' \item \code{ambiguous_ucos_summary}: A summary table for ambiguous colocalization events from trait-specific effects #' } #' } +#' @details When \code{summary_level = 2} or \code{summary_level = 3}, additional details for trait-specific effects and ambiguous +#' colocalization events are included. See \code{\link{get_ucos_summary}} for details on these tables. #' #' @examples #' # colocboost example @@ -67,7 +69,7 @@ #' Y[, l] <- X %*% true_beta[, l] + rnorm(N, 0, 1) #' } #' res <- colocboost(X = X, Y = Y) -#' get_cos_summary(res) +#' get_colocboost_summary(res) #' #' @source See detailed instructions in our tutorial portal: #' \url{https://statfungen.github.io/colocboost/articles/Interpret_ColocBoost_Output.html} @@ -76,165 +78,41 @@ #' @export #' get_colocboost_summary <- function(cb_output, + summary_level = 1, outcome_names = NULL, interest_outcome = NULL, region_name = NULL, - min_abs_corr = 0.5, - median_cos_abs_corr = 0.8){ + min_abs_corr_between_ucos = 0.5, + median_abs_corr_between_ucos = 0.8, + tol = 1e-9) { if (!inherits(cb_output, "colocboost")) { stop("Input must from colocboost output!") } cos_summary <- get_cos_summary(cb_output, outcome_names, interest_outcome, region_name) - - if ("ucos_detais" %in% names(cb_output)) { - ucos_summary <- get_ucos_summary(cb_output, outcome_names, region_name) - - } else { - ucos_summary <- NULL + if (summary_level == 1) { + return(list("cos_summary" = cos_summary)) } - summary_tables <- list( - cos_summary = cos_summary, - ucos_summary = NULL, - ambigouse_cos_summary = NULL - ) - -} - - - -#' @rdname get_cos_summary -#' -#' @title Get colocalization summary table from a ColocBoost output. -#' -#' @description `get_cos_summary` get the colocalization summary table with or without the outcomes of interest. -#' -#' @param cb_output Output object from `colocboost` analysis -#' @param outcome_names Optional vector of names of outcomes, which has the same order as Y in the original analysis. -#' @param interest_outcome Optional vector specifying a subset of outcomes from \code{outcome_names} to focus on. When provided, only colocalization events that include at least one of these outcomes will be returned. -#' @param region_name Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses. -#' -#' @return A summary table for colocalization events with the following columns: -#' \item{focal_outcome}{The focal outcome being analyzed if exists. Otherwise, it is \code{FALSE}.} -#' \item{colocalized_outcomes}{Colocalized outcomes for colocalization confidence set (CoS) } -#' \item{cos_id}{Unique identifier for colocalization confidence set (CoS) } -#' \item{purity}{Minimum absolute correlation of variables with in colocalization confidence set (CoS) } -#' \item{top_variable}{The variable with highest variant colocalization probability (VCP) } -#' \item{top_variable_vcp}{Variant colocalization probability for the top variable} -#' \item{cos_npc}{Normalized probability of colocalization} -#' \item{min_npc_outcome}{Minimum normalized probability of colocalized traits} -#' \item{n_variables}{Number of variables in colocalization confidence set (CoS)} -#' \item{colocalized_index}{Indices of colocalized variables} -#' \item{colocalized_variables}{List of colocalized variables} -#' \item{colocalized_variables_vcp}{Variant colocalization probabilities for all colocalized variables} -#' -#' @examples -#' # colocboost example -#' set.seed(1) -#' N <- 1000 -#' P <- 100 -#' # Generate X with LD structure -#' sigma <- 0.9^abs(outer(1:P, 1:P, "-")) -#' X <- MASS::mvrnorm(N, rep(0, P), sigma) -#' colnames(X) <- paste0("SNP", 1:P) -#' L <- 3 -#' true_beta <- matrix(0, P, L) -#' true_beta[10, 1] <- 0.5 # SNP10 affects trait 1 -#' true_beta[10, 2] <- 0.4 # SNP10 also affects trait 2 (colocalized) -#' true_beta[50, 2] <- 0.3 # SNP50 only affects trait 2 -#' true_beta[80, 3] <- 0.6 # SNP80 only affects trait 3 -#' Y <- matrix(0, N, L) -#' for (l in 1:L) { -#' Y[, l] <- X %*% true_beta[, l] + rnorm(N, 0, 1) -#' } -#' res <- colocboost(X = X, Y = Y) -#' get_cos_summary(res) -#' -#' @source See detailed instructions in our tutorial portal: -#' \url{https://statfungen.github.io/colocboost/articles/Interpret_ColocBoost_Output.html} -#' -#' @family colocboost_inference -#' @export -get_cos_summary <- function(cb_output, - outcome_names = NULL, - interest_outcome = NULL, - region_name = NULL) { - if (!inherits(cb_output, "colocboost")) { - stop("Input must from colocboost output!") - } - - coloc_csets <- cb_output$cos_details$cos$cos_index - if (length(coloc_csets) != 0) { - analysis_outcome <- cb_output$data_info$outcome_info$outcome_names - if (!is.null(outcome_names)) { - analysis_outcome <- outcome_names - } - coloc_outcome <- lapply(cb_output$cos_details$cos_outcomes$outcome_index, function(idx) analysis_outcome[idx]) - coloc_sets <- cb_output$cos_details$cos$cos_index - if (!is.null(cb_output$cos_warnings)) { - cos_warnings + if (summary_level == 2){ + ucos_summary <- get_ucos_summary(cb_output, outcome_names, region_name) + return(list("cos_summary" = cos_summary, + "ucos_summary" = ucos_summary)) } - vcp <- as.numeric(cb_output$vcp) - summary_table <- matrix(NA, nrow = length(coloc_sets), ncol = 12) - colnames(summary_table) <- c( - "focal_outcome", "colocalized_outcomes", "cos_id", "purity", - "top_variable", "top_variable_vcp", "cos_npc", "min_npc_outcome", "n_variables", - "colocalized_index", "colocalized_variables", "colocalized_variables_vcp" - ) - summary_table <- as.data.frame(summary_table) - summary_table[, 1] <- FALSE - summary_table[, 2] <- unlist(sapply(coloc_outcome, function(tmp) paste0(tmp, collapse = "; "))) - summary_table[, 3] <- names(coloc_sets) - summary_table[, 4] <- as.numeric(diag(as.matrix(cb_output$cos_details$cos_purity$min_abs_cor))) - summary_table[, 5] <- unlist(sapply(cb_output$cos_details$cos$cos_variables, function(tmp) tmp[1])) - summary_table[, 6] <- sapply(coloc_sets, function(tmp) max(vcp[tmp])) - summary_table[, 7] <- round(as.numeric(cb_output$cos_details$cos_npc), 4) - summary_table[, 8] <- round(as.numeric(cb_output$cos_details$cos_min_npc_outcome), 4) - summary_table[, 9] <- as.numeric(sapply(coloc_sets, length)) - summary_table[, 10] <- unlist(sapply(coloc_sets, function(tmp) paste0(tmp, collapse = "; "))) - summary_table[, 11] <- unlist(sapply(cb_output$cos_details$cos$cos_variables, function(tmp) paste0(tmp, collapse = "; "))) - summary_table[, 12] <- unlist(sapply(coloc_sets, function(tmp) paste0(vcp[tmp], collapse = "; "))) - if (!is.null(region_name)) { - summary_table$region_name <- region_name - } - # - if focal colocalization - focal_outcome_idx <- which(cb_output$data_info$outcome_info$is_focal) - if (length(focal_outcome_idx) != 0) { - focal_outcome <- analysis_outcome[focal_outcome_idx] - tmp <- sapply(focal_outcome, function(tmp) grep(paste0(tmp, "\\b"), analysis_outcome)) - if.focal <- sapply(coloc_outcome, function(cp) { - tt <- sapply(focal_outcome, function(tmp) grep(paste0(tmp, "\\b"), cp)) - all(sapply(tt, length) != 0) - }) - summary_table$focal_outcome <- ifelse(if.focal, focal_outcome, FALSE) - summary_table <- summary_table[order(summary_table$focal_outcome == "FALSE"), ] - if (sum(if.focal) == 0) { - warning("No colocalization with focal outcomes.") - } - } - # - if extract only interest outcome colocalization - if (!is.null(interest_outcome)) { - tmp <- sapply(interest_outcome, function(tmp) grep(paste0(tmp, "\\b"), analysis_outcome)) - if (all(sapply(tmp, length) != 0)) { - if.interest <- sapply(coloc_outcome, function(cp) { - tt <- sapply(interest_outcome, function(tmp) grep(paste0(tmp, "\\b"), cp)) - all(sapply(tt, length) != 0) - }) - summary_table$interest_outcome <- paste0(interest_outcome, collapse = "; ") - summary_table <- summary_table[which(if.interest), ] - if (sum(if.interest) == 0) { - warning("No colocalization with interest outcomes.") - } - } else { - warning("Interest outcome is not in the analysis outcomes, please check.") - } + if (summary_level == 3){ + ucos_summary <- get_ucos_summary( + cb_output, outcome_names, region_name, + ambiguous_ucos = TRUE, + min_abs_corr_between_ucos = min_abs_corr_between_ucos, + median_abs_corr_between_ucos = median_abs_corr_between_ucos, + tol = tol + ) + return(list("cos_summary" = cos_summary, + "ucos_summary" = ucos_summary$ucos_summary, + "ambiguous_ucos_summary" = ucos_summary$ambiguous_ucos_summary)) } - } else { - summary_table <- NULL - } - return(summary_table) + } @@ -521,135 +399,501 @@ get_robust_colocalization <- function(cb_output, return(cb_output) } - - -#' @rdname get_ucos_summary +#' @rdname get_ambiguous_colocalization #' -#' @title Get trait-specific summary table from a ColocBoost output. +#' @title Get ambiguous colocalization events from trait-specific (uncolocalized) effects. #' -#' @description `get_ucos_summary` produces a trait-specific summary table for uncolocalized (single-trait) -#' associations from ColocBoost results. This is particularly useful for examining trait-specific signals -#' or for summarizing results from single-trait FineBoost analyses. +#' @description `get_ambiguous_colocalization` get the colocalization by discarding the weaker colocalization events or colocalized outcomes #' #' @param cb_output Output object from `colocboost` analysis -#' @param outcome_names Optional vector of names of outcomes, which has the same order as Y in the original analysis. -#' @param region_name Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses. +#' @param min_abs_corr_between_ucos Minimum absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.5. +#' @param median_abs_corr_between_ucos Median absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.8. +#' @param tol A small, non-negative number specifying the convergence tolerance for checking the overlap of the variables in different sets. #' -#' @return A summary table for trait-specific, uncolocalized associations with the following columns: -#' \item{outcomes}{Outcome being analyzed} -#' \item{ucos_id}{Unique identifier for trait-specific confidence sets} -#' \item{purity}{Minimum absolute correlation of variables within trait-specific confidence sets} -#' \item{top_variable}{The variable with highest variant-level probability of association (VPA)} -#' \item{top_variable_vpa}{Variant-level probability of association (VPA) for the top variable} -#' \item{ucos_npc}{Normalized probability of causal association for the trait-specific confidence set} -#' \item{n_variables}{Number of variables in trait-specific confidence set} -#' \item{ucos_index}{Indices of variables in the trait-specific confidence set} -#' \item{ucos_variables}{List of variables in the trait-specific confidence set} -#' \item{ucos_variables_vpa}{Variant-level probability of association (VPA) for all variables in the confidence set} -#' \item{region_name}{Region name if provided through the region_name parameter} +#' @return A \code{"colocboost"} object of colocboost output with additional elements: +#' \item{ambiguous_ucos}{If exists, a list of ambiguous trait-specific (uncolocalized) effects.} #' #' @examples -#' # colocboost example with single trait analysis -#' set.seed(1) -#' N <- 1000 -#' P <- 100 -#' # Generate X with LD structure -#' sigma <- 0.9^abs(outer(1:P, 1:P, "-")) -#' X <- MASS::mvrnorm(N, rep(0, P), sigma) -#' colnames(X) <- paste0("SNP", 1:P) -#' L <- 1 # Only one trait for single-trait analysis -#' true_beta <- matrix(0, P, L) -#' true_beta[10, 1] <- 0.5 # SNP10 affects the trait -#' true_beta[80, 1] <- 0.2 # SNP11 also affects the trait but with lower effect -#' Y <- X %*% true_beta + rnorm(N, 0, 1) -#' res <- colocboost(X = X, Y = Y, output_level = 2) -#' # Get the trait-specifc effect summary -#' get_ucos_summary(res) +#' data(Ambiguous_Colocalization) +#' test_colocboost_results <- Ambiguous_Colocalization$ColocBoost_Results +#' res <- get_ambiguous_colocalization(test_colocboost_results) +#' names(res$ambigous_ucos) #' #' @source See detailed instructions in our tutorial portal: #' \url{https://statfungen.github.io/colocboost/articles/Interpret_ColocBoost_Output.html} #' #' @family colocboost_inference #' @export -get_ucos_summary <- function(cb_output, outcome_names = NULL, region_name = NULL) { - if (!inherits(cb_output, "colocboost")) { - stop("Input must from colocboost object!") - } +get_ambiguous_colocalization <- function(cb_output, + min_abs_corr_between_ucos = 0.5, + median_abs_corr_between_ucos = 0.8, + tol = 1e-9) { - specific_cs <- cb_output$ucos_details - if (length(specific_cs$ucos$ucos_index) != 0) { - cs_outcome <- cb_output$data_info$outcome_info$outcome_names - if (!is.null(outcome_names)) { - cs_outcome <- outcome_names + if (!inherits(cb_output, "colocboost")) { + stop("Input must from colocboost output!") } - vpa <- as.numeric(cb_output$vpa) - if (length(vpa) == 0){ - w <- do.call(cbind, specific_cs$ucos_weight) - vpa <- as.vector(1 - apply(1 - w, 1, prod)) + + if (!("ucos_details" %in% names(cb_output))) { + warning( + "Since you want to extract ambiguous colocalization from trait-specific (uncolocalized) sets,", + " but there is no output of ucos_details from colocboost.\n", + " Please run colocboost model with output_level=2!" + ) + return(cb_output) } - summary_table <- matrix(NA, nrow = length(specific_cs$ucos$ucos_index), ncol = 9) - colnames(summary_table) <- c( - "outcomes", "ucos_id", "purity", - "top_variable", "top_variable_vpa", "n_variables", "ucos_index", - "ucos_variables", "ucos_variables_vpa" - ) - summary_table <- as.data.frame(summary_table) - summary_table[, 1] <- cs_outcome[unlist(specific_cs$ucos_outcomes$outcome_index)] - summary_table[, 2] <- names(specific_cs$ucos$ucos_index) - summary_table[, 3] <- as.numeric(diag(as.matrix(specific_cs$ucos_purity$min_abs_cor))) - summary_table[, 4] <- unlist(sapply(specific_cs$ucos$ucos_variables, function(tmp) tmp[1])) - summary_table[, 5] <- sapply(specific_cs$ucos$ucos_index, function(tmp) max(vpa[tmp])) - summary_table[, 6] <- as.numeric(sapply(specific_cs$ucos$ucos_index, length)) - summary_table[, 7] <- unlist(sapply(specific_cs$ucos$ucos_index, function(tmp) paste0(tmp, collapse = "; "))) - summary_table[, 8] <- unlist(sapply(specific_cs$ucos$ucos_variables, function(tmp) paste0(tmp, collapse = "; "))) - summary_table[, 9] <- unlist(sapply(specific_cs$ucos$ucos_index, function(tmp) paste0(vpa[tmp], collapse = "; "))) - if (!is.null(region_name)) { - summary_table$region_name <- region_name + if (is.null(cb_output$ucos_details)){ + message("No trait-specific (uncolocalized) effects in this region!") + return(cb_output) } - } else { - summary_table <- NULL - } - return(summary_table) -} -#' Extract CoS at different coverages -#' -#' @description `get_cos` extracts colocalization confidence sets (CoS) at different coverage levels -#' from ColocBoost results. When genotype data (X) or correlation matrix (Xcorr) is provided, it -#' can also calculate and filter CoS based on purity statistics, ensuring that variants within -#' each CoS are sufficiently correlated. -#' -#' @param cb_output Output object from `colocboost` analysis -#' @param coverage A number between 0 and 1 specifying the \dQuote{coverage} of the estimated colocalization confidence sets (CoS) (default is 0.95). -#' @param X Genotype matrix of values of the p variables. Used to compute correlations if Xcorr is not provided. -#' @param Xcorr Correlation matrix of correlations between variables. Alternative to X. -#' @param n_purity The maximum number of CoS variables used in calculating the correlation (\dQuote{purity}) statistics. -#' @param min_abs_corr The minimum absolute correlation value of variants in a CoS to be considered pass (\dQuote{purity}) statistics. -#' @param median_abs_corr The median absolute correlation value of variants in a CoS to be considered pass (\dQuote{purity}) statistics. -#' When the number of variables included in the CoS is greater than this number, the CoS variables are randomly subsampled. -#' -#' @return A list of indices of variables in each CoS. -#' -#' @examples -#' # colocboost example -#' set.seed(1) -#' N <- 1000 -#' P <- 100 -#' # Generate X with LD structure -#' sigma <- 0.9^abs(outer(1:P, 1:P, "-")) -#' X <- MASS::mvrnorm(N, rep(0, P), sigma) -#' colnames(X) <- paste0("SNP", 1:P) -#' L <- 3 -#' true_beta <- matrix(0, P, L) -#' true_beta[10, 1] <- 0.5 # SNP10 affects trait 1 -#' true_beta[10, 2] <- 0.4 # SNP10 also affects trait 2 (colocalized) -#' true_beta[50, 2] <- 0.3 # SNP50 only affects trait 2 -#' true_beta[80, 3] <- 0.6 # SNP80 only affects trait 3 -#' Y <- matrix(0, N, L) -#' for (l in 1:L) { -#' Y[, l] <- X %*% true_beta[, l] + rnorm(N, 0, 1) -#' } + ucos_details <- cb_output$ucos_details + nucos <- length(ucos_details$ucos$ucos_index) + if (nucos == 1) { + message("Only one trait-specific (uncolocalized) effect in this region!") + return(cb_output) + } + + # Function to merge ambiguous ucos + merge_sets <- function(vec) { + split_lists <- lapply(vec, function(x) as.numeric(unlist(strsplit(x, ";")))) + result <- list() + while (length(split_lists) > 0) { + current <- split_lists[[1]] + split_lists <- split_lists[-1] + repeat { + overlap_index <- NULL + for (i in seq_along(split_lists)) { + if (length(intersect(current, split_lists[[i]])) > 0) { + overlap_index <- i + break + } + } + if (!is.null(overlap_index)) { + current <- union(current, split_lists[[overlap_index]]) + split_lists <- split_lists[-overlap_index] + } else { + break + } + } + result <- c(result, list(paste(sort(current), collapse = ";"))) + } + return(result) + } + + + purity <- ucos_details$ucos_purity + min_abs_cor <- purity$min_abs_cor + median_abs_cor <- purity$median_abs_cor + max_abs_cor <- purity$max_abs_cor + is_ambiguous <- (min_abs_cor > min_abs_corr_between_ucos) * + (abs(max_abs_cor - 1) < tol) * + (median_abs_cor > median_abs_corr_between_ucos) + diag(is_ambiguous) <- 0 # no need to check within ucos + + if (sum(is_ambiguous) == 0){ + message("No ambiguous colocalization events!") + return(cb_output) + } else { + message("There exists the ambiguous colocalization events from trait-specific effects. Extracting!") + } + + temp <- sapply(1:nrow(is_ambiguous), function(x) { + tt <- c(x, which(is_ambiguous[x, ] != 0)) + return(paste0(sort(tt), collapse = ";")) + }) + temp <- merge_sets(temp) + potential_merged <- lapply(temp, function(x) as.numeric(unlist(strsplit(x, ";")))) + potential_merged <- potential_merged[which(sapply(potential_merged, length) >= 2)] + + ambigous_events <- list() + ambigouse_ucos_names <- c() + for (i in 1:length(potential_merged)) { + idx <- potential_merged[[i]] + test_outcome <- unique(unlist(ucos_details$ucos_outcomes$outcome_index[idx])) + if (length(test_outcome) == 1) next + ambigouse_ucos_names[i] <- paste0(names(ucos_details$ucos$ucos_index)[idx], collapse = ";") + tmp <- list( + ambigouse_ucos = list( + ucos_index = ucos_details$ucos$ucos_index[idx], + ucos_variables = ucos_details$ucos$ucos_variables[idx] + ), + ambigouse_ucos_overlap = list( + ucos_index = Reduce(intersect, ucos_details$ucos$ucos_index[idx]), + ucos_variables = Reduce(intersect, ucos_details$ucos$ucos_variables[idx]) + ), + ambigouse_ucos_union = list( + ucos_index = Reduce(union, ucos_details$ucos$ucos_index[idx]), + ucos_variables = Reduce(union, ucos_details$ucos$ucos_variables[idx]) + ), + ambigouse_ucos_outcomes = list( + outcome_idx = unique(unlist(ucos_details$ucos_outcomes$outcome_index[idx])), + outcome_name = unique(unlist(ucos_details$ucos_outcomes$outcome_name[idx])) + ), + ambigous_ucos_weight = ucos_details$ucos_weight[idx], + ambigous_ucos_puriry = list( + min_abs_cor = min_abs_cor[idx, idx], + median_abs_cor = median_abs_cor[idx, idx], + max_abs_cor = max_abs_cor[idx, idx] + ) + ) + w <- tmp$ambigous_ucos_weight + w <- do.call(cbind, w) + tmp$recalibrated_cos_vcp <- get_integrated_weight(w) + tmp$recalibrated_cos <- list( + "cos_index" = unlist(get_in_cos(tmp$recalibrated_cos_vcp)), + "cos_variables" = lapply(unlist(get_in_cos(tmp$recalibrated_cos_vcp)), function(idx) cb_output$data_info$variables[idx]) + ) + ambigous_events[[i]] <- tmp + } + names(ambigous_events) <- ambigouse_ucos_names + message(paste("There are", length(ambigous_events), "ambiguous trait-specific effects.")) + + cb_output$ambigous_ucos <- ambigous_events + return(cb_output) + +} + + + + +#' @rdname get_cos_summary +#' +#' @title Get colocalization summary table from a ColocBoost output. +#' +#' @description `get_cos_summary` get the colocalization summary table with or without the outcomes of interest. +#' +#' @param cb_output Output object from `colocboost` analysis +#' @param outcome_names Optional vector of names of outcomes, which has the same order as Y in the original analysis. +#' @param interest_outcome Optional vector specifying a subset of outcomes from \code{outcome_names} to focus on. When provided, only colocalization events that include at least one of these outcomes will be returned. +#' @param region_name Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses. +#' +#' @return A summary table for colocalization events with the following columns: +#' \item{focal_outcome}{The focal outcome being analyzed if exists. Otherwise, it is \code{FALSE}.} +#' \item{colocalized_outcomes}{Colocalized outcomes for colocalization confidence set (CoS) } +#' \item{cos_id}{Unique identifier for colocalization confidence set (CoS) } +#' \item{purity}{Minimum absolute correlation of variables with in colocalization confidence set (CoS) } +#' \item{top_variable}{The variable with highest variant colocalization probability (VCP) } +#' \item{top_variable_vcp}{Variant colocalization probability for the top variable} +#' \item{cos_npc}{Normalized probability of colocalization} +#' \item{min_npc_outcome}{Minimum normalized probability of colocalized traits} +#' \item{n_variables}{Number of variables in colocalization confidence set (CoS)} +#' \item{colocalized_index}{Indices of colocalized variables} +#' \item{colocalized_variables}{List of colocalized variables} +#' \item{colocalized_variables_vcp}{Variant colocalization probabilities for all colocalized variables} +#' +#' @examples +#' # colocboost example +#' set.seed(1) +#' N <- 1000 +#' P <- 100 +#' # Generate X with LD structure +#' sigma <- 0.9^abs(outer(1:P, 1:P, "-")) +#' X <- MASS::mvrnorm(N, rep(0, P), sigma) +#' colnames(X) <- paste0("SNP", 1:P) +#' L <- 3 +#' true_beta <- matrix(0, P, L) +#' true_beta[10, 1] <- 0.5 # SNP10 affects trait 1 +#' true_beta[10, 2] <- 0.4 # SNP10 also affects trait 2 (colocalized) +#' true_beta[50, 2] <- 0.3 # SNP50 only affects trait 2 +#' true_beta[80, 3] <- 0.6 # SNP80 only affects trait 3 +#' Y <- matrix(0, N, L) +#' for (l in 1:L) { +#' Y[, l] <- X %*% true_beta[, l] + rnorm(N, 0, 1) +#' } +#' res <- colocboost(X = X, Y = Y) +#' get_cos_summary(res) +#' +#' @source See detailed instructions in our tutorial portal: +#' \url{https://statfungen.github.io/colocboost/articles/Interpret_ColocBoost_Output.html} +#' +#' @keywords colocboost_inference +#' @family colocboost_utilities +#' @export +get_cos_summary <- function(cb_output, + outcome_names = NULL, + interest_outcome = NULL, + region_name = NULL) { + if (!inherits(cb_output, "colocboost")) { + stop("Input must from colocboost output!") + } + + coloc_csets <- cb_output$cos_details$cos$cos_index + if (length(coloc_csets) != 0) { + analysis_outcome <- cb_output$data_info$outcome_info$outcome_names + if (!is.null(outcome_names)) { + analysis_outcome <- outcome_names + } + coloc_outcome <- lapply(cb_output$cos_details$cos_outcomes$outcome_index, function(idx) analysis_outcome[idx]) + coloc_sets <- cb_output$cos_details$cos$cos_index + if (!is.null(cb_output$cos_warnings)) { + cos_warnings + } + vcp <- as.numeric(cb_output$vcp) + + summary_table <- matrix(NA, nrow = length(coloc_sets), ncol = 12) + colnames(summary_table) <- c( + "focal_outcome", "colocalized_outcomes", "cos_id", "purity", + "top_variable", "top_variable_vcp", "cos_npc", "min_npc_outcome", "n_variables", + "colocalized_index", "colocalized_variables", "colocalized_variables_vcp" + ) + summary_table <- as.data.frame(summary_table) + summary_table[, 1] <- FALSE + summary_table[, 2] <- unlist(sapply(coloc_outcome, function(tmp) paste0(tmp, collapse = "; "))) + summary_table[, 3] <- names(coloc_sets) + summary_table[, 4] <- as.numeric(diag(as.matrix(cb_output$cos_details$cos_purity$min_abs_cor))) + summary_table[, 5] <- unlist(sapply(cb_output$cos_details$cos$cos_variables, function(tmp) tmp[1])) + summary_table[, 6] <- sapply(coloc_sets, function(tmp) max(vcp[tmp])) + summary_table[, 7] <- round(as.numeric(cb_output$cos_details$cos_npc), 4) + summary_table[, 8] <- round(as.numeric(cb_output$cos_details$cos_min_npc_outcome), 4) + summary_table[, 9] <- as.numeric(sapply(coloc_sets, length)) + summary_table[, 10] <- unlist(sapply(coloc_sets, function(tmp) paste0(tmp, collapse = "; "))) + summary_table[, 11] <- unlist(sapply(cb_output$cos_details$cos$cos_variables, function(tmp) paste0(tmp, collapse = "; "))) + summary_table[, 12] <- unlist(sapply(coloc_sets, function(tmp) paste0(vcp[tmp], collapse = "; "))) + if (!is.null(region_name)) { + summary_table$region_name <- region_name + } + # - if focal colocalization + focal_outcome_idx <- which(cb_output$data_info$outcome_info$is_focal) + if (length(focal_outcome_idx) != 0) { + focal_outcome <- analysis_outcome[focal_outcome_idx] + tmp <- sapply(focal_outcome, function(tmp) grep(paste0(tmp, "\\b"), analysis_outcome)) + if.focal <- sapply(coloc_outcome, function(cp) { + tt <- sapply(focal_outcome, function(tmp) grep(paste0(tmp, "\\b"), cp)) + all(sapply(tt, length) != 0) + }) + summary_table$focal_outcome <- ifelse(if.focal, focal_outcome, FALSE) + summary_table <- summary_table[order(summary_table$focal_outcome == "FALSE"), ] + if (sum(if.focal) == 0) { + warning("No colocalization with focal outcomes.") + } + } + # - if extract only interest outcome colocalization + if (!is.null(interest_outcome)) { + tmp <- sapply(interest_outcome, function(tmp) grep(paste0(tmp, "\\b"), analysis_outcome)) + if (all(sapply(tmp, length) != 0)) { + if.interest <- sapply(coloc_outcome, function(cp) { + tt <- sapply(interest_outcome, function(tmp) grep(paste0(tmp, "\\b"), cp)) + all(sapply(tt, length) != 0) + }) + summary_table$interest_outcome <- paste0(interest_outcome, collapse = "; ") + summary_table <- summary_table[which(if.interest), ] + if (sum(if.interest) == 0) { + warning("No colocalization with interest outcomes.") + } + } else { + warning("Interest outcome is not in the analysis outcomes, please check.") + } + } + } else { + summary_table <- NULL + } + return(summary_table) +} + + +#' @rdname get_ucos_summary +#' +#' @title Get trait-specific summary table from a ColocBoost output. +#' +#' @description `get_ucos_summary` produces a trait-specific summary table for uncolocalized (single-trait) +#' associations from ColocBoost results. This is particularly useful for examining trait-specific signals +#' or for summarizing results from single-trait FineBoost analyses. +#' +#' @param cb_output Output object from `colocboost` analysis +#' @param outcome_names Optional vector of names of outcomes, which has the same order as Y in the original analysis. +#' @param region_name Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses. +#' +#' +#' @return A list containing: +#' \itemize{ +#' \item \code{ucos_summary}: A summary table for trait-specific, uncolocalized associations with the following columns: +#' \itemize{ +#' \item \code{outcomes}: Outcome being analyzed +#' \item \code{ucos_id}: Unique identifier for trait-specific confidence sets +#' \item \code{purity}: Minimum absolute correlation of variables within trait-specific confidence sets +#' \item \code{top_variable}: The variable with highest variant-level probability of association (VPA) +#' \item \code{top_variable_vpa}: Variant-level probability of association (VPA) for the top variable +#' \item \code{ucos_npc}: Normalized probability of causal association for the trait-specific confidence set +#' \item \code{n_variables}: Number of variables in trait-specific confidence set +#' \item \code{ucos_index}: Indices of variables in the trait-specific confidence set +#' \item \code{ucos_variables}: List of variables in the trait-specific confidence set +#' \item \code{ucos_variables_vpa}: Variant-level probability of association (VPA) for all variables in the confidence set +#' \item \code{region_name}: Region name if provided through the region_name parameter +#' } +#' \item \code{ambiguous_ucos_summary}: A summary table for ambiguous colocalization events with the following columns: +#' \itemize{ +#' \item \code{outcomes}: Outcome in the ambiguous colocalization event +#' \item \code{ucos_id}: Unique identifiers for the ambiguous event +#' \item \code{min_between_purity}: Minimum absolute correlation between variables across trait-specific sets in the ambiguous event +#' \item \code{median_between_purity}: Median absolute correlation between variables across trait-specific sets in the ambiguous event +#' \item \code{overlap_idx}: Indices of variables that overlap between ambiguous trait-specific sets +#' \item \code{overlap_variables}: Names of variables that overlap between ambiguous trait-specific sets +#' \item \code{n_recalibrated_variables}: Number of variables in the recalibrated colocalization set from an ambiguous event +#' \item \code{recalibrated_index}: Indices of variables in the recalibrated colocalization set from an ambiguous event +#' \item \code{recalibrated_variables}: Names of variables in the recalibrated colocalization set from an ambiguous event +#' \item \code{recalibrated_variables_vcp}: Variant colocalization probabilities for recalibrated variables from an ambiguous event +#' \item \code{region_name}: Region name if provided through the region_name parameter +#' } +#' } +#' +#' @examples +#' # colocboost example with single trait analysis +#' set.seed(1) +#' N <- 1000 +#' P <- 100 +#' # Generate X with LD structure +#' sigma <- 0.9^abs(outer(1:P, 1:P, "-")) +#' X <- MASS::mvrnorm(N, rep(0, P), sigma) +#' colnames(X) <- paste0("SNP", 1:P) +#' L <- 1 # Only one trait for single-trait analysis +#' true_beta <- matrix(0, P, L) +#' true_beta[10, 1] <- 0.5 # SNP10 affects the trait +#' true_beta[80, 1] <- 0.2 # SNP11 also affects the trait but with lower effect +#' Y <- X %*% true_beta + rnorm(N, 0, 1) +#' res <- colocboost(X = X, Y = Y, output_level = 2) +#' # Get the trait-specifc effect summary +#' get_ucos_summary(res) +#' +#' @source See detailed instructions in our tutorial portal: +#' \url{https://statfungen.github.io/colocboost/articles/Interpret_ColocBoost_Output.html} +#' +#' @keywords colocboost_inference +#' @family colocboost_utilities +#' @export +get_ucos_summary <- function(cb_output, outcome_names = NULL, region_name = NULL, + ambiguous_ucos = FALSE, + min_abs_corr_between_ucos = 0.5, + median_abs_corr_between_ucos = 0.8) { + + # - check input + if (!inherits(cb_output, "colocboost")) { + stop("Input must from colocboost object!") + } + + if (!("ucos_details" %in% names(cb_output))) { + warning( + "Since you want to extract trait-specific (uncolocalized) sets,", + " but there is no output of ucos_details from colocboost.\n", + " Please run colocboost model with output_level=2!" + ) + return(NULL) + } + + if (is.null(cb_output$ucos_details)){ + message("No trait-specific (uncolocalized) effects in this region!") + return(NULL) + } + + specific_cs <- cb_output$ucos_details + cs_outcome <- cb_output$data_info$outcome_info$outcome_names + if (!is.null(outcome_names)) { + cs_outcome <- outcome_names + } + vpa <- as.numeric(cb_output$vpa) + if (length(vpa) == 0){ + w <- do.call(cbind, specific_cs$ucos_weight) + vpa <- as.vector(1 - apply(1 - w, 1, prod)) + } + + summary_table <- matrix(NA, nrow = length(specific_cs$ucos$ucos_index), ncol = 9) + colnames(summary_table) <- c( + "outcomes", "ucos_id", "purity", + "top_variable", "top_variable_vpa", "n_variables", "ucos_index", + "ucos_variables", "ucos_variables_vpa" + ) + summary_table <- as.data.frame(summary_table) + summary_table[, 1] <- cs_outcome[unlist(specific_cs$ucos_outcomes$outcome_index)] + summary_table[, 2] <- names(specific_cs$ucos$ucos_index) + summary_table[, 3] <- as.numeric(diag(as.matrix(specific_cs$ucos_purity$min_abs_cor))) + summary_table[, 4] <- unlist(sapply(specific_cs$ucos$ucos_variables, function(tmp) tmp[1])) + summary_table[, 5] <- sapply(specific_cs$ucos$ucos_index, function(tmp) max(vpa[tmp])) + summary_table[, 6] <- as.numeric(sapply(specific_cs$ucos$ucos_index, length)) + summary_table[, 7] <- unlist(sapply(specific_cs$ucos$ucos_index, function(tmp) paste0(tmp, collapse = "; "))) + summary_table[, 8] <- unlist(sapply(specific_cs$ucos$ucos_variables, function(tmp) paste0(tmp, collapse = "; "))) + summary_table[, 9] <- unlist(sapply(specific_cs$ucos$ucos_index, function(tmp) paste0(vpa[tmp], collapse = "; "))) + if (!is.null(region_name)) { + summary_table$region_name <- region_name + } + summary_table <- as.data.frame(summary_table) + if (!ambiguous_ucos) return(summary_table) + + + # advanced summary for ambiguous colocalization at post-processing + output_summary <- list( + ucos_summary = summary_table, + ambiguous_ucos_summary = NULL + ) + test <- get_ambiguous_colocalization( + cb_output, + min_abs_corr_between_ucos = min_abs_corr_between_ucos, + median_abs_corr_between_ucos = median_abs_corr_between_ucos + ) + if (length(test$ambigous_ucos) == 0) return(output_summary) + + ambiguous_results <- test$ambigous_ucos + ambiguous_summary <- matrix(NA, nrow = length(ambiguous_results), ncol = 10) + colnames(ambiguous_summary) <- c( + "outcomes", "ucos_id", "min_between_purity", "median_between_purity", + "overlap_idx", "overlap_variables", "n_recalibrated_variables", + "recalibrated_index", "recalibrated_variables", "recalibrated_variables_vcp" + ) + + ambiguous_summary[, 1] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$ambigouse_ucos_outcomes$outcome_name, collapse = "; "))) + ambiguous_summary[, 2] <- names(ambiguous_results) + ambiguous_summary[, 3] <- sapply(ambiguous_results, function(tmp) max(tmp$ambigous_ucos_puriry$min_abs_cor[lower.tri(min_abs_cor)]) ) + ambiguous_summary[, 4] <- sapply(ambiguous_results, function(tmp) max(tmp$ambigous_ucos_puriry$median_abs_cor[lower.tri(min_abs_cor)]) ) + ambiguous_summary[, 5] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$ambigouse_ucos_overlap$ucos_index, collapse = "; "))) + ambiguous_summary[, 6] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$ambigouse_ucos_overlap$ucos_variables, collapse = "; "))) + ambiguous_summary[, 7] <- as.numeric(sapply(cos_recalibrated, length)) + ambiguous_summary[, 8] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$recalibrated_cos$cos_index, collapse = "; "))) + ambiguous_summary[, 9] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$recalibrated_cos$cos_variables, collapse = "; "))) + ambiguous_summary[, 10] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$recalibrated_cos_vcp[tmp$recalibrated_cos$cos_index], collapse = "; "))) + if (!is.null(region_name)) { + ambiguous_summary$region_name <- region_name + } + output_summary$ambiguous_ucos_summary <- as.data.frame(ambiguous_summary) + + return(output_summary) +} + +#' Extract CoS at different coverages +#' +#' @description `get_cos` extracts colocalization confidence sets (CoS) at different coverage levels +#' from ColocBoost results. When genotype data (X) or correlation matrix (Xcorr) is provided, it +#' can also calculate and filter CoS based on purity statistics, ensuring that variants within +#' each CoS are sufficiently correlated. +#' +#' @param cb_output Output object from `colocboost` analysis +#' @param coverage A number between 0 and 1 specifying the \dQuote{coverage} of the estimated colocalization confidence sets (CoS) (default is 0.95). +#' @param X Genotype matrix of values of the p variables. Used to compute correlations if Xcorr is not provided. +#' @param Xcorr Correlation matrix of correlations between variables. Alternative to X. +#' @param n_purity The maximum number of CoS variables used in calculating the correlation (\dQuote{purity}) statistics. +#' @param min_abs_corr The minimum absolute correlation value of variants in a CoS to be considered pass (\dQuote{purity}) statistics. +#' @param median_abs_corr The median absolute correlation value of variants in a CoS to be considered pass (\dQuote{purity}) statistics. +#' When the number of variables included in the CoS is greater than this number, the CoS variables are randomly subsampled. +#' +#' @return A list of indices of variables in each CoS. +#' +#' @examples +#' # colocboost example +#' set.seed(1) +#' N <- 1000 +#' P <- 100 +#' # Generate X with LD structure +#' sigma <- 0.9^abs(outer(1:P, 1:P, "-")) +#' X <- MASS::mvrnorm(N, rep(0, P), sigma) +#' colnames(X) <- paste0("SNP", 1:P) +#' L <- 3 +#' true_beta <- matrix(0, P, L) +#' true_beta[10, 1] <- 0.5 # SNP10 affects trait 1 +#' true_beta[10, 2] <- 0.4 # SNP10 also affects trait 2 (colocalized) +#' true_beta[50, 2] <- 0.3 # SNP50 only affects trait 2 +#' true_beta[80, 3] <- 0.6 # SNP80 only affects trait 3 +#' Y <- matrix(0, N, L) +#' for (l in 1:L) { +#' Y[, l] <- X %*% true_beta[, l] + rnorm(N, 0, 1) +#' } #' res <- colocboost(X = X, Y = Y) #' get_cos(res, coverage = 0.99, X = X) #' get_cos(res, coverage = 0.99, X = X, min_abs_corr = 0.95) @@ -701,6 +945,7 @@ get_cos <- function(cb_output, coverage = 0.95, X = NULL, Xcorr = NULL, n_purity return(cos_refined) } + #' Get integrated weight from different outcomes #' @keywords cb_get_functions #' @noRd @@ -728,147 +973,6 @@ get_in_cos <- function(weights, coverage = 0.95) { } -#' @rdname get_ambiguous_colocalization -#' -#' @title Get ambiguous colocalization events from trait-specific (uncolocalized) effects. -#' -#' @description `get_ambiguous_colocalization` get the colocalization by discarding the weaker colocalization events or colocalized outcomes -#' -#' @param cb_output Output object from `colocboost` analysis -#' @param min_abs_corr_between_ucos Minimum absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.5. -#' @param median_abs_corr_between_ucos Median absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.8. -#' @param tol A small, non-negative number specifying the convergence tolerance for checking the overlap of the variables in different sets. -#' -#' @return A \code{"colocboost"} object of colocboost output with additional elements: -#' \item{ambiguous_ucos}{If exists, a list of ambiguous trait-specific (uncolocalized) effects.} -#' -#' @examples -#' data(Ambiguous_Colocalization) -#' test_colocboost_results <- Ambiguous_Colocalization$ColocBoost_Results -#' res <- get_ambiguous_colocalization(test_colocboost_results) -#' names(res$ambigous_ucos) -#' -#' @source See detailed instructions in our tutorial portal: -#' \url{https://statfungen.github.io/colocboost/articles/Interpret_ColocBoost_Output.html} -#' -#' @family colocboost_inference -#' @export -get_ambiguous_colocalization <- function(cb_output, - min_abs_corr_between_ucos = 0.5, - median_abs_corr_between_ucos = 0.8, - tol = 1e-9) { - - if (!inherits(cb_output, "colocboost")) { - stop("Input must from colocboost output!") - } - - if (!("ucos_details" %in% names(cb_output))) { - warning( - "Since you want to extract ambiguous colocalization from trait-specific (uncolocalized) sets,", - " but there is no output of ucos_details from colocboost.\n", - " Please run colocboost model with output_level=2!", - ) - return(cb_output) - } - - if (is.null(cb_output$ucos_details)){ - message("No trait-specific (uncolocalized) effects in this region!") - return(cb_output) - } - - ucos_details <- cb_output$ucos_details - nucos <- length(ucos_details$ucos$ucos_index) - if (nucos == 1){ - message("Only one trait-specific (uncolocalized) effect in this region!") - return(cb_output) - } - - # Function to merge ambiguous ucos - merge_sets <- function(vec) { - split_lists <- lapply(vec, function(x) as.numeric(unlist(strsplit(x, ";")))) - result <- list() - while (length(split_lists) > 0) { - current <- split_lists[[1]] - split_lists <- split_lists[-1] - repeat { - overlap_index <- NULL - for (i in seq_along(split_lists)) { - if (length(intersect(current, split_lists[[i]])) > 0) { - overlap_index <- i - break - } - } - if (!is.null(overlap_index)) { - current <- union(current, split_lists[[overlap_index]]) - split_lists <- split_lists[-overlap_index] - } else { - break - } - } - result <- c(result, list(paste(sort(current), collapse = ";"))) - } - return(result) - } - - - purity <- ucos_details$ucos_purity - min_abs_cor <- purity$min_abs_cor - median_abs_cor <- purity$median_abs_cor - max_abs_cor <- purity$max_abs_cor - is_ambiguous <- (min_abs_cor > min_abs_corr_between_ucos) * - (abs(max_abs_cor - 1) < tol) * - (median_abs_cor > median_abs_corr_between_ucos) - diag(is_ambiguous) <- 0 # no need to check within ucos - - if (sum(is.between) == 0){ - message("No ambiguous colocalization events!") - return(cb_output) - } else { - message("There exists the ambiguous colocalization events from trait-specific effects. Extracting!") - } - - temp <- sapply(1:nrow(is_ambiguous), function(x) { - tt <- c(x, which(is_ambiguous[x, ] != 0)) - return(paste0(sort(tt), collapse = ";")) - }) - temp <- merge_sets(temp) - potential_merged <- lapply(temp, function(x) as.numeric(unlist(strsplit(x, ";")))) - potential_merged <- potential_merged[which(sapply(potential_merged, length) >= 2)] - - ambigous_events <- list() - ambigouse_ucos_names <- c() - for (i in 1:length(potential_merged)) { - idx <- potential_merged[[i]] - test_outcome <- unique(unlist(ucos_details$ucos_outcomes$outcome_index[idx])) - if (length(test_outcome) == 1) next - ambigouse_ucos_names[i] <- paste0(names(ucos_details$ucos$ucos_index)[idx], collapse = ";") - tmp <- list( - ambigouse_ucos = list( - ucos_index = ucos_details$ucos$ucos_index[idx], - ucos_variables = ucos_details$ucos$ucos_variables[idx] - ), - ambigouse_ucos_outcomes = list( - outcome_idx = ucos_details$ucos_outcomes$outcome_index[idx], - outcome_name = ucos_details$ucos_outcomes$outcome_name[idx] - ), - ambigous_ucos_weight = ucos_details$ucos_weight[idx], - ambigous_ucos_puriry = list( - min_abs_cor = min_abs_cor[idx, idx], - median_abs_cor = median_abs_cor[idx, idx], - max_abs_cor = max_abs_cor[idx, idx] - ) - ) - ambigous_events[[i]] <- tmp - } - names(ambigous_events) <- ambigouse_ucos_names - message(paste("There are", length(ambigous_events), "ambiguous trait-specific effects.")) - - cb_output$ambigous_ucos <- ambigous_events - return(cb_output) - -} - - #' Calculate purity within and in-between CoS #' #' @description Calculate purity statistics between all pairs of colocalization confidence sets (CoS) @@ -959,528 +1063,3 @@ get_cos_purity <- function(cos, X = NULL, Xcorr = NULL, n_purity = 100) { return(cos_purity) } - -#' @title Set of internal functions to re-organize ColocBoost output format -#' -#' @description -#' The `colocboost_output_reorganization` functions access basic properties inferences from a fitted ColocBoost model. This documentation serves as a summary for all related post-inference functions. -#' -#' @details -#' The following functions are included in this set: -#' `get_data_info` get formatted \code{data_info} in ColocBoost output -#' `get_cos_details` get formatted \code{cos_details} in ColocBoost output -#' `get_model_info` get formatted \code{model_info} in ColocBoost output -#' `get_full_output` get formatted additional information in ColocBoost output when \code{output_level!=1} -#' -#' These functions are not exported individually and are accessed via `colocboost_output_reorganization`. -#' -#' @rdname colocboost_output_reorganization -#' @keywords cb_reorganization -#' @noRd -colocboost_output_reorganization <- function() { - message("This function re-formats colocboost output as internal used. See details for more information.") -} - -#' Get formatted \code{data_info} in ColocBoost output -#' @noRd -#' @keywords cb_reorganization -get_data_info <- function(cb_obj) { - ## - analysis data information - n_outcome <- cb_obj$cb_model_para$L - n_variables <- cb_obj$cb_model_para$P - analysis_outcome <- cb_obj$cb_model_para$outcome_names - variables <- cb_obj$cb_data$variable.names - focal_outcome <- NULL - is_focal <- rep(FALSE, n_outcome) - if (!is.null(cb_obj$cb_model_para$focal_outcome_idx)) { - focal_outcome <- analysis_outcome[cb_obj$cb_model_para$focal_outcome_idx] - is_focal[cb_obj$cb_model_para$focal_outcome_idx] <- TRUE - } - is_sumstat <- grepl("sumstat_outcome", names(cb_obj$cb_data$data)) - N <- cb_obj$cb_model_para$N - check_no_N <- sapply(cb_obj$cb_model_para$N, is.null) - if (sum(check_no_N)!=0){ - N[which(check_no_N)] <- "NA" - N <- unlist(N) - } - outcome_info <- data.frame( - "outcome_names" = analysis_outcome, "sample_size" = N, - "is_sumstats" = is_sumstat, "is_focal" = is_focal - ) - rownames(outcome_info) <- paste0("y", 1:n_outcome) - - ## - marginal associations - z_scores <- lapply(cb_obj$cb_model, function(cb) { - as.numeric(cb$z_univariate) - }) - betas <- lapply(cb_obj$cb_model, function(cb) { - as.numeric(cb$beta) - }) - names(z_scores) <- names(betas) <- analysis_outcome - ## - output data info - data.info <- list( - "n_outcomes" = n_outcome, - "n_variables" = n_variables, - "outcome_info" = outcome_info, - "variables" = variables, - "coef" = betas, - "z" = z_scores - ) - return(data.info) -} - -#' Get formatted \code{cos_details} in ColocBoost output -#' @noRd -#' @keywords cb_reorganization -get_cos_details <- function(cb_obj, coloc_out, data_info = NULL) { - if (is.null(data_info)) { - data_info <- get_data_info(cb_obj) - } - - - ### ----- Define the colocalization results - coloc_sets <- coloc_out$cos - if (length(coloc_sets) != 0) { - # - colocalization outcome configurations - tmp <- get_cos_evidence(cb_obj, coloc_out, data_info) - normalization_evidence <- tmp$normalization_evidence - npc <- tmp$npc - cos_min_npc_outcome <- sapply(normalization_evidence, function(cp) min(cp$npc_outcome)) - - # - colocalized outcomes - analysis_outcome <- cb_obj$cb_model_para$outcome_names - coloc_outcome_index <- coloc_outcome <- list() - colocset_names <- c() - for (i in 1:length(coloc_out$cos)) { - coloc_outcome_index[[i]] <- coloc_out$coloc_outcomes[[i]] - coloc_outcome[[i]] <- analysis_outcome[coloc_outcome_index[[i]]] - colocset_names[i] <- paste0("cos", i, ":", paste0(paste0("y", coloc_outcome_index[[i]]), collapse = "_")) - if (grepl("merged", names(coloc_sets)[i])) { - colocset_names[i] <- paste0(colocset_names[i], ":merged") - } - } - names(coloc_outcome) <- names(coloc_outcome_index) <- colocset_names - names(npc) <- names(normalization_evidence) <- names(cos_min_npc_outcome) <- colocset_names - coloc_outcomes <- list("outcome_index" = coloc_outcome_index, "outcome_name" = coloc_outcome) - - # - colocalized sets for variables - coloc_csets_variableidx <- coloc_out$cos - coloc_csets_variablenames <- lapply(coloc_csets_variableidx, function(coloc_tmp) { - cb_obj$cb_model_para$variables[coloc_tmp] - }) - coloc_csets_variableidx <- lapply(coloc_csets_variablenames, function(variable) match(variable, data_info$variables)) - names(coloc_csets_variableidx) <- names(coloc_csets_variablenames) <- colocset_names - coloc_csets_original <- list("cos_index" = coloc_csets_variableidx, "cos_variables" = coloc_csets_variablenames) - - # - colocalized set cs_change - cs_change <- coloc_out$cs_change - rownames(cs_change) <- colocset_names - colnames(cs_change) <- analysis_outcome - - # - VCP - cos_weights <- lapply(coloc_out$avWeight, function(w) { - pos <- match(data_info$variables, cb_obj$cb_model_para$variables) - return(w[pos, , drop = FALSE]) - }) - int_weight <- lapply(cos_weights, get_integrated_weight, weight_fudge_factor = cb_obj$cb_model_para$weight_fudge_factor) - names(int_weight) <- names(cos_weights) <- colocset_names - vcp <- as.vector(1 - apply(1 - do.call(cbind, int_weight), 1, prod)) - names(vcp) <- data_info$variables - - # - resummary results - cos_re_idx <- lapply(int_weight, function(w) { - unlist(get_in_cos(w, coverage = cb_obj$cb_model_para$coverage)) - }) - cos_re_var <- lapply(cos_re_idx, function(idx) { - data_info$variables[idx] - }) - coloc_csets <- list("cos_index" = cos_re_idx, "cos_variables" = cos_re_var) - - # - hits variables in each csets - coloc_hits <- coloc_hits_variablenames <- coloc_hits_names <- c() - for (i in 1:length(int_weight)) { - inw <- int_weight[[i]] - pp <- which(inw == max(inw)) - coloc_hits <- c(coloc_hits, pp) - coloc_hits_variablenames <- c(coloc_hits_variablenames, data_info$variables[pp]) - if (length(pp) == 1) { - coloc_hits_names <- c(coloc_hits_names, names(int_weight)[i]) - } else { - coloc_hits_names <- c(coloc_hits_names, paste0(names(int_weight)[i], ".", 1:length(pp))) - } - } - coloc_hits <- data.frame("top_index" = coloc_hits, "top_variables" = coloc_hits_variablenames) - rownames(coloc_hits) <- coloc_hits_names - - # - purity - ncos <- length(coloc_csets$cos_index) - if (ncos >= 2) { - empty_matrix <- matrix(NA, ncos, ncos) - colnames(empty_matrix) <- rownames(empty_matrix) <- colocset_names - csets_purity <- lapply(1:3, function(ii) { - diag(empty_matrix) <- coloc_out$purity[, ii] - return(empty_matrix) - }) - for (i in 1:(ncos - 1)) { - for (j in (i + 1):ncos) { - cset1 <- coloc_csets$cos_index[[i]] - cset2 <- coloc_csets$cos_index[[j]] - y.i <- coloc_outcomes$outcome_index[[i]] - y.j <- coloc_outcomes$outcome_index[[j]] - yy <- unique(c(y.i, y.j)) - res <- list() - flag <- 1 - for (ii in yy) { - X_dict <- cb_obj$cb_data$dict[ii] - res[[flag]] <- get_between_purity(cset1, cset2, - X = cb_obj$cb_data$data[[X_dict]]$X, - Xcorr = cb_obj$cb_data$data[[X_dict]]$XtX, - miss_idx = cb_obj$cb_data$data[[ii]]$variable_miss, - P = cb_obj$cb_model_para$P - ) - flag <- flag + 1 - } - res <- Reduce(pmax, res) - csets_purity <- lapply(1:3, function(ii) { - csets_purity[[ii]][i, j] <- csets_purity[[ii]][j, i] <- res[ii] - return(csets_purity[[ii]]) - }) - } - } - names(csets_purity) <- c("min_abs_cor", "max_abs_cor", "median_abs_cor") - } else { - csets_purity <- lapply(1:length(coloc_out$purity), function(i) { - tmp <- as.matrix(coloc_out$purity[i]) - rownames(tmp) <- colnames(tmp) <- colocset_names - tmp - }) - names(csets_purity) <- c("min_abs_cor", "max_abs_cor", "median_abs_cor") - } - - # - save coloc_results - coloc_results <- list( - "cos" = coloc_csets, - "cos_outcomes" = coloc_outcomes, - "cos_vcp" = int_weight, - "cos_outcomes_npc" = normalization_evidence, - "cos_npc" = npc, - "cos_min_npc_outcome" = cos_min_npc_outcome, - "cos_purity" = csets_purity, - "cos_top_variables" = coloc_hits, - "cos_weights" = cos_weights - ) - - - # - missing variable and warning message - missing_variables_idx <- Reduce(union, lapply(cb_obj$cb_data$data, function(cb) cb$variable_miss)) - missing_variables <- cb_obj$cb_model_para$variables[missing_variables_idx] - cos_missing_variables_idx <- lapply(coloc_csets_original$cos_variables, function(variable) { - missing <- intersect(variable, missing_variables) - if (length(missing) != 0) { - match(missing, data_info$variables) - } else { - NULL - } - }) - cos_missing_variables <- lapply(cos_missing_variables_idx, function(variable) { - if (!is.null(variable)) { - data_info$variables[variable] - } else { - NULL - } - }) - warning_needed <- any(!sapply(cos_missing_variables, is.null)) - if (warning_needed) { - is_missing <- which(!sapply(cos_missing_variables, is.null)) - cos_missing_variables_idx <- cos_missing_variables_idx[is_missing] - cos_missing_variables <- cos_missing_variables[is_missing] - cos_missing_vcp <- lapply(cos_missing_variables_idx, function(idx) { - vcp[idx] - }) - warning_message <- paste( - "CoS", paste(names(cos_missing_variables_idx), collapse = ","), - "contains missing variables in at least one outcome.", - "The missing variables will cause the ~0 VCP scores." - ) - cos_warnings <- list( - "cos_missing_info" = list( - "index" = cos_missing_variables_idx, - "variables" = cos_missing_variables, - "vcp" = cos_missing_vcp - ), - "warning_message" = warning_message - ) - coloc_results$cos_warnings <- cos_warnings - } - } else { - coloc_results <- NULL - vcp <- NULL - } - return(list("cos_results" = coloc_results, "vcp" = vcp)) -} - -#' Get formatted \code{model_info} in ColocBoost output -#' @noRd -#' @keywords cb_reorganization -get_model_info <- function(cb_obj, outcome_names = NULL) { - if (is.null(outcome_names)) { - data_info <- get_data_info(cb_obj) - outcome_names <- data_info$outcome_info$outcome_names - } - - profile_loglik <- cb_obj$cb_model_para$profile_loglike - n_updates <- cb_obj$cb_model_para$num_updates - n_updates_outcome <- cb_obj$cb_model_para$num_updates_outcome - model_coveraged <- cb_obj$cb_model_para$coveraged - model_coveraged_outcome <- cb_obj$cb_model_para$coveraged_outcome - jk_update <- cb_obj$cb_model_para$real_update_jk - if (!is.null(jk_update)){ - rownames(jk_update) <- paste0("jk_star_", 1:nrow(jk_update)) - colnames(jk_update) <- outcome_names - } - outcome_proximity_obj <- lapply(cb_obj$cb_model, function(cb) cb$obj_path) - outcome_coupled_best_update_obj <- lapply(cb_obj$cb_model, function(cb) cb$obj_single) - outcome_profile_loglik <- lapply(cb_obj$cb_model, function(cb) cb$profile_loglike_each) - names(outcome_proximity_obj) <- names(outcome_coupled_best_update_obj) <- - names(outcome_profile_loglik) <- names(n_updates_outcome) <- - names(model_coveraged_outcome) <- outcome_names - ll <- list( - "model_coveraged" = model_coveraged, - "n_updates" = n_updates, - "profile_loglik" = profile_loglik, - "outcome_profile_loglik" = outcome_profile_loglik, - "outcome_proximity_obj" = outcome_proximity_obj, - "outcome_coupled_best_update_obj" = outcome_coupled_best_update_obj, - "outcome_model_coveraged" = model_coveraged_outcome, - "outcome_n_updates" = n_updates_outcome, - "jk_star" = jk_update - ) - return(ll) -} - -#' Get formatted additional information in ColocBoost output when \code{output_level!=1} -#' @noRd -#' @keywords cb_reorganization -get_full_output <- function(cb_obj, past_out = NULL, variables = NULL, cb_output = NULL, weaker_ucos = FALSE) { - cb_model <- cb_obj$cb_model - cb_model_para <- cb_obj$cb_model_para - - ## - obtain the order of variables based on the variables names if it has position information - if (!is.null(variables)) { - ordered <- 1:length(cb_obj$cb_model_para$variables) - } else { - ordered <- match(variables, cb_obj$cb_model_para$variables) - } - - ## - reorder all output - # - cb_model - tmp <- lapply(cb_model, function(cb) { - cb$beta <- cb$beta[ordered] - cb$weights_path <- cb$weights_path[, ordered] - cb$change_loglike <- cb$change_loglike[ordered] - cb$correlation <- as.numeric(cb$correlation[ordered]) - cb$z <- as.numeric(cb$z[ordered]) - cb$ld_jk <- cb$ld_jk[, ordered] - cb$z_univariate <- as.numeric(cb$z_univariate[ordered]) - cb$beta_hat <- as.numeric(cb$beta_hat[ordered]) - cb$multi_correction <- as.numeric(cb$multi_correction[ordered]) - cb$multi_correction_univariate <- as.numeric(cb$multi_correction_univariate[ordered]) - return(cb) - }) - cb_model <- tmp - - # - sets - if (!is.null(past_out)) { - out_ucos <- past_out$ucos - # - single sets - if (!is.null(out_ucos$ucos_each)) { - out_ucos$ucos_each <- lapply(out_ucos$ucos_each, function(cs) { - match(cb_model_para$variables[cs], variables) - }) - out_ucos$avW_ucos_each <- out_ucos$avW_ucos_each[ordered, , drop = FALSE] - - # - re-orginize specific results - analysis_outcome <- cb_obj$cb_model_para$outcome_names - specific_outcome_index <- specific_outcome <- list() - specific_cs_names <- c() - for (i in 1:length(out_ucos$ucos_each)) { - cc <- out_ucos$avW_ucos_each[, i, drop = FALSE] - tmp_names <- colnames(cc) - specific_outcome_index[[i]] <- as.numeric(gsub(".*Y([0-9]+).*", "\\1", tmp_names)) - specific_outcome[[i]] <- analysis_outcome[specific_outcome_index[[i]]] - specific_cs_names[i] <- paste0("ucos", i, ":y", specific_outcome_index[[i]]) - } - names(specific_outcome) <- names(specific_outcome_index) <- specific_cs_names - specific_outcomes <- list("outcome_index" = specific_outcome_index, "outcome_name" = specific_outcome) - - # - specific sets for variables - specific_cs_variableidx <- out_ucos$ucos_each - specific_cs_variablenames <- lapply(specific_cs_variableidx, function(specific_tmp) { - cb_obj$cb_model_para$variables[specific_tmp] - }) - specific_cs_variableidx <- lapply(specific_cs_variablenames, function(variable) match(variable, variables)) - names(specific_cs_variableidx) <- names(specific_cs_variablenames) <- specific_cs_names - specific_css <- list("ucos_index" = specific_cs_variableidx, "ucos_variables" = specific_cs_variablenames) - - # - specific set cs_change - cs_change <- out_ucos$change_obj_each - rownames(cs_change) <- specific_cs_names - colnames(cs_change) <- analysis_outcome - index_change <- as.data.frame(which(cs_change != 0, arr.ind = TRUE)) - change_outcomes <- analysis_outcome[index_change$col] - change_values <- diag(as.matrix(cs_change[index_change$row, index_change$col])) - cs_change <- data.frame("ucos_outcome" = change_outcomes, "ucos_delta" = change_values) - - # - filter weak ucos - check_null_max <- sapply(cb_model, function(cb) cb$check_null_max) - remove_weak <- sapply(1:nrow(cs_change), function(ic) { - outcome_tmp <- cs_change$ucos_outcome[ic] - delta_tmp <- cs_change$ucos_delta[ic] - pp <- which(cb_obj$cb_model_para$outcome_names == outcome_tmp) - check_tmp <- check_null_max[pp] - delta_tmp >= check_tmp - }) - keep_ucos <- which(remove_weak) - if (length(keep_ucos) == 0) { - specific_results <- NULL - } else { - specific_outcomes$outcome_index <- specific_outcomes$outcome_index[keep_ucos] - specific_outcomes$outcome_name <- specific_outcomes$outcome_name[keep_ucos] - specific_css$ucos_index <- specific_css$ucos_index[keep_ucos] - specific_css$ucos_variables <- specific_css$ucos_variables[keep_ucos] - cs_change <- cs_change[keep_ucos, , drop = FALSE] - out_ucos$avW_ucos_each <- out_ucos$avW_ucos_each[, keep_ucos, drop = FALSE] - specific_cs_names <- specific_cs_names[keep_ucos] - out_ucos$purity_each <- out_ucos$purity_each[keep_ucos, , drop = FALSE] - - # - ucos_weight - specific_w <- lapply(1:ncol(out_ucos$avW_ucos_each), function(ii) out_ucos$avW_ucos_each[, ii, drop = FALSE]) - names(specific_w) <- specific_cs_names - - # - hits variables in each csets - cs_hits <- sapply(1:length(specific_w), function(jj) { - inw <- specific_w[[jj]] - sample(which(inw == max(inw)), 1) - }) - cs_hits_variablenames <- sapply(cs_hits, function(ch) variables[ch]) - specific_cs_hits <- data.frame("top_index" = cs_hits, "top_variables" = cs_hits_variablenames) # save - rownames(specific_cs_hits) <- specific_cs_names - - # - purity - nucos <- length(specific_css$ucos_index) - if (nucos >= 2) { - empty_matrix <- matrix(NA, nucos, nucos) - colnames(empty_matrix) <- rownames(empty_matrix) <- specific_cs_names - specific_cs_purity <- lapply(1:3, function(ii) { - diag(empty_matrix) <- out_ucos$purity_each[, ii] - return(empty_matrix) - }) - for (i in 1:(nucos - 1)) { - for (j in (i + 1):nucos) { - cset1 <- specific_css$ucos_index[[i]] - cset2 <- specific_css$ucos_index[[j]] - y.i <- specific_outcomes$outcome_index[[i]] - y.j <- specific_outcomes$outcome_index[[j]] - yy <- unique(c(y.i, y.j)) - res <- list() - flag <- 1 - for (ii in yy) { - X_dict <- cb_obj$cb_data$dict[ii] - res[[flag]] <- get_between_purity(cset1, cset2, - X = cb_obj$cb_data$data[[X_dict]]$X, - Xcorr = cb_obj$cb_data$data[[X_dict]]$XtX, - miss_idx = cb_obj$cb_data$data[[ii]]$variable_miss, - P = cb_obj$cb_model_para$P - ) - flag <- flag + 1 - } - res <- Reduce(pmax, res) - specific_cs_purity <- lapply(1:3, function(ii) { - specific_cs_purity[[ii]][i, j] <- specific_cs_purity[[ii]][j, i] <- res[ii] - return(specific_cs_purity[[ii]]) - }) - } - } - names(specific_cs_purity) <- c("min_abs_cor", "max_abs_cor", "median_abs_cor") - } else { - specific_cs_purity <- out_ucos$purity_each - rownames(specific_cs_purity) <- specific_cs_names - } - - # - cos&ucos purity - cos <- cb_output$cos_details$cos$cos_index - ncos <- length(cos) - if (ncos != 0) { - empty_matrix <- matrix(NA, ncos, nucos) - colnames(empty_matrix) <- specific_cs_names - rownames(empty_matrix) <- names(cos) - cos_ucos_purity <- lapply(1:3, function(ii) empty_matrix) - for (i in 1:ncos) { - for (j in 1:nucos) { - cset1 <- cos[[i]] - cset2 <- specific_css$ucos_index[[j]] - y.i <- cb_output$cos_details$cos_outcomes$outcome_index[[i]] - y.j <- specific_outcomes$outcome_index[[j]] - yy <- unique(c(y.i, y.j)) - res <- list() - flag <- 1 - for (ii in yy) { - X_dict <- cb_obj$cb_data$dict[ii] - res[[flag]] <- get_between_purity(cset1, cset2, - X = cb_obj$cb_data$data[[X_dict]]$X, - Xcorr = cb_obj$cb_data$data[[X_dict]]$XtX, - miss_idx = cb_obj$cb_data$data[[ii]]$variable_miss, - P = cb_obj$cb_model_para$P - ) - flag <- flag + 1 - } - res <- Reduce(pmax, res) - cos_ucos_purity <- lapply(1:3, function(ii) { - cos_ucos_purity[[ii]][i, j] <- res[ii] - return(cos_ucos_purity[[ii]]) - }) - } - } - names(cos_ucos_purity) <- c("min_abs_cor", "max_abs_cor", "median_abs_cor") - } else { - cos_ucos_purity <- NULL - } - - - # - save coloc_results - specific_results <- list( - "ucos" = specific_css, - "ucos_outcomes" = specific_outcomes, - "ucos_weight" = specific_w, - "ucos_top_variables" = specific_cs_hits, - "ucos_purity" = specific_cs_purity, - "cos_ucos_purity" = cos_ucos_purity, - "ucos_outcomes_delta" = cs_change - ) - } - } else { - specific_results <- NULL - } - - # - cb_model_para - cb_model_para$N <- as.numeric(unlist(cb_model_para$N)) - cb_model_para$variables <- variables - - ll <- list( - "ucos_details" = specific_results, - "cb_model" = cb_model, - "cb_model_para" = cb_model_para - ) - } else { - # - cb_model_para - cb_model_para$N <- as.numeric(unlist(cb_model_para$N)) - cb_model_para$variables <- variables - ll <- list( - "ucos_detials" = NULL, - "cb_model" = cb_model, - "cb_model_para" = cb_model_para - ) - } - - return(ll) -} diff --git a/man/get_ambiguous_colocalization.Rd b/man/get_ambiguous_colocalization.Rd index 72ca201..44d64a8 100644 --- a/man/get_ambiguous_colocalization.Rd +++ b/man/get_ambiguous_colocalization.Rd @@ -41,8 +41,6 @@ names(res$ambigous_ucos) \seealso{ Other colocboost_inference: \code{\link{get_colocboost_summary}()}, -\code{\link{get_cos_summary}()}, -\code{\link{get_robust_colocalization}()}, -\code{\link{get_ucos_summary}()} +\code{\link{get_robust_colocalization}()} } \concept{colocboost_inference} diff --git a/man/get_colocboost_summary.Rd b/man/get_colocboost_summary.Rd index 836a435..b5730bc 100644 --- a/man/get_colocboost_summary.Rd +++ b/man/get_colocboost_summary.Rd @@ -10,57 +10,63 @@ See detailed instructions in our tutorial portal: \usage{ get_colocboost_summary( cb_output, + summary_level = 1, outcome_names = NULL, interest_outcome = NULL, region_name = NULL, - min_abs_corr = 0.5, - median_cos_abs_corr = 0.8 + min_abs_corr_between_ucos = 0.5, + median_abs_corr_between_ucos = 0.8, + tol = 1e-09 ) } \arguments{ \item{cb_output}{Output object from \code{colocboost} analysis} +\item{summary_level}{When \code{summary_level = 1}, return basic sumamry table for colocalization results. See details in \code{get_ucos_summary} function when \code{summary_level = 2}.} + \item{outcome_names}{Optional vector of names of outcomes, which has the same order as Y in the original analysis.} \item{interest_outcome}{Optional vector specifying a subset of outcomes from \code{outcome_names} to focus on. When provided, only colocalization events that include at least one of these outcomes will be returned.} \item{region_name}{Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses.} + +\item{min_abs_corr_between_ucos}{Minimum absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.5.} + +\item{median_abs_corr_between_ucos}{Median absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.8.} + +\item{tol}{A small, non-negative number specifying the convergence tolerance for checking the overlap of the variables in different sets.} } \value{ -A list of all summary tables for colocalization events and trait-specific associations if exists. - -\item{cos_summary}{A summary table for colocalization events with the following columns: +A list containing results from the ColocBoost analysis: +\itemize{ +\item When \code{summary_level = 1} (default): \itemize{ -\item{focal_outcome}{The focal outcome being analyzed if exists. Otherwise, it is \code{FALSE}.} -\item{colocalized_outcomes}{Colocalized outcomes for colocalization confidence set (CoS)} -\item{cos_id}{Unique identifier for colocalization confidence set (CoS)} -\item{purity}{Minimum absolute correlation of variables with in colocalization confidence set (CoS)} -\item{top_variable}{The variable with highest variant colocalization probability (VCP)} -\item{top_variable_vcp}{Variant colocalization probability for the top variable} -\item{cos_npc}{Normalized probability of colocalization} -\item{min_npc_outcome}{Minimum normalized probability of colocalized traits} -\item{n_variables}{Number of variables in colocalization confidence set (CoS)} -\item{colocalized_index}{Indices of colocalized variables} -\item{colocalized_variables}{List of colocalized variables} -\item{colocalized_variables_vcp}{Variant colocalization probabilities for all colocalized variables} +\item \code{cos_summary}: A summary table for colocalization events with the following columns: +\itemize{ +\item \code{focal_outcome}: The focal outcome being analyzed if exists. Otherwise, it is \code{FALSE}. +\item \code{colocalized_outcomes}: Colocalized outcomes for colocalization confidence set (CoS) +\item \code{cos_id}: Unique identifier for colocalization confidence set (CoS) +\item \code{purity}: Minimum absolute correlation of variables within colocalization confidence set (CoS) +\item \code{top_variable}: The variable with highest variant colocalization probability (VCP) +\item \code{top_variable_vcp}: Variant colocalization probability for the top variable +\item \code{cos_npc}: Normalized probability of colocalization +\item \code{min_npc_outcome}: Minimum normalized probability of colocalized traits +\item \code{n_variables}: Number of variables in colocalization confidence set (CoS) +\item \code{colocalized_index}: Indices of colocalized variables +\item \code{colocalized_variables}: List of colocalized variables +\item \code{colocalized_variables_vcp}: Variant colocalization probabilities for all colocalized variables } } - -\item{ambigouse_cos_summary}{Colocalized outcomes for colocalization confidence set (CoS) } - -\item{ucos_summary}{A summary table for trait-specific, uncolocalized associations with the following columns: +\item When \code{summary_level = 2}: \itemize{ -\item{outcomes}{Outcome being analyzed} -\item{ucos_id}{Unique identifier for trait-specific confidence sets} -\item{purity}{Minimum absolute correlation of variables within trait-specific confidence sets} -\item{top_variable}{The variable with highest variant-level probability of association (VPA)} -\item{top_variable_vpa}{Variant-level probability of association (VPA) for the top variable} -\item{ucos_npc}{Normalized probability of causal association for the trait-specific confidence set} -\item{n_variables}{Number of variables in trait-specific confidence set} -\item{ucos_index}{Indices of variables in the trait-specific confidence set} -\item{ucos_variables}{List of variables in the trait-specific confidence set} -\item{ucos_variables_vpa}{Variant-level probability of association (VPA) for all variables in the confidence set} -\item{region_name}{Region name if provided through the region_name parameter} +\item \code{cos_summary}: As described above +\item \code{ucos_summary}: A summary table for trait-specific (uncolocalized) effects +} +\item When \code{summary_level = 3}: +\itemize{ +\item \code{cos_summary}: As described above +\item \code{ucos_summary}: A summary table for trait-specific (uncolocalized) effects +\item \code{ambiguous_ucos_summary}: A summary table for ambiguous colocalization events from trait-specific effects } } } @@ -68,6 +74,10 @@ A list of all summary tables for colocalization events and trait-specific associ \code{get_colocboost_summary} get colocalization and trait-specific summary table with or without the outcomes of interest. } +\details{ +When \code{summary_level = 2} or \code{summary_level = 3}, additional details for trait-specific effects and ambiguous +colocalization events are included. See \code{\link{get_ucos_summary}} for details on these tables. +} \examples{ # colocboost example set.seed(1) @@ -88,14 +98,12 @@ for (l in 1:L) { Y[, l] <- X \%*\% true_beta[, l] + rnorm(N, 0, 1) } res <- colocboost(X = X, Y = Y) -get_cos_summary(res) +get_colocboost_summary(res) } \seealso{ Other colocboost_inference: \code{\link{get_ambiguous_colocalization}()}, -\code{\link{get_cos_summary}()}, -\code{\link{get_robust_colocalization}()}, -\code{\link{get_ucos_summary}()} +\code{\link{get_robust_colocalization}()} } \concept{colocboost_inference} diff --git a/man/get_cormat.Rd b/man/get_cormat.Rd index 9ace142..72bf230 100644 --- a/man/get_cormat.Rd +++ b/man/get_cormat.Rd @@ -32,7 +32,9 @@ cormat <- get_cormat(X) Other colocboost_utilities: \code{\link{get_cos}()}, \code{\link{get_cos_purity}()}, -\code{\link{get_hierarchical_clusters}()} +\code{\link{get_cos_summary}()}, +\code{\link{get_hierarchical_clusters}()}, +\code{\link{get_ucos_summary}()} } \concept{colocboost_utilities} \keyword{cb_post_inference} diff --git a/man/get_cos.Rd b/man/get_cos.Rd index 9dbcee0..f064a46 100644 --- a/man/get_cos.Rd +++ b/man/get_cos.Rd @@ -67,6 +67,8 @@ get_cos(res, coverage = 0.99, X = X, min_abs_corr = 0.95) Other colocboost_utilities: \code{\link{get_cormat}()}, \code{\link{get_cos_purity}()}, -\code{\link{get_hierarchical_clusters}()} +\code{\link{get_cos_summary}()}, +\code{\link{get_hierarchical_clusters}()}, +\code{\link{get_ucos_summary}()} } \concept{colocboost_utilities} diff --git a/man/get_cos_purity.Rd b/man/get_cos_purity.Rd index 724ef91..31de449 100644 --- a/man/get_cos_purity.Rd +++ b/man/get_cos_purity.Rd @@ -51,6 +51,8 @@ get_cos_purity(cos_res$cos, X = X) Other colocboost_utilities: \code{\link{get_cormat}()}, \code{\link{get_cos}()}, -\code{\link{get_hierarchical_clusters}()} +\code{\link{get_cos_summary}()}, +\code{\link{get_hierarchical_clusters}()}, +\code{\link{get_ucos_summary}()} } \concept{colocboost_utilities} diff --git a/man/get_cos_summary.Rd b/man/get_cos_summary.Rd index 52ed605..4c14017 100644 --- a/man/get_cos_summary.Rd +++ b/man/get_cos_summary.Rd @@ -66,10 +66,12 @@ get_cos_summary(res) } \seealso{ -Other colocboost_inference: -\code{\link{get_ambiguous_colocalization}()}, -\code{\link{get_colocboost_summary}()}, -\code{\link{get_robust_colocalization}()}, +Other colocboost_utilities: +\code{\link{get_cormat}()}, +\code{\link{get_cos}()}, +\code{\link{get_cos_purity}()}, +\code{\link{get_hierarchical_clusters}()}, \code{\link{get_ucos_summary}()} } -\concept{colocboost_inference} +\concept{colocboost_utilities} +\keyword{colocboost_inference} diff --git a/man/get_hierarchical_clusters.Rd b/man/get_hierarchical_clusters.Rd index cd69fa9..f1e4a49 100644 --- a/man/get_hierarchical_clusters.Rd +++ b/man/get_hierarchical_clusters.Rd @@ -39,7 +39,9 @@ clusters$Q_modularity Other colocboost_utilities: \code{\link{get_cormat}()}, \code{\link{get_cos}()}, -\code{\link{get_cos_purity}()} +\code{\link{get_cos_purity}()}, +\code{\link{get_cos_summary}()}, +\code{\link{get_ucos_summary}()} } \concept{colocboost_utilities} \keyword{cb_post_inference} diff --git a/man/get_robust_colocalization.Rd b/man/get_robust_colocalization.Rd index 1e805b5..b898f54 100644 --- a/man/get_robust_colocalization.Rd +++ b/man/get_robust_colocalization.Rd @@ -71,8 +71,6 @@ filter_res$cos_details$cos$cos_index \seealso{ Other colocboost_inference: \code{\link{get_ambiguous_colocalization}()}, -\code{\link{get_colocboost_summary}()}, -\code{\link{get_cos_summary}()}, -\code{\link{get_ucos_summary}()} +\code{\link{get_colocboost_summary}()} } \concept{colocboost_inference} diff --git a/man/get_ucos_summary.Rd b/man/get_ucos_summary.Rd index e2349f0..7d65d74 100644 --- a/man/get_ucos_summary.Rd +++ b/man/get_ucos_summary.Rd @@ -8,7 +8,14 @@ See detailed instructions in our tutorial portal: \url{https://statfungen.github.io/colocboost/articles/Interpret_ColocBoost_Output.html} } \usage{ -get_ucos_summary(cb_output, outcome_names = NULL, region_name = NULL) +get_ucos_summary( + cb_output, + outcome_names = NULL, + region_name = NULL, + ambiguous_ucos = FALSE, + min_abs_corr_between_ucos = 0.5, + median_abs_corr_between_ucos = 0.8 +) } \arguments{ \item{cb_output}{Output object from \code{colocboost} analysis} @@ -18,18 +25,37 @@ get_ucos_summary(cb_output, outcome_names = NULL, region_name = NULL) \item{region_name}{Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses.} } \value{ -A summary table for trait-specific, uncolocalized associations with the following columns: -\item{outcomes}{Outcome being analyzed} -\item{ucos_id}{Unique identifier for trait-specific confidence sets} -\item{purity}{Minimum absolute correlation of variables within trait-specific confidence sets} -\item{top_variable}{The variable with highest variant-level probability of association (VPA)} -\item{top_variable_vpa}{Variant-level probability of association (VPA) for the top variable} -\item{ucos_npc}{Normalized probability of causal association for the trait-specific confidence set} -\item{n_variables}{Number of variables in trait-specific confidence set} -\item{ucos_index}{Indices of variables in the trait-specific confidence set} -\item{ucos_variables}{List of variables in the trait-specific confidence set} -\item{ucos_variables_vpa}{Variant-level probability of association (VPA) for all variables in the confidence set} -\item{region_name}{Region name if provided through the region_name parameter} +A list containing: +\itemize{ +\item \code{ucos_summary}: A summary table for trait-specific, uncolocalized associations with the following columns: +\itemize{ +\item \code{outcomes}: Outcome being analyzed +\item \code{ucos_id}: Unique identifier for trait-specific confidence sets +\item \code{purity}: Minimum absolute correlation of variables within trait-specific confidence sets +\item \code{top_variable}: The variable with highest variant-level probability of association (VPA) +\item \code{top_variable_vpa}: Variant-level probability of association (VPA) for the top variable +\item \code{ucos_npc}: Normalized probability of causal association for the trait-specific confidence set +\item \code{n_variables}: Number of variables in trait-specific confidence set +\item \code{ucos_index}: Indices of variables in the trait-specific confidence set +\item \code{ucos_variables}: List of variables in the trait-specific confidence set +\item \code{ucos_variables_vpa}: Variant-level probability of association (VPA) for all variables in the confidence set +\item \code{region_name}: Region name if provided through the region_name parameter +} +\item \code{ambiguous_ucos_summary}: A summary table for ambiguous colocalization events with the following columns: +\itemize{ +\item \code{outcomes}: Outcome in the ambiguous colocalization event +\item \code{ucos_id}: Unique identifiers for the ambiguous event +\item \code{min_between_purity}: Minimum absolute correlation between variables across trait-specific sets in the ambiguous event +\item \code{median_between_purity}: Median absolute correlation between variables across trait-specific sets in the ambiguous event +\item \code{overlap_idx}: Indices of variables that overlap between ambiguous trait-specific sets +\item \code{overlap_variables}: Names of variables that overlap between ambiguous trait-specific sets +\item \code{n_recalibrated_variables}: Number of variables in the recalibrated colocalization set from an ambiguous event +\item \code{recalibrated_index}: Indices of variables in the recalibrated colocalization set from an ambiguous event +\item \code{recalibrated_variables}: Names of variables in the recalibrated colocalization set from an ambiguous event +\item \code{recalibrated_variables_vcp}: Variant colocalization probabilities for recalibrated variables from an ambiguous event +\item \code{region_name}: Region name if provided through the region_name parameter +} +} } \description{ \code{get_ucos_summary} produces a trait-specific summary table for uncolocalized (single-trait) @@ -56,10 +82,12 @@ get_ucos_summary(res) } \seealso{ -Other colocboost_inference: -\code{\link{get_ambiguous_colocalization}()}, -\code{\link{get_colocboost_summary}()}, +Other colocboost_utilities: +\code{\link{get_cormat}()}, +\code{\link{get_cos}()}, +\code{\link{get_cos_purity}()}, \code{\link{get_cos_summary}()}, -\code{\link{get_robust_colocalization}()} +\code{\link{get_hierarchical_clusters}()} } -\concept{colocboost_inference} +\concept{colocboost_utilities} +\keyword{colocboost_inference} diff --git a/tests/testthat/test_corner_cases.R b/tests/testthat/test_corner_cases.R index 78756cf..0ba15bd 100644 --- a/tests/testthat/test_corner_cases.R +++ b/tests/testthat/test_corner_cases.R @@ -334,4 +334,59 @@ test_that("colocboost prioritizes focal outcome correctly", { expect_equal(result_focal2$data_info$outcome_info$is_focal[1], FALSE) expect_equal(result_focal2$data_info$outcome_info$is_focal[2], TRUE) -}) \ No newline at end of file +}) + + +# Test with ambiguous corner cases +test_that("get_ambiguous_colocalization handles edge cases with correlation thresholds", { + + data(Ambiguous_Colocalization) + test_colocboost_results <- Ambiguous_Colocalization$ColocBoost_Results + + # Test with very high correlation thresholds (should find fewer ambiguities) + result_high_thresh <- get_ambiguous_colocalization( + test_colocboost_results, + min_abs_corr_between_ucos = 0.95, + median_abs_corr_between_ucos = 0.98 + ) + + # Test with very low correlation thresholds (should find more ambiguities) + result_low_thresh <- get_ambiguous_colocalization( + test_colocboost_results, + min_abs_corr_between_ucos = 0.1, + median_abs_corr_between_ucos = 0.3 + ) + + # Compare number of ambiguous events found with different thresholds + # Generally expect: n_high_thresh <= n_default <= n_low_thresh + n_high <- length(result_high_thresh$ambigous_ucos) + n_default <- length(get_ambiguous_colocalization(test_colocboost_results)$ambigous_ucos) + n_low <- length(result_low_thresh$ambigous_ucos) + + # Higher thresholds should find equal or fewer ambiguities than default + expect_true(n_high <= n_default) + + # Lower thresholds should find equal or more ambiguities than default + expect_true(n_low >= n_default) + + # Test with extreme threshold (min=1.0, median=1.0) - should find very few or no ambiguities + expect_message( + result_extreme <- get_ambiguous_colocalization( + test_colocboost_results, + min_abs_corr_between_ucos = 1.0, + median_abs_corr_between_ucos = 1.0 + ), + "No ambiguous colocalization events!" + ) + + # Test with threshold at 0 - should find many/all potential ambiguities + result_zero <- get_ambiguous_colocalization( + test_colocboost_results, + min_abs_corr_between_ucos = 0.0, + median_abs_corr_between_ucos = 0.0 + ) + expect_true(length(result_zero$ambigous_ucos) >= n_low) + + +}) + diff --git a/tests/testthat/test_inference.R b/tests/testthat/test_inference.R index 7442feb..5fa47d3 100644 --- a/tests/testthat/test_inference.R +++ b/tests/testthat/test_inference.R @@ -1,7 +1,7 @@ library(testthat) # Utility function to generate a simple colocboost results -generate_test_result <- function(n = 100, p = 20, L = 2, seed = 42) { +generate_test_result <- function(n = 100, p = 50, L = 2, seed = 42) { set.seed(seed) # Generate X with LD structure @@ -20,12 +20,12 @@ generate_test_result <- function(n = 100, p = 20, L = 2, seed = 42) { if (L == 1) { # Single trait case true_beta[5, 1] <- 0.7 # SNP5 affects the trait - true_beta[10, 1] <- 0.6 # SNP10 also affects the trait + true_beta[40, 1] <- 0.6 # SNP10 also affects the trait } else { # Multi-trait case true_beta[5, 1] <- 0.7 # SNP5 affects trait 1 true_beta[5, 2] <- 0.6 # SNP5 also affects trait 2 (colocalized) - true_beta[10, 2] <- 0.5 # SNP10 only affects trait 2 + true_beta[40, 2] <- 0.8 # SNP10 only affects trait 2 } # Generate Y with some noise @@ -186,28 +186,65 @@ test_that("get_hierarchical_clusters functions correctly", { expect_equal(result_all_high$n_cluster, 1) }) -# Test get_ucos_summary function -test_that("get_ucos_summary handles different parameters", { + +# Test get_robust_colocalization function +test_that("get_ambiguous_colocalization identifies ambiguous colocalizations correctly", { + # The function expects a specialized test dataset that has ambiguous colocalizations + # There's a reference in the example to a dataset named "Ambiguous_Colocalization" + data(Ambiguous_Colocalization) + test_colocboost_results <- Ambiguous_Colocalization$ColocBoost_Results + + # Basic call with default parameters + result <- get_ambiguous_colocalization(test_colocboost_results) + + # Check that the returned object is of class "colocboost" + expect_s3_class(result, "colocboost") + + # Check that the ambiguous_ucos field exists in the result + expect_true("ambigous_ucos" %in% names(result)) + + # If ambiguous colocalizations were found, test their structure + if (length(result$ambigous_ucos) > 0) { + # There should be fields for the ambiguous UCOs details + expect_true("ambigouse_ucos" %in% names(result$ambigous_ucos[[1]])) + expect_true("ambigouse_ucos_outcomes" %in% names(result$ambigous_ucos[[1]])) + expect_true("ambigous_ucos_weight" %in% names(result$ambigous_ucos[[1]])) + expect_true("ambigous_ucos_puriry" %in% names(result$ambigous_ucos[[1]])) + expect_true("ambigouse_ucos_unoin" %in% names(result$ambigous_ucos[[1]])) + expect_true("ambigouse_ucos_overlap" %in% names(result$ambigous_ucos[[1]])) + } - # Generate a test colocboost results - cb_res <- generate_test_result() + # Test with custom correlation thresholds + result_custom <- get_ambiguous_colocalization( + test_colocboost_results, + min_abs_corr_between_ucos = 0.7, + median_abs_corr_between_ucos = 0.9 + ) - # Basic summary call - expect_error(get_ucos_summary(cb_res), NA) + # The result should still be a colocboost object + expect_s3_class(result_custom, "colocboost") - # With custom outcome names - expect_error(get_ucos_summary(cb_res, outcome_names = c("Trait1", "Trait2", "Trait3")), NA) + # Test with input that has no ucos_details + # Create a modified object without ucos_details + test_no_ucos <- test_colocboost_results + test_no_ucos$ucos_details <- NULL - # With region name - summary_with_region <- get_ucos_summary(cb_res, region_name = "TestGene") + # Should show a warning but not error + expect_warning(get_ambiguous_colocalization(test_no_ucos)) - # If summary is not NULL, check for region column - if (!is.null(summary_with_region)) { - expect_true("region_name" %in% colnames(summary_with_region)) - expect_equal(summary_with_region$region_name[1], "TestGene") - } + # Test with input that has only one trait-specific effect + cb_res <- generate_test_result(n=500) - # Test with single trait analysis result - cb_single <- generate_test_result(L=1) - single_summary <- get_ucos_summary(cb_single, outcome_names = "SingleTrait") -}) \ No newline at end of file + expect_message( + result <- get_ambiguous_colocalization(cb_res), + "Only one trait-specific \\(uncolocalized\\) effect in this region!" + ) + + # The result should be unchanged from the input + expect_equal(result, cb_res) + + # There should be no ambiguous_ucos field added + expect_false("ambigous_ucos" %in% names(result)) + +}) + diff --git a/vignettes/Ambiguous_Colocalization.Rmd b/vignettes/Ambiguous_Colocalization.Rmd index c434e78..1bf91e4 100644 --- a/vignettes/Ambiguous_Colocalization.Rmd +++ b/vignettes/Ambiguous_Colocalization.Rmd @@ -54,8 +54,8 @@ colocboost_plot( # 2. Fine-mapping results from SuSiE ```{r susie-results} -susie_eQTL <- Ambiguous_Colocalization$SuSiE_Results$SuSiE_eQTL -susie_GWAS <- Ambiguous_Colocalization$SuSiE_Results$SuSiE_GWAS +susie_eQTL <- Ambiguous_Colocalization$SuSiE_Results$eQTL +susie_GWAS <- Ambiguous_Colocalization$SuSiE_Results$GWAS # Fine-mapped eQTL susie_eQTL$sets$cs$L1 From a4425e979ba51bb81f89b088b97c55d50d39bee0 Mon Sep 17 00:00:00 2001 From: xuewei cao <36172337+xueweic@users.noreply.github.com> Date: Tue, 22 Apr 2025 17:47:43 -0400 Subject: [PATCH 4/6] change --- R/colocboost_output.R | 19 ++-- _pkgdown.yml | 2 + man/get_colocboost_summary.Rd | 5 +- man/get_ucos_summary.Rd | 6 ++ tests/testthat/test_colocboost.R | 63 ++++++------ tests/testthat/test_inference.R | 128 ++++++++++++++++++++++++- vignettes/Ambiguous_Colocalization.Rmd | 83 +++++++++++++++- 7 files changed, 257 insertions(+), 49 deletions(-) diff --git a/R/colocboost_output.R b/R/colocboost_output.R index 21bd9e1..7214863 100644 --- a/R/colocboost_output.R +++ b/R/colocboost_output.R @@ -12,8 +12,7 @@ #' @param region_name Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses. #' @param min_abs_corr_between_ucos Minimum absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.5. #' @param median_abs_corr_between_ucos Median absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.8. -#' @param tol A small, non-negative number specifying the convergence tolerance for checking the overlap of the variables in different sets. -#' +#' #' @return A list containing results from the ColocBoost analysis: #' \itemize{ #' \item When \code{summary_level = 1} (default): @@ -83,8 +82,7 @@ get_colocboost_summary <- function(cb_output, interest_outcome = NULL, region_name = NULL, min_abs_corr_between_ucos = 0.5, - median_abs_corr_between_ucos = 0.8, - tol = 1e-9) { + median_abs_corr_between_ucos = 0.8) { if (!inherits(cb_output, "colocboost")) { stop("Input must from colocboost output!") @@ -105,8 +103,7 @@ get_colocboost_summary <- function(cb_output, cb_output, outcome_names, region_name, ambiguous_ucos = TRUE, min_abs_corr_between_ucos = min_abs_corr_between_ucos, - median_abs_corr_between_ucos = median_abs_corr_between_ucos, - tol = tol + median_abs_corr_between_ucos = median_abs_corr_between_ucos ) return(list("cos_summary" = cos_summary, "ucos_summary" = ucos_summary$ucos_summary, @@ -703,7 +700,9 @@ get_cos_summary <- function(cb_output, #' @param cb_output Output object from `colocboost` analysis #' @param outcome_names Optional vector of names of outcomes, which has the same order as Y in the original analysis. #' @param region_name Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses. -#' +#' @param ambiguous_ucos Logical indicating whether to include ambiguous colocalization events. The default is FALSE. +#' @param min_abs_corr_between_ucos Minimum absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.5. +#' @param median_abs_corr_between_ucos Median absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.8. #' #' @return A list containing: #' \itemize{ @@ -841,11 +840,11 @@ get_ucos_summary <- function(cb_output, outcome_names = NULL, region_name = NULL ambiguous_summary[, 1] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$ambigouse_ucos_outcomes$outcome_name, collapse = "; "))) ambiguous_summary[, 2] <- names(ambiguous_results) - ambiguous_summary[, 3] <- sapply(ambiguous_results, function(tmp) max(tmp$ambigous_ucos_puriry$min_abs_cor[lower.tri(min_abs_cor)]) ) - ambiguous_summary[, 4] <- sapply(ambiguous_results, function(tmp) max(tmp$ambigous_ucos_puriry$median_abs_cor[lower.tri(min_abs_cor)]) ) + ambiguous_summary[, 3] <- sapply(ambiguous_results, function(tmp) max(tmp$ambigous_ucos_puriry$min_abs_cor[lower.tri(tmp$ambigous_ucos_puriry$min_abs_cor)]) ) + ambiguous_summary[, 4] <- sapply(ambiguous_results, function(tmp) max(tmp$ambigous_ucos_puriry$median_abs_cor[lower.tri(tmp$ambigous_ucos_puriry$median_abs_cor)]) ) ambiguous_summary[, 5] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$ambigouse_ucos_overlap$ucos_index, collapse = "; "))) ambiguous_summary[, 6] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$ambigouse_ucos_overlap$ucos_variables, collapse = "; "))) - ambiguous_summary[, 7] <- as.numeric(sapply(cos_recalibrated, length)) + ambiguous_summary[, 7] <- as.numeric(sapply(ambiguous_results, function(tmp) length(tmp$recalibrated_cos$cos_index))) ambiguous_summary[, 8] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$recalibrated_cos$cos_index, collapse = "; "))) ambiguous_summary[, 9] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$recalibrated_cos$cos_variables, collapse = "; "))) ambiguous_summary[, 10] <- unlist(sapply(ambiguous_results, function(tmp) paste0(tmp$recalibrated_cos_vcp[tmp$recalibrated_cos$cos_index], collapse = "; "))) diff --git a/_pkgdown.yml b/_pkgdown.yml index 738478d..ca0dea6 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -61,6 +61,8 @@ reference: - title: "Inference and summary" desc: "Functions for inference and summary from fitted model." contents: + - get_robust_colocalization + - get_colocboost_summary - has_concept("colocboost_inference") - title: "Visualization" diff --git a/man/get_colocboost_summary.Rd b/man/get_colocboost_summary.Rd index b5730bc..255e832 100644 --- a/man/get_colocboost_summary.Rd +++ b/man/get_colocboost_summary.Rd @@ -15,8 +15,7 @@ get_colocboost_summary( interest_outcome = NULL, region_name = NULL, min_abs_corr_between_ucos = 0.5, - median_abs_corr_between_ucos = 0.8, - tol = 1e-09 + median_abs_corr_between_ucos = 0.8 ) } \arguments{ @@ -33,8 +32,6 @@ get_colocboost_summary( \item{min_abs_corr_between_ucos}{Minimum absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.5.} \item{median_abs_corr_between_ucos}{Median absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.8.} - -\item{tol}{A small, non-negative number specifying the convergence tolerance for checking the overlap of the variables in different sets.} } \value{ A list containing results from the ColocBoost analysis: diff --git a/man/get_ucos_summary.Rd b/man/get_ucos_summary.Rd index 7d65d74..97cc419 100644 --- a/man/get_ucos_summary.Rd +++ b/man/get_ucos_summary.Rd @@ -23,6 +23,12 @@ get_ucos_summary( \item{outcome_names}{Optional vector of names of outcomes, which has the same order as Y in the original analysis.} \item{region_name}{Optional character string. When provided, adds a column with this gene name to the output table for easier filtering in downstream analyses.} + +\item{ambiguous_ucos}{Logical indicating whether to include ambiguous colocalization events. The default is FALSE.} + +\item{min_abs_corr_between_ucos}{Minimum absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.5.} + +\item{median_abs_corr_between_ucos}{Median absolute correlation for variants across two trait-specific (uncolocalized) effects to be considered colocalized. The default is 0.8.} } \value{ A list containing: diff --git a/tests/testthat/test_colocboost.R b/tests/testthat/test_colocboost.R index 7e2afab..c31d914 100644 --- a/tests/testthat/test_colocboost.R +++ b/tests/testthat/test_colocboost.R @@ -132,37 +132,7 @@ test_that("colocboost runs with summary statistics", { expect_equal(result$data_info$n_outcomes, 2) }) -# Test focal outcome functionality -test_that("colocboost handles focal outcome correctly", { - - # Convert Y to list - Y_list <- list(test_data$Y[,1], test_data$Y[,2]) - X_list <- list(test_data$X, test_data$X) - - # Run colocboost with focal_outcome_idx = 1 - warnings <- capture_warnings({ - result <- colocboost( - X = X_list, - Y = Y_list, - focal_outcome_idx = 1, - M = 10, # Small number of iterations for testing - output_level = 2 # More detailed output for testing - ) - }) - # Check if any of the expected warning patterns are present - expect_true( - any(grepl("smallest number of variables", warnings)) || - any(grepl("did not coverage", warnings)) - ) - - # Test that we get a colocboost object - expect_s3_class(result, "colocboost") - - # Check focal outcome is correctly set - expect_equal(result$data_info$outcome_info$is_focal[1], TRUE) - expect_equal(result$data_info$outcome_info$is_focal[2], FALSE) -}) # Test get_cos_summary functionality test_that("get_cos_summary returns expected structure", { @@ -206,6 +176,39 @@ test_that("get_cos_summary returns expected structure", { } }) + +# Test focal outcome functionality +test_that("colocboost handles focal outcome correctly", { + + # Convert Y to list + Y_list <- list(test_data$Y[,1], test_data$Y[,2]) + X_list <- list(test_data$X, test_data$X) + + # Run colocboost with focal_outcome_idx = 1 + warnings <- capture_warnings({ + result <- colocboost( + X = X_list, + Y = Y_list, + focal_outcome_idx = 1, + M = 10, # Small number of iterations for testing + output_level = 2 # More detailed output for testing + ) + }) + + # Check if any of the expected warning patterns are present + expect_true( + any(grepl("smallest number of variables", warnings)) || + any(grepl("did not coverage", warnings)) + ) + + # Test that we get a colocboost object + expect_s3_class(result, "colocboost") + + # Check focal outcome is correctly set + expect_equal(result$data_info$outcome_info$is_focal[1], TRUE) + expect_equal(result$data_info$outcome_info$is_focal[2], FALSE) +}) + # Test colocboost_plot functionality (basic call should not error) test_that("colocboost_plot runs without error", { diff --git a/tests/testthat/test_inference.R b/tests/testthat/test_inference.R index 5fa47d3..34a26a2 100644 --- a/tests/testthat/test_inference.R +++ b/tests/testthat/test_inference.R @@ -187,7 +187,7 @@ test_that("get_hierarchical_clusters functions correctly", { }) -# Test get_robust_colocalization function +# Test get_ambiguous_colocalization function test_that("get_ambiguous_colocalization identifies ambiguous colocalizations correctly", { # The function expects a specialized test dataset that has ambiguous colocalizations # There's a reference in the example to a dataset named "Ambiguous_Colocalization" @@ -210,8 +210,10 @@ test_that("get_ambiguous_colocalization identifies ambiguous colocalizations cor expect_true("ambigouse_ucos_outcomes" %in% names(result$ambigous_ucos[[1]])) expect_true("ambigous_ucos_weight" %in% names(result$ambigous_ucos[[1]])) expect_true("ambigous_ucos_puriry" %in% names(result$ambigous_ucos[[1]])) - expect_true("ambigouse_ucos_unoin" %in% names(result$ambigous_ucos[[1]])) + expect_true("ambigouse_ucos_union" %in% names(result$ambigous_ucos[[1]])) expect_true("ambigouse_ucos_overlap" %in% names(result$ambigous_ucos[[1]])) + expect_true("recalibrated_cos_vcp" %in% names(result$ambigous_ucos[[1]])) + expect_true("recalibrated_cos" %in% names(result$ambigous_ucos[[1]])) } # Test with custom correlation thresholds @@ -248,3 +250,125 @@ test_that("get_ambiguous_colocalization identifies ambiguous colocalizations cor }) + + +# Test get_ucos_summary function +test_that("get_ucos_summary funtionality", { + # The function expects a specialized test dataset that has ambiguous colocalizations + # There's a reference in the example to a dataset named "Ambiguous_Colocalization" + data(Ambiguous_Colocalization) + test_colocboost_results <- Ambiguous_Colocalization$ColocBoost_Results + + # Basic call with default parameters + summary <- get_ucos_summary(test_colocboost_results) + + # Check structure of summary table + expect_true(is.data.frame(summary)) + + # Check expected columns exist + expected_cols <- c( + "outcomes", "ucos_id", "purity", + "top_variable", "top_variable_vpa", "n_variables", "ucos_index", + "ucos_variables", "ucos_variables_vpa" + ) + for (col in expected_cols) { + expect_true(col %in% colnames(summary)) + } + + # Basic call with default parameters + summary_ambiguous <- get_ucos_summary(test_colocboost_results, ambiguous_ucos = TRUE) + expect_true(all.equal(names(summary_ambiguous), c("ucos_summary", "ambiguous_ucos_summary"))) + + # Check expected columns exist + expected_cols <- c( + "outcomes", "ucos_id", "min_between_purity", "median_between_purity", + "overlap_idx", "overlap_variables", "n_recalibrated_variables", + "recalibrated_index", "recalibrated_variables", "recalibrated_variables_vcp" + ) + for (col in expected_cols) { + expect_true(col %in% colnames(summary_ambiguous$ambiguous_ucos_summary)) + } + +}) + + +test_that("get_colocboost_summary works correctly", { + # Setup mock data + set.seed(1) + N <- 1000 + P <- 100 + # Generate X with LD structure + sigma <- 0.9^abs(outer(1:P, 1:P, "-")) + X <- MASS::mvrnorm(N, rep(0, P), sigma) + colnames(X) <- paste0("SNP", 1:P) + L <- 3 + true_beta <- matrix(0, P, L) + true_beta[10, 1] <- 0.5 # SNP10 affects trait 1 + true_beta[10, 2] <- 0.4 # SNP10 also affects trait 2 (colocalized) + true_beta[50, 2] <- 0.3 # SNP50 only affects trait 2 + true_beta[80, 3] <- 0.6 # SNP80 only affects trait 3 + Y <- matrix(0, N, L) + for (l in 1:L) { + Y[, l] <- X %*% true_beta[, l] + rnorm(N, 0, 1) + } + + # Run colocboost + cb_output <- colocboost(X = X, Y = Y) + + # Test summary_level = 1 (default) + summary1 <- get_colocboost_summary(cb_output) + + # Check structure + expect_type(summary1, "list") + expect_named(summary1, "cos_summary") + expect_s3_class(summary1$cos_summary, "data.frame") + + # Check required columns in cos_summary + expected_cols <- c("focal_outcome", "colocalized_outcomes", "cos_id", + "purity", "top_variable", "top_variable_vcp", + "cos_npc", "min_npc_outcome", "n_variables") + expect_true(all(expected_cols %in% colnames(summary1$cos_summary))) + + # Test with outcome_names + outcome_names <- c("Trait1", "Trait2", "Trait3") + summary_with_names <- get_colocboost_summary(cb_output, outcome_names = outcome_names) + coloc_outcome <- strsplit(summary_with_names$cos_summary$colocalized_outcomes, "; ")[[1]] + expect_true(all( coloc_outcome %in% + c("Trait1", "Trait2", "Trait3", paste(outcome_names, collapse = ", ")))) + + # Test with region_name + region_summary <- get_colocboost_summary(cb_output, region_name = "TestRegion") + expect_true("region_name" %in% colnames(region_summary$cos_summary)) + expect_equal(unique(region_summary$cos_summary$region), "TestRegion") + + # Test summary_level = 2 + expect_warning(summary2 <- get_colocboost_summary(cb_output, summary_level = 2), + "Please run colocboost model with output_level=2") + + cb_output <- colocboost(X = X, Y = Y, output_level = 2) + summary2 <- get_colocboost_summary(cb_output, summary_level = 2) + expect_named(summary2, c("cos_summary", "ucos_summary")) + expect_s3_class(summary2$ucos_summary, "data.frame") + + # Test summary_level = 3 + summary3 <- get_colocboost_summary(cb_output, + summary_level = 3, + min_abs_corr_between_ucos = 0.4, + median_abs_corr_between_ucos = 0.7) + expect_named(summary3, c("cos_summary", "ucos_summary", "ambiguous_ucos_summary")) + expect_s3_class(summary3$ucos_summary, "data.frame") + + # Test with interest_outcome + interest_summary <- get_colocboost_summary(cb_output, + outcome_names = outcome_names, + interest_outcome = c("Trait1")) + # Should only contain colocalization events involving Trait1 + if(nrow(interest_summary$cos_summary) > 0) { + expect_true(all(sapply(interest_summary$cos_summary$colocalized_outcomes, + function(x) grepl("Trait1", x)))) + } + + # Test error handling + expect_error(get_colocboost_summary("not_a_colocboost_object"), + "Input must from colocboost output!") +}) \ No newline at end of file diff --git a/vignettes/Ambiguous_Colocalization.Rmd b/vignettes/Ambiguous_Colocalization.Rmd index 1bf91e4..c9b3995 100644 --- a/vignettes/Ambiguous_Colocalization.Rmd +++ b/vignettes/Ambiguous_Colocalization.Rmd @@ -15,7 +15,7 @@ knitr::opts_chunk$set( ``` -This vignette demonstrates an example of ambiguous colocalization from trait-specific effects using the `colocboost` package. +This vignette demonstrates an example of ambiguous colocalization from trait-specific effects using the `colocboost`. Specifically, we will use the `Ambiguous_Colocalization`, which is an example result from one of our real data applications, showing an ambiguous colocalization between eQTL and GWAS. @@ -27,8 +27,27 @@ data(Ambiguous_Colocalization) names(Ambiguous_Colocalization) ``` -# 1. ColocBoost results +# 1. The `Ambiguous_Colocalization` Dataset +The `Ambiguous_Colocalization` dataset contains results from a colocboost analysis of a real genomic region showing ambiguous trait-specific effects between eQTL +(expression quantitative trait loci) and GWAS (genome-wide association study) signals. +Ambiguous colocalization occurs when there appears to be shared causal variants between traits, +but the evidence is complicated by the presence of trait-specific effects. This dataset is structured as a list with two main components: + +1. `ColocBoost_Results`: Contains the output from running the ColocBoost algorithm. + +2. `SuSiE_Results`: Contains fine-mapping results from the SuSiE algorithm for both eQTL and GWAS data separately. + + + +# 2. ColocBoost results + +In this example, there are two trait-specifc effects for the eQTL and GWAS signals, respectively. But two uCoS have overlapping variants, +which indicates that the two uCoS are not independent. ColocBoost identifies two uCoS: + +- `ucos1:y1`: eQTL trait-specific effect has 6 variants. +- `ucos2:y2`: GWAS trait-specific effect has 22 variants. +- There are 3 variants that are overlapping between the two uCoS. ```{r colocboost-results} # Trait-specific effects for both eQTL and GWAS @@ -36,23 +55,42 @@ Ambiguous_Colocalization$ColocBoost_Results$ucos_details$ucos$ucos_index # Intersection of eQTL and GWAS variants Reduce(intersect, Ambiguous_Colocalization$ColocBoost_Results$ucos_details$ucos$ucos_index) +``` +After checking the correlation of variants between the two uCoS, we can see the high correlation between the two uCoS. + +- The minimum absolute correlation between the two uCoS is 0.636 (off-diagonal `purity$min_abs_corr`). +- The median absolute correlation between the two uCoS is 0.837 (off-diagonal `purity$median_abs_corr`). +- The maximum absolute correlation between the two uCoS is 1 (off-diagonal `purity$max_abs_corr`), indicating overlapping variants exists. + +```{r colocboost-purity} # With-in and between purity Ambiguous_Colocalization$ColocBoost_Results$ucos_details$ucos_purity ``` -```{r colocboost-plot} +Based on the results, we can see that the two uCoS are not independent, but they are not fully overlapping. + +```{r plot-ambiguous} +n_variables <- Ambiguous_Colocalization$ColocBoost_Results$data_info$n_variables colocboost_plot( Ambiguous_Colocalization$ColocBoost_Results, plot_cols = 1, + grange = c(2000:n_variables), plot_ucos = TRUE, show_cos_to_uncoloc = TRUE ) ``` + # 2. Fine-mapping results from SuSiE +In this example, we also have fine-mapping results from SuSiE for both eQTL and GWAS data separately. + +- For eQTL, SuSiE shows 40 variants in 95% credible set (CS). +- For GWAS, SuSiE shows 57 variants in 95% credible set (CS). +- There are 24 variants are overlapping between the two credible sets. + ```{r susie-results} susie_eQTL <- Ambiguous_Colocalization$SuSiE_Results$eQTL susie_GWAS <- Ambiguous_Colocalization$SuSiE_Results$GWAS @@ -67,3 +105,42 @@ susie_GWAS$sets$cs$L1 intersect(susie_eQTL$sets$cs$L1, susie_GWAS$sets$cs$L1) ``` + +# 3. Get the ambiguous colocalization results and summary + +ColocBoost provides a function to get the ambiguous colocalization results and summary from trait-specifc effects, by considering the correlation of variants between the two uCoS. + +The `get_ambiguous_colocalization` function will return the ambiguous results in `ambigous_ucos` object, if the following conditions are met: + +- The two uCoS should have at least one overlapping variant. +- The minimum absolute correlation between the two uCoS is greater than `min_abs_corr_between_ucos` (default is 0.5). +- The median absolute correlation between the two uCoS is greater than `median_abs_corr_between_ucos` (default is 0.8). + + +```{r ambiguous-results} +colocboost_results <- Ambiguous_Colocalization$ColocBoost_Results +res <- get_ambiguous_colocalization(colocboost_results, min_abs_corr_between_ucos = 0.5, median_abs_corr_between_ucos = 0.8) +names(res) +names(res$ambigous_ucos) +``` + +To get the summary of ambiguous colocalization results, we can use the `get_colocboost_summary` function. + +- `summary_level = 1` (default): get the summary table for only the colocalization results, same as `cos_summary` in ColocBoost output. +- `summary_level = 2`: get the summary table for both colocalization and trait-specific effects if exists. +- `summary_level = 3`: get the summary table for colocalization, trait-specific effects and ambiguous colocalization results if exists. + +```{r ambiguous-summary} +# Get the full summary results from colocboost +full_summary <- get_colocboost_summary(colocboost_results, summary_level = 3) +names(full_summary) + +# Get the summary of ambiguous colocalization results +summary_ambiguous <- full_summary$ambiguous_ucos_summary +colnames(summary_ambiguous) +``` + + +- `recalibrated_*`: giving the recalibrated weigths and recalibrated 95% colocalization confidece sets (CoS) from the trait-specific effects. + +See details of function usage in the [Functions](https://statfungen.github.io/colocboost/reference/index.html). \ No newline at end of file From 02b6819ab548662ac1bf6651c7b624c0daf26730 Mon Sep 17 00:00:00 2001 From: xuewei cao <36172337+xueweic@users.noreply.github.com> Date: Tue, 22 Apr 2025 17:59:57 -0400 Subject: [PATCH 5/6] Update colocboost_plot.R --- R/colocboost_plot.R | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/R/colocboost_plot.R b/R/colocboost_plot.R index 962d12f..ca6b40b 100644 --- a/R/colocboost_plot.R +++ b/R/colocboost_plot.R @@ -25,6 +25,7 @@ #' @param show_cos_to_uncoloc_outcome Optional outcomes for showing CoS to uncolocalized outcomes #' @param plot_ucos Logical, if TRUE plots also trait-specific (uncolocalized) sets , default is FALSE #' @param plot_ucos_idx Optional indices of trait-specific (uncolocalized) sets to plot when included +#' @param show_ambiguous_ucos Logical, if TRUE shows ambiguous uCoS, default is FALSE #' @param title_specific Optional specific title to display in plot title #' @param ylim_each Logical, if TRUE uses separate y-axis limits for each plot, default is TRUE #' @param outcome_legend_pos Position for outcome legend, default is "top" @@ -89,6 +90,7 @@ colocboost_plot <- function(cb_output, y = "log10p", show_cos_to_uncoloc_outcome = NULL, plot_ucos = FALSE, plot_ucos_idx = NULL, + show_ambiguous_ucos = FALSE, title_specific = NULL, ylim_each = TRUE, outcome_legend_pos = "top", @@ -113,7 +115,8 @@ colocboost_plot <- function(cb_output, y = "log10p", show_cos_to_uncoloc = show_cos_to_uncoloc, show_cos_to_uncoloc_idx = show_cos_to_uncoloc_idx, show_cos_to_uncoloc_outcome = show_cos_to_uncoloc_outcome, - plot_ucos = plot_ucos, plot_ucos_idx = plot_ucos_idx + plot_ucos = plot_ucos, plot_ucos_idx = plot_ucos_idx, + show_ambiguous_ucos = show_ambiguous_ucos ) # get initial set up of plot cb_plot_init <- plot_initial(cb_plot_input, @@ -335,7 +338,8 @@ get_input_plot <- function(cb_output, plot_cos_idx = NULL, show_cos_to_uncoloc_idx = NULL, show_cos_to_uncoloc_outcome = NULL, plot_ucos = FALSE, - plot_ucos_idx = NULL) { + plot_ucos_idx = NULL, + show_ambiguous_ucos = FALSE) { # check ucos exists if (plot_ucos && !"ucos_details" %in% names(cb_output)) { @@ -589,6 +593,7 @@ get_input_plot <- function(cb_output, plot_cos_idx = NULL, ) plot_input$uncoloc <- uncoloc } + class(plot_input) <- "colocboost" return(plot_input) } From 7be4c63e555b827e250fe33d86f0a66425699154 Mon Sep 17 00:00:00 2001 From: xuewei cao <36172337+xueweic@users.noreply.github.com> Date: Tue, 22 Apr 2025 18:01:25 -0400 Subject: [PATCH 6/6] Update colocboost_plot.R --- R/colocboost_plot.R | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/R/colocboost_plot.R b/R/colocboost_plot.R index ca6b40b..fcc56d4 100644 --- a/R/colocboost_plot.R +++ b/R/colocboost_plot.R @@ -25,7 +25,6 @@ #' @param show_cos_to_uncoloc_outcome Optional outcomes for showing CoS to uncolocalized outcomes #' @param plot_ucos Logical, if TRUE plots also trait-specific (uncolocalized) sets , default is FALSE #' @param plot_ucos_idx Optional indices of trait-specific (uncolocalized) sets to plot when included -#' @param show_ambiguous_ucos Logical, if TRUE shows ambiguous uCoS, default is FALSE #' @param title_specific Optional specific title to display in plot title #' @param ylim_each Logical, if TRUE uses separate y-axis limits for each plot, default is TRUE #' @param outcome_legend_pos Position for outcome legend, default is "top" @@ -90,7 +89,6 @@ colocboost_plot <- function(cb_output, y = "log10p", show_cos_to_uncoloc_outcome = NULL, plot_ucos = FALSE, plot_ucos_idx = NULL, - show_ambiguous_ucos = FALSE, title_specific = NULL, ylim_each = TRUE, outcome_legend_pos = "top", @@ -115,8 +113,7 @@ colocboost_plot <- function(cb_output, y = "log10p", show_cos_to_uncoloc = show_cos_to_uncoloc, show_cos_to_uncoloc_idx = show_cos_to_uncoloc_idx, show_cos_to_uncoloc_outcome = show_cos_to_uncoloc_outcome, - plot_ucos = plot_ucos, plot_ucos_idx = plot_ucos_idx, - show_ambiguous_ucos = show_ambiguous_ucos + plot_ucos = plot_ucos, plot_ucos_idx = plot_ucos_idx ) # get initial set up of plot cb_plot_init <- plot_initial(cb_plot_input, @@ -338,8 +335,7 @@ get_input_plot <- function(cb_output, plot_cos_idx = NULL, show_cos_to_uncoloc_idx = NULL, show_cos_to_uncoloc_outcome = NULL, plot_ucos = FALSE, - plot_ucos_idx = NULL, - show_ambiguous_ucos = FALSE) { + plot_ucos_idx = NULL) { # check ucos exists if (plot_ucos && !"ucos_details" %in% names(cb_output)) {