FINEMAP: Added early runnability check viaFINEMAP_check_runnable()— validates the binary can execute before preparing data, with platform-specific error messages for Apple Silicon dylib issues.FINEMAP: Added automatic x86_64 dynamic library setup on Apple Silicon viaFINEMAP_setup_dylibs(). Builds/downloads x86_64 libzstd, libomp, and gcc runtime libraries, then rewrites binary paths withinstall_name_tool.FINEMAP: System PATH detection — checks for conda-installed FINEMAP before downloading from GitHub releases.PAINTOR: Wired functional annotation pipeline end-to-end.PAINTOR_prepare_annotations()is a pure-R reimplementation of the original Python 2.7AnnotateLocus.py, converting BED files to binary annotation matrices and passing annotation names to the PAINTOR executable.PAINTOR: Newannot_paintorparameter for downloading the comprehensive PAINTOR functional annotation library (~7GB, 10,000+ annotations) from BOX. Annotations are cached locally after first download.PAINTOR: NewPAINTOR_fetch_annotations()andPAINTOR_list_annotations()functions for managing the annotation library.POLYFUN: Fixed parametric mode filename pattern — parametric output has no chromosome in the filename, so the import now matches correctly.
FINEMAP: Fixed sparse matrix (dsCMatrix) handling inFINEMAP_construct_data()by converting to dense matrix beforefwrite().POLYFUN: Fixed silent error swallowing inPOLYFUN_import_priors()— replacedtry({})with proper exit code checking and output file verification.POLYFUN: FixedrequireNamespace("Ckmeans.1d.dp")to properly error with an informative message instead of silently continuing.POLYFUN: FixedPOLYFUN_install()blocking non-interactive sessions by gatingreadline()behindinteractive()check.POLYFUN: Removed hardcoded path override inPOLYFUN_compute_priors()that was overwriting the properly resolved polyfun path.PAINTOR: Removedsetup_gcc(version="clang")call fromPAINTOR_install()that required sudo for symlink creation.setup_gcc(): Rewritten for Apple Silicon support — checks both/opt/homebrew(ARM) and/usr/local(Intel) Homebrew paths, handles multiple gcc installation formats.- Tests: Split monolithic
test-multifinemap.Rinto focused subtests (BST1, LRRK2 with network skip, POLYFUN_SUSIE with dependency checks). - Tests: Added proper skip guards for FINEMAP, PAINTOR, and POLYFUN tests with direct function checks instead of tryCatch wrappers.
- Local R CMD check fixes and compatibility updates.
- Local R CMD check fixes and compatibility updates.
- Standardize
rworkflows.ymlwith canonical template: enable Docker onghcr.io, setwrite-allpermissions, useGITHUB_TOKEN, adddevelbranch trigger.
- Implement
rworkflows
- Pass more arg down to method-level via
finemap_args. - Add
check_argsfunction to handlefinemap_args. - Offload
piggybackfunctions to echodata (echodata::get_data) SUSIE:- Condense
manual_var_yandvar_nameinto one arg:var_y - Replace
dataset_typewith more appropriatecase_controlarg.
- Condense
- Fully documented all functions.
- Remove
POLYFUN_plot(redundant code withechoplot) POLYFUN_: fixed or deleted functionsPOLYFUN_munge_summ_statsPOLYFUN_compute_priors
- Make
Rfastan Import to avoid downstream issues withecholocatoR. - Fix GHA: @master --> @v2
- Remove unnecessary deps:
ggplot2
- Adjust .Rbuildignore to not cause issues with large
inst/toolssubfolder. require_cols:- Now takes the more accurate
case_controlarg instead ofdataaset_type.
- Now takes the more accurate
COJO:- Now working with echoverse.
- Added 3 COJO modes to list of finemapping methods:
run_stepwise,run_conditional,run_joint - Automated installation of GCTA.
- Added unit tests.
PAINTOR:- Now working with echoverse.
- Generalized to any data input type (GWAS/QTL/TWAS) to avoid hard-coded args.
- Streamlined functions and reduced clutter.
- Automated installation of PAINTOR.
- Can now handle multi-trait and multi-ancestry fine-mapping.
- Added unit tests.
multifinemap:- Automatically checks
finemap_methods - Passes
seedall the way to finemapping functions. - Expanded finemapping methods.
- Automatically checks
check_required_cols: Add coloring viacli.required_cols: Add URLS to GitHub repos and citations.- Added functions for checking each fine-mapping CLI method's version:
<method>_check_version- Changed
POLYFUN_find_polyfun_folder-->POLYFUN_find_folderfor consistency.
FINEMAP: Figured out solution to get FINEMAP v1.4 working on Mac. Instructions in messages now updated.create_method_path: Usebasename(LD_reference)for file naming.- Require "MAF" columns for coloc, as it now seems to be required by
the error message when it's missing:
dataset : please give MAF if using p values
- Updated GHA.
POLYFUN:- Can now use
FINEMAPorSUSIEas a method. - Change column "POLYFUN_h2" --> "POLYFUN.h2" to make consistent with other cols.
- Automatically installs itself from the GitHub submodule.
POLYFUN_helpnow exported.
- Can now use
- Use
Rfastto speed upSUSIE. remove_na_rows: Remove rows with NAs in tool-specific essential cols.- Update
FINEMAPto v1.4.1. - Make separate columns for
FINEMAPresults:- PP: Conditional PP (from .cred file(s))
- PP_snp: Marginal PP (from .snp file)
- PP_config: Configuration PP (from .config file)
- k: Optimized number of causal SNPs (<=
n_causal).
- Got
FINEMAPto use priors viadata.kfile.
- Switch SUSIE method from
susie_suff_stattosusie_rssfor parameter consistency. - Fix
ABF.- Use mean
proportion_cases
- Use mean
- Test
FINEMAPv1.4 and v1.3.1 on Linux. - Actually pass
force_new_finemapall the way down. - Dynamically infer "data.cred*" file name.
- Fill NAs in FINEMAP CS/PP.
SUSIE:susieRv0.11 contained serious bugs that causedsusie_rssto fail. This was fixed in v0.12 (which is now a version requirement forechofinemap). See here for details: stephenslab/susieR#167
- Updated conda env to echoR_mini.
- Add
prior_kas argument toFINEMAP. - Add message about gcc8 to FINEMAP v1.4 error.
- Minor fixes to POLYFUN method checks.
- Added a
NEWS.mdfile to track changes to the package.