diff --git a/R/multivariate_pipeline.R b/R/multivariate_pipeline.R index 913d9c42..217ee9f3 100644 --- a/R/multivariate_pipeline.R +++ b/R/multivariate_pipeline.R @@ -21,6 +21,7 @@ #' @param sample_partition Optional data frame with Sample and Fold columns for cross-validation. #' @param mrmash_max_iter The maximum number of iterations for mr.mash. Default is 5000. #' @param mvsusie_max_iter The maximum number of iterations for mvSuSiE. Default is 200. +#' @param estimate_residual_variance Passed to \code{mvsusieR::mvsusie()}. Default is TRUE. #' @param min_cv_maf The minimum minor allele frequency for variants to be included in cross-validation. Default is 0.05. #' @param max_cv_variants The maximum number of variants to be included in cross-validation. Defaults to -1 which means no limit. #' @param cv_folds The number of folds to use for cross-validation. Set to 0 to skip cross-validation. Default is 5. @@ -87,6 +88,7 @@ multivariate_analysis_pipeline <- function( canonical_prior_matrices = TRUE, mrmash_max_iter = 5000, mvsusie_max_iter = 200, + estimate_residual_variance = TRUE, # fine-mapping results summary signal_cutoff = 0.025, coverage = c(0.95, 0.7, 0.5), @@ -287,7 +289,7 @@ multivariate_analysis_pipeline <- function( res$mvsusie_fitted <- mvsusieR::mvsusie(X, Y, L = L, L_greedy = L_greedy, prior_variance = mvsusie_reweighted_mixture_prior$data_driven_prior_matrices, - residual_variance = resid_Y, estimate_residual_variance = TRUE, + residual_variance = resid_Y, estimate_residual_variance = estimate_residual_variance, max_iter = mvsusie_max_iter, verbose = verbose, coverage = coverage[1] ) diff --git a/R/univariate_pipeline.R b/R/univariate_pipeline.R index 47eeb704..16e97638 100644 --- a/R/univariate_pipeline.R +++ b/R/univariate_pipeline.R @@ -26,6 +26,7 @@ #' @param finemapping_extra_opts Additional options passed to \code{susieR::susie()}. #' SuSiE-inf is always fitted with \code{refine = FALSE}; the ordinary SuSiE #' fit keeps these options and is initialized with \code{model_init}. +#' @param estimate_residual_variance Passed to \code{susieR::susie()}. Default is TRUE. #' @param add_susie_inf Whether to fit SuSiE-inf before ordinary SuSiE. Default #' is TRUE for existing pipeline compatibility. If FALSE, ordinary SuSiE is #' fitted directly and SuSiE-inf fitted objects/results are not returned. @@ -63,6 +64,7 @@ univariate_analysis_pipeline <- function( coverage = c(0.95, 0.7, 0.5), min_abs_corr = 0.8, finemapping_extra_opts = list(refine = TRUE), + estimate_residual_variance = TRUE, add_susie_inf = TRUE, # TWAS weights and CV for TWAS weights twas_weights = TRUE, @@ -126,7 +128,8 @@ univariate_analysis_pipeline <- function( susie_args <- modifyList( finemapping_extra_opts, - list(L = L, L_greedy = L_greedy, coverage = coverage[1]) + list(L = L, L_greedy = L_greedy, coverage = coverage[1], + estimate_residual_variance = estimate_residual_variance) ) if (isTRUE(add_susie_inf)) { message("Fitting SuSiE-inf model on input data ...") diff --git a/man/multivariate_analysis_pipeline.Rd b/man/multivariate_analysis_pipeline.Rd index fdd504f9..1fc0c503 100644 --- a/man/multivariate_analysis_pipeline.Rd +++ b/man/multivariate_analysis_pipeline.Rd @@ -24,6 +24,7 @@ multivariate_analysis_pipeline( canonical_prior_matrices = TRUE, mrmash_max_iter = 5000, mvsusie_max_iter = 200, + estimate_residual_variance = TRUE, signal_cutoff = 0.025, coverage = c(0.95, 0.7, 0.5), min_abs_corr = 0.8, @@ -62,6 +63,8 @@ multivariate_analysis_pipeline( \item{mvsusie_max_iter}{The maximum number of iterations for mvSuSiE. Default is 200.} +\item{estimate_residual_variance}{Passed to \code{mvsusieR::mvsusie()}. Default is TRUE.} + \item{signal_cutoff}{Cutoff value for signal identification in PIP values. Default is 0.025.} \item{coverage}{A vector of coverage probabilities, with the first element being the primary coverage and the rest being secondary coverage probabilities for credible set refinement. Defaults to c(0.95, 0.7, 0.5).} diff --git a/man/univariate_analysis_pipeline.Rd b/man/univariate_analysis_pipeline.Rd index 06043f9a..ed4cc340 100644 --- a/man/univariate_analysis_pipeline.Rd +++ b/man/univariate_analysis_pipeline.Rd @@ -24,6 +24,7 @@ univariate_analysis_pipeline( coverage = c(0.95, 0.7, 0.5), min_abs_corr = 0.8, finemapping_extra_opts = list(refine = TRUE), + estimate_residual_variance = TRUE, add_susie_inf = TRUE, twas_weights = TRUE, sample_partition = NULL, @@ -75,6 +76,8 @@ which is stricter than the susieR default of 0.5.} SuSiE-inf is always fitted with \code{refine = FALSE}; the ordinary SuSiE fit keeps these options and is initialized with \code{model_init}.} +\item{estimate_residual_variance}{Passed to \code{susieR::susie()}. Default is TRUE.} + \item{add_susie_inf}{Whether to fit SuSiE-inf before ordinary SuSiE. Default is TRUE for existing pipeline compatibility. If FALSE, ordinary SuSiE is fitted directly and SuSiE-inf fitted objects/results are not returned.}