@@ -210,7 +210,12 @@ colocboost <- function(X = NULL, Y = NULL, # individual data
210210 dict_YX = dict_YX , dict_sumstatLD = dict_sumstatLD ,
211211 effect_est = effect_est , effect_se = effect_se , effect_n = effect_n ,
212212 overlap_variables = overlap_variables ,
213- M = M , min_abs_corr = min_abs_corr
213+ M = M , min_abs_corr = min_abs_corr ,
214+ jk_equiv_corr = jk_equiv_corr ,
215+ jk_equiv_loglik = jk_equiv_loglik ,
216+ func_simplex = func_simplex ,
217+ cos_npc_cutoff = cos_npc_cutoff ,
218+ npc_outcome_cutoff = npc_outcome_cutoff
214219 )
215220 if (is.null(validated_data )) {
216221 return (NULL )
@@ -235,6 +240,12 @@ colocboost <- function(X = NULL, Y = NULL, # individual data
235240 jk_equiv_corr <- validated_data $ jk_equiv_corr
236241 jk_equiv_loglik <- validated_data $ jk_equiv_loglik
237242 func_simplex <- validated_data $ func_simplex
243+ cos_npc_cutoff <- validated_data $ cos_npc_cutoff
244+ npc_outcome_cutoff <- validated_data $ npc_outcome_cutoff
245+ if (M == 1 ){
246+ cos_npc_cutoff <- 0
247+ npc_outcome_cutoff <- 0
248+ }
238249
239250 # - initial colocboost object
240251 keep_variables <- c(keep_variable_individual , keep_variable_sumstat )
@@ -338,6 +349,20 @@ colocboost <- function(X = NULL, Y = NULL, # individual data
338349 weight_fudge_factor = weight_fudge_factor ,
339350 coverage = coverage
340351 )
352+ # ---- post filtering of the colocboost results (get robust trait-specific events)
353+ if (" ucos_details" %in% names(cb_output )) {
354+ if (is.null(pvalue_cutoff )){
355+ pvalue_cutoff_ucos <- NULL
356+ } else {
357+ # only keep the suggestive significant results
358+ pvalue_cutoff_ucos <- ifelse(pvalue_cutoff > 1e-5 , 1e-5 , pvalue_cutoff )
359+ }
360+ cb_output <- get_robust_ucos(
361+ cb_output ,
362+ npc_outcome_cutoff = npc_outcome_cutoff ,
363+ pvalue_cutoff = pvalue_cutoff_ucos
364+ )
365+ }
341366
342367 return (cb_output )
343368}
@@ -387,7 +412,11 @@ colocboost_validate_input_data <- function(X = NULL, Y = NULL,
387412 dict_YX = NULL , dict_sumstatLD = NULL ,
388413 effect_est = NULL , effect_se = NULL , effect_n = NULL ,
389414 overlap_variables = FALSE ,
390- M = 500 , min_abs_corr = 0.5 ) {
415+ M = 500 , min_abs_corr = 0.5 ,
416+ jk_equiv_corr = 0.8 , jk_equiv_loglik = 1 ,
417+ func_simplex = " LD_z2z" ,
418+ cos_npc_cutoff = 0.2 ,
419+ npc_outcome_cutoff = 0.2 ) {
391420
392421 # - check individual level data
393422 if (! is.null(X ) & ! is.null(Y )) {
@@ -624,9 +653,11 @@ colocboost_validate_input_data <- function(X = NULL, Y = NULL,
624653 # --- check input of LD
625654 M_updated <- M
626655 min_abs_corr_updated <- min_abs_corr
627- jk_equiv_corr_updated <- 0.8
628- jk_equiv_loglik_updated <- 1
629- func_simplex_updated <- " LD_z2z"
656+ jk_equiv_corr_updated <- jk_equiv_corr
657+ jk_equiv_loglik_updated <- jk_equiv_loglik
658+ func_simplex_updated <- func_simplex
659+ cos_npc_cutoff_updated <- cos_npc_cutoff
660+ npc_outcome_cutoff_updated <- npc_outcome_cutoff
630661
631662 if (is.null(LD )) {
632663 # if no LD input, set diagonal matrix to LD
@@ -644,6 +675,8 @@ colocboost_validate_input_data <- function(X = NULL, Y = NULL,
644675 jk_equiv_corr_updated <- 0
645676 jk_equiv_loglik_updated <- 0.1
646677 func_simplex_updated <- " only_z2z"
678+ cos_npc_cutoff_updated <- 0
679+ npc_outcome_cutoff_updated <- 0
647680
648681 } else {
649682
@@ -804,9 +837,11 @@ colocboost_validate_input_data <- function(X = NULL, Y = NULL,
804837 Z <- N_sumstat <- Var_y <- SeBhat <- sumstatLD_dict <- keep_variable_sumstat <- NULL
805838 M_updated <- M
806839 min_abs_corr_updated <- min_abs_corr
807- jk_equiv_corr_updated <- 0.8
808- jk_equiv_loglik_updated <- 1
809- func_simplex_updated <- " LD_z2z"
840+ jk_equiv_corr_updated <- jk_equiv_corr
841+ jk_equiv_loglik_updated <- jk_equiv_loglik
842+ func_simplex_updated <- func_simplex
843+ cos_npc_cutoff_updated = cos_npc_cutoff
844+ npc_outcome_cutoff_updated = npc_outcome_cutoff
810845 }
811846
812847 return (list (
@@ -826,7 +861,9 @@ colocboost_validate_input_data <- function(X = NULL, Y = NULL,
826861 min_abs_corr = min_abs_corr_updated ,
827862 jk_equiv_corr = jk_equiv_corr_updated ,
828863 jk_equiv_loglik = jk_equiv_loglik_updated ,
829- func_simplex = func_simplex_updated
864+ func_simplex = func_simplex_updated ,
865+ cos_npc_cutoff = cos_npc_cutoff_updated ,
866+ npc_outcome_cutoff = npc_outcome_cutoff_updated
830867 ))
831868}
832869
0 commit comments