Applies method-aware post-processing to one or more SuSiE-family fits and builds both a method-specific result list and shared top-loci tables.
Usage
postprocessFinemappingFits(
fits,
dataX,
dataY = NULL,
xScalar = 1,
yScalar = 1,
af = NULL,
n = NULL,
coverage = NULL,
secondaryCoverage = c(0.7, 0.5),
signalCutoff = 0.1,
otherQuantities = NULL,
region = NULL,
priorEffTol = 1e-09,
minAbsCorr = 0.8,
medianAbsCorr = NULL,
csInput = NULL,
conditionIdx = NULL,
trim = TRUE,
fullFit = FALSE,
fullFitAlphaOnly = TRUE,
includeAllCs = FALSE
)Arguments
- fits
Named list of fine-mapping fits. Names define method identity, for example
susie,susieInf,susieRss,mvsusie, orfsusie.- dataX
Genotype matrix, LD/correlation matrix, or other method-specific input used for credible-set purity and correlations.
- dataY
Phenotype vector/matrix or summary statistics. Default NULL.
- xScalar
Scaling factor for genotype effects. Default 1.
- yScalar
Scaling factor for phenotype effects. Default 1.
- af
Effect-allele frequencies (exported as the
afcolumn; never MAF). Default NULL.- coverage
Primary credible-set coverage.
- secondaryCoverage
Additional credible-set coverages.
- signalCutoff
PIP cutoff for including non-CS variants in top loci.
- otherQuantities
Optional list carried into each method result.
- region
Optional genomic anchor (
"chr:start-end"orGRanges) recorded on the result;NULLto omit.- priorEffTol
Tolerance for retaining effects by prior variance.
- minAbsCorr
Minimum absolute correlation for credible-set purity.
- medianAbsCorr
Numeric or
NULL. Median absolute within-CS correlation threshold for purity;NULLuses onlyminAbsCorr.- csInput
Optional precomputed credible-set specification, or
NULLto derive it from the fits.- conditionIdx
Integer or
NULL. Index of the conditioned effect (per-condition output);NULLfor the unconditioned fit.- trim
Logical. Trim the retained fit to the fields needed downstream. Default
TRUE.- fullFit
Logical. Retain the full fit object on each entry. Default
FALSE.- fullFitAlphaOnly
Logical. When retaining the full fit, keep only the per-effect alpha matrix. Default
TRUE.- includeAllCs
Logical. Include all credible sets rather than only the top one. Default
FALSE.
Value
A list with finemappingResults (per-method post-processed
objects, each carrying a trimmed fit and method-specific intermediates) and
a single unified top_loci table in the fixed 22-column shape (see
the internal buildTopLoci). Per-method contributions are row-bound
into top_loci by an outer method for-loop.
Examples
data(eqtlRegionExample)
X <- eqtlRegionExample$X[, 1:40]
y <- eqtlRegionExample$yRes
fit <- susieR::susie(X, y, L = 5)
#> HINT: nrow(X) = 415 >= 2 * ncol(X) = 80. Consider precomputing sufficient statistics with compute_suff_stat() and fitting with susie_ss() instead -- this avoids holding X in memory at every iteration and lets you reuse XtX across multiple y.
postprocessFinemappingFits(fits = list(susie = fit), dataX = X, dataY = y)
#> $finemappingResults
#> $finemappingResults$susie
#> $finemappingResults$susie$finemappingEntry
#> FineMappingRow: 40 variants, 0 credible sets
#>
#> $finemappingResults$susie$method
#> [1] "susie"
#>
#> $finemappingResults$susie$sumstats
#> $finemappingResults$susie$sumstats$betahat
#> [1] -0.045984319 -0.045984319 0.021635404 -0.010822292 -0.010822292
#> [6] -0.024282050 -0.034072131 0.051481464 -0.011979917 -0.011979917
#> [11] -0.016030256 -0.029366583 -0.009898099 -0.010448807 -0.016030256
#> [16] 0.051481464 -0.019084397 -0.020511032 0.089554501 -0.020511032
#> [21] -0.020511032 -0.024282050 -0.020511032 0.002753235 -0.009898099
#> [26] -0.024282050 -0.092957421 -0.076057722 0.040366526 0.030675273
#> [31] -0.016030256 -0.092957421 -0.009950104 -0.023299456 -0.009898099
#> [36] -0.043287988 0.005513860 0.005513860 -0.009898099 -0.010822292
#>
#> $finemappingResults$susie$sumstats$sebetahat
#> [1] 0.03139137 0.03139137 0.02459281 0.06215025 0.06215025 0.03996575
#> [7] 0.04169372 0.05742523 0.02517093 0.02517093 0.06127746 0.03446504
#> [13] 0.04195899 0.02475048 0.06127746 0.05742523 0.02417639 0.02389134
#> [19] 0.12112616 0.02389134 0.02389134 0.03996575 0.02389134 0.03223466
#> [25] 0.04195899 0.03996575 0.05477339 0.10860103 0.09564028 0.03828892
#> [31] 0.06127746 0.05477339 0.06434512 0.02406579 0.04195899 0.08925240
#> [37] 0.03277379 0.03277379 0.04195899 0.06215025
#>
#>
#> $finemappingResults$susie$sampleNames
#> [1] "sample_001" "sample_002" "sample_003" "sample_004" "sample_005"
#> [6] "sample_006" "sample_007" "sample_008" "sample_009" "sample_010"
#> [11] "sample_011" "sample_012" "sample_013" "sample_014" "sample_015"
#> [16] "sample_016" "sample_017" "sample_018" "sample_019" "sample_020"
#> [21] "sample_021" "sample_022" "sample_023" "sample_024" "sample_025"
#> [26] "sample_026" "sample_027" "sample_028" "sample_029" "sample_030"
#> [31] "sample_031" "sample_032" "sample_033" "sample_034" "sample_035"
#> [36] "sample_036" "sample_037" "sample_038" "sample_039" "sample_040"
#> [41] "sample_041" "sample_042" "sample_043" "sample_044" "sample_045"
#> [46] "sample_046" "sample_047" "sample_048" "sample_049" "sample_050"
#> [51] "sample_051" "sample_052" "sample_053" "sample_054" "sample_055"
#> [56] "sample_056" "sample_057" "sample_058" "sample_059" "sample_060"
#> [61] "sample_061" "sample_062" "sample_063" "sample_064" "sample_065"
#> [66] "sample_066" "sample_067" "sample_068" "sample_069" "sample_070"
#> [71] "sample_071" "sample_072" "sample_073" "sample_074" "sample_075"
#> [76] "sample_076" "sample_077" "sample_078" "sample_079" "sample_080"
#> [81] "sample_081" "sample_082" "sample_083" "sample_084" "sample_085"
#> [86] "sample_086" "sample_087" "sample_088" "sample_089" "sample_090"
#> [91] "sample_091" "sample_092" "sample_093" "sample_094" "sample_095"
#> [96] "sample_096" "sample_097" "sample_098" "sample_099" "sample_100"
#> [101] "sample_101" "sample_102" "sample_103" "sample_104" "sample_105"
#> [106] "sample_106" "sample_107" "sample_108" "sample_109" "sample_110"
#> [111] "sample_111" "sample_112" "sample_113" "sample_114" "sample_115"
#> [116] "sample_116" "sample_117" "sample_118" "sample_119" "sample_120"
#> [121] "sample_121" "sample_122" "sample_123" "sample_124" "sample_125"
#> [126] "sample_126" "sample_127" "sample_128" "sample_129" "sample_130"
#> [131] "sample_131" "sample_132" "sample_133" "sample_134" "sample_135"
#> [136] "sample_136" "sample_137" "sample_138" "sample_139" "sample_140"
#> [141] "sample_141" "sample_142" "sample_143" "sample_144" "sample_145"
#> [146] "sample_146" "sample_147" "sample_148" "sample_149" "sample_150"
#> [151] "sample_151" "sample_152" "sample_153" "sample_154" "sample_155"
#> [156] "sample_156" "sample_157" "sample_158" "sample_159" "sample_160"
#> [161] "sample_161" "sample_162" "sample_163" "sample_164" "sample_165"
#> [166] "sample_166" "sample_167" "sample_168" "sample_169" "sample_170"
#> [171] "sample_171" "sample_172" "sample_173" "sample_174" "sample_175"
#> [176] "sample_176" "sample_177" "sample_178" "sample_179" "sample_180"
#> [181] "sample_181" "sample_182" "sample_183" "sample_184" "sample_185"
#> [186] "sample_186" "sample_187" "sample_188" "sample_189" "sample_190"
#> [191] "sample_191" "sample_192" "sample_193" "sample_194" "sample_195"
#> [196] "sample_196" "sample_197" "sample_198" "sample_199" "sample_200"
#> [201] "sample_201" "sample_202" "sample_203" "sample_204" "sample_205"
#> [206] "sample_206" "sample_207" "sample_208" "sample_209" "sample_210"
#> [211] "sample_211" "sample_212" "sample_213" "sample_214" "sample_215"
#> [216] "sample_216" "sample_217" "sample_218" "sample_219" "sample_220"
#> [221] "sample_221" "sample_222" "sample_223" "sample_224" "sample_225"
#> [226] "sample_226" "sample_227" "sample_228" "sample_229" "sample_230"
#> [231] "sample_231" "sample_232" "sample_233" "sample_234" "sample_235"
#> [236] "sample_236" "sample_237" "sample_238" "sample_239" "sample_240"
#> [241] "sample_241" "sample_242" "sample_243" "sample_244" "sample_245"
#> [246] "sample_246" "sample_247" "sample_248" "sample_249" "sample_250"
#> [251] "sample_251" "sample_252" "sample_253" "sample_254" "sample_255"
#> [256] "sample_256" "sample_257" "sample_258" "sample_259" "sample_260"
#> [261] "sample_261" "sample_262" "sample_263" "sample_264" "sample_265"
#> [266] "sample_266" "sample_267" "sample_268" "sample_269" "sample_270"
#> [271] "sample_271" "sample_272" "sample_273" "sample_274" "sample_275"
#> [276] "sample_276" "sample_277" "sample_278" "sample_279" "sample_280"
#> [281] "sample_281" "sample_282" "sample_283" "sample_284" "sample_285"
#> [286] "sample_286" "sample_287" "sample_288" "sample_289" "sample_290"
#> [291] "sample_291" "sample_292" "sample_293" "sample_294" "sample_295"
#> [296] "sample_296" "sample_297" "sample_298" "sample_299" "sample_300"
#> [301] "sample_301" "sample_302" "sample_303" "sample_304" "sample_305"
#> [306] "sample_306" "sample_307" "sample_308" "sample_309" "sample_310"
#> [311] "sample_311" "sample_312" "sample_313" "sample_314" "sample_315"
#> [316] "sample_316" "sample_317" "sample_318" "sample_319" "sample_320"
#> [321] "sample_321" "sample_322" "sample_323" "sample_324" "sample_325"
#> [326] "sample_326" "sample_327" "sample_328" "sample_329" "sample_330"
#> [331] "sample_331" "sample_332" "sample_333" "sample_334" "sample_335"
#> [336] "sample_336" "sample_337" "sample_338" "sample_339" "sample_340"
#> [341] "sample_341" "sample_342" "sample_343" "sample_344" "sample_345"
#> [346] "sample_346" "sample_347" "sample_348" "sample_349" "sample_350"
#> [351] "sample_351" "sample_352" "sample_353" "sample_354" "sample_355"
#> [356] "sample_356" "sample_357" "sample_358" "sample_359" "sample_360"
#> [361] "sample_361" "sample_362" "sample_363" "sample_364" "sample_365"
#> [366] "sample_366" "sample_367" "sample_368" "sample_369" "sample_370"
#> [371] "sample_371" "sample_372" "sample_373" "sample_374" "sample_375"
#> [376] "sample_376" "sample_377" "sample_378" "sample_379" "sample_380"
#> [381] "sample_381" "sample_382" "sample_383" "sample_384" "sample_385"
#> [386] "sample_386" "sample_387" "sample_388" "sample_389" "sample_390"
#> [391] "sample_391" "sample_392" "sample_393" "sample_394" "sample_395"
#> [396] "sample_396" "sample_397" "sample_398" "sample_399" "sample_400"
#> [401] "sample_401" "sample_402" "sample_403" "sample_404" "sample_405"
#> [406] "sample_406" "sample_407" "sample_408" "sample_409" "sample_410"
#> [411] "sample_411" "sample_412" "sample_413" "sample_414" "sample_415"
#>
#>
#>
#> $top_loci
#> # A tibble: 0 × 27
#> # ℹ 27 variables: variant_id <chr>, chrom <chr>, pos <int>, A1 <chr>, A2 <chr>,
#> # N <int>, af <dbl>, marginal_beta <dbl>, marginal_se <dbl>,
#> # marginal_z <dbl>, marginal_p <dbl>, pip <dbl>, posterior_mean <dbl>,
#> # posterior_sd <dbl>, logBF <dbl>, cs_95 <chr>, cs_70 <chr>, cs_50 <chr>,
#> # cs_95_purity <dbl>, cs_70_purity <dbl>, cs_50_purity <dbl>,
#> # within_cs_pip <dbl>, method <chr>, gene <chr>, event <chr>,
#> # grange_start <int>, grange_end <int>
#>