From ee04a58773de5232b32f272be9e22d923160d6a9 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 26 Mar 2026 17:03:04 +0000 Subject: [PATCH 01/85] Have ability to run without HPC job --- .env_example | 13 ++- .gitignore | 5 + .lintr | 5 + NAMESPACE | 1 + R/constants.R | 12 +- R/data_conversions.R | 106 ++++++++++++++++++ R/gwas_formatting.R | 67 ++++++++++- README.md | 16 ++- run_pipeline.sh | 42 ++++++- scripts/align_alleles.sh | 36 ++++++ scripts/change_snp_identifiers.R | 50 +++++++++ scripts/run_ldsc.sh | 1 + scripts/standardise_gwas.R | 14 ++- snakemake/PIPELINES.md | 5 +- snakemake/change_reference_build.smk | 48 ++++++++ snakemake/disease_progression.smk | 4 +- .../input_templates/standardise_gwases.json | 15 +-- snakemake/local/config.yaml | 24 ++++ snakemake/qtl_mr.smk | 4 +- snakemake/rules/standardise_rule.smk | 8 +- snakemake/slurm_singularity/config.yaml | 33 ++++++ snakemake/util/common.smk | 47 ++++++-- snakemake/util/constants.smk | 24 +++- snakemake/util/log_results.smk | 7 +- 24 files changed, 536 insertions(+), 51 deletions(-) create mode 100644 .lintr create mode 100755 scripts/align_alleles.sh create mode 100644 scripts/change_snp_identifiers.R create mode 100644 snakemake/change_reference_build.smk create mode 100644 snakemake/local/config.yaml create mode 100644 snakemake/slurm_singularity/config.yaml diff --git a/.env_example b/.env_example index 2610fe7..7268c66 100644 --- a/.env_example +++ b/.env_example @@ -1,8 +1,13 @@ DATA_DIR= RESULTS_DIR= RDFS_DIR= -GENOMIC_DATA_DIR=/mnt/storage/private/mrcieu/data/genomic_data/ -THOUSAND_GENOMES_DIR=/mnt/storage/private/mrcieu/data/genomic_data/1000genomes/b37_dbsnp156/ -LDSC_DIR=/mnt/storage/private/mrcieu/data/LDSCORE/b37_dbsnp156/ -QTL_DIRECTORY=/mnt/storage/private/mrcieu/data/qtl_datasets/ +PIPELINE_DATA_DIR=/Users/wt23152/Documents/Projects/scratch/020/data/ DOCKER_VERSION= +SNAKEMAKE_PROFILE=snakemake/local/ +PIPELINE_LOG_DIR= +# Optional: Lima VM name if apptainer only exists inside Lima (default: apptainer) +# GENEHACKMAN_LIMA_INSTANCE=apptainer + +# Optional: directory for Snakemake to store pulled container images (docker:// when no local .sif). +# Default if unset: .snakemake/singularity under the directory where you run snakemake. +# GENEHACKMAN_SINGULARITY_PREFIX=/path/to/large/disk/snakemake_singularity diff --git a/.gitignore b/.gitignore index 5a054fb..a887e1b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ .Rproj.user .snakemake/ +.genehackman/ +pipeline_logs/ .cache/ .ipynb_checkpoints/ *input.json @@ -7,3 +9,6 @@ .bashrc .DS_Store ieugwasr_oauth + +/.quarto/ +**/*.quarto_ipynb diff --git a/.lintr b/.lintr new file mode 100644 index 0000000..968f89c --- /dev/null +++ b/.lintr @@ -0,0 +1,5 @@ +linters: with_defaults( + line_length_linter = line_length_linter(120), + quotes_linter = NULL, + object_name_linter = NULL +) diff --git a/NAMESPACE b/NAMESPACE index 6e0a3bf..5d23999 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -14,6 +14,7 @@ export(gwas_region) export(harmonise_gwases) export(manhattan_and_qq) export(miami_plot) +export(populate_eaf_from_reference_panel) export(populate_gene_names) export(populate_rsid) export(run_coloc_on_list_of_datasets) diff --git a/R/constants.R b/R/constants.R index f4eee34..325d118 100644 --- a/R/constants.R +++ b/R/constants.R @@ -8,11 +8,12 @@ get_env_var <- function(env_var_name, default_value=NULL) { user_data_dir <- get_env_var("DATA_DIR", "") user_results_dir <- get_env_var("RESULTS_DIR", "") - +pipeline_data_dir <- get_env_var("PIPELINE_DATA_DIR", "") number_of_cpus_available <- as.numeric(get_env_var("SLURM_CPUS_ON_NODE", 1)) -genomic_data_dir <- get_env_var("GENOMIC_DATA_DIR", "") -thousand_genomes_dir <- get_env_var("THOUSAND_GENOMES_DIR", "") -qtl_directory <- get_env_var("QTL_DIRECTORY", "") + +genomic_data_dir <- paste0(pipeline_data_dir, "/genomic_data") +thousand_genomes_dir <- paste0(pipeline_data_dir, "/1000genomes") +qtl_directory <- paste0(pipeline_data_dir, "/qtl_datasets") liftover_dir <- paste0(genomic_data_dir, '/liftover') pqtl_top_hits_dir <- paste0(qtl_directory, "/pqtl") @@ -22,5 +23,6 @@ eqtlgen_top_hits_dir <- paste0(qtl_directory, "/eqtlgen/top_hits") eqtlgen_gwas_dir <- paste0(qtl_directory, "/eqtlgen/gwas") qtl_datasets <- list(metabrain="metabrain", eqtlgen="eqtlgen") -populate_rsid_options <- list(full="full", partial="partial", none="none") +populate_rsid_options <- list(none="none", partial="partial", full="full") +populate_chr_bp_options <- list(none="none", partial="partial", full="full") rsid_builds <- list(GRCh37="b37_dbsnp156", GRCh38="b38_dbsnp156") diff --git a/R/data_conversions.R b/R/data_conversions.R index cc059aa..854dfdc 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -20,6 +20,112 @@ gene_name_to_ensembl_id <- function(gwas) { return(gwas) } +#' Allele complement for strand alignment (SNPs only). +#' @keywords internal +allele_complement_vec <- function(alleles) { + u <- toupper(alleles) + r <- c(A = "T", T = "A", G = "C", C = "G", I = "I", D = "D") + out <- unname(r[u]) + out[is.na(u) | u == ""] <- NA_character_ + out +} + +#' Map effect allele frequency using reference A1 allele frequency (PLINK --freq). +#' @keywords internal +map_ref_to_eaf <- function(ea, oa, ra1, ra2, a1_freq) { + ea <- toupper(ea) + oa <- toupper(oa) + ra1 <- toupper(ra1) + ra2 <- toupper(ra2) + dplyr::case_when( + ea == ra1 & oa == ra2 ~ a1_freq, + ea == ra2 & oa == ra1 ~ 1 - a1_freq, + ea == allele_complement_vec(ra2) & oa == allele_complement_vec(ra1) ~ 1 - a1_freq, + ea == allele_complement_vec(ra1) & oa == allele_complement_vec(ra2) ~ a1_freq, + TRUE ~ NA_real_ + ) +} + +#' Populate missing EAF from the LD reference panel (1000 Genomes PLINK binary + .frq). +#' +#' Expects \code{plink --bfile --freq --out } to exist beside the +#' \code{.bed/.bim/.fam} files, i.e. \code{/.frq}. +#' +#' @param gwas Standardised GWAS tibble (CHR, BP, EA, OA; SNP id built after allele ordering). +#' @param ancestry One of EUR, EAS, AFR, AMR, SAS matching the reference panel prefix. +#' @param enabled If FALSE, returns \code{gwas} unchanged. +#' @export +populate_eaf_from_reference_panel <- function(gwas, ancestry, enabled = FALSE) { + if (!enabled) { + message("Skipping EAF population from LD reference panel") + return(gwas) + } + allowed <- c("EUR", "EAS", "AFR", "AMR", "SAS") + if (!ancestry %in% allowed) { + stop("ancestry must be one of: ", paste(allowed, collapse = ", ")) + } + prefix <- file.path(thousand_genomes_dir, ancestry) + bim_path <- paste0(prefix, ".bim") + frq_path <- paste0(prefix, ".frq") + if (!file.exists(bim_path)) { + stop("LD reference .bim not found: ", bim_path) + } + if (!file.exists(frq_path)) { + stop( + "LD reference .frq not found: ", frq_path, + "\nGenerate with: plink --bfile ", prefix, " --freq --out ", prefix + ) + } + + ref_bim <- vroom::vroom( + bim_path, + delim = "\t", + col_names = c("CHR", "SNP", "CM", "BP", "A1_bim", "A2_bim"), + show_col_types = FALSE + ) + ref_frq <- vroom::vroom(frq_path, show_col_types = FALSE) + names(ref_frq) <- stringr::str_trim(names(ref_frq)) + req <- c("CHR", "SNP", "A1", "A2", "MAF") + if (!all(req %in% colnames(ref_frq))) { + stop(".frq file must contain columns CHR, SNP, A1, A2, MAF (plink 1.9 --freq)") + } + + ref_bim <- dplyr::mutate(ref_bim, CHR = as.character(CHR)) + ref_frq <- dplyr::mutate(dplyr::select(ref_frq, dplyr::all_of(req)), CHR = as.character(CHR)) + + ref <- dplyr::inner_join(ref_bim, ref_frq, by = c("CHR", "SNP")) + ref <- dplyr::distinct(ref, CHR, BP, .keep_all = TRUE) + ref <- dplyr::transmute( + ref, + CHR = as.character(CHR), + BP = as.integer(BP), + A1 = toupper(A1), + A2 = toupper(A2), + MAF = as.numeric(MAF) + ) + + gwas$CHR <- as.character(gwas$CHR) + gwas$BP <- as.integer(gwas$BP) + + joined <- dplyr::left_join(gwas, ref, by = c("CHR", "BP")) + computed_eaf <- map_ref_to_eaf(joined$EA, joined$OA, joined$A1, joined$A2, joined$MAF) + + if (!"EAF" %in% names(gwas)) { + gwas$EAF <- NA_real_ + } + need <- is.na(gwas$EAF) + fill <- need & !is.na(computed_eaf) + gwas$EAF[fill] <- computed_eaf[fill] + + n_need <- sum(need) + n_fill <- sum(fill) + message( + "EAF population (", ancestry, " reference): filled ", n_fill, + " of ", n_need, " missing values; ", n_need - n_fill, " still missing." + ) + gwas +} + #' @export populate_rsid <- function(gwas, option = populate_rsid_options$none) { gc() diff --git a/R/gwas_formatting.R b/R/gwas_formatting.R index f450215..4927511 100644 --- a/R/gwas_formatting.R +++ b/R/gwas_formatting.R @@ -9,6 +9,8 @@ #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values #' @param output_columns: column header map used for renaming GWAS: #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values +#' @param populate_eaf If TRUE, fill missing \code{EAF} from the 1000 Genomes LD panel (\code{ANCESTRY.bim} + \code{ANCESTRY.frq} under \code{THOUSAND_GENOMES_DIR}). +#' @param ancestry Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE. #' @param r: reference build of CHR and BP of data. Defaults to GRCh37 #' @return modified gwas: saves new gwas in {output_file} if present #' @import vroom @@ -22,10 +24,16 @@ standardise_gwas <- function(gwas, output_reference_build=reference_builds$GRCh37, input_columns="default", output_columns="default", - remove_extra_columns=F) { + remove_extra_columns=F, + populate_eaf=FALSE, + ancestry=NULL) { input_gwas_columns <- resolve_column_map(input_columns) output_gwas_columns <- resolve_column_map(output_columns) + if (populate_eaf && (is.null(ancestry) || length(ancestry) == 0 || !nzchar(as.character(ancestry)[1]))) { + stop("populate_eaf is TRUE but ancestry is missing; set ancestry to EUR, EAS, AFR, AMR, or SAS to match your LD reference panel.") + } + #TODO: if we need to add bespoke input format wrangling here, we can gwas <- get_file_or_dataframe(gwas) |> @@ -35,6 +43,7 @@ standardise_gwas <- function(gwas, convert_reference_build_via_liftover(input_reference_build, output_reference_build) |> standardise_alleles() |> health_check() |> + populate_eaf_from_reference_panel(ancestry, populate_eaf) |> populate_rsid(populate_rsid_option) |> populate_gene_names() |> change_column_names(output_gwas_columns) @@ -45,6 +54,62 @@ standardise_gwas <- function(gwas, return(gwas) } +#' change_snp_identifiers: changes the SNP identifiers of a GWAS to the output reference build +#' @param gwas: filename of gwas to standardise or dataframe of gwas +#' @param output_file: file to save standardised gwas +#' @param populate_rsid_option: if you want RSID populated or not +#' @param input_reference_build: reference build of CHR and BP of data. Defaults to GRCh37 +#' @param output_reference_build: reference build of CHR and BP of data. Defaults to GRCh37 +#' @param input_columns: column header map used for renaming GWAS: +#' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values +#' @param output_columns: column header map used for renaming GWAS: +#' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values +#' @return modified gwas: saves new gwas in {output_file} if present +#' @import vroom +#' @export +change_snp_identifiers <- function(gwas, + output_file, + populate_rsid_option=populate_rsid_options$none, + input_reference_build=reference_builds$GRCh37, + output_reference_build=reference_builds$GRCh37, + input_columns="default") { + input_gwas_columns <- resolve_column_map(input_columns) + + # Load the original GWAS (can be a filename or a dataframe) + original_gwas <- get_file_or_dataframe(gwas) + + # Track original row order so we can map new annotations back + original_gwas$row_number <- seq_len(nrow(original_gwas)) + + # Create an updated version with new coordinates / RSIDs, keeping row_number + updated_gwas <- original_gwas |> + change_column_names(input_gwas_columns) |> + convert_reference_build_via_liftover(input_reference_build, output_reference_build) |> + standardise_alleles() |> + populate_rsid(populate_rsid_option) |> + populate_gene_names() + + # Map new RSID and BP (if present) back onto the original data using row_number + annotation_cols <- c("RSID", "BP") + annotation_cols <- annotation_cols[annotation_cols %in% colnames(updated_gwas)] + + if (length(annotation_cols) > 0) { + updated_subset <- updated_gwas[, c("row_number", annotation_cols), drop = FALSE] + for (col in annotation_cols) { + original_gwas[[col]] <- updated_subset[[col]][match(original_gwas$row_number, updated_subset$row_number)] + } + } + + # Remove helper row_number column + original_gwas$row_number <- NULL + + if (!missing(output_file) && shiny::isTruthy(output_file)) { + vroom::vroom_write(original_gwas, output_file) + } + + return(original_gwas) +} + #' harmonise_gwases: takes a list of gwases, get the SNPs in common #' across all datasets arranged to be in the same order #' diff --git a/README.md b/README.md index 5646238..19592fd 100644 --- a/README.md +++ b/README.md @@ -29,17 +29,20 @@ Here is a list of available pipelines, and the steps they run ### 2. Ensure you [have conda installed and initialised before activating](https://www.acrc.bris.ac.uk/protected/hpc-docs/software/python_conda.html) -`conda activate /mnt/storage/private/mrcieu/data/genomic_data/pipeline/genehackman` +```conda env create --file environment.yml``` -(you can alternatively create your own conda environment if you like: `conda env create --file environment.yml`) +or if you have already created the environment + +```conda activate genehackman``` ### 3. Populate .env and input.json files -### `cp .env_example .env` +`cp .env_example .env` * populate the DATA_DIR, RESULTS_DIR and RDFS_DIR environment variables in .env file -These should probably be in your *work* or *scratch* space (`/user/work/userid/...`) +These should probably be in your *work* or *scratch* space (`/user/work/{userid}/...`) * RDFS_DIR is optional. All generated files can be copied automatically. Please ensure the path ends in `working/` +* **Container cache:** If there is no pre-built `genehackman_.sif` under `PIPELINE_DATA_DIR`, Snakemake pulls the `docker://` image and caches the SIF under `.snakemake/singularity` by default. Set **`GENEHACKMAN_SINGULARITY_PREFIX`** in `.env` to use another directory (e.g. scratch). Running `snakemake` without `./run_pipeline.sh`? Pass `--singularity-prefix /path` or add `singularity-prefix:` to your profile `config.yaml`. ### Fill out input.json file * Ex: `cp snakemake/input_templates/compare_gwases.json input.json` @@ -48,10 +51,15 @@ ends in `working/` * [Documentation per pipeline](snakemake/PIPELINES.md) * You can either copy into input.json, or supply the file into the script from another location +### 5. Create the container (if needed) + + + ### 4. Run the pipeline `./run_pipeline.sh snakemake/.smk ` +* By default `run_pipeline.sh` uses **local Docker** (`snakemake/local/`). On HPC, set e.g. `GENEHACKMAN_PROFILE=snakemake/bp1/` (or `bc4/`, `slurm_singularity/`). * `run_pipeline.sh` is just a convience wrapper around the `snakemake` command, if you want to do anything out of the ordinary, [please read up on snakemake](https://snakemake.readthedocs.io/en/v7.26.0/) * If there are errors while running the pipeline, you can find error messages either directly on the screen, or in slurm log file that is outputted on error * It is recommended that you run the your pipeline [inside a tmux session](https://github.com/MRCIEU/GeneHackman/wiki/Common-Errors#ssh-disconnection-while-pipeline-is-running). diff --git a/run_pipeline.sh b/run_pipeline.sh index 5f0cf2a..ab63b20 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -1,11 +1,17 @@ #!/bin/bash set -e +export GRPC_VERBOSITY=NONE +export GRPC_TRACE= + if [[ $# -lt 1 ]] ; then echo """ Error: You have to provide at least 1 argument: PIPELINE_FILE (ex. snakemake/standardise_gwas.smk) - INPUT_FILE (defaults to input.json) + INPUT_FILE (optional, defaults to input.json) + + Default profile is local Docker (snakemake/local/). HPC (Slurm/Apptainer): set + GENEHACKMAN_PROFILE=snakemake/bp1/ or snakemake/bc4/ (or snakemake/slurm_singularity/). """ exit 1 fi @@ -18,12 +24,36 @@ else exit 1 fi -#if [$(hostname)...] set PROFILE accordingly, for when multiple HPCs are -PROFILE=snakemake/bp1/ +# Default: local Docker. HPC: GENEHACKMAN_PROFILE=snakemake/bp1/ (or bc4/, slurm_singularity/). +PROFILE="${GENEHACKMAN_PROFILE:-snakemake/local/}" +if [[ -z "${GENEHACKMAN_PROFILE:-}" && ( "${GENEHACKMAN_LOCAL:-}" == "1" || "${GENEHACKMAN_LOCAL:-}" == "true" ) ]]; then + PROFILE="snakemake/local/" +fi +if [[ "${PROFILE}" == snakemake/local/* ]]; then + export GENEHACKMAN_LOCAL=1 +else + unset GENEHACKMAN_LOCAL +fi SMK_FILE=$1 -export INPUT_FILE=$2 +export INPUT_FILE="${2:-input.json}" ADDITIONAL_ARGS="${@:3}" -module load apptainer/1.3.1-ksax -snakemake --snakefile ${SMK_FILE} --profile ${PROFILE} ${ADDITIONAL_ARGS} +if [[ "${PROFILE}" != snakemake/local/* ]]; then + module load apptainer/1.3.1-ksax +fi + +SIF_DIR="${SINGULARITY_PREFIX:-.snakemake/singularity}" +SIF_PATH="${SIF_DIR}/genehackman:${DOCKER_VERSION}.sif" + +if [[ ! -f "${SIF_PATH}" ]]; then + mkdir -p "${SIF_DIR}" + echo "SIF file not found: ${SIF_PATH}" + echo "Building container with singularity..." + singularity build "${SIF_PATH}" "docker://mrcieu/genehackman:${GENEHACKMAN_VERSION}" +fi + + +echo "Running pipeline with profile: ${PROFILE}" + +snakemake --snakefile "${SMK_FILE}" --profile "${PROFILE}" ${ADDITIONAL_ARGS} diff --git a/scripts/align_alleles.sh b/scripts/align_alleles.sh new file mode 100755 index 0000000..76bc671 --- /dev/null +++ b/scripts/align_alleles.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Usage: ./align_alleles.sh + +INPUT=$1 +OUTPUT=$2 + +if [ -z "$INPUT" ] || [ -z "$OUTPUT" ]; then + echo "Usage: ./align_alleles.sh " + exit 1 +fi + +echo "Step 1: Extracting alleles and determining alphabetical A1..." + +# This awk command looks at Column 5 and 6 of the .bim file. +# It picks the alphabetically 'smaller' one to be the new A1. +awk '{ + if ($5 < $6) + print $2, $5; + else + print $2, $6; +}' "${INPUT}.bim" > a1_list.txt + +echo "Step 2: Running PLINK to update allele order..." + +# --make-bed creates the new triplet +# --a1-allele forces the alleles in our list to be in the A1 position +plink --bfile "$INPUT" \ + --a1-allele a1_list.txt \ + --make-bed \ + --out "$OUTPUT" + +# Cleanup temporary file +rm a1_list.txt + +echo "Done! New files saved as ${OUTPUT}.bed, .bim, .fam" \ No newline at end of file diff --git a/scripts/change_snp_identifiers.R b/scripts/change_snp_identifiers.R new file mode 100644 index 0000000..68a07c8 --- /dev/null +++ b/scripts/change_snp_identifiers.R @@ -0,0 +1,50 @@ +source("load.R") +library(argparser, quietly = TRUE) + +parser <- arg_parser("Standardise a GWAS to be ready for the rest of the pipeline") + +parser <- add_argument(parser, "--input_gwas", + help = "Comma separated list of filenames of GWASes to standardise", + type = "character" +) +parser <- add_argument(parser, "--output_gwas", + help = "Comma separated list of filenames of the standardised GWASes", + type = "character" +) +parser <- add_argument(parser, "--input_columns", + help = "Map of column names for pipeline to change it to", + type = "character", + default = "default" +) +parser <- add_argument(parser, "--output_columns", + help = "Map of column names for pipeline to change it to", + type = "character", + default = "default" +) +parser <- add_argument(parser, "--input_build", + help = paste(c("Input reference builds, options:", reference_builds), collapse = " "), + type = "character", + default = NULL +) +parser <- add_argument(parser, "--output_build", + help = paste(c("Output reference builds, options:", reference_builds), collapse = " "), + type = "character", + default = reference_builds$GRCh37 +) +parser <- add_argument(parser, "--populate_rsid", + help = paste(c("Should GWAS Populate RSID from CHR and BP, options:", populate_rsid_options), collapse = " "), + type = "character", + default = "none" +) + +args <- parse_args(parser) +create_dir_for_files(args$output_gwas) + +change_snp_identifiers(gwas = args$input_gwas, + output_file = args$output_gwas, + populate_rsid_option = args$populate_rsid, + input_reference_build = args$input_build, + output_reference_build = args$output_build, + input_columns = args$input_columns, + output_columns = args$output_columns +) diff --git a/scripts/run_ldsc.sh b/scripts/run_ldsc.sh index b2f087a..2709618 100755 --- a/scripts/run_ldsc.sh +++ b/scripts/run_ldsc.sh @@ -19,6 +19,7 @@ NS=$2 ANCESTRY=$3 OUTPUT=$4 +LDSC_DIR=$GENOMIC_DATA_DIR/LDSCORE LDSC_DATA=$DATA_DIR/ldsc N_LIST=(${NS//,/ }) diff --git a/scripts/standardise_gwas.R b/scripts/standardise_gwas.R index 34b566e..4d0210c 100644 --- a/scripts/standardise_gwas.R +++ b/scripts/standardise_gwas.R @@ -41,6 +41,16 @@ parser <- add_argument(parser, "--populate_rsid", type = "character", default = "none" ) +parser <- add_argument(parser, "--populate_eaf", + help = "If TRUE, fill missing EAF from LD reference panel (.bim + .frq under thousand genomes path)", + type = "logical", + default = FALSE +) +parser <- add_argument(parser, "--ancestry", + help = "Ancestry code for EAF reference (EUR, EAS, AFR, AMR, SAS); required when --populate_eaf is true", + type = "character", + default = "" +) parser <- add_argument(parser, "--remove_extra_columns", help = "Remove additional columns in GWAS that are not specified as an input column", type = "logical", @@ -58,5 +68,7 @@ standardise_gwas(gwas = args$input_gwas, output_reference_build = args$output_build, input_columns = args$input_columns, output_columns = args$output_columns, - remove_extra_columns = args$remove_extra_columns + remove_extra_columns = args$remove_extra_columns, + populate_eaf = args$populate_eaf, + ancestry = args$ancestry ) diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index 533c241..a317424 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -8,6 +8,9 @@ All piplines will require a GWAS object or list of objects, they have the follow * `build`: one of `GRCh36, GRCh37, GRCh38`. Default: `GRCh37` * `columns`: object of column name maps (or string of predefined map). Explained below * `populate_rsid`: boolean value. Populates RSID column if it doesn't exist. Default `false` +* `populate_eaf`: boolean value. When `true`, missing `EAF` is filled from the 1000 Genomes LD reference panel (`/.bim` + `.frq`; generate `.frq` with `plink --bfile --freq --out `). Only variants with `is.na(EAF)` are updated. Default `false`. **Requires `ancestry` on that GWAS** (same field as `compare_gwases`: `AFR`, `AMR`, `EAS`, `EUR`, `SAS`); there is no default ancestry. + +Pipeline-level `populate_eaf` (under the root JSON object, next to `populate_rsid`) applies to every GWAS unless a GWAS sets its own `populate_eaf`. Each GWAS that ends up with `populate_eaf` enabled must still include its own `"ancestry"` in the JSON. **GWAS Columns:** @@ -26,7 +29,7 @@ Alternatively, `columns` accepts a string of some of the more common output form ### standardise_gwas -All pipelines will standardise each GWAS before running the subsequent steps. The `SNP` field will be recalculated as `CHR:POS_EA_OA`, where EA and OA are ordered alphabetically, and the subsequent BETA and EAF will be adjusted accordingly +All pipelines will standardise each GWAS before running the subsequent steps. The `SNP` field will be recalculated as `CHR:POS_EA_OA`, where EA and OA are ordered alphabetically, and the subsequent BETA and EAF will be adjusted accordingly. Optional `populate_eaf` (per GWAS or pipeline) runs **after** this harmonisation and joins on `CHR`/`BP` to the reference panel. * `n GWAS objects`: See above for GWAS Object explanation * `output`: diff --git a/snakemake/change_reference_build.smk b/snakemake/change_reference_build.smk new file mode 100644 index 0000000..362dfc1 --- /dev/null +++ b/snakemake/change_reference_build.smk @@ -0,0 +1,48 @@ +include: "util/common.smk" +singularity: get_docker_container() + +pipeline_name = "standardise_gwas" +pipeline = parse_pipeline_input() + +onstart: + print("##### GWAS Standardisation Pipeline #####") + +std_file_pattern = standardised_gwas_name("{prefix}") + +rule all: + input: expand(std_file_pattern, prefix=[g.prefix for g in pipeline.gwases]) + +rule change_reference_build: + params: + input_gwas = lambda wildcards: getattr(pipeline, wildcards.prefix).file, + input_build = lambda wildcards: getattr(pipeline, wildcards.prefix).build, + output_build = lambda wildcards: getattr(pipeline, wildcards.prefix).build, + threads: 8 + resources: + mem = lambda wildcards: f"{getattr(pipeline, wildcards.prefix).standardised_memory}G", + time = '04:00:00' + output: std_file_pattern + shell: + """ + INPUT_GWAS={params.input_gwas} + if [[ {params.input_gwas} =~ .vcf ]]; then + INPUT_GWAS=$DATA_DIR/gwas/$(basename "{params.input_gwas}" | sed s/.vcf.*/\.tsv/g) + ./vcf_to_tsv.sh {params.input_gwas} {params.vcf_columns} $INPUT_GWAS + fi + + Rscript change_snp_identifiers.R \ + --input_gwas $INPUT_GWAS \ + --output_gwas {output} \ + --input_build {params.input_build} \ + --output_build {params.output_build} \ + --input_columns {params.input_columns} \ + --populate_rsid {params.populate_rsid} + """ + + + +onsuccess: + onsuccess(pipeline_name, is_test=pipeline.is_test) + +onerror: + onerror_message(pipeline_name, is_test=pipeline.is_test) diff --git a/snakemake/disease_progression.smk b/snakemake/disease_progression.smk index 9e95014..0715d08 100644 --- a/snakemake/disease_progression.smk +++ b/snakemake/disease_progression.smk @@ -1,5 +1,5 @@ include: "util/common.smk" -singularity: get_docker_container() +container: get_docker_container() pipeline_name = "disease_progression" pipeline = parse_pipeline_input(pipeline_includes_clumping=True) @@ -161,7 +161,7 @@ rule create_results_file: shell: """ Rscript create_results_file.R \ - --rmd_file /home/R/markdown/disease_progression.Rmd \ + --rmd_file {config.get("rmd_base", "/home/R")}/markdown/disease_progression.Rmd \ --params {results_string} \ --output_file {output} """ diff --git a/snakemake/input_templates/standardise_gwases.json b/snakemake/input_templates/standardise_gwases.json index 914a1fc..588d7b9 100644 --- a/snakemake/input_templates/standardise_gwases.json +++ b/snakemake/input_templates/standardise_gwases.json @@ -1,18 +1,15 @@ { "gwases": [ { - "file": "", - "columns": {"CHR":"", "BP":"", "EA":"", "OA":"", "EAF":"", "P":"", "BETA":"", "SE":""}, - "build": "GRCh37" - }, - { - "file": "", - "columns": {} + "file": "/Users/wt23152/Downloads/gwas_with_lbfs.tsv.gz", + "columns": {"CHR":"CHR", "BP":"BP", "EA":"EA", "OA":"OA", "EAF":"EAF", "P":"P", "BETA":"BETA", "SE":"SE"}, + "build": "GRCh38", + "ancestry": "EUR", + "populate_eaf": false } ], "output": { - "build": "GRCh37", - "columns": {} + "build": "GRCh37" }, "populate_rsid": false } diff --git a/snakemake/local/config.yaml b/snakemake/local/config.yaml new file mode 100644 index 0000000..5a4e29f --- /dev/null +++ b/snakemake/local/config.yaml @@ -0,0 +1,24 @@ +# Local profile: Snakemake 7 expects a `singularity` executable; Apptainer provides `apptainer`. +# run_pipeline.sh prepends a tiny shim when only apptainer exists. +use-singularity: True +singularity-args: >- + -B $(pwd)/R:/home/R + -B $(pwd)/scripts:/home/scripts + -B $(pwd)/inst:/home/inst + -B ${DATA_DIR}:${DATA_DIR} + -B ${RESULTS_DIR}:${RESULTS_DIR} + -B ${PIPELINE_DATA_DIR}:${PIPELINE_DATA_DIR} + -B /tmp:/tmp + --env-file .env + --pwd /home/scripts/ + +jobs: 4 +default-resources: + - mem_mb=4000 + - threads=1 +local-cores: 1 +latency-wait: 10 +keep-going: True +rerun-incomplete: True +printshellcmds: True +scheduler: greedy diff --git a/snakemake/qtl_mr.smk b/snakemake/qtl_mr.smk index 311c45b..5f07fe6 100644 --- a/snakemake/qtl_mr.smk +++ b/snakemake/qtl_mr.smk @@ -1,5 +1,5 @@ include: "util/common.smk" -singularity: get_docker_container() +container: get_docker_container() pipeline_name = "qtl_mr" pipeline = parse_pipeline_input() @@ -97,7 +97,7 @@ rule create_results_file: shell: """ Rscript create_results_file.R \ - --rmd_file /home/R/markdown/mr_for_qtls.Rmd \ + --rmd_file {config.get("rmd_base", "/home/R")}/markdown/mr_for_qtls.Rmd \ --params {results_string} \ --output_file {output} """ diff --git a/snakemake/rules/standardise_rule.smk b/snakemake/rules/standardise_rule.smk index e7141df..ec056b8 100644 --- a/snakemake/rules/standardise_rule.smk +++ b/snakemake/rules/standardise_rule.smk @@ -7,7 +7,9 @@ rule standardise_gwases: input_build = lambda wildcards: getattr(pipeline, wildcards.prefix).build, input_columns = lambda wildcards: getattr(pipeline, wildcards.prefix).input_columns, output_columns = lambda wildcards: getattr(pipeline, wildcards.prefix).output_columns, - populate_rsid = lambda wildcards: getattr(pipeline, wildcards.prefix).populate_rsid.value + populate_rsid = lambda wildcards: getattr(pipeline, wildcards.prefix).populate_rsid.value, + ancestry = lambda wildcards: getattr(pipeline, wildcards.prefix).ancestry, + populate_eaf_flag = lambda wildcards: "TRUE" if getattr(pipeline, wildcards.prefix).populate_eaf else "FALSE" threads: 8 resources: mem = lambda wildcards: f"{getattr(pipeline, wildcards.prefix).standardised_memory}G", @@ -30,6 +32,8 @@ rule standardise_gwases: --output_build {pipeline.output.build} \ --input_columns {params.input_columns} \ --output_columns {params.output_columns} \ - --populate_rsid {params.populate_rsid} + --populate_rsid {params.populate_rsid} \ + --populate_eaf {params.populate_eaf_flag} \ + --ancestry '{params.ancestry}' """ diff --git a/snakemake/slurm_singularity/config.yaml b/snakemake/slurm_singularity/config.yaml new file mode 100644 index 0000000..d7348a2 --- /dev/null +++ b/snakemake/slurm_singularity/config.yaml @@ -0,0 +1,33 @@ +cluster: + export USER=$(whoami) && + export ACCOUNT_ID=$(sacctmgr show user withassoc format=account where user=$USER | grep '[0-9]' | head -n1) && + mkdir -p /user/work/$USER/slurm_logs && + sbatch + --partition={resources.partition} + --account=$ACCOUNT_ID + --nodes={resources.nodes} + --ntasks-per-node={resources.ntasks_per_node} + --cpus-per-task={resources.ntasks_per_node} + --time={resources.time} + --cpus-per-task={threads} + --mem={resources.mem} + --job-name={rule}-{wildcards} + --output=/user/work/$USER/slurm_logs/{rule}_%j.out +default-resources: + - time='01:00:00' + - partition=compute + - mem='1G' + - ntasks_per_node=1 + - nodes=1 +restart-times: 0 +max-jobs-per-second: 10 +max-status-checks-per-second: 1 +local-cores: 1 +latency-wait: 10 +jobs: 10 +keep-going: True +rerun-incomplete: True +use-singularity: True +singularity-args: '-B $(pwd)/R:/home/R -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B /user/work/$(whoami) -B /user/home/$(whoami) -B /bp1/mrcieu1/data/ --env-file .env --pwd /home/scripts/' +printshellcmds: True +scheduler: greedy diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index 3e59269..1a1ec40 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -4,6 +4,7 @@ import gzip import json import os import re +import subprocess from datetime import datetime from dateutil.relativedelta import relativedelta from pathlib import Path @@ -21,7 +22,8 @@ def get_docker_container(): version = match.group(1) break - sif_file = f"{PIPELINE_DATA_DIR}/genehackman_{version}.sif" + singularity_dir = os.getenv("SINGULARITY_DIR", ".snakemake/singularity") + sif_file = f"{singularity_dir}/genehackman:{version}.sif" if os.path.isfile(sif_file): return sif_file elif version: @@ -52,6 +54,7 @@ def parse_pipeline_input(pipeline_includes_clumping=False): if not hasattr(pipeline.output, "columns"): pipeline.output.columns = default_output_options.columns if not hasattr(pipeline, "populate_rsid"): pipeline.populate_rsid = False + if not hasattr(pipeline, "populate_eaf"): pipeline.populate_eaf = False for g in pipeline.gwases: if not hasattr(g, "N"): g.N = 0 @@ -59,8 +62,19 @@ def parse_pipeline_input(pipeline_includes_clumping=False): if not hasattr(g, "remove_extra_columns"): g.remove_extra_columns = False if not hasattr(g, "build"): g.build = "GRCh37" if not hasattr(g, "populate_rsid"): g.populate_rsid = False + if not hasattr(g, "populate_eaf"): g.populate_eaf = False g.file = os.path.abspath(g.file) g.populate_rsid = resolve_rsid_population(pipeline_includes_clumping, g.populate_rsid or pipeline.populate_rsid) + g.populate_eaf = bool(g.populate_eaf or pipeline.populate_eaf) + if hasattr(g, "ancestry") and g.ancestry is not None and str(g.ancestry).strip(): + g.ancestry = str(g.ancestry).strip() + else: + g.ancestry = "" + if g.populate_eaf and not g.ancestry: + raise ValueError( + 'When populate_eaf is true, each GWAS must include "ancestry" in the input JSON ' + '(same as compare_gwases: AFR, AMR, EAS, EUR, or SAS), e.g. "ancestry": "EUR".' + ) g.standardised_memory = estimate_memory_needed_for_standardisation(g.file, g.populate_rsid) g.prefix = file_prefix(g.file) g.vcf_columns = get_columns_for_vcf_parsing(g.columns) @@ -68,6 +82,9 @@ def parse_pipeline_input(pipeline_includes_clumping=False): g.output_columns = resolve_gwas_columns(g.file, pipeline.output.columns, check_input_columns=False) g.standardised_gwas = standardised_gwas_name(g.file) setattr(pipeline,g.prefix,g) + eaf_ancestries = [g.ancestry for g in pipeline.gwases if g.populate_eaf] + if eaf_ancestries: + validate_ancestries(eaf_ancestries) return pipeline def resolve_rsid_population(pipeline_includes_clumping, populate_rsid): @@ -198,14 +215,14 @@ def standardised_gwas_name(gwas_name): return DATA_DIR + "gwas/" + file_prefix(gwas_name) + "_std.tsv.gz" def cleanup_old_slurm_logs(): - if not os.path.isdir(slurm_log_directory): return + if not os.path.isdir(pipeline_log_directory): return one_month_ago = datetime.now() - relativedelta(months=1) - files = [f for f in os.listdir(slurm_log_directory) if os.path.isfile(f)] + files = [f for f in os.listdir(pipeline_log_directory) if os.path.isfile(os.path.join(pipeline_log_directory, f))] print("deleting old logs") for filename in files: - file = os.path.join(slurm_log_directory, filename) + file = os.path.join(pipeline_log_directory, filename) file_timestamp = datetime.utcfromtimestamp(os.stat(file).st_mtime) if file_timestamp < one_month_ago: os.remove(file) @@ -253,12 +270,26 @@ def onsuccess(pipeline_name, files_created=list(), results_file=None, is_test=Fa def onerror_message(pipeline_name, is_test=False): - last_log = subprocess.check_output(f"ls -t {slurm_log_directory} | head -n1", shell=True, universal_newlines=True) - log_full_path = slurm_log_directory + last_log print("\n---------------------") print("There are some documented common errors here: https://github.com/MRCIEU/GeneHackman/wiki") - print("There was an error in the pipeline, please check the last written slurm log to see the error:") - print(log_full_path) + log_full_path = None + if os.path.isdir(pipeline_log_directory): + try: + entries = [ + os.path.join(pipeline_log_directory, f) + for f in os.listdir(pipeline_log_directory) + if os.path.isfile(os.path.join(pipeline_log_directory, f)) + ] + if entries: + log_full_path = max(entries, key=lambda p: os.stat(p).st_mtime) + except OSError: + pass + if log_full_path: + print("There was an error in the pipeline. If the job ran under Slurm, check the batch log:") + print(log_full_path) + else: + print("There was an error in the pipeline. Check the Snakemake output above,") + print(f"and logs under: {os.path.join(os.getcwd(), '.snakemake', 'log')}") update_google_sheet(pipeline_name, succeeded=False, error_file=log_full_path, is_test=is_test) diff --git a/snakemake/util/constants.smk b/snakemake/util/constants.smk index b499d1f..f15ce71 100644 --- a/snakemake/util/constants.smk +++ b/snakemake/util/constants.smk @@ -14,7 +14,19 @@ docker_repo = "docker://mrcieu/genehackman" user = os.getenv('USER') input_file = os.getenv('INPUT_FILE') or "input.json" start_time = datetime.now() -slurm_log_directory = f"/user/work/{user}/slurm_logs/" + +# Slurm writes batch stdout to this directory on HPC; local/Docker runs use ./pipeline_logs instead. +_pipeline_log_override = os.getenv("PIPELINE_LOG_DIR") +_local_flag = os.getenv("GENEHACKMAN_LOCAL", "").strip().lower() in ("1", "true", "yes") +_hpc_work_base = f"/user/work/{user}" if user else None +if _pipeline_log_override: + pipeline_log_directory = format_dir_string(_pipeline_log_override) +elif _local_flag or not (_hpc_work_base and os.path.isdir(_hpc_work_base)): + pipeline_log_directory = format_dir_string(os.path.join(os.getcwd(), "pipeline_logs")) +else: + pipeline_log_directory = format_dir_string(f"{_hpc_work_base}/slurm_logs") + +slurm_log_directory = pipeline_log_directory default_clump_headers = "CHR F SNP BP P TOTAL NSIG S05 S01 S001 S0001 SP2" #TODO: this should be read from predefined_column_map.csv @@ -52,9 +64,13 @@ DOCKER_VERSION = os.getenv('DOCKER_VERSION') DATA_DIR = format_dir_string(os.getenv('DATA_DIR')) RESULTS_DIR = format_dir_string(os.getenv('RESULTS_DIR')) RDFS_DIR = format_dir_string(os.getenv('RDFS_DIR')) -LDSC_DIR = format_dir_string(os.getenv('LDSC_DIR')) -GENOMIC_DATA_DIR = format_dir_string(os.getenv('GENOMIC_DATA_DIR')) -THOUSAND_GENOMES_DIR = format_dir_string(os.getenv('THOUSAND_GENOMES_DIR')) + +PIPELINE_DATA_DIR = format_dir_string(os.getenv('PIPELINE_DATA_DIR')) + +LDSC_DIR = format_dir_string(PIPELINE_DATA_DIR + "/LDSCORE") +GENOMIC_DATA_DIR = format_dir_string(PIPELINE_DATA_DIR + "/genomic_data") +THOUSAND_GENOMES_DIR = format_dir_string(PIPELINE_DATA_DIR + "/1000genomes") +QTL_DIRECTORY = format_dir_string(PIPELINE_DATA_DIR + "/qtl_datasets") PIPELINE_DATA_DIR = GENOMIC_DATA_DIR + "/pipeline" if RDFS_DIR and not RDFS_DIR.endswith("working/"): diff --git a/snakemake/util/log_results.smk b/snakemake/util/log_results.smk index 088ee55..d7a2766 100644 --- a/snakemake/util/log_results.smk +++ b/snakemake/util/log_results.smk @@ -23,8 +23,11 @@ def update_google_sheet(pipeline_name, succeeded=True, error_file=None, is_test= if not succeeded: with open(input_file,'r') as file: input_data = file.read() - with open(error_file.rstrip(), 'r') as file: - error_message = file.read() + if error_file and os.path.isfile(error_file): + with open(error_file, 'r') as file: + error_message = file.read() + else: + error_message = "(no batch log file; see Snakemake console or .snakemake/log/)" values = [user, hostname, pipeline_name, time_submitted_str, time_taken, result, input_data, error_message] worksheet.append_table(values=[values]) From 1535611da2470206d2adebddffc94021c7b3f845 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 10 Apr 2026 09:46:17 +0100 Subject: [PATCH 02/85] Adding steps and code to finemap in --- .env_example | 7 +- DESCRIPTION | 1 + NAMESPACE | 2 + PLATFORM_SETUP.md | 142 ++++++++++ R/constants.R | 20 +- R/data_conversions.R | 6 +- R/finemap.R | 267 ++++++++++++++++++ R/liftover.R | 8 +- README.md | 6 +- docker/requirements.R | 2 +- run_pipeline.sh | 25 +- scripts/run_finemap.R | 64 +++++ snakemake/finemap.smk | 73 +++++ snakemake/input_templates/finemap.json | 18 ++ .../input_templates/standardise_gwases.json | 2 +- snakemake/standardise_gwas.smk | 6 +- snakemake/util/common.smk | 12 +- 17 files changed, 627 insertions(+), 34 deletions(-) create mode 100644 PLATFORM_SETUP.md create mode 100644 R/finemap.R create mode 100644 scripts/run_finemap.R create mode 100644 snakemake/finemap.smk create mode 100644 snakemake/input_templates/finemap.json diff --git a/.env_example b/.env_example index 7268c66..041f5bc 100644 --- a/.env_example +++ b/.env_example @@ -3,11 +3,10 @@ RESULTS_DIR= RDFS_DIR= PIPELINE_DATA_DIR=/Users/wt23152/Documents/Projects/scratch/020/data/ DOCKER_VERSION= -SNAKEMAKE_PROFILE=snakemake/local/ +GENEHACKMAN_PROFILE=snakemake/local/ PIPELINE_LOG_DIR= # Optional: Lima VM name if apptainer only exists inside Lima (default: apptainer) # GENEHACKMAN_LIMA_INSTANCE=apptainer -# Optional: directory for Snakemake to store pulled container images (docker:// when no local .sif). -# Default if unset: .snakemake/singularity under the directory where you run snakemake. -# GENEHACKMAN_SINGULARITY_PREFIX=/path/to/large/disk/snakemake_singularity +# Optional: Snakemake --singularity-prefix for pulled images (see PLATFORM_SETUP.md on macOS/Lima). +# GENEHACKMAN_SINGULARITY_PREFIX=/tmp/genehackman_snakemake_singularity diff --git a/DESCRIPTION b/DESCRIPTION index 7a6ae8e..ea444f2 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -30,6 +30,7 @@ Imports: shiny, SlopeHunter, stringr, + susieR, tibble, tidyr, TwoSampleMR, diff --git a/NAMESPACE b/NAMESPACE index 5d23999..b67d07d 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -18,6 +18,7 @@ export(populate_eaf_from_reference_panel) export(populate_gene_names) export(populate_rsid) export(run_coloc_on_list_of_datasets) +export(finemap_gwas) export(standardise_gwas) export(volcano_plot) export(vroom_snps) @@ -42,6 +43,7 @@ import(rmarkdown) import(shiny) import(stats) import(stringr) +import(susieR) import(tibble) import(tidyr) import(utils) diff --git a/PLATFORM_SETUP.md b/PLATFORM_SETUP.md new file mode 100644 index 0000000..765712a --- /dev/null +++ b/PLATFORM_SETUP.md @@ -0,0 +1,142 @@ +# Running GeneHackman by platform + +Snakemake orchestrates steps; each step usually runs inside an **Apptainer/Singularity** image (`docker://mrcieu/genehackman` or a local `.sif`). **Profiles** under `snakemake/` choose how jobs run (local cores vs cluster scheduler) and which host paths are **bind-mounted** into the container. + +General prerequisites: + +1. **Conda env:** `conda env create -f environment.yml` then `conda activate genehackman` +2. **`.env`:** copy from `.env_example` and set at least `DATA_DIR`, `RESULTS_DIR`, `PIPELINE_DATA_DIR` (and paths your pipeline needs for genomic / 1000G data). +3. **Input JSON:** see `snakemake/input_templates/` and `snakemake/PIPELINES.md`. + +**`./run_pipeline.sh`** loads `.env`, picks a **profile** (`GENEHACKMAN_PROFILE`, default `snakemake/local/`), then runs Snakemake. Pass the **`.smk` workflow first**, then optional input JSON, for example: + +```bash +./run_pipeline.sh snakemake/standardise_gwas.smk path/to/input.json +``` + +--- + +## macOS + +### Apptainer and Snakemake + +Snakemake looks for an executable named **`singularity`** on `PATH`. Many installs only provide **`apptainer`**. Shell **aliases** in `~/.zshrc` (e.g. `alias singularity='limactl shell apptainer'`) are **not** visible to `run_pipeline.sh` because it uses **bash** and does not load your zsh aliases. + +Typical setups: + +- **Lima VM** with Apptainer (e.g. `limactl shell apptainer`) — run the pipeline from an environment where **`apptainer`** or **`singularity`** is a real binary on `PATH`, or use a small **`~/bin/singularity`** wrapper that calls `limactl shell -- apptainer "$@"`. +- **Homebrew Apptainer** (if available for your OS version). + +Customising Lima VM for macOS +``` +mountType: virtiofs +mounts: +- location: ~ + mountPoint: ~ +-location /tmp/lima + mountPOint: /tmp/lima +``` + + +### SIF cache and `/Users` mounts + +If the workflow pulls a `docker://` image, Snakemake caches the `.sif` under **`--singularity-prefix`** (default: `.snakemake/singularity` in the repo). On **macOS + Lima**, paths under **`/Users/...`** are often VM mounts where **creating large SIF files fails** with errors like **read-only file system**. + +- Set **`SINGULARITY_DIR`** in `.env` to a **writable** location **inside the Linux VM** (commonly a path under that VM’s **`/tmp`**, e.g. `/tmp/genehackman_snakemake_singularity`), or to native VM disk — not only a bind-mounted folder that cannot handle the build. +- Alternatively, place a pre-built **`$PIPELINE_DATA_DIR/genehackman_.sif`** (underscore; see `DESCRIPTION` / `DOCKER_VERSION`) so Snakemake does not need to build on a problematic mount. +- Avoid **colons** in host-side SIF filenames (`genehackman:1.0.0.sif`); macOS can reject them. The repo’s Snakemake helper uses **`genehackman_.sif`**. + +### Apple Silicon (arm64) + +The published image may be **linux/amd64**. Use Lima with **Rosetta / x86 Linux** (or run on an amd64 Linux machine / HPC) if pulls or runs fail with architecture warnings. + +--- + +## Linux (workstation or single server) + +1. Install **Apptainer** or **SingularityCE** (distribution packages or upstream instructions). +2. Ensure **`singularity`** or **`apptainer`** is on `PATH` (some sites symlink `singularity` → `apptainer`). +3. Use **`snakemake/local/`** for local execution (same as default in `run_pipeline.sh`): + + ```bash + export GENEHACKMAN_PROFILE=snakemake/local/ + ./run_pipeline.sh snakemake/compare_gwases.smk + ``` + +4. Adjust **`snakemake/local/config.yaml`** `singularity-args` if your data live outside `DATA_DIR` / `RESULTS_DIR` / `PIPELINE_DATA_DIR` (add matching `-B host:host` pairs). +5. Large pulls: set **`GENEHACKMAN_SINGULARITY_PREFIX`** to fast scratch (e.g. `/scratch/$USER/snakemake_singularity`). + +--- + +## Slurm (HPC) + +The repo ships Slurm-oriented profiles (paths and partitions are **Bristol / MRC IEU–oriented**; **edit** them for your site): + +| Profile directory | Notes | +|-------------------|--------| +| `snakemake/bp1/` | Example: binds `/bp1/mrcieu1/data/`, uses `sbatch`, partition `compute` in `config.yaml` | +| `snakemake/bc4/` | Similar; binds `/mnt/storage/private/mrcieu/data/` in the version checked into this repo | +| `snakemake/slurm_singularity/` | Slurm + Singularity; site-specific binds | + +**Typical usage:** + +```bash +export GENEHACKMAN_PROFILE=snakemake/bp1/ +./run_pipeline.sh snakemake/compare_gwases.smk +``` + +`run_pipeline.sh` runs **`module load apptainer/1.3.1-ksax`** when the profile is **not** `snakemake/local/*` — **change the module name** in `run_pipeline.sh` to match your cluster. + +**You must customize** each profile’s `config.yaml`: + +- **`cluster:`** block: `sbatch` options (`partition`, `account`, walltime, memory, `--output` log directory). +- **`singularity-args`:** `-B` mounts for your home, scratch, and shared reference data (replacing Bristol-specific paths). + +Log files: profiles often write Slurm stdout under **`/user/work/$USER/slurm_logs/`**; create that tree or change `--output` to your scratch. + +**Snakemake version:** `environment.yml` pins **Snakemake 7.x**. Migrating to **Snakemake 8+** changes cluster syntax (`cluster-generic` executor + plugins); this repository’s profiles target the v7 style unless you have already updated them. + +--- + +## PBS Pro / OpenPBS / Torque + +There is **no** checked-in PBS profile. You can add one by mirroring the Slurm profiles with a **`cluster:`** line that calls your scheduler, for example (Snakemake 7 — adjust directives to your site): + +```yaml +cluster: >- + qsub -N {rule}-{wildcards} + -l walltime={resources.time} + -l select=1:ncpus={threads}:mem={resources.mem} + -o /path/to/your/pbs_logs/{rule}_%I.out + -j oe +``` + +Requirements: + +- **`qsub`** must return the job ID on stdout in a form Snakemake can track. +- For large workflows, set **`--cluster-status`** (or Snakemake’s DRMAA integration) if your site documents it; otherwise use Snakemake’s polling defaults where supported. + +Copy `snakemake/slurm_singularity/config.yaml` (or `bp1`) as a template, replace the **`cluster:`** section with **`qsub`**, and add **`singularity-args`** appropriate for PBS compute nodes (shared filesystem mounts). + +--- + +## Environment variables (quick reference) + +| Variable | Purpose | +|----------|---------| +| **`GENEHACKMAN_PROFILE`** | Snakemake profile path (default `snakemake/local/`). Example HPC: `snakemake/bp1/` | +| **`INPUT_FILE`** | Path to pipeline JSON (also set by `run_pipeline.sh` from the second argument) | +| **`GENEHACKMAN_SINGULARITY_PREFIX`** | Snakemake `--singularity-prefix`: where pulled `.sif` images are stored | +| **`GENEHACKMAN_LIMA_INSTANCE`** | Lima VM name when using a `limactl shell -- apptainer` wrapper (default often `apptainer`) | +| **`PIPELINE_LOG_DIR`** | Optional override for log-directory hints on errors (see `snakemake/util/constants.smk`) | + +Use **`.env`** for values you want loaded every time `./run_pipeline.sh` runs (`export $(cat .env | xargs)`). + +--- + +## Further reading + +- Pipeline input schema: [`snakemake/PIPELINES.md`](snakemake/PIPELINES.md) +- Main readme: [`README.md`](README.md) +- Snakemake profiles: [documentation](https://snakemake.readthedocs.io/en/stable/executing/cli.html#profiles) +- Snakemake cluster execution: [docs](https://snakemake.readthedocs.io/en/stable/executing/cluster.html) diff --git a/R/constants.R b/R/constants.R index 325d118..2576c7b 100644 --- a/R/constants.R +++ b/R/constants.R @@ -8,19 +8,19 @@ get_env_var <- function(env_var_name, default_value=NULL) { user_data_dir <- get_env_var("DATA_DIR", "") user_results_dir <- get_env_var("RESULTS_DIR", "") -pipeline_data_dir <- get_env_var("PIPELINE_DATA_DIR", "") +pipeline_data_dir <- sub("/+$", "", get_env_var("PIPELINE_DATA_DIR", "")) number_of_cpus_available <- as.numeric(get_env_var("SLURM_CPUS_ON_NODE", 1)) -genomic_data_dir <- paste0(pipeline_data_dir, "/genomic_data") -thousand_genomes_dir <- paste0(pipeline_data_dir, "/1000genomes") -qtl_directory <- paste0(pipeline_data_dir, "/qtl_datasets") +genomic_data_dir <- file.path(pipeline_data_dir, "genomic_data") +thousand_genomes_dir <- file.path(pipeline_data_dir, "1000genomes") +qtl_directory <- file.path(pipeline_data_dir, "qtl_datasets") -liftover_dir <- paste0(genomic_data_dir, '/liftover') -pqtl_top_hits_dir <- paste0(qtl_directory, "/pqtl") -metabrain_top_hits_dir <- paste0(qtl_directory, "/metabrain/top_hits") -metabrain_gwas_dir <- paste0(qtl_directory, "/metabrain/gwas") -eqtlgen_top_hits_dir <- paste0(qtl_directory, "/eqtlgen/top_hits") -eqtlgen_gwas_dir <- paste0(qtl_directory, "/eqtlgen/gwas") +liftover_dir <- file.path(genomic_data_dir, "liftover") +pqtl_top_hits_dir <- file.path(qtl_directory, "pqtl") +metabrain_top_hits_dir <- file.path(qtl_directory, "metabrain", "top_hits") +metabrain_gwas_dir <- file.path(qtl_directory, "metabrain", "gwas") +eqtlgen_top_hits_dir <- file.path(qtl_directory, "eqtlgen", "top_hits") +eqtlgen_gwas_dir <- file.path(qtl_directory, "eqtlgen", "gwas") qtl_datasets <- list(metabrain="metabrain", eqtlgen="eqtlgen") populate_rsid_options <- list(none="none", partial="partial", full="full") diff --git a/R/data_conversions.R b/R/data_conversions.R index 854dfdc..1c140c0 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -9,13 +9,13 @@ populate_gene_names <- function(gwas) { } ensembl_id_to_gene_name <- function(gwas) { - gene_map <- vroom::vroom(paste0(genomic_data_dir, "gene_name_map.tsv")) + gene_map <- vroom::vroom(file.path(genomic_data_dir, "gene_name_map.tsv")) gwas$GENE_NAME <- gene_map$GENE_NAME[match(gwas$ENSEMBL_ID, gene_map$ENSEMBL_ID)] return(gwas) } gene_name_to_ensembl_id <- function(gwas) { - gene_map <- vroom::vroom(paste0(genomic_data_dir, "gene_name_map.tsv")) + gene_map <- vroom::vroom(file.path(genomic_data_dir, "gene_name_map.tsv")) gwas$ENSEMBL_ID <- gene_map$ENSEMBL_ID[match(gwas$GENE_NAME, gene_map$GENE_NAME)] return(gwas) } @@ -161,7 +161,7 @@ populate_partial_rsids <- function(gwas) { #' @import genepi.utils #' @import future populate_full_rsids <- function(gwas, build = rsid_builds$GRCh37) { - dbsnp_dir <- paste0(genomic_data_dir, "dbsnp") + dbsnp_dir <- file.path(genomic_data_dir, "dbsnp") if (!build %in% rsid_builds) stop(paste("Error: invalid rsid build option:", build)) gwas <- data.table::as.data.table(gwas) diff --git a/R/finemap.R b/R/finemap.R new file mode 100644 index 0000000..0d10a2d --- /dev/null +++ b/R/finemap.R @@ -0,0 +1,267 @@ +#' Run SuSiE fine-mapping across all clumped loci in a GWAS +#' +#' For each lead SNP from plink --clump output, extracts a window, computes an +#' LD matrix from the 1000 Genomes reference panel via plink, and runs +#' susieR::susie_rss. Produces per-SNP log Bayes factors and a filtered GWAS +#' containing only credible-set SNPs. +#' +#' @param gwas filename or dataframe of a standardised GWAS +#' @param clumped_file plink --clump output file +#' @param ancestry ancestry code matching 1000 Genomes panel prefix (EUR, EAS, AFR, AMR, SAS) +#' @param n GWAS sample size +#' @param output_lbf_file path to write combined per-locus LBF table +#' @param output_credible_set_file path to write credible-set-filtered GWAS +#' @param window_kb fine-mapping window half-width in kb (default 500) +#' @param max_causal maximum number of causal signals per locus (SuSiE L, default 10) +#' @param coverage credible set coverage (default 0.95) +#' @param min_abs_corr minimum absolute correlation for credible sets (default 0.5) +#' @return invisibly, the combined LBF tibble +#' @import data.table +#' @import dplyr +#' @import vroom +#' @import tibble +#' @export +finemap_gwas <- function(gwas, + clumped_file, + ancestry, + n, + output_lbf_file, + output_credible_set_file, + window_kb = 500, + max_causal = 10, + coverage = 0.95, + min_abs_corr = 0.5) { + + gwas <- get_file_or_dataframe(gwas) + numeric_cols <- c("CHR", "BP", "BETA", "SE", "P", "EAF") + for (col in intersect(numeric_cols, colnames(gwas))) { + gwas[[col]] <- as.numeric(gwas[[col]]) + } + + lead_snps <- data.table::fread(clumped_file, select = c("SNP", "CHR", "BP")) + if (nrow(lead_snps) == 0) { + message("No clumped SNPs found; writing empty output files.") + empty_lbf <- tibble::tibble( + SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), + Z = numeric(), LBF = numeric(), CS = integer(), LEAD_SNP = character() + ) + vroom::vroom_write(empty_lbf, output_lbf_file) + vroom::vroom_write(gwas[0, ], output_credible_set_file) + return(invisible(empty_lbf)) + } + + window_bp <- window_kb * 1000 + all_lbf <- list() + + for (i in seq_len(nrow(lead_snps))) { + lead_rsid <- lead_snps$SNP[i] + lead_chr <- as.numeric(lead_snps$CHR[i]) + lead_bp <- as.numeric(lead_snps$BP[i]) + + locus_gwas <- dplyr::filter(gwas, + CHR == lead_chr & + BP >= (lead_bp - window_bp) & + BP <= (lead_bp + window_bp) & + !is.na(BETA) & !is.na(SE) & SE > 0 + ) + + if (nrow(locus_gwas) < 2) { + message(paste("Skipping locus", lead_rsid, "- fewer than 2 SNPs in window")) + next + } + + if (!"RSID" %in% colnames(locus_gwas) || all(is.na(locus_gwas$RSID))) { + message(paste("Skipping locus", lead_rsid, "- no RSIDs available for LD computation")) + next + } + locus_gwas <- dplyr::filter(locus_gwas, !is.na(RSID) & nchar(RSID) > 0) + + ld_result <- compute_ld_matrix(locus_gwas$RSID, lead_chr, ancestry) + if (is.null(ld_result)) { + message(paste("Skipping locus", lead_rsid, "- LD matrix computation failed")) + next + } + + shared_rsids <- intersect(locus_gwas$RSID, ld_result$snps) + if (length(shared_rsids) < 2) { + message(paste("Skipping locus", lead_rsid, "- too few shared SNPs between GWAS and LD panel")) + next + } + + locus_gwas <- dplyr::filter(locus_gwas, RSID %in% shared_rsids) + locus_gwas <- locus_gwas[match(shared_rsids, locus_gwas$RSID), ] + ld_idx <- match(shared_rsids, ld_result$snps) + R <- ld_result$matrix[ld_idx, ld_idx] + + z_scores <- locus_gwas$BETA / locus_gwas$SE + + locus_lbf <- run_susie_for_locus( + z_scores = z_scores, + ld_matrix = R, + snp_info = locus_gwas, + n = n, + lead_snp = lead_rsid, + max_causal = max_causal, + coverage = coverage, + min_abs_corr = min_abs_corr + ) + all_lbf[[i]] <- locus_lbf + } + + combined_lbf <- dplyr::bind_rows(all_lbf) + + if (nrow(combined_lbf) == 0) { + message("No loci produced SuSiE results.") + combined_lbf <- tibble::tibble( + SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), + Z = numeric(), LBF = numeric(), CS = integer(), LEAD_SNP = character() + ) + } + + vroom::vroom_write(combined_lbf, output_lbf_file) + + cs_snps <- dplyr::filter(combined_lbf, !is.na(CS)) + credible_set_gwas <- dplyr::filter(gwas, SNP %in% cs_snps$SNP) + vroom::vroom_write(credible_set_gwas, output_credible_set_file) + + message(paste("Fine-mapping complete:", + nrow(lead_snps), "loci,", + nrow(combined_lbf), "SNPs with LBFs,", + nrow(credible_set_gwas), "SNPs in credible sets")) + + return(invisible(combined_lbf)) +} + + +#' Compute LD correlation matrix from 1000 Genomes via plink +#' @param rsids character vector of RSIDs +#' @param chr chromosome number +#' @param ancestry ancestry code (EUR, EAS, etc.) +#' @return list with components \code{matrix} (numeric LD matrix) and +#' \code{snps} (character vector of SNP IDs in matrix order), or NULL on failure +compute_ld_matrix <- function(rsids, chr, ancestry) { + bfile <- file.path(thousand_genomes_dir, ancestry) + tmpdir <- tempdir() + snp_file <- tempfile(dir = tmpdir, fileext = ".snps") + out_prefix <- tempfile(dir = tmpdir, pattern = "ld_") + + writeLines(rsids, snp_file) + + cmd <- paste( + "plink1.9", + "--bfile", bfile, + "--chr", chr, + "--extract", snp_file, + "--r square", + "--out", out_prefix + ) + exit_code <- system(cmd, wait = TRUE, ignore.stdout = TRUE, ignore.stderr = TRUE) + + ld_file <- paste0(out_prefix, ".ld") + snp_order_file <- paste0(out_prefix, ".nosex") + + if (exit_code != 0 || !file.exists(ld_file)) { + return(NULL) + } + + # plink --r square writes the SNP order into .ld in the same order as the + # extracted variants. Read the .bim-like info from the log or use the + # nosex/fam to get the order. Safer: read the pruned bim. + bim_file <- paste0(out_prefix, ".bim") + if (file.exists(bim_file)) { + snp_order <- data.table::fread(bim_file, header = FALSE, select = 2)$V2 + } else { + # Fallback: the SNPs in .ld follow input extraction order; plink sorts by + # genomic position so we cannot assume our input order. Read the log + # to find the count and use the filtered set. + bim_ref <- paste0(bfile, ".bim") + all_bim <- data.table::fread(bim_ref, header = FALSE, select = c(1, 2, 4)) + colnames(all_bim) <- c("CHR", "SNP", "BP") + all_bim <- dplyr::filter(all_bim, CHR == chr & SNP %in% rsids) + all_bim <- dplyr::arrange(all_bim, BP) + snp_order <- all_bim$SNP + } + + ld_raw <- data.table::fread(ld_file, header = FALSE) + R <- as.matrix(ld_raw) + + if (nrow(R) != length(snp_order) || ncol(R) != length(snp_order)) { + return(NULL) + } + + rownames(R) <- snp_order + colnames(R) <- snp_order + + unlink(c(snp_file, paste0(out_prefix, c(".ld", ".nosex", ".log", ".bim", ".bed", ".fam"))), + force = TRUE) + + return(list(matrix = R, snps = snp_order)) +} + + +#' Run SuSiE on a single locus +#' @param z_scores numeric vector of z-scores +#' @param ld_matrix square LD correlation matrix +#' @param snp_info data frame with SNP, CHR, BP, RSID columns (same order as z_scores) +#' @param n sample size +#' @param lead_snp RSID of the lead (clumped) SNP +#' @param max_causal max causal signals (L) +#' @param coverage credible set coverage +#' @param min_abs_corr minimum absolute correlation for CS purity +#' @return tibble with SNP, CHR, BP, RSID, Z, LBF, CS, LEAD_SNP +run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, + max_causal = 10, coverage = 0.95, + min_abs_corr = 0.5) { + + fitted <- tryCatch( + susieR::susie_rss( + z = z_scores, + R = ld_matrix, + n = n, + L = max_causal, + coverage = coverage, + min_abs_corr = min_abs_corr, + verbose = FALSE + ), + error = function(e) { + message(paste("SuSiE failed for locus", lead_snp, ":", conditionMessage(e))) + return(NULL) + } + ) + + if (is.null(fitted)) { + return(tibble::tibble( + SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), + Z = numeric(), LBF = numeric(), CS = integer(), LEAD_SNP = character() + )) + } + + # Per-SNP log Bayes factor: sum across all L effects + if (!is.null(fitted$lbf_variable)) { + per_snp_lbf <- colSums(fitted$lbf_variable) + } else { + per_snp_lbf <- rep(NA_real_, length(z_scores)) + } + + # Map each SNP to its credible set (if any) + cs_membership <- rep(NA_integer_, length(z_scores)) + if (!is.null(fitted$sets) && !is.null(fitted$sets$cs)) { + for (cs_idx in seq_along(fitted$sets$cs)) { + snp_indices <- fitted$sets$cs[[cs_idx]] + cs_membership[snp_indices] <- cs_idx + } + } + + result <- tibble::tibble( + SNP = snp_info$SNP, + CHR = snp_info$CHR, + BP = snp_info$BP, + RSID = snp_info$RSID, + Z = z_scores, + LBF = per_snp_lbf, + CS = cs_membership, + LEAD_SNP = lead_snp + ) + + return(result) +} diff --git a/R/liftover.R b/R/liftover.R index 5354819..c876bc6 100644 --- a/R/liftover.R +++ b/R/liftover.R @@ -26,7 +26,7 @@ convert_reference_build_via_liftover <- function(gwas, liftover_conversion <- available_liftover_conversions[[paste0(input_reference_build, output_reference_build)]] if (is.null(liftover_conversion)) { - stop(paste(c("Error: liftOver combination of", input_build, output_build, "not recocognised.", + stop(paste(c("Error: liftOver combination of", input_reference_build, output_reference_build, "not recocognised.", "Reference builds must be one of:", reference_builds), collapse = " ")) } @@ -84,11 +84,11 @@ create_bed_file_from_gwas <- function(gwas, output_file) { run_liftover <- function(bed_file_input, bed_file_output, input_build, output_build, unmapped) { - lifover_binary <- paste0(liftover_dir, "liftOver") + liftover_binary <- file.path(liftover_dir, "liftOver") liftover_conversion <- available_liftover_conversions[[paste0(input_build, output_build)]] - chain_file <- paste0(liftover_dir, liftover_conversion) - liftover_command <- paste(lifover_binary, bed_file_input, chain_file, bed_file_output, unmapped) + chain_file <- file.path(liftover_dir, liftover_conversion) + liftover_command <- paste(liftover_binary, bed_file_input, chain_file, bed_file_output, unmapped) system(liftover_command, wait=T) } diff --git a/README.md b/README.md index 19592fd..a5128d3 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,8 @@ Here is a list of available pipelines, and the steps they run ## Onboarding +**Running on macOS, Linux, Slurm, or PBS?** See **[PLATFORM_SETUP.md](PLATFORM_SETUP.md)** for platform-specific setup (Apptainer/Lima, SIF cache, HPC profiles, `qsub` template). + ### 1. Clone the repository into your personal space on BlueCrystal 4 `git clone git@github.com:MRCIEU/GeneHackman.git && cd GeneHackman` @@ -51,10 +53,6 @@ ends in `working/` * [Documentation per pipeline](snakemake/PIPELINES.md) * You can either copy into input.json, or supply the file into the script from another location -### 5. Create the container (if needed) - - - ### 4. Run the pipeline `./run_pipeline.sh snakemake/.smk ` diff --git a/docker/requirements.R b/docker/requirements.R index 6f3961f..9585ccc 100644 --- a/docker/requirements.R +++ b/docker/requirements.R @@ -1,4 +1,4 @@ -install.packages(c("devtools", "argparser", "gmp", "corrplot", "broom", "conflicted", "nloptr", "Cairo"), +install.packages(c("devtools", "argparser", "gmp", "corrplot", "broom", "conflicted", "nloptr", "Cairo", "susieR"), repos = "http://cran.us.r-project.org") #also needed: forestplot, data.table, devtools diff --git a/run_pipeline.sh b/run_pipeline.sh index ab63b20..6027ba8 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -43,14 +43,31 @@ if [[ "${PROFILE}" != snakemake/local/* ]]; then module load apptainer/1.3.1-ksax fi -SIF_DIR="${SINGULARITY_PREFIX:-.snakemake/singularity}" -SIF_PATH="${SIF_DIR}/genehackman:${DOCKER_VERSION}.sif" +SIF_DIR="${SINGULARITY_DIR:-.snakemake/singularity}" +SIF_DIR="${SIF_DIR%/}" +# Image tag: default GENEHACKMAN_VERSION from DOCKER_VERSION so pull and SIF basename stay aligned. +GENEHACKMAN_VERSION="${GENEHACKMAN_VERSION:-${DOCKER_VERSION:-}}" +SIF_VERSION="${DOCKER_VERSION:-${GENEHACKMAN_VERSION:-}}" +if [[ -z "${SIF_VERSION}" ]]; then + echo "Error: Set DOCKER_VERSION in .env (e.g. 1.0.0) so the SIF name matches the Docker image tag." + exit 1 +fi +SIF_NAME="genehackman_${SIF_VERSION}.sif" +SIF_PATH="${SIF_DIR}/${SIF_NAME}" if [[ ! -f "${SIF_PATH}" ]]; then - mkdir -p "${SIF_DIR}" echo "SIF file not found: ${SIF_PATH}" + mkdir -p "${SIF_DIR}" echo "Building container with singularity..." - singularity build "${SIF_PATH}" "docker://mrcieu/genehackman:${GENEHACKMAN_VERSION}" + # Build next to the final path (same bind-mount as SIF_DIR). Do not use host /tmp: if singularity + # runs inside Lima/VM, VM /tmp is not the Mac's /tmp, so a follow-up cp from /tmp would fail. + SIF_BUILD_TMP="${SIF_PATH}.tmp.$$" + if singularity build "${SIF_BUILD_TMP}" "docker://mrcieu/genehackman:${GENEHACKMAN_VERSION}"; then + mv -f "${SIF_BUILD_TMP}" "${SIF_PATH}" + else + rm -f "${SIF_BUILD_TMP}" + exit 1 + fi fi diff --git a/scripts/run_finemap.R b/scripts/run_finemap.R new file mode 100644 index 0000000..58bd768 --- /dev/null +++ b/scripts/run_finemap.R @@ -0,0 +1,64 @@ +source("load.R") +library(argparser, quietly = TRUE) + +parser <- arg_parser("Run SuSiE fine-mapping on clumped loci from a GWAS") + +parser <- add_argument(parser, "--gwas_filename", + help = "Standardised GWAS filename", + type = "character" +) +parser <- add_argument(parser, "--clumped_filename", + help = "plink --clump output file", + type = "character" +) +parser <- add_argument(parser, "--ancestry", + help = "Ancestry code matching 1000 Genomes panel (EUR, EAS, AFR, AMR, SAS)", + type = "character" +) +parser <- add_argument(parser, "--N", + help = "GWAS sample size", + type = "numeric" +) +parser <- add_argument(parser, "--output_lbf_file", + help = "Output file for per-SNP log Bayes factors across all loci", + type = "character" +) +parser <- add_argument(parser, "--output_credible_set_file", + help = "Output file for credible-set-filtered GWAS", + type = "character" +) +parser <- add_argument(parser, "--window_kb", + help = "Fine-mapping window half-width in kb", + type = "numeric", + default = 500 +) +parser <- add_argument(parser, "--max_causal", + help = "Maximum number of causal signals per locus (SuSiE L)", + type = "numeric", + default = 10 +) +parser <- add_argument(parser, "--coverage", + help = "Credible set coverage", + type = "numeric", + default = 0.95 +) +parser <- add_argument(parser, "--min_abs_corr", + help = "Minimum absolute correlation for credible set purity", + type = "numeric", + default = 0.5 +) + +args <- parse_args(parser) +create_dir_for_files(args$output_lbf_file, args$output_credible_set_file) + +finemap_gwas(gwas = args$gwas_filename, + clumped_file = args$clumped_filename, + ancestry = args$ancestry, + n = args$N, + output_lbf_file = args$output_lbf_file, + output_credible_set_file = args$output_credible_set_file, + window_kb = args$window_kb, + max_causal = args$max_causal, + coverage = args$coverage, + min_abs_corr = args$min_abs_corr +) diff --git a/snakemake/finemap.smk b/snakemake/finemap.smk new file mode 100644 index 0000000..46804bf --- /dev/null +++ b/snakemake/finemap.smk @@ -0,0 +1,73 @@ +include: "util/common.smk" +singularity: get_docker_container() + +pipeline_name = "finemap" +pipeline = parse_pipeline_input(pipeline_includes_clumping=True) + +onstart: + print("##### SuSiE Fine-Mapping Pipeline #####") + +ancestries = list([g.ancestry for g in pipeline.gwases]) +validate_ancestries(ancestries) + +finemap_opts = getattr(pipeline, "finemap", SimpleNamespace()) +finemap_window_kb = getattr(finemap_opts, "window_kb", 500) +finemap_max_causal = getattr(finemap_opts, "max_causal", 10) +finemap_coverage = getattr(finemap_opts, "coverage", 0.95) +finemap_min_abs_corr = getattr(finemap_opts, "min_abs_corr", 0.5) + +std_file_pattern = standardised_gwas_name("{prefix}") +lbf_pattern = RESULTS_DIR + "finemap/{prefix}_lbf.tsv" +credible_set_pattern = RESULTS_DIR + "finemap/{prefix}_credible_sets.tsv.gz" + +for g in pipeline.gwases: + g.lbf_file = RESULTS_DIR + "finemap/" + file_prefix(g.file) + "_lbf.tsv" + g.credible_set_file = RESULTS_DIR + "finemap/" + file_prefix(g.file) + "_credible_sets.tsv.gz" + +rule all: + input: + expand(std_file_pattern, prefix=[g.prefix for g in pipeline.gwases]), + [g.lbf_file for g in pipeline.gwases], + [g.credible_set_file for g in pipeline.gwases] + +include: "rules/standardise_rule.smk" +include: "rules/clumping_rule.smk" + +rule run_finemapping: + resources: + mem = "16G", + time = "04:00:00" + input: + gwas = lambda wildcards: getattr(pipeline, wildcards.prefix).standardised_gwas, + clumped_file = lambda wildcards: getattr(pipeline, wildcards.prefix).clumped_file + params: + ancestry = lambda wildcards: getattr(pipeline, wildcards.prefix).ancestry, + n = lambda wildcards: getattr(pipeline, wildcards.prefix).N, + window_kb = finemap_window_kb, + max_causal = finemap_max_causal, + coverage = finemap_coverage, + min_abs_corr = finemap_min_abs_corr + output: + lbf = lbf_pattern, + credible_sets = credible_set_pattern + shell: + """ + Rscript run_finemap.R \ + --gwas_filename {input.gwas} \ + --clumped_filename {input.clumped_file} \ + --ancestry {params.ancestry} \ + --N {params.n} \ + --output_lbf_file {output.lbf} \ + --output_credible_set_file {output.credible_sets} \ + --window_kb {params.window_kb} \ + --max_causal {params.max_causal} \ + --coverage {params.coverage} \ + --min_abs_corr {params.min_abs_corr} + """ + +onsuccess: + files = [g.lbf_file for g in pipeline.gwases] + [g.credible_set_file for g in pipeline.gwases] + onsuccess(pipeline_name, files, is_test=pipeline.is_test) + +onerror: + onerror_message(pipeline_name, is_test=pipeline.is_test) diff --git a/snakemake/input_templates/finemap.json b/snakemake/input_templates/finemap.json new file mode 100644 index 0000000..3281a58 --- /dev/null +++ b/snakemake/input_templates/finemap.json @@ -0,0 +1,18 @@ +{ + "gwases": [ + { + "file": "", + "columns": {}, + "N": 0, + "ancestry": "EUR" + } + ], + "plink_clump_arguments": "--clump-p1 5e-8 --clump-r2 0.01 --clump-kb 1000", + "finemap": { + "window_kb": 500, + "max_causal": 10, + "coverage": 0.95, + "min_abs_corr": 0.5 + }, + "populate_rsid": false +} diff --git a/snakemake/input_templates/standardise_gwases.json b/snakemake/input_templates/standardise_gwases.json index 588d7b9..847484b 100644 --- a/snakemake/input_templates/standardise_gwases.json +++ b/snakemake/input_templates/standardise_gwases.json @@ -1,7 +1,7 @@ { "gwases": [ { - "file": "/Users/wt23152/Downloads/gwas_with_lbfs.tsv.gz", + "file": "/Users/wt23152/Documents/Projects/scratch/020/data/gwas_with_lbfs.tsv.gz", "columns": {"CHR":"CHR", "BP":"BP", "EA":"EA", "OA":"OA", "EAF":"EAF", "P":"P", "BETA":"BETA", "SE":"SE"}, "build": "GRCh38", "ancestry": "EUR", diff --git a/snakemake/standardise_gwas.smk b/snakemake/standardise_gwas.smk index 3b3d426..679ee04 100644 --- a/snakemake/standardise_gwas.smk +++ b/snakemake/standardise_gwas.smk @@ -15,7 +15,11 @@ rule all: include: "rules/standardise_rule.smk" onsuccess: - onsuccess(pipeline_name, is_test=pipeline.is_test) + onsuccess( + pipeline_name, + is_test=pipeline.is_test, + files_created=expand(std_file_pattern, prefix=[g.prefix for g in pipeline.gwases]) + ) onerror: onerror_message(pipeline_name, is_test=pipeline.is_test) diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index 1a1ec40..0a7b61f 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -22,8 +22,8 @@ def get_docker_container(): version = match.group(1) break - singularity_dir = os.getenv("SINGULARITY_DIR", ".snakemake/singularity") - sif_file = f"{singularity_dir}/genehackman:{version}.sif" + singularity_dir = os.getenv("SINGULARITY_DIR", ".snakemake/singularity").rstrip("/\\") + sif_file = os.path.join(singularity_dir, f"genehackman_{version}.sif") if os.path.isfile(sif_file): return sif_file elif version: @@ -56,6 +56,14 @@ def parse_pipeline_input(pipeline_includes_clumping=False): if not hasattr(pipeline, "populate_rsid"): pipeline.populate_rsid = False if not hasattr(pipeline, "populate_eaf"): pipeline.populate_eaf = False + if not hasattr(pipeline, "finemap"): + pipeline.finemap = SimpleNamespace() + fm = pipeline.finemap + if not hasattr(fm, "window_kb"): fm.window_kb = 500 + if not hasattr(fm, "max_causal"): fm.max_causal = 10 + if not hasattr(fm, "coverage"): fm.coverage = 0.95 + if not hasattr(fm, "min_abs_corr"): fm.min_abs_corr = 0.5 + for g in pipeline.gwases: if not hasattr(g, "N"): g.N = 0 if not hasattr(g, "columns"): g.columns = SimpleNamespace() From 9cae5f1600b6495d01bf6dcdf4edb11ada07ea5d Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 10 Apr 2026 11:25:58 +0100 Subject: [PATCH 03/85] Making standardise gwas more flexible --- .github/workflows/main.yml | 20 ++++ R/data_conversions.R | 4 +- R/gwas_formatting.R | 41 +++++--- R/liftover.R | 8 +- R/mr.R | 9 +- scripts/standardise_gwas.R | 8 +- snakemake/rules/standardise_rule.smk | 6 +- snakemake/util/common.smk | 1 + tests/testthat/test_gwas_formatting.R | 140 ++++++++++++++++++++++++++ tests/testthat/test_liftover.R | 14 +-- tests/testthat/test_mr.R | 4 +- 11 files changed, 221 insertions(+), 34 deletions(-) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..3d24854 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,20 @@ +name: CI/CD + +on: + push: + branches: + - main + pull_request: + types: [opened, reopened, ready_for_review, synchronize] + +jobs: + test: + runs-on: ubuntu-latest + container: + image: mrcieu/genehackman:develop + + steps: + - uses: actions/checkout@v4 + + - name: Run devtools::check() + run: Rscript -e "devtools::check()" diff --git a/R/data_conversions.R b/R/data_conversions.R index 1c140c0..3101847 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -57,7 +57,6 @@ map_ref_to_eaf <- function(ea, oa, ra1, ra2, a1_freq) { #' @export populate_eaf_from_reference_panel <- function(gwas, ancestry, enabled = FALSE) { if (!enabled) { - message("Skipping EAF population from LD reference panel") return(gwas) } allowed <- c("EUR", "EAS", "AFR", "AMR", "SAS") @@ -131,7 +130,6 @@ populate_rsid <- function(gwas, option = populate_rsid_options$none) { gc() start_time <- Sys.time() if (option == populate_rsid_options$none || "RSID" %in% colnames(gwas)) { - message("Skipping RSID population for GWAS") return(gwas) } else if (option == populate_rsid_options$partial) { gwas <- populate_partial_rsids(gwas) @@ -149,7 +147,7 @@ populate_rsid <- function(gwas, option = populate_rsid_options$none) { populate_partial_rsids <- function(gwas) { message("populating RSIDs based on 1000genomes...") - marker_to_rsid_file <- paste0(thousand_genomes_dir, "marker_to_rsid.tsv.gz") + marker_to_rsid_file <- file.path(thousand_genomes_dir, "marker_to_rsid.tsv.gz") chrpos_to_rsid <- vroom::vroom(marker_to_rsid_file, col_select = c("HG37", "RSID"), show_col_types=F) gwas$RSID <- chrpos_to_rsid$RSID[match(gwas$SNP, chrpos_to_rsid$HG37)] diff --git a/R/gwas_formatting.R b/R/gwas_formatting.R index 4927511..eded6d8 100644 --- a/R/gwas_formatting.R +++ b/R/gwas_formatting.R @@ -11,7 +11,8 @@ #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values #' @param populate_eaf If TRUE, fill missing \code{EAF} from the 1000 Genomes LD panel (\code{ANCESTRY.bim} + \code{ANCESTRY.frq} under \code{THOUSAND_GENOMES_DIR}). #' @param ancestry Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE. -#' @param r: reference build of CHR and BP of data. Defaults to GRCh37 +#' @param flip_alleles If TRUE (default), reorder EA/OA alphabetically and flip BETA, EAF, Z accordingly. +#' Set to FALSE to keep alleles as-is (useful when you only need to populate RSIDs, EAF, or change build). #' @return modified gwas: saves new gwas in {output_file} if present #' @import vroom #' @import shiny @@ -26,22 +27,25 @@ standardise_gwas <- function(gwas, output_columns="default", remove_extra_columns=F, populate_eaf=FALSE, - ancestry=NULL) { + ancestry=NULL, + flip_alleles=TRUE) { input_gwas_columns <- resolve_column_map(input_columns) output_gwas_columns <- resolve_column_map(output_columns) if (populate_eaf && (is.null(ancestry) || length(ancestry) == 0 || !nzchar(as.character(ancestry)[1]))) { stop("populate_eaf is TRUE but ancestry is missing; set ancestry to EUR, EAS, AFR, AMR, or SAS to match your LD reference panel.") } - - #TODO: if we need to add bespoke input format wrangling here, we can + if (!flip_alleles && identical(populate_rsid_option, populate_rsid_options$partial)) { + stop("Partial RSID population requires alphabetically ordered alleles (the lookup table stores CHR:BP_EA_OA with EA < OA). ", + "Either set flip_alleles=TRUE, or use populate_rsid='full' which matches on CHR+BP+alleles directly.") + } gwas <- get_file_or_dataframe(gwas) |> change_column_names(input_gwas_columns, remove_extra_columns) |> standardise_columns(N) |> filter_incomplete_rows() |> convert_reference_build_via_liftover(input_reference_build, output_reference_build) |> - standardise_alleles() |> + standardise_alleles(flip = flip_alleles) |> health_check() |> populate_eaf_from_reference_panel(ancestry, populate_eaf) |> populate_rsid(populate_rsid_option) |> @@ -226,22 +230,27 @@ change_column_names <- function(gwas, columns = list(), remove_extra_columns = F return(gwas) } +#' @param flip If TRUE (default), reorder EA/OA into alphabetical order and flip +#' BETA, EAF, and Z to match. When FALSE, alleles are uppercased and the SNP +#' column is rebuilt, but allele order (and effect direction) is left as-is. #' @import dplyr -standardise_alleles <- function(gwas) { +standardise_alleles <- function(gwas, flip = TRUE) { gwas$EA <- toupper(gwas$EA) gwas$OA <- toupper(gwas$OA) - to_flip <- (gwas$EA > gwas$OA) & (!gwas$EA %in% c("D", "I")) - if (any(to_flip)) { - gwas$EAF[to_flip] <- 1 - gwas$EAF[to_flip] - gwas$BETA[to_flip] <- -1 * gwas$BETA[to_flip] - if ('Z' %in% names(gwas)) { - gwas$Z[to_flip] <- -1 * gwas$Z[to_flip] + if (flip) { + to_flip <- (gwas$EA > gwas$OA) & (!gwas$EA %in% c("D", "I")) + if (any(to_flip)) { + gwas$EAF[to_flip] <- 1 - gwas$EAF[to_flip] + gwas$BETA[to_flip] <- -1 * gwas$BETA[to_flip] + if ('Z' %in% names(gwas)) { + gwas$Z[to_flip] <- -1 * gwas$Z[to_flip] + } + + temp <- gwas$OA[to_flip] + gwas$OA[to_flip] <- gwas$EA[to_flip] + gwas$EA[to_flip] <- temp } - - temp <- gwas$OA[to_flip] - gwas$OA[to_flip] <- gwas$EA[to_flip] - gwas$EA[to_flip] <- temp } gwas$SNP <- toupper(paste0(gwas$CHR, ":", format(gwas$BP, scientific = F, trim = T), "_", gwas$EA, "_", gwas$OA)) diff --git a/R/liftover.R b/R/liftover.R index c876bc6..d0fb934 100644 --- a/R/liftover.R +++ b/R/liftover.R @@ -83,13 +83,19 @@ create_bed_file_from_gwas <- function(gwas, output_file) { } +#' Thin wrapper so tests can mock via testthat::local_mocked_bindings(). +#' @keywords internal +run_system <- function(command, wait = TRUE, intern = FALSE) { + base::system(command, wait = wait, intern = intern) +} + run_liftover <- function(bed_file_input, bed_file_output, input_build, output_build, unmapped) { liftover_binary <- file.path(liftover_dir, "liftOver") liftover_conversion <- available_liftover_conversions[[paste0(input_build, output_build)]] chain_file <- file.path(liftover_dir, liftover_conversion) liftover_command <- paste(liftover_binary, bed_file_input, chain_file, bed_file_output, unmapped) - system(liftover_command, wait=T) + run_system(liftover_command, wait = TRUE) } diff --git a/R/mr.R b/R/mr.R index e1c2d58..0de5f29 100644 --- a/R/mr.R +++ b/R/mr.R @@ -1,14 +1,19 @@ +#' @keywords internal +mr_list_files <- function(dir, pattern, full.names = FALSE) { + list.files(dir, pattern = pattern, full.names = full.names) +} + #' perform_mr_on_metabrain_datasets <- function(gwas_filename, ancestry="EUR", subcategory=NULL, exposures=c(), results_output) { file_pattern <- paste0(tolower(subcategory), "_", tolower(ancestry)) - metabrain_top_hits <- list.files(metabrain_top_hits_dir, pattern = file_pattern, full.names = T) + metabrain_top_hits <- mr_list_files(metabrain_top_hits_dir, pattern = file_pattern, full.names = T) run_mr_on_qtl_data(gwas_filename, qtl_files = metabrain_top_hits, results_output = results_output, exposures = exposures) } perform_mr_on_eqtlgen_datasets <- function(gwas_filename, subcategory=NULL, exposures=c(), results_output) { file_pattern <- tolower(subcategory) - eqtlgen_top_hits <- list.files(eqtlgen_top_hits_dir, pattern = file_pattern, full.names = T) + eqtlgen_top_hits <- mr_list_files(eqtlgen_top_hits_dir, pattern = file_pattern, full.names = T) run_mr_on_qtl_data(gwas_filename, results_output = results_output, qtl_files = eqtlgen_top_hits, exposures = exposures) } diff --git a/scripts/standardise_gwas.R b/scripts/standardise_gwas.R index 4d0210c..6b63549 100644 --- a/scripts/standardise_gwas.R +++ b/scripts/standardise_gwas.R @@ -56,6 +56,11 @@ parser <- add_argument(parser, "--remove_extra_columns", type = "logical", default = FALSE ) +parser <- add_argument(parser, "--flip_alleles", + help = "If TRUE, reorder EA/OA alphabetically and flip BETA/EAF/Z. Set FALSE to keep alleles as-is.", + type = "logical", + default = TRUE +) args <- parse_args(parser) create_dir_for_files(args$output_gwas) @@ -70,5 +75,6 @@ standardise_gwas(gwas = args$input_gwas, output_columns = args$output_columns, remove_extra_columns = args$remove_extra_columns, populate_eaf = args$populate_eaf, - ancestry = args$ancestry + ancestry = args$ancestry, + flip_alleles = args$flip_alleles ) diff --git a/snakemake/rules/standardise_rule.smk b/snakemake/rules/standardise_rule.smk index ec056b8..df7d956 100644 --- a/snakemake/rules/standardise_rule.smk +++ b/snakemake/rules/standardise_rule.smk @@ -9,7 +9,8 @@ rule standardise_gwases: output_columns = lambda wildcards: getattr(pipeline, wildcards.prefix).output_columns, populate_rsid = lambda wildcards: getattr(pipeline, wildcards.prefix).populate_rsid.value, ancestry = lambda wildcards: getattr(pipeline, wildcards.prefix).ancestry, - populate_eaf_flag = lambda wildcards: "TRUE" if getattr(pipeline, wildcards.prefix).populate_eaf else "FALSE" + populate_eaf_flag = lambda wildcards: "TRUE" if getattr(pipeline, wildcards.prefix).populate_eaf else "FALSE", + flip_alleles_flag = lambda wildcards: "TRUE" if getattr(pipeline, wildcards.prefix).flip_alleles else "FALSE" threads: 8 resources: mem = lambda wildcards: f"{getattr(pipeline, wildcards.prefix).standardised_memory}G", @@ -34,6 +35,7 @@ rule standardise_gwases: --output_columns {params.output_columns} \ --populate_rsid {params.populate_rsid} \ --populate_eaf {params.populate_eaf_flag} \ - --ancestry '{params.ancestry}' + --ancestry '{params.ancestry}' \ + --flip_alleles {params.flip_alleles_flag} """ diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index 0a7b61f..e08c7f8 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -68,6 +68,7 @@ def parse_pipeline_input(pipeline_includes_clumping=False): if not hasattr(g, "N"): g.N = 0 if not hasattr(g, "columns"): g.columns = SimpleNamespace() if not hasattr(g, "remove_extra_columns"): g.remove_extra_columns = False + if not hasattr(g, "flip_alleles"): g.flip_alleles = getattr(pipeline, "flip_alleles", True) if not hasattr(g, "build"): g.build = "GRCh37" if not hasattr(g, "populate_rsid"): g.populate_rsid = False if not hasattr(g, "populate_eaf"): g.populate_eaf = False diff --git a/tests/testthat/test_gwas_formatting.R b/tests/testthat/test_gwas_formatting.R index 5d97245..26fb217 100644 --- a/tests/testthat/test_gwas_formatting.R +++ b/tests/testthat/test_gwas_formatting.R @@ -115,6 +115,146 @@ test_that("gwas_formatting.standardise_gwas standardises an IEU ukb pipeline out expect_true(all(grep("\\d+:\\d+_\\w+_\\w+", result$SNP))) }) +test_that("standardise_gwas flip_alleles=FALSE preserves EA/OA order and effect direction", { + tmp <- tempfile(fileext = ".tsv.gz") + # Use G/C (not T/A): vroom reads bare "T" in a file as logical TRUE. + g <- tibble::tibble( + CHR = 1L, + BP = 100000L, + EA = "G", + OA = "C", + P = 0.05, + BETA = 0.15, + SE = 0.03, + EAF = 0.42 + ) + vroom::vroom_write(g, tmp) + + out_no_flip <- standardise_gwas( + tmp, + tempfile(fileext = ".tsv.gz"), + input_reference_build = reference_builds$GRCh37, + output_reference_build = reference_builds$GRCh37, + flip_alleles = FALSE + ) + expect_equal(out_no_flip$EA[1], "G") + expect_equal(out_no_flip$OA[1], "C") + expect_equal(out_no_flip$BETA[1], 0.15) + expect_equal(out_no_flip$EAF[1], 0.42) + expect_match(out_no_flip$SNP[1], "^1:100000_G_C$") + + out_flip <- standardise_gwas( + tmp, + tempfile(fileext = ".tsv.gz"), + input_reference_build = reference_builds$GRCh37, + output_reference_build = reference_builds$GRCh37, + flip_alleles = TRUE + ) + expect_equal(out_flip$EA[1], "C") + expect_equal(out_flip$OA[1], "G") + expect_equal(out_flip$BETA[1], -0.15) + expect_equal(out_flip$EAF[1], 1 - 0.42) + expect_match(out_flip$SNP[1], "^1:100000_C_G$") +}) + +test_that("standardise_gwas errors when populate_eaf is TRUE and ancestry is missing", { + expect_error( + standardise_gwas( + "data/test_data_tiny.tsv.gz", + tempfile(fileext = ".tsv.gz"), + populate_eaf = TRUE, + ancestry = NULL + ), + "populate_eaf is TRUE but ancestry is missing" + ) + expect_error( + standardise_gwas( + "data/test_data_tiny.tsv.gz", + tempfile(fileext = ".tsv.gz"), + populate_eaf = TRUE, + ancestry = "" + ), + "populate_eaf is TRUE but ancestry is missing" + ) +}) + +test_that("standardise_gwas errors when flip_alleles is FALSE with partial RSID population", { + expect_error( + standardise_gwas( + "data/test_data_tiny.tsv.gz", + tempfile(fileext = ".tsv.gz"), + flip_alleles = FALSE, + populate_rsid_option = populate_rsid_options$partial + ), + "Partial RSID population requires alphabetically ordered alleles" + ) +}) + +test_that("standardise_gwas allows flip_alleles FALSE with populate_rsid none", { + out_none <- standardise_gwas( + "data/test_data_tiny.tsv.gz", + tempfile(fileext = ".tsv.gz"), + input_columns = "SNP=MARKER,CHR=CHR,BP=BP,EA=A0,OA=A1,EAF=A0FREQ,P=P,BETA=BETA,SE=SE,OR=OR,OR_LB=OR_LB,OR_UB=OR_UB,RSID=RSID", + flip_alleles = FALSE, + populate_rsid_option = populate_rsid_options$none + ) + expect_equal(nrow(out_none), 12L) +}) + +test_that("standardise_alleles flip argument matches documented behaviour", { + g <- tibble::tibble( + CHR = 1L, + BP = 100L, + EA = "T", + OA = "A", + BETA = 0.2, + EAF = 0.1, + P = 0.5, + SE = 0.1 + ) + no_flip <- GeneHackman:::standardise_alleles(g, flip = FALSE) + expect_equal(no_flip$BETA, 0.2) + expect_equal(no_flip$EA, "T") + expect_equal(no_flip$OA, "A") + + yes_flip <- GeneHackman:::standardise_alleles(g, flip = TRUE) + expect_equal(yes_flip$BETA, -0.2) + expect_equal(yes_flip$EA, "A") + expect_equal(yes_flip$OA, "T") + expect_equal(yes_flip$EAF, 1 - 0.1) +}) + +test_that("filter_incomplete_rows stops when all rows are incomplete", { + bad <- tibble::tibble( + CHR = 1L, + BP = 100000L, + EA = NA_character_, + OA = "A", + P = 0.05, + BETA = 0.1, + SE = 0.02, + EAF = 0.3 + ) + tmp <- tempfile(fileext = ".tsv.gz") + vroom::vroom_write(bad, tmp) + expect_error( + standardise_gwas( + tmp, + tempfile(fileext = ".tsv.gz"), + input_reference_build = reference_builds$GRCh37, + output_reference_build = reference_builds$GRCh37 + ), + "all rows have been filtered from GWAS" + ) +}) + +test_that("resolve_column_map errors on unresolvable column_map value", { + expect_error( + GeneHackman:::resolve_column_map(1L), + "Error resolving column map" + ) +}) + test_that("gwas_formatting.convert_beta_to_or and back returns the same results", { original_gwas <- vroom::vroom("data/test_data_small.tsv.gz", show_col_types=F) diff --git a/tests/testthat/test_liftover.R b/tests/testthat/test_liftover.R index 7ece891..515cdad 100644 --- a/tests/testthat/test_liftover.R +++ b/tests/testthat/test_liftover.R @@ -1,9 +1,9 @@ test_that("liftover.convert_reference_build_via_liftover returns updated data frame", { - local_mock( - system = function(command, wait, intern) { - bed_output_file <- unlist(strsplit(command, " "))[4] - file.copy("data/test_data_small_hg38.bed.gz", bed_output_file) - } + local_mocked_bindings( + run_system = function(command, wait = TRUE, intern = FALSE) { + bed_output_file <- unlist(strsplit(command, " "))[4] + file.copy("data/test_data_small_hg38.bed.gz", bed_output_file) + } ) result <- convert_reference_build_via_liftover("data/test_data_small.tsv.gz", reference_builds$GRCh37, @@ -17,8 +17,8 @@ test_that("liftover.convert_reference_build_via_liftover returns updated data fr }) test_that("liftover.convert_reference_build_via_liftover saved output and unmapped", { - local_mock( - system = function(command, wait) { + local_mocked_bindings( + run_system = function(command, wait = TRUE, intern = FALSE) { bed_output_file <- unlist(strsplit(command, " "))[4] unmapped_file <- unlist(strsplit(command, " "))[5] file.copy("data/test_data_small_hg38.bed.gz", bed_output_file) diff --git a/tests/testthat/test_mr.R b/tests/testthat/test_mr.R index e3dcfaa..3f58391 100644 --- a/tests/testthat/test_mr.R +++ b/tests/testthat/test_mr.R @@ -1,8 +1,8 @@ mr_results <- tempfile(fileext = ".tsv") test_that("mr.perform_mr_on_pqtl_datasets runs cis only mr against a gwas", { - local_mock( - list.files = function(dir, pattern, full.names) { + local_mocked_bindings( + mr_list_files = function(dir, pattern, full.names) { return("data/some_eqtlgen_hits.tsv.gz") } ) From 7dec23a8e219f37e947c59e8aa833926bb79eedc Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 10 Apr 2026 15:30:17 +0100 Subject: [PATCH 04/85] Adding finemap tests --- R/finemap.R | 22 ++++- R/liftover.R | 6 +- tests/testthat/test_finemap.R | 161 +++++++++++++++++++++++++++++++++ tests/testthat/test_liftover.R | 4 +- 4 files changed, 185 insertions(+), 8 deletions(-) create mode 100644 tests/testthat/test_finemap.R diff --git a/R/finemap.R b/R/finemap.R index 0d10a2d..0a79bc8 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -142,8 +142,8 @@ finemap_gwas <- function(gwas, compute_ld_matrix <- function(rsids, chr, ancestry) { bfile <- file.path(thousand_genomes_dir, ancestry) tmpdir <- tempdir() - snp_file <- tempfile(dir = tmpdir, fileext = ".snps") - out_prefix <- tempfile(dir = tmpdir, pattern = "ld_") + snp_file <- tempfile(tmpdir = tmpdir, fileext = ".snps") + out_prefix <- tempfile(tmpdir = tmpdir, pattern = "ld_") writeLines(rsids, snp_file) @@ -155,7 +155,7 @@ compute_ld_matrix <- function(rsids, chr, ancestry) { "--r square", "--out", out_prefix ) - exit_code <- system(cmd, wait = TRUE, ignore.stdout = TRUE, ignore.stderr = TRUE) + exit_code <- run_system(cmd, wait = TRUE, ignore.stdout = TRUE, ignore.stderr = TRUE) ld_file <- paste0(out_prefix, ".ld") snp_order_file <- paste0(out_prefix, ".nosex") @@ -199,6 +199,20 @@ compute_ld_matrix <- function(rsids, chr, ancestry) { } +#' Wrapper for susieR::susie_rss (mockable in tests). +#' @keywords internal +run_susie_rss_impl <- function(z, R, n, L, coverage, min_abs_corr, verbose = FALSE) { + susieR::susie_rss( + z = z, + R = R, + n = n, + L = L, + coverage = coverage, + min_abs_corr = min_abs_corr, + verbose = verbose + ) +} + #' Run SuSiE on a single locus #' @param z_scores numeric vector of z-scores #' @param ld_matrix square LD correlation matrix @@ -214,7 +228,7 @@ run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, min_abs_corr = 0.5) { fitted <- tryCatch( - susieR::susie_rss( + run_susie_rss_impl( z = z_scores, R = ld_matrix, n = n, diff --git a/R/liftover.R b/R/liftover.R index d0fb934..3548a2f 100644 --- a/R/liftover.R +++ b/R/liftover.R @@ -85,8 +85,10 @@ create_bed_file_from_gwas <- function(gwas, output_file) { #' Thin wrapper so tests can mock via testthat::local_mocked_bindings(). #' @keywords internal -run_system <- function(command, wait = TRUE, intern = FALSE) { - base::system(command, wait = wait, intern = intern) +run_system <- function(command, wait = TRUE, intern = FALSE, + ignore.stdout = FALSE, ignore.stderr = FALSE) { + base::system(command, wait = wait, intern = intern, + ignore.stdout = ignore.stdout, ignore.stderr = ignore.stderr) } run_liftover <- function(bed_file_input, bed_file_output, input_build, output_build, unmapped) { diff --git a/tests/testthat/test_finemap.R b/tests/testthat/test_finemap.R new file mode 100644 index 0000000..ca2eb9b --- /dev/null +++ b/tests/testthat/test_finemap.R @@ -0,0 +1,161 @@ +test_that("finemap.finemap_gwas writes empty outputs when clump has no rows", { + gwas <- tibble::tibble( + SNP = c("1:100000_A_G", "1:100150_T_C"), + CHR = c(1, 1), + BP = c(100000, 100150), + RSID = c("rs1", "rs2"), + BETA = c(0.1, 0.05), + SE = c(0.02, 0.02), + P = c(0.01, 0.05), + EA = c("A", "T"), + OA = c("G", "C"), + EAF = c(0.3, 0.4) + ) + gwas_file <- tempfile(fileext = ".tsv.gz") + vroom::vroom_write(gwas, gwas_file) + + clump_file <- tempfile(fileext = ".clumped") + writeLines("SNP\tCHR\tBP", clump_file) + + out_lbf <- tempfile(fileext = ".tsv.gz") + out_cs <- tempfile(fileext = ".tsv.gz") + + res <- finemap_gwas( + gwas_file, + clump_file, + ancestry = "EUR", + n = 10000L, + output_lbf_file = out_lbf, + output_credible_set_file = out_cs + ) + + expect_equal(nrow(res), 0) + lbf_read <- vroom::vroom(out_lbf, show_col_types = FALSE) + expect_equal(nrow(lbf_read), 0) + cs_read <- vroom::vroom(out_cs, show_col_types = FALSE) + expect_equal(nrow(cs_read), 0) +}) + +test_that("finemap.compute_ld_matrix returns NULL when plink fails", { + local_mocked_bindings( + run_system = function(command, wait = TRUE, intern = FALSE, + ignore.stdout = FALSE, ignore.stderr = FALSE) { + 1L + } + ) + expect_null(compute_ld_matrix(c("rs1", "rs2"), 1L, "EUR")) +}) + +test_that("finemap.run_susie_for_locus maps LBF and credible sets from fitted object", { + local_mocked_bindings( + run_susie_rss_impl = function(z, R, n, L, coverage, min_abs_corr, verbose = FALSE) { + p <- length(z) + list( + lbf_variable = matrix(c(0.5, 0.25, 0.5, 0.75), nrow = 2, ncol = p), + sets = list(cs = list(c(1L, 2L))) + ) + } + ) + + snp_info <- tibble::tibble( + SNP = c("1:100000_A_G", "1:100150_T_C"), + CHR = c(1, 1), + BP = c(100000, 100150), + RSID = c("rs1", "rs2") + ) + z <- c(1, 2) + R <- diag(2) + + out <- run_susie_for_locus( + z_scores = z, + ld_matrix = R, + snp_info = snp_info, + n = 1000L, + lead_snp = "rs1" + ) + + expect_equal(nrow(out), 2) + expect_equal(out$LBF, c(0.75, 1.25)) + expect_equal(out$CS, c(1L, 1L)) + expect_true(all(out$LEAD_SNP == "rs1")) +}) + +test_that("finemap.finemap_gwas runs end-to-end with mocked LD and SuSiE", { + local_mocked_bindings( + compute_ld_matrix = function(rsids, chr, ancestry) { + n <- length(rsids) + list(matrix = diag(n), snps = rsids) + }, + run_susie_rss_impl = function(z, R, n, L, coverage, min_abs_corr, verbose = FALSE) { + p <- length(z) + list( + lbf_variable = matrix(1, nrow = 2, ncol = p), + sets = list(cs = list(seq_len(p))) + ) + } + ) + + gwas <- tibble::tibble( + SNP = c("1:100000_A_G", "1:100150_T_C"), + CHR = c(1, 1), + BP = c(100000, 100150), + RSID = c("rs1", "rs2"), + BETA = c(0.1, 0.05), + SE = c(0.02, 0.02), + P = c(0.01, 0.05), + EA = c("A", "T"), + OA = c("G", "C"), + EAF = c(0.3, 0.4) + ) + gwas_file <- tempfile(fileext = ".tsv.gz") + vroom::vroom_write(gwas, gwas_file) + + clump_file <- tempfile(fileext = ".clumped") + writeLines(c("SNP\tCHR\tBP", "rs1\t1\t100000"), clump_file) + + out_lbf <- tempfile(fileext = ".tsv.gz") + out_cs <- tempfile(fileext = ".tsv.gz") + + res <- finemap_gwas( + gwas_file, + clump_file, + ancestry = "EUR", + n = 10000L, + output_lbf_file = out_lbf, + output_credible_set_file = out_cs + ) + + expect_equal(nrow(res), 2) + expect_setequal(res$RSID, c("rs1", "rs2")) + expect_true(all(res$CS == 1L)) + + lbf_read <- vroom::vroom(out_lbf, show_col_types = FALSE) + expect_equal(nrow(lbf_read), 2) + + cs_read <- vroom::vroom(out_cs, show_col_types = FALSE) + expect_equal(nrow(cs_read), 2) + expect_setequal(cs_read$SNP, gwas$SNP) +}) + +test_that("finemap.run_susie_for_locus returns empty tibble when SuSiE errors", { + local_mocked_bindings( + run_susie_rss_impl = function(z, R, n, L, coverage, min_abs_corr, verbose = FALSE) { + stop("mock failure") + } + ) + + snp_info <- tibble::tibble( + SNP = "1:100000_A_G", + CHR = 1, + BP = 100000, + RSID = "rs1" + ) + out <- run_susie_for_locus( + z_scores = 1, + ld_matrix = matrix(1, 1, 1), + snp_info = snp_info, + n = 1000L, + lead_snp = "rs1" + ) + expect_equal(nrow(out), 0) +}) diff --git a/tests/testthat/test_liftover.R b/tests/testthat/test_liftover.R index 515cdad..9c9ebe2 100644 --- a/tests/testthat/test_liftover.R +++ b/tests/testthat/test_liftover.R @@ -1,6 +1,6 @@ test_that("liftover.convert_reference_build_via_liftover returns updated data frame", { local_mocked_bindings( - run_system = function(command, wait = TRUE, intern = FALSE) { + run_system = function(command, wait = TRUE, intern = FALSE, ...) { bed_output_file <- unlist(strsplit(command, " "))[4] file.copy("data/test_data_small_hg38.bed.gz", bed_output_file) } @@ -18,7 +18,7 @@ test_that("liftover.convert_reference_build_via_liftover returns updated data fr test_that("liftover.convert_reference_build_via_liftover saved output and unmapped", { local_mocked_bindings( - run_system = function(command, wait = TRUE, intern = FALSE) { + run_system = function(command, wait = TRUE, intern = FALSE, ...) { bed_output_file <- unlist(strsplit(command, " "))[4] unmapped_file <- unlist(strsplit(command, " "))[5] file.copy("data/test_data_small_hg38.bed.gz", bed_output_file) From d824012e5ad62b79abfbaf1fe368bbd0daa0f944 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 25 Apr 2026 11:05:16 +0100 Subject: [PATCH 05/85] Updating dockerfile for R version compatability --- R/data_conversions.R | 15 +++++++++++++-- README.md | 26 ++++++++++++++++++++++++++ docker/Dockerfile | 11 +++++++++-- run_pipeline.sh | 2 ++ scripts/run_ldsc.sh | 2 +- snakemake/disease_progression.smk | 2 +- snakemake/qtl_mr.smk | 2 +- snakemake/util/constants.smk | 4 ++-- 8 files changed, 55 insertions(+), 9 deletions(-) diff --git a/R/data_conversions.R b/R/data_conversions.R index 3101847..a3c88f6 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -159,11 +159,22 @@ populate_partial_rsids <- function(gwas) { #' @import genepi.utils #' @import future populate_full_rsids <- function(gwas, build = rsid_builds$GRCh37) { - dbsnp_dir <- file.path(genomic_data_dir, "dbsnp") + dbsnp_dir <- file.path(genomic_data_dir, "dbsnp/b37_dbsnp156") if (!build %in% rsid_builds) stop(paste("Error: invalid rsid build option:", build)) gwas <- data.table::as.data.table(gwas) - gwas <- genepi.utils::chrpos_to_rsid(gwas, "CHR", "BP", "EA", "OA", flip = "allow", dbsnp_dir=dbsnp_dir, build=build, alt_rsids = F, parallel_cores=number_of_cpus_available) + gwas <- genepi.utils::chrpos_to_rsid( + gwas, + "CHR", + "BP", + "EA", + "OA", + flip = "allow", + dbsnp_dir=dbsnp_dir, + build=build, + alt_rsids = F, + parallel_cores=number_of_cpus_available + ) gwas <- tibble::as_tibble(gwas) return(gwas) } diff --git a/README.md b/README.md index a5128d3..c1d7137 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,32 @@ There are 3 main components to the pipeline * `docker` directory holds the information for creating the docker image that the pipeline runs * `tests` directory holds all R tests, and a end to end pipeline test script +### Docker image + +Pipelines use the image **`mrcieu/genehackman`** (tag usually matches the **`Version:`** field in [`DESCRIPTION`](DESCRIPTION) and **`DOCKER_VERSION`** in `.env`; see [`snakemake/util/common.smk`](snakemake/util/common.smk)). + +**Build** (run from the **repository root** so paths in the Dockerfile resolve correctly): + +```bash +docker build -f docker/Dockerfile -t mrcieu/genehackman:$(grep '^Version:' DESCRIPTION | awk '{print $2}') . +``` + +To tag a specific version explicitly (for example `1.0.0`): + +```bash +docker build -f docker/Dockerfile -t mrcieu/genehackman:1.0.0 . +``` + +The image installs OS packages and tools in [`docker/Dockerfile`](docker/Dockerfile), R packages via [`docker/requirements.R`](docker/requirements.R), and Python packages via [`docker/requirements.txt`](docker/requirements.txt). After changing those files, rebuild the image before running pipelines that depend on the new dependencies. + +**Publish** (maintainers with access to the `mrcieu` organisation on Docker Hub): + +```bash +docker push mrcieu/genehackman: +``` + +Use the same `` you built locally. HPC users without Docker can still obtain the image via Apptainer/Singularity (for example `singularity build genehackman_.sif docker://mrcieu/genehackman:`), as in [`run_pipeline.sh`](run_pipeline.sh). + ### Making changes If you want to make any additions / changes please contact andrew.elmore@bristol.ac.uk, or open an issue in this repo. diff --git a/docker/Dockerfile b/docker/Dockerfile index f0ae8a0..1a48b3c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,12 +1,19 @@ -FROM python:3.11-slim +FROM python:3.11-bullseye RUN apt update && \ - apt install -y --no-install-recommends r-base=4.2.2.20221110-2 r-base-dev=4.2.2.20221110-2 \ + apt install -y --no-install-recommends \ build-essential software-properties-common dirmngr gnupg pandoc lmodern texlive-latex-base \ libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev libfreetype6-dev libharfbuzz-dev libfribidi-dev \ libxml2-dev libcurl4-gnutls-dev libssl-dev libgmp-dev libnlopt-dev cmake libcairo2-dev libxt-dev \ texlive-latex-recommended r-cran-sass r-cran-mime libudunits2-dev libgdal-dev \ plink1.9 plink2 sqlite3 wget vim ripgrep git && \ + wget https://cdn.posit.co/r/debian-11/pkgs/r-4.4.2_1_amd64.deb && \ + apt-get update && \ + apt-get install -y ./r-4.4.2_1_amd64.deb && \ + rm r-4.4.2_1_amd64.deb && \ + ln -s /opt/R/4.4.2/bin/R /usr/local/bin/R && \ + ln -s /opt/R/4.4.2/bin/Rscript /usr/local/bin/Rscript && \ + mkdir -p /usr/lib/R/site-library && chmod 777 /usr/lib/R/site-library && \ mkdir -p /home/scripts && \ rm -rf /var/lib/apt/lists/* && \ wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh && \ diff --git a/run_pipeline.sh b/run_pipeline.sh index 6027ba8..9f3a315 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -68,6 +68,8 @@ if [[ ! -f "${SIF_PATH}" ]]; then rm -f "${SIF_BUILD_TMP}" exit 1 fi +else + echo "Using pre-built SIF file: ${SIF_PATH}" fi diff --git a/scripts/run_ldsc.sh b/scripts/run_ldsc.sh index 2709618..943ae45 100755 --- a/scripts/run_ldsc.sh +++ b/scripts/run_ldsc.sh @@ -19,7 +19,7 @@ NS=$2 ANCESTRY=$3 OUTPUT=$4 -LDSC_DIR=$GENOMIC_DATA_DIR/LDSCORE +LDSC_DIR=$PIPELINE_DATA_DIR/LDSCORE/b37_dbsnp156 LDSC_DATA=$DATA_DIR/ldsc N_LIST=(${NS//,/ }) diff --git a/snakemake/disease_progression.smk b/snakemake/disease_progression.smk index 0715d08..04aaa93 100644 --- a/snakemake/disease_progression.smk +++ b/snakemake/disease_progression.smk @@ -161,7 +161,7 @@ rule create_results_file: shell: """ Rscript create_results_file.R \ - --rmd_file {config.get("rmd_base", "/home/R")}/markdown/disease_progression.Rmd \ + --rmd_file /home/R/markdown/disease_progression.Rmd \ --params {results_string} \ --output_file {output} """ diff --git a/snakemake/qtl_mr.smk b/snakemake/qtl_mr.smk index 5f07fe6..f3034fb 100644 --- a/snakemake/qtl_mr.smk +++ b/snakemake/qtl_mr.smk @@ -97,7 +97,7 @@ rule create_results_file: shell: """ Rscript create_results_file.R \ - --rmd_file {config.get("rmd_base", "/home/R")}/markdown/mr_for_qtls.Rmd \ + --rmd_file /home/R/markdown/mr_for_qtls.Rmd \ --params {results_string} \ --output_file {output} """ diff --git a/snakemake/util/constants.smk b/snakemake/util/constants.smk index f15ce71..f72905d 100644 --- a/snakemake/util/constants.smk +++ b/snakemake/util/constants.smk @@ -67,9 +67,9 @@ RDFS_DIR = format_dir_string(os.getenv('RDFS_DIR')) PIPELINE_DATA_DIR = format_dir_string(os.getenv('PIPELINE_DATA_DIR')) -LDSC_DIR = format_dir_string(PIPELINE_DATA_DIR + "/LDSCORE") +LDSC_DIR = format_dir_string(PIPELINE_DATA_DIR + "/LDSCORE/b37_dbsnp156") GENOMIC_DATA_DIR = format_dir_string(PIPELINE_DATA_DIR + "/genomic_data") -THOUSAND_GENOMES_DIR = format_dir_string(PIPELINE_DATA_DIR + "/1000genomes") +THOUSAND_GENOMES_DIR = format_dir_string(PIPELINE_DATA_DIR + "/1000genomes/b37_dbsnp156") QTL_DIRECTORY = format_dir_string(PIPELINE_DATA_DIR + "/qtl_datasets") PIPELINE_DATA_DIR = GENOMIC_DATA_DIR + "/pipeline" From d23b8d844060fc27b56e7b71c8037236ad9a9e41 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 25 Apr 2026 11:43:12 +0100 Subject: [PATCH 06/85] explicity conda acceptance --- docker/Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 1a48b3c..c1f91fc 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -22,7 +22,10 @@ RUN apt update && \ wget http://snapshot.debian.org/archive/debian/20160413T160058Z/pool/main/libp/libpng/libpng12-0_1.2.54-6_amd64.deb && \ dpkg -i libpng12-0_1.2.54-6_amd64.deb -RUN cd /home && \ +# Miniconda 25+ requires explicit acceptance of Anaconda repo channel ToS before installs. +RUN /bin/condabin/conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main && \ + /bin/condabin/conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r && \ + cd /home && \ git clone https://github.com/MRCIEU/PHESANT.git && \ git clone --recurse-submodules https://github.com/samtools/htslib.git && \ git clone https://github.com/samtools/bcftools.git && \ From cdde9a2d256a77579a9888c93463aaaa2d73961e Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 27 Apr 2026 10:06:29 +0100 Subject: [PATCH 07/85] Saving this for now --- .env_example | 1 + NAMESPACE | 6 +++--- PLATFORM_SETUP.md | 6 +++--- R/constants.R | 3 ++- R/data_conversions.R | 12 +++++++----- R/util.R | 18 ++++++------------ README.md | 8 ++++++-- docker/Dockerfile | 15 +++++++++++---- docker/requirements.R | 14 ++++++++------ snakemake/PIPELINES.md | 2 ++ snakemake/bc4/config.yaml | 2 +- snakemake/bp1/config.yaml | 2 +- snakemake/local/config.yaml | 1 + snakemake/slurm_singularity/config.yaml | 2 +- snakemake/util/constants.smk | 4 ++-- tests/e2e_tests/run_test_pipelines.sh | 6 +++++- 16 files changed, 60 insertions(+), 42 deletions(-) diff --git a/.env_example b/.env_example index 041f5bc..68aa6b3 100644 --- a/.env_example +++ b/.env_example @@ -2,6 +2,7 @@ DATA_DIR= RESULTS_DIR= RDFS_DIR= PIPELINE_DATA_DIR=/Users/wt23152/Documents/Projects/scratch/020/data/ +QTL_DATA_DIR= DOCKER_VERSION= GENEHACKMAN_PROFILE=snakemake/local/ PIPELINE_LOG_DIR= diff --git a/NAMESPACE b/NAMESPACE index b67d07d..41693f4 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,12 +1,13 @@ # Generated by roxygen2: do not edit by hand export(calculate_f_statistic) +export(change_snp_identifiers) export(coloc_analysis) export(conduct_collider_bias_analysis) export(convert_beta_to_or) export(convert_or_to_beta) export(convert_reference_build_via_liftover) -export(convert_z_score_to_beta) +export(finemap_gwas) export(forest_plot) export(get_file_or_dataframe) export(grouped_forest_plot) @@ -18,7 +19,6 @@ export(populate_eaf_from_reference_panel) export(populate_gene_names) export(populate_rsid) export(run_coloc_on_list_of_datasets) -export(finemap_gwas) export(standardise_gwas) export(volcano_plot) export(vroom_snps) @@ -43,8 +43,8 @@ import(rmarkdown) import(shiny) import(stats) import(stringr) -import(susieR) import(tibble) import(tidyr) import(utils) import(vroom) +importFrom(utils,getFromNamespace) diff --git a/PLATFORM_SETUP.md b/PLATFORM_SETUP.md index 765712a..c5baae3 100644 --- a/PLATFORM_SETUP.md +++ b/PLATFORM_SETUP.md @@ -5,7 +5,7 @@ Snakemake orchestrates steps; each step usually runs inside an **Apptainer/Singu General prerequisites: 1. **Conda env:** `conda env create -f environment.yml` then `conda activate genehackman` -2. **`.env`:** copy from `.env_example` and set at least `DATA_DIR`, `RESULTS_DIR`, `PIPELINE_DATA_DIR` (and paths your pipeline needs for genomic / 1000G data). +2. **`.env`:** copy from `.env_example` and set at least `DATA_DIR`, `RESULTS_DIR`, `PIPELINE_DATA_DIR` (and paths your pipeline needs for genomic / 1000G data). Optionally set **`QTL_DATA_DIR`** when large QTL mirrors live on another volume or object-store mount; if omitted, `run_pipeline.sh` defaults it to `PIPELINE_DATA_DIR/qtl_datasets`. 3. **Input JSON:** see `snakemake/input_templates/` and `snakemake/PIPELINES.md`. **`./run_pipeline.sh`** loads `.env`, picks a **profile** (`GENEHACKMAN_PROFILE`, default `snakemake/local/`), then runs Snakemake. Pass the **`.smk` workflow first**, then optional input JSON, for example: @@ -63,7 +63,7 @@ The published image may be **linux/amd64**. Use Lima with **Rosetta / x86 Linux* ./run_pipeline.sh snakemake/compare_gwases.smk ``` -4. Adjust **`snakemake/local/config.yaml`** `singularity-args` if your data live outside `DATA_DIR` / `RESULTS_DIR` / `PIPELINE_DATA_DIR` (add matching `-B host:host` pairs). +4. Adjust **`snakemake/local/config.yaml`** `singularity-args` if your data live outside `DATA_DIR` / `RESULTS_DIR` / `PIPELINE_DATA_DIR` / `QTL_DATA_DIR` (profiles bind these four; add more `-B host:host` pairs if needed). 5. Large pulls: set **`GENEHACKMAN_SINGULARITY_PREFIX`** to fast scratch (e.g. `/scratch/$USER/snakemake_singularity`). --- @@ -90,7 +90,7 @@ export GENEHACKMAN_PROFILE=snakemake/bp1/ **You must customize** each profile’s `config.yaml`: - **`cluster:`** block: `sbatch` options (`partition`, `account`, walltime, memory, `--output` log directory). -- **`singularity-args`:** `-B` mounts for your home, scratch, and shared reference data (replacing Bristol-specific paths). +- **`singularity-args`:** `-B` mounts for your home, scratch, and shared reference data (replacing Bristol-specific paths). Profiles include **`${QTL_DATA_DIR}`**; use **`./run_pipeline.sh`** (or export **`QTL_DATA_DIR`** yourself, defaulting to **`PIPELINE_DATA_DIR/qtl_datasets`**) so the bind is never empty. Log files: profiles often write Slurm stdout under **`/user/work/$USER/slurm_logs/`**; create that tree or change `--output` to your scratch. diff --git a/R/constants.R b/R/constants.R index 2576c7b..b8302dd 100644 --- a/R/constants.R +++ b/R/constants.R @@ -9,11 +9,12 @@ get_env_var <- function(env_var_name, default_value=NULL) { user_data_dir <- get_env_var("DATA_DIR", "") user_results_dir <- get_env_var("RESULTS_DIR", "") pipeline_data_dir <- sub("/+$", "", get_env_var("PIPELINE_DATA_DIR", "")) +qtl_data_dir_env <- sub("/+$", "", get_env_var("QTL_DATA_DIR", "")) number_of_cpus_available <- as.numeric(get_env_var("SLURM_CPUS_ON_NODE", 1)) genomic_data_dir <- file.path(pipeline_data_dir, "genomic_data") thousand_genomes_dir <- file.path(pipeline_data_dir, "1000genomes") -qtl_directory <- file.path(pipeline_data_dir, "qtl_datasets") +qtl_directory <- file.path(qtl_data_dir_env) liftover_dir <- file.path(genomic_data_dir, "liftover") pqtl_top_hits_dir <- file.path(qtl_directory, "pqtl") diff --git a/R/data_conversions.R b/R/data_conversions.R index a3c88f6..f6d56e2 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -158,8 +158,9 @@ populate_partial_rsids <- function(gwas) { #' @import tibble #' @import genepi.utils #' @import future -populate_full_rsids <- function(gwas, build = rsid_builds$GRCh37) { - dbsnp_dir <- file.path(genomic_data_dir, "dbsnp/b37_dbsnp156") +populate_full_rsids <- function(gwas) { + build <- rsid_builds$GRCh37 + dbsnp_dir <- file.path(genomic_data_dir, "dbsnp") if (!build %in% rsid_builds) stop(paste("Error: invalid rsid build option:", build)) gwas <- data.table::as.data.table(gwas) @@ -170,11 +171,12 @@ populate_full_rsids <- function(gwas, build = rsid_builds$GRCh37) { "EA", "OA", flip = "allow", - dbsnp_dir=dbsnp_dir, - build=build, - alt_rsids = F, + dbsnp_dir = dbsnp_dir, + build = build, + alt_rsids = FALSE, parallel_cores=number_of_cpus_available ) + print('finished chrpos_to_rsid') gwas <- tibble::as_tibble(gwas) return(gwas) } diff --git a/R/util.R b/R/util.R index 1782124..5baf8fc 100644 --- a/R/util.R +++ b/R/util.R @@ -126,17 +126,11 @@ create_html_from_rmd <- function(rmd_file, params = list(), output_file) { } get_docker_image_tag <- function() { - return("1.0.0") + docker_version <- get_env_var("DOCKER_VERSION") + if (is.null(docker_version)) { + return("latest") + } else { + return(docker_version) + } #return(packageVersion("GeneHackman")) } - -#' @import vroom -run_sqlite_command <- function(db_name, query, col_names = c()) { - query <- paste0('"', query, '"') - sqlite_command <- paste("sqlite3", db_name, query) - output <- system(sqlite_command, intern = T, wait = T) - result <- vroom::vroom(output, col_names = F, col_type = vroom::cols(vroom::col_character()), show_col_types=F) - - if (is.vector(col_names)) colnames(result) <- col_names - return(result) -} diff --git a/README.md b/README.md index c1d7137..afca502 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,8 @@ or if you have already created the environment `cp .env_example .env` * populate the DATA_DIR, RESULTS_DIR and RDFS_DIR environment variables in .env file These should probably be in your *work* or *scratch* space (`/user/work/{userid}/...`) +* PIPELINE_DATA_DIR: data that can be found here +* QTL_DATA_DIR (optional): if you want to run the QTL MR pipieline * RDFS_DIR is optional. All generated files can be copied automatically. Please ensure the path ends in `working/` * **Container cache:** If there is no pre-built `genehackman_.sif` under `PIPELINE_DATA_DIR`, Snakemake pulls the `docker://` image and caches the SIF under `.snakemake/singularity` by default. Set **`GENEHACKMAN_SINGULARITY_PREFIX`** in `.env` to use another directory (e.g. scratch). Running `snakemake` without `./run_pipeline.sh`? Pass `--singularity-prefix /path` or add `singularity-prefix:` to your profile `config.yaml`. @@ -91,15 +93,17 @@ Pipelines use the image **`mrcieu/genehackman`** (tag usually matches the **`Ver **Build** (run from the **repository root** so paths in the Dockerfile resolve correctly): ```bash -docker build -f docker/Dockerfile -t mrcieu/genehackman:$(grep '^Version:' DESCRIPTION | awk '{print $2}') . +docker build --platform linux/amd64 -f docker/Dockerfile -t mrcieu/genehackman:$(grep '^Version:' DESCRIPTION | awk '{print $2}') . ``` To tag a specific version explicitly (for example `1.0.0`): ```bash -docker build -f docker/Dockerfile -t mrcieu/genehackman:1.0.0 . +docker build --platform linux/amd64 -f docker/Dockerfile -t mrcieu/genehackman:1.0.0 . ``` +The image is **x86_64/amd64-only** (Posit R `.deb`, PLINK, Miniconda, etc.). Use **`--platform linux/amd64`** when building so it works on **ARM** laptops (e.g. Apple Silicon) as well as on amd64 Linux; on native amd64 machines the flag is optional but harmless. + The image installs OS packages and tools in [`docker/Dockerfile`](docker/Dockerfile), R packages via [`docker/requirements.R`](docker/requirements.R), and Python packages via [`docker/requirements.txt`](docker/requirements.txt). After changing those files, rebuild the image before running pipelines that depend on the new dependencies. **Publish** (maintainers with access to the `mrcieu` organisation on Docker Hub): diff --git a/docker/Dockerfile b/docker/Dockerfile index c1f91fc..a0d4614 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,12 +1,15 @@ +# This recipe uses amd64-only assets (Posit R .deb, PLINK, Miniconda, libpng12 .deb). On ARM hosts, +# build with: docker build --platform linux/amd64 ... FROM python:3.11-bullseye RUN apt update && \ apt install -y --no-install-recommends \ - build-essential software-properties-common dirmngr gnupg pandoc lmodern texlive-latex-base \ - libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev libfreetype6-dev libharfbuzz-dev libfribidi-dev \ - libxml2-dev libcurl4-gnutls-dev libssl-dev libgmp-dev libnlopt-dev cmake libcairo2-dev libxt-dev \ + build-essential software-properties-common dirmngr gnupg pandoc lmodern texlive-latex-base unzip \ + libpng-dev libtiff5-dev libjpeg-dev libfreetype6-dev libharfbuzz-dev libfribidi-dev \ + libxml2-dev libcurl4-openssl-dev libssl-dev libgmp-dev libnlopt-dev cmake libcairo2-dev libxt-dev \ texlive-latex-recommended r-cran-sass r-cran-mime libudunits2-dev libgdal-dev \ - plink1.9 plink2 sqlite3 wget vim ripgrep git && \ + libfontconfig1-dev libuv1-dev libicu-dev libbz2-dev liblzma-dev libglib2.0-dev \ + sqlite3 wget vim ripgrep git && \ wget https://cdn.posit.co/r/debian-11/pkgs/r-4.4.2_1_amd64.deb && \ apt-get update && \ apt-get install -y ./r-4.4.2_1_amd64.deb && \ @@ -16,6 +19,10 @@ RUN apt update && \ mkdir -p /usr/lib/R/site-library && chmod 777 /usr/lib/R/site-library && \ mkdir -p /home/scripts && \ rm -rf /var/lib/apt/lists/* && \ + wget https://s3.amazonaws.com/plink1-assets/plink_linux_x86_64_20231211.zip -O /tmp/plink.zip && \ + unzip /tmp/plink.zip -d /usr/local/bin/ && \ + rm /tmp/plink.zip && \ + ln -s /usr/local/bin/plink /usr/local/bin/plink1.9 && \ wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh && \ chmod +x miniconda.sh && \ ./miniconda.sh -b -f -p /bin && \ diff --git a/docker/requirements.R b/docker/requirements.R index 9585ccc..3efba46 100644 --- a/docker/requirements.R +++ b/docker/requirements.R @@ -1,8 +1,10 @@ -install.packages(c("devtools", "argparser", "gmp", "corrplot", "broom", "conflicted", "nloptr", "Cairo", "susieR"), - repos = "http://cran.us.r-project.org") +options(repos = c(CRAN = "https://cloud.r-project.org")) +.libPaths(c("/usr/lib/R/site-library", .libPaths())) -#also needed: forestplot, data.table, devtools -#install.packages('https://homepages.uni-regensburg.de/~wit59712/easyqc/EasyQC_23.8.tar.gz', repos = NULL, type = 'source') -.libPaths( c( .libPaths(), "/usr/lib/R/site-library") ) +install.packages("remotes") +pkgs <- c("argparser", "gmp", "corrplot", "broom", "conflicted", "nloptr", "Cairo", "susieR") +install.packages(pkgs) -devtools::install_github(c("MRCIEU/GeneHackman", "phenoscanner/phenoscanner", "suchestoncampbelllab/gwasurvivr")) +install.packages("devtools") + +remotes::install_github(c("MRCIEU/GeneHackman"), upgrade = "never") diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index a317424..927b1db 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -50,6 +50,8 @@ All pipelines will standardise each GWAS before running the subsequent steps. T ## qtl_mr +QTL summary statistics are read from **`QTL_DATA_DIR`** (see `.env` / `.env_example`): same tree as under `PIPELINE_DATA_DIR/qtl_datasets` when **`QTL_DATA_DIR`** is unset (`pqtl`, `metabrain`, `eqtlgen`, …). Point **`QTL_DATA_DIR`** at a separate mount or bucket path to download only the QTL data you need. + * `1 GWAS object`: See above for GWAS Object explanation * `qtl`: * `dataset`: see below for options diff --git a/snakemake/bc4/config.yaml b/snakemake/bc4/config.yaml index ca528ca..f369919 100644 --- a/snakemake/bc4/config.yaml +++ b/snakemake/bc4/config.yaml @@ -28,6 +28,6 @@ jobs: 10 keep-going: True rerun-incomplete: True use-singularity: True -singularity-args: '-B $(pwd)/R:/home/R -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B /user/work/$(whoami) -B /user/home/$(whoami) -B /mnt/storage/private/mrcieu/data/ --env-file .env --pwd /home/scripts/' +singularity-args: '-B $(pwd)/R:/home/R -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B /user/work/$(whoami) -B /user/home/$(whoami) -B /mnt/storage/private/mrcieu/data/ -B ${QTL_DATA_DIR}:${QTL_DATA_DIR} --env-file .env --pwd /home/scripts/' printshellcmds: True scheduler: greedy diff --git a/snakemake/bp1/config.yaml b/snakemake/bp1/config.yaml index d7348a2..bce7c53 100644 --- a/snakemake/bp1/config.yaml +++ b/snakemake/bp1/config.yaml @@ -28,6 +28,6 @@ jobs: 10 keep-going: True rerun-incomplete: True use-singularity: True -singularity-args: '-B $(pwd)/R:/home/R -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B /user/work/$(whoami) -B /user/home/$(whoami) -B /bp1/mrcieu1/data/ --env-file .env --pwd /home/scripts/' +singularity-args: '-B $(pwd)/R:/home/R -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B /user/work/$(whoami) -B /user/home/$(whoami) -B /bp1/mrcieu1/data/ -B ${QTL_DATA_DIR}:${QTL_DATA_DIR} --env-file .env --pwd /home/scripts/' printshellcmds: True scheduler: greedy diff --git a/snakemake/local/config.yaml b/snakemake/local/config.yaml index 5a4e29f..6a40be8 100644 --- a/snakemake/local/config.yaml +++ b/snakemake/local/config.yaml @@ -8,6 +8,7 @@ singularity-args: >- -B ${DATA_DIR}:${DATA_DIR} -B ${RESULTS_DIR}:${RESULTS_DIR} -B ${PIPELINE_DATA_DIR}:${PIPELINE_DATA_DIR} + -B ${QTL_DATA_DIR}:${QTL_DATA_DIR} -B /tmp:/tmp --env-file .env --pwd /home/scripts/ diff --git a/snakemake/slurm_singularity/config.yaml b/snakemake/slurm_singularity/config.yaml index d7348a2..bce7c53 100644 --- a/snakemake/slurm_singularity/config.yaml +++ b/snakemake/slurm_singularity/config.yaml @@ -28,6 +28,6 @@ jobs: 10 keep-going: True rerun-incomplete: True use-singularity: True -singularity-args: '-B $(pwd)/R:/home/R -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B /user/work/$(whoami) -B /user/home/$(whoami) -B /bp1/mrcieu1/data/ --env-file .env --pwd /home/scripts/' +singularity-args: '-B $(pwd)/R:/home/R -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B /user/work/$(whoami) -B /user/home/$(whoami) -B /bp1/mrcieu1/data/ -B ${QTL_DATA_DIR}:${QTL_DATA_DIR} --env-file .env --pwd /home/scripts/' printshellcmds: True scheduler: greedy diff --git a/snakemake/util/constants.smk b/snakemake/util/constants.smk index f72905d..7ce3ef6 100644 --- a/snakemake/util/constants.smk +++ b/snakemake/util/constants.smk @@ -66,12 +66,12 @@ RESULTS_DIR = format_dir_string(os.getenv('RESULTS_DIR')) RDFS_DIR = format_dir_string(os.getenv('RDFS_DIR')) PIPELINE_DATA_DIR = format_dir_string(os.getenv('PIPELINE_DATA_DIR')) +QTL_DATA_DIR = os.getenv("QTL_DATA_DIR", "").strip() LDSC_DIR = format_dir_string(PIPELINE_DATA_DIR + "/LDSCORE/b37_dbsnp156") GENOMIC_DATA_DIR = format_dir_string(PIPELINE_DATA_DIR + "/genomic_data") THOUSAND_GENOMES_DIR = format_dir_string(PIPELINE_DATA_DIR + "/1000genomes/b37_dbsnp156") -QTL_DIRECTORY = format_dir_string(PIPELINE_DATA_DIR + "/qtl_datasets") -PIPELINE_DATA_DIR = GENOMIC_DATA_DIR + "/pipeline" +QTL_DIRECTORY = format_dir_string(QTL_DATA_DIR) if RDFS_DIR and not RDFS_DIR.endswith("working/"): raise ValueError("Please ensure RDFS_DIR ends with working/ to ensure the data gets copied to the correct place") diff --git a/tests/e2e_tests/run_test_pipelines.sh b/tests/e2e_tests/run_test_pipelines.sh index 1903282..bf5a06a 100755 --- a/tests/e2e_tests/run_test_pipelines.sh +++ b/tests/e2e_tests/run_test_pipelines.sh @@ -4,4 +4,8 @@ set -e ./run_pipeline.sh snakemake/standardise_gwas.smk tests/testthat/data/snakemake_inputs/standardise_gwas.json -F ./run_pipeline.sh snakemake/disease_progression.smk tests/testthat/data/snakemake_inputs/disease_progression.json -F ./run_pipeline.sh snakemake/compare_gwases.smk tests/testthat/data/snakemake_inputs/compare_gwases.json -F -./run_pipeline.sh snakemake/qtl_mr.smk tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json -F + +if [[ -n "${QTL_DATASETS}" ]]; then + ./run_pipeline.sh snakemake/qtl_mr.smk tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json -F +fi + From 5d99410e2225a5aec99789977f2f9385c5b84db6 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 27 Apr 2026 17:26:17 +0100 Subject: [PATCH 08/85] Adding coloc pipeline --- .env_example | 5 + NAMESPACE | 3 + R/coloc.R | 309 ++++++++++++++++-- R/coloc_bf.R | 244 ++++++++++++++ R/constants.R | 6 +- R/finemap.R | 151 +++++---- R/util.R | 29 ++ run_pipeline.sh | 23 +- scripts/coloc_of_mr_results.R | 29 +- scripts/run_coloc.R | 60 ++++ scripts/run_finemap.R | 21 +- snakemake/PIPELINES.md | 30 +- snakemake/coloc.smk | 108 ++++++ snakemake/finemap.smk | 19 +- snakemake/input_templates/coloc.json | 30 ++ snakemake/input_templates/finemap.json | 2 +- snakemake/input_templates/qtl_mr.json | 10 +- snakemake/qtl_mr.smk | 61 +++- snakemake/util/common.smk | 8 + tests/e2e_tests/run_test_pipelines.sh | 2 + .../testthat/data/snakemake_inputs/coloc.json | 18 + .../data/snakemake_inputs/finemap.json | 18 + .../data/snakemake_inputs/qtl_mr_eqtlgen.json | 2 + .../snakemake_inputs/qtl_mr_metabrain.json | 2 + tests/testthat/test_finemap.R | 94 ++++-- 25 files changed, 1120 insertions(+), 164 deletions(-) create mode 100644 R/coloc_bf.R create mode 100644 scripts/run_coloc.R create mode 100644 snakemake/coloc.smk create mode 100644 snakemake/input_templates/coloc.json create mode 100644 tests/testthat/data/snakemake_inputs/coloc.json create mode 100644 tests/testthat/data/snakemake_inputs/finemap.json diff --git a/.env_example b/.env_example index 68aa6b3..b1ee214 100644 --- a/.env_example +++ b/.env_example @@ -3,7 +3,12 @@ RESULTS_DIR= RDFS_DIR= PIPELINE_DATA_DIR=/Users/wt23152/Documents/Projects/scratch/020/data/ QTL_DATA_DIR= +# Container tag / SIF basename: genehackman_.sif (e.g. 1.0.0 or develop). DOCKER_VERSION= +# Optional: build SIF from local Docker (no Hub pull). Example: docker-daemon://mrcieu/genehackman:develop +# GENEHACKMAN_SINGULARITY_DOCKER_REFERENCE=docker-daemon://mrcieu/genehackman:develop +# On Apple Silicon, run_pipeline.sh passes --arch amd64 to singularity build (image is amd64-only). +# Override arch or disable: GENEHACKMAN_SINGULARITY_BUILD_ARCH=amd64 | GENEHACKMAN_SINGULARITY_NO_ARCH=1 GENEHACKMAN_PROFILE=snakemake/local/ PIPELINE_LOG_DIR= # Optional: Lima VM name if apptainer only exists inside Lima (default: apptainer) diff --git a/NAMESPACE b/NAMESPACE index 41693f4..928d27b 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,6 +3,7 @@ export(calculate_f_statistic) export(change_snp_identifiers) export(coloc_analysis) +export(coloc_bf_bf_qtl_analysis) export(conduct_collider_bias_analysis) export(convert_beta_to_or) export(convert_or_to_beta) @@ -18,7 +19,9 @@ export(miami_plot) export(populate_eaf_from_reference_panel) export(populate_gene_names) export(populate_rsid) +export(run_bf_bf_coloc) export(run_coloc_on_list_of_datasets) +export(run_coloc_on_qtl_mr_results) export(standardise_gwas) export(volcano_plot) export(vroom_snps) diff --git a/R/coloc.R b/R/coloc.R index fa841bf..fc801f9 100644 --- a/R/coloc.R +++ b/R/coloc.R @@ -38,18 +38,31 @@ run_coloc_on_list_of_datasets <- function(first_gwas_list=list(), return(coloc_results) } +#' Run BF-BF colocalization on significant QTL MR results using finemapped data +#' +#' For each significant MR result, loads the finemapped GWAS locus that covers +#' the MR hit, computes LBF scores for the QTL data via \code{convert_z_to_lbf}, +#' and runs \code{coloc::coloc.bf_bf}. +#' +#' @param mr_results_file MR results file +#' @param finemap_dir directory containing finemapped GWAS locus files +#' @param qtl_dataset QTL dataset name (metabrain or eqtlgen) +#' @param study_type study type for LBF conversion ("continuous" or "categorical") +#' @param exposures optional character vector of exposures to filter +#' @param default_n default sample size for QTL data +#' @param output_file output file path #' @import dplyr #' @import tidyr #' @import vroom #' @import utils +#' @export run_coloc_on_qtl_mr_results <- function(mr_results_file, - gwas_file, + finemap_dir, qtl_dataset, - exposures=c(), - default_n=NA, + study_type = "continuous", + exposures = c(), + default_n = NA, output_file) { - gwas <- get_file_or_dataframe(gwas_file) - range <- 500000 mr_results <- get_file_or_dataframe(mr_results_file) |> dplyr::filter(p.adjusted < 0.05) @@ -58,36 +71,274 @@ run_coloc_on_qtl_mr_results <- function(mr_results_file, mr_results <- subset(mr_results, exposure %in% exposures) } + empty_result <- tibble::tibble( + exposure = character(), + locus = character(), + hit1 = character(), + hit2 = character(), + n_snps = integer(), + PP.H0.abf = numeric(), + PP.H1.abf = numeric(), + PP.H2.abf = numeric(), + PP.H3.abf = numeric(), + PP.H4.abf = numeric() + ) + if (nrow(mr_results) == 0) { - coloc_results <- tibble::tribble(~exposure, ~h0, ~h1, ~h2, ~h3, ~h4) + vroom::vroom_write(empty_result, output_file) + return(invisible(empty_result)) + } + + coloc_results <- apply(mr_results, 1, function(mr_result) { + qtl_gwas <- load_qtl_gwas_for_mr_result(mr_result, qtl_dataset) + if (is.null(qtl_gwas)) return(NULL) + + chr <- as.numeric(mr_result[["CHR"]]) + bp <- as.numeric(mr_result[["BP"]]) + exposure_name <- mr_result[["EXPOSURE"]] + + coloc_bf_bf_qtl_analysis( + finemap_dir = finemap_dir, + qtl_gwas = qtl_gwas, + exposure_name = exposure_name, + chr = chr, + bp = bp, + study_type = study_type, + default_n = default_n + ) + }) |> dplyr::bind_rows() + + if (nrow(coloc_results) == 0) coloc_results <- empty_result + + vroom::vroom_write(coloc_results, output_file) + return(invisible(coloc_results)) +} + + +#' Load the QTL GWAS file for an MR result row +#' @keywords internal +load_qtl_gwas_for_mr_result <- function(mr_result, qtl_dataset) { + if (qtl_dataset == qtl_datasets$metabrain) { + outcome <- unlist(strsplit(mr_result[["outcome"]], "_")) + brain_region <- outcome[1] + ancestry <- toupper(outcome[2]) + qtl_gwas_file <- paste0(metabrain_gwas_dir, "/", brain_region, "/", + mr_result[["EXPOSURE"]], "_", ancestry, ".tsv.gz") + } else if (qtl_dataset == qtl_datasets$eqtlgen) { + qtl_gwas_file <- paste0(eqtlgen_gwas_dir, "/", mr_result[["outcome"]], "/", + mr_result[["EXPOSURE"]], ".tsv.gz") } else { - coloc_results <- apply(mr_results, 1, function(mr_result) { - if (qtl_dataset == qtl_datasets$metabrain) { - outcome <- unlist(strsplit(mr_result[["outcome"]], "_")) - brain_region <- outcome[1] - ancestry <- toupper(outcome[2]) - - qtl_gwas_file <- paste0(metabrain_gwas_dir, "/", brain_region, "/", mr_result[["EXPOSURE"]], "_", ancestry, ".tsv.gz") - qtl_gwas <- get_file_or_dataframe(qtl_gwas_file) - } else if (qtl_dataset == qtl_datasets$eqtlgen) { - qtl_gwas_file <- paste0(eqtlgen_gwas_dir, "/", mr_result[["outcome"]], "/", mr_result[["EXPOSURE"]], ".tsv.gz") - qtl_gwas <- get_file_or_dataframe(qtl_gwas_file) - } else { - stop("Error: qtl dataset not supported for coloc right now") - } - chr <- as.numeric(mr_result[["CHR"]]) - bp <- as.numeric(mr_result[["BP"]]) - result <- coloc_analysis(gwas, qtl_gwas, mr_result[["EXPOSURE"]], chr, bp, range, default_n=default_n) + stop("Error: qtl dataset not supported for coloc right now") + } - #TODO: should we create Miami Plots for coloc results? - #miami_filename <- paste0(user_results_dir, "plots/mr_metabrain_coloc_", file_prefix(gwas_file), "_", mr_result[["EXPOSURE"]], ".png") - #miami_plot(qtl_gwas_file, gwas_file, miami_filename, paste0("Miami Plot of", mr_result[["EXPOSURE"]]), chr, bp, range) + if (!file.exists(qtl_gwas_file)) { + message(paste("QTL GWAS file not found:", qtl_gwas_file)) + return(NULL) + } + get_file_or_dataframe(qtl_gwas_file) +} + + +#' Run BF-BF coloc between a finemapped GWAS locus and QTL data +#' +#' Finds the finemapped locus file covering the region around chr:bp, +#' extracts the GWAS LBF matrix, computes QTL LBF via \code{convert_z_to_lbf}, +#' and runs \code{coloc::coloc.bf_bf}. +#' +#' @param finemap_dir finemap output directory containing locus TSV files +#' @param qtl_gwas QTL GWAS data frame +#' @param exposure_name exposure label +#' @param chr chromosome of the MR hit +#' @param bp base position of the MR hit +#' @param study_type study type for LBF conversion +#' @param default_n default sample size +#' @param range_bp overlap window in bp (default 1e6 = ±1Mb) +#' @return tibble with coloc results or NULL +#' @import coloc +#' @import dplyr +#' @import tibble +#' @export +coloc_bf_bf_qtl_analysis <- function(finemap_dir, + qtl_gwas, + exposure_name, + chr, + bp, + study_type = "continuous", + default_n = NA, + range_bp = 1e6) { - return(result) - }) |> dplyr::bind_rows() + finemap_locus <- find_finemap_locus_for_region(finemap_dir, chr, bp, range_bp) + if (is.null(finemap_locus)) { + message(paste("No finemapped locus found near", chr, ":", bp)) + return(NULL) } - vroom::vroom_write(coloc_results, output_file) + lbf_cols <- grep("^LBF_[0-9]+$", colnames(finemap_locus), value = TRUE) + if (length(lbf_cols) == 0) { + message(paste("No LBF columns in finemapped locus for", chr, ":", bp)) + return(NULL) + } + + numeric_cols <- c("CHR", "BP", "BETA", "SE", "P", "EAF", "N") + for (col in intersect(numeric_cols, colnames(qtl_gwas))) { + qtl_gwas[[col]] <- as.numeric(qtl_gwas[[col]]) + } + + qtl_gwas <- dplyr::filter(qtl_gwas, + !is.na(BETA) & !is.na(SE) & SE > 0 & + !is.na(EAF) & EAF > 0 & EAF < 1 + ) + + qtl_region <- gwas_region(qtl_gwas, chr, bp, range_bp) + if (nrow(qtl_region) < 2) { + message(paste("Too few QTL SNPs in region around", chr, ":", bp)) + return(NULL) + } + + shared_snps <- intersect(finemap_locus$SNP, qtl_region$SNP) + if (length(shared_snps) < 2) { + message(paste("Too few shared SNPs for", exposure_name, "at", chr, ":", bp)) + return(NULL) + } + + gwas_sub <- dplyr::filter(finemap_locus, SNP %in% shared_snps) |> + dplyr::filter(!duplicated(SNP)) |> + dplyr::arrange(SNP) + qtl_sub <- dplyr::filter(qtl_region, SNP %in% shared_snps) |> + dplyr::filter(!duplicated(SNP)) |> + dplyr::arrange(SNP) + + shared_snps <- intersect(gwas_sub$SNP, qtl_sub$SNP) + gwas_sub <- dplyr::filter(gwas_sub, SNP %in% shared_snps) + qtl_sub <- dplyr::filter(qtl_sub, SNP %in% shared_snps) + + gwas_bf <- build_bf_matrix(gwas_sub, lbf_cols) + if (is.null(gwas_bf)) return(NULL) + + qtl_n <- `if`("N" %in% colnames(qtl_sub) && !is.na(as.numeric(qtl_sub$N[1])), + as.numeric(qtl_sub$N[1]), default_n) + if (is.na(qtl_n)) { + message(paste("Cannot determine N for QTL data for", exposure_name)) + return(NULL) + } + + z_scores <- qtl_sub$BETA / qtl_sub$SE + qtl_lbf <- convert_z_to_lbf( + z = z_scores, + se = qtl_sub$SE, + eaf = qtl_sub$EAF, + sample_size = qtl_n, + study_type = study_type + ) + names(qtl_lbf) <- qtl_sub$SNP + + result <- tryCatch( + coloc::coloc.bf_bf(bf1 = gwas_bf, bf2 = qtl_lbf), + error = function(e) { + message(paste("coloc.bf_bf failed for", exposure_name, "at", chr, ":", bp, + ":", conditionMessage(e))) + return(NULL) + } + ) + + if (is.null(result)) return(NULL) + + locus_name <- paste0(chr, "_", bp) + parsed <- parse_bf_bf_result(result, exposure_name, locus_name, length(shared_snps)) + return(parsed) +} + + +#' Build a named BF matrix from a finemapped locus data frame +#' @keywords internal +build_bf_matrix <- function(locus_df, lbf_cols) { + lbf_cols <- intersect(lbf_cols, colnames(locus_df)) + if (length(lbf_cols) == 0) return(NULL) + + has_cs <- "CS" %in% colnames(locus_df) + if (has_cs) { + has_signal <- !all(is.na(locus_df$CS)) + } else { + has_signal <- TRUE + } + if (!has_signal) return(NULL) + + bf_mat <- t(as.matrix(locus_df[, lbf_cols, drop = FALSE])) + bf_mat[is.na(bf_mat)] <- 0 + colnames(bf_mat) <- locus_df$SNP + rownames(bf_mat) <- lbf_cols + return(bf_mat) +} + + +#' Find the finemapped locus file that covers a genomic region +#' @keywords internal +find_finemap_locus_for_region <- function(finemap_dir, chr, bp, range_bp = 1e6) { + if (!dir.exists(finemap_dir)) return(NULL) + + files <- list.files(finemap_dir, pattern = "_finemap\\.tsv\\.gz$", full.names = TRUE) + if (length(files) == 0) return(NULL) + + best_file <- NULL + best_dist <- Inf + + for (f in files) { + locus_name <- sub("_finemap\\.tsv\\.gz$", "", basename(f)) + parts <- strsplit(locus_name, "_")[[1]] + locus_chr <- as.numeric(parts[1]) + locus_bp <- as.numeric(parts[2]) + + if (locus_chr != chr) next + dist <- abs(locus_bp - bp) + if (dist <= range_bp && dist < best_dist) { + best_dist <- dist + best_file <- f + } + } + + if (is.null(best_file)) return(NULL) + vroom::vroom(best_file, show_col_types = FALSE) +} + + +#' Parse coloc.bf_bf result for QTL analysis +#' @keywords internal +parse_bf_bf_result <- function(result, exposure_name, locus_name, n_snps) { + if (!is.null(result$summary)) { + summary_df <- result$summary + if (is.data.frame(summary_df) || is.matrix(summary_df)) { + rows <- list() + for (i in seq_len(nrow(summary_df))) { + row <- summary_df[i, ] + rows <- c(rows, list(tibble::tibble( + exposure = exposure_name, + locus = locus_name, + hit1 = as.character(row[["hit1"]]), + hit2 = as.character(row[["hit2"]]), + n_snps = as.integer(row[["nsnps"]]), + PP.H0.abf = as.numeric(row[["PP.H0.abf"]]), + PP.H1.abf = as.numeric(row[["PP.H1.abf"]]), + PP.H2.abf = as.numeric(row[["PP.H2.abf"]]), + PP.H3.abf = as.numeric(row[["PP.H3.abf"]]), + PP.H4.abf = as.numeric(row[["PP.H4.abf"]]) + ))) + } + return(dplyr::bind_rows(rows)) + } + } + + tibble::tibble( + exposure = exposure_name, + locus = locus_name, + hit1 = NA_character_, + hit2 = NA_character_, + n_snps = n_snps, + PP.H0.abf = NA_real_, + PP.H1.abf = NA_real_, + PP.H2.abf = NA_real_, + PP.H3.abf = NA_real_, + PP.H4.abf = NA_real_ + ) } #' run_coloc_analysis takes two already harmonised gwases, and runs coloc on the results diff --git a/R/coloc_bf.R b/R/coloc_bf.R new file mode 100644 index 0000000..9d04136 --- /dev/null +++ b/R/coloc_bf.R @@ -0,0 +1,244 @@ +#' Run pairwise BF-BF colocalization on finemapped GWAS results +#' +#' For each pair of GWAS datasets, identifies overlapping finemapped signals +#' (lead SNPs within ±\code{overlap_kb} kb), then runs \code{coloc::coloc.bf_bf} +#' on shared SNPs using the per-signal LBF columns produced by the fine-mapping +#' pipeline. +#' +#' @param finemap_dirs named character vector of finemap output directories, +#' one per GWAS. Names are used as trait labels in the output. +#' @param overlap_kb distance in kb to define overlapping signals (default 1000 = ±1 Mb) +#' @param p1 prior probability a SNP is associated with trait 1 +#' @param p2 prior probability a SNP is associated with trait 2 +#' @param p12 prior probability a SNP is associated with both traits +#' @param output_file path to write the combined coloc results TSV +#' @return tibble of coloc results for every overlapping signal pair +#' @import dplyr +#' @import vroom +#' @import tibble +#' @export +run_bf_bf_coloc <- function(finemap_dirs, + overlap_kb = 1000, + p1 = 1e-4, + p2 = 1e-4, + p12 = 5e-6, + output_file = NULL) { + + trait_names <- names(finemap_dirs) + if (is.null(trait_names) || any(trait_names == "")) { + trait_names <- basename(finemap_dirs) + names(finemap_dirs) <- trait_names + } + + locus_data <- load_all_finemap_loci(finemap_dirs) + + if (length(locus_data) < 2) { + message("Need at least 2 traits with finemapped loci for colocalization.") + empty <- tibble::tibble( + trait1 = character(), trait2 = character(), + locus1 = character(), locus2 = character(), + n_snps = integer(), + PP.H0.abf = numeric(), PP.H1.abf = numeric(), + PP.H2.abf = numeric(), PP.H3.abf = numeric(), PP.H4.abf = numeric() + ) + if (!is.null(output_file)) vroom::vroom_write(empty, output_file) + return(invisible(empty)) + } + + pairs <- utils::combn(trait_names, 2, simplify = FALSE) + overlap_bp <- overlap_kb * 1000 + all_results <- list() + + for (pair in pairs) { + t1 <- pair[1] + t2 <- pair[2] + loci1 <- locus_data[[t1]] + loci2 <- locus_data[[t2]] + + for (l1 in loci1) { + for (l2 in loci2) { + if (l1$chr != l2$chr) next + if (abs(l1$lead_bp - l2$lead_bp) > overlap_bp) next + + result <- coloc_bf_bf_for_locus_pair(l1, l2, t1, t2, p1, p2, p12) + if (!is.null(result)) { + all_results <- c(all_results, list(result)) + } + } + } + } + + combined <- dplyr::bind_rows(all_results) + + if (nrow(combined) == 0) { + message("No overlapping finemapped signals found across trait pairs.") + } else { + message(paste("BF-BF colocalization complete:", nrow(combined), "signal pair(s) tested.")) + } + + if (!is.null(output_file)) { + vroom::vroom_write(combined, output_file) + } + + return(invisible(combined)) +} + + +#' Load all finemapped locus files from a set of directories +#' @keywords internal +load_all_finemap_loci <- function(finemap_dirs) { + locus_data <- list() + + for (trait in names(finemap_dirs)) { + dir_path <- finemap_dirs[[trait]] + if (!dir.exists(dir_path)) { + message(paste("Finemap directory not found for", trait, ":", dir_path)) + next + } + + files <- list.files(dir_path, pattern = "_finemap\\.tsv\\.gz$", full.names = TRUE) + if (length(files) == 0) { + message(paste("No finemap locus files found in", dir_path)) + next + } + + trait_loci <- list() + for (f in files) { + locus <- vroom::vroom(f, show_col_types = FALSE) + lbf_cols <- grep("^LBF_[0-9]+$", colnames(locus), value = TRUE) + if (length(lbf_cols) == 0) next + + locus_name <- sub("_finemap\\.tsv\\.gz$", "", basename(f)) + parts <- strsplit(locus_name, "_")[[1]] + chr <- as.numeric(parts[1]) + bp <- as.numeric(parts[2]) + + trait_loci <- c(trait_loci, list(list( + data = locus, + lbf_cols = lbf_cols, + chr = chr, + lead_bp = bp, + locus_name = locus_name + ))) + } + + if (length(trait_loci) > 0) { + locus_data[[trait]] <- trait_loci + } + } + + return(locus_data) +} + + +#' Run coloc::coloc.bf_bf for one pair of overlapping loci +#' @keywords internal +coloc_bf_bf_for_locus_pair <- function(l1, l2, trait1_name, trait2_name, + p1, p2, p12) { + d1 <- l1$data + d2 <- l2$data + + if (!"SNP" %in% colnames(d1) || !"SNP" %in% colnames(d2)) { + return(NULL) + } + + shared_snps <- intersect(d1$SNP, d2$SNP) + if (length(shared_snps) < 2) return(NULL) + + d1 <- dplyr::filter(d1, SNP %in% shared_snps) |> + dplyr::filter(!duplicated(SNP)) |> + dplyr::arrange(SNP) + d2 <- dplyr::filter(d2, SNP %in% shared_snps) |> + dplyr::filter(!duplicated(SNP)) |> + dplyr::arrange(SNP) + + shared_snps <- intersect(d1$SNP, d2$SNP) + d1 <- dplyr::filter(d1, SNP %in% shared_snps) + d2 <- dplyr::filter(d2, SNP %in% shared_snps) + + bf1 <- build_lbf_matrix(d1, l1$lbf_cols) + bf2 <- build_lbf_matrix(d2, l2$lbf_cols) + + if (is.null(bf1) || is.null(bf2)) return(NULL) + + result <- tryCatch( + coloc::coloc.bf_bf(bf1 = bf1, bf2 = bf2, p1 = p1, p2 = p2, p12 = p12), + error = function(e) { + message(paste("coloc.bf_bf failed for", trait1_name, l1$locus_name, + "vs", trait2_name, l2$locus_name, ":", conditionMessage(e))) + return(NULL) + } + ) + + if (is.null(result)) return(NULL) + + parse_pairwise_bf_bf_result(result, trait1_name, trait2_name, + l1$locus_name, l2$locus_name, length(shared_snps)) +} + + +#' Build a named BF matrix from locus data +#' @keywords internal +build_lbf_matrix <- function(locus_df, lbf_cols) { + lbf_cols <- intersect(lbf_cols, colnames(locus_df)) + if (length(lbf_cols) == 0) return(NULL) + + has_cs <- "CS" %in% colnames(locus_df) + if (has_cs) { + has_signal <- !all(is.na(locus_df$CS)) + } else { + has_signal <- TRUE + } + if (!has_signal) return(NULL) + + bf_mat <- t(as.matrix(locus_df[, lbf_cols, drop = FALSE])) + bf_mat[is.na(bf_mat)] <- 0 + colnames(bf_mat) <- locus_df$SNP + rownames(bf_mat) <- lbf_cols + return(bf_mat) +} + + +#' Parse the result of coloc.bf_bf for a pairwise GWAS comparison +#' @keywords internal +parse_pairwise_bf_bf_result <- function(result, trait1, trait2, locus1, locus2, n_snps) { + if (!is.null(result$summary)) { + summary_df <- result$summary + if (is.data.frame(summary_df) || is.matrix(summary_df)) { + rows <- list() + for (i in seq_len(nrow(summary_df))) { + row <- summary_df[i, ] + rows <- c(rows, list(tibble::tibble( + trait1 = trait1, + trait2 = trait2, + locus1 = locus1, + locus2 = locus2, + hit1 = as.character(row[["hit1"]]), + hit2 = as.character(row[["hit2"]]), + n_snps = as.integer(row[["nsnps"]]), + PP.H0.abf = as.numeric(row[["PP.H0.abf"]]), + PP.H1.abf = as.numeric(row[["PP.H1.abf"]]), + PP.H2.abf = as.numeric(row[["PP.H2.abf"]]), + PP.H3.abf = as.numeric(row[["PP.H3.abf"]]), + PP.H4.abf = as.numeric(row[["PP.H4.abf"]]) + ))) + } + return(dplyr::bind_rows(rows)) + } + } + + tibble::tibble( + trait1 = trait1, + trait2 = trait2, + locus1 = locus1, + locus2 = locus2, + hit1 = NA_character_, + hit2 = NA_character_, + n_snps = n_snps, + PP.H0.abf = NA_real_, + PP.H1.abf = NA_real_, + PP.H2.abf = NA_real_, + PP.H3.abf = NA_real_, + PP.H4.abf = NA_real_ + ) +} diff --git a/R/constants.R b/R/constants.R index b8302dd..dac11dc 100644 --- a/R/constants.R +++ b/R/constants.R @@ -9,12 +9,12 @@ get_env_var <- function(env_var_name, default_value=NULL) { user_data_dir <- get_env_var("DATA_DIR", "") user_results_dir <- get_env_var("RESULTS_DIR", "") pipeline_data_dir <- sub("/+$", "", get_env_var("PIPELINE_DATA_DIR", "")) -qtl_data_dir_env <- sub("/+$", "", get_env_var("QTL_DATA_DIR", "")) +qtl_directory <- sub("/+$", "", get_env_var("QTL_DATA_DIR", "")) number_of_cpus_available <- as.numeric(get_env_var("SLURM_CPUS_ON_NODE", 1)) genomic_data_dir <- file.path(pipeline_data_dir, "genomic_data") -thousand_genomes_dir <- file.path(pipeline_data_dir, "1000genomes") -qtl_directory <- file.path(qtl_data_dir_env) +# Must match snakemake/util/constants.smk THOUSAND_GENOMES_DIR (used by clumping + LD). +thousand_genomes_dir <- file.path(pipeline_data_dir, "1000genomes", "b37_dbsnp156") liftover_dir <- file.path(genomic_data_dir, "liftover") pqtl_top_hits_dir <- file.path(qtl_directory, "pqtl") diff --git a/R/finemap.R b/R/finemap.R index 0a79bc8..f7f6ff9 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -2,20 +2,21 @@ #' #' For each lead SNP from plink --clump output, extracts a window, computes an #' LD matrix from the 1000 Genomes reference panel via plink, and runs -#' susieR::susie_rss. Produces per-SNP log Bayes factors and a filtered GWAS -#' containing only credible-set SNPs. +#' susieR::susie_rss. Writes one TSV per locus: all GWAS variants within the +#' genomic window around the lead SNP, with SuSiE Z-scores, credible-set +#' membership, and per-credible-set (independent signal) columns \code{LBF_1}, \code{LBF_2}, ... #' #' @param gwas filename or dataframe of a standardised GWAS #' @param clumped_file plink --clump output file #' @param ancestry ancestry code matching 1000 Genomes panel prefix (EUR, EAS, AFR, AMR, SAS) -#' @param n GWAS sample size -#' @param output_lbf_file path to write combined per-locus LBF table -#' @param output_credible_set_file path to write credible-set-filtered GWAS -#' @param window_kb fine-mapping window half-width in kb (default 500) +#' @param default_n GWAS sample size when not inferrable from \code{gwas}; see +#' @param output_finemap_dir directory to write one +#' \verb{__finemap.tsv.gz} per clumped locus +#' @param window_kb half-width of the fine-mapping window in kb (default 1000 = ±1 Mb) #' @param max_causal maximum number of causal signals per locus (SuSiE L, default 10) #' @param coverage credible set coverage (default 0.95) #' @param min_abs_corr minimum absolute correlation for credible sets (default 0.5) -#' @return invisibly, the combined LBF tibble +#' @return invisibly, the combined per-SNP finemap tibble (LD-matched SNPs only) #' @import data.table #' @import dplyr #' @import vroom @@ -24,30 +25,31 @@ finemap_gwas <- function(gwas, clumped_file, ancestry, - n, - output_lbf_file, - output_credible_set_file, - window_kb = 500, + default_n, + output_finemap_dir, + window_kb = 1000, max_causal = 10, coverage = 0.95, min_abs_corr = 0.5) { gwas <- get_file_or_dataframe(gwas) - numeric_cols <- c("CHR", "BP", "BETA", "SE", "P", "EAF") + numeric_cols <- c("CHR", "BP", "BETA", "SE", "P", "EAF", "N", "N_CASE", "N_CONTROL") for (col in intersect(numeric_cols, colnames(gwas))) { gwas[[col]] <- as.numeric(gwas[[col]]) } + if (!dir.exists(output_finemap_dir)) { + dir.create(output_finemap_dir, recursive = TRUE) + } + lead_snps <- data.table::fread(clumped_file, select = c("SNP", "CHR", "BP")) if (nrow(lead_snps) == 0) { - message("No clumped SNPs found; writing empty output files.") - empty_lbf <- tibble::tibble( + message("No clumped SNPs found; no per-locus finemap files written.") + empty <- tibble::tibble( SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), - Z = numeric(), LBF = numeric(), CS = integer(), LEAD_SNP = character() + Z = numeric(), CS = integer() ) - vroom::vroom_write(empty_lbf, output_lbf_file) - vroom::vroom_write(gwas[0, ], output_credible_set_file) - return(invisible(empty_lbf)) + return(invisible(empty)) } window_bp <- window_kb * 1000 @@ -94,6 +96,7 @@ finemap_gwas <- function(gwas, R <- ld_result$matrix[ld_idx, ld_idx] z_scores <- locus_gwas$BETA / locus_gwas$SE + n <- `if`("N" %in% colnames(locus_gwas) && !is.na(as.numeric(locus_gwas$N[1])), as.numeric(locus_gwas$N[1]), default_n) locus_lbf <- run_susie_for_locus( z_scores = z_scores, @@ -105,29 +108,41 @@ finemap_gwas <- function(gwas, coverage = coverage, min_abs_corr = min_abs_corr ) - all_lbf[[i]] <- locus_lbf + + if (nrow(locus_lbf) == 0) { + next + } + + all_lbf <- c(all_lbf, list(locus_lbf)) + + lbf_nm <- grep("^LBF_[0-9]+$", names(locus_lbf), value = TRUE) + finemap_join <- dplyr::select(locus_lbf, dplyr::any_of(c( + "RSID", "Z", "CS", lbf_nm + ))) + + out_gwas <- dplyr::filter(gwas, + CHR == lead_chr, + BP >= (lead_bp - window_bp), + BP <= (lead_bp + window_bp) + ) + out_gwas <- dplyr::left_join(out_gwas, finemap_join, by = "RSID") + + lead_chr_bp <- paste0(lead_chr, "_", lead_bp) + safe_locus <- gsub("[^A-Za-z0-9._-]+", "_", lead_chr_bp) + out_file <- file.path(output_finemap_dir, paste0(safe_locus, "_finemap.tsv.gz")) + vroom::vroom_write(out_gwas, out_file) } combined_lbf <- dplyr::bind_rows(all_lbf) if (nrow(combined_lbf) == 0) { message("No loci produced SuSiE results.") - combined_lbf <- tibble::tibble( - SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), - Z = numeric(), LBF = numeric(), CS = integer(), LEAD_SNP = character() - ) } - vroom::vroom_write(combined_lbf, output_lbf_file) - - cs_snps <- dplyr::filter(combined_lbf, !is.na(CS)) - credible_set_gwas <- dplyr::filter(gwas, SNP %in% cs_snps$SNP) - vroom::vroom_write(credible_set_gwas, output_credible_set_file) - message(paste("Fine-mapping complete:", - nrow(lead_snps), "loci,", - nrow(combined_lbf), "SNPs with LBFs,", - nrow(credible_set_gwas), "SNPs in credible sets")) + nrow(lead_snps), "clumped loci,", + nrow(combined_lbf), "LD-matched SNPs with finemap stats,", + "outputs in", output_finemap_dir)) return(invisible(combined_lbf)) } @@ -164,16 +179,10 @@ compute_ld_matrix <- function(rsids, chr, ancestry) { return(NULL) } - # plink --r square writes the SNP order into .ld in the same order as the - # extracted variants. Read the .bim-like info from the log or use the - # nosex/fam to get the order. Safer: read the pruned bim. bim_file <- paste0(out_prefix, ".bim") if (file.exists(bim_file)) { snp_order <- data.table::fread(bim_file, header = FALSE, select = 2)$V2 } else { - # Fallback: the SNPs in .ld follow input extraction order; plink sorts by - # genomic position so we cannot assume our input order. Read the log - # to find the count and use the filtered set. bim_ref <- paste0(bfile, ".bim") all_bim <- data.table::fread(bim_ref, header = FALSE, select = c(1, 2, 4)) colnames(all_bim) <- c("CHR", "SNP", "BP") @@ -199,20 +208,40 @@ compute_ld_matrix <- function(rsids, chr, ancestry) { } -#' Wrapper for susieR::susie_rss (mockable in tests). +#' Build per-credible-set LBF columns (\code{LBF_1}, \code{LBF_2}, ...) from a SuSiE fit. #' @keywords internal -run_susie_rss_impl <- function(z, R, n, L, coverage, min_abs_corr, verbose = FALSE) { - susieR::susie_rss( - z = z, - R = R, - n = n, - L = L, - coverage = coverage, - min_abs_corr = min_abs_corr, - verbose = verbose - ) +susie_lbf_columns <- function(fitted, p) { + lv <- fitted$lbf_variable + if (is.null(lv) || !is.matrix(lv) || nrow(lv) < 1L || ncol(lv) != p) { + return(tibble::tibble()) + } + + n_row <- nrow(lv) + cs_list <- fitted$sets$cs + cs_idx <- fitted$sets$cs_index + col_vecs <- list() + + if (!is.null(cs_list) && length(cs_list) > 0L) { + n_cs <- length(cs_list) + use_idx <- !is.null(cs_idx) && length(cs_idx) == n_cs + for (j in seq_len(n_cs)) { + row_i <- if (use_idx) cs_idx[j] else j + if (is.finite(row_i) && row_i >= 1L && row_i <= n_row) { + col_vecs[[paste0("LBF_", j)]] <- lv[row_i, ] + } else { + col_vecs[[paste0("LBF_", j)]] <- rep(NA_real_, p) + } + } + } else { + for (j in seq_len(n_row)) { + col_vecs[[paste0("LBF_", j)]] <- lv[j, ] + } + } + + tibble::as_tibble(col_vecs) } + #' Run SuSiE on a single locus #' @param z_scores numeric vector of z-scores #' @param ld_matrix square LD correlation matrix @@ -222,13 +251,14 @@ run_susie_rss_impl <- function(z, R, n, L, coverage, min_abs_corr, verbose = FAL #' @param max_causal max causal signals (L) #' @param coverage credible set coverage #' @param min_abs_corr minimum absolute correlation for CS purity -#' @return tibble with SNP, CHR, BP, RSID, Z, LBF, CS, LEAD_SNP +#' @return tibble with SNP, CHR, BP, RSID, Z, CS, and \code{LBF_1}, \code{LBF_2}, ... per signal run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, max_causal = 10, coverage = 0.95, min_abs_corr = 0.5) { + p <- length(z_scores) fitted <- tryCatch( - run_susie_rss_impl( + susieR::susie_rss( z = z_scores, R = ld_matrix, n = n, @@ -246,19 +276,13 @@ run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, if (is.null(fitted)) { return(tibble::tibble( SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), - Z = numeric(), LBF = numeric(), CS = integer(), LEAD_SNP = character() + Z = numeric(), CS = integer() )) } - # Per-SNP log Bayes factor: sum across all L effects - if (!is.null(fitted$lbf_variable)) { - per_snp_lbf <- colSums(fitted$lbf_variable) - } else { - per_snp_lbf <- rep(NA_real_, length(z_scores)) - } + lbf_wide <- susie_lbf_columns(fitted, p) - # Map each SNP to its credible set (if any) - cs_membership <- rep(NA_integer_, length(z_scores)) + cs_membership <- rep(NA_integer_, p) if (!is.null(fitted$sets) && !is.null(fitted$sets$cs)) { for (cs_idx in seq_along(fitted$sets$cs)) { snp_indices <- fitted$sets$cs[[cs_idx]] @@ -272,10 +296,7 @@ run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, BP = snp_info$BP, RSID = snp_info$RSID, Z = z_scores, - LBF = per_snp_lbf, - CS = cs_membership, - LEAD_SNP = lead_snp + CS = cs_membership ) - - return(result) + dplyr::bind_cols(result, lbf_wide) } diff --git a/R/util.R b/R/util.R index 5baf8fc..130549f 100644 --- a/R/util.R +++ b/R/util.R @@ -134,3 +134,32 @@ get_docker_image_tag <- function() { } #return(packageVersion("GeneHackman")) } + +#' Generate log Bayes Factor from Z-score +#' +#' @param z Z-score +#' @param se Standard error +#' @param eaf Allele frequency +#' @param sample_size Sample size +#' @param study_type Study type +#' @param effect_priors Effect priors +#' +#' @return Log Bayes Factor +convert_z_to_lbf <- function( + z, + se, + eaf, + sample_size, + study_type, + effect_priors = c(continuous = 0.15, categorical = 0.2) +) { + estimated_sd <- estimate_variance(se, eaf, sample_size) + if (study_type == study_categories$continuous) { + sd_prior <- effect_priors[study_categories$continuous] * estimated_sd + } else { + sd_prior <- effect_priors[study_categories$categorical] + } + r <- sd_prior^2 / (sd_prior^2 + se^2) + lbf <- (log(1 - r) + (r * z^2)) / 2 + return(lbf) +} \ No newline at end of file diff --git a/run_pipeline.sh b/run_pipeline.sh index 9f3a315..2dc2241 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -55,14 +55,33 @@ fi SIF_NAME="genehackman_${SIF_VERSION}.sif" SIF_PATH="${SIF_DIR}/${SIF_NAME}" +# Source for singularity build: default pulls docker://mrcieu/genehackman: from Hub. +# Set GENEHACKMAN_SINGULARITY_DOCKER_REFERENCE=docker-daemon://mrcieu/genehackman:develop (or other tag) +# to build the SIF from your local Docker image (same image ID, no Hub pull / no rebuild of layers). +SINGULARITY_DOCKER_REFERENCE="${GENEHACKMAN_SINGULARITY_DOCKER_REFERENCE:-docker://mrcieu/genehackman:${GENEHACKMAN_VERSION}}" + +# mrcieu/genehackman is linux/amd64 only. On ARM (Apple Silicon), Apptainer defaults to arm64 and +# fails with: no child with platform linux/arm64 in index. Force amd64 for the OCI/docker pull. +SINGULARITY_BUILD_ARCH_ARGS=() +if [[ "${GENEHACKMAN_SINGULARITY_NO_ARCH:-}" != "1" && "${GENEHACKMAN_SINGULARITY_NO_ARCH:-}" != "true" ]]; then + case "$(uname -m)" in + aarch64|arm64) + SINGULARITY_BUILD_ARCH_ARGS=(--arch "${GENEHACKMAN_SINGULARITY_BUILD_ARCH:-amd64}") + ;; + esac +fi + if [[ ! -f "${SIF_PATH}" ]]; then echo "SIF file not found: ${SIF_PATH}" mkdir -p "${SIF_DIR}" - echo "Building container with singularity..." + echo "Building container with singularity from: ${SINGULARITY_DOCKER_REFERENCE}" + if [[ "${#SINGULARITY_BUILD_ARCH_ARGS[@]}" -gt 0 ]]; then + echo "(host is ARM: using singularity build ${SINGULARITY_BUILD_ARCH_ARGS[*]} for amd64 image)" + fi # Build next to the final path (same bind-mount as SIF_DIR). Do not use host /tmp: if singularity # runs inside Lima/VM, VM /tmp is not the Mac's /tmp, so a follow-up cp from /tmp would fail. SIF_BUILD_TMP="${SIF_PATH}.tmp.$$" - if singularity build "${SIF_BUILD_TMP}" "docker://mrcieu/genehackman:${GENEHACKMAN_VERSION}"; then + if singularity build "${SINGULARITY_BUILD_ARCH_ARGS[@]}" "${SIF_BUILD_TMP}" "${SINGULARITY_DOCKER_REFERENCE}"; then mv -f "${SIF_BUILD_TMP}" "${SIF_PATH}" else rm -f "${SIF_BUILD_TMP}" diff --git a/scripts/coloc_of_mr_results.R b/scripts/coloc_of_mr_results.R index 056dae6..caceb14 100644 --- a/scripts/coloc_of_mr_results.R +++ b/scripts/coloc_of_mr_results.R @@ -1,20 +1,25 @@ source("load.R") library(argparser, quietly = TRUE) -parser <- arg_parser("Perform a coloc analysis (and create a miami plot) for the coloc analysis") +parser <- arg_parser("Run BF-BF colocalization on significant MR results using finemapped GWAS data") -parser <- add_argument(parser, "--mr_results_filename", help = "filename of first GWAS", type = "character" ) -parser <- add_argument(parser, "--gwas_filename", - help = "filename of first GWAS", +parser <- add_argument(parser, "--mr_results_filename", help = "MR results filename", type = "character") +parser <- add_argument(parser, "--finemap_dir", + help = "Directory containing finemapped GWAS locus files", type = "character" ) parser <- add_argument(parser, "--N", - help = "Sample size of GWAS", + help = "Default sample size for QTL data", type = "numeric", default = 0 ) +parser <- add_argument(parser, "--study_type", + help = "Study type for LBF conversion (continuous or categorical)", + type = "character", + default = "continuous" +) parser <- add_argument(parser, "--exposures", - help = "List of exposures to perform coloc on, if none provided, runs on exposures with lowest p-vals", + help = "List of exposures to perform coloc on", type = "character", default = "", nargs = Inf @@ -25,7 +30,7 @@ parser <- add_argument(parser, "--dataset", type = "character" ) parser <- add_argument(parser, "--output_file", - help = "filename of coloc analysis to save", + help = "Output filename for coloc results", type = "character" ) @@ -33,4 +38,12 @@ args <- parse_args(parser) create_dir_for_files(args$output_file, paste0(user_results_dir, "/plots")) exposures <- split_string_into_vector(args$exposures) -run_coloc_on_qtl_mr_results(args$mr_results_filename, args$gwas_filename, args$dataset, exposures, output_file=args$output_file, default_n=args$N) +run_coloc_on_qtl_mr_results( + mr_results_file = args$mr_results_filename, + finemap_dir = args$finemap_dir, + qtl_dataset = args$dataset, + study_type = args$study_type, + exposures = exposures, + default_n = args$N, + output_file = args$output_file +) diff --git a/scripts/run_coloc.R b/scripts/run_coloc.R new file mode 100644 index 0000000..9ce4710 --- /dev/null +++ b/scripts/run_coloc.R @@ -0,0 +1,60 @@ +source("load.R") +library(argparser, quietly = TRUE) + +parser <- arg_parser("Run BF-BF colocalization on finemapped GWAS results") + +parser <- add_argument(parser, "--finemap_dirs", + help = "Space-separated list of finemap output directories", + type = "character", + nargs = Inf +) +parser <- add_argument(parser, "--trait_names", + help = "Space-separated trait labels (same order as finemap_dirs)", + type = "character", + nargs = Inf +) +parser <- add_argument(parser, "--overlap_kb", + help = "Distance in kb to define overlapping signals (default 1000 = ±1 Mb)", + type = "numeric", + default = 1000 +) +parser <- add_argument(parser, "--p1", + help = "Prior: SNP associated with trait 1", + type = "numeric", + default = 1e-4 +) +parser <- add_argument(parser, "--p2", + help = "Prior: SNP associated with trait 2", + type = "numeric", + default = 1e-4 +) +parser <- add_argument(parser, "--p12", + help = "Prior: SNP associated with both traits", + type = "numeric", + default = 5e-6 +) +parser <- add_argument(parser, "--output_file", + help = "Output file for coloc results", + type = "character" +) + +args <- parse_args(parser) + +finemap_dirs <- split_string_into_vector(args$finemap_dirs) +trait_names <- split_string_into_vector(args$trait_names) + +if (length(trait_names) != length(finemap_dirs)) { + stop("Number of trait names must match number of finemap directories") +} +names(finemap_dirs) <- trait_names + +create_dir_for_files(args$output_file) + +run_bf_bf_coloc( + finemap_dirs = finemap_dirs, + overlap_kb = args$overlap_kb, + p1 = args$p1, + p2 = args$p2, + p12 = args$p12, + output_file = args$output_file +) diff --git a/scripts/run_finemap.R b/scripts/run_finemap.R index 58bd768..bf71022 100644 --- a/scripts/run_finemap.R +++ b/scripts/run_finemap.R @@ -19,18 +19,14 @@ parser <- add_argument(parser, "--N", help = "GWAS sample size", type = "numeric" ) -parser <- add_argument(parser, "--output_lbf_file", - help = "Output file for per-SNP log Bayes factors across all loci", - type = "character" -) -parser <- add_argument(parser, "--output_credible_set_file", - help = "Output file for credible-set-filtered GWAS", +parser <- add_argument(parser, "--output_finemap_dir", + help = "Directory for one __finemap.tsv.gz per clumped locus", type = "character" ) parser <- add_argument(parser, "--window_kb", - help = "Fine-mapping window half-width in kb", + help = "Fine-mapping window half-width in kb (1000 = ±1 Mb)", type = "numeric", - default = 500 + default = 1000 ) parser <- add_argument(parser, "--max_causal", help = "Maximum number of causal signals per locus (SuSiE L)", @@ -49,14 +45,15 @@ parser <- add_argument(parser, "--min_abs_corr", ) args <- parse_args(parser) -create_dir_for_files(args$output_lbf_file, args$output_credible_set_file) +if (!dir.exists(args$output_finemap_dir)) { + dir.create(args$output_finemap_dir, recursive = TRUE) +} finemap_gwas(gwas = args$gwas_filename, clumped_file = args$clumped_filename, ancestry = args$ancestry, - n = args$N, - output_lbf_file = args$output_lbf_file, - output_credible_set_file = args$output_credible_set_file, + default_n = args$N, + output_finemap_dir = args$output_finemap_dir, window_kb = args$window_kb, max_causal = args$max_causal, coverage = args$coverage, diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index 927b1db..c6e72dd 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -48,17 +48,45 @@ All pipelines will standardise each GWAS before running the subsequent steps. T * Please also explicitly include `N` in the GWAS object, for use in the LDSC tool * `plink_clump_arguments`: arguments that are fed into the `plink --clump` call. [Options here](https://zzz.bwh.harvard.edu/plink/clump.shtml) +## finemap + +* `n GWAS objects`: See above for GWAS Object explanation. Each GWAS requires `ancestry`. +* `plink_clump_arguments`: arguments that are fed into the `plink --clump` call. [Options here](https://zzz.bwh.harvard.edu/plink/clump.shtml) +* `finemap` (optional): + * `window_kb`: half-width of fine-mapping window in kb (default 1000 = ±1 Mb) + * `max_causal`: maximum number of causal signals per locus (SuSiE L, default 10) + * `coverage`: credible set coverage (default 0.95) + * `min_abs_corr`: minimum absolute correlation for credible set purity (default 0.5) + +## coloc + +Runs standardisation, clumping, and fine-mapping on all input GWASes, then performs BF-BF colocalization (`coloc::coloc.bf_bf`) on any overlapping finemapped signals (within ±`overlap_kb` kb) across all trait pairs. + +* `n GWAS objects` (at least 2): See above for GWAS Object explanation. Each GWAS requires `ancestry`. +* `plink_clump_arguments`: arguments that are fed into the `plink --clump` call +* `finemap` (optional): same options as the finemap pipeline above +* `coloc` (optional): + * `overlap_kb`: distance in kb to define overlapping signals (default 1000 = ±1 Mb) + * `p1`: prior probability a SNP is associated with trait 1 (default 1e-4) + * `p2`: prior probability a SNP is associated with trait 2 (default 1e-4) + * `p12`: prior probability a SNP is associated with both traits (default 5e-6) + ## qtl_mr QTL summary statistics are read from **`QTL_DATA_DIR`** (see `.env` / `.env_example`): same tree as under `PIPELINE_DATA_DIR/qtl_datasets` when **`QTL_DATA_DIR`** is unset (`pqtl`, `metabrain`, `eqtlgen`, …). Point **`QTL_DATA_DIR`** at a separate mount or bucket path to download only the QTL data you need. -* `1 GWAS object`: See above for GWAS Object explanation +This pipeline now includes clumping and fine-mapping of the GWAS before MR. Colocalization uses finemapped LBF values from the GWAS and converts QTL Z-scores to LBF via `convert_z_to_lbf`, then runs `coloc::coloc.bf_bf`. + +* `1 GWAS object`: See above for GWAS Object explanation. Requires `ancestry`. +* `plink_clump_arguments`: arguments that are fed into the `plink --clump` call +* `finemap` (optional): same options as the finemap pipeline above * `qtl`: * `dataset`: see below for options * `subcategories`: list of subcategories to run, see below for options * If left empty, all subcategories will be run * `exposures`: list of specific exposures to be run. If left empty all exposures will be run in the dataset * example: `["IL6", "CCL2"]` + * `study_type`: study type for LBF conversion, either `continuous` (default) or `categorical` Available Datasets and Subcategories: * dataset: `metabrain` diff --git a/snakemake/coloc.smk b/snakemake/coloc.smk new file mode 100644 index 0000000..954a637 --- /dev/null +++ b/snakemake/coloc.smk @@ -0,0 +1,108 @@ +include: "util/common.smk" +singularity: get_docker_container() + +pipeline_name = "coloc" +pipeline = parse_pipeline_input(pipeline_includes_clumping=True) + +onstart: + print("##### Colocalization Pipeline #####") + +ancestries = list([g.ancestry for g in pipeline.gwases]) +validate_ancestries(ancestries) + +finemap_opts = getattr(pipeline, "finemap", SimpleNamespace()) +finemap_window_kb = getattr(finemap_opts, "window_kb", 1000) +finemap_max_causal = getattr(finemap_opts, "max_causal", 10) +finemap_coverage = getattr(finemap_opts, "coverage", 0.95) +finemap_min_abs_corr = getattr(finemap_opts, "min_abs_corr", 0.5) + +coloc_opts = getattr(pipeline, "coloc", SimpleNamespace()) +coloc_overlap_kb = getattr(coloc_opts, "overlap_kb", 1000) +coloc_p1 = getattr(coloc_opts, "p1", 1e-4) +coloc_p2 = getattr(coloc_opts, "p2", 1e-4) +coloc_p12 = getattr(coloc_opts, "p12", 5e-6) + +std_file_pattern = standardised_gwas_name("{prefix}") +finemap_dir_pattern = RESULTS_DIR + "finemap/{prefix}" + +for g in pipeline.gwases: + g.finemap_dir = RESULTS_DIR + "finemap/" + g.prefix + +trait_names = [g.prefix for g in pipeline.gwases] +finemap_dirs_str = " ".join([g.finemap_dir for g in pipeline.gwases]) +trait_names_str = " ".join(trait_names) + +coloc_results = RESULTS_DIR + "coloc/coloc_results.tsv" + +rule all: + input: + expand(std_file_pattern, prefix=trait_names), + expand(finemap_dir_pattern, prefix=trait_names), + coloc_results + +include: "rules/standardise_rule.smk" +include: "rules/clumping_rule.smk" + +rule run_finemapping: + resources: + mem = "16G", + time = "04:00:00" + input: + gwas = lambda wildcards: getattr(pipeline, wildcards.prefix).standardised_gwas, + clumped_file = lambda wildcards: getattr(pipeline, wildcards.prefix).clumped_file + params: + ancestry = lambda wildcards: getattr(pipeline, wildcards.prefix).ancestry, + n = lambda wildcards: getattr(pipeline, wildcards.prefix).N, + window_kb = finemap_window_kb, + max_causal = finemap_max_causal, + coverage = finemap_coverage, + min_abs_corr = finemap_min_abs_corr + output: + finemap_dir = directory(finemap_dir_pattern) + shell: + """ + Rscript run_finemap.R \ + --gwas_filename {input.gwas} \ + --clumped_filename {input.clumped_file} \ + --ancestry {params.ancestry} \ + --N {params.n} \ + --output_finemap_dir {output.finemap_dir} \ + --window_kb {params.window_kb} \ + --max_causal {params.max_causal} \ + --coverage {params.coverage} \ + --min_abs_corr {params.min_abs_corr} + """ + +rule run_coloc: + resources: + mem = "16G", + time = "02:00:00" + input: + finemap_dirs = expand(finemap_dir_pattern, prefix=trait_names) + params: + finemap_dirs = finemap_dirs_str, + trait_names = trait_names_str, + overlap_kb = coloc_overlap_kb, + p1 = coloc_p1, + p2 = coloc_p2, + p12 = coloc_p12 + output: + coloc_results = coloc_results + shell: + """ + Rscript run_coloc.R \ + --finemap_dirs {params.finemap_dirs} \ + --trait_names {params.trait_names} \ + --overlap_kb {params.overlap_kb} \ + --p1 {params.p1} \ + --p2 {params.p2} \ + --p12 {params.p12} \ + --output_file {output.coloc_results} + """ + +onsuccess: + files = [g.finemap_dir for g in pipeline.gwases] + [coloc_results] + onsuccess(pipeline_name, files, is_test=pipeline.is_test) + +onerror: + onerror_message(pipeline_name, is_test=pipeline.is_test) diff --git a/snakemake/finemap.smk b/snakemake/finemap.smk index 46804bf..8ac9d3b 100644 --- a/snakemake/finemap.smk +++ b/snakemake/finemap.smk @@ -11,24 +11,21 @@ ancestries = list([g.ancestry for g in pipeline.gwases]) validate_ancestries(ancestries) finemap_opts = getattr(pipeline, "finemap", SimpleNamespace()) -finemap_window_kb = getattr(finemap_opts, "window_kb", 500) +finemap_window_kb = getattr(finemap_opts, "window_kb", 1000) finemap_max_causal = getattr(finemap_opts, "max_causal", 10) finemap_coverage = getattr(finemap_opts, "coverage", 0.95) finemap_min_abs_corr = getattr(finemap_opts, "min_abs_corr", 0.5) std_file_pattern = standardised_gwas_name("{prefix}") -lbf_pattern = RESULTS_DIR + "finemap/{prefix}_lbf.tsv" -credible_set_pattern = RESULTS_DIR + "finemap/{prefix}_credible_sets.tsv.gz" +finemap_dir_pattern = RESULTS_DIR + "finemap/{prefix}" for g in pipeline.gwases: - g.lbf_file = RESULTS_DIR + "finemap/" + file_prefix(g.file) + "_lbf.tsv" - g.credible_set_file = RESULTS_DIR + "finemap/" + file_prefix(g.file) + "_credible_sets.tsv.gz" + g.finemap_dir = RESULTS_DIR + "finemap/" + g.prefix rule all: input: expand(std_file_pattern, prefix=[g.prefix for g in pipeline.gwases]), - [g.lbf_file for g in pipeline.gwases], - [g.credible_set_file for g in pipeline.gwases] + expand(finemap_dir_pattern, prefix=[g.prefix for g in pipeline.gwases]) include: "rules/standardise_rule.smk" include: "rules/clumping_rule.smk" @@ -48,8 +45,7 @@ rule run_finemapping: coverage = finemap_coverage, min_abs_corr = finemap_min_abs_corr output: - lbf = lbf_pattern, - credible_sets = credible_set_pattern + finemap_dir = directory(finemap_dir_pattern) shell: """ Rscript run_finemap.R \ @@ -57,8 +53,7 @@ rule run_finemapping: --clumped_filename {input.clumped_file} \ --ancestry {params.ancestry} \ --N {params.n} \ - --output_lbf_file {output.lbf} \ - --output_credible_set_file {output.credible_sets} \ + --output_finemap_dir {output.finemap_dir} \ --window_kb {params.window_kb} \ --max_causal {params.max_causal} \ --coverage {params.coverage} \ @@ -66,7 +61,7 @@ rule run_finemapping: """ onsuccess: - files = [g.lbf_file for g in pipeline.gwases] + [g.credible_set_file for g in pipeline.gwases] + files = [g.finemap_dir for g in pipeline.gwases] onsuccess(pipeline_name, files, is_test=pipeline.is_test) onerror: diff --git a/snakemake/input_templates/coloc.json b/snakemake/input_templates/coloc.json new file mode 100644 index 0000000..53ac779 --- /dev/null +++ b/snakemake/input_templates/coloc.json @@ -0,0 +1,30 @@ +{ + "gwases": [ + { + "file": "", + "columns": {}, + "N": 0, + "ancestry": "EUR" + }, + { + "file": "", + "columns": {}, + "N": 0, + "ancestry": "EUR" + } + ], + "plink_clump_arguments": "--clump-p1 5e-8 --clump-r2 0.01 --clump-kb 1000", + "finemap": { + "window_kb": 1000, + "max_causal": 10, + "coverage": 0.95, + "min_abs_corr": 0.5 + }, + "coloc": { + "overlap_kb": 1000, + "p1": 1e-4, + "p2": 1e-4, + "p12": 5e-6 + }, + "populate_rsid": false +} diff --git a/snakemake/input_templates/finemap.json b/snakemake/input_templates/finemap.json index 3281a58..c3fd252 100644 --- a/snakemake/input_templates/finemap.json +++ b/snakemake/input_templates/finemap.json @@ -9,7 +9,7 @@ ], "plink_clump_arguments": "--clump-p1 5e-8 --clump-r2 0.01 --clump-kb 1000", "finemap": { - "window_kb": 500, + "window_kb": 1000, "max_causal": 10, "coverage": 0.95, "min_abs_corr": 0.5 diff --git a/snakemake/input_templates/qtl_mr.json b/snakemake/input_templates/qtl_mr.json index a600e15..d8b9ab2 100644 --- a/snakemake/input_templates/qtl_mr.json +++ b/snakemake/input_templates/qtl_mr.json @@ -7,10 +7,18 @@ "N": 0 } ], + "plink_clump_arguments": "--clump-p1 5e-8 --clump-r2 0.01 --clump-kb 1000", + "finemap": { + "window_kb": 1000, + "max_causal": 10, + "coverage": 0.95, + "min_abs_corr": 0.5 + }, "qtl": { "dataset": "", "subcategory": "", - "exposures": [] + "exposures": [], + "study_type": "continuous" }, "populate_rsid": false } diff --git a/snakemake/qtl_mr.smk b/snakemake/qtl_mr.smk index f3034fb..386e208 100644 --- a/snakemake/qtl_mr.smk +++ b/snakemake/qtl_mr.smk @@ -2,17 +2,32 @@ include: "util/common.smk" container: get_docker_container() pipeline_name = "qtl_mr" -pipeline = parse_pipeline_input() +pipeline = parse_pipeline_input(pipeline_includes_clumping=True) gwas = pipeline.gwases[0] onstart: print("##### QTL MR Pipeline #####") +ancestries = list([g.ancestry for g in pipeline.gwases]) +validate_ancestries(ancestries) + +finemap_opts = getattr(pipeline, "finemap", SimpleNamespace()) +finemap_window_kb = getattr(finemap_opts, "window_kb", 1000) +finemap_max_causal = getattr(finemap_opts, "max_causal", 10) +finemap_coverage = getattr(finemap_opts, "coverage", 0.95) +finemap_min_abs_corr = getattr(finemap_opts, "min_abs_corr", 0.5) + +qtl_opts = getattr(pipeline, "qtl", SimpleNamespace()) +study_type = getattr(qtl_opts, "study_type", "continuous") + qtl_name = pipeline.qtl.dataset + "_" + pipeline.qtl.subcategory if not hasattr(pipeline.qtl, "exposures"): pipeline.qtl.exposures = [] exposures_string = " ".join(pipeline.qtl.exposures) gwas_prefix = file_prefix(gwas.file) +gwas.finemap_dir = RESULTS_DIR + "finemap/" + gwas_prefix +finemap_dir_pattern = RESULTS_DIR + "finemap/{prefix}" + mr_results = RESULTS_DIR + "mr/" + gwas_prefix + "_" + qtl_name + ".tsv.gz" coloc_results = RESULTS_DIR + "mr/coloc_" + gwas_prefix + "_" + qtl_name + ".tsv" volcano_plot = RESULTS_DIR + "plots/volcano_plot_" + gwas_prefix + "_" + qtl_name + ".png" @@ -21,9 +36,40 @@ results_file = RESULTS_DIR + "mr/result_" + qtl_name + "_" + gwas_prefix + ".ht std_file_pattern = standardised_gwas_name("{prefix}") rule all: - input: gwas.standardised_gwas, mr_results, volcano_plot, coloc_results, results_file + input: gwas.standardised_gwas, gwas.finemap_dir, mr_results, volcano_plot, coloc_results, results_file include: "rules/standardise_rule.smk" +include: "rules/clumping_rule.smk" + +rule run_finemapping: + resources: + mem = "16G", + time = "04:00:00" + input: + gwas = lambda wildcards: getattr(pipeline, wildcards.prefix).standardised_gwas, + clumped_file = lambda wildcards: getattr(pipeline, wildcards.prefix).clumped_file + params: + ancestry = lambda wildcards: getattr(pipeline, wildcards.prefix).ancestry, + n = lambda wildcards: getattr(pipeline, wildcards.prefix).N, + window_kb = finemap_window_kb, + max_causal = finemap_max_causal, + coverage = finemap_coverage, + min_abs_corr = finemap_min_abs_corr + output: + finemap_dir = directory(finemap_dir_pattern) + shell: + """ + Rscript run_finemap.R \ + --gwas_filename {input.gwas} \ + --clumped_filename {input.clumped_file} \ + --ancestry {params.ancestry} \ + --N {params.n} \ + --output_finemap_dir {output.finemap_dir} \ + --window_kb {params.window_kb} \ + --max_causal {params.max_causal} \ + --coverage {params.coverage} \ + --min_abs_corr {params.min_abs_corr} + """ rule run_mr_against_qtl_datasets: threads: 4 @@ -64,24 +110,27 @@ rule run_coloc_analysis_of_significant_mr_results: resources: mem = "16G" input: - mr_results = mr_results + mr_results = mr_results, + finemap_dir = gwas.finemap_dir params: - gwas = gwas.standardised_gwas, N = gwas.N, + study_type = study_type, exposures = f"--exposures {exposures_string}" if exposures_string else "" output: coloc_results shell: """ Rscript coloc_of_mr_results.R \ --mr_results_filename {input.mr_results} \ - --gwas_filename {params.gwas} \ + --finemap_dir {input.finemap_dir} \ --N {params.N} \ + --study_type {params.study_type} \ --dataset {pipeline.qtl.dataset} {params.exposures} \ - --output_file {output} + --output_file {output} """ files_created = { "gwas": gwas.standardised_gwas, + "finemap_dir": gwas.finemap_dir, "mr_results": mr_results, "volcano_plot": volcano_plot, "coloc_results": coloc_results diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index e08c7f8..ce5aa2a 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -64,6 +64,14 @@ def parse_pipeline_input(pipeline_includes_clumping=False): if not hasattr(fm, "coverage"): fm.coverage = 0.95 if not hasattr(fm, "min_abs_corr"): fm.min_abs_corr = 0.5 + if not hasattr(pipeline, "coloc"): + pipeline.coloc = SimpleNamespace() + cl = pipeline.coloc + if not hasattr(cl, "overlap_kb"): cl.overlap_kb = 1000 + if not hasattr(cl, "p1"): cl.p1 = 1e-4 + if not hasattr(cl, "p2"): cl.p2 = 1e-4 + if not hasattr(cl, "p12"): cl.p12 = 5e-6 + for g in pipeline.gwases: if not hasattr(g, "N"): g.N = 0 if not hasattr(g, "columns"): g.columns = SimpleNamespace() diff --git a/tests/e2e_tests/run_test_pipelines.sh b/tests/e2e_tests/run_test_pipelines.sh index bf5a06a..bc20821 100755 --- a/tests/e2e_tests/run_test_pipelines.sh +++ b/tests/e2e_tests/run_test_pipelines.sh @@ -4,6 +4,8 @@ set -e ./run_pipeline.sh snakemake/standardise_gwas.smk tests/testthat/data/snakemake_inputs/standardise_gwas.json -F ./run_pipeline.sh snakemake/disease_progression.smk tests/testthat/data/snakemake_inputs/disease_progression.json -F ./run_pipeline.sh snakemake/compare_gwases.smk tests/testthat/data/snakemake_inputs/compare_gwases.json -F +./run_pipeline.sh snakemake/finemap.smk tests/testthat/data/snakemake_inputs/finemap.json -F +./run_pipeline.sh snakemake/coloc.smk tests/testthat/data/snakemake_inputs/coloc.json -F if [[ -n "${QTL_DATASETS}" ]]; then ./run_pipeline.sh snakemake/qtl_mr.smk tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json -F diff --git a/tests/testthat/data/snakemake_inputs/coloc.json b/tests/testthat/data/snakemake_inputs/coloc.json new file mode 100644 index 0000000..69bda64 --- /dev/null +++ b/tests/testthat/data/snakemake_inputs/coloc.json @@ -0,0 +1,18 @@ +{ + "gwases": [ + { + "file": "tests/testthat/data/test_data_small.tsv.gz", + "columns": {}, + "ancestry": "EUR" + }, + { + "file": "tests/testthat/data/test_data_small_hg38.tsv.gz", + "columns": {}, + "build": "GRCh38", + "ancestry": "EUR" + } + ], + "plink_clump_arguments": "--clump-p1 0.00000005", + "populate_rsid": false, + "is_test": true +} diff --git a/tests/testthat/data/snakemake_inputs/finemap.json b/tests/testthat/data/snakemake_inputs/finemap.json new file mode 100644 index 0000000..69bda64 --- /dev/null +++ b/tests/testthat/data/snakemake_inputs/finemap.json @@ -0,0 +1,18 @@ +{ + "gwases": [ + { + "file": "tests/testthat/data/test_data_small.tsv.gz", + "columns": {}, + "ancestry": "EUR" + }, + { + "file": "tests/testthat/data/test_data_small_hg38.tsv.gz", + "columns": {}, + "build": "GRCh38", + "ancestry": "EUR" + } + ], + "plink_clump_arguments": "--clump-p1 0.00000005", + "populate_rsid": false, + "is_test": true +} diff --git a/tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.json b/tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.json index 8868001..c3867b9 100644 --- a/tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.json +++ b/tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.json @@ -6,9 +6,11 @@ "ancestry": "EUR" } ], + "plink_clump_arguments": "--clump-p1 0.00000005", "qtl": { "dataset": "eqtlgen", "subcategory": "cis" }, + "populate_rsid": false, "is_test": true } diff --git a/tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json b/tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json index 173674e..a4d5075 100644 --- a/tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json +++ b/tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json @@ -6,10 +6,12 @@ "ancestry": "EUR" } ], + "plink_clump_arguments": "--clump-p1 0.00000005", "qtl": { "dataset": "metabrain", "subcategory": "cortex", "exposures": [] }, + "populate_rsid": false, "is_test": true } diff --git a/tests/testthat/test_finemap.R b/tests/testthat/test_finemap.R index ca2eb9b..40893a9 100644 --- a/tests/testthat/test_finemap.R +++ b/tests/testthat/test_finemap.R @@ -1,4 +1,54 @@ -test_that("finemap.finemap_gwas writes empty outputs when clump has no rows", { +test_that("finemap.resolve_finemap_sample_size prefers pipeline N when valid", { + g <- tibble::tibble(SNP = "x", N = 9999) + expect_equal(GeneHackman:::resolve_finemap_sample_size(50000, g), 50000) +}) + +test_that("finemap.resolve_finemap_sample_size falls back to GWAS N column", { + g <- tibble::tibble(SNP = "x", N = c(40000, 40000, 41000)) + expect_equal(GeneHackman:::resolve_finemap_sample_size(0, g), 40000) + expect_equal(GeneHackman:::resolve_finemap_sample_size(NA_real_, g), 40000) +}) + +test_that("finemap.resolve_finemap_sample_size uses N_CASE + N_CONTROL", { + g <- tibble::tibble( + SNP = "x", + N_CASE = 30000, + N_CONTROL = 70000 + ) + expect_equal(GeneHackman:::resolve_finemap_sample_size(0, g), 100000) +}) + +test_that("finemap.finemap_gwas stops when sample size cannot be resolved", { + gwas <- tibble::tibble( + SNP = c("1:100000_A_G", "1:100150_T_C"), + CHR = c(1, 1), + BP = c(100000, 100150), + RSID = c("rs1", "rs2"), + BETA = c(0.1, 0.05), + SE = c(0.02, 0.02), + P = c(0.01, 0.05), + EA = c("A", "T"), + OA = c("G", "C"), + EAF = c(0.3, 0.4) + ) + gwas_file <- tempfile(fileext = ".tsv.gz") + vroom::vroom_write(gwas, gwas_file) + clump_file <- tempfile(fileext = ".clumped") + writeLines(c("SNP\tCHR\tBP", "rs1\t1\t100000"), clump_file) + out_dir <- tempfile("finemap_") + expect_error( + finemap_gwas( + gwas_file, + clump_file, + ancestry = "EUR", + default_n = NA, + output_finemap_dir = out_dir + ), + "Fine-mapping requires GWAS sample size" + ) +}) + +test_that("finemap.finemap_gwas writes no locus files when clump has no rows", { gwas <- tibble::tibble( SNP = c("1:100000_A_G", "1:100150_T_C"), CHR = c(1, 1), @@ -17,23 +67,19 @@ test_that("finemap.finemap_gwas writes empty outputs when clump has no rows", { clump_file <- tempfile(fileext = ".clumped") writeLines("SNP\tCHR\tBP", clump_file) - out_lbf <- tempfile(fileext = ".tsv.gz") - out_cs <- tempfile(fileext = ".tsv.gz") + out_dir <- tempfile("finemap_") + dir.create(out_dir) res <- finemap_gwas( gwas_file, clump_file, ancestry = "EUR", - n = 10000L, - output_lbf_file = out_lbf, - output_credible_set_file = out_cs + default_n = 10000L, + output_finemap_dir = out_dir ) expect_equal(nrow(res), 0) - lbf_read <- vroom::vroom(out_lbf, show_col_types = FALSE) - expect_equal(nrow(lbf_read), 0) - cs_read <- vroom::vroom(out_cs, show_col_types = FALSE) - expect_equal(nrow(cs_read), 0) + expect_equal(length(list.files(out_dir, pattern = "_finemap\\.tsv\\.gz$")), 0) }) test_that("finemap.compute_ld_matrix returns NULL when plink fails", { @@ -46,7 +92,7 @@ test_that("finemap.compute_ld_matrix returns NULL when plink fails", { expect_null(compute_ld_matrix(c("rs1", "rs2"), 1L, "EUR")) }) -test_that("finemap.run_susie_for_locus maps LBF and credible sets from fitted object", { +test_that("finemap.run_susie_for_locus maps per-CS LBF_k and credible sets", { local_mocked_bindings( run_susie_rss_impl = function(z, R, n, L, coverage, min_abs_corr, verbose = FALSE) { p <- length(z) @@ -75,9 +121,8 @@ test_that("finemap.run_susie_for_locus maps LBF and credible sets from fitted ob ) expect_equal(nrow(out), 2) - expect_equal(out$LBF, c(0.75, 1.25)) + expect_equal(out$LBF_1, c(0.5, 0.5)) expect_equal(out$CS, c(1L, 1L)) - expect_true(all(out$LEAD_SNP == "rs1")) }) test_that("finemap.finemap_gwas runs end-to-end with mocked LD and SuSiE", { @@ -113,28 +158,29 @@ test_that("finemap.finemap_gwas runs end-to-end with mocked LD and SuSiE", { clump_file <- tempfile(fileext = ".clumped") writeLines(c("SNP\tCHR\tBP", "rs1\t1\t100000"), clump_file) - out_lbf <- tempfile(fileext = ".tsv.gz") - out_cs <- tempfile(fileext = ".tsv.gz") + out_dir <- tempfile("finemap_") + dir.create(out_dir) res <- finemap_gwas( gwas_file, clump_file, ancestry = "EUR", - n = 10000L, - output_lbf_file = out_lbf, - output_credible_set_file = out_cs + default_n = 10000L, + output_finemap_dir = out_dir, + window_kb = 500 ) expect_equal(nrow(res), 2) expect_setequal(res$RSID, c("rs1", "rs2")) expect_true(all(res$CS == 1L)) - lbf_read <- vroom::vroom(out_lbf, show_col_types = FALSE) - expect_equal(nrow(lbf_read), 2) - - cs_read <- vroom::vroom(out_cs, show_col_types = FALSE) - expect_equal(nrow(cs_read), 2) - expect_setequal(cs_read$SNP, gwas$SNP) + locus_file <- file.path(out_dir, "1_100000_finemap.tsv.gz") + expect_true(file.exists(locus_file)) + locus_read <- vroom::vroom(locus_file, show_col_types = FALSE) + expect_equal(nrow(locus_read), 2) + expect_true("LBF_1" %in% names(locus_read)) + expect_setequal(locus_read$SNP, gwas$SNP) + expect_false(any(grepl("^LEAD_", names(locus_read)))) }) test_that("finemap.run_susie_for_locus returns empty tibble when SuSiE errors", { From ba5e62f45f579cd808908f5991f773567aa83bc8 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 27 Apr 2026 17:39:44 +0100 Subject: [PATCH 09/85] Adding and fixing R tests --- R/finemap.R | 19 ++- tests/testthat/test_coloc_bf.R | 212 +++++++++++++++++++++++++++++++++ tests/testthat/test_finemap.R | 29 ++--- 3 files changed, 238 insertions(+), 22 deletions(-) create mode 100644 tests/testthat/test_coloc_bf.R diff --git a/R/finemap.R b/R/finemap.R index f7f6ff9..e305719 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -97,6 +97,9 @@ finemap_gwas <- function(gwas, z_scores <- locus_gwas$BETA / locus_gwas$SE n <- `if`("N" %in% colnames(locus_gwas) && !is.na(as.numeric(locus_gwas$N[1])), as.numeric(locus_gwas$N[1]), default_n) + if (is.na(n)) { + stop("Fine-mapping requires GWAS sample size") + } locus_lbf <- run_susie_for_locus( z_scores = z_scores, @@ -127,7 +130,10 @@ finemap_gwas <- function(gwas, ) out_gwas <- dplyr::left_join(out_gwas, finemap_join, by = "RSID") - lead_chr_bp <- paste0(lead_chr, "_", lead_bp) + lead_chr_bp <- paste0( + lead_chr, "_", + format(as.numeric(lead_bp), scientific = FALSE, trim = TRUE, digits = 20) + ) safe_locus <- gsub("[^A-Za-z0-9._-]+", "_", lead_chr_bp) out_file <- file.path(output_finemap_dir, paste0(safe_locus, "_finemap.tsv.gz")) vroom::vroom_write(out_gwas, out_file) @@ -208,6 +214,15 @@ compute_ld_matrix <- function(rsids, chr, ancestry) { } +#' Wrapper so tests can mock SuSiE with \code{testthat::local_mocked_bindings()}. +#' @keywords internal +run_susie_rss_impl <- function(z, R, n, L, coverage, min_abs_corr, verbose = FALSE) { + susieR::susie_rss( + z = z, R = R, n = n, L = L, coverage = coverage, min_abs_corr = min_abs_corr, verbose = verbose + ) +} + + #' Build per-credible-set LBF columns (\code{LBF_1}, \code{LBF_2}, ...) from a SuSiE fit. #' @keywords internal susie_lbf_columns <- function(fitted, p) { @@ -258,7 +273,7 @@ run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, p <- length(z_scores) fitted <- tryCatch( - susieR::susie_rss( + run_susie_rss_impl( z = z_scores, R = ld_matrix, n = n, diff --git a/tests/testthat/test_coloc_bf.R b/tests/testthat/test_coloc_bf.R new file mode 100644 index 0000000..8326d70 --- /dev/null +++ b/tests/testthat/test_coloc_bf.R @@ -0,0 +1,212 @@ +# Tests for R/coloc_bf.R (BF–BF colocalization on finemapped loci) + +min_locus_tbl <- function(snps, lbf1, lbf2 = NULL, cs = 1L) { + n <- length(snps) + if (is.null(lbf2)) { + lbf2 <- rep(0.1, n) + } + tibble::tibble( + SNP = snps, + CS = rep(cs, length.out = n), + LBF_1 = lbf1, + LBF_2 = lbf2 + ) +} + +test_that("coloc_bf.build_lbf_matrix is rows=signals, cols=SNPs", { + d <- min_locus_tbl( + snps = c("1:10_A_G", "1:20_T_C"), + lbf1 = c(0.5, 0.25), + lbf2 = c(0.1, 0.2) + ) + m <- GeneHackman:::build_lbf_matrix(d, c("LBF_1", "LBF_2")) + expect_equal(dim(m), c(2L, 2L)) + expect_equal(colnames(m), d$SNP) + expect_equal(rownames(m), c("LBF_1", "LBF_2")) + expect_equal(as.numeric(m[1, ]), c(0.5, 0.25)) +}) + +test_that("coloc_bf.build_lbf_matrix returns NULL without LBF columns", { + d <- tibble::tibble(SNP = "a", CS = 1L) + expect_null(GeneHackman:::build_lbf_matrix(d, c("LBF_1"))) +}) + +test_that("coloc_bf.build_lbf_matrix returns NULL when all CS are NA", { + d <- tibble::tibble( + SNP = c("s1", "s2"), + CS = c(NA_integer_, NA_integer_), + LBF_1 = c(1, 1) + ) + expect_null(GeneHackman:::build_lbf_matrix(d, "LBF_1")) +}) + +test_that("coloc_bf.parse_pairwise_bf_bf_result reads coloc summary rows", { + sm <- tibble::tibble( + nsnps = 3L, + hit1 = "LBF_1", + hit2 = "LBF_1", + PP.H0.abf = 0.1, + PP.H1.abf = 0.2, + PP.H2.abf = 0.15, + PP.H3.abf = 0.15, + PP.H4.abf = 0.4 + ) + out <- GeneHackman:::parse_pairwise_bf_bf_result( + list(summary = sm), + trait1 = "A", + trait2 = "B", + locus1 = "1_1", + locus2 = "1_1", + n_snps = 3L + ) + expect_equal(nrow(out), 1L) + expect_equal(out$trait1, "A") + expect_equal(out$PP.H4.abf, 0.4) +}) + +test_that("coloc_bf.parse_pairwise_bf_bf_result fallback when no summary", { + out <- GeneHackman:::parse_pairwise_bf_bf_result( + list(), + "A", "B", "1_1", "1_1", + n_snps = 5L + ) + expect_equal(nrow(out), 1L) + expect_equal(out$n_snps, 5L) + expect_true(is.na(out$PP.H4.abf)) +}) + +test_that("coloc_bf.load_all_finemap_loci loads LBF and chr/bp from filename", { + d1 <- min_locus_tbl(c("1:1_A_G", "1:2_T_C"), c(0.1, 0.2), c(0, 0)) + dir1 <- tempfile("fm_") + dir.create(dir1) + vroom::vroom_write( + d1, + file.path(dir1, "1_100000_finemap.tsv.gz") + ) + fd <- c(trait1 = dir1) + loci <- GeneHackman:::load_all_finemap_loci(fd) + expect_length(loci, 1L) + expect_length(loci$trait1, 1L) + expect_equal(loci$trait1[[1]]$chr, 1) + expect_equal(loci$trait1[[1]]$lead_bp, 100000) + expect_true("LBF_1" %in% loci$trait1[[1]]$lbf_cols) +}) + +test_that("coloc_bf.load_all_finemap_loci skips files without LBF columns", { + d <- tibble::tibble(SNP = "x", BETA = 1) + dir1 <- tempfile("fm_") + dir.create(dir1) + vroom::vroom_write(d, file.path(dir1, "1_100000_finemap.tsv.gz")) + expect_equal(length(GeneHackman:::load_all_finemap_loci(c(t = dir1))$t), 0L) +}) + +test_that("coloc_bf.coloc_bf_bf_for_locus_pair returns NULL for <2 shared SNPs", { + l1 <- list( + data = tibble::tibble(SNP = "a", LBF_1 = 1, CS = 1L), + lbf_cols = "LBF_1", + chr = 1L, + lead_bp = 100L, + locus_name = "1_100" + ) + l2 <- list( + data = tibble::tibble(SNP = "b", LBF_1 = 1, CS = 1L), + lbf_cols = "LBF_1", + chr = 1L, + lead_bp = 100L, + locus_name = "1_100" + ) + expect_null( + GeneHackman:::coloc_bf_bf_for_locus_pair(l1, l2, "A", "B", 1e-4, 1e-4, 5e-6) + ) +}) + +test_that("coloc_bf.coloc_bf_bf_for_locus_pair runs coloc on two aligned loci", { + snps <- c("1:1_A_G", "1:2_T_C", "1:3_G_T") + d <- min_locus_tbl( + snps = snps, + lbf1 = c(0.5, 0.3, 0.2), + lbf2 = c(0.1, 0.4, 0.1) + ) + l1 <- list( + data = d, + lbf_cols = c("LBF_1", "LBF_2"), + chr = 1L, + lead_bp = 100000L, + locus_name = "1_100000" + ) + l2 <- list( + data = d, + lbf_cols = c("LBF_1", "LBF_2"), + chr = 1L, + lead_bp = 100500L, + locus_name = "1_100500" + ) + res <- GeneHackman:::coloc_bf_bf_for_locus_pair( + l1, l2, "trait1", "trait2", 1e-4, 1e-4, 5e-6 + ) + expect_true(!is.null(res)) + expect_true(all(c("trait1", "trait2", "locus1", "PP.H4.abf") %in% names(res))) + expect_true(all(is.finite(res$PP.H0.abf + res$PP.H4.abf))) +}) + +write_pair_finemap_dirs <- function() { + snps <- c("1:1_A_G", "1:2_T_C", "1:3_G_T") + d <- min_locus_tbl( + snps = snps, + lbf1 = c(0.4, 0.35, 0.25), + lbf2 = c(0.2, 0.2, 0.2) + ) + dir1 <- tempfile("coc_a_") + dir2 <- tempfile("coc_b_") + dir.create(dir1) + dir.create(dir2) + vroom::vroom_write(d, file.path(dir1, "1_100000_finemap.tsv.gz")) + vroom::vroom_write(d, file.path(dir2, "1_100200_finemap.tsv.gz")) + c(a = dir1, b = dir2) +} + +test_that("coloc_bf.run_bf_bf_coloc needs two traits with loci", { + d <- tempfile("one_") + dir.create(d) + d2 <- min_locus_tbl(c("1:1_A_G", "1:2_T_C"), c(0.1, 0.2), c(0, 0)) + vroom::vroom_write(d2, file.path(d, "1_1_finemap.tsv.gz")) + out <- run_bf_bf_coloc(c(only = d), overlap_kb = 1000) + expect_equal(nrow(out), 0L) +}) + +test_that("coloc_bf.run_bf_bf_coloc pairs overlapping loci and writes file", { + dirs <- write_pair_finemap_dirs() + out_path <- tempfile(fileext = ".tsv") + res <- run_bf_bf_coloc( + finemap_dirs = dirs, + overlap_kb = 1000, + output_file = out_path + ) + expect_true(nrow(res) >= 1L) + expect_true(file.exists(out_path)) + disk <- vroom::vroom(out_path, show_col_types = FALSE) + expect_equal(nrow(disk), nrow(res)) + expect_equal(disk$trait1[1], "a") + expect_equal(disk$trait2[1], "b") +}) + +test_that("coloc_bf.run_bf_bf_coloc uses basename when finemap_dirs unnamed", { + dirs <- write_pair_finemap_dirs() + names(dirs) <- NULL + res <- run_bf_bf_coloc(dirs, overlap_kb = 1000) + expect_true(all(c(basename(dirs[1]), basename(dirs[2])) %in% c(res$trait1, res$trait2))) +}) + +test_that("coloc_bf.run_bf_bf_coloc finds no pair when loci on different chromosomes", { + snps <- c("1:1_A_G", "1:2_T_C", "1:3_G_T") + d1 <- min_locus_tbl(snps, c(0.4, 0.35, 0.25), c(0.2, 0.2, 0.2)) + d2 <- min_locus_tbl(snps, c(0.4, 0.35, 0.25), c(0.2, 0.2, 0.2)) + dir1 <- tempfile("coc_chr1_") + dir2 <- tempfile("coc_chr2_") + dir.create(dir1) + dir.create(dir2) + vroom::vroom_write(d1, file.path(dir1, "1_100000_finemap.tsv.gz")) + vroom::vroom_write(d2, file.path(dir2, "2_100000_finemap.tsv.gz")) + res <- run_bf_bf_coloc(c(x = dir1, y = dir2), overlap_kb = 1000) + expect_equal(nrow(res), 0L) +}) diff --git a/tests/testthat/test_finemap.R b/tests/testthat/test_finemap.R index 40893a9..54e6057 100644 --- a/tests/testthat/test_finemap.R +++ b/tests/testthat/test_finemap.R @@ -1,24 +1,13 @@ -test_that("finemap.resolve_finemap_sample_size prefers pipeline N when valid", { - g <- tibble::tibble(SNP = "x", N = 9999) - expect_equal(GeneHackman:::resolve_finemap_sample_size(50000, g), 50000) -}) - -test_that("finemap.resolve_finemap_sample_size falls back to GWAS N column", { - g <- tibble::tibble(SNP = "x", N = c(40000, 40000, 41000)) - expect_equal(GeneHackman:::resolve_finemap_sample_size(0, g), 40000) - expect_equal(GeneHackman:::resolve_finemap_sample_size(NA_real_, g), 40000) -}) - -test_that("finemap.resolve_finemap_sample_size uses N_CASE + N_CONTROL", { - g <- tibble::tibble( - SNP = "x", - N_CASE = 30000, - N_CONTROL = 70000 +test_that("finemap.finemap_gwas stops when sample size cannot be resolved", { + # Mock LD so we reach the N check; otherwise plink failure skips the locus + # before default_n is validated. + local_mocked_bindings( + compute_ld_matrix = function(rsids, chr, ancestry) { + n <- length(rsids) + list(matrix = diag(n), snps = rsids) + } ) - expect_equal(GeneHackman:::resolve_finemap_sample_size(0, g), 100000) -}) -test_that("finemap.finemap_gwas stops when sample size cannot be resolved", { gwas <- tibble::tibble( SNP = c("1:100000_A_G", "1:100150_T_C"), CHR = c(1, 1), @@ -44,7 +33,7 @@ test_that("finemap.finemap_gwas stops when sample size cannot be resolved", { default_n = NA, output_finemap_dir = out_dir ), - "Fine-mapping requires GWAS sample size" + regexp = "Fine-mapping requires GWAS sample size" ) }) From 50dda93297b6cef505f8e6bd13f440d1ac3a0803 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 27 Apr 2026 18:13:07 +0100 Subject: [PATCH 10/85] Resolving R path stuff --- .github/workflows/main.yml | 4 ++++ docker/Dockerfile | 2 ++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3d24854..fb301c1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,6 +12,10 @@ jobs: runs-on: ubuntu-latest container: image: mrcieu/genehackman:develop + # R packages from docker/requirements.R live in /usr/lib/R/site-library; without this, + # R only sees /opt/R/.../library and library(devtools) / devtools::check() fail. + env: + R_LIBS_SITE: /usr/lib/R/site-library steps: - uses: actions/checkout@v4 diff --git a/docker/Dockerfile b/docker/Dockerfile index a0d4614..92bda5d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -51,7 +51,9 @@ RUN /bin/condabin/conda tos accept --override-channels --channel https://repo.an # mv finemap_v1.4.2_x86_64 /usr/local/bin/finemap COPY docker/requirements.* docker/ +# requirements.R installs to /usr/lib/R/site-library; Posit R in /opt/R does not add that path by default RUN Rscript docker/requirements.R +ENV R_LIBS_SITE=/usr/lib/R/site-library RUN pip install -r docker/requirements.txt CMD ["/bin/bash"] From 2e2c32060ba0bc11a52ca37e5ef7f1d030f98ff4 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 27 Apr 2026 18:46:37 +0100 Subject: [PATCH 11/85] Fixing chrbp to rsid stuff --- .github/workflows/main.yml | 3 - DESCRIPTION | 7 +- NAMESPACE | 10 +- R/chrpos_to_rsid.R | 299 +++++++++++++++++++++++ R/data_conversions.R | 3 +- docker/Dockerfile | 1 - man/allele_complement_vec.Rd | 12 + man/build_bf_matrix.Rd | 12 + man/build_lbf_matrix.Rd | 12 + man/change_snp_identifiers.Rd | 38 +++ man/chrpos_to_rsid.Rd | 50 ++++ man/coloc_bf_bf_for_locus_pair.Rd | 12 + man/coloc_bf_bf_qtl_analysis.Rd | 42 ++++ man/compute_ld_matrix.Rd | 22 ++ man/conduct_collider_bias_analysis.Rd | 6 +- man/convert_z_score_to_beta.Rd | 13 - man/convert_z_to_lbf.Rd | 34 +++ man/find_finemap_locus_for_region.Rd | 12 + man/finemap_gwas.Rd | 48 ++++ man/load_all_finemap_loci.Rd | 12 + man/load_qtl_gwas_for_mr_result.Rd | 12 + man/map_ref_to_eaf.Rd | 12 + man/parse_bf_bf_result.Rd | 12 + man/parse_pairwise_bf_bf_result.Rd | 12 + man/populate_eaf_from_reference_panel.Rd | 19 ++ man/run_bf_bf_coloc.Rd | 38 +++ man/run_coloc_on_qtl_mr_results.Rd | 36 +++ man/run_susie_for_locus.Rd | 40 +++ man/run_susie_rss_impl.Rd | 12 + man/run_system.Rd | 18 ++ man/standardise_gwas.Rd | 14 +- man/susie_lbf_columns.Rd | 12 + 32 files changed, 856 insertions(+), 29 deletions(-) create mode 100644 R/chrpos_to_rsid.R create mode 100644 man/allele_complement_vec.Rd create mode 100644 man/build_bf_matrix.Rd create mode 100644 man/build_lbf_matrix.Rd create mode 100644 man/change_snp_identifiers.Rd create mode 100644 man/chrpos_to_rsid.Rd create mode 100644 man/coloc_bf_bf_for_locus_pair.Rd create mode 100644 man/coloc_bf_bf_qtl_analysis.Rd create mode 100644 man/compute_ld_matrix.Rd delete mode 100644 man/convert_z_score_to_beta.Rd create mode 100644 man/convert_z_to_lbf.Rd create mode 100644 man/find_finemap_locus_for_region.Rd create mode 100644 man/finemap_gwas.Rd create mode 100644 man/load_all_finemap_loci.Rd create mode 100644 man/load_qtl_gwas_for_mr_result.Rd create mode 100644 man/map_ref_to_eaf.Rd create mode 100644 man/parse_bf_bf_result.Rd create mode 100644 man/parse_pairwise_bf_bf_result.Rd create mode 100644 man/populate_eaf_from_reference_panel.Rd create mode 100644 man/run_bf_bf_coloc.Rd create mode 100644 man/run_coloc_on_qtl_mr_results.Rd create mode 100644 man/run_susie_for_locus.Rd create mode 100644 man/run_susie_rss_impl.Rd create mode 100644 man/run_system.Rd create mode 100644 man/susie_lbf_columns.Rd diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fb301c1..37bfde5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,11 +12,8 @@ jobs: runs-on: ubuntu-latest container: image: mrcieu/genehackman:develop - # R packages from docker/requirements.R live in /usr/lib/R/site-library; without this, - # R only sees /opt/R/.../library and library(devtools) / devtools::check() fail. env: R_LIBS_SITE: /usr/lib/R/site-library - steps: - uses: actions/checkout@v4 diff --git a/DESCRIPTION b/DESCRIPTION index ea444f2..3715be0 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -8,7 +8,7 @@ Description: What the package does (one paragraph). License: GPL (>= 3) Encoding: UTF-8 Roxygen: list(markdown = TRUE) -RoxygenNote: 7.2.3 +RoxygenNote: 7.3.2 Suggests: testthat (>= 3.0.0) Config/testthat/edition: 3 @@ -16,13 +16,15 @@ Imports: coloc, data.table, dplyr, + fst, future, - genepi.utils, + furrr, ggplot2, ggrepel, httr, MendelianRandomization, prettydoc, + progressr, qqman, rlang, R.utils, @@ -39,5 +41,4 @@ Remotes: github::MRCIEU/TwoSampleMR, github::MRCIEU/ieugwasr, github::Osmahmoud/SlopeHunter, - github::nicksunderland/genepi.utils@v0.0.5, github::yixuan/prettydoc diff --git a/NAMESPACE b/NAMESPACE index 928d27b..b82b9d7 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -2,6 +2,7 @@ export(calculate_f_statistic) export(change_snp_identifiers) +export(chrpos_to_rsid) export(coloc_analysis) export(coloc_bf_bf_qtl_analysis) export(conduct_collider_bias_analysis) @@ -33,7 +34,6 @@ import(coloc) import(data.table) import(dplyr) import(future) -import(genepi.utils) import(ggplot2) import(ggrepel) import(grDevices) @@ -50,4 +50,10 @@ import(tibble) import(tidyr) import(utils) import(vroom) -importFrom(utils,getFromNamespace) +importFrom(data.table,setkey) +importFrom(data.table,setkeyv) +importFrom(fst,fst) +importFrom(fst,read_fst) +importFrom(furrr,future_map) +importFrom(progressr,progressor) +importFrom(tibble,as_tibble) diff --git a/R/chrpos_to_rsid.R b/R/chrpos_to_rsid.R new file mode 100644 index 0000000..a43f834 --- /dev/null +++ b/R/chrpos_to_rsid.R @@ -0,0 +1,299 @@ +#' @title Chromosome & position data to variant RSID +#' +#' @param dt a data.frame like object, or file path, with at least columns (chrom, pos, ea, nea) +#' @param chr_col a string column name; chromosome position +#' @param pos_col a string column name; base position +#' @param ea_col a string column name; effect allele +#' @param nea_col a string column name; non effect allele +#' @param build a string, options: "b37_dbsnp156", "b38_dbsnp156" (corresponds to the appropriate data directory) +#' @param flip a string, options: "report", "allow", "no_flip" +#' @param alt_rsids a logical, whether to return additional alternate RSIDs +#' @param verbose a logical, runtime reporting +#' @param dbsnp_dir a string file path to the dbSNP .fst file directory - see setup documentation +#' @param parallel_cores an integer, the number of cores/workers to set up the `future::multisession` with +#' +#' @return a tibble with an RSID column, or (if `alt_rsids` is `TRUE`) a list with +#' tibbles: `data` and `alt_rsids` +#' @export +#' @importFrom data.table setkey setkeyv +#' @importFrom progressr progressor +#' @importFrom furrr future_map +#' @importFrom fst fst read_fst +#' @importFrom tibble as_tibble +#' +chrpos_to_rsid <- function(dt, + chr_col, + pos_col, + ea_col=NULL, + nea_col=NULL, + flip="allow", + alt_rsids=FALSE, + build="b37_dbsnp156", + dbsnp_dir = NA_character_, + parallel_cores = parallel::detectCores(), + verbose = TRUE) { + + #-- Checks ----------------------------------------------------------- + + # import / convert input + dt <- data.table::as.data.table(dt) + + stopifnot("`chr_col` must be a column name in `dt`" = chr_col %in% colnames(dt)) + stopifnot("`pos_col` must be a column name in `dt`" = pos_col %in% colnames(dt)) + stopifnot("`pos_col` must be numeric/integer type" = is.numeric(dt[,get(pos_col)])) + stopifnot("`ea_col` and `nea_col` must be either both provided or both NULL" = sum(c(is.null(nea_col),is.null(ea_col)))%in%c(0,2)) + if(all(!c(is.null(ea_col), is.null(nea_col)))) { + stopifnot("`ea_col` must be a column name in `dt`" = ea_col %in% colnames(dt)) + stopifnot("`nea_col` must be a column name in `dt`" = nea_col %in% colnames(dt)) + stopifnot("`ea_col` column must be character type" = is.character(dt[,get(ea_col)])) + stopifnot("`nea_col` column must be character type" = is.character(dt[,get(nea_col)])) + } + stopifnot("`chr_col` column must be character, integer, or numeric type" = is.character(dt[,get(chr_col)]) | + is.integer(dt[,get(chr_col)]) | + is.numeric(dt[,get(chr_col)])) + if(is.numeric(dt[,get(chr_col)])) { + stopifnot("`chr_col`, if numeric, must be whole numbers" = all(dt[,get(chr_col)] %% 1 == 0)) + } + stopifnot("`dbsnp_dir` must be a valid directory path" = dir.exists(dbsnp_dir)) + available_builds <- list.dirs(dbsnp_dir, full.names=FALSE)[-1] + build <- match.arg(build, available_builds) + flip <- match.arg(flip, c("report", "allow", "no_flip")) + + + #-- Processing --------------------------------------------------------- + + # data adjustments + # 1) remove chromosome 'Chr6' --> '6' and recode X/Y + # (?i) case-insensitive + # ^ at the beginning of the string + # (?:chr)? non-capture group, matches "chr" 0-1 times + # ([0-9XYMT]+) capture group //1, matches 1 or more occurances of group [0-9XYMT] + # \\1 replace with string found in capture group 1 + chr_col_orig = "chr_col_orig" + dt[, (chr_col_orig) := get(chr_col)] + dt[, (chr_col) := sub("(?i)^(?:chr)?([0-9XY]+)", toupper("\\1"), toupper(get(chr_col)))] + # 2) replace X[23,25] and Y[24] + dt[, (chr_col) := ifelse(get(chr_col) %in% c("X","25") ,"23",ifelse(get(chr_col)=="Y","24",get(chr_col)))] + # 3) delete the RSID column ahead of re-adding it, if it exists + if("RSID" %in% names(dt)) { + dt[, "RSID" := NULL] + } + + # split the dt into a list of data.tables, by chromosome + dts <- split(dt, by=chr_col) + + if(verbose) { + message(paste("RSID mapping...\nChromosomes to process: ", paste0(names(dts), collapse=", "))) + } + + # set up parallel processing and process each chromosome independently + future::plan(future::multisession, workers=parallel_cores) + progressr::with_progress({ + + # set up progress bar + p <- progressr::progressor(steps = 7*length(dts)) # going to update 7 times in the function + + # run each chromosome in parallel + # out[[1]] is the RSID data + # out[[2]] is the alternative RSID data (other RSIDs for the same CHR:BP:A1:A2) + out <- furrr::future_map(.x = dts, + .f = process_chromosome, + chr_col=chr_col, pos_col=pos_col, nea_col=nea_col, ea_col=ea_col, build=build, dbsnp_dir=dbsnp_dir, flip=flip, alt_rsids=alt_rsids, p=p, + .options=furrr::furrr_options(seed=TRUE)) + + }) + + # deal with alternative RSIDs if requested + if(alt_rsids) { + + out_data <- data.table::rbindlist( lapply(out, `[[`, 1) ) + out_alts <- data.table::rbindlist( lapply(out, `[[`, 2) ) + + } else { + out_data <- data.table::rbindlist(out) + } + + # put back the original chromosome column and remove the temporary one + out_data[, (chr_col) := chr_col_orig] + out_data[, chr_col_orig := NULL] + + # RSID to the front + data.table::setcolorder(out_data, c("RSID", names(out_data)[names(out_data) != "RSID"])) + + # report + msg <- paste0("RSID coverage ", round(100*sum(!is.na(out_data[["RSID"]]))/nrow(out_data), digits=2), "% (", sum(!is.na(out_data[["RSID"]])), "/", nrow(out_data), ")") + if(flip!="no_flip") { + msg <- paste0(msg, ", of which ", round(100*sum(out_data[["rsid_flip_match"]], na.rm=TRUE)/nrow(out_data), digits=2),"% (", sum(out_data[["rsid_flip_match"]], na.rm=TRUE), "/", nrow(out_data), ") where found flipping alleles") + } + message(msg) + + # remove flipping flag from output if not wanted + if(flip=="allow") { + out_data[, "rsid_flip_match" := NULL] + } + + # return as same type as input + # data.table::setattr(out_data, "orig_type", attr(dt,"orig_type")) + if (alt_rsids) { + return(list( + "data" = tibble::as_tibble(out_data), + "alt_rsids" = tibble::as_tibble(out_alts) + )) + } + return(tibble::as_tibble(out_data)) +} + + +# this function could be defined in the above function. However I took it out to avoid +# the gwas data.table being captured in each futures environment. See this discussion +# for the details: https://furrr.futureverse.org/articles/gotchas.html#function-environments-and-large-objects +process_chromosome <- function(chrom_dt, chr_col, pos_col, build, dbsnp_dir, flip, alt_rsids, p, nea_col=NULL, ea_col=NULL) { + + # silence RMDcheck warning + RSID = i.RSID = baseRSID = rsid_flip_match = REF = ALT = NULL + + # increment progress bar #1 + p() + + # the chromosome to process, a string value e.g. "1" + chrom <- chrom_dt[[1, chr_col]] + + # the dbSNP `.fst` file for this chromosome + dbSNP_build_dir <- file.path(dbsnp_dir, build) + dbSNP_path <- file.path(dbSNP_build_dir, paste0("chr", chrom, ".fst")) + stopifnot("Missing .fst reference file - is the dbSNP directory set correctly?" = file.exists(dbSNP_path)) + + # read just the dbSNP position data (an integer vector) (reduce amount of data read in) + dbSNP_pos <- fst::read_fst(dbSNP_path, "BP", as.data.table=TRUE) + + # increment progress bar #2 + p() + + # set as keys + data.table::setkey(dbSNP_pos, "BP") + data.table::setkeyv(chrom_dt, pos_col) + + # get the indices of the positions that are needed / also found in the input data + dbSNP_pos[chrom_dt, "found" := get(pos_col)] + row_idxs <- which(!is.na(dbSNP_pos[["found"]])) + rm(dbSNP_pos) + + # define whether to work with alleles, or just CHR:POS + alleles <- !(is.null(nea_col) & is.null(ea_col)) + + # define the key depending on which columns are provided + if(alleles) { + dbSNP_key <- c("CHR","BP","REF","ALT") + dbSNP_keyflip <- c("CHR","BP","ALT","REF") + data_key <- c(chr_col, pos_col, nea_col, ea_col) + } else { + dbSNP_key <- c("CHR","BP") + data_key <- c(chr_col, pos_col) + } + + # if matches found + if(length(row_idxs)>0) { + + # increment progress bar #3 + p() + + # create a fst object which allows row access without reading the whole file + dbSNP_fst <- fst::fst(dbSNP_path) + + # read the needed rows + dbSNP_data <- dbSNP_fst[row_idxs, c("RSID", dbSNP_key)] |> data.table::as.data.table() + + # increment progress bar #4 + p() + + if(alleles) { + # split the ALT column which can be a comma separate vector of alternative alleles + dbSNP_data[, "ALT" := lapply(.SD, strsplit, split=','), .SDcols="ALT"] + + # make data.table longer, one allele combination per row + dbSNP_data <- dbSNP_data[, lapply(.SD, unlist), by=1:nrow(dbSNP_data)] + dbSNP_data[, nrow := NULL] + + # recode as D/I if input data has D/I coding + if(any(grepl("^(D|I)$", chrom_dt[[nea_col]]))) { + dbSNP_data[, "ALT" := data.table::fcase(nchar(ALT)< nchar(REF), "D", + nchar(ALT)> nchar(REF), "I", + nchar(ALT)==nchar(REF), ALT)] + dbSNP_data[, "REF" := data.table::fcase(ALT=="D", "I", + ALT=="I", "D", + rep(TRUE, nrow(dbSNP_data)), REF)] + } + } + + # increment progress bar #5 + p() + + if(alt_rsids) { + # get the alt rsids (some rsids code for the same position, chr, alt, and ref...) + alt_rsid_data <- dbSNP_data[duplicated(dbSNP_data[, dbSNP_key, with = FALSE]),] + } + + # take unique (first rsid occurance) + dbSNP_data <- dbSNP_data[!duplicated(dbSNP_data[, dbSNP_key, with = FALSE]),] + + # set the keys to match expected way round + data.table::setkeyv(dbSNP_data, dbSNP_key) + data.table::setkeyv(chrom_dt, data_key) + chrom_dt[dbSNP_data, "RSID" := i.RSID] + + if(alt_rsids) { + # set key + data.table::setkeyv(alt_rsid_data, dbSNP_key) + + # map the chosen RSID to the alternative RSIDS + alt_rsid_data[chrom_dt, "baseRSID" := i.RSID] + } + + # increment progress bar #6 + p() + + # flip the alleles + if(flip!="no_flip" & alleles) { + + # set the keys to flipped alleles + data.table::setkeyv(dbSNP_data, dbSNP_keyflip) + + # add in flipped matches and a logical flag + chrom_dt[dbSNP_data, c("RSID", "rsid_flip_match") := list(i.RSID, TRUE)] + chrom_dt[!is.na(RSID) & is.na(rsid_flip_match), rsid_flip_match := FALSE] + + if(alt_rsids) { + # get any alt rsids that match flipped + data.table::setkeyv(alt_rsid_data, dbSNP_keyflip) + alt_rsid_data[chrom_dt, "baseRSID" := i.RSID] + } + + } + + # no matches found. skip all the processing but add the columns + } else { + p() + p() + p() + p() + chrom_dt[["RSID"]] <- NA_character_ + if(alt_rsids) alt_rsid_data <- data.table::copy(chrom_dt) + if(flip!="no_flip" & alleles) chrom_dt[, rsid_flip_match := NA] + if(alt_rsids) { + alt_rsid_data[, "baseRSID" := NA_character_] + alt_rsid_data <- alt_rsid_data[!is.na(baseRSID), ] + } + } + + # increment progress bar #7 + p() + + # return + if(alt_rsids) { + alt_rsid_data <- alt_rsid_data[is.na(baseRSID), ] + return(list("data"=chrom_dt, "alt_rsids"=alt_rsid_data)) + } else { + return(chrom_dt) + } + +} \ No newline at end of file diff --git a/R/data_conversions.R b/R/data_conversions.R index f6d56e2..85fd584 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -156,7 +156,6 @@ populate_partial_rsids <- function(gwas) { #' @import data.table #' @import tibble -#' @import genepi.utils #' @import future populate_full_rsids <- function(gwas) { build <- rsid_builds$GRCh37 @@ -164,7 +163,7 @@ populate_full_rsids <- function(gwas) { if (!build %in% rsid_builds) stop(paste("Error: invalid rsid build option:", build)) gwas <- data.table::as.data.table(gwas) - gwas <- genepi.utils::chrpos_to_rsid( + gwas <- chrpos_to_rsid( gwas, "CHR", "BP", diff --git a/docker/Dockerfile b/docker/Dockerfile index 92bda5d..2e7ed3d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -51,7 +51,6 @@ RUN /bin/condabin/conda tos accept --override-channels --channel https://repo.an # mv finemap_v1.4.2_x86_64 /usr/local/bin/finemap COPY docker/requirements.* docker/ -# requirements.R installs to /usr/lib/R/site-library; Posit R in /opt/R does not add that path by default RUN Rscript docker/requirements.R ENV R_LIBS_SITE=/usr/lib/R/site-library RUN pip install -r docker/requirements.txt diff --git a/man/allele_complement_vec.Rd b/man/allele_complement_vec.Rd new file mode 100644 index 0000000..a25f3a7 --- /dev/null +++ b/man/allele_complement_vec.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data_conversions.R +\name{allele_complement_vec} +\alias{allele_complement_vec} +\title{Allele complement for strand alignment (SNPs only).} +\usage{ +allele_complement_vec(alleles) +} +\description{ +Allele complement for strand alignment (SNPs only). +} +\keyword{internal} diff --git a/man/build_bf_matrix.Rd b/man/build_bf_matrix.Rd new file mode 100644 index 0000000..6b48a20 --- /dev/null +++ b/man/build_bf_matrix.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc.R +\name{build_bf_matrix} +\alias{build_bf_matrix} +\title{Build a named BF matrix from a finemapped locus data frame} +\usage{ +build_bf_matrix(locus_df, lbf_cols) +} +\description{ +Build a named BF matrix from a finemapped locus data frame +} +\keyword{internal} diff --git a/man/build_lbf_matrix.Rd b/man/build_lbf_matrix.Rd new file mode 100644 index 0000000..123979a --- /dev/null +++ b/man/build_lbf_matrix.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc_bf.R +\name{build_lbf_matrix} +\alias{build_lbf_matrix} +\title{Build a named BF matrix from locus data} +\usage{ +build_lbf_matrix(locus_df, lbf_cols) +} +\description{ +Build a named BF matrix from locus data +} +\keyword{internal} diff --git a/man/change_snp_identifiers.Rd b/man/change_snp_identifiers.Rd new file mode 100644 index 0000000..0713d70 --- /dev/null +++ b/man/change_snp_identifiers.Rd @@ -0,0 +1,38 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gwas_formatting.R +\name{change_snp_identifiers} +\alias{change_snp_identifiers} +\title{change_snp_identifiers: changes the SNP identifiers of a GWAS to the output reference build} +\usage{ +change_snp_identifiers( + gwas, + output_file, + populate_rsid_option = populate_rsid_options$none, + input_reference_build = reference_builds$GRCh37, + output_reference_build = reference_builds$GRCh37, + input_columns = "default" +) +} +\arguments{ +\item{gwas:}{filename of gwas to standardise or dataframe of gwas} + +\item{output_file:}{file to save standardised gwas} + +\item{populate_rsid_option:}{if you want RSID populated or not} + +\item{input_reference_build:}{reference build of CHR and BP of data. Defaults to GRCh37} + +\item{output_reference_build:}{reference build of CHR and BP of data. Defaults to GRCh37} + +\item{input_columns:}{column header map used for renaming GWAS: +can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} + +\item{output_columns:}{column header map used for renaming GWAS: +can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} +} +\value{ +modified gwas: saves new gwas in {output_file} if present +} +\description{ +change_snp_identifiers: changes the SNP identifiers of a GWAS to the output reference build +} diff --git a/man/chrpos_to_rsid.Rd b/man/chrpos_to_rsid.Rd new file mode 100644 index 0000000..1109bf5 --- /dev/null +++ b/man/chrpos_to_rsid.Rd @@ -0,0 +1,50 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/chrpos_to_rsid.R +\name{chrpos_to_rsid} +\alias{chrpos_to_rsid} +\title{Chromosome & position data to variant RSID} +\usage{ +chrpos_to_rsid( + dt, + chr_col, + pos_col, + ea_col = NULL, + nea_col = NULL, + flip = "allow", + alt_rsids = FALSE, + build = "b37_dbsnp156", + dbsnp_dir = NA_character_, + parallel_cores = parallel::detectCores(), + verbose = TRUE +) +} +\arguments{ +\item{dt}{a data.frame like object, or file path, with at least columns (chrom\if{html}{\out{}}, pos\if{html}{\out{}}, ea\if{html}{\out{}}, nea\if{html}{\out{}})} + +\item{chr_col}{a string column name; chromosome position} + +\item{pos_col}{a string column name; base position} + +\item{ea_col}{a string column name; effect allele} + +\item{nea_col}{a string column name; non effect allele} + +\item{flip}{a string, options: "report", "allow", "no_flip"} + +\item{alt_rsids}{a logical, whether to return additional alternate RSIDs} + +\item{build}{a string, options: "b37_dbsnp156", "b38_dbsnp156" (corresponds to the appropriate data directory)} + +\item{dbsnp_dir}{a string file path to the dbSNP .fst file directory - see setup documentation} + +\item{parallel_cores}{an integer, the number of cores/workers to set up the \code{future::multisession} with} + +\item{verbose}{a logical, runtime reporting} +} +\value{ +a tibble with an RSID column, or (if \code{alt_rsids} is \code{TRUE}) a list with +tibbles: \code{data} and \code{alt_rsids} +} +\description{ +Chromosome & position data to variant RSID +} diff --git a/man/coloc_bf_bf_for_locus_pair.Rd b/man/coloc_bf_bf_for_locus_pair.Rd new file mode 100644 index 0000000..c1c94cb --- /dev/null +++ b/man/coloc_bf_bf_for_locus_pair.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc_bf.R +\name{coloc_bf_bf_for_locus_pair} +\alias{coloc_bf_bf_for_locus_pair} +\title{Run coloc::coloc.bf_bf for one pair of overlapping loci} +\usage{ +coloc_bf_bf_for_locus_pair(l1, l2, trait1_name, trait2_name, p1, p2, p12) +} +\description{ +Run coloc::coloc.bf_bf for one pair of overlapping loci +} +\keyword{internal} diff --git a/man/coloc_bf_bf_qtl_analysis.Rd b/man/coloc_bf_bf_qtl_analysis.Rd new file mode 100644 index 0000000..ffb9ee3 --- /dev/null +++ b/man/coloc_bf_bf_qtl_analysis.Rd @@ -0,0 +1,42 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc.R +\name{coloc_bf_bf_qtl_analysis} +\alias{coloc_bf_bf_qtl_analysis} +\title{Run BF-BF coloc between a finemapped GWAS locus and QTL data} +\usage{ +coloc_bf_bf_qtl_analysis( + finemap_dir, + qtl_gwas, + exposure_name, + chr, + bp, + study_type = "continuous", + default_n = NA, + range_bp = 1e+06 +) +} +\arguments{ +\item{finemap_dir}{finemap output directory containing locus TSV files} + +\item{qtl_gwas}{QTL GWAS data frame} + +\item{exposure_name}{exposure label} + +\item{chr}{chromosome of the MR hit} + +\item{bp}{base position of the MR hit} + +\item{study_type}{study type for LBF conversion} + +\item{default_n}{default sample size} + +\item{range_bp}{overlap window in bp (default 1e6 = ±1Mb)} +} +\value{ +tibble with coloc results or NULL +} +\description{ +Finds the finemapped locus file covering the region around chr:bp, +extracts the GWAS LBF matrix, computes QTL LBF via \code{convert_z_to_lbf}, +and runs \code{coloc::coloc.bf_bf}. +} diff --git a/man/compute_ld_matrix.Rd b/man/compute_ld_matrix.Rd new file mode 100644 index 0000000..98a78f9 --- /dev/null +++ b/man/compute_ld_matrix.Rd @@ -0,0 +1,22 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/finemap.R +\name{compute_ld_matrix} +\alias{compute_ld_matrix} +\title{Compute LD correlation matrix from 1000 Genomes via plink} +\usage{ +compute_ld_matrix(rsids, chr, ancestry) +} +\arguments{ +\item{rsids}{character vector of RSIDs} + +\item{chr}{chromosome number} + +\item{ancestry}{ancestry code (EUR, EAS, etc.)} +} +\value{ +list with components \code{matrix} (numeric LD matrix) and +\code{snps} (character vector of SNP IDs in matrix order), or NULL on failure +} +\description{ +Compute LD correlation matrix from 1000 Genomes via plink +} diff --git a/man/conduct_collider_bias_analysis.Rd b/man/conduct_collider_bias_analysis.Rd index 6fdd486..a833e92 100644 --- a/man/conduct_collider_bias_analysis.Rd +++ b/man/conduct_collider_bias_analysis.Rd @@ -13,10 +13,12 @@ conduct_collider_bias_analysis( incidence_gwas, subsequent_gwas, clumped_snps_file, + adjustment_type, + adjustment_pval, collider_bias_results_file, harmonised_effects_result_file, - slopehunter_adjusted_file, - p_value_thresholds = c(0.1, 0.01, 0.001, 1e-05) + adjusted_output_file, + p_value_thresholds = thresholds ) } \value{ diff --git a/man/convert_z_score_to_beta.Rd b/man/convert_z_score_to_beta.Rd deleted file mode 100644 index 3b3ea4e..0000000 --- a/man/convert_z_score_to_beta.Rd +++ /dev/null @@ -1,13 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/gwas_formatting.R -\name{convert_z_score_to_beta} -\alias{convert_z_score_to_beta} -\title{convert_z_score_to_beta -taken from here: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8432599/ under "Correlation of trans-eQTL effects"} -\usage{ -convert_z_score_to_beta(gwas) -} -\description{ -convert_z_score_to_beta -taken from here: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8432599/ under "Correlation of trans-eQTL effects" -} diff --git a/man/convert_z_to_lbf.Rd b/man/convert_z_to_lbf.Rd new file mode 100644 index 0000000..fce59e6 --- /dev/null +++ b/man/convert_z_to_lbf.Rd @@ -0,0 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/util.R +\name{convert_z_to_lbf} +\alias{convert_z_to_lbf} +\title{Generate log Bayes Factor from Z-score} +\usage{ +convert_z_to_lbf( + z, + se, + eaf, + sample_size, + study_type, + effect_priors = c(continuous = 0.15, categorical = 0.2) +) +} +\arguments{ +\item{z}{Z-score} + +\item{se}{Standard error} + +\item{eaf}{Allele frequency} + +\item{sample_size}{Sample size} + +\item{study_type}{Study type} + +\item{effect_priors}{Effect priors} +} +\value{ +Log Bayes Factor +} +\description{ +Generate log Bayes Factor from Z-score +} diff --git a/man/find_finemap_locus_for_region.Rd b/man/find_finemap_locus_for_region.Rd new file mode 100644 index 0000000..e7323a6 --- /dev/null +++ b/man/find_finemap_locus_for_region.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc.R +\name{find_finemap_locus_for_region} +\alias{find_finemap_locus_for_region} +\title{Find the finemapped locus file that covers a genomic region} +\usage{ +find_finemap_locus_for_region(finemap_dir, chr, bp, range_bp = 1e+06) +} +\description{ +Find the finemapped locus file that covers a genomic region +} +\keyword{internal} diff --git a/man/finemap_gwas.Rd b/man/finemap_gwas.Rd new file mode 100644 index 0000000..fb29a34 --- /dev/null +++ b/man/finemap_gwas.Rd @@ -0,0 +1,48 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/finemap.R +\name{finemap_gwas} +\alias{finemap_gwas} +\title{Run SuSiE fine-mapping across all clumped loci in a GWAS} +\usage{ +finemap_gwas( + gwas, + clumped_file, + ancestry, + default_n, + output_finemap_dir, + window_kb = 1000, + max_causal = 10, + coverage = 0.95, + min_abs_corr = 0.5 +) +} +\arguments{ +\item{gwas}{filename or dataframe of a standardised GWAS} + +\item{clumped_file}{plink --clump output file} + +\item{ancestry}{ancestry code matching 1000 Genomes panel prefix (EUR, EAS, AFR, AMR, SAS)} + +\item{default_n}{GWAS sample size when not inferrable from \code{gwas}; see} + +\item{output_finemap_dir}{directory to write one +\verb{__finemap.tsv.gz} per clumped locus} + +\item{window_kb}{half-width of the fine-mapping window in kb (default 1000 = ±1 Mb)} + +\item{max_causal}{maximum number of causal signals per locus (SuSiE L, default 10)} + +\item{coverage}{credible set coverage (default 0.95)} + +\item{min_abs_corr}{minimum absolute correlation for credible sets (default 0.5)} +} +\value{ +invisibly, the combined per-SNP finemap tibble (LD-matched SNPs only) +} +\description{ +For each lead SNP from plink --clump output, extracts a window, computes an +LD matrix from the 1000 Genomes reference panel via plink, and runs +susieR::susie_rss. Writes one TSV per locus: all GWAS variants within the +genomic window around the lead SNP, with SuSiE Z-scores, credible-set +membership, and per-credible-set (independent signal) columns \code{LBF_1}, \code{LBF_2}, ... +} diff --git a/man/load_all_finemap_loci.Rd b/man/load_all_finemap_loci.Rd new file mode 100644 index 0000000..2ee2f1d --- /dev/null +++ b/man/load_all_finemap_loci.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc_bf.R +\name{load_all_finemap_loci} +\alias{load_all_finemap_loci} +\title{Load all finemapped locus files from a set of directories} +\usage{ +load_all_finemap_loci(finemap_dirs) +} +\description{ +Load all finemapped locus files from a set of directories +} +\keyword{internal} diff --git a/man/load_qtl_gwas_for_mr_result.Rd b/man/load_qtl_gwas_for_mr_result.Rd new file mode 100644 index 0000000..7f69d3f --- /dev/null +++ b/man/load_qtl_gwas_for_mr_result.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc.R +\name{load_qtl_gwas_for_mr_result} +\alias{load_qtl_gwas_for_mr_result} +\title{Load the QTL GWAS file for an MR result row} +\usage{ +load_qtl_gwas_for_mr_result(mr_result, qtl_dataset) +} +\description{ +Load the QTL GWAS file for an MR result row +} +\keyword{internal} diff --git a/man/map_ref_to_eaf.Rd b/man/map_ref_to_eaf.Rd new file mode 100644 index 0000000..6e78260 --- /dev/null +++ b/man/map_ref_to_eaf.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data_conversions.R +\name{map_ref_to_eaf} +\alias{map_ref_to_eaf} +\title{Map effect allele frequency using reference A1 allele frequency (PLINK --freq).} +\usage{ +map_ref_to_eaf(ea, oa, ra1, ra2, a1_freq) +} +\description{ +Map effect allele frequency using reference A1 allele frequency (PLINK --freq). +} +\keyword{internal} diff --git a/man/parse_bf_bf_result.Rd b/man/parse_bf_bf_result.Rd new file mode 100644 index 0000000..65fe55f --- /dev/null +++ b/man/parse_bf_bf_result.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc.R +\name{parse_bf_bf_result} +\alias{parse_bf_bf_result} +\title{Parse coloc.bf_bf result for QTL analysis} +\usage{ +parse_bf_bf_result(result, exposure_name, locus_name, n_snps) +} +\description{ +Parse coloc.bf_bf result for QTL analysis +} +\keyword{internal} diff --git a/man/parse_pairwise_bf_bf_result.Rd b/man/parse_pairwise_bf_bf_result.Rd new file mode 100644 index 0000000..e9ca628 --- /dev/null +++ b/man/parse_pairwise_bf_bf_result.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc_bf.R +\name{parse_pairwise_bf_bf_result} +\alias{parse_pairwise_bf_bf_result} +\title{Parse the result of coloc.bf_bf for a pairwise GWAS comparison} +\usage{ +parse_pairwise_bf_bf_result(result, trait1, trait2, locus1, locus2, n_snps) +} +\description{ +Parse the result of coloc.bf_bf for a pairwise GWAS comparison +} +\keyword{internal} diff --git a/man/populate_eaf_from_reference_panel.Rd b/man/populate_eaf_from_reference_panel.Rd new file mode 100644 index 0000000..92c50e1 --- /dev/null +++ b/man/populate_eaf_from_reference_panel.Rd @@ -0,0 +1,19 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data_conversions.R +\name{populate_eaf_from_reference_panel} +\alias{populate_eaf_from_reference_panel} +\title{Populate missing EAF from the LD reference panel (1000 Genomes PLINK binary + .frq).} +\usage{ +populate_eaf_from_reference_panel(gwas, ancestry, enabled = FALSE) +} +\arguments{ +\item{gwas}{Standardised GWAS tibble (CHR, BP, EA, OA; SNP id built after allele ordering).} + +\item{ancestry}{One of EUR, EAS, AFR, AMR, SAS matching the reference panel prefix.} + +\item{enabled}{If FALSE, returns \code{gwas} unchanged.} +} +\description{ +Expects \code{plink --bfile --freq --out } to exist beside the +\code{.bed/.bim/.fam} files, i.e. \code{/.frq}. +} diff --git a/man/run_bf_bf_coloc.Rd b/man/run_bf_bf_coloc.Rd new file mode 100644 index 0000000..ddc2cfc --- /dev/null +++ b/man/run_bf_bf_coloc.Rd @@ -0,0 +1,38 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc_bf.R +\name{run_bf_bf_coloc} +\alias{run_bf_bf_coloc} +\title{Run pairwise BF-BF colocalization on finemapped GWAS results} +\usage{ +run_bf_bf_coloc( + finemap_dirs, + overlap_kb = 1000, + p1 = 1e-04, + p2 = 1e-04, + p12 = 5e-06, + output_file = NULL +) +} +\arguments{ +\item{finemap_dirs}{named character vector of finemap output directories, +one per GWAS. Names are used as trait labels in the output.} + +\item{overlap_kb}{distance in kb to define overlapping signals (default 1000 = ±1 Mb)} + +\item{p1}{prior probability a SNP is associated with trait 1} + +\item{p2}{prior probability a SNP is associated with trait 2} + +\item{p12}{prior probability a SNP is associated with both traits} + +\item{output_file}{path to write the combined coloc results TSV} +} +\value{ +tibble of coloc results for every overlapping signal pair +} +\description{ +For each pair of GWAS datasets, identifies overlapping finemapped signals +(lead SNPs within ±\code{overlap_kb} kb), then runs \code{coloc::coloc.bf_bf} +on shared SNPs using the per-signal LBF columns produced by the fine-mapping +pipeline. +} diff --git a/man/run_coloc_on_qtl_mr_results.Rd b/man/run_coloc_on_qtl_mr_results.Rd new file mode 100644 index 0000000..272e952 --- /dev/null +++ b/man/run_coloc_on_qtl_mr_results.Rd @@ -0,0 +1,36 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc.R +\name{run_coloc_on_qtl_mr_results} +\alias{run_coloc_on_qtl_mr_results} +\title{Run BF-BF colocalization on significant QTL MR results using finemapped data} +\usage{ +run_coloc_on_qtl_mr_results( + mr_results_file, + finemap_dir, + qtl_dataset, + study_type = "continuous", + exposures = c(), + default_n = NA, + output_file +) +} +\arguments{ +\item{mr_results_file}{MR results file} + +\item{finemap_dir}{directory containing finemapped GWAS locus files} + +\item{qtl_dataset}{QTL dataset name (metabrain or eqtlgen)} + +\item{study_type}{study type for LBF conversion ("continuous" or "categorical")} + +\item{exposures}{optional character vector of exposures to filter} + +\item{default_n}{default sample size for QTL data} + +\item{output_file}{output file path} +} +\description{ +For each significant MR result, loads the finemapped GWAS locus that covers +the MR hit, computes LBF scores for the QTL data via \code{convert_z_to_lbf}, +and runs \code{coloc::coloc.bf_bf}. +} diff --git a/man/run_susie_for_locus.Rd b/man/run_susie_for_locus.Rd new file mode 100644 index 0000000..3288494 --- /dev/null +++ b/man/run_susie_for_locus.Rd @@ -0,0 +1,40 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/finemap.R +\name{run_susie_for_locus} +\alias{run_susie_for_locus} +\title{Run SuSiE on a single locus} +\usage{ +run_susie_for_locus( + z_scores, + ld_matrix, + snp_info, + n, + lead_snp, + max_causal = 10, + coverage = 0.95, + min_abs_corr = 0.5 +) +} +\arguments{ +\item{z_scores}{numeric vector of z-scores} + +\item{ld_matrix}{square LD correlation matrix} + +\item{snp_info}{data frame with SNP, CHR, BP, RSID columns (same order as z_scores)} + +\item{n}{sample size} + +\item{lead_snp}{RSID of the lead (clumped) SNP} + +\item{max_causal}{max causal signals (L)} + +\item{coverage}{credible set coverage} + +\item{min_abs_corr}{minimum absolute correlation for CS purity} +} +\value{ +tibble with SNP, CHR, BP, RSID, Z, CS, and \code{LBF_1}, \code{LBF_2}, ... per signal +} +\description{ +Run SuSiE on a single locus +} diff --git a/man/run_susie_rss_impl.Rd b/man/run_susie_rss_impl.Rd new file mode 100644 index 0000000..fef9b89 --- /dev/null +++ b/man/run_susie_rss_impl.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/finemap.R +\name{run_susie_rss_impl} +\alias{run_susie_rss_impl} +\title{Wrapper so tests can mock SuSiE with \code{testthat::local_mocked_bindings()}.} +\usage{ +run_susie_rss_impl(z, R, n, L, coverage, min_abs_corr, verbose = FALSE) +} +\description{ +Wrapper so tests can mock SuSiE with \code{testthat::local_mocked_bindings()}. +} +\keyword{internal} diff --git a/man/run_system.Rd b/man/run_system.Rd new file mode 100644 index 0000000..b14a4c0 --- /dev/null +++ b/man/run_system.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/liftover.R +\name{run_system} +\alias{run_system} +\title{Thin wrapper so tests can mock via testthat::local_mocked_bindings().} +\usage{ +run_system( + command, + wait = TRUE, + intern = FALSE, + ignore.stdout = FALSE, + ignore.stderr = FALSE +) +} +\description{ +Thin wrapper so tests can mock via testthat::local_mocked_bindings(). +} +\keyword{internal} diff --git a/man/standardise_gwas.Rd b/man/standardise_gwas.Rd index dc935a8..a83122d 100644 --- a/man/standardise_gwas.Rd +++ b/man/standardise_gwas.Rd @@ -13,10 +13,20 @@ standardise_gwas( output_reference_build = reference_builds$GRCh37, input_columns = "default", output_columns = "default", - remove_extra_columns = F + remove_extra_columns = F, + populate_eaf = FALSE, + ancestry = NULL, + flip_alleles = TRUE ) } \arguments{ +\item{populate_eaf}{If TRUE, fill missing \code{EAF} from the 1000 Genomes LD panel (\code{ANCESTRY.bim} + \code{ANCESTRY.frq} under \code{THOUSAND_GENOMES_DIR}).} + +\item{ancestry}{Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE.} + +\item{flip_alleles}{If TRUE (default), reorder EA/OA alphabetically and flip BETA, EAF, Z accordingly. +Set to FALSE to keep alleles as-is (useful when you only need to populate RSIDs, EAF, or change build).} + \item{gwas:}{filename of gwas to standardise or dataframe of gwas} \item{output_file:}{file to save standardised gwas} @@ -34,8 +44,6 @@ can be list() of key/value pairs, string of row in predefined_column_maps, or co \item{output_columns:}{column header map used for renaming GWAS: can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} - -\item{r:}{reference build of CHR and BP of data. Defaults to GRCh37} } \value{ modified gwas: saves new gwas in {output_file} if present diff --git a/man/susie_lbf_columns.Rd b/man/susie_lbf_columns.Rd new file mode 100644 index 0000000..73bfac2 --- /dev/null +++ b/man/susie_lbf_columns.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/finemap.R +\name{susie_lbf_columns} +\alias{susie_lbf_columns} +\title{Build per-credible-set LBF columns (\code{LBF_1}, \code{LBF_2}, ...) from a SuSiE fit.} +\usage{ +susie_lbf_columns(fitted, p) +} +\description{ +Build per-credible-set LBF columns (\code{LBF_1}, \code{LBF_2}, ...) from a SuSiE fit. +} +\keyword{internal} From c4772dbc5e29bc62a7f7bc669d58890bf95768ed Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 27 Apr 2026 22:26:36 +0100 Subject: [PATCH 12/85] Updating documentation --- R/collider_bias.R | 21 +++++--- R/coloc.R | 15 ++++-- R/data_conversions.R | 11 +++++ R/graphs.R | 34 ++++++++++--- R/gwas_comparisons.R | 9 ++-- R/gwas_formatting.R | 49 +++++++++++-------- R/liftover.R | 8 +-- R/util.R | 17 +++++-- man/adjust_gwas_data_from_weights_and_save.Rd | 12 ++--- man/calculate_f_statistic.Rd | 17 +++++++ man/calculate_heterogeneity_scores.Rd | 2 + man/change_column_names.Rd | 9 +++- man/change_snp_identifiers.Rd | 14 +++--- man/coloc_analysis.Rd | 4 +- ...eplication_across_all_gwas_permutations.Rd | 8 +-- man/conduct_collider_bias_analysis.Rd | 19 +++++++ man/convert_beta_to_or.Rd | 17 +++++++ man/convert_or_to_beta.Rd | 2 +- man/convert_reference_build_via_liftover.Rd | 8 +-- man/forest_plot.Rd | 23 +++++++++ man/get_file_or_dataframe.Rd | 8 +-- man/grouped_forest_plot.Rd | 34 +++++++++++++ man/gwas_region.Rd | 23 +++++++++ man/harmonise_gwases.Rd | 4 +- man/manhattan_and_qq.Rd | 6 +-- man/miami_plot.Rd | 6 +-- man/populate_gene_names.Rd | 17 +++++++ man/populate_rsid.Rd | 19 +++++++ man/run_coloc_on_list_of_datasets.Rd | 40 +++++++++++++++ man/standardise_gwas.Rd | 28 +++++------ man/volcano_plot.Rd | 34 +++++++++++++ man/vroom_snps.Rd | 8 +++ 32 files changed, 427 insertions(+), 99 deletions(-) create mode 100644 man/calculate_f_statistic.Rd create mode 100644 man/convert_beta_to_or.Rd create mode 100644 man/forest_plot.Rd create mode 100644 man/grouped_forest_plot.Rd create mode 100644 man/gwas_region.Rd create mode 100644 man/populate_gene_names.Rd create mode 100644 man/populate_rsid.Rd create mode 100644 man/run_coloc_on_list_of_datasets.Rd create mode 100644 man/volcano_plot.Rd diff --git a/R/collider_bias.R b/R/collider_bias.R index 33b4065..27f9d9b 100644 --- a/R/collider_bias.R +++ b/R/collider_bias.R @@ -20,6 +20,15 @@ collider_bias_results <- data.frame( #' * "Corrected Weighted Least Squares" (CWLS, or Dudbridge) Correction #' * MR IVW #' +#' @param incidence_gwas incidence GWAS +#' @param subsequent_gwas subsequent GWAS +#' @param clumped_snps_file clumped SNP list to run collider bias corrections against +#' @param adjustment_type adjustment type to save the adjusted GWAS +#' @param adjustment_pval adjustment pval to save the adjusted GWAS +#' @param collider_bias_results_file file to save the collider bias results +#' @param harmonised_effects_result_file file to save the harmonised effects +#' @param adjusted_output_file file to save the adjusted GWAS +#' @param p_value_thresholds p value thresholds to run corrections #' @return 2 plots: one manhattan plot and one QQ plot (with lambda included) #' @import dplyr #' @import SlopeHunter @@ -239,12 +248,12 @@ conduct_collider_bias_analysis <- function(incidence_gwas, #' This can be used in conjuction with weights calculated to account for collider bias. #' Currently used to work on a GWAS result of Slopehunter. #' -#' @param gwas: gwas that the new collider bias correction will be saved to. Swaps out BETA, SE, and P -#' @param harmonised_effects: a dataframe that includes BETA.incidence, BETA.prognosis, SE.incidence, SE.prognosis -#' @param collider_bias_type: string name of adjustment (eg. slopehunter) -#' @param beta: number, slope of the correction -#' @param se: number, SE of the corrected slope -#' @param output_file: name of file that the corrected GWAS will be saved to +#' @param gwas gwas that the new collider bias correction will be saved to. Swaps out BETA, SE, and P +#' @param harmonised_effects a dataframe that includes BETA.incidence, BETA.prognosis, SE.incidence, SE.prognosis +#' @param collider_bias_type string name of adjustment (eg. slopehunter) +#' @param beta number, slope of the correction +#' @param se number, SE of the corrected slope +#' @param output_file name of file that the corrected GWAS will be saved to #' @import dplyr #' @import vroom #' @import stats diff --git a/R/coloc.R b/R/coloc.R index fc801f9..87e261e 100644 --- a/R/coloc.R +++ b/R/coloc.R @@ -1,4 +1,13 @@ -#' +#' run_coloc_on_list_of_datasets: run coloc on a list of datasets +#' @param first_gwas_list list of first GWAS files +#' @param second_gwas_list list of second GWAS files +#' @param exposure_name_list list of exposure names +#' @param chr_list list of chromosomes +#' @param bp_list list of base pair positions +#' @param range range to filter in base pairs +#' @param default_n default sample size +#' @param output_file file to save the results +#' @return tibble of coloc results #' @import dplyr #' @import vroom #' @import tibble @@ -342,8 +351,8 @@ parse_bf_bf_result <- function(result, exposure_name, locus_name, n_snps) { } #' run_coloc_analysis takes two already harmonised gwases, and runs coloc on the results -#' @param first_gwas: first gwas to be run through coloc. This is the gwas that results will be based off -#' @param second_gwas: second gwas to be run through coloc +#' @param first_gwas first gwas to be run through coloc. This is the gwas that results will be based off +#' @param second_gwas second gwas to be run through coloc #' @returns tibble of coloc results (h0 - h4) #' @import coloc #' @import tibble diff --git a/R/data_conversions.R b/R/data_conversions.R index 85fd584..6b65a6d 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -1,3 +1,8 @@ +#' populate_gene_names: populate the gene names from the ENSEMBL_ID column +#' @param gwas dataframe with the following columns: ENSEMBL_ID +#' @return gwas with new column GENE_NAME +#' @import vroom +#' @import dplyr #' @export populate_gene_names <- function(gwas) { if ("ENSEMBL_ID" %in% colnames(gwas) && !"GENE_NAME" %in% colnames(gwas)) { @@ -125,6 +130,12 @@ populate_eaf_from_reference_panel <- function(gwas, ancestry, enabled = FALSE) { gwas } +#' populate_rsid: populate the RSID column from the SNP column +#' @param gwas dataframe with the following columns: SNP +#' @param option option to populate the RSID column +#' @return gwas with new column RSID +#' @import vroom +#' @import dplyr #' @export populate_rsid <- function(gwas, option = populate_rsid_options$none) { gc() diff --git a/R/graphs.R b/R/graphs.R index 52b37bc..3ba3bee 100644 --- a/R/graphs.R +++ b/R/graphs.R @@ -1,3 +1,9 @@ +#' forest_plot: produce a forest plot from a GWAS file +#' @param table dataframe with the following columns: BETA, SE +#' @param title title of the plot +#' @param output_file file to save the plot +#' @param y_column column to use for the y-axis +#' @return ggplot2 object #' @import ggplot2 #' @import shiny #' @export @@ -27,6 +33,14 @@ forest_plot <- function(table, title, output_file, y_column=NA) { ggplot2::ggsave(output_file, limitsize = F) } +#' grouped_forest_plot: produce a grouped forest plot from a GWAS file +#' @param table dataframe with the following columns: BETA, SE +#' @param title title of the plot +#' @param group_column column to use for the group +#' @param output_file file to save the plot +#' @param p_value_column column to use for the p-value +#' @param q_stat_column column to use for the Q-statistic +#' @return ggplot2 object #' @import ggplot2 #' @export grouped_forest_plot <- function(table, title, group_column, output_file, p_value_column = NA, q_stat_column = NA) { @@ -81,9 +95,9 @@ grouped_bar_chart <- function(data, title, x_column, y_column, group_column, out #' manhattan_and_qq: produce manhattan and qq plot from a GWAS file #' -#' @param gwas_filename: a file of a gwas that includes CHR, CP, P, and SNP -#' @param name: name of plots to be saved (and named as a header in graph) -#' @param save_dir: defaults to 'scratch/results' +#' @param gwas_filename file of a gwas that includes CHR, CP, P, and SNP +#' @param name name of plots to be saved (and named as a header in graph) +#' @param save_dir defaults to 'scratch/results' #' @return 2 plots: one manhattan plot and one QQ plot (with lambda included) #' @import grDevices #' @import qqman @@ -112,9 +126,9 @@ manhattan_and_qq <- function(gwas_filename, manhattan_filename, qq_filename, inc #' miami_plot: produce miami plot of GWAS data from two gwases #' -#' @param gwas_dataframe: a dataframe that includes CHR, CP, P, and SNP -#' @param name: name of plots to be saved (and named as a header in graph) -#' @param save_dir: defaults to 'scratch/results' +#' @param gwas_dataframe a dataframe that includes CHR, CP, P, and SNP +#' @param name name of plots to be saved (and named as a header in graph) +#' @param save_dir defaults to 'scratch/results' #' @import grDevices #' @import qqman #' @import graphics @@ -180,6 +194,14 @@ miami_plot <- function(first_gwas_filename, grDevices::dev.off() } +#' volcano_plot: produce a volcano plot from a GWAS file +#' @param results_file file to save the plot +#' @param title title of the plot +#' @param label column to use for the label (default "EXPOSURE") +#' @param num_labels number of labels to include in the plot (default 30) +#' @param output_file file to save the plot +#' @param p_val column to use for the p-value (default "p.adjusted") +#' @return ggplot2 object #' @import ggplot2 #' @import ggrepel #' @export diff --git a/R/gwas_comparisons.R b/R/gwas_comparisons.R index 8796489..be0a777 100644 --- a/R/gwas_comparisons.R +++ b/R/gwas_comparisons.R @@ -1,10 +1,10 @@ #' compare_replication_across_all_gwas_permutations #' @description takes a vector of gwasse and associated clumps, then runs the expected vs. observed algorithm #' -#' @param gwas_filenames: list of filenames of gwases -#' @param clumped_filenames: list of clumped list filesnames genetred from gwas, in same order as gwases -#' @param result_output_file: data frame of all results of gwas comparisons concatenated -#' @param variants_output_file: data frame of every SNP comparison from clumped list concatenated +#' @param gwas_filenames list of filenames of gwases +#' @param clumped_filenames list of clumped list filesnames genetred from gwas, in same order as gwases +#' @param result_output_file data frame of all results of gwas comparisons concatenated +#' @param variants_output_file data frame of every SNP comparison from clumped list concatenated #' @import vroom compare_replication_across_all_gwas_permutations <- function(gwas_filenames = c(), clumped_filenames = c(), @@ -186,6 +186,7 @@ plot_snps_with_heterogeneity <- function(gwases_by_ancestry, heterogeneity_resut #' this can be interpreted as asking for each SNP is a particular giving an outlier estimate. #' #' @param gwases_by_ancestry Named list of data frames, one for each population, with at least bhat, se and snp columns +#' @param heterogeneity_score_file file to save the heterogeneity scores #' #' @return List #' - Q = vector of p-values for Cochrane's Q statistic for each SNP diff --git a/R/gwas_formatting.R b/R/gwas_formatting.R index eded6d8..4af33d4 100644 --- a/R/gwas_formatting.R +++ b/R/gwas_formatting.R @@ -1,13 +1,13 @@ #' standardise_gwas: takes an input gwas, changes headers, standardises allelic input, adds RSID, makes life easier -#' @param gwas: filename of gwas to standardise or dataframe of gwas -#' @param output_file: file to save standardised gwas -#' @param N: sample size of GWAS (if GWAS has defined N column, defaults to that value) -#' @param populate_rsid_option: if you want RSID populated or not -#' @param input_reference_build: reference build of CHR and BP of data. Defaults to GRCh37 -#' @param output_reference_build: reference build of CHR and BP of data. Defaults to GRCh37 -#' @param input_columns: column header map used for renaming GWAS: +#' @param gwas filename of gwas to standardise or dataframe of gwas +#' @param output_file file to save standardised gwas +#' @param N sample size of GWAS (if GWAS has defined N column, defaults to that value) +#' @param populate_rsid_option if you want RSID populated or not +#' @param input_reference_build reference build of CHR and BP of data. Defaults to GRCh37 +#' @param output_reference_build reference build of CHR and BP of data. Defaults to GRCh37 +#' @param input_columns column header map used for renaming GWAS: #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values -#' @param output_columns: column header map used for renaming GWAS: +#' @param output_columns column header map used for renaming GWAS: #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values #' @param populate_eaf If TRUE, fill missing \code{EAF} from the 1000 Genomes LD panel (\code{ANCESTRY.bim} + \code{ANCESTRY.frq} under \code{THOUSAND_GENOMES_DIR}). #' @param ancestry Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE. @@ -59,14 +59,14 @@ standardise_gwas <- function(gwas, } #' change_snp_identifiers: changes the SNP identifiers of a GWAS to the output reference build -#' @param gwas: filename of gwas to standardise or dataframe of gwas -#' @param output_file: file to save standardised gwas -#' @param populate_rsid_option: if you want RSID populated or not -#' @param input_reference_build: reference build of CHR and BP of data. Defaults to GRCh37 -#' @param output_reference_build: reference build of CHR and BP of data. Defaults to GRCh37 -#' @param input_columns: column header map used for renaming GWAS: +#' @param gwas filename of gwas to standardise or dataframe of gwas +#' @param output_file file to save standardised gwas +#' @param populate_rsid_option if you want RSID populated or not +#' @param input_reference_build reference build of CHR and BP of data. Defaults to GRCh37 +#' @param output_reference_build reference build of CHR and BP of data. Defaults to GRCh37 +#' @param input_columns column header map used for renaming GWAS: #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values -#' @param output_columns: column header map used for renaming GWAS: +#' @param output_columns column header map used for renaming GWAS: #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values #' @return modified gwas: saves new gwas in {output_file} if present #' @import vroom @@ -117,8 +117,8 @@ change_snp_identifiers <- function(gwas, #' harmonise_gwases: takes a list of gwases, get the SNPs in common #' across all datasets arranged to be in the same order #' -#' @param: elipses of gwases -#' @return: list of harmonised gwases +#' @param ... elipses of gwases +#' @return list of harmonised gwases #' @import dplyr #' @export harmonise_gwases <- function(...) { @@ -208,9 +208,10 @@ health_check <- function(gwas) { #' change_column_names: private function that takes a named list of column names #' and changes the supplied data frame's column names accordingly #' -#' @param: gwas dataframe of gwas to standardise column names -#' @param: columns named list for -#' @param: opposite_mapping logical flag on if we are mapping from key to value or vice verca +#' @param gwas dataframe of gwas to standardise column names +#' @param columns named list for +#' @param remove_extra_columns logical flag on if we are removing extra columns +#' @return gwas with new column names change_column_names <- function(gwas, columns = list(), remove_extra_columns = F) { for (name in names(columns)) { #this deletes an existing column that we're about to rename, so we don't have 2 columns @@ -263,7 +264,7 @@ standardise_alleles <- function(gwas, flip = TRUE) { #' calculates the BETA, and SE. #' based on this answer: https://stats.stackexchange.com/a/327684 #' -#' @param gwas: dataframe with the following columns: OR, LB (lower bound), UB (upper bound) +#' @param gwas dataframe with the following columns: OR, LB (lower bound), UB (upper bound) #' @return gwas with new columns BETA and SE #' @import stats #' @export @@ -280,6 +281,9 @@ convert_or_to_beta <- function(gwas) { return(gwas) } +#' convert_beta_to_or: Given a BETA and SE, calculates the OR and lower and upper bounds +#' @param gwas dataframe with the following columns: BETA, SE +#' @return gwas with new columns OR, OR_LB, OR_UB #' @import stats #' @export convert_beta_to_or <- function(gwas) { @@ -337,6 +341,9 @@ convert_p_to_negative_log_p <- function(gwas) { return(gwas) } +#' calculate_f_statistic: calculates the F-statistic from the P-value +#' @param gwas dataframe with P column +#' @return gwas with F_STAT column #' @import stats #' @export calculate_f_statistic <- function(gwas) { diff --git a/R/liftover.R b/R/liftover.R index 3548a2f..510bdce 100644 --- a/R/liftover.R +++ b/R/liftover.R @@ -7,10 +7,10 @@ available_liftover_conversions[[paste0(reference_builds$GRCh37, reference_builds #' convert_reference_build_via_liftover: Change reference build of BP marker from allow list of liftOver conversions #' -#' @param gwas: GWAS (file or dataframe) of standardised GWAS -#' @param input_reference_build: string reference build, found in reference_builds list -#' @param output_reference_build: string reference build that GWAS is to change to, found in reference_builds list -#' @param output_file: optional output file name to save to +#' @param gwas GWAS (file or dataframe) of standardised GWAS +#' @param input_reference_build string reference build, found in reference_builds list +#' @param output_reference_build string reference build that GWAS is to change to, found in reference_builds list +#' @param output_file optional output file name to save to #' @return gwas input is altered and returned #' @export convert_reference_build_via_liftover <- function(gwas, diff --git a/R/util.R b/R/util.R index 130549f..be4e92a 100644 --- a/R/util.R +++ b/R/util.R @@ -1,10 +1,10 @@ #' get_file_or_dataframe: function that takes either dataframe OR file name, and returns a subset of #' columns, rows, or both. #' accepted input file types: txt, csv, tsv, zip, gz -#' @param input: either data frame or string input of file -#' @param columns: vector of strings matching column names to filter columns -#' @param snps: vector of SNP names matching SNPs to filter rows -#' @return output: data frame of GWAS +#' @param input either data frame or string input of file +#' @param columns vector of strings matching column names to filter columns +#' @param snps vector of SNP names matching SNPs to filter rows +#' @return output data frame of GWAS #' @import dplyr #' @import vroom #' @export @@ -43,6 +43,9 @@ filter_gwas_by_clumped_results <- function(gwas, clumped_results) { #' vroom_snps: If you only need to get a handful of SNPs out of a whole GWAS, this saves time and memory #' NOTE: only works with data that has been standardised, through `standardise_gwas`, or at least a tsv +#' @param gwas_file file of gwas to get SNPs from +#' @param snps vector of SNP names to get +#' @return dataframe of SNPs #' @import vroom #' @export vroom_snps <- function(gwas_file, snps=c()){ @@ -62,6 +65,12 @@ vroom_snps <- function(gwas_file, snps=c()){ return(snps_in_gwas) } +#' gwas_region: filter a GWAS file to a region +#' @param gwas dataframe with the following columns: CHR, BP +#' @param chr chromosome +#' @param bp base pair position +#' @param range range to filter in base pairs +#' @return gwas with filtered rows #' @import dplyr #' @export gwas_region <- function(gwas, chr, bp, range = 500000) { diff --git a/man/adjust_gwas_data_from_weights_and_save.Rd b/man/adjust_gwas_data_from_weights_and_save.Rd index d074d64..d7be85a 100644 --- a/man/adjust_gwas_data_from_weights_and_save.Rd +++ b/man/adjust_gwas_data_from_weights_and_save.Rd @@ -16,17 +16,17 @@ adjust_gwas_data_from_weights_and_save( ) } \arguments{ -\item{gwas:}{gwas that the new collider bias correction will be saved to. Swaps out BETA, SE, and P} +\item{gwas}{gwas that the new collider bias correction will be saved to. Swaps out BETA, SE, and P} -\item{harmonised_effects:}{a dataframe that includes BETA.incidence, BETA.prognosis, SE.incidence, SE.prognosis} +\item{harmonised_effects}{a dataframe that includes BETA.incidence, BETA.prognosis, SE.incidence, SE.prognosis} -\item{collider_bias_type:}{string name of adjustment (eg. slopehunter)} +\item{collider_bias_type}{string name of adjustment (eg. slopehunter)} -\item{beta:}{number, slope of the correction} +\item{beta}{number, slope of the correction} -\item{se:}{number, SE of the corrected slope} +\item{se}{number, SE of the corrected slope} -\item{output_file:}{name of file that the corrected GWAS will be saved to} +\item{output_file}{name of file that the corrected GWAS will be saved to} } \description{ adjust_gwas_data_from_weights: Apply a slope correction weight (and SE) to an existing GWAS and save result to disk. diff --git a/man/calculate_f_statistic.Rd b/man/calculate_f_statistic.Rd new file mode 100644 index 0000000..80d1123 --- /dev/null +++ b/man/calculate_f_statistic.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gwas_formatting.R +\name{calculate_f_statistic} +\alias{calculate_f_statistic} +\title{calculate_f_statistic: calculates the F-statistic from the P-value} +\usage{ +calculate_f_statistic(gwas) +} +\arguments{ +\item{gwas}{dataframe with P column} +} +\value{ +gwas with F_STAT column +} +\description{ +calculate_f_statistic: calculates the F-statistic from the P-value +} diff --git a/man/calculate_heterogeneity_scores.Rd b/man/calculate_heterogeneity_scores.Rd index 4e91139..3b762e6 100644 --- a/man/calculate_heterogeneity_scores.Rd +++ b/man/calculate_heterogeneity_scores.Rd @@ -8,6 +8,8 @@ calculate_heterogeneity_scores(gwases_by_ancestry, heterogeneity_score_file) } \arguments{ \item{gwases_by_ancestry}{Named list of data frames, one for each population, with at least bhat, se and snp columns} + +\item{heterogeneity_score_file}{file to save the heterogeneity scores} } \value{ List diff --git a/man/change_column_names.Rd b/man/change_column_names.Rd index f236057..b002329 100644 --- a/man/change_column_names.Rd +++ b/man/change_column_names.Rd @@ -8,7 +8,14 @@ and changes the supplied data frame's column names accordingly} change_column_names(gwas, columns = list(), remove_extra_columns = F) } \arguments{ -\item{:}{opposite_mapping logical flag on if we are mapping from key to value or vice verca} +\item{gwas}{dataframe of gwas to standardise column names} + +\item{columns}{named list for} + +\item{remove_extra_columns}{logical flag on if we are removing extra columns} +} +\value{ +gwas with new column names } \description{ change_column_names: private function that takes a named list of column names diff --git a/man/change_snp_identifiers.Rd b/man/change_snp_identifiers.Rd index 0713d70..fff5008 100644 --- a/man/change_snp_identifiers.Rd +++ b/man/change_snp_identifiers.Rd @@ -14,20 +14,20 @@ change_snp_identifiers( ) } \arguments{ -\item{gwas:}{filename of gwas to standardise or dataframe of gwas} +\item{gwas}{filename of gwas to standardise or dataframe of gwas} -\item{output_file:}{file to save standardised gwas} +\item{output_file}{file to save standardised gwas} -\item{populate_rsid_option:}{if you want RSID populated or not} +\item{populate_rsid_option}{if you want RSID populated or not} -\item{input_reference_build:}{reference build of CHR and BP of data. Defaults to GRCh37} +\item{input_reference_build}{reference build of CHR and BP of data. Defaults to GRCh37} -\item{output_reference_build:}{reference build of CHR and BP of data. Defaults to GRCh37} +\item{output_reference_build}{reference build of CHR and BP of data. Defaults to GRCh37} -\item{input_columns:}{column header map used for renaming GWAS: +\item{input_columns}{column header map used for renaming GWAS: can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} -\item{output_columns:}{column header map used for renaming GWAS: +\item{output_columns}{column header map used for renaming GWAS: can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} } \value{ diff --git a/man/coloc_analysis.Rd b/man/coloc_analysis.Rd index 5c4aa67..4d3a04c 100644 --- a/man/coloc_analysis.Rd +++ b/man/coloc_analysis.Rd @@ -15,9 +15,9 @@ coloc_analysis( ) } \arguments{ -\item{first_gwas:}{first gwas to be run through coloc. This is the gwas that results will be based off} +\item{first_gwas}{first gwas to be run through coloc. This is the gwas that results will be based off} -\item{second_gwas:}{second gwas to be run through coloc} +\item{second_gwas}{second gwas to be run through coloc} } \value{ tibble of coloc results (h0 - h4) diff --git a/man/compare_replication_across_all_gwas_permutations.Rd b/man/compare_replication_across_all_gwas_permutations.Rd index 269ac18..74b38e6 100644 --- a/man/compare_replication_across_all_gwas_permutations.Rd +++ b/man/compare_replication_across_all_gwas_permutations.Rd @@ -12,13 +12,13 @@ compare_replication_across_all_gwas_permutations( ) } \arguments{ -\item{gwas_filenames:}{list of filenames of gwases} +\item{gwas_filenames}{list of filenames of gwases} -\item{clumped_filenames:}{list of clumped list filesnames genetred from gwas, in same order as gwases} +\item{clumped_filenames}{list of clumped list filesnames genetred from gwas, in same order as gwases} -\item{result_output_file:}{data frame of all results of gwas comparisons concatenated} +\item{result_output_file}{data frame of all results of gwas comparisons concatenated} -\item{variants_output_file:}{data frame of every SNP comparison from clumped list concatenated} +\item{variants_output_file}{data frame of every SNP comparison from clumped list concatenated} } \description{ takes a vector of gwasse and associated clumps, then runs the expected vs. observed algorithm diff --git a/man/conduct_collider_bias_analysis.Rd b/man/conduct_collider_bias_analysis.Rd index a833e92..06eb2af 100644 --- a/man/conduct_collider_bias_analysis.Rd +++ b/man/conduct_collider_bias_analysis.Rd @@ -21,6 +21,25 @@ conduct_collider_bias_analysis( p_value_thresholds = thresholds ) } +\arguments{ +\item{incidence_gwas}{incidence GWAS} + +\item{subsequent_gwas}{subsequent GWAS} + +\item{clumped_snps_file}{clumped SNP list to run collider bias corrections against} + +\item{adjustment_type}{adjustment type to save the adjusted GWAS} + +\item{adjustment_pval}{adjustment pval to save the adjusted GWAS} + +\item{collider_bias_results_file}{file to save the collider bias results} + +\item{harmonised_effects_result_file}{file to save the harmonised effects} + +\item{adjusted_output_file}{file to save the adjusted GWAS} + +\item{p_value_thresholds}{p value thresholds to run corrections} +} \value{ 2 plots: one manhattan plot and one QQ plot (with lambda included) } diff --git a/man/convert_beta_to_or.Rd b/man/convert_beta_to_or.Rd new file mode 100644 index 0000000..4977177 --- /dev/null +++ b/man/convert_beta_to_or.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gwas_formatting.R +\name{convert_beta_to_or} +\alias{convert_beta_to_or} +\title{convert_beta_to_or: Given a BETA and SE, calculates the OR and lower and upper bounds} +\usage{ +convert_beta_to_or(gwas) +} +\arguments{ +\item{gwas}{dataframe with the following columns: BETA, SE} +} +\value{ +gwas with new columns OR, OR_LB, OR_UB +} +\description{ +convert_beta_to_or: Given a BETA and SE, calculates the OR and lower and upper bounds +} diff --git a/man/convert_or_to_beta.Rd b/man/convert_or_to_beta.Rd index 368dd6b..d2d2a62 100644 --- a/man/convert_or_to_beta.Rd +++ b/man/convert_or_to_beta.Rd @@ -9,7 +9,7 @@ based on this answer: https://stats.stackexchange.com/a/327684} convert_or_to_beta(gwas) } \arguments{ -\item{gwas:}{dataframe with the following columns: OR, LB (lower bound), UB (upper bound)} +\item{gwas}{dataframe with the following columns: OR, LB (lower bound), UB (upper bound)} } \value{ gwas with new columns BETA and SE diff --git a/man/convert_reference_build_via_liftover.Rd b/man/convert_reference_build_via_liftover.Rd index 60f2d78..3ed414e 100644 --- a/man/convert_reference_build_via_liftover.Rd +++ b/man/convert_reference_build_via_liftover.Rd @@ -12,13 +12,13 @@ convert_reference_build_via_liftover( ) } \arguments{ -\item{gwas:}{GWAS (file or dataframe) of standardised GWAS} +\item{gwas}{GWAS (file or dataframe) of standardised GWAS} -\item{input_reference_build:}{string reference build, found in reference_builds list} +\item{input_reference_build}{string reference build, found in reference_builds list} -\item{output_reference_build:}{string reference build that GWAS is to change to, found in reference_builds list} +\item{output_reference_build}{string reference build that GWAS is to change to, found in reference_builds list} -\item{output_file:}{optional output file name to save to} +\item{output_file}{optional output file name to save to} } \value{ gwas input is altered and returned diff --git a/man/forest_plot.Rd b/man/forest_plot.Rd new file mode 100644 index 0000000..236fd51 --- /dev/null +++ b/man/forest_plot.Rd @@ -0,0 +1,23 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/graphs.R +\name{forest_plot} +\alias{forest_plot} +\title{forest_plot: produce a forest plot from a GWAS file} +\usage{ +forest_plot(table, title, output_file, y_column = NA) +} +\arguments{ +\item{table}{dataframe with the following columns: BETA, SE} + +\item{title}{title of the plot} + +\item{output_file}{file to save the plot} + +\item{y_column}{column to use for the y-axis} +} +\value{ +ggplot2 object +} +\description{ +forest_plot: produce a forest plot from a GWAS file +} diff --git a/man/get_file_or_dataframe.Rd b/man/get_file_or_dataframe.Rd index 8ed9354..2660d6a 100644 --- a/man/get_file_or_dataframe.Rd +++ b/man/get_file_or_dataframe.Rd @@ -9,14 +9,14 @@ accepted input file types: txt, csv, tsv, zip, gz} get_file_or_dataframe(input, columns = NULL, snps = NULL) } \arguments{ -\item{input:}{either data frame or string input of file} +\item{input}{either data frame or string input of file} -\item{columns:}{vector of strings matching column names to filter columns} +\item{columns}{vector of strings matching column names to filter columns} -\item{snps:}{vector of SNP names matching SNPs to filter rows} +\item{snps}{vector of SNP names matching SNPs to filter rows} } \value{ -output: data frame of GWAS +output data frame of GWAS } \description{ get_file_or_dataframe: function that takes either dataframe OR file name, and returns a subset of diff --git a/man/grouped_forest_plot.Rd b/man/grouped_forest_plot.Rd new file mode 100644 index 0000000..334bf12 --- /dev/null +++ b/man/grouped_forest_plot.Rd @@ -0,0 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/graphs.R +\name{grouped_forest_plot} +\alias{grouped_forest_plot} +\title{grouped_forest_plot: produce a grouped forest plot from a GWAS file} +\usage{ +grouped_forest_plot( + table, + title, + group_column, + output_file, + p_value_column = NA, + q_stat_column = NA +) +} +\arguments{ +\item{table}{dataframe with the following columns: BETA, SE} + +\item{title}{title of the plot} + +\item{group_column}{column to use for the group} + +\item{output_file}{file to save the plot} + +\item{p_value_column}{column to use for the p-value} + +\item{q_stat_column}{column to use for the Q-statistic} +} +\value{ +ggplot2 object +} +\description{ +grouped_forest_plot: produce a grouped forest plot from a GWAS file +} diff --git a/man/gwas_region.Rd b/man/gwas_region.Rd new file mode 100644 index 0000000..8b8ccbb --- /dev/null +++ b/man/gwas_region.Rd @@ -0,0 +1,23 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/util.R +\name{gwas_region} +\alias{gwas_region} +\title{gwas_region: filter a GWAS file to a region} +\usage{ +gwas_region(gwas, chr, bp, range = 5e+05) +} +\arguments{ +\item{gwas}{dataframe with the following columns: CHR, BP} + +\item{chr}{chromosome} + +\item{bp}{base pair position} + +\item{range}{range to filter in base pairs} +} +\value{ +gwas with filtered rows +} +\description{ +gwas_region: filter a GWAS file to a region +} diff --git a/man/harmonise_gwases.Rd b/man/harmonise_gwases.Rd index 6736dc1..996cc99 100644 --- a/man/harmonise_gwases.Rd +++ b/man/harmonise_gwases.Rd @@ -8,10 +8,10 @@ across all datasets arranged to be in the same order} harmonise_gwases(...) } \arguments{ -\item{:}{elipses of gwases} +\item{...}{elipses of gwases} } \value{ -: list of harmonised gwases +list of harmonised gwases } \description{ harmonise_gwases: takes a list of gwases, get the SNPs in common diff --git a/man/manhattan_and_qq.Rd b/man/manhattan_and_qq.Rd index 8aa63f1..4460836 100644 --- a/man/manhattan_and_qq.Rd +++ b/man/manhattan_and_qq.Rd @@ -12,11 +12,11 @@ manhattan_and_qq( ) } \arguments{ -\item{gwas_filename:}{a file of a gwas that includes CHR, CP, P, and SNP} +\item{gwas_filename}{file of a gwas that includes CHR, CP, P, and SNP} -\item{name:}{name of plots to be saved (and named as a header in graph)} +\item{name}{name of plots to be saved (and named as a header in graph)} -\item{save_dir:}{defaults to 'scratch/results'} +\item{save_dir}{defaults to 'scratch/results'} } \value{ 2 plots: one manhattan plot and one QQ plot (with lambda included) diff --git a/man/miami_plot.Rd b/man/miami_plot.Rd index 30e2fd2..84d5c34 100644 --- a/man/miami_plot.Rd +++ b/man/miami_plot.Rd @@ -15,11 +15,11 @@ miami_plot( ) } \arguments{ -\item{gwas_dataframe:}{a dataframe that includes CHR, CP, P, and SNP} +\item{gwas_dataframe}{a dataframe that includes CHR, CP, P, and SNP} -\item{name:}{name of plots to be saved (and named as a header in graph)} +\item{name}{name of plots to be saved (and named as a header in graph)} -\item{save_dir:}{defaults to 'scratch/results'} +\item{save_dir}{defaults to 'scratch/results'} } \description{ miami_plot: produce miami plot of GWAS data from two gwases diff --git a/man/populate_gene_names.Rd b/man/populate_gene_names.Rd new file mode 100644 index 0000000..4e5d2b7 --- /dev/null +++ b/man/populate_gene_names.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data_conversions.R +\name{populate_gene_names} +\alias{populate_gene_names} +\title{populate_gene_names: populate the gene names from the ENSEMBL_ID column} +\usage{ +populate_gene_names(gwas) +} +\arguments{ +\item{gwas}{dataframe with the following columns: ENSEMBL_ID} +} +\value{ +gwas with new column GENE_NAME +} +\description{ +populate_gene_names: populate the gene names from the ENSEMBL_ID column +} diff --git a/man/populate_rsid.Rd b/man/populate_rsid.Rd new file mode 100644 index 0000000..4d2f85a --- /dev/null +++ b/man/populate_rsid.Rd @@ -0,0 +1,19 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data_conversions.R +\name{populate_rsid} +\alias{populate_rsid} +\title{populate_rsid: populate the RSID column from the SNP column} +\usage{ +populate_rsid(gwas, option = populate_rsid_options$none) +} +\arguments{ +\item{gwas}{dataframe with the following columns: SNP} + +\item{option}{option to populate the RSID column} +} +\value{ +gwas with new column RSID +} +\description{ +populate_rsid: populate the RSID column from the SNP column +} diff --git a/man/run_coloc_on_list_of_datasets.Rd b/man/run_coloc_on_list_of_datasets.Rd new file mode 100644 index 0000000..c57e270 --- /dev/null +++ b/man/run_coloc_on_list_of_datasets.Rd @@ -0,0 +1,40 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/coloc.R +\name{run_coloc_on_list_of_datasets} +\alias{run_coloc_on_list_of_datasets} +\title{run_coloc_on_list_of_datasets: run coloc on a list of datasets} +\usage{ +run_coloc_on_list_of_datasets( + first_gwas_list = list(), + second_gwas_list = list(), + exposure_name_list = list(), + chr_list = list(), + bp_list = list(), + range = 5e+05, + default_n = NA, + output_file +) +} +\arguments{ +\item{first_gwas_list}{list of first GWAS files} + +\item{second_gwas_list}{list of second GWAS files} + +\item{exposure_name_list}{list of exposure names} + +\item{chr_list}{list of chromosomes} + +\item{bp_list}{list of base pair positions} + +\item{range}{range to filter in base pairs} + +\item{default_n}{default sample size} + +\item{output_file}{file to save the results} +} +\value{ +tibble of coloc results +} +\description{ +run_coloc_on_list_of_datasets: run coloc on a list of datasets +} diff --git a/man/standardise_gwas.Rd b/man/standardise_gwas.Rd index a83122d..e32d3bb 100644 --- a/man/standardise_gwas.Rd +++ b/man/standardise_gwas.Rd @@ -20,30 +20,30 @@ standardise_gwas( ) } \arguments{ -\item{populate_eaf}{If TRUE, fill missing \code{EAF} from the 1000 Genomes LD panel (\code{ANCESTRY.bim} + \code{ANCESTRY.frq} under \code{THOUSAND_GENOMES_DIR}).} +\item{gwas}{filename of gwas to standardise or dataframe of gwas} -\item{ancestry}{Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE.} +\item{output_file}{file to save standardised gwas} -\item{flip_alleles}{If TRUE (default), reorder EA/OA alphabetically and flip BETA, EAF, Z accordingly. -Set to FALSE to keep alleles as-is (useful when you only need to populate RSIDs, EAF, or change build).} +\item{N}{sample size of GWAS (if GWAS has defined N column, defaults to that value)} -\item{gwas:}{filename of gwas to standardise or dataframe of gwas} +\item{populate_rsid_option}{if you want RSID populated or not} -\item{output_file:}{file to save standardised gwas} +\item{input_reference_build}{reference build of CHR and BP of data. Defaults to GRCh37} -\item{N:}{sample size of GWAS (if GWAS has defined N column, defaults to that value)} +\item{output_reference_build}{reference build of CHR and BP of data. Defaults to GRCh37} -\item{populate_rsid_option:}{if you want RSID populated or not} +\item{input_columns}{column header map used for renaming GWAS: +can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} -\item{input_reference_build:}{reference build of CHR and BP of data. Defaults to GRCh37} +\item{output_columns}{column header map used for renaming GWAS: +can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} -\item{output_reference_build:}{reference build of CHR and BP of data. Defaults to GRCh37} +\item{populate_eaf}{If TRUE, fill missing \code{EAF} from the 1000 Genomes LD panel (\code{ANCESTRY.bim} + \code{ANCESTRY.frq} under \code{THOUSAND_GENOMES_DIR}).} -\item{input_columns:}{column header map used for renaming GWAS: -can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} +\item{ancestry}{Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE.} -\item{output_columns:}{column header map used for renaming GWAS: -can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} +\item{flip_alleles}{If TRUE (default), reorder EA/OA alphabetically and flip BETA, EAF, Z accordingly. +Set to FALSE to keep alleles as-is (useful when you only need to populate RSIDs, EAF, or change build).} } \value{ modified gwas: saves new gwas in {output_file} if present diff --git a/man/volcano_plot.Rd b/man/volcano_plot.Rd new file mode 100644 index 0000000..1b3a388 --- /dev/null +++ b/man/volcano_plot.Rd @@ -0,0 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/graphs.R +\name{volcano_plot} +\alias{volcano_plot} +\title{volcano_plot: produce a volcano plot from a GWAS file} +\usage{ +volcano_plot( + results_file, + title = "Volcano Plot of Results", + label = "EXPOSURE", + num_labels = 30, + output_file, + p_val = "p.adjusted" +) +} +\arguments{ +\item{results_file}{file to save the plot} + +\item{title}{title of the plot} + +\item{label}{column to use for the label (default "EXPOSURE")} + +\item{num_labels}{number of labels to include in the plot (default 30)} + +\item{output_file}{file to save the plot} + +\item{p_val}{column to use for the p-value (default "p.adjusted")} +} +\value{ +ggplot2 object +} +\description{ +volcano_plot: produce a volcano plot from a GWAS file +} diff --git a/man/vroom_snps.Rd b/man/vroom_snps.Rd index 7d059c5..6841cb5 100644 --- a/man/vroom_snps.Rd +++ b/man/vroom_snps.Rd @@ -7,6 +7,14 @@ NOTE: only works with data that has been standardised, through \code{standardise \usage{ vroom_snps(gwas_file, snps = c()) } +\arguments{ +\item{gwas_file}{file of gwas to get SNPs from} + +\item{snps}{vector of SNP names to get} +} +\value{ +dataframe of SNPs +} \description{ vroom_snps: If you only need to get a handful of SNPs out of a whole GWAS, this saves time and memory NOTE: only works with data that has been standardised, through \code{standardise_gwas}, or at least a tsv From 83d99423803928410337ede24c24af6e1902ff37 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 27 Apr 2026 22:42:15 +0100 Subject: [PATCH 13/85] more documentation --- R/coloc.R | 7 ++++++- R/graphs.R | 15 ++++++++++----- R/gwas_formatting.R | 5 +++-- man/change_snp_identifiers.Rd | 2 +- man/coloc_analysis.Rd | 10 ++++++++++ man/manhattan_and_qq.Rd | 6 ++++-- man/miami_plot.Rd | 14 +++++++++++--- man/standardise_gwas.Rd | 4 +++- 8 files changed, 48 insertions(+), 15 deletions(-) diff --git a/R/coloc.R b/R/coloc.R index 87e261e..7e54865 100644 --- a/R/coloc.R +++ b/R/coloc.R @@ -353,7 +353,12 @@ parse_bf_bf_result <- function(result, exposure_name, locus_name, n_snps) { #' run_coloc_analysis takes two already harmonised gwases, and runs coloc on the results #' @param first_gwas first gwas to be run through coloc. This is the gwas that results will be based off #' @param second_gwas second gwas to be run through coloc -#' @returns tibble of coloc results (h0 - h4) +#' @param exposure_name name of exposure to perform coloc on +#' @param chr chromosome to perform coloc on +#' @param bp base pair position to perform coloc on +#' @param range range to filter in base pairs +#' @param default_n default sample size +#' @return tibble of coloc results (h0 - h4) #' @import coloc #' @import tibble #' @export diff --git a/R/graphs.R b/R/graphs.R index 3ba3bee..61fea2e 100644 --- a/R/graphs.R +++ b/R/graphs.R @@ -96,8 +96,9 @@ grouped_bar_chart <- function(data, title, x_column, y_column, group_column, out #' manhattan_and_qq: produce manhattan and qq plot from a GWAS file #' #' @param gwas_filename file of a gwas that includes CHR, CP, P, and SNP -#' @param name name of plots to be saved (and named as a header in graph) -#' @param save_dir defaults to 'scratch/results' +#' @param manhattan_filename file to save the manhattan plot +#' @param qq_filename file to save the qq plot +#' @param include_qq logical flag on if to include the qq plot #' @return 2 plots: one manhattan plot and one QQ plot (with lambda included) #' @import grDevices #' @import qqman @@ -126,9 +127,13 @@ manhattan_and_qq <- function(gwas_filename, manhattan_filename, qq_filename, inc #' miami_plot: produce miami plot of GWAS data from two gwases #' -#' @param gwas_dataframe a dataframe that includes CHR, CP, P, and SNP -#' @param name name of plots to be saved (and named as a header in graph) -#' @param save_dir defaults to 'scratch/results' +#' @param first_gwas_filename filename of first GWAS +#' @param second_gwas_filename filename of second GWAS +#' @param miami_plot_file file to save the miami plot +#' @param title title of the plot +#' @param chr chromosome to perform miami plot on +#' @param bp base pair position to perform miami plot on +#' @param range range to filter in base pairs #' @import grDevices #' @import qqman #' @import graphics diff --git a/R/gwas_formatting.R b/R/gwas_formatting.R index 4af33d4..3b08ee6 100644 --- a/R/gwas_formatting.R +++ b/R/gwas_formatting.R @@ -9,11 +9,12 @@ #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values #' @param output_columns column header map used for renaming GWAS: #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values +#' @param remove_extra_columns logical flag on if to remove extra columns #' @param populate_eaf If TRUE, fill missing \code{EAF} from the 1000 Genomes LD panel (\code{ANCESTRY.bim} + \code{ANCESTRY.frq} under \code{THOUSAND_GENOMES_DIR}). #' @param ancestry Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE. #' @param flip_alleles If TRUE (default), reorder EA/OA alphabetically and flip BETA, EAF, Z accordingly. #' Set to FALSE to keep alleles as-is (useful when you only need to populate RSIDs, EAF, or change build). -#' @return modified gwas: saves new gwas in {output_file} if present +#' @return modified gwas: saves new gwas in output_file if present #' @import vroom #' @import shiny #' @export @@ -68,7 +69,7 @@ standardise_gwas <- function(gwas, #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values #' @param output_columns column header map used for renaming GWAS: #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values -#' @return modified gwas: saves new gwas in {output_file} if present +#' @return modified gwas: saves new gwas in output_file if present #' @import vroom #' @export change_snp_identifiers <- function(gwas, diff --git a/man/change_snp_identifiers.Rd b/man/change_snp_identifiers.Rd index fff5008..b27b398 100644 --- a/man/change_snp_identifiers.Rd +++ b/man/change_snp_identifiers.Rd @@ -31,7 +31,7 @@ can be list() of key/value pairs, string of row in predefined_column_maps, or co can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} } \value{ -modified gwas: saves new gwas in {output_file} if present +modified gwas: saves new gwas in output_file if present } \description{ change_snp_identifiers: changes the SNP identifiers of a GWAS to the output reference build diff --git a/man/coloc_analysis.Rd b/man/coloc_analysis.Rd index 4d3a04c..4f492d5 100644 --- a/man/coloc_analysis.Rd +++ b/man/coloc_analysis.Rd @@ -18,6 +18,16 @@ coloc_analysis( \item{first_gwas}{first gwas to be run through coloc. This is the gwas that results will be based off} \item{second_gwas}{second gwas to be run through coloc} + +\item{exposure_name}{name of exposure to perform coloc on} + +\item{chr}{chromosome to perform coloc on} + +\item{bp}{base pair position to perform coloc on} + +\item{range}{range to filter in base pairs} + +\item{default_n}{default sample size} } \value{ tibble of coloc results (h0 - h4) diff --git a/man/manhattan_and_qq.Rd b/man/manhattan_and_qq.Rd index 4460836..8d05879 100644 --- a/man/manhattan_and_qq.Rd +++ b/man/manhattan_and_qq.Rd @@ -14,9 +14,11 @@ manhattan_and_qq( \arguments{ \item{gwas_filename}{file of a gwas that includes CHR, CP, P, and SNP} -\item{name}{name of plots to be saved (and named as a header in graph)} +\item{manhattan_filename}{file to save the manhattan plot} -\item{save_dir}{defaults to 'scratch/results'} +\item{qq_filename}{file to save the qq plot} + +\item{include_qq}{logical flag on if to include the qq plot} } \value{ 2 plots: one manhattan plot and one QQ plot (with lambda included) diff --git a/man/miami_plot.Rd b/man/miami_plot.Rd index 84d5c34..d51a87c 100644 --- a/man/miami_plot.Rd +++ b/man/miami_plot.Rd @@ -15,11 +15,19 @@ miami_plot( ) } \arguments{ -\item{gwas_dataframe}{a dataframe that includes CHR, CP, P, and SNP} +\item{first_gwas_filename}{filename of first GWAS} -\item{name}{name of plots to be saved (and named as a header in graph)} +\item{second_gwas_filename}{filename of second GWAS} -\item{save_dir}{defaults to 'scratch/results'} +\item{miami_plot_file}{file to save the miami plot} + +\item{title}{title of the plot} + +\item{chr}{chromosome to perform miami plot on} + +\item{bp}{base pair position to perform miami plot on} + +\item{range}{range to filter in base pairs} } \description{ miami_plot: produce miami plot of GWAS data from two gwases diff --git a/man/standardise_gwas.Rd b/man/standardise_gwas.Rd index e32d3bb..df658df 100644 --- a/man/standardise_gwas.Rd +++ b/man/standardise_gwas.Rd @@ -38,6 +38,8 @@ can be list() of key/value pairs, string of row in predefined_column_maps, or co \item{output_columns}{column header map used for renaming GWAS: can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} +\item{remove_extra_columns}{logical flag on if to remove extra columns} + \item{populate_eaf}{If TRUE, fill missing \code{EAF} from the 1000 Genomes LD panel (\code{ANCESTRY.bim} + \code{ANCESTRY.frq} under \code{THOUSAND_GENOMES_DIR}).} \item{ancestry}{Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE.} @@ -46,7 +48,7 @@ can be list() of key/value pairs, string of row in predefined_column_maps, or co Set to FALSE to keep alleles as-is (useful when you only need to populate RSIDs, EAF, or change build).} } \value{ -modified gwas: saves new gwas in {output_file} if present +modified gwas: saves new gwas in output_file if present } \description{ standardise_gwas: takes an input gwas, changes headers, standardises allelic input, adds RSID, makes life easier From bc568c554a68dc43aa0288021deb3a155cdaac0b Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 27 Apr 2026 22:49:02 +0100 Subject: [PATCH 14/85] one more documentation fix :/ --- R/gwas_formatting.R | 3 +-- man/change_snp_identifiers.Rd | 3 --- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/R/gwas_formatting.R b/R/gwas_formatting.R index 3b08ee6..abef81a 100644 --- a/R/gwas_formatting.R +++ b/R/gwas_formatting.R @@ -67,8 +67,6 @@ standardise_gwas <- function(gwas, #' @param output_reference_build reference build of CHR and BP of data. Defaults to GRCh37 #' @param input_columns column header map used for renaming GWAS: #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values -#' @param output_columns column header map used for renaming GWAS: -#' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values #' @return modified gwas: saves new gwas in output_file if present #' @import vroom #' @export @@ -236,6 +234,7 @@ change_column_names <- function(gwas, columns = list(), remove_extra_columns = F #' BETA, EAF, and Z to match. When FALSE, alleles are uppercased and the SNP #' column is rebuilt, but allele order (and effect direction) is left as-is. #' @import dplyr +#' @keywords internal standardise_alleles <- function(gwas, flip = TRUE) { gwas$EA <- toupper(gwas$EA) gwas$OA <- toupper(gwas$OA) diff --git a/man/change_snp_identifiers.Rd b/man/change_snp_identifiers.Rd index b27b398..8909f2d 100644 --- a/man/change_snp_identifiers.Rd +++ b/man/change_snp_identifiers.Rd @@ -26,9 +26,6 @@ change_snp_identifiers( \item{input_columns}{column header map used for renaming GWAS: can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} - -\item{output_columns}{column header map used for renaming GWAS: -can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values} } \value{ modified gwas: saves new gwas in output_file if present From 4d21cedf7f597478835233b9ccb21bd6a03c26d6 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 27 Apr 2026 23:11:55 +0100 Subject: [PATCH 15/85] adding more things to ignore R build --- .Rbuildignore | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.Rbuildignore b/.Rbuildignore index fffd6b6..e10d86e 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -9,4 +9,10 @@ snakemake tests venv .idea -.env_example \ No newline at end of file +.env_example +.env +.cache +^\.github$ +^\.lintr$ +^\.git$ +^\.gitignore$ From d32d0cf00409805a8121d7ae557f8ada04926020 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 27 Apr 2026 23:20:12 +0100 Subject: [PATCH 16/85] fixing import i guess, i dunno --- .Rbuildignore | 1 + DESCRIPTION | 2 ++ NAMESPACE | 23 ++++++++++++----------- R/collider_bias.R | 20 ++++++++++---------- R/coloc.R | 24 ++++++++++++------------ R/coloc_bf.R | 6 +++--- R/data_conversions.R | 14 +++++++------- R/finemap.R | 8 ++++---- R/graphs.R | 26 +++++++++++++------------- R/gwas_comparisons.R | 26 +++++++++++++------------- R/gwas_formatting.R | 22 +++++++++++----------- R/imports.R | 40 ++++++++++++++++++++++++++++++++++++++++ R/liftover.R | 4 ++-- R/mr.R | 10 +++++----- R/util.R | 20 ++++++++++---------- 15 files changed, 145 insertions(+), 101 deletions(-) create mode 100644 R/imports.R diff --git a/.Rbuildignore b/.Rbuildignore index e10d86e..d377a44 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -14,5 +14,6 @@ venv .cache ^\.github$ ^\.lintr$ +^PLATFORM_SETUP\.md$ ^\.git$ ^\.gitignore$ diff --git a/DESCRIPTION b/DESCRIPTION index 3715be0..73e727e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -6,6 +6,8 @@ Authors@R: comment = c(ORCID = "0000-0003-0292-447X")) Description: What the package does (one paragraph). License: GPL (>= 3) +Depends: + R (>= 4.1.0) Encoding: UTF-8 Roxygen: list(markdown = TRUE) RoxygenNote: 7.3.2 diff --git a/NAMESPACE b/NAMESPACE index b82b9d7..bf707c8 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -26,14 +26,14 @@ export(run_coloc_on_qtl_mr_results) export(standardise_gwas) export(volcano_plot) export(vroom_snps) -import(MendelianRandomization) -import(R.utils) -import(SlopeHunter) +import(MendelianRandomization, except = c(mr_ivw, mr_median)) +import(R.utils, except = c(env, extract, reset, setProgress, timestamp, validate)) +import(SlopeHunter, except = c(format_data)) import(TwoSampleMR) import(coloc) -import(data.table) -import(dplyr) -import(future) +import(data.table, except = c(between, first, last)) +import(dplyr, except = c(between, first, last, filter, lag)) +import(future, except = c(run)) import(ggplot2) import(ggrepel) import(grDevices) @@ -41,14 +41,15 @@ import(graphics) import(httr) import(prettydoc) import(qqman) -import(rlang) +import(rlang, except = c(`:=`)) import(rmarkdown) -import(shiny) -import(stats) +import(shiny, except = c(setProgress, validate)) +import(stats, except = c(filter, lag)) import(stringr) +import(susieR) import(tibble) -import(tidyr) -import(utils) +import(tidyr, except = c(extract)) +import(utils, except = c(timestamp)) import(vroom) importFrom(data.table,setkey) importFrom(data.table,setkeyv) diff --git a/R/collider_bias.R b/R/collider_bias.R index 27f9d9b..cba848f 100644 --- a/R/collider_bias.R +++ b/R/collider_bias.R @@ -30,12 +30,12 @@ collider_bias_results <- data.frame( #' @param adjusted_output_file file to save the adjusted GWAS #' @param p_value_thresholds p value thresholds to run corrections #' @return 2 plots: one manhattan plot and one QQ plot (with lambda included) -#' @import dplyr -#' @import SlopeHunter -#' @import TwoSampleMR -#' @import MendelianRandomization -#' @import data.table -#' @import vroom + + + + + + #' @export conduct_collider_bias_analysis <- function(incidence_gwas, subsequent_gwas, @@ -254,10 +254,10 @@ conduct_collider_bias_analysis <- function(incidence_gwas, #' @param beta number, slope of the correction #' @param se number, SE of the corrected slope #' @param output_file name of file that the corrected GWAS will be saved to -#' @import dplyr -#' @import vroom -#' @import stats -#' @import R.utils + + + + #' adjust_gwas_data_from_weights_and_save <- function(gwas, harmonised_effects, diff --git a/R/coloc.R b/R/coloc.R index 7e54865..e6bac85 100644 --- a/R/coloc.R +++ b/R/coloc.R @@ -8,9 +8,9 @@ #' @param default_n default sample size #' @param output_file file to save the results #' @return tibble of coloc results -#' @import dplyr -#' @import vroom -#' @import tibble + + + #' @export run_coloc_on_list_of_datasets <- function(first_gwas_list=list(), second_gwas_list=list(), @@ -60,10 +60,10 @@ run_coloc_on_list_of_datasets <- function(first_gwas_list=list(), #' @param exposures optional character vector of exposures to filter #' @param default_n default sample size for QTL data #' @param output_file output file path -#' @import dplyr -#' @import tidyr -#' @import vroom -#' @import utils + + + + #' @export run_coloc_on_qtl_mr_results <- function(mr_results_file, finemap_dir, @@ -163,9 +163,9 @@ load_qtl_gwas_for_mr_result <- function(mr_result, qtl_dataset) { #' @param default_n default sample size #' @param range_bp overlap window in bp (default 1e6 = ±1Mb) #' @return tibble with coloc results or NULL -#' @import coloc -#' @import dplyr -#' @import tibble + + + #' @export coloc_bf_bf_qtl_analysis <- function(finemap_dir, qtl_gwas, @@ -359,8 +359,8 @@ parse_bf_bf_result <- function(result, exposure_name, locus_name, n_snps) { #' @param range range to filter in base pairs #' @param default_n default sample size #' @return tibble of coloc results (h0 - h4) -#' @import coloc -#' @import tibble + + #' @export coloc_analysis <- function(first_gwas, second_gwas, exposure_name, chr=NA, bp=NA, range=NA, default_n=NA) { numeric_columns <- c("P", "SE", "EAF") diff --git a/R/coloc_bf.R b/R/coloc_bf.R index 9d04136..4865587 100644 --- a/R/coloc_bf.R +++ b/R/coloc_bf.R @@ -13,9 +13,9 @@ #' @param p12 prior probability a SNP is associated with both traits #' @param output_file path to write the combined coloc results TSV #' @return tibble of coloc results for every overlapping signal pair -#' @import dplyr -#' @import vroom -#' @import tibble + + + #' @export run_bf_bf_coloc <- function(finemap_dirs, overlap_kb = 1000, diff --git a/R/data_conversions.R b/R/data_conversions.R index 6b65a6d..dc62cfe 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -1,8 +1,8 @@ #' populate_gene_names: populate the gene names from the ENSEMBL_ID column #' @param gwas dataframe with the following columns: ENSEMBL_ID #' @return gwas with new column GENE_NAME -#' @import vroom -#' @import dplyr + + #' @export populate_gene_names <- function(gwas) { if ("ENSEMBL_ID" %in% colnames(gwas) && !"GENE_NAME" %in% colnames(gwas)) { @@ -134,8 +134,8 @@ populate_eaf_from_reference_panel <- function(gwas, ancestry, enabled = FALSE) { #' @param gwas dataframe with the following columns: SNP #' @param option option to populate the RSID column #' @return gwas with new column RSID -#' @import vroom -#' @import dplyr + + #' @export populate_rsid <- function(gwas, option = populate_rsid_options$none) { gc() @@ -165,9 +165,9 @@ populate_partial_rsids <- function(gwas) { return(gwas) } -#' @import data.table -#' @import tibble -#' @import future + + + populate_full_rsids <- function(gwas) { build <- rsid_builds$GRCh37 dbsnp_dir <- file.path(genomic_data_dir, "dbsnp") diff --git a/R/finemap.R b/R/finemap.R index e305719..e31715b 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -17,10 +17,10 @@ #' @param coverage credible set coverage (default 0.95) #' @param min_abs_corr minimum absolute correlation for credible sets (default 0.5) #' @return invisibly, the combined per-SNP finemap tibble (LD-matched SNPs only) -#' @import data.table -#' @import dplyr -#' @import vroom -#' @import tibble + + + + #' @export finemap_gwas <- function(gwas, clumped_file, diff --git a/R/graphs.R b/R/graphs.R index 61fea2e..8a6b977 100644 --- a/R/graphs.R +++ b/R/graphs.R @@ -4,8 +4,8 @@ #' @param output_file file to save the plot #' @param y_column column to use for the y-axis #' @return ggplot2 object -#' @import ggplot2 -#' @import shiny + + #' @export forest_plot <- function(table, title, output_file, y_column=NA) { if (!all(c("BETA", "SE") %in% names(table))) { @@ -41,7 +41,7 @@ forest_plot <- function(table, title, output_file, y_column=NA) { #' @param p_value_column column to use for the p-value #' @param q_stat_column column to use for the Q-statistic #' @return ggplot2 object -#' @import ggplot2 + #' @export grouped_forest_plot <- function(table, title, group_column, output_file, p_value_column = NA, q_stat_column = NA) { if (!("BETA" %in% names(table)) || !("SE" %in% names(table))) { @@ -80,7 +80,7 @@ grouped_forest_plot <- function(table, title, group_column, output_file, p_value ggplot2::ggsave(output_file, width = 2000, units = "px", height = forest_plot_height) } -#' @import ggplot2 + grouped_bar_chart <- function(data, title, x_column, y_column, group_column, output_file) { ggplot2::ggplot(data, ggplot2::aes(x = .data[[x_column]], y = .data[[y_column]], fill = .data[[group_column]])) + ggplot2::ggtitle(title) + @@ -100,9 +100,9 @@ grouped_bar_chart <- function(data, title, x_column, y_column, group_column, out #' @param qq_filename file to save the qq plot #' @param include_qq logical flag on if to include the qq plot #' @return 2 plots: one manhattan plot and one QQ plot (with lambda included) -#' @import grDevices -#' @import qqman -#' @import graphics + + + #' @export manhattan_and_qq <- function(gwas_filename, manhattan_filename, qq_filename, include_qq = T) { manhattan_columns <- c("SNP", "CHR", "BP", "P") @@ -134,9 +134,9 @@ manhattan_and_qq <- function(gwas_filename, manhattan_filename, qq_filename, inc #' @param chr chromosome to perform miami plot on #' @param bp base pair position to perform miami plot on #' @param range range to filter in base pairs -#' @import grDevices -#' @import qqman -#' @import graphics + + + #' @export miami_plot <- function(first_gwas_filename, second_gwas_filename, @@ -207,8 +207,8 @@ miami_plot <- function(first_gwas_filename, #' @param output_file file to save the plot #' @param p_val column to use for the p-value (default "p.adjusted") #' @return ggplot2 object -#' @import ggplot2 -#' @import ggrepel + + #' @export volcano_plot <- function(results_file, title="Volcano Plot of Results", label="EXPOSURE", num_labels=30, output_file, p_val="p.adjusted") { table <- get_file_or_dataframe(results_file) @@ -243,7 +243,7 @@ volcano_plot <- function(results_file, title="Volcano Plot of Results", label="E ggplot2::ggsave(output_file) } -#' @import ggplot2 + plot_heritability_contribution_per_ancestry <- function(heterogeneity_results_qj, output_file) { graph_width <- max(1000, nrow(heterogeneity_results_qj) * 100) plot <- tidyr::gather(as.data.frame(heterogeneity_results_qj), "key", "value", -SNP) diff --git a/R/gwas_comparisons.R b/R/gwas_comparisons.R index be0a777..61efb19 100644 --- a/R/gwas_comparisons.R +++ b/R/gwas_comparisons.R @@ -5,7 +5,7 @@ #' @param clumped_filenames list of clumped list filesnames genetred from gwas, in same order as gwases #' @param result_output_file data frame of all results of gwas comparisons concatenated #' @param variants_output_file data frame of every SNP comparison from clumped list concatenated -#' @import vroom + compare_replication_across_all_gwas_permutations <- function(gwas_filenames = c(), clumped_filenames = c(), result_output_file, @@ -37,8 +37,8 @@ compare_replication_across_all_gwas_permutations <- function(gwas_filenames = c( vroom::vroom_write(merged_variants, variants_output_file) } -#' @import dplyr -#' @import data.table + + compare_two_gwases_from_clumped_hits <- function(first_gwas, second_gwas, clumped_snps) { comparison_name <- paste0(file_prefix(first_gwas), "_vs_", file_prefix(second_gwas)) comparison_columns <- c("SNP", "BETA", "SE", "P", "RSID") @@ -77,7 +77,7 @@ compare_two_gwases_from_clumped_hits <- function(first_gwas, second_gwas, clumpe #' @param b_rep corresponding vector of associations in progression #' @param se_rep standard errors of effects in progression #' @param alpha p-value threshold to check for replication of incidence hits in progression (e.g. try 0.05 or 1e-5) -#' @import tibble + expected_vs_observed_replication <- function(b_disc, se_disc, b_rep, se_rep, alpha = 0.05) { p_sign <- pnorm(-abs(b_disc) / se_disc) * pnorm(-abs(b_disc) / se_rep) + ( @@ -120,10 +120,10 @@ expected_vs_observed_replication <- function(b_disc, se_disc, b_rep, se_rep, alp return(list(res = res, variants = res_per_variant)) } -#' @import data.table -#' @import dplyr -#' @import rlang -#' @import stats + + + + compare_heterogeneity_across_ancestries <- function(gwas_filenames = c(), clumped_filenames = c(), ancestry_list = c(), @@ -161,7 +161,7 @@ compare_heterogeneity_across_ancestries <- function(gwas_filenames = c(), plot_snps_with_heterogeneity(gwases_by_ancestry, heterogeneity_results$Q, heterogeneity_plots_per_snp_file) } -#' @import data.table + plot_snps_with_heterogeneity <- function(gwases_by_ancestry, heterogeneity_resuts_q, heterogeneity_forest_plot_file) { are_heterogeneous <- which(heterogeneity_resuts_q$Qpval < 0.05 / nrow(heterogeneity_resuts_q)) @@ -191,10 +191,10 @@ plot_snps_with_heterogeneity <- function(gwases_by_ancestry, heterogeneity_resut #' @return List #' - Q = vector of p-values for Cochrane's Q statistic for each SNP #' - Qj = Data frame of per-population outlier q values for each SNP -#' @import tibble -#' @import dplyr -#' @import vroom -#' @import stats + + + + calculate_heterogeneity_scores <- function(gwases_by_ancestry, heterogeneity_score_file) { beta <- lapply(gwases_by_ancestry, \(x) x$BETA) |> dplyr::bind_cols() se <- lapply(gwases_by_ancestry, \(x) x$SE) |> dplyr::bind_cols() diff --git a/R/gwas_formatting.R b/R/gwas_formatting.R index abef81a..ab5ca4c 100644 --- a/R/gwas_formatting.R +++ b/R/gwas_formatting.R @@ -15,8 +15,8 @@ #' @param flip_alleles If TRUE (default), reorder EA/OA alphabetically and flip BETA, EAF, Z accordingly. #' Set to FALSE to keep alleles as-is (useful when you only need to populate RSIDs, EAF, or change build). #' @return modified gwas: saves new gwas in output_file if present -#' @import vroom -#' @import shiny + + #' @export standardise_gwas <- function(gwas, output_file, @@ -68,7 +68,7 @@ standardise_gwas <- function(gwas, #' @param input_columns column header map used for renaming GWAS: #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values #' @return modified gwas: saves new gwas in output_file if present -#' @import vroom + #' @export change_snp_identifiers <- function(gwas, output_file, @@ -118,7 +118,7 @@ change_snp_identifiers <- function(gwas, #' #' @param ... elipses of gwases #' @return list of harmonised gwases -#' @import dplyr + #' @export harmonise_gwases <- function(...) { gwases <- list(...) @@ -150,7 +150,7 @@ filter_incomplete_rows <- function(gwas) { return(filtered_gwas) } -#' @import tidyr + standardise_columns <- function(gwas, N) { gwas_columns <- colnames(gwas) @@ -233,7 +233,7 @@ change_column_names <- function(gwas, columns = list(), remove_extra_columns = F #' @param flip If TRUE (default), reorder EA/OA into alphabetical order and flip #' BETA, EAF, and Z to match. When FALSE, alleles are uppercased and the SNP #' column is rebuilt, but allele order (and effect direction) is left as-is. -#' @import dplyr + #' @keywords internal standardise_alleles <- function(gwas, flip = TRUE) { gwas$EA <- toupper(gwas$EA) @@ -266,7 +266,7 @@ standardise_alleles <- function(gwas, flip = TRUE) { #' #' @param gwas dataframe with the following columns: OR, LB (lower bound), UB (upper bound) #' @return gwas with new columns BETA and SE -#' @import stats + #' @export convert_or_to_beta <- function(gwas) { gwas <- get_file_or_dataframe(gwas) @@ -284,7 +284,7 @@ convert_or_to_beta <- function(gwas) { #' convert_beta_to_or: Given a BETA and SE, calculates the OR and lower and upper bounds #' @param gwas dataframe with the following columns: BETA, SE #' @return gwas with new columns OR, OR_LB, OR_UB -#' @import stats + #' @export convert_beta_to_or <- function(gwas) { gwas <- get_file_or_dataframe(gwas) @@ -319,7 +319,7 @@ convert_z_score_to_beta <- function(gwas, sample_size) { -#' @import stats + convert_z_to_p <- function(gwas) { gwas$P <- 2 * pnorm(-abs(gwas$Z)) return(gwas) @@ -344,14 +344,14 @@ convert_p_to_negative_log_p <- function(gwas) { #' calculate_f_statistic: calculates the F-statistic from the P-value #' @param gwas dataframe with P column #' @return gwas with F_STAT column -#' @import stats + #' @export calculate_f_statistic <- function(gwas) { gwas$F_STAT <- stats::qchisq(gwas$P, 1, low=F) return(gwas) } -#' @import stats + calculate_lambda_statistic <- function(gwas) { lambda <- median(stats::qchisq(1 - gwas$P, 1)) / stats::qchisq(0.5, 1) return(lambda) diff --git a/R/imports.R b/R/imports.R new file mode 100644 index 0000000..38a34cf --- /dev/null +++ b/R/imports.R @@ -0,0 +1,40 @@ +# NAMESPACE: consolidated imports with `except` to avoid R CMD check WARNINGs from +# symbol clashes between e.g. dplyr/stats, data.table/rlang, TwoSampleMR/MR, R.utils, … +# (see 00install.out: "Warning: replacing previous import … when loading 'GeneHackman'"). +# All @import and @rawNamespace must be in the same roxygen block before the following NULL +# (otherwise roxygen2 drops them from NAMESPACE). +# +#' @keywords internal +#' @rawNamespace import(MendelianRandomization, except = c(mr_ivw, mr_median)) +#' @rawNamespace import(SlopeHunter, except = c(format_data)) +#' @rawNamespace import(data.table, except = c(between, first, last)) +#' @rawNamespace import(dplyr, except = c(between, first, last, filter, lag)) +#' @rawNamespace import(stats, except = c(filter, lag)) +#' @rawNamespace import(rlang, except = c(`:=`)) +#' @rawNamespace import(R.utils, except = c(env, extract, reset, setProgress, timestamp, validate)) +#' @rawNamespace import(future, except = c(run)) +#' @rawNamespace import(shiny, except = c(setProgress, validate)) +#' @rawNamespace import(tidyr, except = c(extract)) +#' @rawNamespace import(utils, except = c(timestamp)) +#' @import coloc +#' @import ggplot2 +#' @import ggrepel +#' @import grDevices +#' @import graphics +#' @import httr +#' @import prettydoc +#' @import qqman +#' @import rmarkdown +#' @import stringr +#' @import tibble +#' @import vroom +#' @import susieR +#' @import TwoSampleMR +#' @importFrom data.table setkey +#' @importFrom data.table setkeyv +#' @importFrom furrr future_map +#' @importFrom fst fst +#' @importFrom fst read_fst +#' @importFrom progressr progressor +#' @importFrom tibble as_tibble +NULL diff --git a/R/liftover.R b/R/liftover.R index 510bdce..bbc81cf 100644 --- a/R/liftover.R +++ b/R/liftover.R @@ -66,8 +66,8 @@ convert_reference_build_via_liftover <- function(gwas, return(gwas) } -#' @import tibble -#' @import vroom + + create_bed_file_from_gwas <- function(gwas, output_file) { gwas <- get_file_or_dataframe(gwas) diff --git a/R/mr.R b/R/mr.R index 0de5f29..689f7ae 100644 --- a/R/mr.R +++ b/R/mr.R @@ -18,9 +18,9 @@ perform_mr_on_eqtlgen_datasets <- function(gwas_filename, subcategory=NULL, expo run_mr_on_qtl_data(gwas_filename, results_output = results_output, qtl_files = eqtlgen_top_hits, exposures = exposures) } -#' @import dplyr -#' @import vroom -#' @import TwoSampleMR + + + run_mr_on_qtl_data <- function(gwas_filename, qtl_files, results_output, exposures=c()) { all_qtl_mr_results <- lapply(qtl_files, function(qtl_file) { qtl_exposure <- TwoSampleMR::read_exposure_data(qtl_file, @@ -78,8 +78,8 @@ run_mr_on_qtl_data <- function(gwas_filename, qtl_files, results_output, exposur #' #' -#' @import dplyr -#' @import vroom + + compare_interesting_mr_results <- function(pqtl_mr_results, forest_plot_output_file) { interesting_pqtl_mr_results <- vroom::vroom(pqtl_mr_results, show_col_types=F) |> dplyr::filter(p.adjusted < 0.05) |> diff --git a/R/util.R b/R/util.R index be4e92a..0e87048 100644 --- a/R/util.R +++ b/R/util.R @@ -5,8 +5,8 @@ #' @param columns vector of strings matching column names to filter columns #' @param snps vector of SNP names matching SNPs to filter rows #' @return output data frame of GWAS -#' @import dplyr -#' @import vroom + + #' @export get_file_or_dataframe <- function(input, columns=NULL, snps=NULL) { if (is.data.frame(input)) { @@ -31,8 +31,8 @@ get_file_or_dataframe <- function(input, columns=NULL, snps=NULL) { } return(output) } -#' @import data.table -#' @import dplyr + + filter_gwas_by_clumped_results <- function(gwas, clumped_results) { #vroom has trouble reading plink --clump output, so using fread rsids <- data.table::fread(clumped_results, select = "SNP")$SNP @@ -46,7 +46,7 @@ filter_gwas_by_clumped_results <- function(gwas, clumped_results) { #' @param gwas_file file of gwas to get SNPs from #' @param snps vector of SNP names to get #' @return dataframe of SNPs -#' @import vroom + #' @export vroom_snps <- function(gwas_file, snps=c()){ snps <- paste(snps, collapse="\t|") @@ -71,7 +71,7 @@ vroom_snps <- function(gwas_file, snps=c()){ #' @param bp base pair position #' @param range range to filter in base pairs #' @return gwas with filtered rows -#' @import dplyr + #' @export gwas_region <- function(gwas, chr, bp, range = 500000) { return(dplyr::filter(gwas, CHR == chr &BP > (bp - floor(range/2)) & BP < (bp + floor(range/2)))) @@ -105,7 +105,7 @@ file_prefix <- function(file_path) { return(file_prefix) } -#' @import stringr + create_dir_for_files <- function(...) { filenames <- list(...) @@ -120,9 +120,9 @@ map_rsid_list_to_snps <- function(gwas, rsids=c()) { return(gwas$SNP) } -#' @import rmarkdown -#' @import httr -#' @import prettydoc + + + create_html_from_rmd <- function(rmd_file, params = list(), output_file) { temp_file <- tempfile(fileext = ".Rmd", tmpdir = "/tmp") file.copy(rmd_file, temp_file, overwrite = TRUE) From e8dfd15c55079696d793d312812b3130ce321918 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 27 Apr 2026 23:21:11 +0100 Subject: [PATCH 17/85] adding tests back in to R --- .Rbuildignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.Rbuildignore b/.Rbuildignore index d377a44..9bffda8 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -6,7 +6,6 @@ environment.yml run_pipeline.sh scripts snakemake -tests venv .idea .env_example From dab7d50afef7d7db1533e6f6db5a33cb6f3d449d Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Tue, 28 Apr 2026 12:02:18 +0100 Subject: [PATCH 18/85] Adding coloc html result file, updating README --- R/markdown/coloc.Rmd | 106 +++++++++++++ README.md | 31 ++-- snakemake/PIPELINES.md | 214 +++++++++++++++++--------- snakemake/coloc.smk | 37 ++++- snakemake/util/common.smk | 2 +- tests/e2e_tests/run_test_pipelines.sh | 4 +- 6 files changed, 309 insertions(+), 85 deletions(-) create mode 100644 R/markdown/coloc.Rmd diff --git a/R/markdown/coloc.Rmd b/R/markdown/coloc.Rmd new file mode 100644 index 0000000..aa39f13 --- /dev/null +++ b/R/markdown/coloc.Rmd @@ -0,0 +1,106 @@ +--- +title: "GWAS pairwise colocalization" +date: "`r format(Sys.time(), '%d %B, %Y')`" +output: + prettydoc::html_pretty: + theme: cayman +--- +```{r include = FALSE} +library(vroom) + +traits_v <- if (!is.null(params$traits_ordered) && nzchar(as.character(params$traits_ordered))) { + unlist(strsplit(as.character(params$traits_ordered), "|", fixed = TRUE)) +} else { + character() +} +ancestries_v <- if (!is.null(params$ancestries_ordered) && nzchar(as.character(params$ancestries_ordered))) { + unlist(strsplit(as.character(params$ancestries_ordered), "|", fixed = TRUE)) +} else { + character() +} + +if (length(traits_v) != length(ancestries_v)) { + traits_v <- character() + ancestries_v <- character() +} + +anc_trim <- ancestries_v[nchar(trimws(ancestries_v)) > 0L] +uniq_anc <- sort(unique(trimws(anc_trim))) +cross_ancestry <- length(uniq_anc) > 1L + +coloc_exist <- nzchar(as.character(params$coloc_results)) && file.exists(as.character(params$coloc_results)) +coloc_tbl <- if (coloc_exist) { + suppressWarnings(vroom::vroom(as.character(params$coloc_results), show_col_types = FALSE)) +} else { + NULL +} +``` + +```{r echo = FALSE} +if (length(traits_v) > 0L && identical(length(traits_v), length(ancestries_v))) { + kv <- data.frame(trait_prefix = traits_v, ancestry = ancestries_v, stringsAsFactors = FALSE) + knitr::kable(kv, caption = "Input GWAS (standardised → clumped → finemapped)") +} +``` + +### Colocalization priors & overlap + +Overlapping finemapped signals were defined within ± **`r params$overlap_kb`** kb (pairs of credible-set leads on the same chromosome with lead positions within this window). + +| Setting | Value | +|---------|-------| +| `overlap_kb` | `r params$overlap_kb` | +| `p1` | `r params$p1` | +| `p2` | `r params$p2` | +| `p12` | `r params$p12` | + +```{r echo = FALSE, results = 'asis'} +if (cross_ancestry) { + ld_phrase <- if (length(uniq_anc) == 2L) { + paste0("between ", uniq_anc[1], " and ", uniq_anc[2]) + } else { + paste0("among the populations (", paste(uniq_anc, collapse = ", "), ")") + } + cat(paste0( + "> **Cross-ancestry colocalization detected.**\n>\n>", + "> Differences in LD structure ", ld_phrase, + " can **result in false-negative colocalization signals** (**H3**; incompatible ", + "causal variants in the region — see PP.H3.abf vs PP.H4.abf in the `coloc` output).\n>\n>", + "> Fine-mapping / LD reference ancestries used in this run: **", + paste(ancestries_v, collapse = "**, **"), + "**.\n" + )) +} +``` + +```{r echo = FALSE, results = 'asis'} +if (!cross_ancestry && length(uniq_anc) == 1L) { + cat(paste0( + '*All GWAS in this pipeline were analysed with ancestry **', + uniq_anc[1], + '** for LD (clumping / fine-mapping).*\n\n' + )) +} +``` + + +### Colocalization results + +Overlapping signals were tested pairwise with `coloc::coloc.bf_bf()` using SuSiE-derived log-Bayes-factor columns from the fine-mapping outputs. + +```{r echo = FALSE} +if (!is.null(coloc_tbl) && nrow(coloc_tbl) > 0L) { + knitr::kable(dplyr::arrange(coloc_tbl, dplyr::desc(PP.H4.abf)) |> dplyr::filter(PP.H4.abf > 0.8), caption = "All significant (PP.H4.abf > 0.8) pairwise colocalisation results") +} else { + cat("(No significant pairwise colocalisation rows returned — insufficient overlapping finemap signals across traits.)") +} +``` + +### Additional info + +**Please do us a favour and cite this pipeline: https://doi.org/10.5281/zenodo.10624713** + +* This pipeline was run using the github repository: https://github.com/MRCIEU/GeneHackman +* and the docker image: docker://mrcieu/genehackman:`r get_docker_image_tag()` +* `coloc` R package: https://doi.org/10.1371/journal.pgen.1004383 +* `coloc` guide: https://chr1swallace.github.io/coloc/ diff --git a/README.md b/README.md index afca502..00f547c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # GeneHackman +![CI Tests](https://github.com/MRCIEU/GeneHackman/actions/workflows/main.yml/badge.svg) + [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10624713.svg)](https://doi.org/10.5281/zenodo.10624713) A pipeline for performing common genetic epidemiology tasks at the University of Bristol. @@ -11,16 +13,27 @@ Goals: ## Available Pipelines -Here is a list of available pipelines, and the steps they run +There are **six** Snakemake pipelines (grouped as two tables of three). Each pipeline is a `.smk` file under `snakemake/`; see [PIPELINES.md](snakemake/PIPELINES.md) for JSON inputs and parameters. + +### Pipelines — table 1 + +| standardise_gwas.smk | compare_gwases.smk | disease_progression.smk | +|-------------------------------------------------------|---------------------------------------------------------------------------|----------------------------------------------------------------------| +| Takes in any of: VCF, CSV, TSV, TXT (also zip/gz) | Runs **standardise_gwas** for each GWAS, then pairwise comparison tooling | Runs **standardise_gwas** for incident and subsequent GWASes | +| Optional liftover (e.g. GRCh38 → GRCh37) | PLINK clumping | Runs collider-bias-aware analyses (e.g. SlopeHunter, MR-IVW) and compares results | +| Optional RSID and EAF fill from reference panels | Heterogeneity across GWASes; LDSC *h*² and *r*g | Miami plots of unadjusted vs adjusted GWAS | +| Converts z-scores and odds ratios to BETA/SE | Expected vs observed replication metrics | Expected vs observed (before and after collider adjustment) | +| Harmonised SNP ID = `CHR:BP_EA_OA` (EA/OA sorted) | HTML report of LDSC, plots, and tables | HTML report; optional instructions to refit subsequent GWAS from collider output | +| Optional gene ↔ Ensembl mapping | | | + +### Pipelines — table 2 -| standardise_gwas.smk | compare_gwases.smk | disease_progression.smk | qtl_mr.smk | -|---------------------------------------------------------|----------------------------------------|-------------------------------------------------------|-------------------------------------------------| -| Takes in any of: vcf, csv, tsv, txt (and zip, gz) | All steps in 'standardise_gwas.smk' | All steps in 'standardise_gwas.smk' | All steps in 'standardise_gwas.smk' | -| Convert Reference Build
(GRCh38 -> GRCh37) | PLINK clumping | Runs some collider bias corrections, compares results | Run MR against top hits of specific QTL dataset | -| Populate RSID from CHR, BP, EA, and OA | Calculate heterogeneity between GWASes | Miami Plot of Collider Bias Results | Volcano Plot of Results | -| Converts z-scores and OR to BETA | LDSC h2 and rg | Expected vs. Observed Comparison | Run coloc of significant top hit MR results | -| Auto-populate GENE ID <-> ENSEMBL ID | Expected vs. Observed Comparison | | | -| Unique SNP = CHR:BP_EA_OA
(EA < OA alphabetically) | | | | +| qtl_mr.smk | finemap.smk | coloc.smk | +|----------------------------------------------------------------------------|----------------------------------------------------------------------------|---------------------------------------------------------------------------| +| Runs **standardise_gwas**, clumping, and **SuSiE** fine-mapping on one outcome GWAS | Same **standardise** + **clump** + **SuSiE** path for **each** input GWAS (one or more) | Same **standardise** + **clump** + **SuSiE** for **≥2** GWASes (required for colocalization) | +| Runs Mendelian randomization vs a chosen QTL panel (e.g. eQTLGen, MetaBrain) | Per-locus fine-mapping using summary stats and **ancestry-matched LD** (PLINK reference); outputs credible sets and LBF columns per locus | **Pairwise** `coloc::coloc.bf_bf` on overlapping finemapped signals (same chr, leads within ±`overlap_kb` kb) across all trait pairs | +| Volcano plot of MR results; **BF–BF coloc** for exposures that pass MR FDR | Finemap-only: no MR or coloc between traits (use when you only need SuSiE outputs) | Full coloc table + **HTML report** (`result_coloc.html`), including a disclaimer when ancestries differ between GWASes | +| Requires **QTL_DATA_DIR** (see `.env_example`) for QTL files | Each GWAS must declare **ancestry** (for LD) | Configurable `finemap` and `coloc` priors/overlap; see [PIPELINES.md](snakemake/PIPELINES.md) | ## Onboarding diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index c6e72dd..517417f 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -1,95 +1,169 @@ -# Pipeline Input +# Pipeline input (`input.json`) -All piplines will require a GWAS object or list of objects, they have the following properties +All pipelines consume a JSON file (path passed to `./run_pipeline.sh`, or `INPUT_FILE` in `.env`; default `./input.json`). Copy an example from `[input_templates/](input_templates/)`. -### GWAS Object: -* `file`: Full path to file. Mandatory -* `ancestry`: one of `AFR, AMR, EAS, EUR, SAS`. Mandatory for some pipelines -* `build`: one of `GRCh36, GRCh37, GRCh38`. Default: `GRCh37` -* `columns`: object of column name maps (or string of predefined map). Explained below -* `populate_rsid`: boolean value. Populates RSID column if it doesn't exist. Default `false` -* `populate_eaf`: boolean value. When `true`, missing `EAF` is filled from the 1000 Genomes LD reference panel (`/.bim` + `.frq`; generate `.frq` with `plink --bfile --freq --out `). Only variants with `is.na(EAF)` are updated. Default `false`. **Requires `ancestry` on that GWAS** (same field as `compare_gwases`: `AFR`, `AMR`, `EAS`, `EUR`, `SAS`); there is no default ancestry. +Paths like `RESULTS_DIR` and `DATA_DIR` resolve from your `.env` file (`DATA_DIR/gwas/`, `RESULTS_DIR/…`). -Pipeline-level `populate_eaf` (under the root JSON object, next to `populate_rsid`) applies to every GWAS unless a GWAS sets its own `populate_eaf`. Each GWAS that ends up with `populate_eaf` enabled must still include its own `"ancestry"` in the JSON. +See also: [GWAS harmonisation README](../README.md#how-it-works). -**GWAS Columns:** +--- -With each GWAS file, you can specify column names ex. `{"P":"pval", ...}`, if you do not specify header names it will assume your GWAS has default names +## GWAS objects (`gwases` array) -Default names : `SNP, CHR, BP, EA, OA, EAF, BETA, SE, OR, P, LOG_P, Z, OR_LB, OR_UB, RSID, N, N_CASES, ENSEMBL_ID, GENE_NAME` +Each element describes one GWAS file. -* Mandatory Columns: `CHR, BP, EA, OA` -Effect Column Options. One of these sets are mandatory: - * `BETA, SE` - * `OR, OR_LB, OR_UB` - * `Z` -* P-value Column: `P or LOG_P` -Alternatively, `columns` accepts a string of some of the more common output formats (ex: `metal`, `gwama`). There are also a list of [predefined common column maps](../inst/extdata/predefined_column_maps.csv) here. +| Field | Required | Notes | +| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `file` | **Yes** | Absolute path (recommended) or path relative to the working directory from which Snakemake runs. | +| `columns` | No | Maps logical names (`CHR`, `BETA`, …) to header names in your file, or a preset string (e.g. `metal`, `gwama`, `opengwas`). Omit to use defaults. See [predefined_column_maps.csv](../inst/extdata/predefined_column_maps.csv). | +| `N` | Varies | Sample size; **required** for compare_gwases (LDSC). Used where finemapping/coloc need `N`. | +| `ancestry` | Varies | One of `AFR`, `AMR`, `EAS`, `EUR`, `SAS`. **Required** for pipelines that use LD (clumping, finemap, coloc, qtl_mr) and whenever `populate_eaf` is enabled for that GWAS. | +| `build` | No | `GRCh36`, `GRCh37`, `GRCh38`. Default `GRCh37`. | +| `populate_rsid` | No | Per-GWAS override: `true` / `false`. With clumping and `false` at both levels, RSID population is **partial** (see below). | +| `populate_eaf` | No | Per-GWAS: if `true`, fills missing `EAF` from the 1000 Genomes reference (`/.bim` + `.frq`). Requires `ancestry`. | +| `flip_alleles` | No | If omitted, inherited from root `flip_alleles` (default `true`). If `false`, EA/OA order is preserved (see `standardise_gwas` constraints with partial RSID). | +| `remove_extra_columns` | No | Default `false`. | -### standardise_gwas -All pipelines will standardise each GWAS before running the subsequent steps. The `SNP` field will be recalculated as `CHR:POS_EA_OA`, where EA and OA are ordered alphabetically, and the subsequent BETA and EAF will be adjusted accordingly. Optional `populate_eaf` (per GWAS or pipeline) runs **after** this harmonisation and joins on `CHR`/`BP` to the reference panel. +**Effect / P-value columns** (see also top-level `output`): -* `n GWAS objects`: See above for GWAS Object explanation -* `output`: - * `build`: one of the supported reference builds. Default: `GRCh37` - * `columns`: same format as input columns. Either a object {} or predefined map string +- Required: `CHR`, `BP`, `EA`, `OA` +- One of: `BETA`+`SE`, or `OR`+`OR_LB`+`OR_UB`, or `Z` +- P-value: `P` or `LOG_P` -## disease_progression +Default column names: `SNP, CHR, BP, EA, OA, EAF, BETA, SE, OR, P, LOG_P, Z, OR_LB, OR_UB, RSID, N, N_CASES, ENSEMBL_ID, GENE_NAME`. -* `2 GWAS objects`: Incident and Subsequent GWAS. See above for GWAS Object explanation -* `plink_clump_arguments`: arguments that are fed into the `plink --clump` call. [Options here](https://zzz.bwh.harvard.edu/plink/clump.shtml) -* `output`: 2 fields in `adjusted_gwas`, where `type` can be `slopehunter`, `cwls`, or `mr_ivw`, and `p_val` can be any of `0.1, 0.01, 0.001, 1e-5` +--- -## compare_gwases +## Root-level fields (shared) -* `n GWAS objects`: See above for GWAS Object explanation - * Please also explicitly include `N` in the GWAS object, for use in the LDSC tool -* `plink_clump_arguments`: arguments that are fed into the `plink --clump` call. [Options here](https://zzz.bwh.harvard.edu/plink/clump.shtml) +These may appear on the **root** JSON object (alongside `gwases`). -## finemap -* `n GWAS objects`: See above for GWAS Object explanation. Each GWAS requires `ancestry`. -* `plink_clump_arguments`: arguments that are fed into the `plink --clump` call. [Options here](https://zzz.bwh.harvard.edu/plink/clump.shtml) -* `finemap` (optional): - * `window_kb`: half-width of fine-mapping window in kb (default 1000 = ±1 Mb) - * `max_causal`: maximum number of causal signals per locus (SuSiE L, default 10) - * `coverage`: credible set coverage (default 0.95) - * `min_abs_corr`: minimum absolute correlation for credible set purity (default 0.5) +| Field | Default | Notes | +| ------------------------------ | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `is_test` | `false` | Used by tests / logging. | +| `populate_rsid` | `false` | Pipeline-wide default; each GWAS can override. **Clumping + false** here and on each GWAS ⇒ RSID population is **partial** (chrpos-based) unless you set `populate_rsid: true` where needed. | +| `populate_eaf` | `false` | Pipeline-wide default; each GWAS can override. Any GWAS with `populate_eaf: true` must include `ancestry`. | +| `flip_alleles` | `true` | Pipeline-wide default for `standardise_gwas`. | +| `output` | `build: GRCh37` + default column map | Only `standardise_gwas` / harmonisation: target `build` and/or output column names. | +| `finemap` | See below | Present in **finemap**, **coloc**, and **qtl_mr** inputs. Omitted keys get defaults from the parser (e.g. `window_kb` defaults to **500** unless you set it under `finemap`). | +| `coloc` | See below | Only **coloc** pipeline. | +| `plink_clump_arguments` | — | String passed to `plink --clump` for pipelines that clump. [PLINK clump options](https://zzz.bwh.harvard.edu/plink/clump.shtml). | +| `qtl` | — | Only **qtl_mr** (see below). | +| `output` (disease_progression) | — | `adjusted_gwas`: `type` (`slopehunter`, `cwls`, `mr_ivw`) and `p_val`. | -## coloc -Runs standardisation, clumping, and fine-mapping on all input GWASes, then performs BF-BF colocalization (`coloc::coloc.bf_bf`) on any overlapping finemapped signals (within ±`overlap_kb` kb) across all trait pairs. +### `finemap` block (optional) -* `n GWAS objects` (at least 2): See above for GWAS Object explanation. Each GWAS requires `ancestry`. -* `plink_clump_arguments`: arguments that are fed into the `plink --clump` call -* `finemap` (optional): same options as the finemap pipeline above -* `coloc` (optional): - * `overlap_kb`: distance in kb to define overlapping signals (default 1000 = ±1 Mb) - * `p1`: prior probability a SNP is associated with trait 1 (default 1e-4) - * `p2`: prior probability a SNP is associated with trait 2 (default 1e-4) - * `p12`: prior probability a SNP is associated with both traits (default 5e-6) +Used by **finemap**, **coloc**, and **qtl_mr**. If the block is missing, defaults are filled by `parse_pipeline_input` (e.g. `window_kb` **500** unless set). -## qtl_mr -QTL summary statistics are read from **`QTL_DATA_DIR`** (see `.env` / `.env_example`): same tree as under `PIPELINE_DATA_DIR/qtl_datasets` when **`QTL_DATA_DIR`** is unset (`pqtl`, `metabrain`, `eqtlgen`, …). Point **`QTL_DATA_DIR`** at a separate mount or bucket path to download only the QTL data you need. +| Key | Meaning | Default (if missing) | +| -------------- | -------------------------------------------------------------------- | -------------------- | +| `window_kb` | Half-width of the fine-mapping window around each clumped lead (kb). | `500` | +| `max_causal` | SuSiE `L` (max causal signals per locus). | `10` | +| `coverage` | Credible set coverage. | `0.95` | +| `min_abs_corr` | Minimum |r| for credible-set purity. | `0.5` | -This pipeline now includes clumping and fine-mapping of the GWAS before MR. Colocalization uses finemapped LBF values from the GWAS and converts QTL Z-scores to LBF via `convert_z_to_lbf`, then runs `coloc::coloc.bf_bf`. -* `1 GWAS object`: See above for GWAS Object explanation. Requires `ancestry`. -* `plink_clump_arguments`: arguments that are fed into the `plink --clump` call -* `finemap` (optional): same options as the finemap pipeline above -* `qtl`: - * `dataset`: see below for options - * `subcategories`: list of subcategories to run, see below for options - * If left empty, all subcategories will be run - * `exposures`: list of specific exposures to be run. If left empty all exposures will be run in the dataset - * example: `["IL6", "CCL2"]` - * `study_type`: study type for LBF conversion, either `continuous` (default) or `categorical` +### `coloc` block (optional, **coloc** pipeline only) + + +| Key | Meaning | Default | +| ------------ | ---------------------------------------------------------------------------------------------------------------- | ------- | +| `overlap_kb` | Two finemapped signals on the same chromosome are “overlapping” if lead positions are within this distance (kb). | `1000` | +| `p1` | Coloc prior: SNP associated with trait 1. | `1e-4` | +| `p2` | Coloc prior: SNP associated with trait 2. | `1e-4` | +| `p12` | Coloc prior: SNP associated with both traits. | `5e-6` | + + +--- + +## Pipeline overview + + +| Snakemake file | Example template | One-line role | +| ------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| `[standardise_gwas.smk](../standardise_gwas.smk)` | `[input_templates/standardise_gwases.json](input_templates/standardise_gwases.json)` | Harmonise GWAS columns and builds only (no PLINK). | +| `[compare_gwases.smk](../compare_gwases.smk)` | `[input_templates/compare_gwases.json](input_templates/compare_gwases.json)` | Standardise → clump → heterogeneity / LDSC / expected–observed plots. | +| `[disease_progression.smk](../disease_progression.smk)` | `[input_templates/disease_progression.json](input_templates/disease_progression.json)` | Incident vs subsequent GWAS: collider bias, plots, comparisons. | +| `[finemap.smk](../finemap.smk)` | `[input_templates/finemap.json](input_templates/finemap.json)` | Standardise → clump → SuSiE RSS fine-mapping per GWAS (no pairwise coloc). | +| `[coloc.smk](../coloc.smk)` | `[input_templates/coloc.json](input_templates/coloc.json)` | Same as finemap prep for ≥2 GWAS, then pairwise `coloc::coloc.bf_bf` + HTML report. | +| `[qtl_mr.smk](../qtl_mr.smk)` | `[input_templates/qtl_mr.json](input_templates/qtl_mr.json)` | One GWAS: MR vs a QTL panel, volcano plot, BF–BF coloc for MR hits. | + + +--- + +## `standardise_gwas` + +Harmonisation only (`snakemake/standardise_gwas.smk`). + +- **GWAS**: one or more objects (see above). +- **Root**: optional `populate_rsid`, `populate_eaf`, `flip_alleles`, `output.build` / `output.columns`, `is_test`. +- **Outputs**: `{DATA_DIR}/gwas/_std.tsv.gz` per input file. + +--- + +## `compare_gwases` + +- **GWAS**: two or more; include `**N`** on each for LDSC. +- **Root**: `plink_clump_arguments`, optional `populate_rsid` / `populate_eaf`. +- **Behaviour**: same harmonisation as other pipelines, then PLINK clumping, heterogeneity, LDSC *h*² / *r*g, expected vs observed, HTML report. + +--- + +## `disease_progression` + +- **GWAS**: exactly **two** (incident and subsequent). +- **Root**: `plink_clump_arguments`, optional `populate_rsid`, and `**output.adjusted_gwas`**: `type` ∈ `slopehunter`, `cwls`, `mr_ivw`; `p_val` ∈ `0.1`, `0.01`, `0.001`, `1e-5`. + +--- + +## `finemap` + +SuSiE fine-mapping per GWAS — no MR, no trait–trait coloc. + +- **GWAS**: one or more; each needs `**ancestry`** (LD reference for clumping and LD matrix for `susieR::susie_rss`). +- **Root**: `plink_clump_arguments`, optional `populate_rsid` / `populate_eaf`, optional `**finemap`** block (see above). Example template sets `window_kb` to `1000`. +- **Outputs** (under `RESULTS_DIR`): `finemap//` per GWAS (per-locus `*_finemap.tsv.gz`, etc.). + +--- + +## `coloc` + +Standardise → clump → finemap for **all** input GWAS, then **pairwise** BF–BF colocalisation between overlapping finemapped signals (`coloc::coloc.bf_bf`). + +- **GWAS**: **at least two**; each needs `**ancestry`**. +- **Root**: `plink_clump_arguments`, optional `populate_rsid` / `populate_eaf`, optional `**finemap`** and `**coloc**` blocks (see tables above). +- **Outputs** (under `RESULTS_DIR`): `coloc/coloc_results.tsv`, `coloc/result_coloc.html` (summary table sorted by **PP.H4.abf**; includes a **cross-ancestry disclaimer** when more than one ancestry code is used across GWAS). + +--- + +## `qtl_mr` + +- **GWAS**: exactly **one** outcome GWAS; `**ancestry`** required. +- **Environment**: QTL summary data from `**QTL_DATA_DIR`** (see `.env` / `.env_example`); if unset, defaults follow `PIPELINE_DATA_DIR/qtl_datasets` layout (`pqtl`, `metabrain`, `eqtlgen`, …). +- **Root**: `plink_clump_arguments`, optional `**finemap`** (same keys as finemap pipeline), and `**qtl**`: + - `dataset` — e.g. `metabrain`, `eqtlgen` + - `subcategory` — one sub-run, e.g. `cortex` (MetaBrain) or `cis` (eQTLGen); combined with `dataset` in output names + - `exposures` — optional list of exposure names; if empty, all exposures in that dataset run + - `study_type` — `continuous` (default) or `categorical` (affects LBF conversion from QTL *Z*-scores) + +**Dataset / subcategory examples** (see also repository docs): + +- **metabrain**: `basalganglia`, `cerebellum`, `cortex`, `hippocampus`, `spinalcord` +- **eqtlgen**: `cis` (trans may be added later) + +Pipeline flow: standardise → clump → finemap → MR → volcano → BF–BF coloc on significant MR results (GWAS LBF vs QTL LBF from `convert_z_to_lbf`). + +--- + +## References + +- Expected vs observed: doi:10.1038/nature17671 +- LDSC: [github.com/bulik/ldsc](https://github.com/bulik/ldsc) +- `coloc`: [chr1swallace.github.io/coloc](https://chr1swallace.github.io/coloc/) +- Pipeline DOI: [10.5281/zenodo.10624713](https://doi.org/10.5281/zenodo.10624713) -Available Datasets and Subcategories: -* dataset: `metabrain` - * subcategories: `basalganglia, cerebellum, cortex, hippocampus, spinalcord` -* dataset: `eqtlgen` - * subcategories: `cis` (future: `trans`) diff --git a/snakemake/coloc.smk b/snakemake/coloc.smk index 954a637..1cd712b 100644 --- a/snakemake/coloc.smk +++ b/snakemake/coloc.smk @@ -33,12 +33,17 @@ finemap_dirs_str = " ".join([g.finemap_dir for g in pipeline.gwases]) trait_names_str = " ".join(trait_names) coloc_results = RESULTS_DIR + "coloc/coloc_results.tsv" +results_file = RESULTS_DIR + "coloc/result_coloc.html" + +trait_bar = "|".join(trait_names) +ancestry_bar = "|".join([g.ancestry for g in pipeline.gwases]) rule all: input: expand(std_file_pattern, prefix=trait_names), expand(finemap_dir_pattern, prefix=trait_names), - coloc_results + coloc_results, + results_file include: "rules/standardise_rule.smk" include: "rules/clumping_rule.smk" @@ -100,9 +105,35 @@ rule run_coloc: --output_file {output.coloc_results} """ +rmd_report_params = { + "coloc_results": coloc_results, + "traits_ordered": trait_bar, + "ancestries_ordered": ancestry_bar, + "overlap_kb": str(coloc_overlap_kb), + "p1": str(coloc_p1), + "p2": str(coloc_p2), + "p12": str(coloc_p12), +} +rmd_report_param_string = turn_dict_into_cli_string(rmd_report_params) + +rule create_results_file: + threads: 4 + resources: + mem = "8G", + input: + coloc_results + output: results_file + shell: + """ + Rscript create_results_file.R \ + --rmd_file /home/R/markdown/coloc.Rmd \ + --params '{rmd_report_param_string}' \ + --output_file "{output}" + """ + onsuccess: - files = [g.finemap_dir for g in pipeline.gwases] + [coloc_results] - onsuccess(pipeline_name, files, is_test=pipeline.is_test) + files = [g.finemap_dir for g in pipeline.gwases] + [coloc_results, results_file] + onsuccess(pipeline_name, files, results_file, is_test=pipeline.is_test) onerror: onerror_message(pipeline_name, is_test=pipeline.is_test) diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index ce5aa2a..348e779 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -278,7 +278,7 @@ def onsuccess(pipeline_name, files_created=list(), results_file=None, is_test=Fa if results_file: print("\n---------------------") print("PLEASE VIEW THIS HTML FILE FOR A SUMMARY OF RESULTS:") - print(f"scp {user}@bc4login1.acrc.bris.ac.uk:{results_file} .") + print(f"{results_file}.") print(f"\n\n\033[1;35;40m Please do us a favour and cite this pipeline: https://doi.org/10.5281/zenodo.10624713 \033[0m\n") copy_data_to_rdfs(files_created) diff --git a/tests/e2e_tests/run_test_pipelines.sh b/tests/e2e_tests/run_test_pipelines.sh index bc20821..35ad938 100755 --- a/tests/e2e_tests/run_test_pipelines.sh +++ b/tests/e2e_tests/run_test_pipelines.sh @@ -7,7 +7,7 @@ set -e ./run_pipeline.sh snakemake/finemap.smk tests/testthat/data/snakemake_inputs/finemap.json -F ./run_pipeline.sh snakemake/coloc.smk tests/testthat/data/snakemake_inputs/coloc.json -F -if [[ -n "${QTL_DATASETS}" ]]; then - ./run_pipeline.sh snakemake/qtl_mr.smk tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json -F +if [[ -n "${QTL_DATA_DIR}" ]]; then + ./run_pipeline.sh snakemake/qtl_mr.smk tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.json -F fi From 08e9254b340771c787db44b7f28b1f9a7639e916 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 29 Apr 2026 09:33:18 +0100 Subject: [PATCH 19/85] update readme with gsutil data --- README.md | 63 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 00f547c..584f337 100644 --- a/README.md +++ b/README.md @@ -50,25 +50,55 @@ or if you have already created the environment ```conda activate genehackman``` -### 3. Populate .env and input.json files +### 3. Get reference data (Google Cloud Storage) + +Much of what the pipelines expect (LD references, LDSC masks, MetaBrain/QTL summaries, …) ships in two buckets. Copy them somewhere on your machine or HPC scratch space (**do not commit data to git**). + +| Bucket | Typical use | Env var to set after download | +|--------|--------------|-------------------------------| +| Mandatory: `gs://genehackman` | Core pipeline bundle (e.g. 1000 Genomes LD panels, genomic assets, LDSC helpers under the layout expected under `PIPELINE_DATA_DIR`) | **`PIPELINE_DATA_DIR`** → absolute path of the folder that mirrors this bucket root (same internal directory names as on GCS). | +| Optional: `gs://genehackman-qtl` | QTL summary statistic trees used by **`qtl_mr`** | **`QTL_DATA_DIR`** → absolute path of the folder containing that hierarchy. Needed for **`qtl_mr`**; ignored by other pipelines. | + +**Authenticate** (private buckets — use whichever applies): [install Google Cloud SDK](https://cloud.google.com/sdk/docs/install), then `gcloud auth login` so `gsutil` can read the buckets you’ve been granted. + +**Download with `gsutil`** (multipart copy; adjust local paths): + +```bash +mkdir -p /path/to/my_pipeline_data /path/to/my_qtl_data +gsutil -m rsync -r gs://genehackman/ /path/to/my_pipeline_data/ +gsutil -m rsync -r gs://genehackman-qtl/ /path/to/my_qtl_data/ +``` + +To copy only selected prefixes instead of the QTL bucket, use `gsutil -m cp -r gs://genehackman-qtl/SOME_PREFIX/ ...` as needed. For example, you may only be interested in cis, not trans data. + +**Download via web UI:** Open [Google Cloud Console → Cloud Storage](https://console.cloud.google.com/storage/browser), select the project/storage account you were given access to, open bucket **`genehackman`** or **`genehackman-qtl`**, and download files or folders in the browser (or use **“Activate Cloud Shell”** and run `gsutil` there, then drag files out if convenient). + +Then point your **`.env`** at those directories (trailing slashes are fine): + +```bash +PIPELINE_DATA_DIR=/path/to/my_pipeline_data/ +QTL_DATA_DIR=/path/to/my_qtl_data/ +``` + +Alternatives if you don’t set **`QTL_DATA_DIR`** directly: keep the same directory layout under **`PIPELINE_DATA_DIR/qtl_datasets/`**, or follow [PLATFORM_SETUP.md](PLATFORM_SETUP.md) (bind mounts and defaulting **`QTL_DATA_DIR`** to **`PIPELINE_DATA_DIR/qtl_datasets`**). + +### 4. Populate `.env` and `input.json` files `cp .env_example .env` -* populate the DATA_DIR, RESULTS_DIR and RDFS_DIR environment variables in .env file -These should probably be in your *work* or *scratch* space (`/user/work/{userid}/...`) -* PIPELINE_DATA_DIR: data that can be found here -* QTL_DATA_DIR (optional): if you want to run the QTL MR pipieline -* RDFS_DIR is optional. All generated files can be copied automatically. Please ensure the path -ends in `working/` +* Populate **`DATA_DIR`**, **`RESULTS_DIR`**, and optional **`RDFS_DIR`** — usually under *work* or *scratch* (e.g. `/user/work/{userid}/...`). +* Set **`PIPELINE_DATA_DIR`** to the path where you unpacked **`genehackman`** (see §3). +* Set **`QTL_DATA_DIR`** to the path where you unpacked **`genehackman-qtl`** if you run **`qtl_mr`** (can be left empty otherwise; see [.env_example](.env_example)). +* **`RDFS_DIR`** is optional for auto-copy of outputs; paths should end with `working/` if you use this feature. * **Container cache:** If there is no pre-built `genehackman_.sif` under `PIPELINE_DATA_DIR`, Snakemake pulls the `docker://` image and caches the SIF under `.snakemake/singularity` by default. Set **`GENEHACKMAN_SINGULARITY_PREFIX`** in `.env` to use another directory (e.g. scratch). Running `snakemake` without `./run_pipeline.sh`? Pass `--singularity-prefix /path` or add `singularity-prefix:` to your profile `config.yaml`. -### Fill out input.json file -* Ex: `cp snakemake/input_templates/compare_gwases.json input.json` -* Each pipeline (as defined in `snakemake` directory) has its own input format. - * [Here are example pipelines here, copy to input.json](snakemake/input_templates/) - * [Documentation per pipeline](snakemake/PIPELINES.md) -* You can either copy into input.json, or supply the file into the script from another location +**`input.json`** -### 4. Run the pipeline +* Example: `cp snakemake/input_templates/compare_gwases.json input.json` +* Each pipeline has its own shape; examples live under [`snakemake/input_templates/`](snakemake/input_templates/). +* See [PIPELINES.md](snakemake/PIPELINES.md) for all fields. +* You can symlink or pass a different JSON path via `INPUT_FILE` / the second argument to `run_pipeline.sh`. + +### 5. Run the pipeline `./run_pipeline.sh snakemake/.smk ` @@ -86,10 +116,11 @@ The standard column naming for GWASes are: A full list of names and default values [can be found here](inst/extdata/predefined_column_maps.csv) -There are 3 main components to the pipeline +There are 2 main components to the pipeline 1. Snakemake to define the steps to complete for each pipeline. 2. Docker / Singularity container with installed languages (R and python), packages, os libraries, and code -3. Slurm: each snakemake step spins up a singularity container inside a slurm job. Each step can specify different slurm requirements. + +The pipeline can be run either on its own, or via your institutions HPC. Each snakemake step spins up a singularity container inside an HPC job (ex. slurm). Each step can specify different cpu/memory requirements. ### Repository Organisation From 88fbeb72e04cb0e0de71ca86f74c52138d9c67c0 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 29 Apr 2026 10:00:11 +0100 Subject: [PATCH 20/85] Changing from json input files to yaml input files --- .gitignore | 1 + PLATFORM_SETUP.md | 9 +++--- README.md | 12 ++++---- docker/requirements.txt | 1 + environment.yml | 1 + run_pipeline.sh | 6 ++-- scripts/change_reference_build_via_liftover.R | 11 +++---- scripts/change_snp_identifiers.R | 5 ++-- scripts/standardise_gwas.R | 5 ++-- snakemake/PIPELINES.md | 20 +++++++------ snakemake/input_templates/coloc.json | 30 ------------------- snakemake/input_templates/coloc.yaml | 21 +++++++++++++ snakemake/input_templates/compare_gwases.json | 24 --------------- snakemake/input_templates/compare_gwases.yaml | 24 +++++++++++++++ .../input_templates/disease_progression.json | 23 -------------- .../input_templates/disease_progression.yaml | 21 +++++++++++++ snakemake/input_templates/finemap.json | 18 ----------- snakemake/input_templates/finemap.yaml | 12 ++++++++ snakemake/input_templates/qtl_mr.json | 24 --------------- snakemake/input_templates/qtl_mr.yaml | 25 ++++++++++++++++ .../input_templates/standardise_gwases.json | 15 ---------- .../input_templates/standardise_gwases.yaml | 17 +++++++++++ snakemake/util/common.smk | 29 +++++++++++++++--- snakemake/util/constants.smk | 2 +- tests/e2e_tests/run_test_pipelines.sh | 12 ++++---- .../testthat/data/snakemake_inputs/coloc.json | 18 ----------- .../testthat/data/snakemake_inputs/coloc.yaml | 11 +++++++ .../data/snakemake_inputs/compare_gwases.json | 18 ----------- .../data/snakemake_inputs/compare_gwases.yaml | 11 +++++++ .../snakemake_inputs/disease_progression.json | 25 ---------------- .../snakemake_inputs/disease_progression.yaml | 15 ++++++++++ .../data/snakemake_inputs/finemap.json | 18 ----------- .../data/snakemake_inputs/finemap.yaml | 11 +++++++ .../data/snakemake_inputs/qtl_mr_eqtlgen.json | 16 ---------- .../data/snakemake_inputs/qtl_mr_eqtlgen.yaml | 10 +++++++ .../snakemake_inputs/qtl_mr_metabrain.json | 17 ----------- .../snakemake_inputs/qtl_mr_metabrain.yaml | 11 +++++++ .../snakemake_inputs/standardise_gwas.json | 24 --------------- .../snakemake_inputs/standardise_gwas.yaml | 13 ++++++++ 39 files changed, 274 insertions(+), 312 deletions(-) delete mode 100644 snakemake/input_templates/coloc.json create mode 100644 snakemake/input_templates/coloc.yaml delete mode 100644 snakemake/input_templates/compare_gwases.json create mode 100644 snakemake/input_templates/compare_gwases.yaml delete mode 100644 snakemake/input_templates/disease_progression.json create mode 100644 snakemake/input_templates/disease_progression.yaml delete mode 100644 snakemake/input_templates/finemap.json create mode 100644 snakemake/input_templates/finemap.yaml delete mode 100644 snakemake/input_templates/qtl_mr.json create mode 100644 snakemake/input_templates/qtl_mr.yaml delete mode 100644 snakemake/input_templates/standardise_gwases.json create mode 100644 snakemake/input_templates/standardise_gwases.yaml delete mode 100644 tests/testthat/data/snakemake_inputs/coloc.json create mode 100644 tests/testthat/data/snakemake_inputs/coloc.yaml delete mode 100644 tests/testthat/data/snakemake_inputs/compare_gwases.json create mode 100644 tests/testthat/data/snakemake_inputs/compare_gwases.yaml delete mode 100644 tests/testthat/data/snakemake_inputs/disease_progression.json create mode 100644 tests/testthat/data/snakemake_inputs/disease_progression.yaml delete mode 100644 tests/testthat/data/snakemake_inputs/finemap.json create mode 100644 tests/testthat/data/snakemake_inputs/finemap.yaml delete mode 100644 tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.json create mode 100644 tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.yaml delete mode 100644 tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json create mode 100644 tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.yaml delete mode 100644 tests/testthat/data/snakemake_inputs/standardise_gwas.json create mode 100644 tests/testthat/data/snakemake_inputs/standardise_gwas.yaml diff --git a/.gitignore b/.gitignore index a887e1b..9978228 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ pipeline_logs/ .cache/ .ipynb_checkpoints/ +*input.yaml *input.json .env .bashrc diff --git a/PLATFORM_SETUP.md b/PLATFORM_SETUP.md index c5baae3..65ef81f 100644 --- a/PLATFORM_SETUP.md +++ b/PLATFORM_SETUP.md @@ -6,12 +6,12 @@ General prerequisites: 1. **Conda env:** `conda env create -f environment.yml` then `conda activate genehackman` 2. **`.env`:** copy from `.env_example` and set at least `DATA_DIR`, `RESULTS_DIR`, `PIPELINE_DATA_DIR` (and paths your pipeline needs for genomic / 1000G data). Optionally set **`QTL_DATA_DIR`** when large QTL mirrors live on another volume or object-store mount; if omitted, `run_pipeline.sh` defaults it to `PIPELINE_DATA_DIR/qtl_datasets`. -3. **Input JSON:** see `snakemake/input_templates/` and `snakemake/PIPELINES.md`. +3. **Input YAML:** see `snakemake/input_templates/` and `snakemake/PIPELINES.md`. -**`./run_pipeline.sh`** loads `.env`, picks a **profile** (`GENEHACKMAN_PROFILE`, default `snakemake/local/`), then runs Snakemake. Pass the **`.smk` workflow first**, then optional input JSON, for example: +**`./run_pipeline.sh`** loads `.env`, picks a **profile** (`GENEHACKMAN_PROFILE`, default `snakemake/local/`), then runs Snakemake. Pass the **`.smk` workflow first**, then optional input YAML, for example: ```bash -./run_pipeline.sh snakemake/standardise_gwas.smk path/to/input.json +./run_pipeline.sh snakemake/standardise_gwas.smk path/to/input.yaml ``` --- @@ -125,11 +125,12 @@ Copy `snakemake/slurm_singularity/config.yaml` (or `bp1`) as a template, replace | Variable | Purpose | |----------|---------| | **`GENEHACKMAN_PROFILE`** | Snakemake profile path (default `snakemake/local/`). Example HPC: `snakemake/bp1/` | -| **`INPUT_FILE`** | Path to pipeline JSON (also set by `run_pipeline.sh` from the second argument) | | **`GENEHACKMAN_SINGULARITY_PREFIX`** | Snakemake `--singularity-prefix`: where pulled `.sif` images are stored | | **`GENEHACKMAN_LIMA_INSTANCE`** | Lima VM name when using a `limactl shell -- apptainer` wrapper (default often `apptainer`) | | **`PIPELINE_LOG_DIR`** | Optional override for log-directory hints on errors (see `snakemake/util/constants.smk`) | +The **pipeline YAML path** is not configured via `.env`. Use **`./run_pipeline.sh .smk [path/to/input.yaml]`** (defaults to **`input.yaml`**) or run **`snakemake`** with **`--config genehackman_input=path/to/input.yaml`** (see `snakemake/PIPELINES.md`). + Use **`.env`** for values you want loaded every time `./run_pipeline.sh` runs (`export $(cat .env | xargs)`). --- diff --git a/README.md b/README.md index 584f337..1342528 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Goals: ## Available Pipelines -There are **six** Snakemake pipelines (grouped as two tables of three). Each pipeline is a `.smk` file under `snakemake/`; see [PIPELINES.md](snakemake/PIPELINES.md) for JSON inputs and parameters. +There are **six** Snakemake pipelines (grouped as two tables of three). Each pipeline is a `.smk` file under `snakemake/`; see [PIPELINES.md](snakemake/PIPELINES.md) for YAML inputs and parameters. ### Pipelines — table 1 @@ -82,7 +82,7 @@ QTL_DATA_DIR=/path/to/my_qtl_data/ Alternatives if you don’t set **`QTL_DATA_DIR`** directly: keep the same directory layout under **`PIPELINE_DATA_DIR/qtl_datasets/`**, or follow [PLATFORM_SETUP.md](PLATFORM_SETUP.md) (bind mounts and defaulting **`QTL_DATA_DIR`** to **`PIPELINE_DATA_DIR/qtl_datasets`**). -### 4. Populate `.env` and `input.json` files +### 4. Populate `.env` and `input.yaml` files `cp .env_example .env` * Populate **`DATA_DIR`**, **`RESULTS_DIR`**, and optional **`RDFS_DIR`** — usually under *work* or *scratch* (e.g. `/user/work/{userid}/...`). @@ -91,16 +91,16 @@ Alternatives if you don’t set **`QTL_DATA_DIR`** directly: keep the same direc * **`RDFS_DIR`** is optional for auto-copy of outputs; paths should end with `working/` if you use this feature. * **Container cache:** If there is no pre-built `genehackman_.sif` under `PIPELINE_DATA_DIR`, Snakemake pulls the `docker://` image and caches the SIF under `.snakemake/singularity` by default. Set **`GENEHACKMAN_SINGULARITY_PREFIX`** in `.env` to use another directory (e.g. scratch). Running `snakemake` without `./run_pipeline.sh`? Pass `--singularity-prefix /path` or add `singularity-prefix:` to your profile `config.yaml`. -**`input.json`** +**`input.yaml`** -* Example: `cp snakemake/input_templates/compare_gwases.json input.json` +* Example: `cp snakemake/input_templates/compare_gwases.yaml input.yaml` * Each pipeline has its own shape; examples live under [`snakemake/input_templates/`](snakemake/input_templates/). * See [PIPELINES.md](snakemake/PIPELINES.md) for all fields. -* You can symlink or pass a different JSON path via `INPUT_FILE` / the second argument to `run_pipeline.sh`. +* Pass the input YAML as the **second** argument to `run_pipeline.sh`, or rely on **`input.yaml`** in the working directory. To call **`snakemake`** yourself without the wrapper, use **`--config genehackman_input=/path/to/file.yaml`**. ### 5. Run the pipeline -`./run_pipeline.sh snakemake/.smk ` +`./run_pipeline.sh snakemake/.smk ` * By default `run_pipeline.sh` uses **local Docker** (`snakemake/local/`). On HPC, set e.g. `GENEHACKMAN_PROFILE=snakemake/bp1/` (or `bc4/`, `slurm_singularity/`). * `run_pipeline.sh` is just a convience wrapper around the `snakemake` command, if you want to do anything out of the ordinary, [please read up on snakemake](https://snakemake.readthedocs.io/en/v7.26.0/) diff --git a/docker/requirements.txt b/docker/requirements.txt index a5468e4..cdddecd 100644 --- a/docker/requirements.txt +++ b/docker/requirements.txt @@ -1,3 +1,4 @@ click==8.1.3 snakemake==7.25.4 synapseclient==2.7.2 +PyYAML>=6.0.1 diff --git a/environment.yml b/environment.yml index 861c5b9..f118f4b 100644 --- a/environment.yml +++ b/environment.yml @@ -6,6 +6,7 @@ dependencies: - python=3.11 - snakemake=7.26 - python-dotenv=1.0.0 + - pyyaml=6.0.1 - pip=24.0 - pip: - pygsheets==2.0.6 diff --git a/run_pipeline.sh b/run_pipeline.sh index 2dc2241..5557515 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -8,7 +8,7 @@ if [[ $# -lt 1 ]] ; then echo """ Error: You have to provide at least 1 argument: PIPELINE_FILE (ex. snakemake/standardise_gwas.smk) - INPUT_FILE (optional, defaults to input.json) + INPUT_FILE YAML (optional, defaults to input.yaml in the working directory) Default profile is local Docker (snakemake/local/). HPC (Slurm/Apptainer): set GENEHACKMAN_PROFILE=snakemake/bp1/ or snakemake/bc4/ (or snakemake/slurm_singularity/). @@ -36,7 +36,7 @@ else fi SMK_FILE=$1 -export INPUT_FILE="${2:-input.json}" +PIPELINE_INPUT="${2:-input.yaml}" ADDITIONAL_ARGS="${@:3}" if [[ "${PROFILE}" != snakemake/local/* ]]; then @@ -94,4 +94,4 @@ fi echo "Running pipeline with profile: ${PROFILE}" -snakemake --snakefile "${SMK_FILE}" --profile "${PROFILE}" ${ADDITIONAL_ARGS} +snakemake --snakefile "${SMK_FILE}" --profile "${PROFILE}" --config "genehackman_input=${PIPELINE_INPUT}" ${ADDITIONAL_ARGS} diff --git a/scripts/change_reference_build_via_liftover.R b/scripts/change_reference_build_via_liftover.R index aea6c24..cdd8c5a 100644 --- a/scripts/change_reference_build_via_liftover.R +++ b/scripts/change_reference_build_via_liftover.R @@ -23,8 +23,9 @@ parser <- add_argument(parser, "--output_gwas", args <- parse_args(parser) create_dir_for_files(args$output_gwas) -convert_reference_build_via_liftover(args$input_gwas, - input_reference_build = args$input_reference_build, - output_reference_build = args$output_reference_build, - output_file = args$output_gwas -) +invisible(convert_reference_build_via_liftover( + args$input_gwas, + input_reference_build = args$input_reference_build, + output_reference_build = args$output_reference_build, + output_file = args$output_gwas +)) diff --git a/scripts/change_snp_identifiers.R b/scripts/change_snp_identifiers.R index 68a07c8..09b3915 100644 --- a/scripts/change_snp_identifiers.R +++ b/scripts/change_snp_identifiers.R @@ -40,11 +40,12 @@ parser <- add_argument(parser, "--populate_rsid", args <- parse_args(parser) create_dir_for_files(args$output_gwas) -change_snp_identifiers(gwas = args$input_gwas, +invisible(change_snp_identifiers( + gwas = args$input_gwas, output_file = args$output_gwas, populate_rsid_option = args$populate_rsid, input_reference_build = args$input_build, output_reference_build = args$output_build, input_columns = args$input_columns, output_columns = args$output_columns -) +)) diff --git a/scripts/standardise_gwas.R b/scripts/standardise_gwas.R index 6b63549..0fcfa18 100644 --- a/scripts/standardise_gwas.R +++ b/scripts/standardise_gwas.R @@ -65,7 +65,8 @@ parser <- add_argument(parser, "--flip_alleles", args <- parse_args(parser) create_dir_for_files(args$output_gwas) -standardise_gwas(gwas = args$input_gwas, +invisible(standardise_gwas( + gwas = args$input_gwas, output_file = args$output_gwas, N = args$N, populate_rsid_option = args$populate_rsid, @@ -77,4 +78,4 @@ standardise_gwas(gwas = args$input_gwas, populate_eaf = args$populate_eaf, ancestry = args$ancestry, flip_alleles = args$flip_alleles -) +)) diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index 517417f..b2ce911 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -1,6 +1,8 @@ -# Pipeline input (`input.json`) +# Pipeline input (`input.yaml`) -All pipelines consume a JSON file (path passed to `./run_pipeline.sh`, or `INPUT_FILE` in `.env`; default `./input.json`). Copy an example from `[input_templates/](input_templates/)`. +All pipelines consume a **YAML** file. Use **`./run_pipeline.sh .smk [path/to/input.yaml]`** — the second argument is optional and defaults to **`input.yaml`** in the working directory. If you invoke **`snakemake` directly**, pass **`--config genehackman_input=path/to/input.yaml`** (or omit for default **`input.yaml`**). Copy an example from [`input_templates/`](input_templates/). + +Indented nesting defines hierarchy (`gwases:` lists `- item` blocks). Use `true` / `false` for booleans. Quote a string if it could be parsed as a YAML 1.1 keyword (e.g. column names `yes`, `no`). Validate syntax with [yamllint](https://www.yamllint.com/) if needed. Paths like `RESULTS_DIR` and `DATA_DIR` resolve from your `.env` file (`DATA_DIR/gwas/`, `RESULTS_DIR/…`). @@ -38,7 +40,7 @@ Default column names: `SNP, CHR, BP, EA, OA, EAF, BETA, SE, OR, P, LOG_P, Z, OR_ ## Root-level fields (shared) -These may appear on the **root** JSON object (alongside `gwases`). +These may appear at the **root** of the YAML document (alongside `gwases`). | Field | Default | Notes | @@ -86,12 +88,12 @@ Used by **finemap**, **coloc**, and **qtl_mr**. If the block is missing, default | Snakemake file | Example template | One-line role | | ------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| `[standardise_gwas.smk](../standardise_gwas.smk)` | `[input_templates/standardise_gwases.json](input_templates/standardise_gwases.json)` | Harmonise GWAS columns and builds only (no PLINK). | -| `[compare_gwases.smk](../compare_gwases.smk)` | `[input_templates/compare_gwases.json](input_templates/compare_gwases.json)` | Standardise → clump → heterogeneity / LDSC / expected–observed plots. | -| `[disease_progression.smk](../disease_progression.smk)` | `[input_templates/disease_progression.json](input_templates/disease_progression.json)` | Incident vs subsequent GWAS: collider bias, plots, comparisons. | -| `[finemap.smk](../finemap.smk)` | `[input_templates/finemap.json](input_templates/finemap.json)` | Standardise → clump → SuSiE RSS fine-mapping per GWAS (no pairwise coloc). | -| `[coloc.smk](../coloc.smk)` | `[input_templates/coloc.json](input_templates/coloc.json)` | Same as finemap prep for ≥2 GWAS, then pairwise `coloc::coloc.bf_bf` + HTML report. | -| `[qtl_mr.smk](../qtl_mr.smk)` | `[input_templates/qtl_mr.json](input_templates/qtl_mr.json)` | One GWAS: MR vs a QTL panel, volcano plot, BF–BF coloc for MR hits. | +| [`standardise_gwas.smk`](standardise_gwas.smk) | [`input_templates/standardise_gwases.yaml`](input_templates/standardise_gwases.yaml) | Harmonise GWAS columns and builds only (no PLINK). | +| [`compare_gwases.smk`](compare_gwases.smk) | [`input_templates/compare_gwases.yaml`](input_templates/compare_gwases.yaml) | Standardise → clump → heterogeneity / LDSC / expected–observed plots. | +| [`disease_progression.smk`](disease_progression.smk) | [`input_templates/disease_progression.yaml`](input_templates/disease_progression.yaml) | Incident vs subsequent GWAS: collider bias, plots, comparisons. | +| [`finemap.smk`](finemap.smk) | [`input_templates/finemap.yaml`](input_templates/finemap.yaml) | Standardise → clump → SuSiE RSS fine-mapping per GWAS (no pairwise coloc). | +| [`coloc.smk`](coloc.smk) | [`input_templates/coloc.yaml`](input_templates/coloc.yaml) | Same as finemap prep for ≥2 GWAS, then pairwise `coloc::coloc.bf_bf` + HTML report. | +| [`qtl_mr.smk`](qtl_mr.smk) | [`input_templates/qtl_mr.yaml`](input_templates/qtl_mr.yaml) | One GWAS: MR vs a QTL panel, volcano plot, BF–BF coloc for MR hits. | --- diff --git a/snakemake/input_templates/coloc.json b/snakemake/input_templates/coloc.json deleted file mode 100644 index 53ac779..0000000 --- a/snakemake/input_templates/coloc.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "gwases": [ - { - "file": "", - "columns": {}, - "N": 0, - "ancestry": "EUR" - }, - { - "file": "", - "columns": {}, - "N": 0, - "ancestry": "EUR" - } - ], - "plink_clump_arguments": "--clump-p1 5e-8 --clump-r2 0.01 --clump-kb 1000", - "finemap": { - "window_kb": 1000, - "max_causal": 10, - "coverage": 0.95, - "min_abs_corr": 0.5 - }, - "coloc": { - "overlap_kb": 1000, - "p1": 1e-4, - "p2": 1e-4, - "p12": 5e-6 - }, - "populate_rsid": false -} diff --git a/snakemake/input_templates/coloc.yaml b/snakemake/input_templates/coloc.yaml new file mode 100644 index 0000000..8d11116 --- /dev/null +++ b/snakemake/input_templates/coloc.yaml @@ -0,0 +1,21 @@ +gwases: + - file: "" + columns: {} + N: 0 + ancestry: EUR + - file: "" + columns: {} + N: 0 + ancestry: EUR +plink_clump_arguments: "--clump-p1 5e-8 --clump-r2 0.01 --clump-kb 1000" +finemap: + window_kb: 1000 + max_causal: 10 + coverage: 0.95 + min_abs_corr: 0.5 +coloc: + overlap_kb: 1000 + p1: 1e-4 + p2: 1e-4 + p12: 5e-6 +populate_rsid: false diff --git a/snakemake/input_templates/compare_gwases.json b/snakemake/input_templates/compare_gwases.json deleted file mode 100644 index 4edd40f..0000000 --- a/snakemake/input_templates/compare_gwases.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "gwases": [ - { - "file": "", - "columns": {"SNP":"", "CHR":"", "BP":"", "EA":"", "OA":"", "EAF":"", "P":"", "BETA":"", "SE":""}, - "N": 10000, - "ancestry": "EUR" - }, - { - "file": "", - "columns": {}, - "N": 10000, - "ancestry": "AFR" - }, - { - "file": "", - "columns": {}, - "N": 10000, - "ancestry": "EAS" - } - ], - "plink_clump_arguments": "--clump-p1 0.00000005", - "populate_rsid": false -} diff --git a/snakemake/input_templates/compare_gwases.yaml b/snakemake/input_templates/compare_gwases.yaml new file mode 100644 index 0000000..9f3dfdc --- /dev/null +++ b/snakemake/input_templates/compare_gwases.yaml @@ -0,0 +1,24 @@ +gwases: + - file: "" + columns: + SNP: "" + CHR: "" + BP: "" + EA: "" + OA: "" + EAF: "" + P: "" + BETA: "" + SE: "" + N: 10000 + ancestry: EUR + - file: "" + columns: {} + N: 10000 + ancestry: AFR + - file: "" + columns: {} + N: 10000 + ancestry: EAS +plink_clump_arguments: "--clump-p1 0.00000005" +populate_rsid: false diff --git a/snakemake/input_templates/disease_progression.json b/snakemake/input_templates/disease_progression.json deleted file mode 100644 index 13badb9..0000000 --- a/snakemake/input_templates/disease_progression.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "gwases": [ - { - "file": "", - "columns": {"CHR":"", "BP":"", "EA":"", "OA":"", "EAF":"", "P":"", "BETA":"", "SE":""}, - "ancestry": "EUR" - }, - { - "file": "", - "columns": {}, - "ancestry": "EAS" - } - ], - "plink_clump_arguments": "--clump-p2 0.001 --clump-r2 0.3 --clump-kb 500", - "populate_rsid": false, - "output": { - "adjusted_gwas": - { - "type" : "cwls", - "p_val": 0.001 - } - } -} diff --git a/snakemake/input_templates/disease_progression.yaml b/snakemake/input_templates/disease_progression.yaml new file mode 100644 index 0000000..add6d80 --- /dev/null +++ b/snakemake/input_templates/disease_progression.yaml @@ -0,0 +1,21 @@ +gwases: + - file: "" + columns: + CHR: "" + BP: "" + EA: "" + OA: "" + EAF: "" + P: "" + BETA: "" + SE: "" + ancestry: EUR + - file: "" + columns: {} + ancestry: EAS +plink_clump_arguments: "--clump-p2 0.001 --clump-r2 0.3 --clump-kb 500" +populate_rsid: false +output: + adjusted_gwas: + type: cwls + p_val: 0.001 diff --git a/snakemake/input_templates/finemap.json b/snakemake/input_templates/finemap.json deleted file mode 100644 index c3fd252..0000000 --- a/snakemake/input_templates/finemap.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "gwases": [ - { - "file": "", - "columns": {}, - "N": 0, - "ancestry": "EUR" - } - ], - "plink_clump_arguments": "--clump-p1 5e-8 --clump-r2 0.01 --clump-kb 1000", - "finemap": { - "window_kb": 1000, - "max_causal": 10, - "coverage": 0.95, - "min_abs_corr": 0.5 - }, - "populate_rsid": false -} diff --git a/snakemake/input_templates/finemap.yaml b/snakemake/input_templates/finemap.yaml new file mode 100644 index 0000000..c679239 --- /dev/null +++ b/snakemake/input_templates/finemap.yaml @@ -0,0 +1,12 @@ +gwases: + - file: "" + columns: {} + N: 0 + ancestry: EUR +plink_clump_arguments: "--clump-p1 5e-8 --clump-r2 0.01 --clump-kb 1000" +finemap: + window_kb: 1000 + max_causal: 10 + coverage: 0.95 + min_abs_corr: 0.5 +populate_rsid: false diff --git a/snakemake/input_templates/qtl_mr.json b/snakemake/input_templates/qtl_mr.json deleted file mode 100644 index d8b9ab2..0000000 --- a/snakemake/input_templates/qtl_mr.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "gwases": [ - { - "file": "", - "columns": {"CHR":"", "BP":"", "EA":"", "OA":"", "EAF":"", "P":"", "BETA":"", "SE":""}, - "ancestry": "EUR", - "N": 0 - } - ], - "plink_clump_arguments": "--clump-p1 5e-8 --clump-r2 0.01 --clump-kb 1000", - "finemap": { - "window_kb": 1000, - "max_causal": 10, - "coverage": 0.95, - "min_abs_corr": 0.5 - }, - "qtl": { - "dataset": "", - "subcategory": "", - "exposures": [], - "study_type": "continuous" - }, - "populate_rsid": false -} diff --git a/snakemake/input_templates/qtl_mr.yaml b/snakemake/input_templates/qtl_mr.yaml new file mode 100644 index 0000000..55bbe2f --- /dev/null +++ b/snakemake/input_templates/qtl_mr.yaml @@ -0,0 +1,25 @@ +gwases: + - file: "" + columns: + CHR: "" + BP: "" + EA: "" + OA: "" + EAF: "" + P: "" + BETA: "" + SE: "" + ancestry: EUR + N: 0 +plink_clump_arguments: "--clump-p1 5e-8 --clump-r2 0.01 --clump-kb 1000" +finemap: + window_kb: 1000 + max_causal: 10 + coverage: 0.95 + min_abs_corr: 0.5 +qtl: + dataset: "" + subcategory: "" + exposures: [] + study_type: continuous +populate_rsid: false diff --git a/snakemake/input_templates/standardise_gwases.json b/snakemake/input_templates/standardise_gwases.json deleted file mode 100644 index 847484b..0000000 --- a/snakemake/input_templates/standardise_gwases.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "gwases": [ - { - "file": "/Users/wt23152/Documents/Projects/scratch/020/data/gwas_with_lbfs.tsv.gz", - "columns": {"CHR":"CHR", "BP":"BP", "EA":"EA", "OA":"OA", "EAF":"EAF", "P":"P", "BETA":"BETA", "SE":"SE"}, - "build": "GRCh38", - "ancestry": "EUR", - "populate_eaf": false - } - ], - "output": { - "build": "GRCh37" - }, - "populate_rsid": false -} diff --git a/snakemake/input_templates/standardise_gwases.yaml b/snakemake/input_templates/standardise_gwases.yaml new file mode 100644 index 0000000..ba16dfc --- /dev/null +++ b/snakemake/input_templates/standardise_gwases.yaml @@ -0,0 +1,17 @@ +gwases: + - file: /Users/wt23152/Documents/Projects/scratch/020/data/gwas_with_lbfs.tsv.gz + columns: + CHR: CHR + BP: BP + EA: EA + OA: OA + EAF: EAF + P: P + BETA: BETA + SE: SE + build: GRCh38 + ancestry: EUR + populate_eaf: false +output: + build: GRCh37 +populate_rsid: false diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index 348e779..c42757d 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -1,7 +1,7 @@ import csv import zipfile import gzip -import json +import yaml import os import re import subprocess @@ -13,6 +13,16 @@ from types import SimpleNamespace include: "constants.smk" include: "log_results.smk" + +def dict_to_namespace(obj): + """Recursively convert dict/list from YAML to SimpleNamespace (same shapes as former JSON parsing).""" + if isinstance(obj, dict): + return SimpleNamespace(**{k: dict_to_namespace(v) for k, v in obj.items()}) + if isinstance(obj, list): + return [dict_to_namespace(item) for item in obj] + return obj + + def get_docker_container(): version = DOCKER_VERSION if DOCKER_VERSION else None with open("DESCRIPTION") as file: @@ -33,6 +43,12 @@ def get_docker_container(): def parse_pipeline_input(pipeline_includes_clumping=False): + global input_file + try: + input_file = config.get("genehackman_input") or "input.yaml" + except NameError: + input_file = "input.yaml" + if not os.path.isfile(".env"): raise ValueError("Error: .env file doesn't exist") if not os.path.isfile(input_file): @@ -40,10 +56,15 @@ def parse_pipeline_input(pipeline_includes_clumping=False): with open(input_file) as pipeline_input: try: - pipeline = json.load(pipeline_input,object_hook=lambda data: SimpleNamespace(**data)) + raw = yaml.safe_load(pipeline_input) + if raw is None: + raw = {} + pipeline = dict_to_namespace(raw) except Exception as e: - raise Exception('ERROR: There is an error with the JSON file, ' - + 'please ensure it is valid JSON: https://jsonlint.com/') from e + raise Exception( + "ERROR: There is an error with the pipeline YAML file, " + "please ensure it is valid YAML: https://www.yamllint.com/" + ) from e if not hasattr(pipeline, "is_test"): pipeline.is_test = False if not hasattr(pipeline, "output"): pipeline.output = default_output_options diff --git a/snakemake/util/constants.smk b/snakemake/util/constants.smk index 7ce3ef6..8b412a0 100644 --- a/snakemake/util/constants.smk +++ b/snakemake/util/constants.smk @@ -12,7 +12,7 @@ def format_dir_string(directory): load_dotenv() docker_repo = "docker://mrcieu/genehackman" user = os.getenv('USER') -input_file = os.getenv('INPUT_FILE') or "input.json" +input_file = "input.yaml" start_time = datetime.now() # Slurm writes batch stdout to this directory on HPC; local/Docker runs use ./pipeline_logs instead. diff --git a/tests/e2e_tests/run_test_pipelines.sh b/tests/e2e_tests/run_test_pipelines.sh index 35ad938..4238f82 100755 --- a/tests/e2e_tests/run_test_pipelines.sh +++ b/tests/e2e_tests/run_test_pipelines.sh @@ -1,13 +1,13 @@ #!/bin/bash set -e -./run_pipeline.sh snakemake/standardise_gwas.smk tests/testthat/data/snakemake_inputs/standardise_gwas.json -F -./run_pipeline.sh snakemake/disease_progression.smk tests/testthat/data/snakemake_inputs/disease_progression.json -F -./run_pipeline.sh snakemake/compare_gwases.smk tests/testthat/data/snakemake_inputs/compare_gwases.json -F -./run_pipeline.sh snakemake/finemap.smk tests/testthat/data/snakemake_inputs/finemap.json -F -./run_pipeline.sh snakemake/coloc.smk tests/testthat/data/snakemake_inputs/coloc.json -F +./run_pipeline.sh snakemake/standardise_gwas.smk tests/testthat/data/snakemake_inputs/standardise_gwas.yaml -F +./run_pipeline.sh snakemake/disease_progression.smk tests/testthat/data/snakemake_inputs/disease_progression.yaml -F +./run_pipeline.sh snakemake/compare_gwases.smk tests/testthat/data/snakemake_inputs/compare_gwases.yaml -F +./run_pipeline.sh snakemake/finemap.smk tests/testthat/data/snakemake_inputs/finemap.yaml -F +./run_pipeline.sh snakemake/coloc.smk tests/testthat/data/snakemake_inputs/coloc.yaml -F if [[ -n "${QTL_DATA_DIR}" ]]; then - ./run_pipeline.sh snakemake/qtl_mr.smk tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.json -F + ./run_pipeline.sh snakemake/qtl_mr.smk tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.yaml -F fi diff --git a/tests/testthat/data/snakemake_inputs/coloc.json b/tests/testthat/data/snakemake_inputs/coloc.json deleted file mode 100644 index 69bda64..0000000 --- a/tests/testthat/data/snakemake_inputs/coloc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "gwases": [ - { - "file": "tests/testthat/data/test_data_small.tsv.gz", - "columns": {}, - "ancestry": "EUR" - }, - { - "file": "tests/testthat/data/test_data_small_hg38.tsv.gz", - "columns": {}, - "build": "GRCh38", - "ancestry": "EUR" - } - ], - "plink_clump_arguments": "--clump-p1 0.00000005", - "populate_rsid": false, - "is_test": true -} diff --git a/tests/testthat/data/snakemake_inputs/coloc.yaml b/tests/testthat/data/snakemake_inputs/coloc.yaml new file mode 100644 index 0000000..0f01f28 --- /dev/null +++ b/tests/testthat/data/snakemake_inputs/coloc.yaml @@ -0,0 +1,11 @@ +gwases: + - file: tests/testthat/data/test_data_small.tsv.gz + columns: {} + ancestry: EUR + - file: tests/testthat/data/test_data_small_hg38.tsv.gz + columns: {} + build: GRCh38 + ancestry: EUR +plink_clump_arguments: "--clump-p1 0.00000005" +populate_rsid: false +is_test: true diff --git a/tests/testthat/data/snakemake_inputs/compare_gwases.json b/tests/testthat/data/snakemake_inputs/compare_gwases.json deleted file mode 100644 index 69bda64..0000000 --- a/tests/testthat/data/snakemake_inputs/compare_gwases.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "gwases": [ - { - "file": "tests/testthat/data/test_data_small.tsv.gz", - "columns": {}, - "ancestry": "EUR" - }, - { - "file": "tests/testthat/data/test_data_small_hg38.tsv.gz", - "columns": {}, - "build": "GRCh38", - "ancestry": "EUR" - } - ], - "plink_clump_arguments": "--clump-p1 0.00000005", - "populate_rsid": false, - "is_test": true -} diff --git a/tests/testthat/data/snakemake_inputs/compare_gwases.yaml b/tests/testthat/data/snakemake_inputs/compare_gwases.yaml new file mode 100644 index 0000000..0f01f28 --- /dev/null +++ b/tests/testthat/data/snakemake_inputs/compare_gwases.yaml @@ -0,0 +1,11 @@ +gwases: + - file: tests/testthat/data/test_data_small.tsv.gz + columns: {} + ancestry: EUR + - file: tests/testthat/data/test_data_small_hg38.tsv.gz + columns: {} + build: GRCh38 + ancestry: EUR +plink_clump_arguments: "--clump-p1 0.00000005" +populate_rsid: false +is_test: true diff --git a/tests/testthat/data/snakemake_inputs/disease_progression.json b/tests/testthat/data/snakemake_inputs/disease_progression.json deleted file mode 100644 index 81a62e8..0000000 --- a/tests/testthat/data/snakemake_inputs/disease_progression.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "gwases": [ - { - "file": "tests/testthat/data/test_data_small.tsv.gz", - "columns": {}, - "ancestry": "EUR" - }, - { - "file": "tests/testthat/data/test_data_small_hg38.tsv.gz", - "columns": {}, - "build": "GRCh38", - "ancestry": "EUR" - } - ], - "plink_clump_arguments": "--clump-p1 0.00000005", - "populate_rsid": false, - "output": { - "adjusted_gwas": - { - "type" : "slopehunter", - "p_val": 0.001 - } - }, - "is_test": true -} diff --git a/tests/testthat/data/snakemake_inputs/disease_progression.yaml b/tests/testthat/data/snakemake_inputs/disease_progression.yaml new file mode 100644 index 0000000..3a0cabc --- /dev/null +++ b/tests/testthat/data/snakemake_inputs/disease_progression.yaml @@ -0,0 +1,15 @@ +gwases: + - file: tests/testthat/data/test_data_small.tsv.gz + columns: {} + ancestry: EUR + - file: tests/testthat/data/test_data_small_hg38.tsv.gz + columns: {} + build: GRCh38 + ancestry: EUR +plink_clump_arguments: "--clump-p1 0.00000005" +populate_rsid: false +output: + adjusted_gwas: + type: slopehunter + p_val: 0.001 +is_test: true diff --git a/tests/testthat/data/snakemake_inputs/finemap.json b/tests/testthat/data/snakemake_inputs/finemap.json deleted file mode 100644 index 69bda64..0000000 --- a/tests/testthat/data/snakemake_inputs/finemap.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "gwases": [ - { - "file": "tests/testthat/data/test_data_small.tsv.gz", - "columns": {}, - "ancestry": "EUR" - }, - { - "file": "tests/testthat/data/test_data_small_hg38.tsv.gz", - "columns": {}, - "build": "GRCh38", - "ancestry": "EUR" - } - ], - "plink_clump_arguments": "--clump-p1 0.00000005", - "populate_rsid": false, - "is_test": true -} diff --git a/tests/testthat/data/snakemake_inputs/finemap.yaml b/tests/testthat/data/snakemake_inputs/finemap.yaml new file mode 100644 index 0000000..0f01f28 --- /dev/null +++ b/tests/testthat/data/snakemake_inputs/finemap.yaml @@ -0,0 +1,11 @@ +gwases: + - file: tests/testthat/data/test_data_small.tsv.gz + columns: {} + ancestry: EUR + - file: tests/testthat/data/test_data_small_hg38.tsv.gz + columns: {} + build: GRCh38 + ancestry: EUR +plink_clump_arguments: "--clump-p1 0.00000005" +populate_rsid: false +is_test: true diff --git a/tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.json b/tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.json deleted file mode 100644 index c3867b9..0000000 --- a/tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "gwases": [ - { - "file": "tests/testthat/data/test_data_small.tsv.gz", - "columns": {}, - "ancestry": "EUR" - } - ], - "plink_clump_arguments": "--clump-p1 0.00000005", - "qtl": { - "dataset": "eqtlgen", - "subcategory": "cis" - }, - "populate_rsid": false, - "is_test": true -} diff --git a/tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.yaml b/tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.yaml new file mode 100644 index 0000000..6567ce8 --- /dev/null +++ b/tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.yaml @@ -0,0 +1,10 @@ +gwases: + - file: tests/testthat/data/test_data_small.tsv.gz + columns: {} + ancestry: EUR +plink_clump_arguments: "--clump-p1 0.00000005" +qtl: + dataset: eqtlgen + subcategory: cis +populate_rsid: false +is_test: true diff --git a/tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json b/tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json deleted file mode 100644 index a4d5075..0000000 --- a/tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "gwases": [ - { - "file": "tests/testthat/data/test_data_small.tsv.gz", - "columns": {}, - "ancestry": "EUR" - } - ], - "plink_clump_arguments": "--clump-p1 0.00000005", - "qtl": { - "dataset": "metabrain", - "subcategory": "cortex", - "exposures": [] - }, - "populate_rsid": false, - "is_test": true -} diff --git a/tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.yaml b/tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.yaml new file mode 100644 index 0000000..b927779 --- /dev/null +++ b/tests/testthat/data/snakemake_inputs/qtl_mr_metabrain.yaml @@ -0,0 +1,11 @@ +gwases: + - file: tests/testthat/data/test_data_small.tsv.gz + columns: {} + ancestry: EUR +plink_clump_arguments: "--clump-p1 0.00000005" +qtl: + dataset: metabrain + subcategory: cortex + exposures: [] +populate_rsid: false +is_test: true diff --git a/tests/testthat/data/snakemake_inputs/standardise_gwas.json b/tests/testthat/data/snakemake_inputs/standardise_gwas.json deleted file mode 100644 index d7fae61..0000000 --- a/tests/testthat/data/snakemake_inputs/standardise_gwas.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "gwases": [ - { - "file": "tests/testthat/data/some_eqtlgen_hits.tsv.gz", - "columns": {} - }, - { - "file": "tests/testthat/data/opengwas_example.vcf.gz", - "columns": "opengwas" - }, - { - "file": "tests/testthat/data/metal_output.txt", - "columns": "metal", - "populate_rsid": true - }, - { - "file": "tests/testthat/data/test_data_small_hg38.tsv.gz", - "columns": {}, - "build": "GRCh38" - } - ], - "populate_rsid": false, - "is_test": true -} diff --git a/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml b/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml new file mode 100644 index 0000000..afd9cda --- /dev/null +++ b/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml @@ -0,0 +1,13 @@ +gwases: + - file: tests/testthat/data/some_eqtlgen_hits.tsv.gz + columns: {} + - file: tests/testthat/data/opengwas_example.vcf.gz + columns: opengwas + - file: tests/testthat/data/metal_output.txt + columns: metal + populate_rsid: true + - file: tests/testthat/data/test_data_small_hg38.tsv.gz + columns: {} + build: GRCh38 +populate_rsid: false +is_test: true From e1aacf0a0af67d6dee5fb73ece0682ed0af664de Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 29 Apr 2026 11:03:26 +0100 Subject: [PATCH 21/85] Removing idea of RDFS_DIR, or BACKUP_DIR, too complicated --- .env_example | 11 +---------- README.md | 3 +-- snakemake/util/common.smk | 16 ---------------- snakemake/util/constants.smk | 6 ------ 4 files changed, 2 insertions(+), 34 deletions(-) diff --git a/.env_example b/.env_example index b1ee214..39c985b 100644 --- a/.env_example +++ b/.env_example @@ -1,18 +1,9 @@ DATA_DIR= RESULTS_DIR= -RDFS_DIR= PIPELINE_DATA_DIR=/Users/wt23152/Documents/Projects/scratch/020/data/ QTL_DATA_DIR= -# Container tag / SIF basename: genehackman_.sif (e.g. 1.0.0 or develop). -DOCKER_VERSION= -# Optional: build SIF from local Docker (no Hub pull). Example: docker-daemon://mrcieu/genehackman:develop -# GENEHACKMAN_SINGULARITY_DOCKER_REFERENCE=docker-daemon://mrcieu/genehackman:develop -# On Apple Silicon, run_pipeline.sh passes --arch amd64 to singularity build (image is amd64-only). -# Override arch or disable: GENEHACKMAN_SINGULARITY_BUILD_ARCH=amd64 | GENEHACKMAN_SINGULARITY_NO_ARCH=1 +DOCKER_VERSION=1.0.0 GENEHACKMAN_PROFILE=snakemake/local/ PIPELINE_LOG_DIR= -# Optional: Lima VM name if apptainer only exists inside Lima (default: apptainer) -# GENEHACKMAN_LIMA_INSTANCE=apptainer - # Optional: Snakemake --singularity-prefix for pulled images (see PLATFORM_SETUP.md on macOS/Lima). # GENEHACKMAN_SINGULARITY_PREFIX=/tmp/genehackman_snakemake_singularity diff --git a/README.md b/README.md index 1342528..54b6538 100644 --- a/README.md +++ b/README.md @@ -85,10 +85,9 @@ Alternatives if you don’t set **`QTL_DATA_DIR`** directly: keep the same direc ### 4. Populate `.env` and `input.yaml` files `cp .env_example .env` -* Populate **`DATA_DIR`**, **`RESULTS_DIR`**, and optional **`RDFS_DIR`** — usually under *work* or *scratch* (e.g. `/user/work/{userid}/...`). +* Populate **`DATA_DIR`** and **`RESULTS_DIR`** — usually under *work* or *scratch* (e.g. `/user/work/{userid}/...`). * Set **`PIPELINE_DATA_DIR`** to the path where you unpacked **`genehackman`** (see §3). * Set **`QTL_DATA_DIR`** to the path where you unpacked **`genehackman-qtl`** if you run **`qtl_mr`** (can be left empty otherwise; see [.env_example](.env_example)). -* **`RDFS_DIR`** is optional for auto-copy of outputs; paths should end with `working/` if you use this feature. * **Container cache:** If there is no pre-built `genehackman_.sif` under `PIPELINE_DATA_DIR`, Snakemake pulls the `docker://` image and caches the SIF under `.snakemake/singularity` by default. Set **`GENEHACKMAN_SINGULARITY_PREFIX`** in `.env` to use another directory (e.g. scratch). Running `snakemake` without `./run_pipeline.sh`? Pass `--singularity-prefix /path` or add `singularity-prefix:` to your profile `config.yaml`. **`input.yaml`** diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index c42757d..543661e 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -278,20 +278,6 @@ def turn_dict_into_cli_string(results_dict): return ','.join(['%s=%s' % (key, value) for (key, value) in results_dict.items()]) -def copy_data_to_rdfs(files_created): - if RDFS_DIR is not None: - for file_created in files_created: - rdfs_file = None - if file_created.startswith(DATA_DIR): - rdfs_file = file_created.replace(DATA_DIR, RDFS_DIR + "/data/") - elif file_created.startswith(RESULTS_DIR): - rdfs_file = file_created.replace(RESULTS_DIR, RDFS_DIR + "/results/") - - if rdfs_file: - os.system(f"install -D {file_created} {rdfs_file}") - print(f"Files successfully copied to {RDFS_DIR}") - - def onsuccess(pipeline_name, files_created=list(), results_file=None, is_test=False): print("\nPipeline finished, no errors. List of created files:") print(*files_created, sep='\n') @@ -302,8 +288,6 @@ def onsuccess(pipeline_name, files_created=list(), results_file=None, is_test=Fa print(f"{results_file}.") print(f"\n\n\033[1;35;40m Please do us a favour and cite this pipeline: https://doi.org/10.5281/zenodo.10624713 \033[0m\n") - copy_data_to_rdfs(files_created) - update_google_sheet(pipeline_name, succeeded=True, is_test=is_test) diff --git a/snakemake/util/constants.smk b/snakemake/util/constants.smk index 8b412a0..55929fa 100644 --- a/snakemake/util/constants.smk +++ b/snakemake/util/constants.smk @@ -57,13 +57,9 @@ default_output_options = SimpleNamespace(**{ if not os.getenv("DATA_DIR") or not os.getenv("RESULTS_DIR"): raise ValueError("Please populate DATA_DIR and RESULTS_DIR in the .env file provided") -if not os.getenv("RDFS_DIR"): - print("Please populate RDFS_DIR in .env if you want the generated files to be automatically copied to RDFS") - DOCKER_VERSION = os.getenv('DOCKER_VERSION') DATA_DIR = format_dir_string(os.getenv('DATA_DIR')) RESULTS_DIR = format_dir_string(os.getenv('RESULTS_DIR')) -RDFS_DIR = format_dir_string(os.getenv('RDFS_DIR')) PIPELINE_DATA_DIR = format_dir_string(os.getenv('PIPELINE_DATA_DIR')) QTL_DATA_DIR = os.getenv("QTL_DATA_DIR", "").strip() @@ -73,7 +69,5 @@ GENOMIC_DATA_DIR = format_dir_string(PIPELINE_DATA_DIR + "/genomic_data") THOUSAND_GENOMES_DIR = format_dir_string(PIPELINE_DATA_DIR + "/1000genomes/b37_dbsnp156") QTL_DIRECTORY = format_dir_string(QTL_DATA_DIR) -if RDFS_DIR and not RDFS_DIR.endswith("working/"): - raise ValueError("Please ensure RDFS_DIR ends with working/ to ensure the data gets copied to the correct place") if DATA_DIR == RESULTS_DIR: raise ValueError("DATA_DIR and RESULTS_DIR must be different directories") From 12edc456adbfc3168791fe83e5198f3a7e21e8c7 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 29 Apr 2026 13:54:16 +0100 Subject: [PATCH 22/85] Moving profiles around, making them more generic --- .env_example | 12 +++--- PLATFORM_SETUP.md | 39 ++++++++---------- README.md | 11 ++--- run_pipeline.sh | 40 ++++++++++++++----- snakemake/PIPELINES.md | 4 ++ snakemake/{ => profiles}/local/config.yaml | 1 + snakemake/{bc4 => profiles/slurm}/config.yaml | 19 ++++++--- .../{bp1 => profiles/uob-bp1}/config.yaml | 0 snakemake/slurm_singularity/config.yaml | 33 --------------- snakemake/util/constants.smk | 8 ++-- 10 files changed, 82 insertions(+), 85 deletions(-) rename snakemake/{ => profiles}/local/config.yaml (96%) rename snakemake/{bc4 => profiles/slurm}/config.yaml (61%) rename snakemake/{bp1 => profiles/uob-bp1}/config.yaml (100%) delete mode 100644 snakemake/slurm_singularity/config.yaml diff --git a/.env_example b/.env_example index 39c985b..e7a624e 100644 --- a/.env_example +++ b/.env_example @@ -1,9 +1,11 @@ +# Mandatory variables DATA_DIR= RESULTS_DIR= -PIPELINE_DATA_DIR=/Users/wt23152/Documents/Projects/scratch/020/data/ +PIPELINE_DATA_DIR= +# Optional variables QTL_DATA_DIR= DOCKER_VERSION=1.0.0 -GENEHACKMAN_PROFILE=snakemake/local/ -PIPELINE_LOG_DIR= -# Optional: Snakemake --singularity-prefix for pulled images (see PLATFORM_SETUP.md on macOS/Lima). -# GENEHACKMAN_SINGULARITY_PREFIX=/tmp/genehackman_snakemake_singularity +SNAKEMAKE_PROFILE=snakemake/profiles/local/ +APPTAINER_MODULE=apptainer/1.3.1-ksax +SLURM_PARTITION= +SLURM_ACCOUNT= diff --git a/PLATFORM_SETUP.md b/PLATFORM_SETUP.md index 65ef81f..1dbc046 100644 --- a/PLATFORM_SETUP.md +++ b/PLATFORM_SETUP.md @@ -1,6 +1,6 @@ # Running GeneHackman by platform -Snakemake orchestrates steps; each step usually runs inside an **Apptainer/Singularity** image (`docker://mrcieu/genehackman` or a local `.sif`). **Profiles** under `snakemake/` choose how jobs run (local cores vs cluster scheduler) and which host paths are **bind-mounted** into the container. +Snakemake orchestrates steps; each step usually runs inside an **Apptainer/Singularity** image (`docker://mrcieu/genehackman` or a local `.sif`). Snakemake **profiles** live under **`snakemake/profiles/`** (each profile is a directory containing `config.yaml`). They choose how jobs run (local cores vs cluster scheduler) and which host paths are **bind-mounted** into the container. General prerequisites: @@ -8,7 +8,7 @@ General prerequisites: 2. **`.env`:** copy from `.env_example` and set at least `DATA_DIR`, `RESULTS_DIR`, `PIPELINE_DATA_DIR` (and paths your pipeline needs for genomic / 1000G data). Optionally set **`QTL_DATA_DIR`** when large QTL mirrors live on another volume or object-store mount; if omitted, `run_pipeline.sh` defaults it to `PIPELINE_DATA_DIR/qtl_datasets`. 3. **Input YAML:** see `snakemake/input_templates/` and `snakemake/PIPELINES.md`. -**`./run_pipeline.sh`** loads `.env`, picks a **profile** (`GENEHACKMAN_PROFILE`, default `snakemake/local/`), then runs Snakemake. Pass the **`.smk` workflow first**, then optional input YAML, for example: +**`./run_pipeline.sh`** loads `.env`, picks a **profile** (**`SNAKEMAKE_PROFILE`**, default `snakemake/profiles/local/`), then runs Snakemake. Pass the **`.smk` workflow first**, then optional input YAML, for example: ```bash ./run_pipeline.sh snakemake/standardise_gwas.smk path/to/input.yaml @@ -56,15 +56,14 @@ The published image may be **linux/amd64**. Use Lima with **Rosetta / x86 Linux* 1. Install **Apptainer** or **SingularityCE** (distribution packages or upstream instructions). 2. Ensure **`singularity`** or **`apptainer`** is on `PATH` (some sites symlink `singularity` → `apptainer`). -3. Use **`snakemake/local/`** for local execution (same as default in `run_pipeline.sh`): +3. Use **`snakemake/profiles/local/`** for local execution (same as default in `run_pipeline.sh`): ```bash - export GENEHACKMAN_PROFILE=snakemake/local/ + export SNAKEMAKE_PROFILE=snakemake/profiles/local/ ./run_pipeline.sh snakemake/compare_gwases.smk ``` -4. Adjust **`snakemake/local/config.yaml`** `singularity-args` if your data live outside `DATA_DIR` / `RESULTS_DIR` / `PIPELINE_DATA_DIR` / `QTL_DATA_DIR` (profiles bind these four; add more `-B host:host` pairs if needed). -5. Large pulls: set **`GENEHACKMAN_SINGULARITY_PREFIX`** to fast scratch (e.g. `/scratch/$USER/snakemake_singularity`). +4. Adjust **`snakemake/profiles/local/config.yaml`** `singularity-args` if your data live outside `DATA_DIR` / `RESULTS_DIR` / `PIPELINE_DATA_DIR` / `QTL_DATA_DIR` (profiles bind these four; add more `-B host:host` pairs if needed). --- @@ -74,25 +73,24 @@ The repo ships Slurm-oriented profiles (paths and partitions are **Bristol / MRC | Profile directory | Notes | |-------------------|--------| -| `snakemake/bp1/` | Example: binds `/bp1/mrcieu1/data/`, uses `sbatch`, partition `compute` in `config.yaml` | -| `snakemake/bc4/` | Similar; binds `/mnt/storage/private/mrcieu/data/` in the version checked into this repo | -| `snakemake/slurm_singularity/` | Slurm + Singularity; site-specific binds | +| `snakemake/profiles/slurm/` | Slurm + Apptainer: Make sure that slurm `account` and `partition` are set correctly for your HPC | +| `snakemake/profiles/local/` | Runs apptainer locally, no job invocation | +| `snakemake/profiles/uob-bp1/` | Specific example for UoB BP1 HPC | **Typical usage:** ```bash -export GENEHACKMAN_PROFILE=snakemake/bp1/ +export SNAKEMAKE_PROFILE=snakemake/profiles/slurm/ ./run_pipeline.sh snakemake/compare_gwases.smk ``` -`run_pipeline.sh` runs **`module load apptainer/1.3.1-ksax`** when the profile is **not** `snakemake/local/*` — **change the module name** in `run_pipeline.sh` to match your cluster. +`run_pipeline.sh` runs **`module load ${APPTAINER_MODULE}`** when the profile is **not** `snakemake/profiles/local/*` (or legacy `snakemake/local/*`) — set **`APPTAINER_MODULE`** in `.env` to match your cluster. -**You must customize** each profile’s `config.yaml`: +**Customize** each profile under **`snakemake/profiles/`** (each directory has a **`config.yaml`**) as needed: +- **`Slurm account / partition`:** In **`.env`**, optional **`SLURM_ACCOUNT`** sets **`sbatch --account`**; if unset, the generic profile uses the existing **`sacctmgr … | grep … | head -n1`** lookup. Optional **`SLURM_PARTITION`** sets the default Snakemake **`resources.partition`** (via **`GENEHACKMAN_SLURM_PARTITION`** exported by **`run_pipeline.sh`**); if unset, the default is **`compute`** (see **`snakemake/profiles/slurm/config.yaml`**). - **`cluster:`** block: `sbatch` options (`partition`, `account`, walltime, memory, `--output` log directory). -- **`singularity-args`:** `-B` mounts for your home, scratch, and shared reference data (replacing Bristol-specific paths). Profiles include **`${QTL_DATA_DIR}`**; use **`./run_pipeline.sh`** (or export **`QTL_DATA_DIR`** yourself, defaulting to **`PIPELINE_DATA_DIR/qtl_datasets`**) so the bind is never empty. - -Log files: profiles often write Slurm stdout under **`/user/work/$USER/slurm_logs/`**; create that tree or change `--output` to your scratch. +- **`singularity-args`:** The generic profile binds repo code, **`$HOME`**, **`PIPELINE_DATA_DIR`**, and adds **`QTL_DATA_DIR`** only when non-empty (see **`GENEHACKMAN_EXTRA_SINGULARITY_BINDS`** in `run_pipeline.sh`). Add more `-B host:host` pairs for shared reference data on your site. **Snakemake version:** `environment.yml` pins **Snakemake 7.x**. Migrating to **Snakemake 8+** changes cluster syntax (`cluster-generic` executor + plugins); this repository’s profiles target the v7 style unless you have already updated them. @@ -116,18 +114,15 @@ Requirements: - **`qsub`** must return the job ID on stdout in a form Snakemake can track. - For large workflows, set **`--cluster-status`** (or Snakemake’s DRMAA integration) if your site documents it; otherwise use Snakemake’s polling defaults where supported. -Copy `snakemake/slurm_singularity/config.yaml` (or `bp1`) as a template, replace the **`cluster:`** section with **`qsub`**, and add **`singularity-args`** appropriate for PBS compute nodes (shared filesystem mounts). - ---- +Copy `snakemake/slurm_singularity/config.yaml` as a template, replace the **`cluster:`** section with **`qsub`**, and add **`singularity-args`** appropriate for PBS compute nodes (shared filesystem mounts). ## Environment variables (quick reference) | Variable | Purpose | |----------|---------| -| **`GENEHACKMAN_PROFILE`** | Snakemake profile path (default `snakemake/local/`). Example HPC: `snakemake/bp1/` | -| **`GENEHACKMAN_SINGULARITY_PREFIX`** | Snakemake `--singularity-prefix`: where pulled `.sif` images are stored | -| **`GENEHACKMAN_LIMA_INSTANCE`** | Lima VM name when using a `limactl shell -- apptainer` wrapper (default often `apptainer`) | -| **`PIPELINE_LOG_DIR`** | Optional override for log-directory hints on errors (see `snakemake/util/constants.smk`) | +| **`SNAKEMAKE_PROFILE`** | Snakemake profile path (default `snakemake/profiles/local/`). Example HPC: `snakemake/profiles/slurm/` | +| **`SLURM_ACCOUNT`** | Optional (**`profiles/slurm`**). Sets **`sbatch --account`**; omitted ⇒ existing **`sacctmgr`** derivation in `config.yaml` | +| **`SLURM_PARTITION`** | Optional (**`profiles/slurm`**). Default partition for **`{resources.partition}`**; omitted ⇒ **`compute`** (**`GENEHACKMAN_SLURM_PARTITION`** in `run_pipeline.sh`) | The **pipeline YAML path** is not configured via `.env`. Use **`./run_pipeline.sh .smk [path/to/input.yaml]`** (defaults to **`input.yaml`**) or run **`snakemake`** with **`--config genehackman_input=path/to/input.yaml`** (see `snakemake/PIPELINES.md`). diff --git a/README.md b/README.md index 54b6538..b2a6699 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ There are **six** Snakemake pipelines (grouped as two tables of three). Each pip ## Onboarding -**Running on macOS, Linux, Slurm, or PBS?** See **[PLATFORM_SETUP.md](PLATFORM_SETUP.md)** for platform-specific setup (Apptainer/Lima, SIF cache, HPC profiles, `qsub` template). +**Running on macOS, Linux, Slurm, or PBS?** See **[PLATFORM_SETUP.md](PLATFORM_SETUP.md)** for platform-specific setup (Apptainer/Lima, SIF cache, Snakemake profiles under **`snakemake/profiles/`**, `qsub` template). ### 1. Clone the repository into your personal space on BlueCrystal 4 `git clone git@github.com:MRCIEU/GeneHackman.git && cd GeneHackman` @@ -85,10 +85,9 @@ Alternatives if you don’t set **`QTL_DATA_DIR`** directly: keep the same direc ### 4. Populate `.env` and `input.yaml` files `cp .env_example .env` -* Populate **`DATA_DIR`** and **`RESULTS_DIR`** — usually under *work* or *scratch* (e.g. `/user/work/{userid}/...`). * Set **`PIPELINE_DATA_DIR`** to the path where you unpacked **`genehackman`** (see §3). * Set **`QTL_DATA_DIR`** to the path where you unpacked **`genehackman-qtl`** if you run **`qtl_mr`** (can be left empty otherwise; see [.env_example](.env_example)). -* **Container cache:** If there is no pre-built `genehackman_.sif` under `PIPELINE_DATA_DIR`, Snakemake pulls the `docker://` image and caches the SIF under `.snakemake/singularity` by default. Set **`GENEHACKMAN_SINGULARITY_PREFIX`** in `.env` to use another directory (e.g. scratch). Running `snakemake` without `./run_pipeline.sh`? Pass `--singularity-prefix /path` or add `singularity-prefix:` to your profile `config.yaml`. +* **Container cache:** If there is no pre-built `genehackman_.sif` under `PIPELINE_DATA_DIR`, Snakemake pulls the `docker://` image and caches the SIF under `.snakemake/singularity` by default. Set **`GENEHACKMAN_SINGULARITY_PREFIX`** in `.env` to use another directory (e.g. scratch). Running `snakemake` without `./run_pipeline.sh`? Pass `--singularity-prefix /path` or add `singularity-prefix:` under **`snakemake/profiles/`** in **`config.yaml`** for the profile you use (paths are relative to the repo root). **`input.yaml`** @@ -101,7 +100,9 @@ Alternatives if you don’t set **`QTL_DATA_DIR`** directly: keep the same direc `./run_pipeline.sh snakemake/.smk ` -* By default `run_pipeline.sh` uses **local Docker** (`snakemake/local/`). On HPC, set e.g. `GENEHACKMAN_PROFILE=snakemake/bp1/` (or `bc4/`, `slurm_singularity/`). +Snakemake execution profiles (**`--profile`**) live under **`snakemake/profiles/`** (see also [PLATFORM_SETUP.md](PLATFORM_SETUP.md)). + +* By default `run_pipeline.sh` uses **`SNAKEMAKE_PROFILE=snakemake/profiles/local/`** (local Apptainer). On HPC, set e.g. **`SNAKEMAKE_PROFILE=snakemake/profiles/slurm/`** (generic Slurm) or add a site-specific directory beside **`snakemake/profiles/local/`** and **`snakemake/profiles/slurm/`**. * `run_pipeline.sh` is just a convience wrapper around the `snakemake` command, if you want to do anything out of the ordinary, [please read up on snakemake](https://snakemake.readthedocs.io/en/v7.26.0/) * If there are errors while running the pipeline, you can find error messages either directly on the screen, or in slurm log file that is outputted on error * It is recommended that you run the your pipeline [inside a tmux session](https://github.com/MRCIEU/GeneHackman/wiki/Common-Errors#ssh-disconnection-while-pipeline-is-running). @@ -125,7 +126,7 @@ The pipeline can be run either on its own, or via your institutions HPC. Each s * `R` directory holds R package code that can also be called and reused by any step in the pipeline (accessed by a cli script) * `scripts` directory holds the scripts that can be easily called by snakemake (`Rscript example.R --input_ex example_input`) -* `snakemake` directory, which defines the pipeline steps and configuration, and shared code between pipelines +* `snakemake` directory: workflow `.smk` files, **`snakemake/profiles/`** (Snakemake `--profile`: local vs Slurm/HPC defaults), **`input_templates/`**, and shared **`util/`** code between pipelines * `docker` directory holds the information for creating the docker image that the pipeline runs * `tests` directory holds all R tests, and a end to end pipeline test script diff --git a/run_pipeline.sh b/run_pipeline.sh index 5557515..26637a0 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -10,8 +10,8 @@ if [[ $# -lt 1 ]] ; then PIPELINE_FILE (ex. snakemake/standardise_gwas.smk) INPUT_FILE YAML (optional, defaults to input.yaml in the working directory) - Default profile is local Docker (snakemake/local/). HPC (Slurm/Apptainer): set - GENEHACKMAN_PROFILE=snakemake/bp1/ or snakemake/bc4/ (or snakemake/slurm_singularity/). + Default profile is local Apptainer (snakemake/profiles/local/). For Slurm, set + SNAKEMAKE_PROFILE=snakemake/profiles/slurm/ or create a new profile under snakemake/profiles/ """ exit 1 fi @@ -24,12 +24,26 @@ else exit 1 fi -# Default: local Docker. HPC: GENEHACKMAN_PROFILE=snakemake/bp1/ (or bc4/, slurm_singularity/). -PROFILE="${GENEHACKMAN_PROFILE:-snakemake/local/}" -if [[ -z "${GENEHACKMAN_PROFILE:-}" && ( "${GENEHACKMAN_LOCAL:-}" == "1" || "${GENEHACKMAN_LOCAL:-}" == "true" ) ]]; then - PROFILE="snakemake/local/" +if [[ -z "${DATA_DIR:-}" || -z "${RESULTS_DIR:-}" || -z "${PIPELINE_DATA_DIR:-}" ]]; then + echo "Error: DATA_DIR, RESULTS_DIR, and PIPELINE_DATA_DIR must be set in .env" + exit 1 +fi +export PIPELINE_LOG_DIR="${DATA_DIR%/}/snakemake_logs" +export SLURM_PARTITION="${SLURM_PARTITION:-compute}" + +export GENEHACKMAN_EXTRA_SINGULARITY_BINDS="" +_trim_qtl="$(echo "${QTL_DATA_DIR:-}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')" +if [[ -n "${_trim_qtl}" ]]; then + export GENEHACKMAN_EXTRA_SINGULARITY_BINDS="-B ${_trim_qtl%/}:${_trim_qtl%/}" +fi +unset _trim_qtl + +# Default: local Apptainer. HPC e.g.: SNAKEMAKE_PROFILE=snakemake/profiles/slurm/ or snakemake/slurm_singularity/ +PROFILE="${SNAKEMAKE_PROFILE:-snakemake/profiles/local/}" +if [[ -z "${SNAKEMAKE_PROFILE:-}" && ( "${GENEHACKMAN_LOCAL:-}" == "1" || "${GENEHACKMAN_LOCAL:-}" == "true" ) ]]; then + PROFILE="snakemake/profiles/local/" fi -if [[ "${PROFILE}" == snakemake/local/* ]]; then +if [[ "${PROFILE}" == snakemake/profiles/local/* ]] || [[ "${PROFILE}" == snakemake/local/* ]]; then export GENEHACKMAN_LOCAL=1 else unset GENEHACKMAN_LOCAL @@ -39,12 +53,18 @@ SMK_FILE=$1 PIPELINE_INPUT="${2:-input.yaml}" ADDITIONAL_ARGS="${@:3}" -if [[ "${PROFILE}" != snakemake/local/* ]]; then - module load apptainer/1.3.1-ksax +if [[ "${PROFILE}" != snakemake/profiles/local/* ]] && [[ "${PROFILE}" != snakemake/local/* ]]; then + module load ${APPTAINER_MODULE} fi -SIF_DIR="${SINGULARITY_DIR:-.snakemake/singularity}" +PIPELINE_GENOMIC_DIR="${PIPELINE_DATA_DIR%/}/genomic_data/pipeline/" +if [[ -w "${PIPELINE_GENOMIC_DIR}" ]]; then + SIF_DIR="${PIPELINE_GENOMIC_DIR}" +else + SIF_DIR=".snakemake/singularity" +fi SIF_DIR="${SIF_DIR%/}" + # Image tag: default GENEHACKMAN_VERSION from DOCKER_VERSION so pull and SIF basename stay aligned. GENEHACKMAN_VERSION="${GENEHACKMAN_VERSION:-${DOCKER_VERSION:-}}" SIF_VERSION="${DOCKER_VERSION:-${GENEHACKMAN_VERSION:-}}" diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index b2ce911..4987899 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -1,5 +1,9 @@ # Pipeline input (`input.yaml`) +**Execution profiles:** Snakemake **`--profile`** directories live under **`snakemake/profiles/`** from the repo root (e.g. **`snakemake/profiles/local/`**, **`snakemake/profiles/slurm/`**), selected via **`SNAKEMAKE_PROFILE`** when using **`./run_pipeline.sh`**. Details: [PLATFORM_SETUP.md](../PLATFORM_SETUP.md), [README.md](../README.md). + +--- + All pipelines consume a **YAML** file. Use **`./run_pipeline.sh .smk [path/to/input.yaml]`** — the second argument is optional and defaults to **`input.yaml`** in the working directory. If you invoke **`snakemake` directly**, pass **`--config genehackman_input=path/to/input.yaml`** (or omit for default **`input.yaml`**). Copy an example from [`input_templates/`](input_templates/). Indented nesting defines hierarchy (`gwases:` lists `- item` blocks). Use `true` / `false` for booleans. Quote a string if it could be parsed as a YAML 1.1 keyword (e.g. column names `yes`, `no`). Validate syntax with [yamllint](https://www.yamllint.com/) if needed. diff --git a/snakemake/local/config.yaml b/snakemake/profiles/local/config.yaml similarity index 96% rename from snakemake/local/config.yaml rename to snakemake/profiles/local/config.yaml index 6a40be8..f561b37 100644 --- a/snakemake/local/config.yaml +++ b/snakemake/profiles/local/config.yaml @@ -5,6 +5,7 @@ singularity-args: >- -B $(pwd)/R:/home/R -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst + -B ${HOME}:${HOME} -B ${DATA_DIR}:${DATA_DIR} -B ${RESULTS_DIR}:${RESULTS_DIR} -B ${PIPELINE_DATA_DIR}:${PIPELINE_DATA_DIR} diff --git a/snakemake/bc4/config.yaml b/snakemake/profiles/slurm/config.yaml similarity index 61% rename from snakemake/bc4/config.yaml rename to snakemake/profiles/slurm/config.yaml index f369919..611bd7d 100644 --- a/snakemake/bc4/config.yaml +++ b/snakemake/profiles/slurm/config.yaml @@ -1,10 +1,11 @@ cluster: export USER=$(whoami) && export ACCOUNT_ID=$(sacctmgr show user withassoc format=account where user=$USER | grep '[0-9]' | head -n1) && - mkdir -p /user/work/$USER/slurm_logs && + export ACCOUNT_FOR_JOB="${SLURM_ACCOUNT:-$ACCOUNT_ID}" && + mkdir -p "$PIPELINE_LOG_DIR" && sbatch --partition={resources.partition} - --account=$ACCOUNT_ID + --account="$ACCOUNT_FOR_JOB" --nodes={resources.nodes} --ntasks-per-node={resources.ntasks_per_node} --cpus-per-task={resources.ntasks_per_node} @@ -12,10 +13,10 @@ cluster: --cpus-per-task={threads} --mem={resources.mem} --job-name={rule}-{wildcards} - --output=/user/work/$USER/slurm_logs/{rule}_%j.out + --output="$PIPELINE_LOG_DIR/{rule}_%j.out" default-resources: - time='01:00:00' - - partition=mrcieu + - partition=${SLURM_PARTITION} - mem='1G' - ntasks_per_node=1 - nodes=1 @@ -28,6 +29,14 @@ jobs: 10 keep-going: True rerun-incomplete: True use-singularity: True -singularity-args: '-B $(pwd)/R:/home/R -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B /user/work/$(whoami) -B /user/home/$(whoami) -B /mnt/storage/private/mrcieu/data/ -B ${QTL_DATA_DIR}:${QTL_DATA_DIR} --env-file .env --pwd /home/scripts/' +singularity-args: >- + -B $(pwd)/R:/home/R + -B $(pwd)/scripts:/home/scripts + -B $(pwd)/inst:/home/inst + -B ${HOME}:${HOME} + -B ${PIPELINE_DATA_DIR}:${PIPELINE_DATA_DIR} + ${GENEHACKMAN_EXTRA_SINGULARITY_BINDS} + --env-file .env + --pwd /home/scripts/ printshellcmds: True scheduler: greedy diff --git a/snakemake/bp1/config.yaml b/snakemake/profiles/uob-bp1/config.yaml similarity index 100% rename from snakemake/bp1/config.yaml rename to snakemake/profiles/uob-bp1/config.yaml diff --git a/snakemake/slurm_singularity/config.yaml b/snakemake/slurm_singularity/config.yaml deleted file mode 100644 index bce7c53..0000000 --- a/snakemake/slurm_singularity/config.yaml +++ /dev/null @@ -1,33 +0,0 @@ -cluster: - export USER=$(whoami) && - export ACCOUNT_ID=$(sacctmgr show user withassoc format=account where user=$USER | grep '[0-9]' | head -n1) && - mkdir -p /user/work/$USER/slurm_logs && - sbatch - --partition={resources.partition} - --account=$ACCOUNT_ID - --nodes={resources.nodes} - --ntasks-per-node={resources.ntasks_per_node} - --cpus-per-task={resources.ntasks_per_node} - --time={resources.time} - --cpus-per-task={threads} - --mem={resources.mem} - --job-name={rule}-{wildcards} - --output=/user/work/$USER/slurm_logs/{rule}_%j.out -default-resources: - - time='01:00:00' - - partition=compute - - mem='1G' - - ntasks_per_node=1 - - nodes=1 -restart-times: 0 -max-jobs-per-second: 10 -max-status-checks-per-second: 1 -local-cores: 1 -latency-wait: 10 -jobs: 10 -keep-going: True -rerun-incomplete: True -use-singularity: True -singularity-args: '-B $(pwd)/R:/home/R -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B /user/work/$(whoami) -B /user/home/$(whoami) -B /bp1/mrcieu1/data/ -B ${QTL_DATA_DIR}:${QTL_DATA_DIR} --env-file .env --pwd /home/scripts/' -printshellcmds: True -scheduler: greedy diff --git a/snakemake/util/constants.smk b/snakemake/util/constants.smk index 55929fa..295ad28 100644 --- a/snakemake/util/constants.smk +++ b/snakemake/util/constants.smk @@ -15,16 +15,14 @@ user = os.getenv('USER') input_file = "input.yaml" start_time = datetime.now() -# Slurm writes batch stdout to this directory on HPC; local/Docker runs use ./pipeline_logs instead. _pipeline_log_override = os.getenv("PIPELINE_LOG_DIR") _local_flag = os.getenv("GENEHACKMAN_LOCAL", "").strip().lower() in ("1", "true", "yes") -_hpc_work_base = f"/user/work/{user}" if user else None if _pipeline_log_override: pipeline_log_directory = format_dir_string(_pipeline_log_override) -elif _local_flag or not (_hpc_work_base and os.path.isdir(_hpc_work_base)): - pipeline_log_directory = format_dir_string(os.path.join(os.getcwd(), "pipeline_logs")) +elif _local_flag or not (DATA_DIR and os.path.isdir(DATA_DIR)): + pipeline_log_directory = format_dir_string(os.path.join(os.getcwd(), "snakemake_logs")) else: - pipeline_log_directory = format_dir_string(f"{_hpc_work_base}/slurm_logs") + pipeline_log_directory = format_dir_string(f"{DATA_DIR}/snakemake_logs") slurm_log_directory = pipeline_log_directory From ae0e7f3bb0907b611eff770200661f68a7e61078 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 29 Apr 2026 15:49:54 +0100 Subject: [PATCH 23/85] Fixing slurm config --- snakemake/profiles/slurm/config.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/snakemake/profiles/slurm/config.yaml b/snakemake/profiles/slurm/config.yaml index 611bd7d..fedca04 100644 --- a/snakemake/profiles/slurm/config.yaml +++ b/snakemake/profiles/slurm/config.yaml @@ -1,11 +1,12 @@ cluster: export USER=$(whoami) && export ACCOUNT_ID=$(sacctmgr show user withassoc format=account where user=$USER | grep '[0-9]' | head -n1) && - export ACCOUNT_FOR_JOB="${SLURM_ACCOUNT:-$ACCOUNT_ID}" && + export PARTITION="$SLURM_PARTITION" && + if [ -n "$SLURM_ACCOUNT" ]; then export ACCOUNT_ID="$SLURM_ACCOUNT"; fi && mkdir -p "$PIPELINE_LOG_DIR" && sbatch --partition={resources.partition} - --account="$ACCOUNT_FOR_JOB" + --account=$ACCOUNT_ID --nodes={resources.nodes} --ntasks-per-node={resources.ntasks_per_node} --cpus-per-task={resources.ntasks_per_node} @@ -16,7 +17,7 @@ cluster: --output="$PIPELINE_LOG_DIR/{rule}_%j.out" default-resources: - time='01:00:00' - - partition=${SLURM_PARTITION} + - partition='$PARTITION' - mem='1G' - ntasks_per_node=1 - nodes=1 From 6798a1e1a6bb9700cea029fd673415fc6f23ce4b Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 29 Apr 2026 15:58:32 +0100 Subject: [PATCH 24/85] Decent assumption of slurm partition --- PLATFORM_SETUP.md | 4 ++-- run_pipeline.sh | 14 +++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/PLATFORM_SETUP.md b/PLATFORM_SETUP.md index 1dbc046..aa3655c 100644 --- a/PLATFORM_SETUP.md +++ b/PLATFORM_SETUP.md @@ -88,7 +88,7 @@ export SNAKEMAKE_PROFILE=snakemake/profiles/slurm/ **Customize** each profile under **`snakemake/profiles/`** (each directory has a **`config.yaml`**) as needed: -- **`Slurm account / partition`:** In **`.env`**, optional **`SLURM_ACCOUNT`** sets **`sbatch --account`**; if unset, the generic profile uses the existing **`sacctmgr … | grep … | head -n1`** lookup. Optional **`SLURM_PARTITION`** sets the default Snakemake **`resources.partition`** (via **`GENEHACKMAN_SLURM_PARTITION`** exported by **`run_pipeline.sh`**); if unset, the default is **`compute`** (see **`snakemake/profiles/slurm/config.yaml`**). +- **`Slurm account / partition`:** In **`.env`**, optional **`SLURM_ACCOUNT`** overrides **`sbatch --account`**; if unset, the profile uses **`sacctmgr … | grep … | head -n1`**. **`SLURM_PARTITION`**, if unset, is inferred by **`run_pipeline.sh`** from **`sinfo -h -o '%P'`** (the partition marked with **`*`**, e.g. **`compute*`** → **`compute`**); if **`sinfo`** is unavailable or returns nothing, the fallback is **`compute`**. Passed to Snakemake as **`--default-resources partition=…`**. - **`cluster:`** block: `sbatch` options (`partition`, `account`, walltime, memory, `--output` log directory). - **`singularity-args`:** The generic profile binds repo code, **`$HOME`**, **`PIPELINE_DATA_DIR`**, and adds **`QTL_DATA_DIR`** only when non-empty (see **`GENEHACKMAN_EXTRA_SINGULARITY_BINDS`** in `run_pipeline.sh`). Add more `-B host:host` pairs for shared reference data on your site. @@ -122,7 +122,7 @@ Copy `snakemake/slurm_singularity/config.yaml` as a template, replace the **`clu |----------|---------| | **`SNAKEMAKE_PROFILE`** | Snakemake profile path (default `snakemake/profiles/local/`). Example HPC: `snakemake/profiles/slurm/` | | **`SLURM_ACCOUNT`** | Optional (**`profiles/slurm`**). Sets **`sbatch --account`**; omitted ⇒ existing **`sacctmgr`** derivation in `config.yaml` | -| **`SLURM_PARTITION`** | Optional (**`profiles/slurm`**). Default partition for **`{resources.partition}`**; omitted ⇒ **`compute`** (**`GENEHACKMAN_SLURM_PARTITION`** in `run_pipeline.sh`) | +| **`SLURM_PARTITION`** | Optional (**`profiles/slurm`**). Overrides **`sinfo`** default-partition detection in **`run_pipeline.sh`** (see **`sinfo`** `*` suffix); ultimate fallback **`compute`** | The **pipeline YAML path** is not configured via `.env`. Use **`./run_pipeline.sh .smk [path/to/input.yaml]`** (defaults to **`input.yaml`**) or run **`snakemake`** with **`--config genehackman_input=path/to/input.yaml`** (see `snakemake/PIPELINES.md`). diff --git a/run_pipeline.sh b/run_pipeline.sh index 26637a0..d375841 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -29,7 +29,14 @@ if [[ -z "${DATA_DIR:-}" || -z "${RESULTS_DIR:-}" || -z "${PIPELINE_DATA_DIR:-}" exit 1 fi export PIPELINE_LOG_DIR="${DATA_DIR%/}/snakemake_logs" -export SLURM_PARTITION="${SLURM_PARTITION:-compute}" + +if [[ -z "${SLURM_PARTITION:-}" ]]; then + if command -v sinfo >/dev/null 2>&1; then + SLURM_PARTITION="$(sinfo -h -o '%P' 2>/dev/null | grep '\*' | head -n1 | tr -d '*[:space:]')" + fi + SLURM_PARTITION="${SLURM_PARTITION:-compute}" +fi +export SLURM_PARTITION export GENEHACKMAN_EXTRA_SINGULARITY_BINDS="" _trim_qtl="$(echo "${QTL_DATA_DIR:-}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')" @@ -75,10 +82,7 @@ fi SIF_NAME="genehackman_${SIF_VERSION}.sif" SIF_PATH="${SIF_DIR}/${SIF_NAME}" -# Source for singularity build: default pulls docker://mrcieu/genehackman: from Hub. -# Set GENEHACKMAN_SINGULARITY_DOCKER_REFERENCE=docker-daemon://mrcieu/genehackman:develop (or other tag) -# to build the SIF from your local Docker image (same image ID, no Hub pull / no rebuild of layers). -SINGULARITY_DOCKER_REFERENCE="${GENEHACKMAN_SINGULARITY_DOCKER_REFERENCE:-docker://mrcieu/genehackman:${GENEHACKMAN_VERSION}}" +SINGULARITY_DOCKER_REFERENCE="docker://mrcieu/genehackman:${GENEHACKMAN_VERSION}" # mrcieu/genehackman is linux/amd64 only. On ARM (Apple Silicon), Apptainer defaults to arm64 and # fails with: no child with platform linux/arm64 in index. Force amd64 for the OCI/docker pull. From 547fc5c327c6fb1399c57b41dd560d6f97f4475c Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 29 Apr 2026 16:03:19 +0100 Subject: [PATCH 25/85] binding additional directories --- PLATFORM_SETUP.md | 2 +- snakemake/profiles/slurm/config.yaml | 6 ++++-- .../testthat/data/snakemake_inputs/standardise_gwas.yaml | 8 -------- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/PLATFORM_SETUP.md b/PLATFORM_SETUP.md index aa3655c..6364aa1 100644 --- a/PLATFORM_SETUP.md +++ b/PLATFORM_SETUP.md @@ -90,7 +90,7 @@ export SNAKEMAKE_PROFILE=snakemake/profiles/slurm/ - **`Slurm account / partition`:** In **`.env`**, optional **`SLURM_ACCOUNT`** overrides **`sbatch --account`**; if unset, the profile uses **`sacctmgr … | grep … | head -n1`**. **`SLURM_PARTITION`**, if unset, is inferred by **`run_pipeline.sh`** from **`sinfo -h -o '%P'`** (the partition marked with **`*`**, e.g. **`compute*`** → **`compute`**); if **`sinfo`** is unavailable or returns nothing, the fallback is **`compute`**. Passed to Snakemake as **`--default-resources partition=…`**. - **`cluster:`** block: `sbatch` options (`partition`, `account`, walltime, memory, `--output` log directory). -- **`singularity-args`:** The generic profile binds repo code, **`$HOME`**, **`PIPELINE_DATA_DIR`**, and adds **`QTL_DATA_DIR`** only when non-empty (see **`GENEHACKMAN_EXTRA_SINGULARITY_BINDS`** in `run_pipeline.sh`). Add more `-B host:host` pairs for shared reference data on your site. +- **`singularity-args`:** The generic profile binds repo code, **`$HOME`**, **`DATA_DIR`**, **`RESULTS_DIR`**, **`PIPELINE_DATA_DIR`**, **`/tmp`**, and adds **`QTL_DATA_DIR`** only when non-empty (see **`GENEHACKMAN_EXTRA_SINGULARITY_BINDS`** in `run_pipeline.sh`). Add more `-B host:host` pairs for shared reference data on your site. **Snakemake version:** `environment.yml` pins **Snakemake 7.x**. Migrating to **Snakemake 8+** changes cluster syntax (`cluster-generic` executor + plugins); this repository’s profiles target the v7 style unless you have already updated them. diff --git a/snakemake/profiles/slurm/config.yaml b/snakemake/profiles/slurm/config.yaml index fedca04..c1eebf7 100644 --- a/snakemake/profiles/slurm/config.yaml +++ b/snakemake/profiles/slurm/config.yaml @@ -5,7 +5,7 @@ cluster: if [ -n "$SLURM_ACCOUNT" ]; then export ACCOUNT_ID="$SLURM_ACCOUNT"; fi && mkdir -p "$PIPELINE_LOG_DIR" && sbatch - --partition={resources.partition} + --partition=$PARTITION --account=$ACCOUNT_ID --nodes={resources.nodes} --ntasks-per-node={resources.ntasks_per_node} @@ -17,7 +17,6 @@ cluster: --output="$PIPELINE_LOG_DIR/{rule}_%j.out" default-resources: - time='01:00:00' - - partition='$PARTITION' - mem='1G' - ntasks_per_node=1 - nodes=1 @@ -35,8 +34,11 @@ singularity-args: >- -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B ${HOME}:${HOME} + -B ${DATA_DIR}:${DATA_DIR} + -B ${RESULTS_DIR}:${RESULTS_DIR} -B ${PIPELINE_DATA_DIR}:${PIPELINE_DATA_DIR} ${GENEHACKMAN_EXTRA_SINGULARITY_BINDS} + -B /tmp:/tmp --env-file .env --pwd /home/scripts/ printshellcmds: True diff --git a/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml b/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml index afd9cda..3a0dfc2 100644 --- a/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml +++ b/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml @@ -1,13 +1,5 @@ gwases: - file: tests/testthat/data/some_eqtlgen_hits.tsv.gz columns: {} - - file: tests/testthat/data/opengwas_example.vcf.gz - columns: opengwas - - file: tests/testthat/data/metal_output.txt - columns: metal - populate_rsid: true - - file: tests/testthat/data/test_data_small_hg38.tsv.gz - columns: {} - build: GRCh38 populate_rsid: false is_test: true From 4f3acb3377d0ef248c4385b2796fa2f6d817aaef Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 29 Apr 2026 16:08:15 +0100 Subject: [PATCH 26/85] Adding other standardisations back in --- .../testthat/data/snakemake_inputs/standardise_gwas.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml b/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml index 3a0dfc2..afd9cda 100644 --- a/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml +++ b/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml @@ -1,5 +1,13 @@ gwases: - file: tests/testthat/data/some_eqtlgen_hits.tsv.gz columns: {} + - file: tests/testthat/data/opengwas_example.vcf.gz + columns: opengwas + - file: tests/testthat/data/metal_output.txt + columns: metal + populate_rsid: true + - file: tests/testthat/data/test_data_small_hg38.tsv.gz + columns: {} + build: GRCh38 populate_rsid: false is_test: true From b0cac606a6cd8e91964d9bca0ce5ca452b123152 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 30 Apr 2026 11:15:14 +0100 Subject: [PATCH 27/85] Updating 1000genomes dir --- R/constants.R | 2 +- run_pipeline.sh | 2 +- snakemake/PIPELINES.md | 2 +- snakemake/util/constants.smk | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/R/constants.R b/R/constants.R index dac11dc..d814d30 100644 --- a/R/constants.R +++ b/R/constants.R @@ -14,7 +14,7 @@ number_of_cpus_available <- as.numeric(get_env_var("SLURM_CPUS_ON_NODE", 1)) genomic_data_dir <- file.path(pipeline_data_dir, "genomic_data") # Must match snakemake/util/constants.smk THOUSAND_GENOMES_DIR (used by clumping + LD). -thousand_genomes_dir <- file.path(pipeline_data_dir, "1000genomes", "b37_dbsnp156") +thousand_genomes_dir <- file.path(genomic_data_dir, "1000genomes", "b37_dbsnp156") liftover_dir <- file.path(genomic_data_dir, "liftover") pqtl_top_hits_dir <- file.path(qtl_directory, "pqtl") diff --git a/run_pipeline.sh b/run_pipeline.sh index d375841..449946f 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -64,7 +64,7 @@ if [[ "${PROFILE}" != snakemake/profiles/local/* ]] && [[ "${PROFILE}" != snakem module load ${APPTAINER_MODULE} fi -PIPELINE_GENOMIC_DIR="${PIPELINE_DATA_DIR%/}/genomic_data/pipeline/" +PIPELINE_GENOMIC_DIR="${PIPELINE_DATA_DIR%/}/pipeline/" if [[ -w "${PIPELINE_GENOMIC_DIR}" ]]; then SIF_DIR="${PIPELINE_GENOMIC_DIR}" else diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index 4987899..702e78e 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -27,7 +27,7 @@ Each element describes one GWAS file. | `ancestry` | Varies | One of `AFR`, `AMR`, `EAS`, `EUR`, `SAS`. **Required** for pipelines that use LD (clumping, finemap, coloc, qtl_mr) and whenever `populate_eaf` is enabled for that GWAS. | | `build` | No | `GRCh36`, `GRCh37`, `GRCh38`. Default `GRCh37`. | | `populate_rsid` | No | Per-GWAS override: `true` / `false`. With clumping and `false` at both levels, RSID population is **partial** (see below). | -| `populate_eaf` | No | Per-GWAS: if `true`, fills missing `EAF` from the 1000 Genomes reference (`/.bim` + `.frq`). Requires `ancestry`. | +| `populate_eaf` | No | Per-GWAS: if `true`, fills missing `EAF` from the 1000 Genomes reference (`/genomic_data/1000genomes/b37_dbsnp156/` … `.bim` + `.frq`). Requires `ancestry`. | | `flip_alleles` | No | If omitted, inherited from root `flip_alleles` (default `true`). If `false`, EA/OA order is preserved (see `standardise_gwas` constraints with partial RSID). | | `remove_extra_columns` | No | Default `false`. | diff --git a/snakemake/util/constants.smk b/snakemake/util/constants.smk index 295ad28..36dbcbb 100644 --- a/snakemake/util/constants.smk +++ b/snakemake/util/constants.smk @@ -64,7 +64,7 @@ QTL_DATA_DIR = os.getenv("QTL_DATA_DIR", "").strip() LDSC_DIR = format_dir_string(PIPELINE_DATA_DIR + "/LDSCORE/b37_dbsnp156") GENOMIC_DATA_DIR = format_dir_string(PIPELINE_DATA_DIR + "/genomic_data") -THOUSAND_GENOMES_DIR = format_dir_string(PIPELINE_DATA_DIR + "/1000genomes/b37_dbsnp156") +THOUSAND_GENOMES_DIR = format_dir_string(GENOMIC_DATA_DIR + "1000genomes/b37_dbsnp156") QTL_DIRECTORY = format_dir_string(QTL_DATA_DIR) if DATA_DIR == RESULTS_DIR: From d04695a9be24b16fe4f4e9d9a1d7955d51b62320 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 30 Apr 2026 11:26:38 +0100 Subject: [PATCH 28/85] make fixes to sif build in run_pipeline --- run_pipeline.sh | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/run_pipeline.sh b/run_pipeline.sh index 449946f..6f91bce 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -64,14 +64,6 @@ if [[ "${PROFILE}" != snakemake/profiles/local/* ]] && [[ "${PROFILE}" != snakem module load ${APPTAINER_MODULE} fi -PIPELINE_GENOMIC_DIR="${PIPELINE_DATA_DIR%/}/pipeline/" -if [[ -w "${PIPELINE_GENOMIC_DIR}" ]]; then - SIF_DIR="${PIPELINE_GENOMIC_DIR}" -else - SIF_DIR=".snakemake/singularity" -fi -SIF_DIR="${SIF_DIR%/}" - # Image tag: default GENEHACKMAN_VERSION from DOCKER_VERSION so pull and SIF basename stay aligned. GENEHACKMAN_VERSION="${GENEHACKMAN_VERSION:-${DOCKER_VERSION:-}}" SIF_VERSION="${DOCKER_VERSION:-${GENEHACKMAN_VERSION:-}}" @@ -79,8 +71,18 @@ if [[ -z "${SIF_VERSION}" ]]; then echo "Error: Set DOCKER_VERSION in .env (e.g. 1.0.0) so the SIF name matches the Docker image tag." exit 1 fi + SIF_NAME="genehackman_${SIF_VERSION}.sif" -SIF_PATH="${SIF_DIR}/${SIF_NAME}" +PIPELINE_GENOMIC_DIR="${PIPELINE_DATA_DIR%/}/genomic_data/pipeline" +PIPELINE_GENOMIC_DIR="${PIPELINE_GENOMIC_DIR%/}" +SIF_PATH="${PIPELINE_GENOMIC_DIR}/${SIF_NAME}" + +echo "SIF_PATH: ${SIF_PATH}" +if [[ -f "${SIF_PATH}" ]] || [[ -w "${PIPELINE_GENOMIC_DIR}" ]] ; then + mkdir -p "${PIPELINE_GENOMIC_DIR}" +else + SIF_PATH=".snakemake/singularity/${SIF_NAME}" +fi SINGULARITY_DOCKER_REFERENCE="docker://mrcieu/genehackman:${GENEHACKMAN_VERSION}" @@ -97,7 +99,7 @@ fi if [[ ! -f "${SIF_PATH}" ]]; then echo "SIF file not found: ${SIF_PATH}" - mkdir -p "${SIF_DIR}" + mkdir -p "${PIPELINE_GENOMIC_DIR}" echo "Building container with singularity from: ${SINGULARITY_DOCKER_REFERENCE}" if [[ "${#SINGULARITY_BUILD_ARCH_ARGS[@]}" -gt 0 ]]; then echo "(host is ARM: using singularity build ${SINGULARITY_BUILD_ARCH_ARGS[*]} for amd64 image)" From 4f4a276500a75669a4ef18433427a039d5bda533 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 30 Apr 2026 13:43:25 +0100 Subject: [PATCH 29/85] Changes to finemap rule --- DESCRIPTION | 1 + NAMESPACE | 1 + R/finemap.R | 26 +++++++++++++++++--------- R/gwas_formatting.R | 21 +++++++++++++++++---- R/imports.R | 1 + man/finemap_gwas.Rd | 4 ++++ man/standardise_gwas.Rd | 5 ++++- run_pipeline.sh | 2 +- scripts/run_finemap.R | 4 ++-- snakemake/PIPELINES.md | 6 +++--- snakemake/coloc.smk | 31 +------------------------------ snakemake/finemap.smk | 31 +------------------------------ snakemake/qtl_mr.smk | 31 +------------------------------ snakemake/rules/finemap_rule.smk | 30 ++++++++++++++++++++++++++++++ snakemake/standardise_gwas.smk | 2 +- snakemake/util/common.smk | 7 ++++++- 16 files changed, 91 insertions(+), 112 deletions(-) create mode 100644 snakemake/rules/finemap_rule.smk diff --git a/DESCRIPTION b/DESCRIPTION index 73e727e..31b4d95 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -29,6 +29,7 @@ Imports: progressr, qqman, rlang, + Rfast, R.utils, rmarkdown, shiny, diff --git a/NAMESPACE b/NAMESPACE index bf707c8..dca5510 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -28,6 +28,7 @@ export(volcano_plot) export(vroom_snps) import(MendelianRandomization, except = c(mr_ivw, mr_median)) import(R.utils, except = c(env, extract, reset, setProgress, timestamp, validate)) +import(Rfast, except = c(transpose, nth, is_integer, as_integer)) import(SlopeHunter, except = c(format_data)) import(TwoSampleMR) import(coloc) diff --git a/R/finemap.R b/R/finemap.R index e31715b..5ee2ab7 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -16,6 +16,8 @@ #' @param max_causal maximum number of causal signals per locus (SuSiE L, default 10) #' @param coverage credible set coverage (default 0.95) #' @param min_abs_corr minimum absolute correlation for credible sets (default 0.5) +#' @details Loci are fine-mapped in parallel with [parallel::mclapply()] (`mc.cores = 2`). +#' On Windows this runs sequentially. Each job writes its own output file. #' @return invisibly, the combined per-SNP finemap tibble (LD-matched SNPs only) @@ -53,9 +55,8 @@ finemap_gwas <- function(gwas, } window_bp <- window_kb * 1000 - all_lbf <- list() - for (i in seq_len(nrow(lead_snps))) { + process_one_locus <- function(i) { lead_rsid <- lead_snps$SNP[i] lead_chr <- as.numeric(lead_snps$CHR[i]) lead_bp <- as.numeric(lead_snps$BP[i]) @@ -69,25 +70,25 @@ finemap_gwas <- function(gwas, if (nrow(locus_gwas) < 2) { message(paste("Skipping locus", lead_rsid, "- fewer than 2 SNPs in window")) - next + return(NULL) } if (!"RSID" %in% colnames(locus_gwas) || all(is.na(locus_gwas$RSID))) { message(paste("Skipping locus", lead_rsid, "- no RSIDs available for LD computation")) - next + return(NULL) } locus_gwas <- dplyr::filter(locus_gwas, !is.na(RSID) & nchar(RSID) > 0) ld_result <- compute_ld_matrix(locus_gwas$RSID, lead_chr, ancestry) if (is.null(ld_result)) { message(paste("Skipping locus", lead_rsid, "- LD matrix computation failed")) - next + return(NULL) } shared_rsids <- intersect(locus_gwas$RSID, ld_result$snps) if (length(shared_rsids) < 2) { message(paste("Skipping locus", lead_rsid, "- too few shared SNPs between GWAS and LD panel")) - next + return(NULL) } locus_gwas <- dplyr::filter(locus_gwas, RSID %in% shared_rsids) @@ -113,11 +114,9 @@ finemap_gwas <- function(gwas, ) if (nrow(locus_lbf) == 0) { - next + return(NULL) } - all_lbf <- c(all_lbf, list(locus_lbf)) - lbf_nm <- grep("^LBF_[0-9]+$", names(locus_lbf), value = TRUE) finemap_join <- dplyr::select(locus_lbf, dplyr::any_of(c( "RSID", "Z", "CS", lbf_nm @@ -137,8 +136,17 @@ finemap_gwas <- function(gwas, safe_locus <- gsub("[^A-Za-z0-9._-]+", "_", lead_chr_bp) out_file <- file.path(output_finemap_dir, paste0(safe_locus, "_finemap.tsv.gz")) vroom::vroom_write(out_gwas, out_file) + + locus_lbf } + n_loci <- nrow(lead_snps) + locus_results <- parallel::mclapply( + seq_len(n_loci), + process_one_locus, + mc.cores = 2L + ) + all_lbf <- locus_results[!vapply(locus_results, is.null, FUN.VALUE = logical(1))] combined_lbf <- dplyr::bind_rows(all_lbf) if (nrow(combined_lbf) == 0) { diff --git a/R/gwas_formatting.R b/R/gwas_formatting.R index ab5ca4c..b7744c2 100644 --- a/R/gwas_formatting.R +++ b/R/gwas_formatting.R @@ -13,7 +13,10 @@ #' @param populate_eaf If TRUE, fill missing \code{EAF} from the 1000 Genomes LD panel (\code{ANCESTRY.bim} + \code{ANCESTRY.frq} under \code{THOUSAND_GENOMES_DIR}). #' @param ancestry Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE. #' @param flip_alleles If TRUE (default), reorder EA/OA alphabetically and flip BETA, EAF, Z accordingly. -#' Set to FALSE to keep alleles as-is (useful when you only need to populate RSIDs, EAF, or change build). +#' Set to FALSE to keep alleles as-is (useful when you only need harmonisation without allele reordering). +#' Only supported when running **standardise_gwas.smk**. When \code{populate_eaf} is TRUE and +#' \code{flip_alleles} is FALSE, EAF is merged from the LD panel before rebuilding the SNP id so +#' effect alleles align with reference coding. #' @return modified gwas: saves new gwas in output_file if present @@ -45,10 +48,20 @@ standardise_gwas <- function(gwas, change_column_names(input_gwas_columns, remove_extra_columns) |> standardise_columns(N) |> filter_incomplete_rows() |> - convert_reference_build_via_liftover(input_reference_build, output_reference_build) |> - standardise_alleles(flip = flip_alleles) |> + convert_reference_build_via_liftover(input_reference_build, output_reference_build) + + if (!flip_alleles && isTRUE(populate_eaf)) { + gwas <- populate_eaf_from_reference_panel(gwas, ancestry, TRUE) + } + + gwas <- standardise_alleles(gwas, flip = flip_alleles) + + if (flip_alleles && isTRUE(populate_eaf)) { + gwas <- populate_eaf_from_reference_panel(gwas, ancestry, TRUE) + } + + gwas <- gwas |> health_check() |> - populate_eaf_from_reference_panel(ancestry, populate_eaf) |> populate_rsid(populate_rsid_option) |> populate_gene_names() |> change_column_names(output_gwas_columns) diff --git a/R/imports.R b/R/imports.R index 38a34cf..0a6da5d 100644 --- a/R/imports.R +++ b/R/imports.R @@ -16,6 +16,7 @@ #' @rawNamespace import(shiny, except = c(setProgress, validate)) #' @rawNamespace import(tidyr, except = c(extract)) #' @rawNamespace import(utils, except = c(timestamp)) +#' @rawNamespace import(Rfast, except = c(transpose, nth, is_integer, as_integer)) #' @import coloc #' @import ggplot2 #' @import ggrepel diff --git a/man/finemap_gwas.Rd b/man/finemap_gwas.Rd index fb29a34..40aa1c9 100644 --- a/man/finemap_gwas.Rd +++ b/man/finemap_gwas.Rd @@ -46,3 +46,7 @@ susieR::susie_rss. Writes one TSV per locus: all GWAS variants within the genomic window around the lead SNP, with SuSiE Z-scores, credible-set membership, and per-credible-set (independent signal) columns \code{LBF_1}, \code{LBF_2}, ... } +\details{ +Loci are fine-mapped in parallel with \code{\link[parallel:mclapply]{parallel::mclapply()}} (\code{mc.cores = 2}). +On Windows this runs sequentially. Each job writes its own output file. +} diff --git a/man/standardise_gwas.Rd b/man/standardise_gwas.Rd index df658df..b821aa2 100644 --- a/man/standardise_gwas.Rd +++ b/man/standardise_gwas.Rd @@ -45,7 +45,10 @@ can be list() of key/value pairs, string of row in predefined_column_maps, or co \item{ancestry}{Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE.} \item{flip_alleles}{If TRUE (default), reorder EA/OA alphabetically and flip BETA, EAF, Z accordingly. -Set to FALSE to keep alleles as-is (useful when you only need to populate RSIDs, EAF, or change build).} +Set to FALSE to keep alleles as-is (useful when you only need harmonisation without allele reordering). +Only supported when running \strong{standardise_gwas.smk}. When \code{populate_eaf} is TRUE and +\code{flip_alleles} is FALSE, EAF is merged from the LD panel before rebuilding the SNP id so +effect alleles align with reference coding.} } \value{ modified gwas: saves new gwas in output_file if present diff --git a/run_pipeline.sh b/run_pipeline.sh index 6f91bce..89b6e01 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -73,7 +73,7 @@ if [[ -z "${SIF_VERSION}" ]]; then fi SIF_NAME="genehackman_${SIF_VERSION}.sif" -PIPELINE_GENOMIC_DIR="${PIPELINE_DATA_DIR%/}/genomic_data/pipeline" +PIPELINE_GENOMIC_DIR="${PIPELINE_DATA_DIR%/}/pipeline" PIPELINE_GENOMIC_DIR="${PIPELINE_GENOMIC_DIR%/}" SIF_PATH="${PIPELINE_GENOMIC_DIR}/${SIF_NAME}" diff --git a/scripts/run_finemap.R b/scripts/run_finemap.R index bf71022..b145ffe 100644 --- a/scripts/run_finemap.R +++ b/scripts/run_finemap.R @@ -49,7 +49,7 @@ if (!dir.exists(args$output_finemap_dir)) { dir.create(args$output_finemap_dir, recursive = TRUE) } -finemap_gwas(gwas = args$gwas_filename, +invisible(finemap_gwas(gwas = args$gwas_filename, clumped_file = args$clumped_filename, ancestry = args$ancestry, default_n = args$N, @@ -58,4 +58,4 @@ finemap_gwas(gwas = args$gwas_filename, max_causal = args$max_causal, coverage = args$coverage, min_abs_corr = args$min_abs_corr -) +)) diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index 702e78e..d9db0dd 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -28,7 +28,7 @@ Each element describes one GWAS file. | `build` | No | `GRCh36`, `GRCh37`, `GRCh38`. Default `GRCh37`. | | `populate_rsid` | No | Per-GWAS override: `true` / `false`. With clumping and `false` at both levels, RSID population is **partial** (see below). | | `populate_eaf` | No | Per-GWAS: if `true`, fills missing `EAF` from the 1000 Genomes reference (`/genomic_data/1000genomes/b37_dbsnp156/` … `.bim` + `.frq`). Requires `ancestry`. | -| `flip_alleles` | No | If omitted, inherited from root `flip_alleles` (default `true`). If `false`, EA/OA order is preserved (see `standardise_gwas` constraints with partial RSID). | +| `flip_alleles` | No | If omitted, inherited from root (default **`true`**). **`false`** is **allowed only for [`standardise_gwas.smk`](standardise_gwas.smk)** (other pipelines fail at YAML load). With `false`, EA/OA order is preserved; **partial** RSID + `flip_alleles: false` remains invalid (use **`none`** or **`full`** RSID). | | `remove_extra_columns` | No | Default `false`. | @@ -52,7 +52,7 @@ These may appear at the **root** of the YAML document (alongside `gwases`). | `is_test` | `false` | Used by tests / logging. | | `populate_rsid` | `false` | Pipeline-wide default; each GWAS can override. **Clumping + false** here and on each GWAS ⇒ RSID population is **partial** (chrpos-based) unless you set `populate_rsid: true` where needed. | | `populate_eaf` | `false` | Pipeline-wide default; each GWAS can override. Any GWAS with `populate_eaf: true` must include `ancestry`. | -| `flip_alleles` | `true` | Pipeline-wide default for `standardise_gwas`. | +| `flip_alleles` | `true` | Pipeline-wide default. Root or per-GWAS **`false`** only for **`standardise_gwas.smk`**; downstream pipelines require default harmonised alleles (`true`). | | `output` | `build: GRCh37` + default column map | Only `standardise_gwas` / harmonisation: target `build` and/or output column names. | | `finemap` | See below | Present in **finemap**, **coloc**, and **qtl_mr** inputs. Omitted keys get defaults from the parser (e.g. `window_kb` defaults to **500** unless you set it under `finemap`). | | `coloc` | See below | Only **coloc** pipeline. | @@ -107,7 +107,7 @@ Used by **finemap**, **coloc**, and **qtl_mr**. If the block is missing, default Harmonisation only (`snakemake/standardise_gwas.smk`). - **GWAS**: one or more objects (see above). -- **Root**: optional `populate_rsid`, `populate_eaf`, `flip_alleles`, `output.build` / `output.columns`, `is_test`. +- **Root**: optional `populate_rsid`, `populate_eaf`, `flip_alleles`, `output.build` / `output.columns`, `is_test`. This is the **only** pipeline that allows **`flip_alleles: false`**; when combined with **`populate_eaf`**, EAF merge runs **before** the SNP id is rebuilt without allele flipping. - **Outputs**: `{DATA_DIR}/gwas/_std.tsv.gz` per input file. --- diff --git a/snakemake/coloc.smk b/snakemake/coloc.smk index 1cd712b..7cf3fdb 100644 --- a/snakemake/coloc.smk +++ b/snakemake/coloc.smk @@ -47,36 +47,7 @@ rule all: include: "rules/standardise_rule.smk" include: "rules/clumping_rule.smk" - -rule run_finemapping: - resources: - mem = "16G", - time = "04:00:00" - input: - gwas = lambda wildcards: getattr(pipeline, wildcards.prefix).standardised_gwas, - clumped_file = lambda wildcards: getattr(pipeline, wildcards.prefix).clumped_file - params: - ancestry = lambda wildcards: getattr(pipeline, wildcards.prefix).ancestry, - n = lambda wildcards: getattr(pipeline, wildcards.prefix).N, - window_kb = finemap_window_kb, - max_causal = finemap_max_causal, - coverage = finemap_coverage, - min_abs_corr = finemap_min_abs_corr - output: - finemap_dir = directory(finemap_dir_pattern) - shell: - """ - Rscript run_finemap.R \ - --gwas_filename {input.gwas} \ - --clumped_filename {input.clumped_file} \ - --ancestry {params.ancestry} \ - --N {params.n} \ - --output_finemap_dir {output.finemap_dir} \ - --window_kb {params.window_kb} \ - --max_causal {params.max_causal} \ - --coverage {params.coverage} \ - --min_abs_corr {params.min_abs_corr} - """ +include: "rules/finemap_rule.smk" rule run_coloc: resources: diff --git a/snakemake/finemap.smk b/snakemake/finemap.smk index 8ac9d3b..727311c 100644 --- a/snakemake/finemap.smk +++ b/snakemake/finemap.smk @@ -29,36 +29,7 @@ rule all: include: "rules/standardise_rule.smk" include: "rules/clumping_rule.smk" - -rule run_finemapping: - resources: - mem = "16G", - time = "04:00:00" - input: - gwas = lambda wildcards: getattr(pipeline, wildcards.prefix).standardised_gwas, - clumped_file = lambda wildcards: getattr(pipeline, wildcards.prefix).clumped_file - params: - ancestry = lambda wildcards: getattr(pipeline, wildcards.prefix).ancestry, - n = lambda wildcards: getattr(pipeline, wildcards.prefix).N, - window_kb = finemap_window_kb, - max_causal = finemap_max_causal, - coverage = finemap_coverage, - min_abs_corr = finemap_min_abs_corr - output: - finemap_dir = directory(finemap_dir_pattern) - shell: - """ - Rscript run_finemap.R \ - --gwas_filename {input.gwas} \ - --clumped_filename {input.clumped_file} \ - --ancestry {params.ancestry} \ - --N {params.n} \ - --output_finemap_dir {output.finemap_dir} \ - --window_kb {params.window_kb} \ - --max_causal {params.max_causal} \ - --coverage {params.coverage} \ - --min_abs_corr {params.min_abs_corr} - """ +include: "rules/finemap_rule.smk" onsuccess: files = [g.finemap_dir for g in pipeline.gwases] diff --git a/snakemake/qtl_mr.smk b/snakemake/qtl_mr.smk index 386e208..c0282ff 100644 --- a/snakemake/qtl_mr.smk +++ b/snakemake/qtl_mr.smk @@ -40,36 +40,7 @@ rule all: include: "rules/standardise_rule.smk" include: "rules/clumping_rule.smk" - -rule run_finemapping: - resources: - mem = "16G", - time = "04:00:00" - input: - gwas = lambda wildcards: getattr(pipeline, wildcards.prefix).standardised_gwas, - clumped_file = lambda wildcards: getattr(pipeline, wildcards.prefix).clumped_file - params: - ancestry = lambda wildcards: getattr(pipeline, wildcards.prefix).ancestry, - n = lambda wildcards: getattr(pipeline, wildcards.prefix).N, - window_kb = finemap_window_kb, - max_causal = finemap_max_causal, - coverage = finemap_coverage, - min_abs_corr = finemap_min_abs_corr - output: - finemap_dir = directory(finemap_dir_pattern) - shell: - """ - Rscript run_finemap.R \ - --gwas_filename {input.gwas} \ - --clumped_filename {input.clumped_file} \ - --ancestry {params.ancestry} \ - --N {params.n} \ - --output_finemap_dir {output.finemap_dir} \ - --window_kb {params.window_kb} \ - --max_causal {params.max_causal} \ - --coverage {params.coverage} \ - --min_abs_corr {params.min_abs_corr} - """ +include: "rules/finemap_rule.smk" rule run_mr_against_qtl_datasets: threads: 4 diff --git a/snakemake/rules/finemap_rule.smk b/snakemake/rules/finemap_rule.smk new file mode 100644 index 0000000..47d3d6c --- /dev/null +++ b/snakemake/rules/finemap_rule.smk @@ -0,0 +1,30 @@ +rule run_finemapping: + threads: 4 + resources: + mem = "32G", + time = "04:00:00" + input: + gwas = lambda wildcards: getattr(pipeline, wildcards.prefix).standardised_gwas, + clumped_file = lambda wildcards: getattr(pipeline, wildcards.prefix).clumped_file + params: + ancestry = lambda wildcards: getattr(pipeline, wildcards.prefix).ancestry, + n = lambda wildcards: getattr(pipeline, wildcards.prefix).N, + window_kb = finemap_window_kb, + max_causal = finemap_max_causal, + coverage = finemap_coverage, + min_abs_corr = finemap_min_abs_corr + output: + finemap_dir = directory(finemap_dir_pattern) + shell: + """ + Rscript run_finemap.R \ + --gwas_filename {input.gwas} \ + --clumped_filename {input.clumped_file} \ + --ancestry {params.ancestry} \ + --N {params.n} \ + --output_finemap_dir {output.finemap_dir} \ + --window_kb {params.window_kb} \ + --max_causal {params.max_causal} \ + --coverage {params.coverage} \ + --min_abs_corr {params.min_abs_corr} + """ diff --git a/snakemake/standardise_gwas.smk b/snakemake/standardise_gwas.smk index 679ee04..b7843f0 100644 --- a/snakemake/standardise_gwas.smk +++ b/snakemake/standardise_gwas.smk @@ -2,7 +2,7 @@ include: "util/common.smk" singularity: get_docker_container() pipeline_name = "standardise_gwas" -pipeline = parse_pipeline_input() +pipeline = parse_pipeline_input(allow_flip_false=True) onstart: print("##### GWAS Standardisation Pipeline #####") diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index 543661e..e160467 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -42,7 +42,7 @@ def get_docker_container(): return f"{docker_repo}:latest" -def parse_pipeline_input(pipeline_includes_clumping=False): +def parse_pipeline_input(pipeline_includes_clumping=False, allow_flip_false=False): global input_file try: input_file = config.get("genehackman_input") or "input.yaml" @@ -76,6 +76,7 @@ def parse_pipeline_input(pipeline_includes_clumping=False): if not hasattr(pipeline.output, "columns"): pipeline.output.columns = default_output_options.columns if not hasattr(pipeline, "populate_rsid"): pipeline.populate_rsid = False if not hasattr(pipeline, "populate_eaf"): pipeline.populate_eaf = False + if not hasattr(pipeline, "flip_alleles"): pipeline.flip_alleles = True if not hasattr(pipeline, "finemap"): pipeline.finemap = SimpleNamespace() @@ -123,6 +124,10 @@ def parse_pipeline_input(pipeline_includes_clumping=False): eaf_ancestries = [g.ancestry for g in pipeline.gwases if g.populate_eaf] if eaf_ancestries: validate_ancestries(eaf_ancestries) + if not allow_flip_false: + for g in pipeline.gwases: + if getattr(g, "flip_alleles", True) is False: + raise ValueError("flip_alleles = FALSE is only available for standardise_gwas.smk") return pipeline def resolve_rsid_population(pipeline_includes_clumping, populate_rsid): From e2f0fdfe96979d474b963fc3ac24067254d2c2d7 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 30 Apr 2026 13:51:08 +0100 Subject: [PATCH 30/85] ensuring --unlock still works --- run_pipeline.sh | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/run_pipeline.sh b/run_pipeline.sh index 89b6e01..5dfa0cb 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -8,7 +8,13 @@ if [[ $# -lt 1 ]] ; then echo """ Error: You have to provide at least 1 argument: PIPELINE_FILE (ex. snakemake/standardise_gwas.smk) - INPUT_FILE YAML (optional, defaults to input.yaml in the working directory) + INPUT_FILE YAML (optional, defaults to input.yaml; omit when passing only Snakemake flags) + + Examples: + ./run_pipeline.sh snakemake/coloc.smk + ./run_pipeline.sh snakemake/coloc.smk my_input.yaml + ./run_pipeline.sh snakemake/coloc.smk --unlock + ./run_pipeline.sh snakemake/coloc.smk my_input.yaml --dry-run Default profile is local Apptainer (snakemake/profiles/local/). For Slurm, set SNAKEMAKE_PROFILE=snakemake/profiles/slurm/ or create a new profile under snakemake/profiles/ @@ -57,8 +63,14 @@ else fi SMK_FILE=$1 -PIPELINE_INPUT="${2:-input.yaml}" -ADDITIONAL_ARGS="${@:3}" +shift +# Second arg is the input YAML only if it is present and not a Snakemake/cli flag (e.g. --unlock). +if [[ $# -ge 1 && "${1}" != -* ]]; then + PIPELINE_INPUT="$1" + shift +else + PIPELINE_INPUT="input.yaml" +fi if [[ "${PROFILE}" != snakemake/profiles/local/* ]] && [[ "${PROFILE}" != snakemake/local/* ]]; then module load ${APPTAINER_MODULE} @@ -120,4 +132,4 @@ fi echo "Running pipeline with profile: ${PROFILE}" -snakemake --snakefile "${SMK_FILE}" --profile "${PROFILE}" --config "genehackman_input=${PIPELINE_INPUT}" ${ADDITIONAL_ARGS} +snakemake --snakefile "${SMK_FILE}" --profile "${PROFILE}" --config "genehackman_input=${PIPELINE_INPUT}" "$@" From 20681e24b0b4f706d157dcf50212f36688b64677 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 30 Apr 2026 15:09:49 +0100 Subject: [PATCH 31/85] Upping limits for finemap --- R/constants.R | 19 ++++++++++++++++++- R/finemap.R | 3 ++- run_pipeline.sh | 6 ++++-- snakemake/rules/finemap_rule.smk | 6 +++--- 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/R/constants.R b/R/constants.R index d814d30..4b26ef4 100644 --- a/R/constants.R +++ b/R/constants.R @@ -6,11 +6,28 @@ get_env_var <- function(env_var_name, default_value=NULL) { } } +# Slurm node CPUs when SLURM_* env is set, else parallel::detectCores(). +available_cpus <- function() { + slurm <- Sys.getenv("SLURM_CPUS_ON_NODE", "") + if (nzchar(slurm)) { + v <- suppressWarnings(as.integer(slurm)) + if (!is.na(v)) { + return(max(1L, v)) + } + } + dc <- suppressWarnings(parallel::detectCores(logical = TRUE)) + if (is.na(dc) || dc < 1L) { + 1L + } else { + as.integer(dc) + } +} + user_data_dir <- get_env_var("DATA_DIR", "") user_results_dir <- get_env_var("RESULTS_DIR", "") pipeline_data_dir <- sub("/+$", "", get_env_var("PIPELINE_DATA_DIR", "")) qtl_directory <- sub("/+$", "", get_env_var("QTL_DATA_DIR", "")) -number_of_cpus_available <- as.numeric(get_env_var("SLURM_CPUS_ON_NODE", 1)) +number_of_cpus_available <- available_cpus() genomic_data_dir <- file.path(pipeline_data_dir, "genomic_data") # Must match snakemake/util/constants.smk THOUSAND_GENOMES_DIR (used by clumping + LD). diff --git a/R/finemap.R b/R/finemap.R index 5ee2ab7..d1636e8 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -144,7 +144,7 @@ finemap_gwas <- function(gwas, locus_results <- parallel::mclapply( seq_len(n_loci), process_one_locus, - mc.cores = 2L + mc.cores = 3L ) all_lbf <- locus_results[!vapply(locus_results, is.null, FUN.VALUE = logical(1))] combined_lbf <- dplyr::bind_rows(all_lbf) @@ -178,6 +178,7 @@ compute_ld_matrix <- function(rsids, chr, ancestry) { cmd <- paste( "plink1.9", + "--threads", as.character(number_of_cpus_available), "--bfile", bfile, "--chr", chr, "--extract", snp_file, diff --git a/run_pipeline.sh b/run_pipeline.sh index 5dfa0cb..3b664a3 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -85,7 +85,7 @@ if [[ -z "${SIF_VERSION}" ]]; then fi SIF_NAME="genehackman_${SIF_VERSION}.sif" -PIPELINE_GENOMIC_DIR="${PIPELINE_DATA_DIR%/}/pipeline" +PIPELINE_GENOMIC_DIR="${PIPELINE_DATA_DIR%/}/genomic_data/pipeline" PIPELINE_GENOMIC_DIR="${PIPELINE_GENOMIC_DIR%/}" SIF_PATH="${PIPELINE_GENOMIC_DIR}/${SIF_NAME}" @@ -132,4 +132,6 @@ fi echo "Running pipeline with profile: ${PROFILE}" -snakemake --snakefile "${SMK_FILE}" --profile "${PROFILE}" --config "genehackman_input=${PIPELINE_INPUT}" "$@" +# Input YAML via env so Snakemake flags (e.g. --unlock) are never parsed as genehackman_input. +export GENEHACKMAN_INPUT="${PIPELINE_INPUT}" +snakemake --snakefile "${SMK_FILE}" --profile "${PROFILE}" "$@" diff --git a/snakemake/rules/finemap_rule.smk b/snakemake/rules/finemap_rule.smk index 47d3d6c..d2f4ad2 100644 --- a/snakemake/rules/finemap_rule.smk +++ b/snakemake/rules/finemap_rule.smk @@ -1,8 +1,8 @@ rule run_finemapping: - threads: 4 + threads: 8 resources: - mem = "32G", - time = "04:00:00" + mem = "48G", + time = "24:00:00" input: gwas = lambda wildcards: getattr(pipeline, wildcards.prefix).standardised_gwas, clumped_file = lambda wildcards: getattr(pipeline, wildcards.prefix).clumped_file From 62228d08c9fdd44a84fc7fd0e96717307b9e9f71 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 30 Apr 2026 17:10:21 +0100 Subject: [PATCH 32/85] Making clumping more performant --- snakemake/rules/clumping_rule.smk | 4 +++- snakemake/util/common.smk | 1 - snakemake/util/constants.smk | 12 ++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/snakemake/rules/clumping_rule.smk b/snakemake/rules/clumping_rule.smk index ed7e0c4..772c6ec 100644 --- a/snakemake/rules/clumping_rule.smk +++ b/snakemake/rules/clumping_rule.smk @@ -8,8 +8,9 @@ for g in pipeline.gwases: setattr(pipeline, g.prefix, g) rule clump_gwases: + threads: 4 resources: - mem = "4G" + mem = "8G" input: gwases = [g.standardised_gwas for g in pipeline.gwases] output: [g.clumped_file for g in pipeline.gwases] @@ -25,6 +26,7 @@ rule clump_gwases: do ancestry=${{ancestries[$i]}} plink1.9 --bfile {THOUSAND_GENOMES_DIR}/$ancestry \ + --threads {AVAILABLE_CPUS} \ --clump ${{gwases[$i]}} \ --clump-snp-field RSID \ {pipeline.plink_clump_arguments} \ diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index e160467..a790acb 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -262,7 +262,6 @@ def cleanup_old_slurm_logs(): one_month_ago = datetime.now() - relativedelta(months=1) files = [f for f in os.listdir(pipeline_log_directory) if os.path.isfile(os.path.join(pipeline_log_directory, f))] - print("deleting old logs") for filename in files: file = os.path.join(pipeline_log_directory, filename) diff --git a/snakemake/util/constants.smk b/snakemake/util/constants.smk index 36dbcbb..d5f677b 100644 --- a/snakemake/util/constants.smk +++ b/snakemake/util/constants.smk @@ -9,6 +9,16 @@ def format_dir_string(directory): if not directory: return None return directory + "/" if not directory.endswith('/') else directory + +def _available_cpus(): + """CPUs on the allocated Slurm node if Slurm sets them, else logical CPUs on this host.""" + slurm = os.getenv("SLURM_CPUS_ON_NODE") + if slurm is not None and str(slurm).strip() != "": + return max(1, int(slurm)) + n = os.cpu_count() + return max(1, n if n is not None else 1) + + load_dotenv() docker_repo = "docker://mrcieu/genehackman" user = os.getenv('USER') @@ -67,5 +77,7 @@ GENOMIC_DATA_DIR = format_dir_string(PIPELINE_DATA_DIR + "/genomic_data") THOUSAND_GENOMES_DIR = format_dir_string(GENOMIC_DATA_DIR + "1000genomes/b37_dbsnp156") QTL_DIRECTORY = format_dir_string(QTL_DATA_DIR) +AVAILABLE_CPUS = _available_cpus() + if DATA_DIR == RESULTS_DIR: raise ValueError("DATA_DIR and RESULTS_DIR must be different directories") From 059ae1d46ca0ed911777afd26d7cfd68c8b87475 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 30 Apr 2026 17:18:00 +0100 Subject: [PATCH 33/85] fixing stuff --- run_pipeline.sh | 1 - snakemake/util/common.smk | 8 ++++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/run_pipeline.sh b/run_pipeline.sh index 3b664a3..c0fd98f 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -132,6 +132,5 @@ fi echo "Running pipeline with profile: ${PROFILE}" -# Input YAML via env so Snakemake flags (e.g. --unlock) are never parsed as genehackman_input. export GENEHACKMAN_INPUT="${PIPELINE_INPUT}" snakemake --snakefile "${SMK_FILE}" --profile "${PROFILE}" "$@" diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index a790acb..4bf67ea 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -44,10 +44,14 @@ def get_docker_container(): def parse_pipeline_input(pipeline_includes_clumping=False, allow_flip_false=False): global input_file + env_in = os.environ.get("GENEHACKMAN_INPUT") or os.environ.get("GENEHACKMAN_INPUT_FILE") try: - input_file = config.get("genehackman_input") or "input.yaml" + cfg_in = config.get("genehackman_input") except NameError: - input_file = "input.yaml" + cfg_in = None + if cfg_in is not None and str(cfg_in).startswith("-"): + cfg_in = None + input_file = env_in or cfg_in or "input.yaml" if not os.path.isfile(".env"): raise ValueError("Error: .env file doesn't exist") From 45bc4078c5af5d312e31a34fa835dd87df602640 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 1 May 2026 09:36:39 +0100 Subject: [PATCH 34/85] Fixing eaf population --- R/data_conversions.R | 29 +++++++++++++++++++--------- R/gwas_formatting.R | 4 ++-- snakemake/profiles/local/config.yaml | 1 + snakemake/profiles/slurm/config.yaml | 1 + snakemake/util/log_results.smk | 5 ++++- 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/R/data_conversions.R b/R/data_conversions.R index dc62cfe..d82b71e 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -58,11 +58,14 @@ map_ref_to_eaf <- function(ea, oa, ra1, ra2, a1_freq) { #' #' @param gwas Standardised GWAS tibble (CHR, BP, EA, OA; SNP id built after allele ordering). #' @param ancestry One of EUR, EAS, AFR, AMR, SAS matching the reference panel prefix. -#' @param enabled If FALSE, returns \code{gwas} unchanged. #' @export -populate_eaf_from_reference_panel <- function(gwas, ancestry, enabled = FALSE) { - if (!enabled) { - return(gwas) +populate_eaf_from_reference_panel <- function(gwas, ancestry) { + if ("EAF" %in% colnames(gwas) && !all(is.na(gwas$EAF))) { + n_missing <- sum(is.na(gwas$EAF)) + if (n_missing == 0) { + message("EAF column already fully populated; skipping reference panel lookup.") + return(gwas) + } } allowed <- c("EUR", "EAS", "AFR", "AMR", "SAS") if (!ancestry %in% allowed) { @@ -87,28 +90,36 @@ populate_eaf_from_reference_panel <- function(gwas, ancestry, enabled = FALSE) { col_names = c("CHR", "SNP", "CM", "BP", "A1_bim", "A2_bim"), show_col_types = FALSE ) - ref_frq <- vroom::vroom(frq_path, show_col_types = FALSE) + ref_frq <- data.table::fread(frq_path, header = TRUE, data.table = FALSE) names(ref_frq) <- stringr::str_trim(names(ref_frq)) req <- c("CHR", "SNP", "A1", "A2", "MAF") if (!all(req %in% colnames(ref_frq))) { stop(".frq file must contain columns CHR, SNP, A1, A2, MAF (plink 1.9 --freq)") } - ref_bim <- dplyr::mutate(ref_bim, CHR = as.character(CHR)) - ref_frq <- dplyr::mutate(dplyr::select(ref_frq, dplyr::all_of(req)), CHR = as.character(CHR)) + normalise_chr <- function(x) { + x <- as.character(x) + x <- stringr::str_trim(x) + x <- sub("^chr", "", x, ignore.case = TRUE) + x <- sub("^0+", "", x) + x + } + + ref_bim <- dplyr::mutate(ref_bim, CHR = normalise_chr(CHR)) + ref_frq <- dplyr::mutate(dplyr::select(ref_frq, dplyr::all_of(req)), CHR = normalise_chr(CHR)) ref <- dplyr::inner_join(ref_bim, ref_frq, by = c("CHR", "SNP")) ref <- dplyr::distinct(ref, CHR, BP, .keep_all = TRUE) ref <- dplyr::transmute( ref, - CHR = as.character(CHR), + CHR = CHR, BP = as.integer(BP), A1 = toupper(A1), A2 = toupper(A2), MAF = as.numeric(MAF) ) - gwas$CHR <- as.character(gwas$CHR) + gwas$CHR <- normalise_chr(gwas$CHR) gwas$BP <- as.integer(gwas$BP) joined <- dplyr::left_join(gwas, ref, by = c("CHR", "BP")) diff --git a/R/gwas_formatting.R b/R/gwas_formatting.R index b7744c2..16b9f36 100644 --- a/R/gwas_formatting.R +++ b/R/gwas_formatting.R @@ -51,13 +51,13 @@ standardise_gwas <- function(gwas, convert_reference_build_via_liftover(input_reference_build, output_reference_build) if (!flip_alleles && isTRUE(populate_eaf)) { - gwas <- populate_eaf_from_reference_panel(gwas, ancestry, TRUE) + gwas <- populate_eaf_from_reference_panel(gwas, ancestry) } gwas <- standardise_alleles(gwas, flip = flip_alleles) if (flip_alleles && isTRUE(populate_eaf)) { - gwas <- populate_eaf_from_reference_panel(gwas, ancestry, TRUE) + gwas <- populate_eaf_from_reference_panel(gwas, ancestry) } gwas <- gwas |> diff --git a/snakemake/profiles/local/config.yaml b/snakemake/profiles/local/config.yaml index f561b37..2a82f46 100644 --- a/snakemake/profiles/local/config.yaml +++ b/snakemake/profiles/local/config.yaml @@ -6,6 +6,7 @@ singularity-args: >- -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B ${HOME}:${HOME} + ${WORK:+-B ${WORK}:${WORK}} -B ${DATA_DIR}:${DATA_DIR} -B ${RESULTS_DIR}:${RESULTS_DIR} -B ${PIPELINE_DATA_DIR}:${PIPELINE_DATA_DIR} diff --git a/snakemake/profiles/slurm/config.yaml b/snakemake/profiles/slurm/config.yaml index c1eebf7..4afc7b0 100644 --- a/snakemake/profiles/slurm/config.yaml +++ b/snakemake/profiles/slurm/config.yaml @@ -34,6 +34,7 @@ singularity-args: >- -B $(pwd)/scripts:/home/scripts -B $(pwd)/inst:/home/inst -B ${HOME}:${HOME} + ${WORK:+-B ${WORK}:${WORK}} -B ${DATA_DIR}:${DATA_DIR} -B ${RESULTS_DIR}:${RESULTS_DIR} -B ${PIPELINE_DATA_DIR}:${PIPELINE_DATA_DIR} diff --git a/snakemake/util/log_results.smk b/snakemake/util/log_results.smk index d7a2766..8e42d3c 100644 --- a/snakemake/util/log_results.smk +++ b/snakemake/util/log_results.smk @@ -7,8 +7,11 @@ import os def update_google_sheet(pipeline_name, succeeded=True, error_file=None, is_test=False): if is_test: return + creds_file = GENOMIC_DATA_DIR + "/googlesheets/google_sheets_creds.json" try: - gc = pygsheets.authorize(service_file=GENOMIC_DATA_DIR + "/googlesheets/google_sheets_creds.json") + if not os.path.isfile(creds_file): + return + gc = pygsheets.authorize(service_file=creds_file) spreadsheet = gc.open('GeneHackman') worksheet = spreadsheet[0] From 3f728bad2b30f0267e0e0dfb06b7aa7bc11a8ec2 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 1 May 2026 11:25:21 +0100 Subject: [PATCH 35/85] Reworking eaf population entirely --- R/data_conversions.R | 142 +++++++++++--------------- R/gwas_formatting.R | 111 +++++++++++++------- tests/testthat/test_gwas_formatting.R | 42 ++++---- 3 files changed, 153 insertions(+), 142 deletions(-) diff --git a/R/data_conversions.R b/R/data_conversions.R index d82b71e..bfb0b07 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -25,118 +25,90 @@ gene_name_to_ensembl_id <- function(gwas) { return(gwas) } -#' Allele complement for strand alignment (SNPs only). -#' @keywords internal -allele_complement_vec <- function(alleles) { - u <- toupper(alleles) - r <- c(A = "T", T = "A", G = "C", C = "G", I = "I", D = "D") - out <- unname(r[u]) - out[is.na(u) | u == ""] <- NA_character_ - out -} - -#' Map effect allele frequency using reference A1 allele frequency (PLINK --freq). -#' @keywords internal -map_ref_to_eaf <- function(ea, oa, ra1, ra2, a1_freq) { - ea <- toupper(ea) - oa <- toupper(oa) - ra1 <- toupper(ra1) - ra2 <- toupper(ra2) - dplyr::case_when( - ea == ra1 & oa == ra2 ~ a1_freq, - ea == ra2 & oa == ra1 ~ 1 - a1_freq, - ea == allele_complement_vec(ra2) & oa == allele_complement_vec(ra1) ~ 1 - a1_freq, - ea == allele_complement_vec(ra1) & oa == allele_complement_vec(ra2) ~ a1_freq, - TRUE ~ NA_real_ - ) -} - -#' Populate missing EAF from the LD reference panel (1000 Genomes PLINK binary + .frq). +#' Populate missing EAF from the LD reference panel \code{.frq} file via RSID matching. #' -#' Expects \code{plink --bfile --freq --out } to exist beside the -#' \code{.bed/.bim/.fam} files, i.e. \code{/.frq}. +#' Expects the GWAS to have an \code{RSID} column (populated by \code{populate_rsid}) +#' and alleles in canonical (alphabetically sorted) order from \code{standardise_alleles}. +#' Only reads the lightweight \code{.frq} file; the \code{.bim} is not needed. #' -#' @param gwas Standardised GWAS tibble (CHR, BP, EA, OA; SNP id built after allele ordering). +#' @param gwas Standardised GWAS tibble with RSID, EA, OA columns. #' @param ancestry One of EUR, EAS, AFR, AMR, SAS matching the reference panel prefix. #' @export populate_eaf_from_reference_panel <- function(gwas, ancestry) { if ("EAF" %in% colnames(gwas) && !all(is.na(gwas$EAF))) { - n_missing <- sum(is.na(gwas$EAF)) - if (n_missing == 0) { + if (sum(is.na(gwas$EAF)) == 0) { message("EAF column already fully populated; skipping reference panel lookup.") return(gwas) } } + allowed <- c("EUR", "EAS", "AFR", "AMR", "SAS") if (!ancestry %in% allowed) { stop("ancestry must be one of: ", paste(allowed, collapse = ", ")) } - prefix <- file.path(thousand_genomes_dir, ancestry) - bim_path <- paste0(prefix, ".bim") - frq_path <- paste0(prefix, ".frq") - if (!file.exists(bim_path)) { - stop("LD reference .bim not found: ", bim_path) - } + frq_path <- paste0(file.path(thousand_genomes_dir, ancestry), ".frq") if (!file.exists(frq_path)) { - stop( - "LD reference .frq not found: ", frq_path, - "\nGenerate with: plink --bfile ", prefix, " --freq --out ", prefix - ) + stop("LD reference .frq not found: ", frq_path, + "\nGenerate with: plink --bfile ", + file.path(thousand_genomes_dir, ancestry), " --freq --out ", + file.path(thousand_genomes_dir, ancestry)) } - ref_bim <- vroom::vroom( - bim_path, - delim = "\t", - col_names = c("CHR", "SNP", "CM", "BP", "A1_bim", "A2_bim"), - show_col_types = FALSE - ) - ref_frq <- data.table::fread(frq_path, header = TRUE, data.table = FALSE) - names(ref_frq) <- stringr::str_trim(names(ref_frq)) - req <- c("CHR", "SNP", "A1", "A2", "MAF") - if (!all(req %in% colnames(ref_frq))) { - stop(".frq file must contain columns CHR, SNP, A1, A2, MAF (plink 1.9 --freq)") + if (!"RSID" %in% colnames(gwas) || all(is.na(gwas$RSID))) { + warning("No RSIDs available for EAF lookup; skipping EAF population.") + return(gwas) } - normalise_chr <- function(x) { - x <- as.character(x) - x <- stringr::str_trim(x) - x <- sub("^chr", "", x, ignore.case = TRUE) - x <- sub("^0+", "", x) - x + if (!"EAF" %in% names(gwas)) { + gwas$EAF <- NA_real_ + } + need <- which(is.na(gwas$EAF) & !is.na(gwas$RSID)) + if (length(need) == 0L) { + message("EAF population: no rows need filling (all have EAF or lack RSID).") + return(gwas) } - ref_bim <- dplyr::mutate(ref_bim, CHR = normalise_chr(CHR)) - ref_frq <- dplyr::mutate(dplyr::select(ref_frq, dplyr::all_of(req)), CHR = normalise_chr(CHR)) - - ref <- dplyr::inner_join(ref_bim, ref_frq, by = c("CHR", "SNP")) - ref <- dplyr::distinct(ref, CHR, BP, .keep_all = TRUE) - ref <- dplyr::transmute( - ref, - CHR = CHR, - BP = as.integer(BP), - A1 = toupper(A1), - A2 = toupper(A2), - MAF = as.numeric(MAF) - ) - - gwas$CHR <- normalise_chr(gwas$CHR) - gwas$BP <- as.integer(gwas$BP) + rsids_needed <- unique(gwas$RSID[need]) + message("Reading reference .frq for ", length(rsids_needed), " RSIDs...") - joined <- dplyr::left_join(gwas, ref, by = c("CHR", "BP")) - computed_eaf <- map_ref_to_eaf(joined$EA, joined$OA, joined$A1, joined$A2, joined$MAF) + ref <- data.table::fread(frq_path, header = TRUE, showProgress = FALSE, data.table = TRUE) + names(ref) <- stringr::str_trim(names(ref)) + req <- c("SNP", "A1", "A2", "MAF") + if (!all(req %in% names(ref))) { + stop(".frq file must contain columns SNP, A1, A2, MAF (plink 1.9 --freq)") + } + ref <- ref[, .(SNP, A1 = toupper(A1), A2 = toupper(A2), MAF = as.numeric(MAF))] + ref <- ref[SNP %in% rsids_needed] + ref <- unique(ref, by = "SNP") - if (!"EAF" %in% names(gwas)) { - gwas$EAF <- NA_real_ + if (nrow(ref) == 0L) { + message("EAF population (", ancestry, " reference): 0 RSIDs matched in .frq; ", + length(need), " still missing.") + return(gwas) } - need <- is.na(gwas$EAF) - fill <- need & !is.na(computed_eaf) - gwas$EAF[fill] <- computed_eaf[fill] - n_need <- sum(need) - n_fill <- sum(fill) + idx <- match(gwas$RSID[need], ref$SNP) + matched <- !is.na(idx) + + ea <- toupper(gwas$EA[need[matched]]) + oa <- toupper(gwas$OA[need[matched]]) + ra1 <- ref$A1[idx[matched]] + ra2 <- ref$A2[idx[matched]] + maf <- ref$MAF[idx[matched]] + + eaf <- data.table::fcase( + ea == ra1 & oa == ra2, maf, + ea == ra2 & oa == ra1, 1 - maf, + default = NA_real_ + ) + + gwas$EAF[need[matched]] <- eaf + + n_fill <- sum(!is.na(eaf)) + n_total_need <- sum(is.na(gwas$EAF)) + n_fill message( "EAF population (", ancestry, " reference): filled ", n_fill, - " of ", n_need, " missing values; ", n_need - n_fill, " still missing." + " of ", n_total_need, " missing values; ", n_total_need - n_fill, " still missing." ) gwas } diff --git a/R/gwas_formatting.R b/R/gwas_formatting.R index 16b9f36..0286e52 100644 --- a/R/gwas_formatting.R +++ b/R/gwas_formatting.R @@ -10,13 +10,14 @@ #' @param output_columns column header map used for renaming GWAS: #' can be list() of key/value pairs, string of row in predefined_column_maps, or comma separated list of keys=values #' @param remove_extra_columns logical flag on if to remove extra columns -#' @param populate_eaf If TRUE, fill missing \code{EAF} from the 1000 Genomes LD panel (\code{ANCESTRY.bim} + \code{ANCESTRY.frq} under \code{THOUSAND_GENOMES_DIR}). +#' @param populate_eaf If TRUE, fill missing \code{EAF} from the 1000 Genomes \code{.frq} +#' file via RSID matching. Requires \code{ancestry}. A partial RSID population is +#' performed automatically when RSIDs are not already present. #' @param ancestry Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE. -#' @param flip_alleles If TRUE (default), reorder EA/OA alphabetically and flip BETA, EAF, Z accordingly. -#' Set to FALSE to keep alleles as-is (useful when you only need harmonisation without allele reordering). -#' Only supported when running **standardise_gwas.smk**. When \code{populate_eaf} is TRUE and -#' \code{flip_alleles} is FALSE, EAF is merged from the LD panel before rebuilding the SNP id so -#' effect alleles align with reference coding. +#' @param flip_alleles If TRUE (default), keep EA/OA in alphabetical order with flipped +#' BETA/EAF/Z in the output. When FALSE the original allele order and effect direction +#' are restored before saving; all internal steps still operate on the canonical +#' (alphabetically flipped) representation. #' @return modified gwas: saves new gwas in output_file if present @@ -39,10 +40,6 @@ standardise_gwas <- function(gwas, if (populate_eaf && (is.null(ancestry) || length(ancestry) == 0 || !nzchar(as.character(ancestry)[1]))) { stop("populate_eaf is TRUE but ancestry is missing; set ancestry to EUR, EAS, AFR, AMR, or SAS to match your LD reference panel.") } - if (!flip_alleles && identical(populate_rsid_option, populate_rsid_options$partial)) { - stop("Partial RSID population requires alphabetically ordered alleles (the lookup table stores CHR:BP_EA_OA with EA < OA). ", - "Either set flip_alleles=TRUE, or use populate_rsid='full' which matches on CHR+BP+alleles directly.") - } gwas <- get_file_or_dataframe(gwas) |> change_column_names(input_gwas_columns, remove_extra_columns) |> @@ -50,21 +47,29 @@ standardise_gwas <- function(gwas, filter_incomplete_rows() |> convert_reference_build_via_liftover(input_reference_build, output_reference_build) - if (!flip_alleles && isTRUE(populate_eaf)) { - gwas <- populate_eaf_from_reference_panel(gwas, ancestry) + gwas <- standardise_alleles(gwas) + + rsid_option <- populate_rsid_option + if (isTRUE(populate_eaf) && identical(rsid_option, populate_rsid_options$none) && !"RSID" %in% colnames(gwas)) { + rsid_option <- populate_rsid_options$partial } - gwas <- standardise_alleles(gwas, flip = flip_alleles) + gwas <- gwas |> + health_check() |> + populate_rsid(rsid_option) |> + populate_gene_names() - if (flip_alleles && isTRUE(populate_eaf)) { + if (isTRUE(populate_eaf)) { gwas <- populate_eaf_from_reference_panel(gwas, ancestry) } - gwas <- gwas |> - health_check() |> - populate_rsid(populate_rsid_option) |> - populate_gene_names() |> - change_column_names(output_gwas_columns) + if (!flip_alleles) { + gwas <- unflip_alleles(gwas) + } else { + gwas$.ALLELES_FLIPPED <- NULL + } + + gwas <- change_column_names(gwas, output_gwas_columns) if (!missing(output_file) && shiny::isTruthy(output_file)) { vroom::vroom_write(gwas, output_file) @@ -163,6 +168,15 @@ filter_incomplete_rows <- function(gwas) { return(filtered_gwas) } +#' Normalise CHR for GWAS rows (chr-prefix, whitespace, leading zeros) so downstream joins match PLINK panels. +#' @keywords internal +normalise_gwas_chr <- function(x) { + x <- as.character(x) + x <- stringr::str_trim(x) + x <- sub("^chr", "", x, ignore.case = TRUE) + x <- sub("^0+", "", x) + x +} standardise_columns <- function(gwas, N) { gwas_columns <- colnames(gwas) @@ -203,6 +217,10 @@ standardise_columns <- function(gwas, N) { gwas$BETA <- as.numeric(gwas$BETA) } + if ("CHR" %in% colnames(gwas)) { + gwas$CHR <- normalise_gwas_chr(gwas$CHR) + } + return(gwas) } @@ -243,28 +261,25 @@ change_column_names <- function(gwas, columns = list(), remove_extra_columns = F return(gwas) } -#' @param flip If TRUE (default), reorder EA/OA into alphabetical order and flip -#' BETA, EAF, and Z to match. When FALSE, alleles are uppercased and the SNP -#' column is rebuilt, but allele order (and effect direction) is left as-is. - +#' Reorder EA/OA alphabetically and flip BETA, EAF, Z to match. +#' Rows that were flipped are marked in a logical \code{.ALLELES_FLIPPED} column +#' so they can be restored later by \code{unflip_alleles()}. #' @keywords internal -standardise_alleles <- function(gwas, flip = TRUE) { +standardise_alleles <- function(gwas) { gwas$EA <- toupper(gwas$EA) gwas$OA <- toupper(gwas$OA) - if (flip) { - to_flip <- (gwas$EA > gwas$OA) & (!gwas$EA %in% c("D", "I")) - if (any(to_flip)) { - gwas$EAF[to_flip] <- 1 - gwas$EAF[to_flip] - gwas$BETA[to_flip] <- -1 * gwas$BETA[to_flip] - if ('Z' %in% names(gwas)) { - gwas$Z[to_flip] <- -1 * gwas$Z[to_flip] - } - - temp <- gwas$OA[to_flip] - gwas$OA[to_flip] <- gwas$EA[to_flip] - gwas$EA[to_flip] <- temp - } + to_flip <- (gwas$EA > gwas$OA) & (!gwas$EA %in% c("D", "I")) + gwas$.ALLELES_FLIPPED <- to_flip + + if (any(to_flip)) { + if ("EAF" %in% names(gwas)) gwas$EAF[to_flip] <- 1 - gwas$EAF[to_flip] + gwas$BETA[to_flip] <- -1 * gwas$BETA[to_flip] + if ("Z" %in% names(gwas)) gwas$Z[to_flip] <- -1 * gwas$Z[to_flip] + + temp <- gwas$OA[to_flip] + gwas$OA[to_flip] <- gwas$EA[to_flip] + gwas$EA[to_flip] <- temp } gwas$SNP <- toupper(paste0(gwas$CHR, ":", format(gwas$BP, scientific = F, trim = T), "_", gwas$EA, "_", gwas$OA)) @@ -273,6 +288,28 @@ standardise_alleles <- function(gwas, flip = TRUE) { return(gwas) } +#' Restore original allele order for rows that were flipped by \code{standardise_alleles()}. +#' Reverses BETA, EAF, Z and swaps EA/OA back, then rebuilds the SNP column. +#' @keywords internal +unflip_alleles <- function(gwas) { + if (!".ALLELES_FLIPPED" %in% names(gwas)) return(gwas) + + to_unflip <- gwas$.ALLELES_FLIPPED + if (any(to_unflip)) { + if ("EAF" %in% names(gwas)) gwas$EAF[to_unflip] <- 1 - gwas$EAF[to_unflip] + gwas$BETA[to_unflip] <- -1 * gwas$BETA[to_unflip] + if ("Z" %in% names(gwas)) gwas$Z[to_unflip] <- -1 * gwas$Z[to_unflip] + + temp <- gwas$OA[to_unflip] + gwas$OA[to_unflip] <- gwas$EA[to_unflip] + gwas$EA[to_unflip] <- temp + } + + gwas$.ALLELES_FLIPPED <- NULL + gwas$SNP <- toupper(paste0(gwas$CHR, ":", format(gwas$BP, scientific = F, trim = T), "_", gwas$EA, "_", gwas$OA)) + return(gwas) +} + #' convert_or_to_beta: Given an OR and lower and upper bounds, #' calculates the BETA, and SE. #' based on this answer: https://stats.stackexchange.com/a/327684 diff --git a/tests/testthat/test_gwas_formatting.R b/tests/testthat/test_gwas_formatting.R index 26fb217..481be1b 100644 --- a/tests/testthat/test_gwas_formatting.R +++ b/tests/testthat/test_gwas_formatting.R @@ -178,16 +178,15 @@ test_that("standardise_gwas errors when populate_eaf is TRUE and ancestry is mis ) }) -test_that("standardise_gwas errors when flip_alleles is FALSE with partial RSID population", { - expect_error( - standardise_gwas( - "data/test_data_tiny.tsv.gz", - tempfile(fileext = ".tsv.gz"), - flip_alleles = FALSE, - populate_rsid_option = populate_rsid_options$partial - ), - "Partial RSID population requires alphabetically ordered alleles" +test_that("standardise_gwas flip_alleles=FALSE with partial RSID succeeds (internal flip handles it)", { + out <- standardise_gwas( + "data/test_data_tiny.tsv.gz", + tempfile(fileext = ".tsv.gz"), + input_columns = "SNP=MARKER,CHR=CHR,BP=BP,EA=A0,OA=A1,EAF=A0FREQ,P=P,BETA=BETA,SE=SE,OR=OR,OR_LB=OR_LB,OR_UB=OR_UB,RSID=RSID", + flip_alleles = FALSE, + populate_rsid_option = populate_rsid_options$partial ) + expect_equal(nrow(out), 12L) }) test_that("standardise_gwas allows flip_alleles FALSE with populate_rsid none", { @@ -201,7 +200,7 @@ test_that("standardise_gwas allows flip_alleles FALSE with populate_rsid none", expect_equal(nrow(out_none), 12L) }) -test_that("standardise_alleles flip argument matches documented behaviour", { +test_that("standardise_alleles always flips and unflip_alleles restores original", { g <- tibble::tibble( CHR = 1L, BP = 100L, @@ -212,16 +211,19 @@ test_that("standardise_alleles flip argument matches documented behaviour", { P = 0.5, SE = 0.1 ) - no_flip <- GeneHackman:::standardise_alleles(g, flip = FALSE) - expect_equal(no_flip$BETA, 0.2) - expect_equal(no_flip$EA, "T") - expect_equal(no_flip$OA, "A") - - yes_flip <- GeneHackman:::standardise_alleles(g, flip = TRUE) - expect_equal(yes_flip$BETA, -0.2) - expect_equal(yes_flip$EA, "A") - expect_equal(yes_flip$OA, "T") - expect_equal(yes_flip$EAF, 1 - 0.1) + flipped <- GeneHackman:::standardise_alleles(g) + expect_equal(flipped$BETA, -0.2) + expect_equal(flipped$EA, "A") + expect_equal(flipped$OA, "T") + expect_equal(flipped$EAF, 1 - 0.1) + expect_true(flipped$.ALLELES_FLIPPED[1]) + + restored <- GeneHackman:::unflip_alleles(flipped) + expect_equal(restored$BETA, 0.2) + expect_equal(restored$EA, "T") + expect_equal(restored$OA, "A") + expect_equal(restored$EAF, 0.1) + expect_false(".ALLELES_FLIPPED" %in% names(restored)) }) test_that("filter_incomplete_rows stops when all rows are incomplete", { From 8e3e6aabcdc3c58b7dd77dba3f1c6ab0d9f09f9a Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 1 May 2026 14:17:56 +0100 Subject: [PATCH 36/85] small updates --- R/chrpos_to_rsid.R | 8 ++++++++ R/constants.R | 1 + R/data_conversions.R | 5 ++++- snakemake/profiles/local/config.yaml | 6 +++--- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/R/chrpos_to_rsid.R b/R/chrpos_to_rsid.R index a43f834..8839eb2 100644 --- a/R/chrpos_to_rsid.R +++ b/R/chrpos_to_rsid.R @@ -103,6 +103,10 @@ chrpos_to_rsid <- function(dt, }) + future::plan(future::sequential) + rm(dts) + gc(verbose = FALSE) + # deal with alternative RSIDs if requested if(alt_rsids) { @@ -112,6 +116,8 @@ chrpos_to_rsid <- function(dt, } else { out_data <- data.table::rbindlist(out) } + rm(out) + gc(verbose = FALSE) # put back the original chromosome column and remove the temporary one out_data[, (chr_col) := chr_col_orig] @@ -148,6 +154,7 @@ chrpos_to_rsid <- function(dt, # the gwas data.table being captured in each futures environment. See this discussion # for the details: https://furrr.futureverse.org/articles/gotchas.html#function-environments-and-large-objects process_chromosome <- function(chrom_dt, chr_col, pos_col, build, dbsnp_dir, flip, alt_rsids, p, nea_col=NULL, ea_col=NULL) { + message(paste0("Processing chromosome ", chrom_dt[[1, chr_col]])) # silence RMDcheck warning RSID = i.RSID = baseRSID = rsid_flip_match = REF = ALT = NULL @@ -202,6 +209,7 @@ process_chromosome <- function(chrom_dt, chr_col, pos_col, build, dbsnp_dir, fli # read the needed rows dbSNP_data <- dbSNP_fst[row_idxs, c("RSID", dbSNP_key)] |> data.table::as.data.table() + rm(dbSNP_fst) # increment progress bar #4 p() diff --git a/R/constants.R b/R/constants.R index 4b26ef4..e45de98 100644 --- a/R/constants.R +++ b/R/constants.R @@ -28,6 +28,7 @@ user_results_dir <- get_env_var("RESULTS_DIR", "") pipeline_data_dir <- sub("/+$", "", get_env_var("PIPELINE_DATA_DIR", "")) qtl_directory <- sub("/+$", "", get_env_var("QTL_DATA_DIR", "")) number_of_cpus_available <- available_cpus() +locally_running <- !nzchar(Sys.getenv("SLURM_JOB_ID", "")) || !nzchar(Sys.getenv("PBS_JOBID", "")) genomic_data_dir <- file.path(pipeline_data_dir, "genomic_data") # Must match snakemake/util/constants.smk THOUSAND_GENOMES_DIR (used by clumping + LD). diff --git a/R/data_conversions.R b/R/data_conversions.R index bfb0b07..abc37b8 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -156,6 +156,9 @@ populate_full_rsids <- function(gwas) { dbsnp_dir <- file.path(genomic_data_dir, "dbsnp") if (!build %in% rsid_builds) stop(paste("Error: invalid rsid build option:", build)) + parallel_cores <- ifelse (locally_running, 1, number_of_cpus_available) + message(paste0("Using ", parallel_cores, " cores for full RSID population")) + gwas <- data.table::as.data.table(gwas) gwas <- chrpos_to_rsid( gwas, @@ -167,7 +170,7 @@ populate_full_rsids <- function(gwas) { dbsnp_dir = dbsnp_dir, build = build, alt_rsids = FALSE, - parallel_cores=number_of_cpus_available + parallel_cores=parallel_cores ) print('finished chrpos_to_rsid') gwas <- tibble::as_tibble(gwas) diff --git a/snakemake/profiles/local/config.yaml b/snakemake/profiles/local/config.yaml index 2a82f46..5844098 100644 --- a/snakemake/profiles/local/config.yaml +++ b/snakemake/profiles/local/config.yaml @@ -15,10 +15,10 @@ singularity-args: >- --env-file .env --pwd /home/scripts/ -jobs: 4 +jobs: 1 default-resources: - - mem_mb=4000 - - threads=1 + - mem_mb=16000 + - threads=8 local-cores: 1 latency-wait: 10 keep-going: True From 4cf4216736dda406f07004509d684b3a8023fef9 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 1 May 2026 14:36:02 +0100 Subject: [PATCH 37/85] fixing core detection --- R/constants.R | 2 +- R/data_conversions.R | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/constants.R b/R/constants.R index e45de98..b8daf94 100644 --- a/R/constants.R +++ b/R/constants.R @@ -28,7 +28,7 @@ user_results_dir <- get_env_var("RESULTS_DIR", "") pipeline_data_dir <- sub("/+$", "", get_env_var("PIPELINE_DATA_DIR", "")) qtl_directory <- sub("/+$", "", get_env_var("QTL_DATA_DIR", "")) number_of_cpus_available <- available_cpus() -locally_running <- !nzchar(Sys.getenv("SLURM_JOB_ID", "")) || !nzchar(Sys.getenv("PBS_JOBID", "")) +is_on_cluster <- nzchar(Sys.getenv("SLURM_JOB_ID")) || nzchar(Sys.getenv("PBS_JOBID")) genomic_data_dir <- file.path(pipeline_data_dir, "genomic_data") # Must match snakemake/util/constants.smk THOUSAND_GENOMES_DIR (used by clumping + LD). diff --git a/R/data_conversions.R b/R/data_conversions.R index abc37b8..a3033db 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -156,7 +156,7 @@ populate_full_rsids <- function(gwas) { dbsnp_dir <- file.path(genomic_data_dir, "dbsnp") if (!build %in% rsid_builds) stop(paste("Error: invalid rsid build option:", build)) - parallel_cores <- ifelse (locally_running, 1, number_of_cpus_available) + parallel_cores <- ifelse (is_on_cluster, number_of_cpus_available, 1) message(paste0("Using ", parallel_cores, " cores for full RSID population")) gwas <- data.table::as.data.table(gwas) From f3822ca9f3a2aaf605e8b6f2218bd9a7e5f3d6db Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 1 May 2026 17:19:32 +0100 Subject: [PATCH 38/85] Updating standardise gwas tests --- R/data_conversions.R | 3 +-- .../snakemake_inputs/standardise_gwas.yaml | 7 ++++++- .../data/test_data_small_hg38_no_eaf.tsv.gz | Bin 0 -> 1323318 bytes 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 tests/testthat/data/test_data_small_hg38_no_eaf.tsv.gz diff --git a/R/data_conversions.R b/R/data_conversions.R index a3033db..e98ff59 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -156,7 +156,7 @@ populate_full_rsids <- function(gwas) { dbsnp_dir <- file.path(genomic_data_dir, "dbsnp") if (!build %in% rsid_builds) stop(paste("Error: invalid rsid build option:", build)) - parallel_cores <- ifelse (is_on_cluster, number_of_cpus_available, 1) + parallel_cores <- if(is_on_cluster) number_of_cpus_available else 1 message(paste0("Using ", parallel_cores, " cores for full RSID population")) gwas <- data.table::as.data.table(gwas) @@ -172,7 +172,6 @@ populate_full_rsids <- function(gwas) { alt_rsids = FALSE, parallel_cores=parallel_cores ) - print('finished chrpos_to_rsid') gwas <- tibble::as_tibble(gwas) return(gwas) } diff --git a/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml b/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml index afd9cda..ce302fa 100644 --- a/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml +++ b/tests/testthat/data/snakemake_inputs/standardise_gwas.yaml @@ -5,9 +5,14 @@ gwases: columns: opengwas - file: tests/testthat/data/metal_output.txt columns: metal - populate_rsid: true - file: tests/testthat/data/test_data_small_hg38.tsv.gz columns: {} build: GRCh38 + - file: tests/testthat/data/test_data_small_hg38_no_eaf.tsv.gz + ancestry: EUR + populate_eaf: true + columns: {} + build: GRCh38 + populate_rsid: false is_test: true diff --git a/tests/testthat/data/test_data_small_hg38_no_eaf.tsv.gz b/tests/testthat/data/test_data_small_hg38_no_eaf.tsv.gz new file mode 100644 index 0000000000000000000000000000000000000000..cb753668fd8671cdc087bb8445930b080b83fc5f GIT binary patch literal 1323318 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

-ma{*N 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'vE3?r+K_s+1c}1{%2nD-SE}8OdZ}#s@Ctq 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�nXP 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�fGC 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

I~3@>HDIEuf;hDC03<@rddOn5XL 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

`KE0qp#pEF9n9R7S!gsPRfsJb&tw*Ckv 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

q7o+Qp;oRiX*RZ%{;T<|M!wrk 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 z

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 z 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�{Hu#FsOdU_~3tVka* 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�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 J8HFP_a%4*&*_YMANOKw<^7AG>$ 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

mF!dbn7I~ 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

T=-a9UM^@H6o1hdn53pJVPl6dJEFE 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%0AohXezX+bU3o=^kgc|92C7u+0%aG7`YB`OJHVY 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

r2@Ebbw{R}mbS3mz1=Dp|XPMN@H=?NFRlfN0u(R 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 literal 0 HcmV?d00001 From 3ba0b946881c9f9cfbb370dde7f37e52af298376 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 6 May 2026 12:19:24 +0100 Subject: [PATCH 39/85] Fixing ggplot error in heritability graph --- R/finemap.R | 128 ++++++++++++++++----------- R/graphs.R | 33 +++++-- run_pipeline.sh | 10 ++- snakemake/profiles/slurm/config.yaml | 5 +- 4 files changed, 111 insertions(+), 65 deletions(-) diff --git a/R/finemap.R b/R/finemap.R index d1636e8..0d6a8da 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -16,13 +16,7 @@ #' @param max_causal maximum number of causal signals per locus (SuSiE L, default 10) #' @param coverage credible set coverage (default 0.95) #' @param min_abs_corr minimum absolute correlation for credible sets (default 0.5) -#' @details Loci are fine-mapped in parallel with [parallel::mclapply()] (`mc.cores = 2`). -#' On Windows this runs sequentially. Each job writes its own output file. -#' @return invisibly, the combined per-SNP finemap tibble (LD-matched SNPs only) - - - - +#' @return invisibly, the combined per-SNP finemap data.table (LD-matched SNPs only) #' @export finemap_gwas <- function(gwas, clumped_file, @@ -35,11 +29,15 @@ finemap_gwas <- function(gwas, min_abs_corr = 0.5) { gwas <- get_file_or_dataframe(gwas) + data.table::setDT(gwas) + numeric_cols <- c("CHR", "BP", "BETA", "SE", "P", "EAF", "N", "N_CASE", "N_CONTROL") for (col in intersect(numeric_cols, colnames(gwas))) { - gwas[[col]] <- as.numeric(gwas[[col]]) + data.table::set(gwas, j = col, value = as.numeric(gwas[[col]])) } + data.table::setkey(gwas, CHR, BP) + if (!dir.exists(output_finemap_dir)) { dir.create(output_finemap_dir, recursive = TRUE) } @@ -47,7 +45,7 @@ finemap_gwas <- function(gwas, lead_snps <- data.table::fread(clumped_file, select = c("SNP", "CHR", "BP")) if (nrow(lead_snps) == 0) { message("No clumped SNPs found; no per-locus finemap files written.") - empty <- tibble::tibble( + empty <- data.table::data.table( SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), Z = numeric(), CS = integer() ) @@ -55,29 +53,44 @@ finemap_gwas <- function(gwas, } window_bp <- window_kb * 1000 + has_rsid <- "RSID" %in% colnames(gwas) + has_n <- "N" %in% colnames(gwas) + + n_loci <- nrow(lead_snps) + + # Pre-extract per-locus subsets so workers don't need the full GWAS + locus_subsets <- vector("list", n_loci) + window_subsets <- vector("list", n_loci) + for (i in seq_len(n_loci)) { + lead_chr <- as.numeric(lead_snps$CHR[i]) + lead_bp <- as.numeric(lead_snps$BP[i]) + bp_lo <- lead_bp - window_bp + bp_hi <- lead_bp + window_bp + + chr_rows <- gwas[.(lead_chr), nomatch = NULL] + window_dt <- chr_rows[BP >= bp_lo & BP <= bp_hi] + window_subsets[[i]] <- window_dt + locus_subsets[[i]] <- window_dt[!is.na(BETA) & !is.na(SE) & SE > 0] + } + rm(gwas); gc(verbose = FALSE) process_one_locus <- function(i) { lead_rsid <- lead_snps$SNP[i] lead_chr <- as.numeric(lead_snps$CHR[i]) lead_bp <- as.numeric(lead_snps$BP[i]) + locus_gwas <- locus_subsets[[i]] + window_gwas <- window_subsets[[i]] - locus_gwas <- dplyr::filter(gwas, - CHR == lead_chr & - BP >= (lead_bp - window_bp) & - BP <= (lead_bp + window_bp) & - !is.na(BETA) & !is.na(SE) & SE > 0 - ) - - if (nrow(locus_gwas) < 2) { + if (nrow(locus_gwas) < 2L) { message(paste("Skipping locus", lead_rsid, "- fewer than 2 SNPs in window")) return(NULL) } - if (!"RSID" %in% colnames(locus_gwas) || all(is.na(locus_gwas$RSID))) { + if (!has_rsid || all(is.na(locus_gwas$RSID))) { message(paste("Skipping locus", lead_rsid, "- no RSIDs available for LD computation")) return(NULL) } - locus_gwas <- dplyr::filter(locus_gwas, !is.na(RSID) & nchar(RSID) > 0) + locus_gwas <- locus_gwas[!is.na(RSID) & nchar(RSID) > 0L] ld_result <- compute_ld_matrix(locus_gwas$RSID, lead_chr, ancestry) if (is.null(ld_result)) { @@ -86,18 +99,19 @@ finemap_gwas <- function(gwas, } shared_rsids <- intersect(locus_gwas$RSID, ld_result$snps) - if (length(shared_rsids) < 2) { + if (length(shared_rsids) < 2L) { + rm(ld_result); gc(verbose = FALSE) message(paste("Skipping locus", lead_rsid, "- too few shared SNPs between GWAS and LD panel")) return(NULL) } - locus_gwas <- dplyr::filter(locus_gwas, RSID %in% shared_rsids) - locus_gwas <- locus_gwas[match(shared_rsids, locus_gwas$RSID), ] + locus_gwas <- locus_gwas[match(shared_rsids, RSID)] ld_idx <- match(shared_rsids, ld_result$snps) R <- ld_result$matrix[ld_idx, ld_idx] + rm(ld_result); gc(verbose = FALSE) z_scores <- locus_gwas$BETA / locus_gwas$SE - n <- `if`("N" %in% colnames(locus_gwas) && !is.na(as.numeric(locus_gwas$N[1])), as.numeric(locus_gwas$N[1]), default_n) + n <- if (has_n && !is.na(as.numeric(locus_gwas$N[1L]))) as.numeric(locus_gwas$N[1L]) else default_n if (is.na(n)) { stop("Fine-mapping requires GWAS sample size") } @@ -112,22 +126,16 @@ finemap_gwas <- function(gwas, coverage = coverage, min_abs_corr = min_abs_corr ) + rm(R, locus_gwas); gc(verbose = FALSE) - if (nrow(locus_lbf) == 0) { - return(NULL) - } + if (nrow(locus_lbf) == 0L) return(NULL) lbf_nm <- grep("^LBF_[0-9]+$", names(locus_lbf), value = TRUE) - finemap_join <- dplyr::select(locus_lbf, dplyr::any_of(c( - "RSID", "Z", "CS", lbf_nm - ))) - - out_gwas <- dplyr::filter(gwas, - CHR == lead_chr, - BP >= (lead_bp - window_bp), - BP <= (lead_bp + window_bp) - ) - out_gwas <- dplyr::left_join(out_gwas, finemap_join, by = "RSID") + finemap_cols <- intersect(c("RSID", "Z", "CS", lbf_nm), names(locus_lbf)) + finemap_join <- locus_lbf[, ..finemap_cols] + + out_gwas <- merge(window_gwas, finemap_join, by = "RSID", all.x = TRUE, sort = FALSE) + rm(window_gwas, finemap_join) lead_chr_bp <- paste0( lead_chr, "_", @@ -135,21 +143,25 @@ finemap_gwas <- function(gwas, ) safe_locus <- gsub("[^A-Za-z0-9._-]+", "_", lead_chr_bp) out_file <- file.path(output_finemap_dir, paste0(safe_locus, "_finemap.tsv.gz")) - vroom::vroom_write(out_gwas, out_file) + data.table::fwrite(out_gwas, out_file, sep = "\t", compress = "gzip") + rm(out_gwas) locus_lbf } - n_loci <- nrow(lead_snps) locus_results <- parallel::mclapply( seq_len(n_loci), process_one_locus, mc.cores = 3L ) + rm(locus_subsets, window_subsets); gc(verbose = FALSE) + all_lbf <- locus_results[!vapply(locus_results, is.null, FUN.VALUE = logical(1))] - combined_lbf <- dplyr::bind_rows(all_lbf) + rm(locus_results) + combined_lbf <- data.table::rbindlist(all_lbf, fill = TRUE) + rm(all_lbf); gc(verbose = FALSE) - if (nrow(combined_lbf) == 0) { + if (nrow(combined_lbf) == 0L) { message("No loci produced SuSiE results.") } @@ -191,6 +203,8 @@ compute_ld_matrix <- function(rsids, chr, ancestry) { snp_order_file <- paste0(out_prefix, ".nosex") if (exit_code != 0 || !file.exists(ld_file)) { + unlink(c(snp_file, paste0(out_prefix, c(".ld", ".nosex", ".log", ".bim", ".bed", ".fam"))), + force = TRUE) return(NULL) } @@ -201,15 +215,20 @@ compute_ld_matrix <- function(rsids, chr, ancestry) { bim_ref <- paste0(bfile, ".bim") all_bim <- data.table::fread(bim_ref, header = FALSE, select = c(1, 2, 4)) colnames(all_bim) <- c("CHR", "SNP", "BP") - all_bim <- dplyr::filter(all_bim, CHR == chr & SNP %in% rsids) - all_bim <- dplyr::arrange(all_bim, BP) + all_bim <- all_bim[CHR == chr & SNP %chin% rsids] + data.table::setorder(all_bim, BP) snp_order <- all_bim$SNP + rm(all_bim) } ld_raw <- data.table::fread(ld_file, header = FALSE) R <- as.matrix(ld_raw) + rm(ld_raw) if (nrow(R) != length(snp_order) || ncol(R) != length(snp_order)) { + rm(R) + unlink(c(snp_file, paste0(out_prefix, c(".ld", ".nosex", ".log", ".bim", ".bed", ".fam"))), + force = TRUE) return(NULL) } @@ -237,13 +256,13 @@ run_susie_rss_impl <- function(z, R, n, L, coverage, min_abs_corr, verbose = FAL susie_lbf_columns <- function(fitted, p) { lv <- fitted$lbf_variable if (is.null(lv) || !is.matrix(lv) || nrow(lv) < 1L || ncol(lv) != p) { - return(tibble::tibble()) + return(data.table::data.table()) } n_row <- nrow(lv) cs_list <- fitted$sets$cs cs_idx <- fitted$sets$cs_index - col_vecs <- list() + col_vecs <- vector("list", 0L) if (!is.null(cs_list) && length(cs_list) > 0L) { n_cs <- length(cs_list) @@ -262,7 +281,7 @@ susie_lbf_columns <- function(fitted, p) { } } - tibble::as_tibble(col_vecs) + data.table::as.data.table(col_vecs) } @@ -275,7 +294,7 @@ susie_lbf_columns <- function(fitted, p) { #' @param max_causal max causal signals (L) #' @param coverage credible set coverage #' @param min_abs_corr minimum absolute correlation for CS purity -#' @return tibble with SNP, CHR, BP, RSID, Z, CS, and \code{LBF_1}, \code{LBF_2}, ... per signal +#' @return data.table with SNP, CHR, BP, RSID, Z, CS, and \code{LBF_1}, \code{LBF_2}, ... per signal run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, max_causal = 10, coverage = 0.95, min_abs_corr = 0.5) { @@ -298,7 +317,7 @@ run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, ) if (is.null(fitted)) { - return(tibble::tibble( + return(data.table::data.table( SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), Z = numeric(), CS = integer() )) @@ -308,13 +327,14 @@ run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, cs_membership <- rep(NA_integer_, p) if (!is.null(fitted$sets) && !is.null(fitted$sets$cs)) { - for (cs_idx in seq_along(fitted$sets$cs)) { - snp_indices <- fitted$sets$cs[[cs_idx]] - cs_membership[snp_indices] <- cs_idx + for (cs_i in seq_along(fitted$sets$cs)) { + snp_indices <- fitted$sets$cs[[cs_i]] + cs_membership[snp_indices] <- cs_i } } + rm(fitted); gc(verbose = FALSE) - result <- tibble::tibble( + result <- data.table::data.table( SNP = snp_info$SNP, CHR = snp_info$CHR, BP = snp_info$BP, @@ -322,5 +342,9 @@ run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, Z = z_scores, CS = cs_membership ) - dplyr::bind_cols(result, lbf_wide) + + if (ncol(lbf_wide) > 0L) { + result <- cbind(result, lbf_wide) + } + result } diff --git a/R/graphs.R b/R/graphs.R index 8a6b977..ce49ff2 100644 --- a/R/graphs.R +++ b/R/graphs.R @@ -245,15 +245,32 @@ volcano_plot <- function(results_file, title="Volcano Plot of Results", label="E plot_heritability_contribution_per_ancestry <- function(heterogeneity_results_qj, output_file) { - graph_width <- max(1000, nrow(heterogeneity_results_qj) * 100) - plot <- tidyr::gather(as.data.frame(heterogeneity_results_qj), "key", "value", -SNP) - - ggplot2::ggplot(plot, ggplot2::aes(x=SNP, y=-log10(value))) + - ggplot2::geom_point(ggplot2::aes(colour=key)) + - ggplot2::scale_colour_brewer(type="qual") + - ggplot2::theme(axis.text.x = ggplot2::element_text(angle = 90, vjust = 0.5, hjust=1)) + + # ggplot2 caps raster sizes at 50 in; convert px via dpi (default 300) → keep under limit + dpi <- 300 + max_width_in <- 49 + max_width_px <- floor(max_width_in * dpi) + n_snps <- nrow(heterogeneity_results_qj) + # ~20 px per SNP keeps labels readable; cap width so ggsave stays under limits / avoids huge files + graph_width <- min(max(1000L, n_snps * 20L), max_width_px) + graph_height <- min(2100L, max_width_px) + + qj_df <- as.data.frame(heterogeneity_results_qj, check.names = TRUE) + plot_data <- tidyr::pivot_longer(qj_df, cols = -SNP, names_to = "key", values_to = "value") + + p <- ggplot2::ggplot(plot_data, ggplot2::aes(x = SNP, y = -log10(value))) + + ggplot2::geom_point(ggplot2::aes(colour = key), size = 0.35) + + ggplot2::scale_colour_brewer(type = "qual") + + ggplot2::theme(axis.text.x = ggplot2::element_text(angle = 90, vjust = 0.5, hjust = 1)) + ggplot2::ggtitle("Contribution to heterogeneity score broken down by population") + ggplot2::theme(plot.title = ggplot2::element_text(hjust = 0.5)) - ggplot2::ggsave(output_file, width = graph_width, units = "px") + ggplot2::ggsave( + output_file, + plot = p, + width = graph_width, + height = graph_height, + units = "px", + dpi = dpi, + limitsize = FALSE + ) } diff --git a/run_pipeline.sh b/run_pipeline.sh index c0fd98f..cb710d5 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -4,7 +4,7 @@ set -e export GRPC_VERBOSITY=NONE export GRPC_TRACE= -if [[ $# -lt 1 ]] ; then +if [[ $# -lt 1 || "$1" =~ "help" ]] ; then echo """ Error: You have to provide at least 1 argument: PIPELINE_FILE (ex. snakemake/standardise_gwas.smk) @@ -35,6 +35,7 @@ if [[ -z "${DATA_DIR:-}" || -z "${RESULTS_DIR:-}" || -z "${PIPELINE_DATA_DIR:-}" exit 1 fi export PIPELINE_LOG_DIR="${DATA_DIR%/}/snakemake_logs" +mkdir -p $PIPELINE_LOG_DIR if [[ -z "${SLURM_PARTITION:-}" ]]; then if command -v sinfo >/dev/null 2>&1; then @@ -44,6 +45,13 @@ if [[ -z "${SLURM_PARTITION:-}" ]]; then fi export SLURM_PARTITION +if [[ -z "${SLURM_ACCOUNT:-}" ]]; then + export USER=$(whoami) + export ACCOUNT_ID=$(sacctmgr show user withassoc format=account where user=$USER | grep '[0-9]' | head -n1) + if [ -n "$SLURM_ACCOUNT" ]; then export ACCOUNT_ID="$SLURM_ACCOUNT"; fi +fi +export SLURM_ACCOUNT + export GENEHACKMAN_EXTRA_SINGULARITY_BINDS="" _trim_qtl="$(echo "${QTL_DATA_DIR:-}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')" if [[ -n "${_trim_qtl}" ]]; then diff --git a/snakemake/profiles/slurm/config.yaml b/snakemake/profiles/slurm/config.yaml index 4afc7b0..41439c5 100644 --- a/snakemake/profiles/slurm/config.yaml +++ b/snakemake/profiles/slurm/config.yaml @@ -1,9 +1,6 @@ cluster: - export USER=$(whoami) && - export ACCOUNT_ID=$(sacctmgr show user withassoc format=account where user=$USER | grep '[0-9]' | head -n1) && export PARTITION="$SLURM_PARTITION" && - if [ -n "$SLURM_ACCOUNT" ]; then export ACCOUNT_ID="$SLURM_ACCOUNT"; fi && - mkdir -p "$PIPELINE_LOG_DIR" && + export ACCOUNT_ID="$SLURM_ACCOUNT" && sbatch --partition=$PARTITION --account=$ACCOUNT_ID From b9cd4984a90b47054384194f8f1abddcbf915477 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 8 May 2026 15:28:16 +0100 Subject: [PATCH 40/85] fixing slurm env vars --- run_pipeline.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/run_pipeline.sh b/run_pipeline.sh index cb710d5..1175c3c 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -48,9 +48,11 @@ export SLURM_PARTITION if [[ -z "${SLURM_ACCOUNT:-}" ]]; then export USER=$(whoami) export ACCOUNT_ID=$(sacctmgr show user withassoc format=account where user=$USER | grep '[0-9]' | head -n1) - if [ -n "$SLURM_ACCOUNT" ]; then export ACCOUNT_ID="$SLURM_ACCOUNT"; fi + export SLURM_ACCOUNT="$ACCOUNT_ID" fi -export SLURM_ACCOUNT + +echo "$SLURM_ACCOUNT" +echo "$SLURM_PARTITION" export GENEHACKMAN_EXTRA_SINGULARITY_BINDS="" _trim_qtl="$(echo "${QTL_DATA_DIR:-}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')" From 8813b1957bfab986ad3c4b9301e7313b5ebab37b Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 8 May 2026 15:44:45 +0100 Subject: [PATCH 41/85] Capping size of plot so it works --- R/graphs.R | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/R/graphs.R b/R/graphs.R index ce49ff2..3f56061 100644 --- a/R/graphs.R +++ b/R/graphs.R @@ -70,14 +70,29 @@ grouped_forest_plot <- function(table, title, group_column, output_file, p_value ggplot2::ggtitle(title) + ggplot2::theme(plot.title = ggplot2::element_text(hjust = 0.5)) - if (!is.na(p_value_column)) { + p <- if (!is.na(p_value_column)) { plot_thing + ggplot2::geom_text(ggplot2::aes(label = paste("P=", signif(.data[[p_value_column]]), digits=3), group = .data[[group_column]]), position = ggplot2::position_dodge(width = 0.5)) } else if (!is.na(q_stat_column)) { plot_thing + ggplot2::geom_text(ggplot2::aes(x = 1.5, label = .data[[q_stat_column]])) + } else { + plot_thing } - forest_plot_height <- max(nrow(table)*50, 2000) - ggplot2::ggsave(output_file, width = 2000, units = "px", height = forest_plot_height) + dpi <- 300 + max_dim_px <- floor(49 * dpi) + n_rows <- nrow(table) + forest_plot_height <- min(max(2000L, n_rows * 30L), max_dim_px) + plot_width <- min(2000L, max_dim_px) + + ggplot2::ggsave( + output_file, + plot = p, + width = plot_width, + height = forest_plot_height, + units = "px", + dpi = dpi, + limitsize = FALSE + ) } From ece1366e89cbe1b6857c77428e66d1c9cd7cb7fd Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 8 May 2026 16:30:50 +0100 Subject: [PATCH 42/85] Updating differences with compare gwas output --- R/graphs.R | 29 +++++++++++++++++++---------- R/gwas_comparisons.R | 38 ++++++++++++++++++++++++-------------- run_pipeline.sh | 3 --- 3 files changed, 43 insertions(+), 27 deletions(-) diff --git a/R/graphs.R b/R/graphs.R index 3f56061..f5951b0 100644 --- a/R/graphs.R +++ b/R/graphs.R @@ -262,22 +262,31 @@ volcano_plot <- function(results_file, title="Volcano Plot of Results", label="E plot_heritability_contribution_per_ancestry <- function(heterogeneity_results_qj, output_file) { # ggplot2 caps raster sizes at 50 in; convert px via dpi (default 300) → keep under limit dpi <- 300 - max_width_in <- 49 - max_width_px <- floor(max_width_in * dpi) + max_dim_in <- 49 + max_dim_px <- floor(max_dim_in * dpi) n_snps <- nrow(heterogeneity_results_qj) - # ~20 px per SNP keeps labels readable; cap width so ggsave stays under limits / avoids huge files - graph_width <- min(max(1000L, n_snps * 20L), max_width_px) - graph_height <- min(2100L, max_width_px) + # Vertical layout: SNP on y-axis — height scales with number of SNPs; width stays moderate + px_per_row <- 20L + graph_height <- min(max(800L, n_snps * px_per_row), max_dim_px) + graph_width <- min(2400L, max_dim_px) qj_df <- as.data.frame(heterogeneity_results_qj, check.names = TRUE) + snp_levels <- qj_df$SNP plot_data <- tidyr::pivot_longer(qj_df, cols = -SNP, names_to = "key", values_to = "value") + plot_data$SNP <- factor(plot_data$SNP, levels = unique(snp_levels)) - p <- ggplot2::ggplot(plot_data, ggplot2::aes(x = SNP, y = -log10(value))) + + p <- ggplot2::ggplot(plot_data, ggplot2::aes(x = -log10(value), y = SNP)) + ggplot2::geom_point(ggplot2::aes(colour = key), size = 0.35) + - ggplot2::scale_colour_brewer(type = "qual") + - ggplot2::theme(axis.text.x = ggplot2::element_text(angle = 90, vjust = 0.5, hjust = 1)) + - ggplot2::ggtitle("Contribution to heterogeneity score broken down by population") + - ggplot2::theme(plot.title = ggplot2::element_text(hjust = 0.5)) + ggplot2::scale_colour_brewer(type = "qual", name = "Dataset") + + ggplot2::labs( + x = expression(-log[10] * " (per-dataset contribution p-value)"), + y = "SNP" + ) + + ggplot2::ggtitle("Contribution to heterogeneity score by dataset") + + ggplot2::theme( + plot.title = ggplot2::element_text(hjust = 0.5), + axis.text.y = ggplot2::element_text(size = ggplot2::rel(0.85)) + ) ggplot2::ggsave( output_file, diff --git a/R/gwas_comparisons.R b/R/gwas_comparisons.R index 61efb19..5fdbc7f 100644 --- a/R/gwas_comparisons.R +++ b/R/gwas_comparisons.R @@ -124,6 +124,13 @@ expected_vs_observed_replication <- function(b_disc, se_disc, b_rep, se_rep, alp +dataset_label_from_gwas_path <- function(path) { + x <- basename(path) + x <- sub("\\.gz$", "", x, ignore.case = TRUE) + tools::file_path_sans_ext(x) +} + + compare_heterogeneity_across_ancestries <- function(gwas_filenames = c(), clumped_filenames = c(), ancestry_list = c(), @@ -143,49 +150,52 @@ compare_heterogeneity_across_ancestries <- function(gwas_filenames = c(), clumped_snps <- data.table::rbindlist(lapply(clumped_filenames, data.table::fread))$SNP clumped_snps <- unique(clumped_snps) + dataset_labels <- make.unique( + vapply(gwas_filenames, dataset_label_from_gwas_path, character(1)), + sep = "_" + ) + gwases <- lapply(gwas_filenames, function(gwas_filename) { get_file_or_dataframe(gwas_filename, columns = comparison_columns) |> dplyr::filter(RSID %in% clumped_snps) }) - gwas_ancestry_names <- c() for (i in seq_along(gwases)) { - gwases[[i]]$ancestry <- ancestry_list[[i]] - gwas_ancestry_names[[i]] <- paste0(i, "_", ancestry_list[[i]]) + gwases[[i]]$dataset <- dataset_labels[[i]] } harmonised_gwases <- rlang::inject(harmonise_gwases(!!!gwases)) - gwases_by_ancestry <- stats::setNames(harmonised_gwases, gwas_ancestry_names) + gwases_by_dataset <- stats::setNames(harmonised_gwases, dataset_labels) - heterogeneity_results <- calculate_heterogeneity_scores(gwases_by_ancestry, heterogeneity_score_file) + heterogeneity_results <- calculate_heterogeneity_scores(gwases_by_dataset, heterogeneity_score_file) plot_heritability_contribution_per_ancestry(heterogeneity_results$Qj, heterogeneity_plot_file) - plot_snps_with_heterogeneity(gwases_by_ancestry, heterogeneity_results$Q, heterogeneity_plots_per_snp_file) + plot_snps_with_heterogeneity(gwases_by_dataset, heterogeneity_results$Q, heterogeneity_plots_per_snp_file) } -plot_snps_with_heterogeneity <- function(gwases_by_ancestry, heterogeneity_resuts_q, heterogeneity_forest_plot_file) { +plot_snps_with_heterogeneity <- function(gwases_by_dataset, heterogeneity_resuts_q, heterogeneity_forest_plot_file) { are_heterogeneous <- which(heterogeneity_resuts_q$Qpval < 0.05 / nrow(heterogeneity_resuts_q)) - forest_plot_rows <- data.table::rbindlist(lapply(gwases_by_ancestry, function(gwas) { + forest_plot_rows <- data.table::rbindlist(lapply(gwases_by_dataset, function(gwas) { gwas$Qpval <- heterogeneity_resuts_q$Qpval gwas[are_heterogeneous, ] })) grouped_forest_plot(forest_plot_rows, title = "Plot of SNPs That Are Heterogeneous", - group_column = "ancestry", + group_column = "dataset", output_file = heterogeneity_forest_plot_file, #p_value_column = "Qpval" ?? ) } -#' Test for heterogeneity of effect estimates between populations +#' Test for heterogeneity of effect estimates between GWAS datasets #' #' @description For each SNP this function will provide a Cochran's Q test statistic - -#' a measure of heterogeneity of effect sizes between populations. A low p-value means high heterogeneity. -#' In addition, for every SNP it gives a per population p-value - -#' this can be interpreted as asking for each SNP is a particular giving an outlier estimate. +#' a measure of heterogeneity of effect sizes between datasets. A low p-value means high heterogeneity. +#' In addition, for every SNP it gives a per-dataset p-value — +#' interpreted as whether a particular study is an outlier at that SNP. #' -#' @param gwases_by_ancestry Named list of data frames, one for each population, with at least bhat, se and snp columns +#' @param gwases_by_ancestry Named list of data frames, one per GWAS dataset, with at least BETA, SE and SNP columns #' @param heterogeneity_score_file file to save the heterogeneity scores #' #' @return List diff --git a/run_pipeline.sh b/run_pipeline.sh index 1175c3c..4e8f3a9 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -51,9 +51,6 @@ if [[ -z "${SLURM_ACCOUNT:-}" ]]; then export SLURM_ACCOUNT="$ACCOUNT_ID" fi -echo "$SLURM_ACCOUNT" -echo "$SLURM_PARTITION" - export GENEHACKMAN_EXTRA_SINGULARITY_BINDS="" _trim_qtl="$(echo "${QTL_DATA_DIR:-}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')" if [[ -n "${_trim_qtl}" ]]; then From 81e5506bbd4b60cb63935bd4b69d58d50c07cbc8 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 11 May 2026 12:01:34 +0100 Subject: [PATCH 43/85] Updating so finemap isn't rerun --- R/finemap.R | 15 ++++++++++++++- snakemake/PIPELINES.md | 2 +- snakemake/coloc.smk | 5 ++--- snakemake/finemap.smk | 3 +-- snakemake/qtl_mr.smk | 14 ++++++++++---- snakemake/rules/finemap_rule.smk | 5 +++-- snakemake/util/constants.smk | 3 +++ tests/testthat/test_finemap.R | 4 ++++ 8 files changed, 38 insertions(+), 13 deletions(-) diff --git a/R/finemap.R b/R/finemap.R index 0d6a8da..b82ff74 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -11,7 +11,9 @@ #' @param ancestry ancestry code matching 1000 Genomes panel prefix (EUR, EAS, AFR, AMR, SAS) #' @param default_n GWAS sample size when not inferrable from \code{gwas}; see #' @param output_finemap_dir directory to write one -#' \verb{__finemap.tsv.gz} per clumped locus +#' \verb{__finemap.tsv.gz} per clumped locus. On successful completion, +#' writes \verb{finemap_complete.txt} (one line: expected lead count \verb{n}), +#' where \verb{n} is the number of clumped lead SNPs (rows in the clump file excluding the header). #' @param window_kb half-width of the fine-mapping window in kb (default 1000 = ±1 Mb) #' @param max_causal maximum number of causal signals per locus (SuSiE L, default 10) #' @param coverage credible set coverage (default 0.95) @@ -45,6 +47,7 @@ finemap_gwas <- function(gwas, lead_snps <- data.table::fread(clumped_file, select = c("SNP", "CHR", "BP")) if (nrow(lead_snps) == 0) { message("No clumped SNPs found; no per-locus finemap files written.") + write_finemap_complete_marker(output_finemap_dir, 0L) empty <- data.table::data.table( SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), Z = numeric(), CS = integer() @@ -170,10 +173,20 @@ finemap_gwas <- function(gwas, nrow(combined_lbf), "LD-matched SNPs with finemap stats,", "outputs in", output_finemap_dir)) + write_finemap_complete_marker(output_finemap_dir, nrow(lead_snps)) + return(invisible(combined_lbf)) } +#' Write \verb{finemap_complete.txt} (one line: expected lead count) for Snakemake. +#' @keywords internal +write_finemap_complete_marker <- function(output_finemap_dir, n_loci) { + complete_txt <- file.path(output_finemap_dir, "finemap_complete.txt") + writeLines(as.character(as.integer(n_loci)), complete_txt) +} + + #' Compute LD correlation matrix from 1000 Genomes via plink #' @param rsids character vector of RSIDs #' @param chr chromosome number diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index d9db0dd..dfd0a7d 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -133,7 +133,7 @@ SuSiE fine-mapping per GWAS — no MR, no trait–trait coloc. - **GWAS**: one or more; each needs `**ancestry`** (LD reference for clumping and LD matrix for `susieR::susie_rss`). - **Root**: `plink_clump_arguments`, optional `populate_rsid` / `populate_eaf`, optional `**finemap`** block (see above). Example template sets `window_kb` to `1000`. -- **Outputs** (under `RESULTS_DIR`): `finemap//` per GWAS (per-locus `*_finemap.tsv.gz`, etc.). +- **Outputs** (under `RESULTS_DIR`): `finemap//` per GWAS (per-locus `*_finemap.tsv.gz`, plus `finemap_complete.txt` with one line = expected lead count `n`). Snakemake registers only that completion file as the finemap rule output (`FINEMAP_COMPLETE_TXT_PATTERN` in `snakemake/util/constants.smk`). --- diff --git a/snakemake/coloc.smk b/snakemake/coloc.smk index 7cf3fdb..3514d8c 100644 --- a/snakemake/coloc.smk +++ b/snakemake/coloc.smk @@ -23,7 +23,6 @@ coloc_p2 = getattr(coloc_opts, "p2", 1e-4) coloc_p12 = getattr(coloc_opts, "p12", 5e-6) std_file_pattern = standardised_gwas_name("{prefix}") -finemap_dir_pattern = RESULTS_DIR + "finemap/{prefix}" for g in pipeline.gwases: g.finemap_dir = RESULTS_DIR + "finemap/" + g.prefix @@ -41,7 +40,7 @@ ancestry_bar = "|".join([g.ancestry for g in pipeline.gwases]) rule all: input: expand(std_file_pattern, prefix=trait_names), - expand(finemap_dir_pattern, prefix=trait_names), + expand(FINEMAP_COMPLETE_TXT_PATTERN, prefix=trait_names), coloc_results, results_file @@ -54,7 +53,7 @@ rule run_coloc: mem = "16G", time = "02:00:00" input: - finemap_dirs = expand(finemap_dir_pattern, prefix=trait_names) + finemap_complete = expand(FINEMAP_COMPLETE_TXT_PATTERN, prefix=trait_names) params: finemap_dirs = finemap_dirs_str, trait_names = trait_names_str, diff --git a/snakemake/finemap.smk b/snakemake/finemap.smk index 727311c..7172a30 100644 --- a/snakemake/finemap.smk +++ b/snakemake/finemap.smk @@ -17,7 +17,6 @@ finemap_coverage = getattr(finemap_opts, "coverage", 0.95) finemap_min_abs_corr = getattr(finemap_opts, "min_abs_corr", 0.5) std_file_pattern = standardised_gwas_name("{prefix}") -finemap_dir_pattern = RESULTS_DIR + "finemap/{prefix}" for g in pipeline.gwases: g.finemap_dir = RESULTS_DIR + "finemap/" + g.prefix @@ -25,7 +24,7 @@ for g in pipeline.gwases: rule all: input: expand(std_file_pattern, prefix=[g.prefix for g in pipeline.gwases]), - expand(finemap_dir_pattern, prefix=[g.prefix for g in pipeline.gwases]) + expand(FINEMAP_COMPLETE_TXT_PATTERN, prefix=[g.prefix for g in pipeline.gwases]) include: "rules/standardise_rule.smk" include: "rules/clumping_rule.smk" diff --git a/snakemake/qtl_mr.smk b/snakemake/qtl_mr.smk index c0282ff..977196f 100644 --- a/snakemake/qtl_mr.smk +++ b/snakemake/qtl_mr.smk @@ -26,7 +26,6 @@ exposures_string = " ".join(pipeline.qtl.exposures) gwas_prefix = file_prefix(gwas.file) gwas.finemap_dir = RESULTS_DIR + "finemap/" + gwas_prefix -finemap_dir_pattern = RESULTS_DIR + "finemap/{prefix}" mr_results = RESULTS_DIR + "mr/" + gwas_prefix + "_" + qtl_name + ".tsv.gz" coloc_results = RESULTS_DIR + "mr/coloc_" + gwas_prefix + "_" + qtl_name + ".tsv" @@ -36,7 +35,13 @@ results_file = RESULTS_DIR + "mr/result_" + qtl_name + "_" + gwas_prefix + ".ht std_file_pattern = standardised_gwas_name("{prefix}") rule all: - input: gwas.standardised_gwas, gwas.finemap_dir, mr_results, volcano_plot, coloc_results, results_file + input: + gwas.standardised_gwas, + expand(FINEMAP_COMPLETE_TXT_PATTERN, prefix=[gwas_prefix]), + mr_results, + volcano_plot, + coloc_results, + results_file include: "rules/standardise_rule.smk" include: "rules/clumping_rule.smk" @@ -82,8 +87,9 @@ rule run_coloc_analysis_of_significant_mr_results: mem = "16G" input: mr_results = mr_results, - finemap_dir = gwas.finemap_dir + finemap_complete = expand(FINEMAP_COMPLETE_TXT_PATTERN, prefix=[gwas_prefix]) params: + finemap_dir = gwas.finemap_dir, N = gwas.N, study_type = study_type, exposures = f"--exposures {exposures_string}" if exposures_string else "" @@ -92,7 +98,7 @@ rule run_coloc_analysis_of_significant_mr_results: """ Rscript coloc_of_mr_results.R \ --mr_results_filename {input.mr_results} \ - --finemap_dir {input.finemap_dir} \ + --finemap_dir {params.finemap_dir} \ --N {params.N} \ --study_type {params.study_type} \ --dataset {pipeline.qtl.dataset} {params.exposures} \ diff --git a/snakemake/rules/finemap_rule.smk b/snakemake/rules/finemap_rule.smk index d2f4ad2..c62b1cd 100644 --- a/snakemake/rules/finemap_rule.smk +++ b/snakemake/rules/finemap_rule.smk @@ -14,15 +14,16 @@ rule run_finemapping: coverage = finemap_coverage, min_abs_corr = finemap_min_abs_corr output: - finemap_dir = directory(finemap_dir_pattern) + finemap_complete = FINEMAP_COMPLETE_TXT_PATTERN shell: """ + OUT_FINEMAP="$(dirname {output.finemap_complete})" Rscript run_finemap.R \ --gwas_filename {input.gwas} \ --clumped_filename {input.clumped_file} \ --ancestry {params.ancestry} \ --N {params.n} \ - --output_finemap_dir {output.finemap_dir} \ + --output_finemap_dir "$OUT_FINEMAP" \ --window_kb {params.window_kb} \ --max_causal {params.max_causal} \ --coverage {params.coverage} \ diff --git a/snakemake/util/constants.smk b/snakemake/util/constants.smk index d5f677b..055253b 100644 --- a/snakemake/util/constants.smk +++ b/snakemake/util/constants.smk @@ -69,6 +69,9 @@ DOCKER_VERSION = os.getenv('DOCKER_VERSION') DATA_DIR = format_dir_string(os.getenv('DATA_DIR')) RESULTS_DIR = format_dir_string(os.getenv('RESULTS_DIR')) +# Single Snakemake output path for successful finemap runs (written last by finemap_gwas). +FINEMAP_COMPLETE_TXT_PATTERN = RESULTS_DIR + "finemap/{prefix}/finemap_complete.txt" + PIPELINE_DATA_DIR = format_dir_string(os.getenv('PIPELINE_DATA_DIR')) QTL_DATA_DIR = os.getenv("QTL_DATA_DIR", "").strip() diff --git a/tests/testthat/test_finemap.R b/tests/testthat/test_finemap.R index 54e6057..148c63a 100644 --- a/tests/testthat/test_finemap.R +++ b/tests/testthat/test_finemap.R @@ -69,6 +69,8 @@ test_that("finemap.finemap_gwas writes no locus files when clump has no rows", { expect_equal(nrow(res), 0) expect_equal(length(list.files(out_dir, pattern = "_finemap\\.tsv\\.gz$")), 0) + expect_true(file.exists(file.path(out_dir, "finemap_complete.txt"))) + expect_identical(readLines(file.path(out_dir, "finemap_complete.txt")), "0") }) test_that("finemap.compute_ld_matrix returns NULL when plink fails", { @@ -170,6 +172,8 @@ test_that("finemap.finemap_gwas runs end-to-end with mocked LD and SuSiE", { expect_true("LBF_1" %in% names(locus_read)) expect_setequal(locus_read$SNP, gwas$SNP) expect_false(any(grepl("^LEAD_", names(locus_read)))) + expect_true(file.exists(file.path(out_dir, "finemap_complete.txt"))) + expect_identical(readLines(file.path(out_dir, "finemap_complete.txt")), "1") }) test_that("finemap.run_susie_for_locus returns empty tibble when SuSiE errors", { From 912660f458499d0fea88dfcd5ef69dff72e87532 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 11 May 2026 12:40:44 +0100 Subject: [PATCH 44/85] fixing qtl mr smk --- snakemake/qtl_mr.smk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/snakemake/qtl_mr.smk b/snakemake/qtl_mr.smk index 977196f..48dd757 100644 --- a/snakemake/qtl_mr.smk +++ b/snakemake/qtl_mr.smk @@ -26,6 +26,7 @@ exposures_string = " ".join(pipeline.qtl.exposures) gwas_prefix = file_prefix(gwas.file) gwas.finemap_dir = RESULTS_DIR + "finemap/" + gwas_prefix +finemap_complete_file = expand(FINEMAP_COMPLETE_TXT_PATTERN, prefix=[gwas_prefix])[0] mr_results = RESULTS_DIR + "mr/" + gwas_prefix + "_" + qtl_name + ".tsv.gz" coloc_results = RESULTS_DIR + "mr/coloc_" + gwas_prefix + "_" + qtl_name + ".tsv" @@ -107,7 +108,7 @@ rule run_coloc_analysis_of_significant_mr_results: files_created = { "gwas": gwas.standardised_gwas, - "finemap_dir": gwas.finemap_dir, + "finemap_complete": finemap_complete_file, "mr_results": mr_results, "volcano_plot": volcano_plot, "coloc_results": coloc_results From 2896aa725450b6f057d15b629d5ed2559f6104b1 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 11 May 2026 13:31:18 +0100 Subject: [PATCH 45/85] fixing finemap --- R/finemap.R | 149 ++++++++++++++++++++++++++++++---------------------- R/graphs.R | 30 ++++++++--- 2 files changed, 108 insertions(+), 71 deletions(-) diff --git a/R/finemap.R b/R/finemap.R index b82ff74..c498dcb 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -81,75 +81,81 @@ finemap_gwas <- function(gwas, lead_rsid <- lead_snps$SNP[i] lead_chr <- as.numeric(lead_snps$CHR[i]) lead_bp <- as.numeric(lead_snps$BP[i]) - locus_gwas <- locus_subsets[[i]] - window_gwas <- window_subsets[[i]] - if (nrow(locus_gwas) < 2L) { - message(paste("Skipping locus", lead_rsid, "- fewer than 2 SNPs in window")) - return(NULL) - } - - if (!has_rsid || all(is.na(locus_gwas$RSID))) { - message(paste("Skipping locus", lead_rsid, "- no RSIDs available for LD computation")) - return(NULL) - } - locus_gwas <- locus_gwas[!is.na(RSID) & nchar(RSID) > 0L] + tryCatch({ + locus_gwas <- locus_subsets[[i]] + window_gwas <- window_subsets[[i]] - ld_result <- compute_ld_matrix(locus_gwas$RSID, lead_chr, ancestry) - if (is.null(ld_result)) { - message(paste("Skipping locus", lead_rsid, "- LD matrix computation failed")) - return(NULL) - } - - shared_rsids <- intersect(locus_gwas$RSID, ld_result$snps) - if (length(shared_rsids) < 2L) { - rm(ld_result); gc(verbose = FALSE) - message(paste("Skipping locus", lead_rsid, "- too few shared SNPs between GWAS and LD panel")) - return(NULL) - } - - locus_gwas <- locus_gwas[match(shared_rsids, RSID)] - ld_idx <- match(shared_rsids, ld_result$snps) - R <- ld_result$matrix[ld_idx, ld_idx] - rm(ld_result); gc(verbose = FALSE) - - z_scores <- locus_gwas$BETA / locus_gwas$SE - n <- if (has_n && !is.na(as.numeric(locus_gwas$N[1L]))) as.numeric(locus_gwas$N[1L]) else default_n - if (is.na(n)) { - stop("Fine-mapping requires GWAS sample size") - } + if (nrow(locus_gwas) < 2L) { + message(paste("Skipping locus", lead_rsid, "- fewer than 2 SNPs in window")) + return(NULL) + } - locus_lbf <- run_susie_for_locus( - z_scores = z_scores, - ld_matrix = R, - snp_info = locus_gwas, - n = n, - lead_snp = lead_rsid, - max_causal = max_causal, - coverage = coverage, - min_abs_corr = min_abs_corr - ) - rm(R, locus_gwas); gc(verbose = FALSE) + if (!has_rsid || all(is.na(locus_gwas$RSID))) { + message(paste("Skipping locus", lead_rsid, "- no RSIDs available for LD computation")) + return(NULL) + } + locus_gwas <- locus_gwas[!is.na(RSID) & nchar(RSID) > 0L] - if (nrow(locus_lbf) == 0L) return(NULL) + ld_result <- compute_ld_matrix(locus_gwas$RSID, lead_chr, ancestry) + if (is.null(ld_result)) { + message(paste("Skipping locus", lead_rsid, "- LD matrix computation failed")) + return(NULL) + } - lbf_nm <- grep("^LBF_[0-9]+$", names(locus_lbf), value = TRUE) - finemap_cols <- intersect(c("RSID", "Z", "CS", lbf_nm), names(locus_lbf)) - finemap_join <- locus_lbf[, ..finemap_cols] + shared_rsids <- intersect(locus_gwas$RSID, ld_result$snps) + if (length(shared_rsids) < 2L) { + rm(ld_result); gc(verbose = FALSE) + message(paste("Skipping locus", lead_rsid, "- too few shared SNPs between GWAS and LD panel")) + return(NULL) + } - out_gwas <- merge(window_gwas, finemap_join, by = "RSID", all.x = TRUE, sort = FALSE) - rm(window_gwas, finemap_join) + locus_gwas <- locus_gwas[match(shared_rsids, RSID)] + ld_idx <- match(shared_rsids, ld_result$snps) + R <- ld_result$matrix[ld_idx, ld_idx] + rm(ld_result); gc(verbose = FALSE) - lead_chr_bp <- paste0( - lead_chr, "_", - format(as.numeric(lead_bp), scientific = FALSE, trim = TRUE, digits = 20) - ) - safe_locus <- gsub("[^A-Za-z0-9._-]+", "_", lead_chr_bp) - out_file <- file.path(output_finemap_dir, paste0(safe_locus, "_finemap.tsv.gz")) - data.table::fwrite(out_gwas, out_file, sep = "\t", compress = "gzip") - rm(out_gwas) + z_scores <- locus_gwas$BETA / locus_gwas$SE + n <- if (has_n && !is.na(as.numeric(locus_gwas$N[1L]))) as.numeric(locus_gwas$N[1L]) else default_n + if (is.na(n)) { + stop("Fine-mapping requires GWAS sample size") + } - locus_lbf + locus_lbf <- run_susie_for_locus( + z_scores = z_scores, + ld_matrix = R, + snp_info = locus_gwas, + n = n, + lead_snp = lead_rsid, + max_causal = max_causal, + coverage = coverage, + min_abs_corr = min_abs_corr + ) + rm(R, locus_gwas); gc(verbose = FALSE) + + if (nrow(locus_lbf) == 0L) return(NULL) + + lbf_nm <- grep("^LBF_[0-9]+$", names(locus_lbf), value = TRUE) + finemap_cols <- intersect(c("RSID", "Z", "CS", lbf_nm), names(locus_lbf)) + finemap_join <- locus_lbf[, ..finemap_cols] + + out_gwas <- merge(window_gwas, finemap_join, by = "RSID", all.x = TRUE, sort = FALSE) + rm(window_gwas, finemap_join) + + lead_chr_bp <- paste0( + lead_chr, "_", + format(as.numeric(lead_bp), scientific = FALSE, trim = TRUE, digits = 20) + ) + safe_locus <- gsub("[^A-Za-z0-9._-]+", "_", lead_chr_bp) + out_file <- file.path(output_finemap_dir, paste0(safe_locus, "_finemap.tsv.gz")) + data.table::fwrite(out_gwas, out_file, sep = "\t", compress = "gzip") + rm(out_gwas) + + locus_lbf + }, error = function(e) { + message(paste("Error processing locus", lead_rsid, ":", conditionMessage(e))) + return(NULL) + }) } locus_results <- parallel::mclapply( @@ -159,9 +165,26 @@ finemap_gwas <- function(gwas, ) rm(locus_subsets, window_subsets); gc(verbose = FALSE) - all_lbf <- locus_results[!vapply(locus_results, is.null, FUN.VALUE = logical(1))] + is_valid <- vapply(locus_results, function(x) { + is.data.frame(x) || data.table::is.data.table(x) + }, FUN.VALUE = logical(1)) + + n_errors <- sum(vapply(locus_results, inherits, "try-error", FUN.VALUE = logical(1))) + if (n_errors > 0L) { + message(paste(n_errors, "locus worker(s) returned errors")) + } + + all_lbf <- locus_results[is_valid] rm(locus_results) - combined_lbf <- data.table::rbindlist(all_lbf, fill = TRUE) + + if (length(all_lbf) == 0L) { + combined_lbf <- data.table::data.table( + SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), + Z = numeric(), CS = integer() + ) + } else { + combined_lbf <- data.table::rbindlist(all_lbf, fill = TRUE) + } rm(all_lbf); gc(verbose = FALSE) if (nrow(combined_lbf) == 0L) { diff --git a/R/graphs.R b/R/graphs.R index f5951b0..8937cb2 100644 --- a/R/graphs.R +++ b/R/graphs.R @@ -238,13 +238,27 @@ volcano_plot <- function(results_file, title="Volcano Plot of Results", label="E get({{p_val}}) < 0.05 & BETA > 0 ~ "Protective" )) - #filter label to only showing the more 'important' labels - important_labels <- dplyr::filter(table, get({{p_val}}) < 0.05) |> - dplyr::arrange(dplyr::desc(-log10(get({{p_val}}) * abs(BETA)))) - important_labels <- head(important_labels, num_labels)[[label]] - table[[label]] <- ifelse(table[[label]] %in% important_labels, table[[label]], NA) - - ggplot2::ggplot(data = table, ggplot2::aes(x = BETA , y = -log10(.data[[p_val]]), col = category, label = .data[[label]])) + + # One label per distinct exposure/method key: MR outputs often repeat the same EXPOSURE + # (e.g. IVW rows); label only the best-scoring row per label value to avoid duplicate tags. + table <- dplyr::mutate(table, .volcano_row_id = dplyr::row_number()) + sig <- dplyr::filter(table, .data[[p_val]] < 0.05) + representatives <- sig |> + dplyr::group_by(.data[[label]]) |> + dplyr::slice_max( + order_by = (-log10(.data[[p_val]]) * abs(BETA)), + n = 1L, + with_ties = FALSE + ) |> + dplyr::ungroup() |> + dplyr::arrange(dplyr::desc(-log10(.data[[p_val]]) * abs(BETA))) |> + dplyr::slice_head(n = num_labels) + + rep_ids <- representatives$.volcano_row_id + lab_chr <- as.character(table[[label]]) + table$.volcano_plot_label <- ifelse(table$.volcano_row_id %in% rep_ids, lab_chr, NA_character_) + table$.volcano_row_id <- NULL + + p <- ggplot2::ggplot(data = table, ggplot2::aes(x = BETA , y = -log10(.data[[p_val]]), col = category, label = .volcano_plot_label)) + ggplot2::geom_vline(xintercept = c(-0.1, 0.1), col = "gray", linetype = 'dashed') + ggplot2::geom_hline(yintercept = -log10(0.05), col = "tomato2", linetype = 'dashed') + ggplot2::geom_point(size = 1) + @@ -255,7 +269,7 @@ volcano_plot <- function(results_file, title="Volcano Plot of Results", label="E ggplot2::theme(plot.title = ggplot2::element_text(hjust = 0.5)) + ggrepel::geom_text_repel(max.overlaps = Inf, show.legend = F) - ggplot2::ggsave(output_file) + ggplot2::ggsave(output_file, plot = p) } From 660145ca562ea1627895cd7118dd61d9303eefcb Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 11 May 2026 21:34:47 +0100 Subject: [PATCH 46/85] Adding missing function --- R/util.R | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/R/util.R b/R/util.R index 0e87048..e74c997 100644 --- a/R/util.R +++ b/R/util.R @@ -154,6 +154,7 @@ get_docker_image_tag <- function() { #' @param effect_priors Effect priors #' #' @return Log Bayes Factor +#' @internal convert_z_to_lbf <- function( z, se, @@ -171,4 +172,31 @@ convert_z_to_lbf <- function( r <- sd_prior^2 / (sd_prior^2 + se^2) lbf <- (log(1 - r) + (r * z^2)) / 2 return(lbf) +} + +#' Estimate trait standard deviation given vectors of variance of coefficients, MAF and sample size +#' +#' Estimate is based on var(beta-hat) = var(Y) / (n * var(X)) +#' var(X) = 2*maf*(1-maf) +#' so we can estimate var(Y) by regressing n*var(X) against 1/var(beta) +#' +#' @title Estimate trait variance, internal function +#' @param SE vector of standard errors +#' @param EAF vector of MAF (same length as SE) +#' @param n sample size +#' +#' @return estimated standard deviation of Y +#' @internal +estimate_variance <- function(se, eaf, n) { + oneover <- 1 / se^2 + nvx <- 2 * n * eaf * (1 - eaf) + m <- lm(nvx ~ oneover - 1) + cf <- coef(m)[["oneover"]] + if (cf < 0) { + stop( + "Estimated sdY is negative - this can happen with small datasets, or those with errors. ", + "A reasonable estimate of sdY is required to continue." + ) + } + return(sqrt(cf)) } \ No newline at end of file From 633ba8fd92112c3cc708bb26d7a58b966fac6c18 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 15 May 2026 16:37:37 +0200 Subject: [PATCH 47/85] Simplifying env input --- .env_example | 4 +--- PLATFORM_SETUP.md | 6 +++--- R/constants.R | 15 +++++++++++++-- README.md | 3 ++- run_pipeline.sh | 11 ++++++++--- snakemake/PIPELINES.md | 2 +- snakemake/util/constants.smk | 16 +++++++++------- 7 files changed, 37 insertions(+), 20 deletions(-) diff --git a/.env_example b/.env_example index e7a624e..b536e2f 100644 --- a/.env_example +++ b/.env_example @@ -1,7 +1,5 @@ -# Mandatory variables -DATA_DIR= -RESULTS_DIR= PIPELINE_DATA_DIR= +PROJECT_DIR= # Optional variables QTL_DATA_DIR= DOCKER_VERSION=1.0.0 diff --git a/PLATFORM_SETUP.md b/PLATFORM_SETUP.md index 6364aa1..dd7d884 100644 --- a/PLATFORM_SETUP.md +++ b/PLATFORM_SETUP.md @@ -5,7 +5,7 @@ Snakemake orchestrates steps; each step usually runs inside an **Apptainer/Singu General prerequisites: 1. **Conda env:** `conda env create -f environment.yml` then `conda activate genehackman` -2. **`.env`:** copy from `.env_example` and set at least `DATA_DIR`, `RESULTS_DIR`, `PIPELINE_DATA_DIR` (and paths your pipeline needs for genomic / 1000G data). Optionally set **`QTL_DATA_DIR`** when large QTL mirrors live on another volume or object-store mount; if omitted, `run_pipeline.sh` defaults it to `PIPELINE_DATA_DIR/qtl_datasets`. +2. **`.env`:** copy from `.env_example` and set **`PROJECT_DIR`** (the pipeline uses **`PROJECT_DIR/data/`** and **`PROJECT_DIR/results/`**) and **`PIPELINE_DATA_DIR`** (and paths your pipeline needs for genomic / 1000G data). Optionally set **`QTL_DATA_DIR`** when large QTL mirrors live on another volume or object-store mount; if omitted, `run_pipeline.sh` defaults it to `PIPELINE_DATA_DIR/qtl_datasets`. 3. **Input YAML:** see `snakemake/input_templates/` and `snakemake/PIPELINES.md`. **`./run_pipeline.sh`** loads `.env`, picks a **profile** (**`SNAKEMAKE_PROFILE`**, default `snakemake/profiles/local/`), then runs Snakemake. Pass the **`.smk` workflow first**, then optional input YAML, for example: @@ -63,7 +63,7 @@ The published image may be **linux/amd64**. Use Lima with **Rosetta / x86 Linux* ./run_pipeline.sh snakemake/compare_gwases.smk ``` -4. Adjust **`snakemake/profiles/local/config.yaml`** `singularity-args` if your data live outside `DATA_DIR` / `RESULTS_DIR` / `PIPELINE_DATA_DIR` / `QTL_DATA_DIR` (profiles bind these four; add more `-B host:host` pairs if needed). +4. Adjust **`snakemake/profiles/local/config.yaml`** `singularity-args` if your data live outside **`PROJECT_DIR`** (or **`PIPELINE_DATA_DIR`** / **`QTL_DATA_DIR`**); profiles bind **`DATA_DIR`** and **`RESULTS_DIR`** (derived from **`PROJECT_DIR`**). Add more `-B host:host` pairs if needed. --- @@ -90,7 +90,7 @@ export SNAKEMAKE_PROFILE=snakemake/profiles/slurm/ - **`Slurm account / partition`:** In **`.env`**, optional **`SLURM_ACCOUNT`** overrides **`sbatch --account`**; if unset, the profile uses **`sacctmgr … | grep … | head -n1`**. **`SLURM_PARTITION`**, if unset, is inferred by **`run_pipeline.sh`** from **`sinfo -h -o '%P'`** (the partition marked with **`*`**, e.g. **`compute*`** → **`compute`**); if **`sinfo`** is unavailable or returns nothing, the fallback is **`compute`**. Passed to Snakemake as **`--default-resources partition=…`**. - **`cluster:`** block: `sbatch` options (`partition`, `account`, walltime, memory, `--output` log directory). -- **`singularity-args`:** The generic profile binds repo code, **`$HOME`**, **`DATA_DIR`**, **`RESULTS_DIR`**, **`PIPELINE_DATA_DIR`**, **`/tmp`**, and adds **`QTL_DATA_DIR`** only when non-empty (see **`GENEHACKMAN_EXTRA_SINGULARITY_BINDS`** in `run_pipeline.sh`). Add more `-B host:host` pairs for shared reference data on your site. +- **`singularity-args`:** The generic profile binds repo code, **`$HOME`**, **`DATA_DIR`** and **`RESULTS_DIR`** (paths under **`PROJECT_DIR`**, set by `run_pipeline.sh`), **`PIPELINE_DATA_DIR`**, **`/tmp`**, and adds **`QTL_DATA_DIR`** only when non-empty (see **`GENEHACKMAN_EXTRA_SINGULARITY_BINDS`** in `run_pipeline.sh`). Add more `-B host:host` pairs for shared reference data on your site. **Snakemake version:** `environment.yml` pins **Snakemake 7.x**. Migrating to **Snakemake 8+** changes cluster syntax (`cluster-generic` executor + plugins); this repository’s profiles target the v7 style unless you have already updated them. diff --git a/R/constants.R b/R/constants.R index b8daf94..f4ad382 100644 --- a/R/constants.R +++ b/R/constants.R @@ -23,8 +23,19 @@ available_cpus <- function() { } } -user_data_dir <- get_env_var("DATA_DIR", "") -user_results_dir <- get_env_var("RESULTS_DIR", "") +.strip_path <- function(x) { + sub("/+$", "", trimws(x)) +} + +project_dir <- .strip_path(get_env_var("PROJECT_DIR", "")) +if (nzchar(project_dir)) { + user_data_dir <- file.path(project_dir, "data") + user_results_dir <- file.path(project_dir, "results") +} else { + user_data_dir <- "" + user_results_dir <- "" +} + pipeline_data_dir <- sub("/+$", "", get_env_var("PIPELINE_DATA_DIR", "")) qtl_directory <- sub("/+$", "", get_env_var("QTL_DATA_DIR", "")) number_of_cpus_available <- available_cpus() diff --git a/README.md b/README.md index b2a6699..5d6edfe 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,7 @@ Alternatives if you don’t set **`QTL_DATA_DIR`** directly: keep the same direc ### 4. Populate `.env` and `input.yaml` files `cp .env_example .env` +* Set **`PROJECT_DIR`** to the root folder for this analysis; the pipeline uses **`PROJECT_DIR/data/`** for inputs (GWAS, clumps, …) and **`PROJECT_DIR/results/`** for outputs (finemap, coloc, plots, …). * Set **`PIPELINE_DATA_DIR`** to the path where you unpacked **`genehackman`** (see §3). * Set **`QTL_DATA_DIR`** to the path where you unpacked **`genehackman-qtl`** if you run **`qtl_mr`** (can be left empty otherwise; see [.env_example](.env_example)). * **Container cache:** If there is no pre-built `genehackman_.sif` under `PIPELINE_DATA_DIR`, Snakemake pulls the `docker://` image and caches the SIF under `.snakemake/singularity` by default. Set **`GENEHACKMAN_SINGULARITY_PREFIX`** in `.env` to use another directory (e.g. scratch). Running `snakemake` without `./run_pipeline.sh`? Pass `--singularity-prefix /path` or add `singularity-prefix:` under **`snakemake/profiles/`** in **`config.yaml`** for the profile you use (paths are relative to the repo root). @@ -94,7 +95,7 @@ Alternatives if you don’t set **`QTL_DATA_DIR`** directly: keep the same direc * Example: `cp snakemake/input_templates/compare_gwases.yaml input.yaml` * Each pipeline has its own shape; examples live under [`snakemake/input_templates/`](snakemake/input_templates/). * See [PIPELINES.md](snakemake/PIPELINES.md) for all fields. -* Pass the input YAML as the **second** argument to `run_pipeline.sh`, or rely on **`input.yaml`** in the working directory. To call **`snakemake`** yourself without the wrapper, use **`--config genehackman_input=/path/to/file.yaml`**. +* Pass the input YAML as the **second** argument to `run_pipeline.sh`, or rely on **`input.yaml`** in the working directory. To call **`snakemake`** yourself without the wrapper, set **`PROJECT_DIR`** in **`.env`** and export **`DATA_DIR="${PROJECT_DIR%/}/data"`** and **`RESULTS_DIR="${PROJECT_DIR%/}/results"`** (or load the same paths Snakemake uses) so shell rules and profile bind mounts resolve; also pass **`--config genehackman_input=/path/to/file.yaml`**. ### 5. Run the pipeline diff --git a/run_pipeline.sh b/run_pipeline.sh index 4e8f3a9..91bdf43 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -30,12 +30,17 @@ else exit 1 fi -if [[ -z "${DATA_DIR:-}" || -z "${RESULTS_DIR:-}" || -z "${PIPELINE_DATA_DIR:-}" ]]; then - echo "Error: DATA_DIR, RESULTS_DIR, and PIPELINE_DATA_DIR must be set in .env" +# GWAS working dirs: always PROJECT_DIR/data and PROJECT_DIR/results (exported as DATA_DIR / RESULTS_DIR for shell rules and Singularity binds). +if [[ -z "${PROJECT_DIR:-}" || -z "${PIPELINE_DATA_DIR:-}" ]]; then + echo "Error: PROJECT_DIR and PIPELINE_DATA_DIR must be set in .env." exit 1 fi +_pd="$(echo "${PROJECT_DIR}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//;s|/*$||')" +export DATA_DIR="${_pd}/data" +export RESULTS_DIR="${_pd}/results" +unset _pd export PIPELINE_LOG_DIR="${DATA_DIR%/}/snakemake_logs" -mkdir -p $PIPELINE_LOG_DIR +mkdir -p $PIPELINE_LOG_DIR $DATA_DIR $RESULTS_DIR if [[ -z "${SLURM_PARTITION:-}" ]]; then if command -v sinfo >/dev/null 2>&1; then diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index dfd0a7d..515ec7d 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -8,7 +8,7 @@ All pipelines consume a **YAML** file. Use **`./run_pipeline.sh .smk [ Indented nesting defines hierarchy (`gwases:` lists `- item` blocks). Use `true` / `false` for booleans. Quote a string if it could be parsed as a YAML 1.1 keyword (e.g. column names `yes`, `no`). Validate syntax with [yamllint](https://www.yamllint.com/) if needed. -Paths like `RESULTS_DIR` and `DATA_DIR` resolve from your `.env` file (`DATA_DIR/gwas/`, `RESULTS_DIR/…`). +Set **`PROJECT_DIR`** in **`.env`**: the pipeline uses **`PROJECT_DIR/data/`** (GWAS, clumps, …) and **`PROJECT_DIR/results/`** (finemap, coloc, plots, …). See also: [GWAS harmonisation README](../README.md#how-it-works). diff --git a/snakemake/util/constants.smk b/snakemake/util/constants.smk index 055253b..364a655 100644 --- a/snakemake/util/constants.smk +++ b/snakemake/util/constants.smk @@ -19,12 +19,21 @@ def _available_cpus(): return max(1, n if n is not None else 1) +def _strip_project_path(s): + return (s or "").strip().rstrip("/\\") + + load_dotenv() docker_repo = "docker://mrcieu/genehackman" user = os.getenv('USER') input_file = "input.yaml" start_time = datetime.now() +_project = _strip_project_path(os.getenv("PROJECT_DIR", "")) + +DATA_DIR = format_dir_string(os.path.join(_project, "data")) +RESULTS_DIR = format_dir_string(os.path.join(_project, "results")) + _pipeline_log_override = os.getenv("PIPELINE_LOG_DIR") _local_flag = os.getenv("GENEHACKMAN_LOCAL", "").strip().lower() in ("1", "true", "yes") if _pipeline_log_override: @@ -63,11 +72,7 @@ default_output_options = SimpleNamespace(**{ "columns": SimpleNamespace(**default_columns) }) -if not os.getenv("DATA_DIR") or not os.getenv("RESULTS_DIR"): - raise ValueError("Please populate DATA_DIR and RESULTS_DIR in the .env file provided") DOCKER_VERSION = os.getenv('DOCKER_VERSION') -DATA_DIR = format_dir_string(os.getenv('DATA_DIR')) -RESULTS_DIR = format_dir_string(os.getenv('RESULTS_DIR')) # Single Snakemake output path for successful finemap runs (written last by finemap_gwas). FINEMAP_COMPLETE_TXT_PATTERN = RESULTS_DIR + "finemap/{prefix}/finemap_complete.txt" @@ -81,6 +86,3 @@ THOUSAND_GENOMES_DIR = format_dir_string(GENOMIC_DATA_DIR + "1000genomes/b37_dbs QTL_DIRECTORY = format_dir_string(QTL_DATA_DIR) AVAILABLE_CPUS = _available_cpus() - -if DATA_DIR == RESULTS_DIR: - raise ValueError("DATA_DIR and RESULTS_DIR must be different directories") From 6324cc61368df0a7564cb4d052369e2c4a0ee469 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 16 May 2026 14:36:34 +0400 Subject: [PATCH 48/85] Changing clumping rule so it isn't rerun --- snakemake/rules/clumping_rule.smk | 32 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/snakemake/rules/clumping_rule.smk b/snakemake/rules/clumping_rule.smk index 772c6ec..55a3a5e 100644 --- a/snakemake/rules/clumping_rule.smk +++ b/snakemake/rules/clumping_rule.smk @@ -7,29 +7,25 @@ for g in pipeline.gwases: g.clumped_file = g.clumped_snp_prefix + ".clumped" setattr(pipeline, g.prefix, g) -rule clump_gwases: +CLUMPED_FILE_PATTERN = clump_dir + "{prefix}.clumped" + +rule clump_gwas: threads: 4 resources: mem = "8G" input: - gwases = [g.standardised_gwas for g in pipeline.gwases] - output: [g.clumped_file for g in pipeline.gwases] + gwas = lambda wildcards: getattr(pipeline, wildcards.prefix).standardised_gwas params: - clumped_snp_prefixes = list([g.clumped_snp_prefix for g in pipeline.gwases]) + ancestry = lambda wildcards: getattr(pipeline, wildcards.prefix).ancestry, + out_prefix = lambda wildcards: getattr(pipeline, wildcards.prefix).clumped_snp_prefix + output: + clumped = CLUMPED_FILE_PATTERN shell: """ - gwases=({input.gwases}) - ancestries=({ancestries}) - clumped_snp_prefixes=({params.clumped_snp_prefixes}) - - for i in "${{!gwases[@]}}" - do - ancestry=${{ancestries[$i]}} - plink1.9 --bfile {THOUSAND_GENOMES_DIR}/$ancestry \ - --threads {AVAILABLE_CPUS} \ - --clump ${{gwases[$i]}} \ - --clump-snp-field RSID \ - {pipeline.plink_clump_arguments} \ - --out ${{clumped_snp_prefixes[$i]}} || echo "{default_clump_headers}" > {output} - done + plink1.9 --bfile {THOUSAND_GENOMES_DIR}/{params.ancestry} \ + --threads {AVAILABLE_CPUS} \ + --clump {input.gwas} \ + --clump-snp-field RSID \ + {pipeline.plink_clump_arguments} \ + --out {params.out_prefix} || echo "{default_clump_headers}" > {output.clumped} """ From 6e83609ee03e2374ca9a40dbb214301e56f1a07f Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 16 May 2026 23:20:17 +0400 Subject: [PATCH 49/85] Adding study_type --- R/constants.R | 1 + snakemake/PIPELINES.md | 3 ++- snakemake/input_templates/qtl_mr.yaml | 2 +- snakemake/qtl_mr.smk | 2 +- snakemake/util/common.smk | 1 + 5 files changed, 6 insertions(+), 3 deletions(-) diff --git a/R/constants.R b/R/constants.R index f4ad382..4953821 100644 --- a/R/constants.R +++ b/R/constants.R @@ -56,3 +56,4 @@ qtl_datasets <- list(metabrain="metabrain", eqtlgen="eqtlgen") populate_rsid_options <- list(none="none", partial="partial", full="full") populate_chr_bp_options <- list(none="none", partial="partial", full="full") rsid_builds <- list(GRCh37="b37_dbsnp156", GRCh38="b38_dbsnp156") +study_types <- list(continuous="continuous", categorical="categorical") \ No newline at end of file diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index 515ec7d..fee4e46 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -29,6 +29,7 @@ Each element describes one GWAS file. | `populate_rsid` | No | Per-GWAS override: `true` / `false`. With clumping and `false` at both levels, RSID population is **partial** (see below). | | `populate_eaf` | No | Per-GWAS: if `true`, fills missing `EAF` from the 1000 Genomes reference (`/genomic_data/1000genomes/b37_dbsnp156/` … `.bim` + `.frq`). Requires `ancestry`. | | `flip_alleles` | No | If omitted, inherited from root (default **`true`**). **`false`** is **allowed only for [`standardise_gwas.smk`](standardise_gwas.smk)** (other pipelines fail at YAML load). With `false`, EA/OA order is preserved; **partial** RSID + `flip_alleles: false` remains invalid (use **`none`** or **`full`** RSID). | +| `study_type` | No | `continuous` (default) or `categorical`. Used by **qtl_mr** coloc step (LBF conversion from QTL z-scores); stored on the GWAS object for future pipeline steps that need it. | | `remove_extra_columns` | No | Default `false`. | @@ -155,7 +156,7 @@ Standardise → clump → finemap for **all** input GWAS, then **pairwise** BF - `dataset` — e.g. `metabrain`, `eqtlgen` - `subcategory` — one sub-run, e.g. `cortex` (MetaBrain) or `cis` (eQTLGen); combined with `dataset` in output names - `exposures` — optional list of exposure names; if empty, all exposures in that dataset run - - `study_type` — `continuous` (default) or `categorical` (affects LBF conversion from QTL *Z*-scores) +- **`study_type`** on the GWAS object (`continuous` or `categorical`) controls LBF conversion in the coloc step. **Dataset / subcategory examples** (see also repository docs): diff --git a/snakemake/input_templates/qtl_mr.yaml b/snakemake/input_templates/qtl_mr.yaml index 55bbe2f..16021b9 100644 --- a/snakemake/input_templates/qtl_mr.yaml +++ b/snakemake/input_templates/qtl_mr.yaml @@ -11,6 +11,7 @@ gwases: SE: "" ancestry: EUR N: 0 + study_type: continuous plink_clump_arguments: "--clump-p1 5e-8 --clump-r2 0.01 --clump-kb 1000" finemap: window_kb: 1000 @@ -21,5 +22,4 @@ qtl: dataset: "" subcategory: "" exposures: [] - study_type: continuous populate_rsid: false diff --git a/snakemake/qtl_mr.smk b/snakemake/qtl_mr.smk index 48dd757..bc6c765 100644 --- a/snakemake/qtl_mr.smk +++ b/snakemake/qtl_mr.smk @@ -18,7 +18,7 @@ finemap_coverage = getattr(finemap_opts, "coverage", 0.95) finemap_min_abs_corr = getattr(finemap_opts, "min_abs_corr", 0.5) qtl_opts = getattr(pipeline, "qtl", SimpleNamespace()) -study_type = getattr(qtl_opts, "study_type", "continuous") +study_type = gwas.study_type qtl_name = pipeline.qtl.dataset + "_" + pipeline.qtl.subcategory if not hasattr(pipeline.qtl, "exposures"): pipeline.qtl.exposures = [] diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index 4bf67ea..7463850 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -104,6 +104,7 @@ def parse_pipeline_input(pipeline_includes_clumping=False, allow_flip_false=Fals if not hasattr(g, "remove_extra_columns"): g.remove_extra_columns = False if not hasattr(g, "flip_alleles"): g.flip_alleles = getattr(pipeline, "flip_alleles", True) if not hasattr(g, "build"): g.build = "GRCh37" + if not hasattr(g, "study_type"): g.study_type = "continuous" if not hasattr(g, "populate_rsid"): g.populate_rsid = False if not hasattr(g, "populate_eaf"): g.populate_eaf = False g.file = os.path.abspath(g.file) From 1291fdd5d8a742ff5b41df55c6e49e8a50d3b823 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 16 May 2026 23:29:08 +0400 Subject: [PATCH 50/85] removing study categories --- R/util.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/util.R b/R/util.R index e74c997..47d8531 100644 --- a/R/util.R +++ b/R/util.R @@ -164,10 +164,10 @@ convert_z_to_lbf <- function( effect_priors = c(continuous = 0.15, categorical = 0.2) ) { estimated_sd <- estimate_variance(se, eaf, sample_size) - if (study_type == study_categories$continuous) { - sd_prior <- effect_priors[study_categories$continuous] * estimated_sd + if (study_type == study_types$continuous) { + sd_prior <- effect_priors[study_types$continuous] * estimated_sd } else { - sd_prior <- effect_priors[study_categories$categorical] + sd_prior <- effect_priors[study_types$categorical] } r <- sd_prior^2 / (sd_prior^2 + se^2) lbf <- (log(1 - r) + (r * z^2)) / 2 From 600ac6c8b6da7addda1bccced4389e41b5d32c77 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 22 May 2026 09:40:39 +0400 Subject: [PATCH 51/85] updating output --- R/finemap.R | 4 +- R/graphs.R | 59 +++++++++++++++++++----------- R/gwas_comparisons.R | 7 +++- R/markdown/coloc.Rmd | 8 +++- R/markdown/compare_gwases.Rmd | 11 ++++-- R/markdown/disease_progression.Rmd | 24 ++++++++---- R/markdown/mr_for_qtls.Rmd | 9 +++++ snakemake/compare_gwases.smk | 4 +- snakemake/disease_progression.smk | 12 +++--- snakemake/rules/finemap_rule.smk | 2 +- 10 files changed, 96 insertions(+), 44 deletions(-) diff --git a/R/finemap.R b/R/finemap.R index c498dcb..8aaff8c 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -158,10 +158,12 @@ finemap_gwas <- function(gwas, }) } + number_of_simultaneous_jobs <- 5L + locus_results <- parallel::mclapply( seq_len(n_loci), process_one_locus, - mc.cores = 3L + mc.cores = number_of_simultaneous_jobs ) rm(locus_subsets, window_subsets); gc(verbose = FALSE) diff --git a/R/graphs.R b/R/graphs.R index 8937cb2..b6cef04 100644 --- a/R/graphs.R +++ b/R/graphs.R @@ -1,3 +1,16 @@ +# Compute dynamic plot dimensions (px) given the number of items on the y-axis. +# Returns list(width, height) in pixels capped at ggplot2's max (49 in * dpi). +dynamic_plot_dims <- function(n_items, dpi = 300, + px_per_item = 35L, + min_height_px = 800L, + base_width_px = 2400L) { + max_dim_px <- floor(49 * dpi) + height <- min(max(min_height_px, as.integer(n_items) * px_per_item), max_dim_px) + width <- min(base_width_px, max_dim_px) + list(width = width, height = height) +} + + #' forest_plot: produce a forest plot from a GWAS file #' @param table dataframe with the following columns: BETA, SE #' @param title title of the plot @@ -55,6 +68,8 @@ grouped_forest_plot <- function(table, title, group_column, output_file, p_value table$LL <- table$BETA - (1.96 * table$SE) table$UL <- table$BETA + (1.96 * table$SE) + n_groups <- length(unique(table[[group_column]])) + plot_thing <- ggplot2::ggplot(table, ggplot2::aes(y = if(!is.na(q_stat_column)) paste0(.data[[first_column_name]], "\n Q-stat=", .data[[q_stat_column]]) else .data[[first_column_name]], x = BETA, @@ -66,9 +81,11 @@ grouped_forest_plot <- function(table, title, group_column, output_file, p_value ggplot2::scale_colour_brewer(type="qual") + ggplot2::geom_vline(xintercept = 0) + ggplot2::geom_pointrange(cex = 1, fatten = 2, position=ggplot2::position_dodge(width = 0.5)) + - ggplot2::theme(legend.position = "bottom") + ggplot2::ggtitle(title) + - ggplot2::theme(plot.title = ggplot2::element_text(hjust = 0.5)) + ggplot2::theme(plot.title = ggplot2::element_text(hjust = 0.5)) + + ggplot2::guides(colour = ggplot2::guide_legend(ncol = 1), + fill = ggplot2::guide_legend(ncol = 1)) + + ggplot2::theme(legend.position = "right") p <- if (!is.na(p_value_column)) { plot_thing + ggplot2::geom_text(ggplot2::aes(label = paste("P=", signif(.data[[p_value_column]]), digits=3), group = .data[[group_column]]), position = ggplot2::position_dodge(width = 0.5)) @@ -78,17 +95,16 @@ grouped_forest_plot <- function(table, title, group_column, output_file, p_value plot_thing } + n_unique_y <- length(unique(table[[first_column_name]])) dpi <- 300 - max_dim_px <- floor(49 * dpi) - n_rows <- nrow(table) - forest_plot_height <- min(max(2000L, n_rows * 30L), max_dim_px) - plot_width <- min(2000L, max_dim_px) + dims <- dynamic_plot_dims(n_unique_y, dpi = dpi, px_per_item = 40L, min_height_px = 800L, + base_width_px = 2400L) ggplot2::ggsave( output_file, plot = p, - width = plot_width, - height = forest_plot_height, + width = dims$width, + height = dims$height, units = "px", dpi = dpi, limitsize = FALSE @@ -274,39 +290,40 @@ volcano_plot <- function(results_file, title="Volcano Plot of Results", label="E plot_heritability_contribution_per_ancestry <- function(heterogeneity_results_qj, output_file) { - # ggplot2 caps raster sizes at 50 in; convert px via dpi (default 300) → keep under limit dpi <- 300 - max_dim_in <- 49 - max_dim_px <- floor(max_dim_in * dpi) n_snps <- nrow(heterogeneity_results_qj) - # Vertical layout: SNP on y-axis — height scales with number of SNPs; width stays moderate - px_per_row <- 20L - graph_height <- min(max(800L, n_snps * px_per_row), max_dim_px) - graph_width <- min(2400L, max_dim_px) + dims <- dynamic_plot_dims(n_snps, dpi = dpi, px_per_item = 35L, min_height_px = 800L, + base_width_px = 2400L) qj_df <- as.data.frame(heterogeneity_results_qj, check.names = TRUE) snp_levels <- qj_df$SNP plot_data <- tidyr::pivot_longer(qj_df, cols = -SNP, names_to = "key", values_to = "value") plot_data$SNP <- factor(plot_data$SNP, levels = unique(snp_levels)) + y_text_size <- if (n_snps > 80) ggplot2::rel(0.5) + else if (n_snps > 40) ggplot2::rel(0.65) + else ggplot2::rel(0.85) + p <- ggplot2::ggplot(plot_data, ggplot2::aes(x = -log10(value), y = SNP)) + ggplot2::geom_point(ggplot2::aes(colour = key), size = 0.35) + - ggplot2::scale_colour_brewer(type = "qual", name = "Dataset") + + ggplot2::scale_colour_brewer(type = "qual", name = "GWAS") + + ggplot2::guides(colour = ggplot2::guide_legend(ncol = 1)) + ggplot2::labs( - x = expression(-log[10] * " (per-dataset contribution p-value)"), + x = expression(-log[10] * " (per-GWAS contribution p-value)"), y = "SNP" ) + - ggplot2::ggtitle("Contribution to heterogeneity score by dataset") + + ggplot2::ggtitle("Contribution to heterogeneity score by GWAS") + ggplot2::theme( plot.title = ggplot2::element_text(hjust = 0.5), - axis.text.y = ggplot2::element_text(size = ggplot2::rel(0.85)) + axis.text.y = ggplot2::element_text(size = y_text_size), + legend.position = "right" ) ggplot2::ggsave( output_file, plot = p, - width = graph_width, - height = graph_height, + width = dims$width, + height = dims$height, units = "px", dpi = dpi, limitsize = FALSE diff --git a/R/gwas_comparisons.R b/R/gwas_comparisons.R index 5fdbc7f..b9038d6 100644 --- a/R/gwas_comparisons.R +++ b/R/gwas_comparisons.R @@ -180,11 +180,14 @@ plot_snps_with_heterogeneity <- function(gwases_by_dataset, heterogeneity_resuts gwas[are_heterogeneous, ] })) + if ("dataset" %in% colnames(forest_plot_rows)) { + data.table::setnames(forest_plot_rows, "dataset", "GWAS") + } + grouped_forest_plot(forest_plot_rows, title = "Plot of SNPs That Are Heterogeneous", - group_column = "dataset", + group_column = "GWAS", output_file = heterogeneity_forest_plot_file, - #p_value_column = "Qpval" ?? ) } diff --git a/R/markdown/coloc.Rmd b/R/markdown/coloc.Rmd index aa39f13..a44b19b 100644 --- a/R/markdown/coloc.Rmd +++ b/R/markdown/coloc.Rmd @@ -36,6 +36,10 @@ coloc_tbl <- if (coloc_exist) { } ``` +### Input GWAS + +Lists the GWAS datasets that were standardised, clumped, and finemapped as input to the colocalization analysis, along with the ancestry used for LD reference. + ```{r echo = FALSE} if (length(traits_v) > 0L && identical(length(traits_v), length(ancestries_v))) { kv <- data.frame(trait_prefix = traits_v, ancestry = ancestries_v, stringsAsFactors = FALSE) @@ -45,6 +49,8 @@ if (length(traits_v) > 0L && identical(length(traits_v), length(ancestries_v))) ### Colocalization priors & overlap +Shows the prior probabilities and overlap window used to define signal pairs for BF–BF colocalization testing. + Overlapping finemapped signals were defined within ± **`r params$overlap_kb`** kb (pairs of credible-set leads on the same chromosome with lead positions within this window). | Setting | Value | @@ -86,7 +92,7 @@ if (!cross_ancestry && length(uniq_anc) == 1L) { ### Colocalization results -Overlapping signals were tested pairwise with `coloc::coloc.bf_bf()` using SuSiE-derived log-Bayes-factor columns from the fine-mapping outputs. +Pairwise BF–BF colocalization results for overlapping finemapped signals — PP.H4.abf > 0.8 indicates strong evidence that two traits share the same causal variant at that locus. ```{r echo = FALSE} if (!is.null(coloc_tbl) && nrow(coloc_tbl) > 0L) { diff --git a/R/markdown/compare_gwases.Rmd b/R/markdown/compare_gwases.Rmd index cedc4f2..52da9c0 100644 --- a/R/markdown/compare_gwases.Rmd +++ b/R/markdown/compare_gwases.Rmd @@ -8,6 +8,7 @@ output: ### LDSC Result Files +LD Score Regression (LDSC) estimates SNP heritability (h²) and genetic correlation (rg) between each pair of GWAS; each file below corresponds to one ancestry group. ```{r echo = F} ldsc_result_files <- Sys.glob(paste0(params$ldsc_directory, "*")) @@ -20,18 +21,22 @@ for (file in ldsc_result_files) { ### Plots Comparing Heterogeneity Across Significant SNPs -`r sprintf("![Plot comparing the heritability across clumped SNPs](%s)", params$heterogeneity_plot)` -`r sprintf("![Forest Plot Comparing clumped SNPs that fail heterogeniety score](%s)", params$heterogeneity_snp_comparison)` +The first plot shows the per-GWAS contribution to the Cochran's Q heterogeneity statistic for **all** clumped SNPs (one row per SNP). The second plot is a grouped forest plot of effect sizes for the **subset** of SNPs whose heterogeneity Q p-value passes Bonferroni correction (Q p-value < 0.05 / number of SNPs tested), i.e. only the significantly heterogeneous SNPs. + +`r sprintf("![Per-GWAS contribution to heterogeneity Q-statistic (all clumped SNPs)](%s)", params$heterogeneity_plot)` +`r sprintf("![Forest plot of effect sizes for SNPs with significant heterogeneity (Bonferroni-corrected)](%s)", params$heterogeneity_snp_comparison)` ### Expected vs Observed Results -This shows all expected vs. observed results run across all GWAS +Compares the expected replication rate (based on discovery effect sizes and replication standard errors) against the observed replication rate across all GWAS pairs — a discrepancy suggests winner's curse or population differences. + ```{r echo=F} expected_vs_observed <- vroom::vroom(params$results, show_col_types = F) knitr::kable(expected_vs_observed) ``` ### Table of Heterogeneity Results +Per-SNP Cochran's Q p-values and per-GWAS contribution p-values (Qj) for all clumped SNPs tested for heterogeneity of effect sizes across the input GWAS. ```{r echo=F} heterogeneity_results <- vroom::vroom(params$heterogeneity_scores, show_col_types = F) diff --git a/R/markdown/disease_progression.Rmd b/R/markdown/disease_progression.Rmd index f39afd4..095b892 100644 --- a/R/markdown/disease_progression.Rmd +++ b/R/markdown/disease_progression.Rmd @@ -10,10 +10,16 @@ library(vroom) library(dplyr, quietly=T) ``` -### Unadjusted Manhattan Plots of GWAS -`r sprintf("![Miami Plot Comparing Unadjusted GWAS at p = 0.0001](%s)", params$unadjuested_miami_plot)` +### Incident GWAS vs Collider Bias Adjusted GWAS + +Miami plot comparing the incident (discovery) GWAS against the collider-bias-adjusted subsequent GWAS — regions that diverge suggest variants whose apparent progression effect was driven by index-event bias. + +`r sprintf("![Miami Plot Comparing Incident GWAS and Collider Bias Adjusted GWAS](%s)", params$unadjuested_miami_plot)` ### Comparison of Collider Bias Results + +Summary of the collider bias correction model (e.g. SlopeHunter or CWLS): estimated correction slope, standard error, and significance — quantifies how strongly incidence confounds the subsequent GWAS effect estimates. + ```{r echo=F} collider_bias_results <- vroom::vroom(params$collider_bias_results, show_col_types = F) knitr::kable(collider_bias_results) @@ -21,9 +27,9 @@ knitr::kable(collider_bias_results) ### Expected vs Observed Results -This shows all expected vs. observed results when comparing the incident vs. subsequent GWASes +Compares the expected replication rate against observed replication between incident and subsequent GWASes, before and after collider-bias adjustment — improvement after correction indicates the adjustment is recovering true progression signals. -First table: Expected vs. Observed before adjusted for Collider Bias +First table: Expected vs. Observed before adjusting for Collider Bias Second table: Expected vs. Observed after adjusting for Collider Bias ```{r echo=F} @@ -34,12 +40,16 @@ adjusted_expected_vs_observed <- vroom::vroom(params$adjusted_expected_vs_observ knitr::kable(adjusted_expected_vs_observed) ``` -### Adjusted Manhattan Plots of GWAS -`r sprintf("![Miami Plot of Adjusted GWAS at p = 0.0001](%s)", params$adjusted_miami_plot)` +### Subsequent GWAS vs Collider Bias Adjusted GWAS + +Miami plot comparing the unadjusted subsequent GWAS against the collider-bias-adjusted subsequent GWAS — highlights which genomic regions are most affected by the correction. + +`r sprintf("![Miami Plot Comparing Subsequent GWAS and Collider Bias Adjusted GWAS](%s)", params$adjusted_miami_plot)` ### Comparing GWAS Results Across Top Hits in Subsequent GWAS -This is a comparison of all top hits returned from clumped subsequent unadjusted +Table of effect estimates (BETA, SE, P) for each clumped lead SNP from the subsequent GWAS, shown side-by-side across the incidence, subsequent, and adjusted GWASes — allows direct comparison of effect direction and magnitude before and after correction. + ```{r echo=F} clumped_snps <- data.table::fread(params$clumped_subsequent)$SNP columns <- c("SNP", "RSID", "BETA", "SE", "P") diff --git a/R/markdown/mr_for_qtls.Rmd b/R/markdown/mr_for_qtls.Rmd index 22b5b6b..2a4e1cc 100644 --- a/R/markdown/mr_for_qtls.Rmd +++ b/R/markdown/mr_for_qtls.Rmd @@ -13,9 +13,15 @@ options(scipen=1) ``` ### Volcano Plot of MR Results Against `r params$dataset` QTL Dataset + +Displays all MR exposure–outcome tests: x-axis is causal effect (BETA), y-axis is −log10 FDR-adjusted p-value — points above the significance line (red dashed) and labelled are exposures with evidence of a causal relationship with the outcome GWAS. + `r sprintf("![](%s)", params$volcano_plot)` ### Statistically Significant MR results (after FDR correction) + +Table of MR results that pass FDR < 0.05 and have a matching coloc result — these are the exposures with the strongest evidence of a causal effect on the outcome trait (up to top 20 shown). + Only showing top 20 results if there are more. ```{r echo=F} mr_results <- vroom::vroom(params$mr_results, show_col_types = F) |> @@ -26,6 +32,9 @@ knitr::kable(head(mr_results, 20)) ``` ### Coloc Results + +BF–BF colocalization results for each significant MR exposure — PP.H4.abf > 0.8 indicates that the MR signal and the QTL share the same causal variant, strengthening the causal inference beyond MR alone. + ```{r echo=F} coloc_results <- coloc_results |> dplyr::filter(exposure %in% mr_results$EXPOSURE) knitr::kable(coloc_results) diff --git a/snakemake/compare_gwases.smk b/snakemake/compare_gwases.smk index d380ccc..da5679e 100644 --- a/snakemake/compare_gwases.smk +++ b/snakemake/compare_gwases.smk @@ -16,8 +16,8 @@ validate_ancestries(ancestries) expected_vs_observed_results = RESULTS_DIR + "gwas_comparison/expected_vs_observed_outcomes.tsv" expected_vs_observed_variants = RESULTS_DIR + "gwas_comparison/expected_vs_observed_variants.tsv" heterogeneity_scores = RESULTS_DIR + "gwas_comparison/heterogeneity_scores.tsv" -heterogeneity_plot = RESULTS_DIR + "plots/ancestry_heterogeneity_plot.png" -heterogeneity_snp_comparison = RESULTS_DIR + "plots/ancestry_heterogeneity_snp_comparison.png" +heterogeneity_plot = RESULTS_DIR + "plots/snp_heterogeneity_plot.png" +heterogeneity_snp_comparison = RESULTS_DIR + "plots/snps_with_heterogeneity_forest_plot.png" results_file = RESULTS_DIR + "gwas_comparison/result_compare_gwases.html" std_file_pattern = standardised_gwas_name("{prefix}") diff --git a/snakemake/disease_progression.smk b/snakemake/disease_progression.smk index 04aaa93..8d405c5 100644 --- a/snakemake/disease_progression.smk +++ b/snakemake/disease_progression.smk @@ -65,14 +65,14 @@ rule collider_bias_correction: --collider_bias_adjusted_output {output.adjusted_results} """ -rule unadjusted_miami_plot: +rule incident_vs_adjusted_miami_plot: threads: 4 resources: mem = "16G", time = "02:00:00" input: first_gwas = incident.standardised_gwas, - second_gwas = subsequent.standardised_gwas, + second_gwas = adjusted_results output: unadjusted_miami_plot shell: """ @@ -80,16 +80,16 @@ rule unadjusted_miami_plot: --first_gwas {input.first_gwas} \ --second_gwas {input.second_gwas} \ --miami_filename {output} \ - --title "Comparing Incidence and Subsequent GWAS" + --title "Comparing Incident GWAS and Collider Bias Adjusted GWAS" """ -rule collider_bias_adjusted_miami_plot: +rule subsequent_vs_adjusted_miami_plot: threads: 4 resources: mem = "16G", time = "02:00:00" input: - first_gwas = incident.standardised_gwas, + first_gwas = subsequent.standardised_gwas, second_gwas = adjusted_results output: collider_bias_adjusted_miami_plot shell: @@ -98,7 +98,7 @@ rule collider_bias_adjusted_miami_plot: --first_gwas {input.first_gwas} \ --second_gwas {input.second_gwas} \ --miami_filename {output} \ - --title "Comparing Incidence and Collider Bias Adjusted Subsequent GWAS" + --title "Comparing Subsequent GWAS and Collider Bias Adjusted GWAS" """ rule compare_original_observed_vs_expected_gwas: diff --git a/snakemake/rules/finemap_rule.smk b/snakemake/rules/finemap_rule.smk index c62b1cd..9225df5 100644 --- a/snakemake/rules/finemap_rule.smk +++ b/snakemake/rules/finemap_rule.smk @@ -1,5 +1,5 @@ rule run_finemapping: - threads: 8 + threads: 6 resources: mem = "48G", time = "24:00:00" From 67d994f14de93ecdce357ef89175689cab53514c Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 22 May 2026 10:20:14 +0400 Subject: [PATCH 52/85] fixing smaller number of rows --- R/graphs.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/graphs.R b/R/graphs.R index b6cef04..3919494 100644 --- a/R/graphs.R +++ b/R/graphs.R @@ -5,7 +5,10 @@ dynamic_plot_dims <- function(n_items, dpi = 300, min_height_px = 800L, base_width_px = 2400L) { max_dim_px <- floor(49 * dpi) - height <- min(max(min_height_px, as.integer(n_items) * px_per_item), max_dim_px) + effective_px <- if (n_items <= 30) max(px_per_item, 80L) + else if (n_items <= 60) max(px_per_item, 55L) + else px_per_item + height <- min(max(min_height_px, as.integer(n_items) * effective_px), max_dim_px) width <- min(base_width_px, max_dim_px) list(width = width, height = height) } From e50516e41e5de0f24e060e395ffe63b30f0b1a7a Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sun, 24 May 2026 10:43:46 +0400 Subject: [PATCH 53/85] add locus zoom functionality --- DESCRIPTION | 2 + R/imports.R | 2 + R/locus_zoom.R | 180 +++++++++++++++++++++++++++++++++++++++ docker/Dockerfile | 2 +- docker/requirements.R | 6 ++ scripts/run_locus_zoom.R | 64 ++++++++++++++ snakemake/coloc.smk | 35 +++++++- 7 files changed, 288 insertions(+), 3 deletions(-) create mode 100644 R/locus_zoom.R create mode 100644 scripts/run_locus_zoom.R diff --git a/DESCRIPTION b/DESCRIPTION index 31b4d95..811a2b2 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -24,7 +24,9 @@ Imports: ggplot2, ggrepel, httr, + locuszoomr, MendelianRandomization, + patchwork, prettydoc, progressr, qqman, diff --git a/R/imports.R b/R/imports.R index 0a6da5d..f792b76 100644 --- a/R/imports.R +++ b/R/imports.R @@ -19,6 +19,8 @@ #' @rawNamespace import(Rfast, except = c(transpose, nth, is_integer, as_integer)) #' @import coloc #' @import ggplot2 +#' @import locuszoomr +#' @import patchwork #' @import ggrepel #' @import grDevices #' @import graphics diff --git a/R/locus_zoom.R b/R/locus_zoom.R new file mode 100644 index 0000000..1c4385d --- /dev/null +++ b/R/locus_zoom.R @@ -0,0 +1,180 @@ +#' Generate locus zoom plots for significant colocalization results +#' +#' For each coloc result with PP.H4.abf above the threshold, produces a stacked +#' locus zoom plot showing both traits at the shared locus, with LD computed +#' from the local 1000 Genomes reference panel. +#' +#' @param coloc_results_file path to coloc_results.tsv +#' @param gwas_files named character vector of standardised GWAS file paths, +#' names must match trait labels used in coloc_results (trait1/trait2 columns) +#' @param ancestry ancestry code for the LD reference panel (EUR, EAS, etc.) +#' @param ens_db Ensembl database object or package name for gene annotations +#' @param output_dir directory to write per-locus PNG files +#' @param pp_h4_threshold minimum PP.H4.abf to consider significant (default 0.8) +#' @param window_kb half-width of the region to plot in kb (default 500) +#' @export +locus_zoom_coloc <- function(coloc_results_file, + gwas_files, + ancestry, + ens_db, + output_dir, + pp_h4_threshold = 0.8, + window_kb = 500) { + + coloc_res <- vroom::vroom(coloc_results_file, show_col_types = FALSE) + + significant <- coloc_res[coloc_res$PP.H4.abf >= pp_h4_threshold, ] + if (nrow(significant) == 0) { + message("No coloc results above PP.H4.abf threshold of ", pp_h4_threshold) + if (!dir.exists(output_dir)) dir.create(output_dir, recursive = TRUE) + return(invisible(NULL)) + } + + if (!dir.exists(output_dir)) dir.create(output_dir, recursive = TRUE) + + gwas_cache <- list() + load_gwas <- function(trait) { + if (is.null(gwas_cache[[trait]])) { + gwas_cache[[trait]] <<- get_file_or_dataframe(gwas_files[[trait]]) + } + gwas_cache[[trait]] + } + + for (i in seq_len(nrow(significant))) { + row <- significant[i, ] + + chr <- as.integer(strsplit(row$locus1, "_")[[1]][1]) + bp1 <- as.numeric(strsplit(row$locus1, "_")[[1]][2]) + bp2 <- as.numeric(strsplit(row$locus2, "_")[[1]][2]) + center_bp <- round(mean(c(bp1, bp2))) + + window_bp <- window_kb * 1000 + xrange <- c(center_bp - window_bp, center_bp + window_bp) + + index_snp <- find_index_snp_from_ld_panel(chr, center_bp, window_bp, ancestry) + + plot_list <- list() + for (trait in c(row$trait1, row$trait2)) { + gwas <- load_gwas(trait) + p <- build_single_locus_plot(gwas, chr, xrange, ens_db, ancestry, + index_snp, trait) + if (!is.null(p)) plot_list[[trait]] <- p + } + + if (length(plot_list) < 2) { + message("Skipping locus ", row$locus1, " — insufficient GWAS data for plotting") + next + } + + hit_info <- "" + if (!is.na(row$hit1) && !is.na(row$hit2)) { + hit_info <- paste0("_", row$hit1, "_vs_", row$hit2) + } + + safe_name <- gsub("[^A-Za-z0-9._-]+", "_", paste0( + row$trait1, "_vs_", row$trait2, "_chr", chr, "_", center_bp, hit_info + )) + out_file <- file.path(output_dir, paste0(safe_name, ".png")) + + stacked <- patchwork::wrap_plots(plot_list, ncol = 1) + + ggplot2::ggsave(out_file, plot = stacked, + width = 10, height = 5 * length(plot_list), + dpi = 300, limitsize = FALSE) + message("Saved locus zoom plot: ", out_file) + } + + return(invisible(NULL)) +} + + +#' Find the top SNP near a locus center from the LD reference panel +#' @keywords internal +find_index_snp_from_ld_panel <- function(chr, center_bp, window_bp, ancestry) { + bfile <- file.path(thousand_genomes_dir, ancestry) + bim_file <- paste0(bfile, ".bim") + if (!file.exists(bim_file)) return(NULL) + + bim <- data.table::fread(bim_file, header = FALSE, + select = c(1, 2, 4), + col.names = c("CHR", "SNP", "BP")) + bim <- bim[CHR == chr & BP >= (center_bp - window_bp) & BP <= (center_bp + window_bp)] + if (nrow(bim) == 0) return(NULL) + + bim[which.min(abs(bim$BP - center_bp)), ]$SNP +} + + +#' Build a single ggplot2 locus zoom panel for one trait +#' @keywords internal +build_single_locus_plot <- function(gwas, chr, xrange, ens_db, ancestry, + index_snp, trait_label) { + gwas_sub <- gwas[!is.na(gwas$CHR) & gwas$CHR == chr & + !is.na(gwas$BP) & gwas$BP >= xrange[1] & gwas$BP <= xrange[2], ] + + if (nrow(gwas_sub) < 2) return(NULL) + + plot_df <- data.frame( + chrom = gwas_sub$CHR, + pos = gwas_sub$BP, + p = as.numeric(gwas_sub$P), + stringsAsFactors = FALSE + ) + if ("RSID" %in% colnames(gwas_sub)) { + plot_df$rsid <- gwas_sub$RSID + } else if ("SNP" %in% colnames(gwas_sub)) { + plot_df$rsid <- gwas_sub$SNP + } + if ("BETA" %in% colnames(gwas_sub)) plot_df$beta <- as.numeric(gwas_sub$BETA) + + plot_df <- plot_df[!is.na(plot_df$p) & plot_df$p > 0, ] + if (nrow(plot_df) < 2) return(NULL) + + ld_r2 <- compute_ld_r2_for_locus(plot_df$rsid, chr, ancestry, index_snp) + if (!is.null(ld_r2)) { + plot_df$r2 <- ld_r2[match(plot_df$rsid, names(ld_r2))] + } + + ld_arg <- if ("r2" %in% colnames(plot_df)) "r2" else NULL + + loc <- locuszoomr::locus( + data = plot_df, + seqname = as.character(chr), + xrange = xrange, + ens_db = ens_db, + chrom = "chrom", + pos = "pos", + p = "p", + labs = "rsid", + index_snp = index_snp, + LD = ld_arg + ) + + p <- locuszoomr::locus_ggplot(loc, labels = "index", + filter_gene_biotype = "protein_coding") + p <- p + ggplot2::ggtitle(trait_label) + p +} + + +#' Compute r2 relative to an index SNP using the local LD reference panel +#' @keywords internal +compute_ld_r2_for_locus <- function(rsids, chr, ancestry, index_snp) { + if (is.null(index_snp) || !index_snp %in% rsids) return(NULL) + + rsids_unique <- unique(rsids[!is.na(rsids) & nchar(rsids) > 0]) + if (length(rsids_unique) < 2) return(NULL) + + ld_result <- compute_ld_matrix(rsids_unique, chr, ancestry) + if (is.null(ld_result)) return(NULL) + + R <- ld_result$matrix + snps <- ld_result$snps + + if (!index_snp %in% snps) return(NULL) + + idx <- which(snps == index_snp) + r2_vec <- R[idx, ]^2 + names(r2_vec) <- snps + r2_vec +} diff --git a/docker/Dockerfile b/docker/Dockerfile index 2e7ed3d..b292139 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -53,6 +53,6 @@ RUN /bin/condabin/conda tos accept --override-channels --channel https://repo.an COPY docker/requirements.* docker/ RUN Rscript docker/requirements.R ENV R_LIBS_SITE=/usr/lib/R/site-library -RUN pip install -r docker/requirements.txt +RUN pip install --no-cache-dir -r docker/requirements.txt CMD ["/bin/bash"] diff --git a/docker/requirements.R b/docker/requirements.R index 3efba46..62e8f8e 100644 --- a/docker/requirements.R +++ b/docker/requirements.R @@ -7,4 +7,10 @@ install.packages(pkgs) install.packages("devtools") +if (!requireNamespace("BiocManager", quietly = TRUE)) + install.packages("BiocManager") +BiocManager::install(c("ensembldb", "EnsDb.Hsapiens.v75"), update = FALSE, ask = FALSE) + +install.packages(c("locuszoomr", "patchwork")) + remotes::install_github(c("MRCIEU/GeneHackman"), upgrade = "never") diff --git a/scripts/run_locus_zoom.R b/scripts/run_locus_zoom.R new file mode 100644 index 0000000..7249ce5 --- /dev/null +++ b/scripts/run_locus_zoom.R @@ -0,0 +1,64 @@ +source("load.R") +library(argparser, quietly = TRUE) + +parser <- arg_parser("Generate locus zoom plots for significant coloc results") + +parser <- add_argument(parser, "--coloc_results", + help = "Path to coloc_results.tsv", + type = "character" +) +parser <- add_argument(parser, "--gwas_files", + help = "Space-separated list of standardised GWAS file paths", + type = "character", + nargs = Inf +) +parser <- add_argument(parser, "--trait_names", + help = "Space-separated trait labels (same order as gwas_files)", + type = "character", + nargs = Inf +) +parser <- add_argument(parser, "--ancestry", + help = "Ancestry for LD reference panel (EUR, EAS, etc.)", + type = "character", + default = "EUR" +) +parser <- add_argument(parser, "--pp_h4_threshold", + help = "Minimum PP.H4.abf to plot (default 0.8)", + type = "numeric", + default = 0.8 +) +parser <- add_argument(parser, "--window_kb", + help = "Half-width of plotting window in kb (default 500)", + type = "numeric", + default = 500 +) +parser <- add_argument(parser, "--output_dir", + help = "Directory to write locus zoom PNGs", + type = "character" +) + +args <- parse_args(parser) + +gwas_files <- split_string_into_vector(args$gwas_files) +trait_names <- split_string_into_vector(args$trait_names) + +if (length(trait_names) != length(gwas_files)) { + stop("Number of trait names must match number of GWAS files") +} +names(gwas_files) <- trait_names + +if (!requireNamespace("EnsDb.Hsapiens.v75", quietly = TRUE)) { + stop("EnsDb.Hsapiens.v75 is required for gene annotations. ", + "Install with: BiocManager::install('EnsDb.Hsapiens.v75')") +} +ens_db <- "EnsDb.Hsapiens.v75" + +locus_zoom_coloc( + coloc_results_file = args$coloc_results, + gwas_files = gwas_files, + ancestry = args$ancestry, + ens_db = ens_db, + output_dir = args$output_dir, + pp_h4_threshold = args$pp_h4_threshold, + window_kb = args$window_kb +) diff --git a/snakemake/coloc.smk b/snakemake/coloc.smk index 3514d8c..40f8f7e 100644 --- a/snakemake/coloc.smk +++ b/snakemake/coloc.smk @@ -33,6 +33,11 @@ trait_names_str = " ".join(trait_names) coloc_results = RESULTS_DIR + "coloc/coloc_results.tsv" results_file = RESULTS_DIR + "coloc/result_coloc.html" +locus_zoom_dir = RESULTS_DIR + "coloc/locus_zoom/" +locus_zoom_done = RESULTS_DIR + "coloc/locus_zoom_complete.txt" + +gwas_files_str = " ".join([g.standardised_gwas for g in pipeline.gwases]) +first_ancestry = pipeline.gwases[0].ancestry trait_bar = "|".join(trait_names) ancestry_bar = "|".join([g.ancestry for g in pipeline.gwases]) @@ -42,7 +47,8 @@ rule all: expand(std_file_pattern, prefix=trait_names), expand(FINEMAP_COMPLETE_TXT_PATTERN, prefix=trait_names), coloc_results, - results_file + results_file, + locus_zoom_done include: "rules/standardise_rule.smk" include: "rules/clumping_rule.smk" @@ -101,8 +107,33 @@ rule create_results_file: --output_file "{output}" """ +rule run_locus_zoom: + resources: + mem = "8G", + time = "01:00:00" + input: + coloc_results = coloc_results, + gwas_files = [g.standardised_gwas for g in pipeline.gwases] + params: + gwas_files = gwas_files_str, + trait_names = trait_names_str, + ancestry = first_ancestry, + output_dir = locus_zoom_dir + output: + done = locus_zoom_done + shell: + """ + Rscript run_locus_zoom.R \ + --coloc_results {input.coloc_results} \ + --gwas_files {params.gwas_files} \ + --trait_names {params.trait_names} \ + --ancestry {params.ancestry} \ + --output_dir {params.output_dir} \ + && touch {output.done} + """ + onsuccess: - files = [g.finemap_dir for g in pipeline.gwases] + [coloc_results, results_file] + files = [g.finemap_dir for g in pipeline.gwases] + [coloc_results, results_file, locus_zoom_dir] onsuccess(pipeline_name, files, results_file, is_test=pipeline.is_test) onerror: From c3ccb3e20dfb85689b48a99c7edd5536f72f7589 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 25 May 2026 23:59:38 +0400 Subject: [PATCH 54/85] fixes for locus zoom --- R/locus_zoom.R | 137 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 91 insertions(+), 46 deletions(-) diff --git a/R/locus_zoom.R b/R/locus_zoom.R index 1c4385d..eb5bc2f 100644 --- a/R/locus_zoom.R +++ b/R/locus_zoom.R @@ -21,15 +21,33 @@ locus_zoom_coloc <- function(coloc_results_file, pp_h4_threshold = 0.8, window_kb = 500) { + message("=== Locus zoom plot generation ===") + message("Coloc results file: ", coloc_results_file) + message("GWAS files: ", paste(names(gwas_files), gwas_files, sep = " -> ", collapse = "\n ")) + message("Ancestry: ", ancestry) + message("PP.H4 threshold: ", pp_h4_threshold) + message("Window: ±", window_kb, " kb") + coloc_res <- vroom::vroom(coloc_results_file, show_col_types = FALSE) + message("Total coloc results: ", nrow(coloc_res)) significant <- coloc_res[coloc_res$PP.H4.abf >= pp_h4_threshold, ] + message("Significant results (PP.H4.abf >= ", pp_h4_threshold, "): ", nrow(significant)) + if (nrow(significant) == 0) { - message("No coloc results above PP.H4.abf threshold of ", pp_h4_threshold) + message("No coloc results above threshold — nothing to plot") if (!dir.exists(output_dir)) dir.create(output_dir, recursive = TRUE) return(invisible(NULL)) } + traits_in_results <- unique(c(significant$trait1, significant$trait2)) + missing_traits <- setdiff(traits_in_results, names(gwas_files)) + if (length(missing_traits) > 0) { + message("WARNING: Traits in coloc results but missing from gwas_files: ", + paste(missing_traits, collapse = ", ")) + message(" Available trait names: ", paste(names(gwas_files), collapse = ", ")) + } + if (!dir.exists(output_dir)) dir.create(output_dir, recursive = TRUE) gwas_cache <- list() @@ -42,46 +60,64 @@ locus_zoom_coloc <- function(coloc_results_file, for (i in seq_len(nrow(significant))) { row <- significant[i, ] - - chr <- as.integer(strsplit(row$locus1, "_")[[1]][1]) - bp1 <- as.numeric(strsplit(row$locus1, "_")[[1]][2]) - bp2 <- as.numeric(strsplit(row$locus2, "_")[[1]][2]) - center_bp <- round(mean(c(bp1, bp2))) - - window_bp <- window_kb * 1000 - xrange <- c(center_bp - window_bp, center_bp + window_bp) - - index_snp <- find_index_snp_from_ld_panel(chr, center_bp, window_bp, ancestry) - - plot_list <- list() - for (trait in c(row$trait1, row$trait2)) { - gwas <- load_gwas(trait) - p <- build_single_locus_plot(gwas, chr, xrange, ens_db, ancestry, - index_snp, trait) - if (!is.null(p)) plot_list[[trait]] <- p - } - - if (length(plot_list) < 2) { - message("Skipping locus ", row$locus1, " — insufficient GWAS data for plotting") - next - } - - hit_info <- "" - if (!is.na(row$hit1) && !is.na(row$hit2)) { - hit_info <- paste0("_", row$hit1, "_vs_", row$hit2) - } - - safe_name <- gsub("[^A-Za-z0-9._-]+", "_", paste0( - row$trait1, "_vs_", row$trait2, "_chr", chr, "_", center_bp, hit_info - )) - out_file <- file.path(output_dir, paste0(safe_name, ".png")) - - stacked <- patchwork::wrap_plots(plot_list, ncol = 1) - - ggplot2::ggsave(out_file, plot = stacked, - width = 10, height = 5 * length(plot_list), - dpi = 300, limitsize = FALSE) - message("Saved locus zoom plot: ", out_file) + locus_label <- paste0(row$trait1, " vs ", row$trait2, " at ", row$locus1, "/", row$locus2) + message("Processing locus ", i, "/", nrow(significant), ": ", locus_label) + + tryCatch({ + chr <- as.integer(strsplit(row$locus1, "_")[[1]][1]) + bp1 <- as.numeric(strsplit(row$locus1, "_")[[1]][2]) + bp2 <- as.numeric(strsplit(row$locus2, "_")[[1]][2]) + center_bp <- round(mean(c(bp1, bp2))) + + window_bp <- window_kb * 1000 + xrange <- c(center_bp - window_bp, center_bp + window_bp) + + index_snp <- find_index_snp_from_ld_panel(chr, center_bp, window_bp, ancestry) + message(" Region: chr", chr, ":", xrange[1], "-", xrange[2], + ", index SNP: ", if (is.null(index_snp)) "NONE" else index_snp) + + plot_list <- list() + for (trait in c(row$trait1, row$trait2)) { + if (!trait %in% names(gwas_files)) { + message(" WARNING: trait '", trait, "' not found in gwas_files. ", + "Available: ", paste(names(gwas_files), collapse = ", ")) + next + } + gwas <- load_gwas(trait) + message(" Building plot for '", trait, "' (", nrow(gwas), " rows in GWAS)") + p <- build_single_locus_plot(gwas, chr, xrange, ens_db, ancestry, + index_snp, trait) + if (!is.null(p)) { + plot_list[[trait]] <- p + } else { + message(" WARNING: build_single_locus_plot returned NULL for '", trait, "'") + } + } + + if (length(plot_list) < 2) { + message(" Skipping — only ", length(plot_list), " of 2 trait plots could be built") + next + } + + hit_info <- "" + if (!is.na(row$hit1) && !is.na(row$hit2)) { + hit_info <- paste0("_", row$hit1, "_vs_", row$hit2) + } + + safe_name <- gsub("[^A-Za-z0-9._-]+", "_", paste0( + row$trait1, "_vs_", row$trait2, "_chr", chr, "_", center_bp, hit_info + )) + out_file <- file.path(output_dir, paste0(safe_name, ".png")) + + stacked <- patchwork::wrap_plots(plot_list, ncol = 1) + + ggplot2::ggsave(out_file, plot = stacked, + width = 10, height = 5 * length(plot_list), + dpi = 300, limitsize = FALSE) + message(" Saved: ", out_file) + }, error = function(e) { + message(" ERROR processing locus ", locus_label, ": ", conditionMessage(e)) + }) } return(invisible(NULL)) @@ -109,14 +145,19 @@ find_index_snp_from_ld_panel <- function(chr, center_bp, window_bp, ancestry) { #' @keywords internal build_single_locus_plot <- function(gwas, chr, xrange, ens_db, ancestry, index_snp, trait_label) { - gwas_sub <- gwas[!is.na(gwas$CHR) & gwas$CHR == chr & - !is.na(gwas$BP) & gwas$BP >= xrange[1] & gwas$BP <= xrange[2], ] - + gwas_chr <- as.numeric(gwas$CHR) + gwas_bp <- as.numeric(gwas$BP) + keep <- !is.na(gwas_chr) & gwas_chr == chr & + !is.na(gwas_bp) & gwas_bp >= xrange[1] & gwas_bp <= xrange[2] + gwas_sub <- gwas[keep, ] + + message(" Subsetting chr", chr, " ", xrange[1], "-", xrange[2], + ": ", nrow(gwas_sub), " SNPs in window") if (nrow(gwas_sub) < 2) return(NULL) plot_df <- data.frame( - chrom = gwas_sub$CHR, - pos = gwas_sub$BP, + chrom = as.numeric(gwas_sub$CHR), + pos = as.numeric(gwas_sub$BP), p = as.numeric(gwas_sub$P), stringsAsFactors = FALSE ) @@ -128,11 +169,15 @@ build_single_locus_plot <- function(gwas, chr, xrange, ens_db, ancestry, if ("BETA" %in% colnames(gwas_sub)) plot_df$beta <- as.numeric(gwas_sub$BETA) plot_df <- plot_df[!is.na(plot_df$p) & plot_df$p > 0, ] + message(" After filtering NA/zero p-values: ", nrow(plot_df), " SNPs") if (nrow(plot_df) < 2) return(NULL) ld_r2 <- compute_ld_r2_for_locus(plot_df$rsid, chr, ancestry, index_snp) if (!is.null(ld_r2)) { plot_df$r2 <- ld_r2[match(plot_df$rsid, names(ld_r2))] + message(" LD r2 computed for ", sum(!is.na(plot_df$r2)), "/", nrow(plot_df), " SNPs") + } else { + message(" LD r2 computation returned NULL — plotting without LD colouring") } ld_arg <- if ("r2" %in% colnames(plot_df)) "r2" else NULL From bcc01af49d0be4b680be69a27990832fef28e9c3 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 28 May 2026 22:17:15 +0400 Subject: [PATCH 55/85] updating rule completion logic --- R/finemap.R | 21 ++++++++++++--------- R/locus_zoom.R | 17 ++++++++++++++++- docker/Dockerfile | 6 +++--- docker/requirements.R | 3 ++- scripts/run_finemap.R | 5 +++++ scripts/run_locus_zoom.R | 7 ++++++- snakemake/coloc.smk | 2 +- snakemake/rules/finemap_rule.smk | 5 +++-- 8 files changed, 48 insertions(+), 18 deletions(-) diff --git a/R/finemap.R b/R/finemap.R index 8aaff8c..99699b8 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -11,9 +11,10 @@ #' @param ancestry ancestry code matching 1000 Genomes panel prefix (EUR, EAS, AFR, AMR, SAS) #' @param default_n GWAS sample size when not inferrable from \code{gwas}; see #' @param output_finemap_dir directory to write one -#' \verb{__finemap.tsv.gz} per clumped locus. On successful completion, -#' writes \verb{finemap_complete.txt} (one line: expected lead count \verb{n}), -#' where \verb{n} is the number of clumped lead SNPs (rows in the clump file excluding the header). +#' \verb{__finemap.tsv.gz} per clumped locus. +#' @param completion_file path to a sentinel file written on successful completion +#' (one line: expected lead count). If NULL, defaults to +#' \verb{/finemap_complete.txt}. #' @param window_kb half-width of the fine-mapping window in kb (default 1000 = ±1 Mb) #' @param max_causal maximum number of causal signals per locus (SuSiE L, default 10) #' @param coverage credible set coverage (default 0.95) @@ -25,6 +26,7 @@ finemap_gwas <- function(gwas, ancestry, default_n, output_finemap_dir, + completion_file = NULL, window_kb = 1000, max_causal = 10, coverage = 0.95, @@ -47,7 +49,7 @@ finemap_gwas <- function(gwas, lead_snps <- data.table::fread(clumped_file, select = c("SNP", "CHR", "BP")) if (nrow(lead_snps) == 0) { message("No clumped SNPs found; no per-locus finemap files written.") - write_finemap_complete_marker(output_finemap_dir, 0L) + write_finemap_complete_marker(completion_file %||% file.path(output_finemap_dir, "finemap_complete.txt"), 0L) empty <- data.table::data.table( SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), Z = numeric(), CS = integer() @@ -198,17 +200,18 @@ finemap_gwas <- function(gwas, nrow(combined_lbf), "LD-matched SNPs with finemap stats,", "outputs in", output_finemap_dir)) - write_finemap_complete_marker(output_finemap_dir, nrow(lead_snps)) + write_finemap_complete_marker(completion_file %||% file.path(output_finemap_dir, "finemap_complete.txt"), nrow(lead_snps)) return(invisible(combined_lbf)) } -#' Write \verb{finemap_complete.txt} (one line: expected lead count) for Snakemake. +#' Write a completion sentinel file (one line: expected lead count) for Snakemake. #' @keywords internal -write_finemap_complete_marker <- function(output_finemap_dir, n_loci) { - complete_txt <- file.path(output_finemap_dir, "finemap_complete.txt") - writeLines(as.character(as.integer(n_loci)), complete_txt) +write_finemap_complete_marker <- function(completion_file, n_loci) { + dir_path <- dirname(completion_file) + if (!dir.exists(dir_path)) dir.create(dir_path, recursive = TRUE) + writeLines(as.character(as.integer(n_loci)), completion_file) } diff --git a/R/locus_zoom.R b/R/locus_zoom.R index eb5bc2f..a31916b 100644 --- a/R/locus_zoom.R +++ b/R/locus_zoom.R @@ -12,6 +12,8 @@ #' @param output_dir directory to write per-locus PNG files #' @param pp_h4_threshold minimum PP.H4.abf to consider significant (default 0.8) #' @param window_kb half-width of the region to plot in kb (default 500) +#' @param completion_file path to a sentinel file written on successful completion. +#' If NULL, no sentinel is written. #' @export locus_zoom_coloc <- function(coloc_results_file, gwas_files, @@ -19,7 +21,8 @@ locus_zoom_coloc <- function(coloc_results_file, ens_db, output_dir, pp_h4_threshold = 0.8, - window_kb = 500) { + window_kb = 500, + completion_file = NULL) { message("=== Locus zoom plot generation ===") message("Coloc results file: ", coloc_results_file) @@ -37,6 +40,7 @@ locus_zoom_coloc <- function(coloc_results_file, if (nrow(significant) == 0) { message("No coloc results above threshold — nothing to plot") if (!dir.exists(output_dir)) dir.create(output_dir, recursive = TRUE) + write_completion_file(completion_file, "0 loci plotted") return(invisible(NULL)) } @@ -120,10 +124,21 @@ locus_zoom_coloc <- function(coloc_results_file, }) } + write_completion_file(completion_file, paste(nrow(significant), "loci processed")) return(invisible(NULL)) } +#' Write a completion sentinel file for Snakemake +#' @keywords internal +write_completion_file <- function(completion_file, content = "done") { + if (is.null(completion_file)) return(invisible(NULL)) + dir_path <- dirname(completion_file) + if (!dir.exists(dir_path)) dir.create(dir_path, recursive = TRUE) + writeLines(content, completion_file) +} + + #' Find the top SNP near a locus center from the LD reference panel #' @keywords internal find_index_snp_from_ld_panel <- function(chr, center_bp, window_bp, ancestry) { diff --git a/docker/Dockerfile b/docker/Dockerfile index b292139..4cc0d2f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -50,9 +50,9 @@ RUN /bin/condabin/conda tos accept --override-channels --channel https://repo.an # tar -xf finemap_v1.4.2_x86_64.tgz && \ # mv finemap_v1.4.2_x86_64 /usr/local/bin/finemap -COPY docker/requirements.* docker/ -RUN Rscript docker/requirements.R +COPY . /home/GeneHackman +RUN Rscript /home/GeneHackman/docker/requirements.R ENV R_LIBS_SITE=/usr/lib/R/site-library -RUN pip install --no-cache-dir -r docker/requirements.txt +RUN pip install --no-cache-dir -r /home/GeneHackman/docker/requirements.txt CMD ["/bin/bash"] diff --git a/docker/requirements.R b/docker/requirements.R index 62e8f8e..b0a687e 100644 --- a/docker/requirements.R +++ b/docker/requirements.R @@ -7,10 +7,11 @@ install.packages(pkgs) install.packages("devtools") + if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install(c("ensembldb", "EnsDb.Hsapiens.v75"), update = FALSE, ask = FALSE) install.packages(c("locuszoomr", "patchwork")) -remotes::install_github(c("MRCIEU/GeneHackman"), upgrade = "never") +remotes::install_local("/home/GeneHackman", upgrade = "never") diff --git a/scripts/run_finemap.R b/scripts/run_finemap.R index b145ffe..45e70d4 100644 --- a/scripts/run_finemap.R +++ b/scripts/run_finemap.R @@ -43,6 +43,10 @@ parser <- add_argument(parser, "--min_abs_corr", type = "numeric", default = 0.5 ) +parser <- add_argument(parser, "--completion_file", + help = "Sentinel file written on successful completion", + type = "character" +) args <- parse_args(parser) if (!dir.exists(args$output_finemap_dir)) { @@ -54,6 +58,7 @@ invisible(finemap_gwas(gwas = args$gwas_filename, ancestry = args$ancestry, default_n = args$N, output_finemap_dir = args$output_finemap_dir, + completion_file = args$completion_file, window_kb = args$window_kb, max_causal = args$max_causal, coverage = args$coverage, diff --git a/scripts/run_locus_zoom.R b/scripts/run_locus_zoom.R index 7249ce5..3a4a9e8 100644 --- a/scripts/run_locus_zoom.R +++ b/scripts/run_locus_zoom.R @@ -36,6 +36,10 @@ parser <- add_argument(parser, "--output_dir", help = "Directory to write locus zoom PNGs", type = "character" ) +parser <- add_argument(parser, "--completion_file", + help = "Sentinel file written on successful completion", + type = "character" +) args <- parse_args(parser) @@ -60,5 +64,6 @@ locus_zoom_coloc( ens_db = ens_db, output_dir = args$output_dir, pp_h4_threshold = args$pp_h4_threshold, - window_kb = args$window_kb + window_kb = args$window_kb, + completion_file = args$completion_file ) diff --git a/snakemake/coloc.smk b/snakemake/coloc.smk index 40f8f7e..f6005f8 100644 --- a/snakemake/coloc.smk +++ b/snakemake/coloc.smk @@ -129,7 +129,7 @@ rule run_locus_zoom: --trait_names {params.trait_names} \ --ancestry {params.ancestry} \ --output_dir {params.output_dir} \ - && touch {output.done} + --completion_file {output.done} """ onsuccess: diff --git a/snakemake/rules/finemap_rule.smk b/snakemake/rules/finemap_rule.smk index 9225df5..b7051ef 100644 --- a/snakemake/rules/finemap_rule.smk +++ b/snakemake/rules/finemap_rule.smk @@ -9,6 +9,7 @@ rule run_finemapping: params: ancestry = lambda wildcards: getattr(pipeline, wildcards.prefix).ancestry, n = lambda wildcards: getattr(pipeline, wildcards.prefix).N, + finemap_dir = lambda wildcards: getattr(pipeline, wildcards.prefix).finemap_dir, window_kb = finemap_window_kb, max_causal = finemap_max_causal, coverage = finemap_coverage, @@ -17,13 +18,13 @@ rule run_finemapping: finemap_complete = FINEMAP_COMPLETE_TXT_PATTERN shell: """ - OUT_FINEMAP="$(dirname {output.finemap_complete})" Rscript run_finemap.R \ --gwas_filename {input.gwas} \ --clumped_filename {input.clumped_file} \ --ancestry {params.ancestry} \ --N {params.n} \ - --output_finemap_dir "$OUT_FINEMAP" \ + --output_finemap_dir {params.finemap_dir} \ + --completion_file {output.finemap_complete} \ --window_kb {params.window_kb} \ --max_causal {params.max_causal} \ --coverage {params.coverage} \ From f35474ad597439049ff7ecf35b85b69dab047405 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 29 May 2026 16:03:41 +0400 Subject: [PATCH 56/85] Fixing finemap issues --- DESCRIPTION | 1 - R/finemap.R | 4 ++-- docker/requirements.R | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 811a2b2..7132944 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -31,7 +31,6 @@ Imports: progressr, qqman, rlang, - Rfast, R.utils, rmarkdown, shiny, diff --git a/R/finemap.R b/R/finemap.R index 99699b8..407d395 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -49,7 +49,7 @@ finemap_gwas <- function(gwas, lead_snps <- data.table::fread(clumped_file, select = c("SNP", "CHR", "BP")) if (nrow(lead_snps) == 0) { message("No clumped SNPs found; no per-locus finemap files written.") - write_finemap_complete_marker(completion_file %||% file.path(output_finemap_dir, "finemap_complete.txt"), 0L) + write_finemap_complete_marker(completion_file, 0L) empty <- data.table::data.table( SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), Z = numeric(), CS = integer() @@ -200,7 +200,7 @@ finemap_gwas <- function(gwas, nrow(combined_lbf), "LD-matched SNPs with finemap stats,", "outputs in", output_finemap_dir)) - write_finemap_complete_marker(completion_file %||% file.path(output_finemap_dir, "finemap_complete.txt"), nrow(lead_snps)) + write_finemap_complete_marker(completion_file, nrow(lead_snps)) return(invisible(combined_lbf)) } diff --git a/docker/requirements.R b/docker/requirements.R index b0a687e..9546a56 100644 --- a/docker/requirements.R +++ b/docker/requirements.R @@ -2,7 +2,7 @@ options(repos = c(CRAN = "https://cloud.r-project.org")) .libPaths(c("/usr/lib/R/site-library", .libPaths())) install.packages("remotes") -pkgs <- c("argparser", "gmp", "corrplot", "broom", "conflicted", "nloptr", "Cairo", "susieR") +pkgs <- c("argparser", "gmp", "corrplot", "broom", "conflicted", "nloptr", "Cairo", "Rfast", "susieR") install.packages(pkgs) install.packages("devtools") From 94ee6af2506b802b0e719d064bc13ea338ed8054 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 29 May 2026 21:38:17 +0400 Subject: [PATCH 57/85] fixing docker version resolution --- snakemake/util/common.smk | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index 7463850..ecb0d54 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -25,12 +25,13 @@ def dict_to_namespace(obj): def get_docker_container(): version = DOCKER_VERSION if DOCKER_VERSION else None - with open("DESCRIPTION") as file: - for line in file: - match = re.match(r"^Version: ([\w\.]+)", line) - if match: - version = match.group(1) - break + if not version: + with open("DESCRIPTION") as file: + for line in file: + match = re.match(r"^Version: ([\w\.]+)", line) + if match: + version = match.group(1) + break singularity_dir = os.getenv("SINGULARITY_DIR", ".snakemake/singularity").rstrip("/\\") sif_file = os.path.join(singularity_dir, f"genehackman_{version}.sif") From ff2c2f33b3e0b285db7aa51bf0f7114a2e63b808 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 29 May 2026 21:48:38 +0400 Subject: [PATCH 58/85] simplifying docker image bullshit --- snakemake/util/common.smk | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/snakemake/util/common.smk b/snakemake/util/common.smk index ecb0d54..5121e9c 100644 --- a/snakemake/util/common.smk +++ b/snakemake/util/common.smk @@ -24,23 +24,14 @@ def dict_to_namespace(obj): def get_docker_container(): - version = DOCKER_VERSION if DOCKER_VERSION else None + version = DOCKER_VERSION if not version: - with open("DESCRIPTION") as file: - for line in file: - match = re.match(r"^Version: ([\w\.]+)", line) - if match: - version = match.group(1) - break - - singularity_dir = os.getenv("SINGULARITY_DIR", ".snakemake/singularity").rstrip("/\\") - sif_file = os.path.join(singularity_dir, f"genehackman_{version}.sif") - if os.path.isfile(sif_file): - return sif_file - elif version: - return f"{docker_repo}:{version}" - else: - return f"{docker_repo}:latest" + raise ValueError("Error: DOCKER_VERSION must be set in .env") + pipeline_genomic_dir = os.path.join(PIPELINE_DATA_DIR.rstrip("/"), "genomic_data", "pipeline") + sif_path = os.path.join(pipeline_genomic_dir, f"genehackman_{version}.sif") + if not os.path.isfile(sif_path): + raise ValueError(f"Error: SIF file not found: {sif_path}") + return sif_path def parse_pipeline_input(pipeline_includes_clumping=False, allow_flip_false=False): From 89e7f96feb5924ebcf8a6f53160ae5b502a2dc88 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 30 May 2026 08:34:27 +0400 Subject: [PATCH 59/85] Hard failing locus zoom --- R/locus_zoom.R | 50 +++++++++++++++++++++++++++++----------- scripts/run_locus_zoom.R | 2 ++ 2 files changed, 39 insertions(+), 13 deletions(-) diff --git a/R/locus_zoom.R b/R/locus_zoom.R index a31916b..2f37417 100644 --- a/R/locus_zoom.R +++ b/R/locus_zoom.R @@ -46,10 +46,14 @@ locus_zoom_coloc <- function(coloc_results_file, traits_in_results <- unique(c(significant$trait1, significant$trait2)) missing_traits <- setdiff(traits_in_results, names(gwas_files)) + if (length(missing_traits) > 0) { - message("WARNING: Traits in coloc results but missing from gwas_files: ", - paste(missing_traits, collapse = ", ")) - message(" Available trait names: ", paste(names(gwas_files), collapse = ", ")) + stop( + "Traits in coloc results but missing from gwas_files: ", + paste(missing_traits, collapse = ", "), + ". Available: ", + paste(names(gwas_files), collapse = ", ") + ) } if (!dir.exists(output_dir)) dir.create(output_dir, recursive = TRUE) @@ -62,12 +66,14 @@ locus_zoom_coloc <- function(coloc_results_file, gwas_cache[[trait]] } + failures <- character() + for (i in seq_len(nrow(significant))) { row <- significant[i, ] locus_label <- paste0(row$trait1, " vs ", row$trait2, " at ", row$locus1, "/", row$locus2) message("Processing locus ", i, "/", nrow(significant), ": ", locus_label) - tryCatch({ + failure_msg <- tryCatch({ chr <- as.integer(strsplit(row$locus1, "_")[[1]][1]) bp1 <- as.numeric(strsplit(row$locus1, "_")[[1]][2]) bp2 <- as.numeric(strsplit(row$locus2, "_")[[1]][2]) @@ -82,11 +88,6 @@ locus_zoom_coloc <- function(coloc_results_file, plot_list <- list() for (trait in c(row$trait1, row$trait2)) { - if (!trait %in% names(gwas_files)) { - message(" WARNING: trait '", trait, "' not found in gwas_files. ", - "Available: ", paste(names(gwas_files), collapse = ", ")) - next - } gwas <- load_gwas(trait) message(" Building plot for '", trait, "' (", nrow(gwas), " rows in GWAS)") p <- build_single_locus_plot(gwas, chr, xrange, ens_db, ancestry, @@ -99,8 +100,12 @@ locus_zoom_coloc <- function(coloc_results_file, } if (length(plot_list) < 2) { - message(" Skipping — only ", length(plot_list), " of 2 trait plots could be built") - next + return(paste0( + locus_label, + ": only ", + length(plot_list), + " of 2 trait plots could be built" + )) } hit_info <- "" @@ -119,12 +124,31 @@ locus_zoom_coloc <- function(coloc_results_file, width = 10, height = 5 * length(plot_list), dpi = 300, limitsize = FALSE) message(" Saved: ", out_file) + NULL }, error = function(e) { - message(" ERROR processing locus ", locus_label, ": ", conditionMessage(e)) + paste0(locus_label, ": ", conditionMessage(e)) }) + + if (!is.null(failure_msg)) { + failures <- c(failures, failure_msg) + } + } + + if (length(failures) > 0) { + message("Locus zoom failed for ", length(failures), " of ", nrow(significant), " locus/loci:") + for (msg in failures) { + message(" - ", msg) + } + stop( + "Locus zoom failed for ", + length(failures), + " of ", + nrow(significant), + " locus/loci. See log messages above." + ) } - write_completion_file(completion_file, paste(nrow(significant), "loci processed")) + write_completion_file(completion_file, paste(nrow(significant), "loci plotted")) return(invisible(NULL)) } diff --git a/scripts/run_locus_zoom.R b/scripts/run_locus_zoom.R index 3a4a9e8..df1a1ca 100644 --- a/scripts/run_locus_zoom.R +++ b/scripts/run_locus_zoom.R @@ -55,6 +55,8 @@ if (!requireNamespace("EnsDb.Hsapiens.v75", quietly = TRUE)) { stop("EnsDb.Hsapiens.v75 is required for gene annotations. ", "Install with: BiocManager::install('EnsDb.Hsapiens.v75')") } +# locuszoomr requires the EnsDb package to be loaded (not just installed); see ?locuszoomr::locus +suppressPackageStartupMessages(library(EnsDb.Hsapiens.v75)) ens_db <- "EnsDb.Hsapiens.v75" locus_zoom_coloc( From f01584d21b2e556da1d7af081f92902c4c28f8bc Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 30 May 2026 08:36:53 +0400 Subject: [PATCH 60/85] changing locus zoom copletion dir --- R/locus_zoom.R | 4 +--- snakemake/coloc.smk | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/R/locus_zoom.R b/R/locus_zoom.R index 2f37417..2d70785 100644 --- a/R/locus_zoom.R +++ b/R/locus_zoom.R @@ -36,10 +36,10 @@ locus_zoom_coloc <- function(coloc_results_file, significant <- coloc_res[coloc_res$PP.H4.abf >= pp_h4_threshold, ] message("Significant results (PP.H4.abf >= ", pp_h4_threshold, "): ", nrow(significant)) + if (!dir.exists(output_dir)) dir.create(output_dir, recursive = TRUE) if (nrow(significant) == 0) { message("No coloc results above threshold — nothing to plot") - if (!dir.exists(output_dir)) dir.create(output_dir, recursive = TRUE) write_completion_file(completion_file, "0 loci plotted") return(invisible(NULL)) } @@ -56,8 +56,6 @@ locus_zoom_coloc <- function(coloc_results_file, ) } - if (!dir.exists(output_dir)) dir.create(output_dir, recursive = TRUE) - gwas_cache <- list() load_gwas <- function(trait) { if (is.null(gwas_cache[[trait]])) { diff --git a/snakemake/coloc.smk b/snakemake/coloc.smk index f6005f8..86ff39b 100644 --- a/snakemake/coloc.smk +++ b/snakemake/coloc.smk @@ -34,7 +34,7 @@ trait_names_str = " ".join(trait_names) coloc_results = RESULTS_DIR + "coloc/coloc_results.tsv" results_file = RESULTS_DIR + "coloc/result_coloc.html" locus_zoom_dir = RESULTS_DIR + "coloc/locus_zoom/" -locus_zoom_done = RESULTS_DIR + "coloc/locus_zoom_complete.txt" +locus_zoom_done = RESULTS_DIR + "coloc/locus_zoom/locus_zoom_complete.txt" gwas_files_str = " ".join([g.standardised_gwas for g in pipeline.gwases]) first_ancestry = pipeline.gwases[0].ancestry From 725fbe39a8935b6630c352fd788bd4d95fe5a659 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 30 May 2026 08:47:21 +0400 Subject: [PATCH 61/85] Adding headers --- R/locus_zoom.R | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/R/locus_zoom.R b/R/locus_zoom.R index 2d70785..14367d5 100644 --- a/R/locus_zoom.R +++ b/R/locus_zoom.R @@ -116,7 +116,13 @@ locus_zoom_coloc <- function(coloc_results_file, )) out_file <- file.path(output_dir, paste0(safe_name, ".png")) - stacked <- patchwork::wrap_plots(plot_list, ncol = 1) + stacked <- patchwork::wrap_plots(plot_list, ncol = 1, guides = "collect") + + patchwork::plot_annotation( + title = locus_label, + theme = ggplot2::theme( + plot.title = ggplot2::element_text(face = "bold", size = 12, hjust = 0.5) + ) + ) ggplot2::ggsave(out_file, plot = stacked, width = 10, height = 5 * length(plot_list), @@ -234,7 +240,14 @@ build_single_locus_plot <- function(gwas, chr, xrange, ens_db, ancestry, p <- locuszoomr::locus_ggplot(loc, labels = "index", filter_gene_biotype = "protein_coding") - p <- p + ggplot2::ggtitle(trait_label) + # patchwork tags (not ggtitle) stay visible when panels are stacked + p <- p + + ggplot2::labs(tag = trait_label) + + ggplot2::theme( + plot.tag = ggplot2::element_text(size = 14, face = "bold", hjust = 0), + plot.tag.position = c(0, 1), + plot.margin = ggplot2::margin(t = 20, r = 5, b = 5, l = 5, unit = "pt") + ) p } From 2ad339313046592e9dfd70314f21872cd7301ecc Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 30 May 2026 08:53:18 +0400 Subject: [PATCH 62/85] adding headers for real this time --- R/locus_zoom.R | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/R/locus_zoom.R b/R/locus_zoom.R index 14367d5..618c783 100644 --- a/R/locus_zoom.R +++ b/R/locus_zoom.R @@ -81,13 +81,9 @@ locus_zoom_coloc <- function(coloc_results_file, xrange <- c(center_bp - window_bp, center_bp + window_bp) index_snp <- find_index_snp_from_ld_panel(chr, center_bp, window_bp, ancestry) - message(" Region: chr", chr, ":", xrange[1], "-", xrange[2], - ", index SNP: ", if (is.null(index_snp)) "NONE" else index_snp) - plot_list <- list() for (trait in c(row$trait1, row$trait2)) { gwas <- load_gwas(trait) - message(" Building plot for '", trait, "' (", nrow(gwas), " rows in GWAS)") p <- build_single_locus_plot(gwas, chr, xrange, ens_db, ancestry, index_snp, trait) if (!is.null(p)) { @@ -127,7 +123,6 @@ locus_zoom_coloc <- function(coloc_results_file, ggplot2::ggsave(out_file, plot = stacked, width = 10, height = 5 * length(plot_list), dpi = 300, limitsize = FALSE) - message(" Saved: ", out_file) NULL }, error = function(e) { paste0(locus_label, ": ", conditionMessage(e)) @@ -194,8 +189,6 @@ build_single_locus_plot <- function(gwas, chr, xrange, ens_db, ancestry, !is.na(gwas_bp) & gwas_bp >= xrange[1] & gwas_bp <= xrange[2] gwas_sub <- gwas[keep, ] - message(" Subsetting chr", chr, " ", xrange[1], "-", xrange[2], - ": ", nrow(gwas_sub), " SNPs in window") if (nrow(gwas_sub) < 2) return(NULL) plot_df <- data.frame( @@ -212,13 +205,11 @@ build_single_locus_plot <- function(gwas, chr, xrange, ens_db, ancestry, if ("BETA" %in% colnames(gwas_sub)) plot_df$beta <- as.numeric(gwas_sub$BETA) plot_df <- plot_df[!is.na(plot_df$p) & plot_df$p > 0, ] - message(" After filtering NA/zero p-values: ", nrow(plot_df), " SNPs") if (nrow(plot_df) < 2) return(NULL) ld_r2 <- compute_ld_r2_for_locus(plot_df$rsid, chr, ancestry, index_snp) if (!is.null(ld_r2)) { plot_df$r2 <- ld_r2[match(plot_df$rsid, names(ld_r2))] - message(" LD r2 computed for ", sum(!is.na(plot_df$r2)), "/", nrow(plot_df), " SNPs") } else { message(" LD r2 computation returned NULL — plotting without LD colouring") } @@ -240,13 +231,13 @@ build_single_locus_plot <- function(gwas, chr, xrange, ens_db, ancestry, p <- locuszoomr::locus_ggplot(loc, labels = "index", filter_gene_biotype = "protein_coding") - # patchwork tags (not ggtitle) stay visible when panels are stacked - p <- p + - ggplot2::labs(tag = trait_label) + - ggplot2::theme( - plot.tag = ggplot2::element_text(size = 14, face = "bold", hjust = 0), - plot.tag.position = c(0, 1), - plot.margin = ggplot2::margin(t = 20, r = 5, b = 5, l = 5, unit = "pt") + # locus_ggplot returns an assembled patchwork; wrap it and add a visible title + p <- patchwork::wrap_elements(p) + + patchwork::plot_annotation( + title = trait_label, + theme = ggplot2::theme( + plot.title = ggplot2::element_text(size = 14, face = "bold", hjust = 0) + ) ) p } From 17bf1a4ebf8246684fcb17160d004f91c5f69d55 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 30 May 2026 08:57:05 +0400 Subject: [PATCH 63/85] adding some spacing from headers --- R/locus_zoom.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/R/locus_zoom.R b/R/locus_zoom.R index 618c783..be50a75 100644 --- a/R/locus_zoom.R +++ b/R/locus_zoom.R @@ -236,7 +236,9 @@ build_single_locus_plot <- function(gwas, chr, xrange, ens_db, ancestry, patchwork::plot_annotation( title = trait_label, theme = ggplot2::theme( - plot.title = ggplot2::element_text(size = 14, face = "bold", hjust = 0) + plot.title = ggplot2::element_text( + size = 14, face = "bold", hjust = 0, margin = ggplot2::margin(b = 10) + ) ) ) p From ed08585dee09f14f6eed45b8643d1dbe2d285bd5 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Tue, 2 Jun 2026 10:51:44 +0100 Subject: [PATCH 64/85] Reworking parallelism calculations for local run --- .env_example | 3 ++- PLATFORM_SETUP.md | 2 +- R/constants.R | 27 ++++++++++++++++++++++++--- R/data_conversions.R | 19 ++++++++++++++----- R/finemap.R | 22 ++++++++++++++++++---- R/markdown/coloc.Rmd | 4 ++-- R/markdown/mr_for_qtls.Rmd | 8 +++++--- README.md | 2 +- snakemake/PIPELINES.md | 10 +++++----- snakemake/coloc.smk | 2 +- snakemake/rules/finemap_rule.smk | 2 +- tests/testthat/test_coloc_bf.R | 2 +- 12 files changed, 75 insertions(+), 28 deletions(-) diff --git a/.env_example b/.env_example index b536e2f..f4f5e82 100644 --- a/.env_example +++ b/.env_example @@ -1,8 +1,9 @@ +#Mandatory variables PIPELINE_DATA_DIR= PROJECT_DIR= +DOCKER_VERSION=1.1.0 # Optional variables QTL_DATA_DIR= -DOCKER_VERSION=1.0.0 SNAKEMAKE_PROFILE=snakemake/profiles/local/ APPTAINER_MODULE=apptainer/1.3.1-ksax SLURM_PARTITION= diff --git a/PLATFORM_SETUP.md b/PLATFORM_SETUP.md index dd7d884..db43aa1 100644 --- a/PLATFORM_SETUP.md +++ b/PLATFORM_SETUP.md @@ -69,7 +69,7 @@ The published image may be **linux/amd64**. Use Lima with **Rosetta / x86 Linux* ## Slurm (HPC) -The repo ships Slurm-oriented profiles (paths and partitions are **Bristol / MRC IEU–oriented**; **edit** them for your site): +The repo ships Slurm-oriented profiles (paths and partitions are **Bristol / MRC IEU-oriented**; **edit** them for your site): | Profile directory | Notes | |-------------------|--------| diff --git a/R/constants.R b/R/constants.R index 4953821..d38ad7b 100644 --- a/R/constants.R +++ b/R/constants.R @@ -6,6 +6,27 @@ get_env_var <- function(env_var_name, default_value=NULL) { } } +# Slurm allocated memory (MB) when running under Slurm, else total system memory. +available_memory <- function() { + slurm <- Sys.getenv("SLURM_MEM_PER_NODE", "") + if (nzchar(slurm)) { + v <- suppressWarnings(as.numeric(slurm)) + if (!is.na(v) && v > 0) return(v) + } + os <- Sys.info()[["sysname"]] + if (os == "Linux") { + meminfo <- tryCatch(readLines("/proc/meminfo", n = 1), error = function(e) "") + kb <- suppressWarnings(as.numeric(gsub("[^0-9]", "", meminfo))) + if (!is.na(kb) && kb > 0) return(kb / 1024) + } else if (os == "Darwin") { + raw <- tryCatch(system2("sysctl", "-n hw.memsize", stdout = TRUE, stderr = FALSE), + error = function(e) "") + bytes <- suppressWarnings(as.numeric(raw)) + if (!is.na(bytes) && bytes > 0) return(bytes / (1024^2)) + } + return(NA) +} + # Slurm node CPUs when SLURM_* env is set, else parallel::detectCores(). available_cpus <- function() { slurm <- Sys.getenv("SLURM_CPUS_ON_NODE", "") @@ -17,12 +38,13 @@ available_cpus <- function() { } dc <- suppressWarnings(parallel::detectCores(logical = TRUE)) if (is.na(dc) || dc < 1L) { - 1L + return(1L) } else { - as.integer(dc) + return(as.integer(dc)) } } + .strip_path <- function(x) { sub("/+$", "", trimws(x)) } @@ -38,7 +60,6 @@ if (nzchar(project_dir)) { pipeline_data_dir <- sub("/+$", "", get_env_var("PIPELINE_DATA_DIR", "")) qtl_directory <- sub("/+$", "", get_env_var("QTL_DATA_DIR", "")) -number_of_cpus_available <- available_cpus() is_on_cluster <- nzchar(Sys.getenv("SLURM_JOB_ID")) || nzchar(Sys.getenv("PBS_JOBID")) genomic_data_dir <- file.path(pipeline_data_dir, "genomic_data") diff --git a/R/data_conversions.R b/R/data_conversions.R index e98ff59..cdc5045 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -149,15 +149,13 @@ populate_partial_rsids <- function(gwas) { } - - populate_full_rsids <- function(gwas) { build <- rsid_builds$GRCh37 dbsnp_dir <- file.path(genomic_data_dir, "dbsnp") if (!build %in% rsid_builds) stop(paste("Error: invalid rsid build option:", build)) - parallel_cores <- if(is_on_cluster) number_of_cpus_available else 1 - message(paste0("Using ", parallel_cores, " cores for full RSID population")) + parallel_chr_population <- calculate_parallelism() + message(paste0("Using ", parallel_chr_population, " cores for full RSID population")) gwas <- data.table::as.data.table(gwas) gwas <- chrpos_to_rsid( @@ -170,8 +168,19 @@ populate_full_rsids <- function(gwas) { dbsnp_dir = dbsnp_dir, build = build, alt_rsids = FALSE, - parallel_cores=parallel_cores + parallel_cores=parallel_chr_population ) gwas <- tibble::as_tibble(gwas) return(gwas) } + +calculate_parallelism <- function() { + available_memory <- available_memory() + available_cpus <- available_cpus() + if(is_on_cluster) { + return(available_cpus - 1L) + } else { + memory_needed_per_chr <- 8000 + return(floor(available_memory / memory_needed_per_chr)) + } +} \ No newline at end of file diff --git a/R/finemap.R b/R/finemap.R index 407d395..0a81266 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -160,12 +160,10 @@ finemap_gwas <- function(gwas, }) } - number_of_simultaneous_jobs <- 5L - locus_results <- parallel::mclapply( seq_len(n_loci), process_one_locus, - mc.cores = number_of_simultaneous_jobs + mc.cores = calculate_parallelism() ) rm(locus_subsets, window_subsets); gc(verbose = FALSE) @@ -231,7 +229,7 @@ compute_ld_matrix <- function(rsids, chr, ancestry) { cmd <- paste( "plink1.9", - "--threads", as.character(number_of_cpus_available), + "--threads", as.character(available_cpus()), "--bfile", bfile, "--chr", chr, "--extract", snp_file, @@ -389,3 +387,19 @@ run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, } result } + +calculate_parallelism <- function() { + available_memory <- available_memory() + available_cpus <- available_cpus() + if(is_on_cluster) { + return(available_cpus - 1L) + } else { + memory_needed_per_finemap <- 6000 + minumum_cpus <- floor(available_memory / memory_needed_per_finemap) + if (minumum_cpus > available_cpus) { + return(available_cpus) + } else { + return(minumum_cpus) + } + } +} \ No newline at end of file diff --git a/R/markdown/coloc.Rmd b/R/markdown/coloc.Rmd index a44b19b..818a54d 100644 --- a/R/markdown/coloc.Rmd +++ b/R/markdown/coloc.Rmd @@ -49,7 +49,7 @@ if (length(traits_v) > 0L && identical(length(traits_v), length(ancestries_v))) ### Colocalization priors & overlap -Shows the prior probabilities and overlap window used to define signal pairs for BF–BF colocalization testing. +Shows the prior probabilities and overlap window used to define signal pairs for BF-BF colocalization testing. Overlapping finemapped signals were defined within ± **`r params$overlap_kb`** kb (pairs of credible-set leads on the same chromosome with lead positions within this window). @@ -92,7 +92,7 @@ if (!cross_ancestry && length(uniq_anc) == 1L) { ### Colocalization results -Pairwise BF–BF colocalization results for overlapping finemapped signals — PP.H4.abf > 0.8 indicates strong evidence that two traits share the same causal variant at that locus. +Pairwise BF-BF colocalization results for overlapping finemapped signals — PP.H4.abf > 0.8 indicates strong evidence that two traits share the same causal variant at that locus. ```{r echo = FALSE} if (!is.null(coloc_tbl) && nrow(coloc_tbl) > 0L) { diff --git a/R/markdown/mr_for_qtls.Rmd b/R/markdown/mr_for_qtls.Rmd index 2a4e1cc..8f6ebf9 100644 --- a/R/markdown/mr_for_qtls.Rmd +++ b/R/markdown/mr_for_qtls.Rmd @@ -14,7 +14,7 @@ options(scipen=1) ### Volcano Plot of MR Results Against `r params$dataset` QTL Dataset -Displays all MR exposure–outcome tests: x-axis is causal effect (BETA), y-axis is −log10 FDR-adjusted p-value — points above the significance line (red dashed) and labelled are exposures with evidence of a causal relationship with the outcome GWAS. +Displays all MR exposure-outcome tests: x-axis is causal effect (BETA), y-axis is −log10 FDR-adjusted p-value — points above the significance line (red dashed) and labelled are exposures with evidence of a causal relationship with the outcome GWAS. `r sprintf("![](%s)", params$volcano_plot)` @@ -33,10 +33,12 @@ knitr::kable(head(mr_results, 20)) ### Coloc Results -BF–BF colocalization results for each significant MR exposure — PP.H4.abf > 0.8 indicates that the MR signal and the QTL share the same causal variant, strengthening the causal inference beyond MR alone. +Colocalization results for each significant MR exposure — PP.H4.abf > 0.8 indicates that the MR signal and the QTL share the same causal variant, strengthening the causal inference beyond MR alone. ```{r echo=F} -coloc_results <- coloc_results |> dplyr::filter(exposure %in% mr_results$EXPOSURE) +coloc_results <- coloc_results |> + dplyr::filter(exposure %in% mr_results$EXPOSURE) |> + dplyr::arrange(desc(PP.H4.abf)) knitr::kable(coloc_results) ``` diff --git a/README.md b/README.md index 5d6edfe..6576681 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ There are **six** Snakemake pipelines (grouped as two tables of three). Each pip |----------------------------------------------------------------------------|----------------------------------------------------------------------------|---------------------------------------------------------------------------| | Runs **standardise_gwas**, clumping, and **SuSiE** fine-mapping on one outcome GWAS | Same **standardise** + **clump** + **SuSiE** path for **each** input GWAS (one or more) | Same **standardise** + **clump** + **SuSiE** for **≥2** GWASes (required for colocalization) | | Runs Mendelian randomization vs a chosen QTL panel (e.g. eQTLGen, MetaBrain) | Per-locus fine-mapping using summary stats and **ancestry-matched LD** (PLINK reference); outputs credible sets and LBF columns per locus | **Pairwise** `coloc::coloc.bf_bf` on overlapping finemapped signals (same chr, leads within ±`overlap_kb` kb) across all trait pairs | -| Volcano plot of MR results; **BF–BF coloc** for exposures that pass MR FDR | Finemap-only: no MR or coloc between traits (use when you only need SuSiE outputs) | Full coloc table + **HTML report** (`result_coloc.html`), including a disclaimer when ancestries differ between GWASes | +| Volcano plot of MR results; **BF-BF coloc** for exposures that pass MR FDR | Finemap-only: no MR or coloc between traits (use when you only need SuSiE outputs) | Full coloc table + **HTML report** (`result_coloc.html`), including a disclaimer when ancestries differ between GWASes | | Requires **QTL_DATA_DIR** (see `.env_example`) for QTL files | Each GWAS must declare **ancestry** (for LD) | Configurable `finemap` and `coloc` priors/overlap; see [PIPELINES.md](snakemake/PIPELINES.md) | ## Onboarding diff --git a/snakemake/PIPELINES.md b/snakemake/PIPELINES.md index fee4e46..2cdd71f 100644 --- a/snakemake/PIPELINES.md +++ b/snakemake/PIPELINES.md @@ -94,11 +94,11 @@ Used by **finemap**, **coloc**, and **qtl_mr**. If the block is missing, default | Snakemake file | Example template | One-line role | | ------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | [`standardise_gwas.smk`](standardise_gwas.smk) | [`input_templates/standardise_gwases.yaml`](input_templates/standardise_gwases.yaml) | Harmonise GWAS columns and builds only (no PLINK). | -| [`compare_gwases.smk`](compare_gwases.smk) | [`input_templates/compare_gwases.yaml`](input_templates/compare_gwases.yaml) | Standardise → clump → heterogeneity / LDSC / expected–observed plots. | +| [`compare_gwases.smk`](compare_gwases.smk) | [`input_templates/compare_gwases.yaml`](input_templates/compare_gwases.yaml) | Standardise → clump → heterogeneity / LDSC / expected-observed plots. | | [`disease_progression.smk`](disease_progression.smk) | [`input_templates/disease_progression.yaml`](input_templates/disease_progression.yaml) | Incident vs subsequent GWAS: collider bias, plots, comparisons. | | [`finemap.smk`](finemap.smk) | [`input_templates/finemap.yaml`](input_templates/finemap.yaml) | Standardise → clump → SuSiE RSS fine-mapping per GWAS (no pairwise coloc). | | [`coloc.smk`](coloc.smk) | [`input_templates/coloc.yaml`](input_templates/coloc.yaml) | Same as finemap prep for ≥2 GWAS, then pairwise `coloc::coloc.bf_bf` + HTML report. | -| [`qtl_mr.smk`](qtl_mr.smk) | [`input_templates/qtl_mr.yaml`](input_templates/qtl_mr.yaml) | One GWAS: MR vs a QTL panel, volcano plot, BF–BF coloc for MR hits. | +| [`qtl_mr.smk`](qtl_mr.smk) | [`input_templates/qtl_mr.yaml`](input_templates/qtl_mr.yaml) | One GWAS: MR vs a QTL panel, volcano plot, BF-BF coloc for MR hits. | --- @@ -130,7 +130,7 @@ Harmonisation only (`snakemake/standardise_gwas.smk`). ## `finemap` -SuSiE fine-mapping per GWAS — no MR, no trait–trait coloc. +SuSiE fine-mapping per GWAS — no MR, no trait-trait coloc. - **GWAS**: one or more; each needs `**ancestry`** (LD reference for clumping and LD matrix for `susieR::susie_rss`). - **Root**: `plink_clump_arguments`, optional `populate_rsid` / `populate_eaf`, optional `**finemap`** block (see above). Example template sets `window_kb` to `1000`. @@ -140,7 +140,7 @@ SuSiE fine-mapping per GWAS — no MR, no trait–trait coloc. ## `coloc` -Standardise → clump → finemap for **all** input GWAS, then **pairwise** BF–BF colocalisation between overlapping finemapped signals (`coloc::coloc.bf_bf`). +Standardise → clump → finemap for **all** input GWAS, then **pairwise** BF-BF colocalisation between overlapping finemapped signals (`coloc::coloc.bf_bf`). - **GWAS**: **at least two**; each needs `**ancestry`**. - **Root**: `plink_clump_arguments`, optional `populate_rsid` / `populate_eaf`, optional `**finemap`** and `**coloc**` blocks (see tables above). @@ -163,7 +163,7 @@ Standardise → clump → finemap for **all** input GWAS, then **pairwise** BF - **metabrain**: `basalganglia`, `cerebellum`, `cortex`, `hippocampus`, `spinalcord` - **eqtlgen**: `cis` (trans may be added later) -Pipeline flow: standardise → clump → finemap → MR → volcano → BF–BF coloc on significant MR results (GWAS LBF vs QTL LBF from `convert_z_to_lbf`). +Pipeline flow: standardise → clump → finemap → MR → volcano → BF-BF coloc on significant MR results (GWAS LBF vs QTL LBF from `convert_z_to_lbf`). --- diff --git a/snakemake/coloc.smk b/snakemake/coloc.smk index 86ff39b..32ea00a 100644 --- a/snakemake/coloc.smk +++ b/snakemake/coloc.smk @@ -109,7 +109,7 @@ rule create_results_file: rule run_locus_zoom: resources: - mem = "8G", + mem = "12G", time = "01:00:00" input: coloc_results = coloc_results, diff --git a/snakemake/rules/finemap_rule.smk b/snakemake/rules/finemap_rule.smk index b7051ef..a2c6287 100644 --- a/snakemake/rules/finemap_rule.smk +++ b/snakemake/rules/finemap_rule.smk @@ -1,5 +1,5 @@ rule run_finemapping: - threads: 6 + threads: 8 resources: mem = "48G", time = "24:00:00" diff --git a/tests/testthat/test_coloc_bf.R b/tests/testthat/test_coloc_bf.R index 8326d70..979d21d 100644 --- a/tests/testthat/test_coloc_bf.R +++ b/tests/testthat/test_coloc_bf.R @@ -1,4 +1,4 @@ -# Tests for R/coloc_bf.R (BF–BF colocalization on finemapped loci) +# Tests for R/coloc_bf.R (BF-BF colocalization on finemapped loci) min_locus_tbl <- function(snps, lbf1, lbf2 = NULL, cs = 1L) { n <- length(snps) From 392eef807fe04beca99bf01945bb18f7ddd412fa Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Tue, 2 Jun 2026 12:40:50 +0100 Subject: [PATCH 65/85] fixing building apptainer --- .env_example | 2 +- README.md | 42 ++++++++++++++++++++++++++++++++++++------ run_pipeline.sh | 21 +++++++++++---------- 3 files changed, 48 insertions(+), 17 deletions(-) diff --git a/.env_example b/.env_example index f4f5e82..936836f 100644 --- a/.env_example +++ b/.env_example @@ -5,6 +5,6 @@ DOCKER_VERSION=1.1.0 # Optional variables QTL_DATA_DIR= SNAKEMAKE_PROFILE=snakemake/profiles/local/ -APPTAINER_MODULE=apptainer/1.3.1-ksax +APPTAINER_MODULE= SLURM_PARTITION= SLURM_ACCOUNT= diff --git a/README.md b/README.md index 6576681..65296a4 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ There are **six** Snakemake pipelines (grouped as two tables of three). Each pip ### 1. Clone the repository into your personal space on BlueCrystal 4 `git clone git@github.com:MRCIEU/GeneHackman.git && cd GeneHackman` -### 2. Ensure you [have conda installed and initialised before activating](https://www.acrc.bris.ac.uk/protected/hpc-docs/software/python_conda.html) +### 2. Ensure you [have conda installed and initialised before activating](https://www.anaconda.com/docs/getting-started/miniconda/install/overview) ```conda env create --file environment.yml``` @@ -84,11 +84,41 @@ Alternatives if you don’t set **`QTL_DATA_DIR`** directly: keep the same direc ### 4. Populate `.env` and `input.yaml` files -`cp .env_example .env` -* Set **`PROJECT_DIR`** to the root folder for this analysis; the pipeline uses **`PROJECT_DIR/data/`** for inputs (GWAS, clumps, …) and **`PROJECT_DIR/results/`** for outputs (finemap, coloc, plots, …). -* Set **`PIPELINE_DATA_DIR`** to the path where you unpacked **`genehackman`** (see §3). -* Set **`QTL_DATA_DIR`** to the path where you unpacked **`genehackman-qtl`** if you run **`qtl_mr`** (can be left empty otherwise; see [.env_example](.env_example)). -* **Container cache:** If there is no pre-built `genehackman_.sif` under `PIPELINE_DATA_DIR`, Snakemake pulls the `docker://` image and caches the SIF under `.snakemake/singularity` by default. Set **`GENEHACKMAN_SINGULARITY_PREFIX`** in `.env` to use another directory (e.g. scratch). Running `snakemake` without `./run_pipeline.sh`? Pass `--singularity-prefix /path` or add `singularity-prefix:` under **`snakemake/profiles/`** in **`config.yaml`** for the profile you use (paths are relative to the repo root). +Copy the template and edit paths for your machine: + +```bash +cp .env_example .env +``` + +Variables match [.env_example](.env_example): + +**Mandatory** + +| Variable | Purpose | +|----------|---------| +| **`PROJECT_DIR`** | Root folder for this analysis. The pipeline uses **`PROJECT_DIR/data/`** for inputs (GWAS, clumps, …) and **`PROJECT_DIR/results/`** for outputs (finemap, coloc, plots, …). | +| **`PIPELINE_DATA_DIR`** | Path where you unpacked the shared **`genehackman`** reference data (see §3). Also used for the Apptainer image: **`PIPELINE_DATA_DIR/genomic_data/pipeline/genehackman_.sif`**. If that SIF is missing and the directory is writable, `run_pipeline.sh` builds it from `docker://mrcieu/genehackman:`. | +| **`DOCKER_VERSION`** | Docker/Apptainer image tag (e.g. `1.1.0` or `develop`). Must match the SIF filename and the image you intend to run. | + +**Optional** + +| Variable | Purpose | +|----------|---------| +| **`QTL_DATA_DIR`** | Path to **`genehackman-qtl`** data if you run **`qtl_mr`**. Leave empty for other pipelines. You can instead place QTL data under **`PIPELINE_DATA_DIR/qtl_datasets/`** (see [PLATFORM_SETUP.md](PLATFORM_SETUP.md)). | +| **`SNAKEMAKE_PROFILE`** | Snakemake profile directory. Default in `.env_example`: **`snakemake/profiles/local/`** (local Apptainer). On HPC use e.g. **`snakemake/profiles/slurm/`**. | +| **`APPTAINER_MODULE`** | Environment module name to load Apptainer/Singularity before running on HPC (only used when the profile is not `local`). | +| **`SLURM_PARTITION`** | Slurm partition for cluster jobs. If unset, `run_pipeline.sh` tries to detect one from `sinfo`, else uses **`compute`**. | +| **`SLURM_ACCOUNT`** | Slurm account for cluster jobs. If unset, `run_pipeline.sh` tries to infer it from `sacctmgr`. | + +Example `.env`: + +```bash +PROJECT_DIR=/path/to/my_project +PIPELINE_DATA_DIR=/path/to/my_pipeline_data/ +DOCKER_VERSION=1.1.0 +QTL_DATA_DIR=/path/to/my_qtl_data/ +SNAKEMAKE_PROFILE=snakemake/profiles/local/ +``` **`input.yaml`** diff --git a/run_pipeline.sh b/run_pipeline.sh index 91bdf43..a2e188a 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -24,7 +24,7 @@ fi if [ -f .env ] then - export $(cat .env | xargs) + export $(grep -vE '^[[:space:]]*#' .env | xargs) else echo "Error: .env file missing" exit 1 @@ -50,10 +50,10 @@ if [[ -z "${SLURM_PARTITION:-}" ]]; then fi export SLURM_PARTITION -if [[ -z "${SLURM_ACCOUNT:-}" ]]; then +if [[ -z "${SLURM_ACCOUNT:-}" ]] && command -v sacctmgr >/dev/null 2>&1; then export USER=$(whoami) - export ACCOUNT_ID=$(sacctmgr show user withassoc format=account where user=$USER | grep '[0-9]' | head -n1) - export SLURM_ACCOUNT="$ACCOUNT_ID" + export ACCOUNT_ID=$(sacctmgr show user withassoc format=account where user="$USER" | grep '[0-9]' | head -n1) + export SLURM_ACCOUNT="${ACCOUNT_ID:-}" fi export GENEHACKMAN_EXTRA_SINGULARITY_BINDS="" @@ -102,11 +102,13 @@ PIPELINE_GENOMIC_DIR="${PIPELINE_GENOMIC_DIR%/}" SIF_PATH="${PIPELINE_GENOMIC_DIR}/${SIF_NAME}" echo "SIF_PATH: ${SIF_PATH}" -if [[ -f "${SIF_PATH}" ]] || [[ -w "${PIPELINE_GENOMIC_DIR}" ]] ; then - mkdir -p "${PIPELINE_GENOMIC_DIR}" -else - SIF_PATH=".snakemake/singularity/${SIF_NAME}" -fi +if [[ ! -f "${SIF_PATH}" ]]; then + if ! mkdir -p "${PIPELINE_GENOMIC_DIR}" 2>/dev/null || [[ ! -w "${PIPELINE_GENOMIC_DIR}" ]]; then + SIF_PATH=".snakemake/singularity/${SIF_NAME}" + echo "Note: caching SIF under ${SIF_PATH} (${PIPELINE_GENOMIC_DIR} missing or not writable)" + fi +fi +mkdir -p "$(dirname "${SIF_PATH}")" SINGULARITY_DOCKER_REFERENCE="docker://mrcieu/genehackman:${GENEHACKMAN_VERSION}" @@ -123,7 +125,6 @@ fi if [[ ! -f "${SIF_PATH}" ]]; then echo "SIF file not found: ${SIF_PATH}" - mkdir -p "${PIPELINE_GENOMIC_DIR}" echo "Building container with singularity from: ${SINGULARITY_DOCKER_REFERENCE}" if [[ "${#SINGULARITY_BUILD_ARCH_ARGS[@]}" -gt 0 ]]; then echo "(host is ARM: using singularity build ${SINGULARITY_BUILD_ARCH_ARGS[*]} for amd64 image)" From 9769fa392ef1e845aa2f3e0d60b1bb5ec5fd6962 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Tue, 2 Jun 2026 17:29:29 +0100 Subject: [PATCH 66/85] Adding max of 10 CPUs for parallel rsid population --- R/constants.R | 6 +++++- R/data_conversions.R | 3 ++- R/liftover.R | 9 +++++---- docker/Dockerfile | 2 ++ run_pipeline.sh | 1 + 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/R/constants.R b/R/constants.R index d38ad7b..f2ccb74 100644 --- a/R/constants.R +++ b/R/constants.R @@ -66,7 +66,11 @@ genomic_data_dir <- file.path(pipeline_data_dir, "genomic_data") # Must match snakemake/util/constants.smk THOUSAND_GENOMES_DIR (used by clumping + LD). thousand_genomes_dir <- file.path(genomic_data_dir, "1000genomes", "b37_dbsnp156") -liftover_dir <- file.path(genomic_data_dir, "liftover") +liftover_chain_dir <- file.path(genomic_data_dir, "liftover") +liftover_binary <- Sys.which("liftOver") +if (!nzchar(liftover_binary)) { + liftover_binary <- "/usr/local/bin/liftOver" +} pqtl_top_hits_dir <- file.path(qtl_directory, "pqtl") metabrain_top_hits_dir <- file.path(qtl_directory, "metabrain", "top_hits") metabrain_gwas_dir <- file.path(qtl_directory, "metabrain", "gwas") diff --git a/R/data_conversions.R b/R/data_conversions.R index cdc5045..285ef7c 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -181,6 +181,7 @@ calculate_parallelism <- function() { return(available_cpus - 1L) } else { memory_needed_per_chr <- 8000 - return(floor(available_memory / memory_needed_per_chr)) + minumum_cpus <- floor(available_memory / memory_needed_per_chr) + return(min(10L, minumum_cpus)) } } \ No newline at end of file diff --git a/R/liftover.R b/R/liftover.R index bbc81cf..4d8a0b0 100644 --- a/R/liftover.R +++ b/R/liftover.R @@ -92,12 +92,13 @@ run_system <- function(command, wait = TRUE, intern = FALSE, } run_liftover <- function(bed_file_input, bed_file_output, input_build, output_build, unmapped) { - liftover_binary <- file.path(liftover_dir, "liftOver") liftover_conversion <- available_liftover_conversions[[paste0(input_build, output_build)]] - - chain_file <- file.path(liftover_dir, liftover_conversion) + chain_file <- file.path(liftover_chain_dir, liftover_conversion) liftover_command <- paste(liftover_binary, bed_file_input, chain_file, bed_file_output, unmapped) - run_system(liftover_command, wait = TRUE) + status <- run_system(liftover_command, wait = TRUE) + if (!is.null(status) && status != 0) { + stop("liftOver failed (exit code ", status, "): ", liftover_command) + } } diff --git a/docker/Dockerfile b/docker/Dockerfile index 4cc0d2f..10a697c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -23,6 +23,8 @@ RUN apt update && \ unzip /tmp/plink.zip -d /usr/local/bin/ && \ rm /tmp/plink.zip && \ ln -s /usr/local/bin/plink /usr/local/bin/plink1.9 && \ + wget https://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/liftOver -O /usr/local/bin/liftOver && \ + chmod +x /usr/local/bin/liftOver && \ wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh && \ chmod +x miniconda.sh && \ ./miniconda.sh -b -f -p /bin && \ diff --git a/run_pipeline.sh b/run_pipeline.sh index a2e188a..ce3a757 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -3,6 +3,7 @@ set -e export GRPC_VERBOSITY=NONE export GRPC_TRACE= +export APPTAINER_SILENT=true if [[ $# -lt 1 || "$1" =~ "help" ]] ; then echo """ From 78482d9a14196c0497c6e757663271b50393639e Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Tue, 2 Jun 2026 17:30:15 +0100 Subject: [PATCH 67/85] Adding max of 10 CPUs for parallel finemapping --- R/finemap.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/finemap.R b/R/finemap.R index 0a81266..96e2382 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -396,6 +396,7 @@ calculate_parallelism <- function() { } else { memory_needed_per_finemap <- 6000 minumum_cpus <- floor(available_memory / memory_needed_per_finemap) + minimum_cpus <- min(10L, minumum_cpus) if (minumum_cpus > available_cpus) { return(available_cpus) } else { From 3879a04ed8e61267fb25637db2e442365f59b196 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Tue, 2 Jun 2026 17:40:23 +0100 Subject: [PATCH 68/85] fix max parallel with rsid --- R/data_conversions.R | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/R/data_conversions.R b/R/data_conversions.R index 285ef7c..722ea54 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -175,13 +175,15 @@ populate_full_rsids <- function(gwas) { } calculate_parallelism <- function() { - available_memory <- available_memory() - available_cpus <- available_cpus() + cpus <- available_cpus() + mem <- available_memory() if(is_on_cluster) { - return(available_cpus - 1L) + return(min(10L, cpus - 1L)) + } + by_mem <- if (!is.na(mem) && mem > 0) { + floor(mem / 8000) } else { - memory_needed_per_chr <- 8000 - minumum_cpus <- floor(available_memory / memory_needed_per_chr) - return(min(10L, minumum_cpus)) + cpus } + max(1L, min(10L, by_mem, cpus)) } \ No newline at end of file From 2e305fff6e7ed245506ad5ad1c28f37188379de3 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 3 Jun 2026 10:33:03 +0100 Subject: [PATCH 69/85] better calculate_parallelism --- R/constants.R | 11 +++++++++++ R/data_conversions.R | 14 -------------- R/finemap.R | 19 +------------------ 3 files changed, 12 insertions(+), 32 deletions(-) diff --git a/R/constants.R b/R/constants.R index f2ccb74..590fee8 100644 --- a/R/constants.R +++ b/R/constants.R @@ -44,6 +44,17 @@ available_cpus <- function() { } } +# Shared by RSID population, finemap, etc. (load.R sources all R/*.R; keep only this definition). +calculate_parallelism <- function(max_workers = 10L, memory_per_worker_mb = 8000L) { + cpus <- available_cpus() + mem <- available_memory() + by_mem <- if (!is.na(mem) && mem > 0) { + floor(mem / memory_per_worker_mb) + } else { + cpus + } + max(1L, min(max_workers, by_mem, cpus)) +} .strip_path <- function(x) { sub("/+$", "", trimws(x)) diff --git a/R/data_conversions.R b/R/data_conversions.R index 722ea54..8f0bff5 100644 --- a/R/data_conversions.R +++ b/R/data_conversions.R @@ -172,18 +172,4 @@ populate_full_rsids <- function(gwas) { ) gwas <- tibble::as_tibble(gwas) return(gwas) -} - -calculate_parallelism <- function() { - cpus <- available_cpus() - mem <- available_memory() - if(is_on_cluster) { - return(min(10L, cpus - 1L)) - } - by_mem <- if (!is.na(mem) && mem > 0) { - floor(mem / 8000) - } else { - cpus - } - max(1L, min(10L, by_mem, cpus)) } \ No newline at end of file diff --git a/R/finemap.R b/R/finemap.R index 96e2382..1329d57 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -163,7 +163,7 @@ finemap_gwas <- function(gwas, locus_results <- parallel::mclapply( seq_len(n_loci), process_one_locus, - mc.cores = calculate_parallelism() + mc.cores = calculate_parallelism(memory_per_worker_mb = 6000L) ) rm(locus_subsets, window_subsets); gc(verbose = FALSE) @@ -386,21 +386,4 @@ run_susie_for_locus <- function(z_scores, ld_matrix, snp_info, n, lead_snp, result <- cbind(result, lbf_wide) } result -} - -calculate_parallelism <- function() { - available_memory <- available_memory() - available_cpus <- available_cpus() - if(is_on_cluster) { - return(available_cpus - 1L) - } else { - memory_needed_per_finemap <- 6000 - minumum_cpus <- floor(available_memory / memory_needed_per_finemap) - minimum_cpus <- min(10L, minumum_cpus) - if (minumum_cpus > available_cpus) { - return(available_cpus) - } else { - return(minumum_cpus) - } - } } \ No newline at end of file From ae8f100eeac6b1b70993ea11034728ff97f802b4 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 3 Jun 2026 12:23:50 +0100 Subject: [PATCH 70/85] No more creating Rplot.pdf files --- DESCRIPTION | 2 +- PLATFORM_SETUP.md | 2 +- R/constants.R | 8 ++++---- R/finemap.R | 2 +- README.md | 4 ++-- scripts/load.R | 3 +++ 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 7132944..757f75c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: GeneHackman Title: R package to support pipelines to run analyses on genetic summary statistics on the University of Bristol HPC -Version: 1.0.0 +Version: 1.1.0 Authors@R: person("Andrew", "Elmore", , "andrew.elmore@bristol.ac.uk", role = c("aut", "cre"), comment = c(ORCID = "0000-0003-0292-447X")) diff --git a/PLATFORM_SETUP.md b/PLATFORM_SETUP.md index db43aa1..3d69dd2 100644 --- a/PLATFORM_SETUP.md +++ b/PLATFORM_SETUP.md @@ -44,7 +44,7 @@ If the workflow pulls a `docker://` image, Snakemake caches the `.sif` under **` - Set **`SINGULARITY_DIR`** in `.env` to a **writable** location **inside the Linux VM** (commonly a path under that VM’s **`/tmp`**, e.g. `/tmp/genehackman_snakemake_singularity`), or to native VM disk — not only a bind-mounted folder that cannot handle the build. - Alternatively, place a pre-built **`$PIPELINE_DATA_DIR/genehackman_.sif`** (underscore; see `DESCRIPTION` / `DOCKER_VERSION`) so Snakemake does not need to build on a problematic mount. -- Avoid **colons** in host-side SIF filenames (`genehackman:1.0.0.sif`); macOS can reject them. The repo’s Snakemake helper uses **`genehackman_.sif`**. +- Avoid **colons** in host-side SIF filenames (`genehackman:1.1.0.sif`); macOS can reject them. The repo’s Snakemake helper uses **`genehackman_.sif`**. ### Apple Silicon (arm64) diff --git a/R/constants.R b/R/constants.R index 590fee8..c81014d 100644 --- a/R/constants.R +++ b/R/constants.R @@ -49,15 +49,15 @@ calculate_parallelism <- function(max_workers = 10L, memory_per_worker_mb = 8000 cpus <- available_cpus() mem <- available_memory() by_mem <- if (!is.na(mem) && mem > 0) { - floor(mem / memory_per_worker_mb) + round(floor(mem / memory_per_worker_mb)) } else { - cpus + return(cpus) } - max(1L, min(max_workers, by_mem, cpus)) + return(max(1L, min(max_workers, by_mem, cpus))) } .strip_path <- function(x) { - sub("/+$", "", trimws(x)) + return(sub("/+$", "", trimws(x))) } project_dir <- .strip_path(get_env_var("PROJECT_DIR", "")) diff --git a/R/finemap.R b/R/finemap.R index 1329d57..166e504 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -254,7 +254,7 @@ compute_ld_matrix <- function(rsids, chr, ancestry) { bim_ref <- paste0(bfile, ".bim") all_bim <- data.table::fread(bim_ref, header = FALSE, select = c(1, 2, 4)) colnames(all_bim) <- c("CHR", "SNP", "BP") - all_bim <- all_bim[CHR == chr & SNP %chin% rsids] + all_bim <- all_bim[CHR == chr & SNP %in% rsids] data.table::setorder(all_bim, BP) snp_order <- all_bim$SNP rm(all_bim) diff --git a/README.md b/README.md index 65296a4..ad0a298 100644 --- a/README.md +++ b/README.md @@ -171,10 +171,10 @@ Pipelines use the image **`mrcieu/genehackman`** (tag usually matches the **`Ver docker build --platform linux/amd64 -f docker/Dockerfile -t mrcieu/genehackman:$(grep '^Version:' DESCRIPTION | awk '{print $2}') . ``` -To tag a specific version explicitly (for example `1.0.0`): +To tag a specific version explicitly (for example `1.1.0`): ```bash -docker build --platform linux/amd64 -f docker/Dockerfile -t mrcieu/genehackman:1.0.0 . +docker build --platform linux/amd64 -f docker/Dockerfile -t mrcieu/genehackman:1.1.0 . ``` The image is **x86_64/amd64-only** (Posit R `.deb`, PLINK, Miniconda, etc.). Use **`--platform linux/amd64`** when building so it works on **ARM** laptops (e.g. Apple Silicon) as well as on amd64 Linux; on native amd64 machines the flag is optional but harmless. diff --git a/scripts/load.R b/scripts/load.R index 948abe3..c161923 100644 --- a/scripts/load.R +++ b/scripts/load.R @@ -2,4 +2,7 @@ source("../R/util.R") source("../R/constants.R") lapply(list.files("../R/", full.names = T, pattern="\\.R$"), source) +# Prevent stray Rplots.pdf from being written in batch mode (all pipelines). +if (!interactive()) pdf(file = nullfile()) + options(error = function() traceback(20)) From 15d886b46ec8cd188d831a6cadd57f2b4d04bc45 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 3 Jun 2026 12:55:29 +0100 Subject: [PATCH 71/85] removing Rfast from imports and descriptions --- NAMESPACE | 1 - R/imports.R | 1 - run_pipeline.sh | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index dca5510..bf707c8 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -28,7 +28,6 @@ export(volcano_plot) export(vroom_snps) import(MendelianRandomization, except = c(mr_ivw, mr_median)) import(R.utils, except = c(env, extract, reset, setProgress, timestamp, validate)) -import(Rfast, except = c(transpose, nth, is_integer, as_integer)) import(SlopeHunter, except = c(format_data)) import(TwoSampleMR) import(coloc) diff --git a/R/imports.R b/R/imports.R index f792b76..37e81d6 100644 --- a/R/imports.R +++ b/R/imports.R @@ -16,7 +16,6 @@ #' @rawNamespace import(shiny, except = c(setProgress, validate)) #' @rawNamespace import(tidyr, except = c(extract)) #' @rawNamespace import(utils, except = c(timestamp)) -#' @rawNamespace import(Rfast, except = c(transpose, nth, is_integer, as_integer)) #' @import coloc #' @import ggplot2 #' @import locuszoomr diff --git a/run_pipeline.sh b/run_pipeline.sh index ce3a757..c86b188 100755 --- a/run_pipeline.sh +++ b/run_pipeline.sh @@ -93,7 +93,7 @@ fi GENEHACKMAN_VERSION="${GENEHACKMAN_VERSION:-${DOCKER_VERSION:-}}" SIF_VERSION="${DOCKER_VERSION:-${GENEHACKMAN_VERSION:-}}" if [[ -z "${SIF_VERSION}" ]]; then - echo "Error: Set DOCKER_VERSION in .env (e.g. 1.0.0) so the SIF name matches the Docker image tag." + echo "Error: Set DOCKER_VERSION in .env (e.g. 1.1.0) so the SIF name matches the Docker image tag." exit 1 fi From 6d87b588c3bde122e20a5f07dc76cbe38a43c5d8 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Wed, 3 Jun 2026 15:52:58 +0100 Subject: [PATCH 72/85] Fixing tests and other things found by check() --- .Rbuildignore | 1 + .gitignore | 1 + NAMESPACE | 2 + R/finemap.R | 31 ++++++++++++--- R/imports.R | 1 - R/locus_zoom.R | 15 +------- R/util.R | 4 +- man/allele_complement_vec.Rd | 12 ------ man/calculate_heterogeneity_scores.Rd | 10 ++--- man/finemap_gwas.Rd | 13 ++++--- man/map_ref_to_eaf.Rd | 12 ------ man/populate_eaf_from_reference_panel.Rd | 13 +++---- man/run_susie_for_locus.Rd | 2 +- man/standardise_gwas.Rd | 13 ++++--- tests/testthat/test_liftover.R | 48 ++++++++++++++++-------- 15 files changed, 92 insertions(+), 86 deletions(-) delete mode 100644 man/allele_complement_vec.Rd delete mode 100644 man/map_ref_to_eaf.Rd diff --git a/.Rbuildignore b/.Rbuildignore index 9bffda8..96dfc85 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -16,3 +16,4 @@ venv ^PLATFORM_SETUP\.md$ ^\.git$ ^\.gitignore$ +^\.cursorrules$ diff --git a/.gitignore b/.gitignore index 9978228..98bbbd7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .Rproj.user +.cursorrules .snakemake/ .genehackman/ pipeline_logs/ diff --git a/NAMESPACE b/NAMESPACE index bf707c8..304930c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -15,6 +15,7 @@ export(get_file_or_dataframe) export(grouped_forest_plot) export(gwas_region) export(harmonise_gwases) +export(locus_zoom_coloc) export(manhattan_and_qq) export(miami_plot) export(populate_eaf_from_reference_panel) @@ -39,6 +40,7 @@ import(ggrepel) import(grDevices) import(graphics) import(httr) +import(patchwork) import(prettydoc) import(qqman) import(rlang, except = c(`:=`)) diff --git a/R/finemap.R b/R/finemap.R index 166e504..e1289be 100644 --- a/R/finemap.R +++ b/R/finemap.R @@ -42,14 +42,23 @@ finemap_gwas <- function(gwas, data.table::setkey(gwas, CHR, BP) + has_n <- "N" %in% colnames(gwas) + if (!has_n && (length(default_n) != 1L || is.na(default_n))) { + stop("Fine-mapping requires GWAS sample size") + } + if (!dir.exists(output_finemap_dir)) { dir.create(output_finemap_dir, recursive = TRUE) } + if (is.null(completion_file)) { + completion_file <- file.path(output_finemap_dir, "finemap_complete.txt") + } + lead_snps <- data.table::fread(clumped_file, select = c("SNP", "CHR", "BP")) if (nrow(lead_snps) == 0) { message("No clumped SNPs found; no per-locus finemap files written.") - write_finemap_complete_marker(completion_file, 0L) + write_finemap_complete_marker(completion_file, 0L, output_finemap_dir) empty <- data.table::data.table( SNP = character(), CHR = numeric(), BP = numeric(), RSID = character(), Z = numeric(), CS = integer() @@ -59,7 +68,6 @@ finemap_gwas <- function(gwas, window_bp <- window_kb * 1000 has_rsid <- "RSID" %in% colnames(gwas) - has_n <- "N" %in% colnames(gwas) n_loci <- nrow(lead_snps) @@ -160,10 +168,14 @@ finemap_gwas <- function(gwas, }) } + finemap_workers <- min( + calculate_parallelism(memory_per_worker_mb = 6000L), + n_loci + ) locus_results <- parallel::mclapply( seq_len(n_loci), process_one_locus, - mc.cores = calculate_parallelism(memory_per_worker_mb = 6000L) + mc.cores = finemap_workers ) rm(locus_subsets, window_subsets); gc(verbose = FALSE) @@ -198,7 +210,7 @@ finemap_gwas <- function(gwas, nrow(combined_lbf), "LD-matched SNPs with finemap stats,", "outputs in", output_finemap_dir)) - write_finemap_complete_marker(completion_file, nrow(lead_snps)) + write_finemap_complete_marker(completion_file, nrow(lead_snps), output_finemap_dir) return(invisible(combined_lbf)) } @@ -206,7 +218,16 @@ finemap_gwas <- function(gwas, #' Write a completion sentinel file (one line: expected lead count) for Snakemake. #' @keywords internal -write_finemap_complete_marker <- function(completion_file, n_loci) { +write_finemap_complete_marker <- function(completion_file, n_loci, output_finemap_dir = NULL) { + if (is.null(completion_file)) { + if (is.null(output_finemap_dir) || length(output_finemap_dir) != 1L || !nzchar(output_finemap_dir)) { + stop("completion_file is NULL; provide output_finemap_dir or an explicit completion_file path") + } + completion_file <- file.path(output_finemap_dir, "finemap_complete.txt") + } + if (!is.character(completion_file) || length(completion_file) != 1L || !nzchar(completion_file)) { + stop("completion_file must be a non-empty character path") + } dir_path <- dirname(completion_file) if (!dir.exists(dir_path)) dir.create(dir_path, recursive = TRUE) writeLines(as.character(as.integer(n_loci)), completion_file) diff --git a/R/imports.R b/R/imports.R index 37e81d6..f479f2e 100644 --- a/R/imports.R +++ b/R/imports.R @@ -18,7 +18,6 @@ #' @rawNamespace import(utils, except = c(timestamp)) #' @import coloc #' @import ggplot2 -#' @import locuszoomr #' @import patchwork #' @import ggrepel #' @import grDevices diff --git a/R/locus_zoom.R b/R/locus_zoom.R index be50a75..1608abf 100644 --- a/R/locus_zoom.R +++ b/R/locus_zoom.R @@ -23,23 +23,13 @@ locus_zoom_coloc <- function(coloc_results_file, pp_h4_threshold = 0.8, window_kb = 500, completion_file = NULL) { - - message("=== Locus zoom plot generation ===") - message("Coloc results file: ", coloc_results_file) - message("GWAS files: ", paste(names(gwas_files), gwas_files, sep = " -> ", collapse = "\n ")) - message("Ancestry: ", ancestry) - message("PP.H4 threshold: ", pp_h4_threshold) - message("Window: ±", window_kb, " kb") - coloc_res <- vroom::vroom(coloc_results_file, show_col_types = FALSE) - message("Total coloc results: ", nrow(coloc_res)) significant <- coloc_res[coloc_res$PP.H4.abf >= pp_h4_threshold, ] - message("Significant results (PP.H4.abf >= ", pp_h4_threshold, "): ", nrow(significant)) + message("Significant results to plot: (PP.H4.abf >= ", pp_h4_threshold, "): ", nrow(significant)) if (!dir.exists(output_dir)) dir.create(output_dir, recursive = TRUE) if (nrow(significant) == 0) { - message("No coloc results above threshold — nothing to plot") write_completion_file(completion_file, "0 loci plotted") return(invisible(NULL)) } @@ -69,7 +59,6 @@ locus_zoom_coloc <- function(coloc_results_file, for (i in seq_len(nrow(significant))) { row <- significant[i, ] locus_label <- paste0(row$trait1, " vs ", row$trait2, " at ", row$locus1, "/", row$locus2) - message("Processing locus ", i, "/", nrow(significant), ": ", locus_label) failure_msg <- tryCatch({ chr <- as.integer(strsplit(row$locus1, "_")[[1]][1]) @@ -211,7 +200,7 @@ build_single_locus_plot <- function(gwas, chr, xrange, ens_db, ancestry, if (!is.null(ld_r2)) { plot_df$r2 <- ld_r2[match(plot_df$rsid, names(ld_r2))] } else { - message(" LD r2 computation returned NULL — plotting without LD colouring") + message("LD r2 computation returned NULL; plotting without LD colouring") } ld_arg <- if ("r2" %in% colnames(plot_df)) "r2" else NULL diff --git a/R/util.R b/R/util.R index 47d8531..2d997fb 100644 --- a/R/util.R +++ b/R/util.R @@ -181,8 +181,8 @@ convert_z_to_lbf <- function( #' so we can estimate var(Y) by regressing n*var(X) against 1/var(beta) #' #' @title Estimate trait variance, internal function -#' @param SE vector of standard errors -#' @param EAF vector of MAF (same length as SE) +#' @param se vector of standard errors +#' @param eaf vector of MAF (same length as SE) #' @param n sample size #' #' @return estimated standard deviation of Y diff --git a/man/allele_complement_vec.Rd b/man/allele_complement_vec.Rd deleted file mode 100644 index a25f3a7..0000000 --- a/man/allele_complement_vec.Rd +++ /dev/null @@ -1,12 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/data_conversions.R -\name{allele_complement_vec} -\alias{allele_complement_vec} -\title{Allele complement for strand alignment (SNPs only).} -\usage{ -allele_complement_vec(alleles) -} -\description{ -Allele complement for strand alignment (SNPs only). -} -\keyword{internal} diff --git a/man/calculate_heterogeneity_scores.Rd b/man/calculate_heterogeneity_scores.Rd index 3b762e6..c332df4 100644 --- a/man/calculate_heterogeneity_scores.Rd +++ b/man/calculate_heterogeneity_scores.Rd @@ -2,12 +2,12 @@ % Please edit documentation in R/gwas_comparisons.R \name{calculate_heterogeneity_scores} \alias{calculate_heterogeneity_scores} -\title{Test for heterogeneity of effect estimates between populations} +\title{Test for heterogeneity of effect estimates between GWAS datasets} \usage{ calculate_heterogeneity_scores(gwases_by_ancestry, heterogeneity_score_file) } \arguments{ -\item{gwases_by_ancestry}{Named list of data frames, one for each population, with at least bhat, se and snp columns} +\item{gwases_by_ancestry}{Named list of data frames, one per GWAS dataset, with at least BETA, SE and SNP columns} \item{heterogeneity_score_file}{file to save the heterogeneity scores} } @@ -20,7 +20,7 @@ List } \description{ For each SNP this function will provide a Cochran's Q test statistic - -a measure of heterogeneity of effect sizes between populations. A low p-value means high heterogeneity. -In addition, for every SNP it gives a per population p-value - -this can be interpreted as asking for each SNP is a particular giving an outlier estimate. +a measure of heterogeneity of effect sizes between datasets. A low p-value means high heterogeneity. +In addition, for every SNP it gives a per-dataset p-value — +interpreted as whether a particular study is an outlier at that SNP. } diff --git a/man/finemap_gwas.Rd b/man/finemap_gwas.Rd index 40aa1c9..fef0205 100644 --- a/man/finemap_gwas.Rd +++ b/man/finemap_gwas.Rd @@ -10,6 +10,7 @@ finemap_gwas( ancestry, default_n, output_finemap_dir, + completion_file = NULL, window_kb = 1000, max_causal = 10, coverage = 0.95, @@ -26,7 +27,11 @@ finemap_gwas( \item{default_n}{GWAS sample size when not inferrable from \code{gwas}; see} \item{output_finemap_dir}{directory to write one -\verb{__finemap.tsv.gz} per clumped locus} +\verb{__finemap.tsv.gz} per clumped locus.} + +\item{completion_file}{path to a sentinel file written on successful completion +(one line: expected lead count). If NULL, defaults to +\verb{/finemap_complete.txt}.} \item{window_kb}{half-width of the fine-mapping window in kb (default 1000 = ±1 Mb)} @@ -37,7 +42,7 @@ finemap_gwas( \item{min_abs_corr}{minimum absolute correlation for credible sets (default 0.5)} } \value{ -invisibly, the combined per-SNP finemap tibble (LD-matched SNPs only) +invisibly, the combined per-SNP finemap data.table (LD-matched SNPs only) } \description{ For each lead SNP from plink --clump output, extracts a window, computes an @@ -46,7 +51,3 @@ susieR::susie_rss. Writes one TSV per locus: all GWAS variants within the genomic window around the lead SNP, with SuSiE Z-scores, credible-set membership, and per-credible-set (independent signal) columns \code{LBF_1}, \code{LBF_2}, ... } -\details{ -Loci are fine-mapped in parallel with \code{\link[parallel:mclapply]{parallel::mclapply()}} (\code{mc.cores = 2}). -On Windows this runs sequentially. Each job writes its own output file. -} diff --git a/man/map_ref_to_eaf.Rd b/man/map_ref_to_eaf.Rd deleted file mode 100644 index 6e78260..0000000 --- a/man/map_ref_to_eaf.Rd +++ /dev/null @@ -1,12 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/data_conversions.R -\name{map_ref_to_eaf} -\alias{map_ref_to_eaf} -\title{Map effect allele frequency using reference A1 allele frequency (PLINK --freq).} -\usage{ -map_ref_to_eaf(ea, oa, ra1, ra2, a1_freq) -} -\description{ -Map effect allele frequency using reference A1 allele frequency (PLINK --freq). -} -\keyword{internal} diff --git a/man/populate_eaf_from_reference_panel.Rd b/man/populate_eaf_from_reference_panel.Rd index 92c50e1..6799682 100644 --- a/man/populate_eaf_from_reference_panel.Rd +++ b/man/populate_eaf_from_reference_panel.Rd @@ -2,18 +2,17 @@ % Please edit documentation in R/data_conversions.R \name{populate_eaf_from_reference_panel} \alias{populate_eaf_from_reference_panel} -\title{Populate missing EAF from the LD reference panel (1000 Genomes PLINK binary + .frq).} +\title{Populate missing EAF from the LD reference panel \code{.frq} file via RSID matching.} \usage{ -populate_eaf_from_reference_panel(gwas, ancestry, enabled = FALSE) +populate_eaf_from_reference_panel(gwas, ancestry) } \arguments{ -\item{gwas}{Standardised GWAS tibble (CHR, BP, EA, OA; SNP id built after allele ordering).} +\item{gwas}{Standardised GWAS tibble with RSID, EA, OA columns.} \item{ancestry}{One of EUR, EAS, AFR, AMR, SAS matching the reference panel prefix.} - -\item{enabled}{If FALSE, returns \code{gwas} unchanged.} } \description{ -Expects \code{plink --bfile --freq --out } to exist beside the -\code{.bed/.bim/.fam} files, i.e. \code{/.frq}. +Expects the GWAS to have an \code{RSID} column (populated by \code{populate_rsid}) +and alleles in canonical (alphabetically sorted) order from \code{standardise_alleles}. +Only reads the lightweight \code{.frq} file; the \code{.bim} is not needed. } diff --git a/man/run_susie_for_locus.Rd b/man/run_susie_for_locus.Rd index 3288494..5f04c7c 100644 --- a/man/run_susie_for_locus.Rd +++ b/man/run_susie_for_locus.Rd @@ -33,7 +33,7 @@ run_susie_for_locus( \item{min_abs_corr}{minimum absolute correlation for CS purity} } \value{ -tibble with SNP, CHR, BP, RSID, Z, CS, and \code{LBF_1}, \code{LBF_2}, ... per signal +data.table with SNP, CHR, BP, RSID, Z, CS, and \code{LBF_1}, \code{LBF_2}, ... per signal } \description{ Run SuSiE on a single locus diff --git a/man/standardise_gwas.Rd b/man/standardise_gwas.Rd index b821aa2..dcb3aa5 100644 --- a/man/standardise_gwas.Rd +++ b/man/standardise_gwas.Rd @@ -40,15 +40,16 @@ can be list() of key/value pairs, string of row in predefined_column_maps, or co \item{remove_extra_columns}{logical flag on if to remove extra columns} -\item{populate_eaf}{If TRUE, fill missing \code{EAF} from the 1000 Genomes LD panel (\code{ANCESTRY.bim} + \code{ANCESTRY.frq} under \code{THOUSAND_GENOMES_DIR}).} +\item{populate_eaf}{If TRUE, fill missing \code{EAF} from the 1000 Genomes \code{.frq} +file via RSID matching. Requires \code{ancestry}. A partial RSID population is +performed automatically when RSIDs are not already present.} \item{ancestry}{Ancestry code (EUR, EAS, AFR, AMR, SAS) matching the reference panel prefix; required when \code{populate_eaf} is TRUE.} -\item{flip_alleles}{If TRUE (default), reorder EA/OA alphabetically and flip BETA, EAF, Z accordingly. -Set to FALSE to keep alleles as-is (useful when you only need harmonisation without allele reordering). -Only supported when running \strong{standardise_gwas.smk}. When \code{populate_eaf} is TRUE and -\code{flip_alleles} is FALSE, EAF is merged from the LD panel before rebuilding the SNP id so -effect alleles align with reference coding.} +\item{flip_alleles}{If TRUE (default), keep EA/OA in alphabetical order with flipped +BETA/EAF/Z in the output. When FALSE the original allele order and effect direction +are restored before saving; all internal steps still operate on the canonical +(alphabetically flipped) representation.} } \value{ modified gwas: saves new gwas in output_file if present diff --git a/tests/testthat/test_liftover.R b/tests/testthat/test_liftover.R index 9c9ebe2..0b57d59 100644 --- a/tests/testthat/test_liftover.R +++ b/tests/testthat/test_liftover.R @@ -1,13 +1,31 @@ +mock_liftover_bed_output <- function(bed_file_output, unmapped = NULL) { + fixture <- testthat::test_path("data/test_data_small_hg38.bed.gz") + if (!file.exists(fixture)) { + testthat::skip(paste("missing fixture:", fixture)) + } + if (grepl("\\.gz$", fixture, ignore.case = TRUE) && + !grepl("\\.gz$", bed_file_output, ignore.case = TRUE)) { + con <- gzfile(fixture, "rt") + on.exit(close(con), add = TRUE) + writeLines(readLines(con), bed_file_output) + } else { + file.copy(fixture, bed_file_output, overwrite = TRUE) + } + if (!is.null(unmapped) && nzchar(unmapped)) { + file.create(unmapped) + } +} + test_that("liftover.convert_reference_build_via_liftover returns updated data frame", { local_mocked_bindings( - run_system = function(command, wait = TRUE, intern = FALSE, ...) { - bed_output_file <- unlist(strsplit(command, " "))[4] - file.copy("data/test_data_small_hg38.bed.gz", bed_output_file) + run_liftover = function(bed_file_input, bed_file_output, input_build, output_build, unmapped) { + mock_liftover_bed_output(bed_file_output) } ) - result <- convert_reference_build_via_liftover("data/test_data_small.tsv.gz", - reference_builds$GRCh37, - reference_builds$GRCh38 + result <- convert_reference_build_via_liftover( + "data/test_data_small.tsv.gz", + reference_builds$GRCh37, + reference_builds$GRCh38 ) expect_equal(nrow(result), 75048) @@ -18,24 +36,22 @@ test_that("liftover.convert_reference_build_via_liftover returns updated data fr test_that("liftover.convert_reference_build_via_liftover saved output and unmapped", { local_mocked_bindings( - run_system = function(command, wait = TRUE, intern = FALSE, ...) { - bed_output_file <- unlist(strsplit(command, " "))[4] - unmapped_file <- unlist(strsplit(command, " "))[5] - file.copy("data/test_data_small_hg38.bed.gz", bed_output_file) - file.create(unmapped_file) + run_liftover = function(bed_file_input, bed_file_output, input_build, output_build, unmapped) { + mock_liftover_bed_output(bed_file_output, unmapped = unmapped) } ) output_file <- tempfile(fileext = ".tsv.gz") - convert_reference_build_via_liftover("data/test_data_small.tsv.gz", - reference_builds$GRCh37, - reference_builds$GRCh38, - output_file + convert_reference_build_via_liftover( + "data/test_data_small.tsv.gz", + reference_builds$GRCh37, + reference_builds$GRCh38, + output_file ) expect_true(file.exists(output_file)) expect_true(file.exists(paste0(dirname(output_file), file_prefix(output_file), ".unmapped"))) - result <- vroom::vroom(output_file, show_col_types=F) + result <- vroom::vroom(output_file, show_col_types = FALSE) expect_equal(nrow(result), 75048) expect_equal(nrow(result[is.na(result$BP), ]), 0) expect_false("NEW_BP" %in% colnames(result)) From 9419b0b7f2f3710128f0812e59167a8f3ca9751a Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 4 Jun 2026 08:54:07 +0100 Subject: [PATCH 73/85] Adding e2e test check to pipeline --- .github/workflows/main.yml | 16 ++++++++++ R/locus_zoom.R | 2 ++ R/util.R | 4 +-- docker/Dockerfile | 11 ++----- man/build_single_locus_plot.Rd | 20 ++++++++++++ man/compute_ld_r2_for_locus.Rd | 12 +++++++ man/convert_z_to_lbf.Rd | 1 + man/estimate_variance.Rd | 27 ++++++++++++++++ man/find_index_snp_from_ld_panel.Rd | 12 +++++++ man/locus_zoom_coloc.Rd | 45 +++++++++++++++++++++++++++ man/normalise_gwas_chr.Rd | 12 +++++++ man/standardise_alleles.Rd | 16 ++++++++++ man/unflip_alleles.Rd | 14 +++++++++ man/write_completion_file.Rd | 12 +++++++ man/write_finemap_complete_marker.Rd | 16 ++++++++++ tests/e2e_tests/run_test_pipelines.sh | 3 ++ 16 files changed, 213 insertions(+), 10 deletions(-) create mode 100644 man/build_single_locus_plot.Rd create mode 100644 man/compute_ld_r2_for_locus.Rd create mode 100644 man/estimate_variance.Rd create mode 100644 man/find_index_snp_from_ld_panel.Rd create mode 100644 man/locus_zoom_coloc.Rd create mode 100644 man/normalise_gwas_chr.Rd create mode 100644 man/standardise_alleles.Rd create mode 100644 man/unflip_alleles.Rd create mode 100644 man/write_completion_file.Rd create mode 100644 man/write_finemap_complete_marker.Rd diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 37bfde5..0819aff 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -19,3 +19,19 @@ jobs: - name: Run devtools::check() run: Rscript -e "devtools::check()" + end_to_end: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Check that end-to-end tests have been run successfully + env: + BRANCH_NAME: ${{ github.head_ref || github.ref_name }} + run: | + if [ ! -f tests/testing_complete.txt ]; then + echo "Tests have not been run successfully, please run Rscript tests/testthat/run_tests.R and commit the results" + exit 1 + fi + if [ "$BRANCH_NAME" != "main" ] && ! grep -q "$BRANCH_NAME" tests/testing_complete.txt; then + echo "Tests have not been run successfully for branch: $BRANCH_NAME, please run Rscript tests/testthat/run_tests.R and commit the results" + exit 1 + fi diff --git a/R/locus_zoom.R b/R/locus_zoom.R index 1608abf..d509ccf 100644 --- a/R/locus_zoom.R +++ b/R/locus_zoom.R @@ -14,6 +14,8 @@ #' @param window_kb half-width of the region to plot in kb (default 500) #' @param completion_file path to a sentinel file written on successful completion. #' If NULL, no sentinel is written. +#' @return Invisibly returns \code{NULL}. On failure, stops with an error summarising +#' loci that could not be plotted. #' @export locus_zoom_coloc <- function(coloc_results_file, gwas_files, diff --git a/R/util.R b/R/util.R index 2d997fb..6fb7161 100644 --- a/R/util.R +++ b/R/util.R @@ -154,7 +154,7 @@ get_docker_image_tag <- function() { #' @param effect_priors Effect priors #' #' @return Log Bayes Factor -#' @internal +#' @keywords internal convert_z_to_lbf <- function( z, se, @@ -186,7 +186,7 @@ convert_z_to_lbf <- function( #' @param n sample size #' #' @return estimated standard deviation of Y -#' @internal +#' @keywords internal estimate_variance <- function(se, eaf, n) { oneover <- 1 / se^2 nvx <- 2 * n * eaf * (1 - eaf) diff --git a/docker/Dockerfile b/docker/Dockerfile index 10a697c..5d11ad1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,16 +1,16 @@ # This recipe uses amd64-only assets (Posit R .deb, PLINK, Miniconda, libpng12 .deb). On ARM hosts, # build with: docker build --platform linux/amd64 ... -FROM python:3.11-bullseye +FROM python:3.12-bookworm RUN apt update && \ apt install -y --no-install-recommends \ build-essential software-properties-common dirmngr gnupg pandoc lmodern texlive-latex-base unzip \ - libpng-dev libtiff5-dev libjpeg-dev libfreetype6-dev libharfbuzz-dev libfribidi-dev \ + libpng-dev libtiff5-dev libjpeg-dev libfreetype6-dev libharfbuzz-dev libfribidi-dev \ libxml2-dev libcurl4-openssl-dev libssl-dev libgmp-dev libnlopt-dev cmake libcairo2-dev libxt-dev \ texlive-latex-recommended r-cran-sass r-cran-mime libudunits2-dev libgdal-dev \ libfontconfig1-dev libuv1-dev libicu-dev libbz2-dev liblzma-dev libglib2.0-dev \ sqlite3 wget vim ripgrep git && \ - wget https://cdn.posit.co/r/debian-11/pkgs/r-4.4.2_1_amd64.deb && \ + wget https://cdn.posit.co/r/debian-12/pkgs/r-4.4.2_1_amd64.deb && \ apt-get update && \ apt-get install -y ./r-4.4.2_1_amd64.deb && \ rm r-4.4.2_1_amd64.deb && \ @@ -47,11 +47,6 @@ RUN /bin/condabin/conda tos accept --override-channels --channel https://repo.an cd /home/ldsc && \ /bin/condabin/conda env create --file environment.yml -#TODO: other things to think about installing: bcftools, finemap, some sort of meta-analysis tool (METAL, GWAMA, etc) -#RUN wget http://christianbenner.com/finemap_v1.4.2_x86_64.tgz && \ -# tar -xf finemap_v1.4.2_x86_64.tgz && \ -# mv finemap_v1.4.2_x86_64 /usr/local/bin/finemap - COPY . /home/GeneHackman RUN Rscript /home/GeneHackman/docker/requirements.R ENV R_LIBS_SITE=/usr/lib/R/site-library diff --git a/man/build_single_locus_plot.Rd b/man/build_single_locus_plot.Rd new file mode 100644 index 0000000..71dbc45 --- /dev/null +++ b/man/build_single_locus_plot.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/locus_zoom.R +\name{build_single_locus_plot} +\alias{build_single_locus_plot} +\title{Build a single ggplot2 locus zoom panel for one trait} +\usage{ +build_single_locus_plot( + gwas, + chr, + xrange, + ens_db, + ancestry, + index_snp, + trait_label +) +} +\description{ +Build a single ggplot2 locus zoom panel for one trait +} +\keyword{internal} diff --git a/man/compute_ld_r2_for_locus.Rd b/man/compute_ld_r2_for_locus.Rd new file mode 100644 index 0000000..02018bc --- /dev/null +++ b/man/compute_ld_r2_for_locus.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/locus_zoom.R +\name{compute_ld_r2_for_locus} +\alias{compute_ld_r2_for_locus} +\title{Compute r2 relative to an index SNP using the local LD reference panel} +\usage{ +compute_ld_r2_for_locus(rsids, chr, ancestry, index_snp) +} +\description{ +Compute r2 relative to an index SNP using the local LD reference panel +} +\keyword{internal} diff --git a/man/convert_z_to_lbf.Rd b/man/convert_z_to_lbf.Rd index fce59e6..a9654ea 100644 --- a/man/convert_z_to_lbf.Rd +++ b/man/convert_z_to_lbf.Rd @@ -32,3 +32,4 @@ Log Bayes Factor \description{ Generate log Bayes Factor from Z-score } +\keyword{internal} diff --git a/man/estimate_variance.Rd b/man/estimate_variance.Rd new file mode 100644 index 0000000..a24864e --- /dev/null +++ b/man/estimate_variance.Rd @@ -0,0 +1,27 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/util.R +\name{estimate_variance} +\alias{estimate_variance} +\title{Estimate trait variance, internal function} +\usage{ +estimate_variance(se, eaf, n) +} +\arguments{ +\item{se}{vector of standard errors} + +\item{eaf}{vector of MAF (same length as SE)} + +\item{n}{sample size} +} +\value{ +estimated standard deviation of Y +} +\description{ +Estimate trait standard deviation given vectors of variance of coefficients, MAF and sample size +} +\details{ +Estimate is based on var(beta-hat) = var(Y) / (n * var(X)) +var(X) = 2\emph{maf}(1-maf) +so we can estimate var(Y) by regressing n*var(X) against 1/var(beta) +} +\keyword{internal} diff --git a/man/find_index_snp_from_ld_panel.Rd b/man/find_index_snp_from_ld_panel.Rd new file mode 100644 index 0000000..e9ed1a1 --- /dev/null +++ b/man/find_index_snp_from_ld_panel.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/locus_zoom.R +\name{find_index_snp_from_ld_panel} +\alias{find_index_snp_from_ld_panel} +\title{Find the top SNP near a locus center from the LD reference panel} +\usage{ +find_index_snp_from_ld_panel(chr, center_bp, window_bp, ancestry) +} +\description{ +Find the top SNP near a locus center from the LD reference panel +} +\keyword{internal} diff --git a/man/locus_zoom_coloc.Rd b/man/locus_zoom_coloc.Rd new file mode 100644 index 0000000..2526475 --- /dev/null +++ b/man/locus_zoom_coloc.Rd @@ -0,0 +1,45 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/locus_zoom.R +\name{locus_zoom_coloc} +\alias{locus_zoom_coloc} +\title{Generate locus zoom plots for significant colocalization results} +\usage{ +locus_zoom_coloc( + coloc_results_file, + gwas_files, + ancestry, + ens_db, + output_dir, + pp_h4_threshold = 0.8, + window_kb = 500, + completion_file = NULL +) +} +\arguments{ +\item{coloc_results_file}{path to coloc_results.tsv} + +\item{gwas_files}{named character vector of standardised GWAS file paths, +names must match trait labels used in coloc_results (trait1/trait2 columns)} + +\item{ancestry}{ancestry code for the LD reference panel (EUR, EAS, etc.)} + +\item{ens_db}{Ensembl database object or package name for gene annotations} + +\item{output_dir}{directory to write per-locus PNG files} + +\item{pp_h4_threshold}{minimum PP.H4.abf to consider significant (default 0.8)} + +\item{window_kb}{half-width of the region to plot in kb (default 500)} + +\item{completion_file}{path to a sentinel file written on successful completion. +If NULL, no sentinel is written.} +} +\value{ +Invisibly returns \code{NULL}. On failure, stops with an error summarising +loci that could not be plotted. +} +\description{ +For each coloc result with PP.H4.abf above the threshold, produces a stacked +locus zoom plot showing both traits at the shared locus, with LD computed +from the local 1000 Genomes reference panel. +} diff --git a/man/normalise_gwas_chr.Rd b/man/normalise_gwas_chr.Rd new file mode 100644 index 0000000..f73afeb --- /dev/null +++ b/man/normalise_gwas_chr.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gwas_formatting.R +\name{normalise_gwas_chr} +\alias{normalise_gwas_chr} +\title{Normalise CHR for GWAS rows (chr-prefix, whitespace, leading zeros) so downstream joins match PLINK panels.} +\usage{ +normalise_gwas_chr(x) +} +\description{ +Normalise CHR for GWAS rows (chr-prefix, whitespace, leading zeros) so downstream joins match PLINK panels. +} +\keyword{internal} diff --git a/man/standardise_alleles.Rd b/man/standardise_alleles.Rd new file mode 100644 index 0000000..be615b8 --- /dev/null +++ b/man/standardise_alleles.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gwas_formatting.R +\name{standardise_alleles} +\alias{standardise_alleles} +\title{Reorder EA/OA alphabetically and flip BETA, EAF, Z to match. +Rows that were flipped are marked in a logical \code{.ALLELES_FLIPPED} column +so they can be restored later by \code{unflip_alleles()}.} +\usage{ +standardise_alleles(gwas) +} +\description{ +Reorder EA/OA alphabetically and flip BETA, EAF, Z to match. +Rows that were flipped are marked in a logical \code{.ALLELES_FLIPPED} column +so they can be restored later by \code{unflip_alleles()}. +} +\keyword{internal} diff --git a/man/unflip_alleles.Rd b/man/unflip_alleles.Rd new file mode 100644 index 0000000..dd6e256 --- /dev/null +++ b/man/unflip_alleles.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/gwas_formatting.R +\name{unflip_alleles} +\alias{unflip_alleles} +\title{Restore original allele order for rows that were flipped by \code{standardise_alleles()}. +Reverses BETA, EAF, Z and swaps EA/OA back, then rebuilds the SNP column.} +\usage{ +unflip_alleles(gwas) +} +\description{ +Restore original allele order for rows that were flipped by \code{standardise_alleles()}. +Reverses BETA, EAF, Z and swaps EA/OA back, then rebuilds the SNP column. +} +\keyword{internal} diff --git a/man/write_completion_file.Rd b/man/write_completion_file.Rd new file mode 100644 index 0000000..a4d69ff --- /dev/null +++ b/man/write_completion_file.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/locus_zoom.R +\name{write_completion_file} +\alias{write_completion_file} +\title{Write a completion sentinel file for Snakemake} +\usage{ +write_completion_file(completion_file, content = "done") +} +\description{ +Write a completion sentinel file for Snakemake +} +\keyword{internal} diff --git a/man/write_finemap_complete_marker.Rd b/man/write_finemap_complete_marker.Rd new file mode 100644 index 0000000..d7fd2c8 --- /dev/null +++ b/man/write_finemap_complete_marker.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/finemap.R +\name{write_finemap_complete_marker} +\alias{write_finemap_complete_marker} +\title{Write a completion sentinel file (one line: expected lead count) for Snakemake.} +\usage{ +write_finemap_complete_marker( + completion_file, + n_loci, + output_finemap_dir = NULL +) +} +\description{ +Write a completion sentinel file (one line: expected lead count) for Snakemake. +} +\keyword{internal} diff --git a/tests/e2e_tests/run_test_pipelines.sh b/tests/e2e_tests/run_test_pipelines.sh index 4238f82..bb9416d 100755 --- a/tests/e2e_tests/run_test_pipelines.sh +++ b/tests/e2e_tests/run_test_pipelines.sh @@ -11,3 +11,6 @@ if [[ -n "${QTL_DATA_DIR}" ]]; then ./run_pipeline.sh snakemake/qtl_mr.smk tests/testthat/data/snakemake_inputs/qtl_mr_eqtlgen.yaml -F fi +branch_name=$(git rev-parse --abbrev-ref HEAD) +status_message="SUCCESS: All tests passed on branch: $branch_name" +echo "$status_message" > testing_complete.txt \ No newline at end of file From 26b6fea1be0dfa19d9150c38f257dcce488e00dd Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 4 Jun 2026 10:32:47 +0100 Subject: [PATCH 74/85] Testing complete --- testing_complete.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 testing_complete.txt diff --git a/testing_complete.txt b/testing_complete.txt new file mode 100644 index 0000000..a32788d --- /dev/null +++ b/testing_complete.txt @@ -0,0 +1 @@ +SUCCESS: All tests passed on branch: feature/run-locally From 04e392afc3ecd3b722509551f434785fad5ccf0a Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Thu, 4 Jun 2026 10:35:25 +0100 Subject: [PATCH 75/85] Fixing github action error --- .github/workflows/main.yml | 16 ++++++++-------- tests/e2e_tests/run_test_pipelines.sh | 2 +- .../testing_complete.txt | 0 3 files changed, 9 insertions(+), 9 deletions(-) rename testing_complete.txt => tests/testing_complete.txt (100%) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0819aff..b53ee21 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,11 +27,11 @@ jobs: env: BRANCH_NAME: ${{ github.head_ref || github.ref_name }} run: | - if [ ! -f tests/testing_complete.txt ]; then - echo "Tests have not been run successfully, please run Rscript tests/testthat/run_tests.R and commit the results" - exit 1 - fi - if [ "$BRANCH_NAME" != "main" ] && ! grep -q "$BRANCH_NAME" tests/testing_complete.txt; then - echo "Tests have not been run successfully for branch: $BRANCH_NAME, please run Rscript tests/testthat/run_tests.R and commit the results" - exit 1 - fi + if [ ! -f tests/testing_complete.txt ]; then + echo "Tests have not been run successfully, please run ./tests/e2e_tests/run_test_pipelines.sh and commit the results" + exit 1 + fi + if [ "$BRANCH_NAME" != "main" ] && ! grep -q "$BRANCH_NAME" tests/testing_complete.txt; then + echo "Tests have not been run successfully for branch: $BRANCH_NAME, please run Rscript tests/testthat/run_tests.R and commit the results" + exit 1 + fi diff --git a/tests/e2e_tests/run_test_pipelines.sh b/tests/e2e_tests/run_test_pipelines.sh index bb9416d..e2cae38 100755 --- a/tests/e2e_tests/run_test_pipelines.sh +++ b/tests/e2e_tests/run_test_pipelines.sh @@ -13,4 +13,4 @@ fi branch_name=$(git rev-parse --abbrev-ref HEAD) status_message="SUCCESS: All tests passed on branch: $branch_name" -echo "$status_message" > testing_complete.txt \ No newline at end of file +echo "$status_message" > tests/testing_complete.txt \ No newline at end of file diff --git a/testing_complete.txt b/tests/testing_complete.txt similarity index 100% rename from testing_complete.txt rename to tests/testing_complete.txt From f30e25eb219167c3599c6cefafade5883ce73c0d Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 5 Jun 2026 12:59:25 +0100 Subject: [PATCH 76/85] Adding new functionality that allows users to fine multi ancestry finemapping via multi susie --- .github/workflows/main.yml | 4 +- docker/requirements.txt | 6 + scripts/run_multisusie.py | 377 ++++++++++++++++++ snakemake/coloc.smk | 9 + snakemake/finemap.smk | 29 +- .../rules/finemap_multi_ancestry_rule.smk | 35 ++ tests/e2e_tests/run_test_pipelines.sh | 1 + .../finemap_multi_ancestry.yaml | 10 + .../testthat/data/test_data_small_eas.tsv.gz | Bin 0 -> 850847 bytes 9 files changed, 463 insertions(+), 8 deletions(-) create mode 100644 scripts/run_multisusie.py create mode 100644 snakemake/rules/finemap_multi_ancestry_rule.smk create mode 100644 tests/testthat/data/snakemake_inputs/finemap_multi_ancestry.yaml create mode 100644 tests/testthat/data/test_data_small_eas.tsv.gz diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b53ee21..7a9c4b0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,7 +8,7 @@ on: types: [opened, reopened, ready_for_review, synchronize] jobs: - test: + devtools_check: runs-on: ubuntu-latest container: image: mrcieu/genehackman:develop @@ -19,7 +19,7 @@ jobs: - name: Run devtools::check() run: Rscript -e "devtools::check()" - end_to_end: + end_to_end_tests_run: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 diff --git a/docker/requirements.txt b/docker/requirements.txt index cdddecd..d86d577 100644 --- a/docker/requirements.txt +++ b/docker/requirements.txt @@ -2,3 +2,9 @@ click==8.1.3 snakemake==7.25.4 synapseclient==2.7.2 PyYAML>=6.0.1 +numpy>=1.26.4 +scipy>=1.4.1 +tqdm>=4.67.1 +numba>=0.51.0 +pandas>=2.0.0 +MultiSuSiE @ git+https://github.com/jordanero/MultiSuSiE.git \ No newline at end of file diff --git a/scripts/run_multisusie.py b/scripts/run_multisusie.py new file mode 100644 index 0000000..84f7cdc --- /dev/null +++ b/scripts/run_multisusie.py @@ -0,0 +1,377 @@ +""" +Multi-ancestry fine-mapping using MultiSuSiE. + +For each clumped locus (union of lead SNPs across ancestries), extracts GWAS +summary statistics and LD matrices per ancestry, then runs MultiSuSiE's +multisusie_rss to produce cross-ancestry credible sets. +""" + +import argparse +import gzip +import os +import subprocess +import sys +import tempfile + +import numpy as np +import pandas as pd + +import MultiSuSiE + + +def parse_args(): + parser = argparse.ArgumentParser(description="Run MultiSuSiE multi-ancestry fine-mapping") + parser.add_argument("--gwas_files", nargs="+", required=True, + help="Standardised GWAS files (one per ancestry)") + parser.add_argument("--clumped_files", nargs="+", required=True, + help="Plink clumped files (one per ancestry)") + parser.add_argument("--ancestries", nargs="+", required=True, + help="Ancestry codes matching 1000 Genomes panels (e.g. EUR EAS)") + parser.add_argument("--sample_sizes", nargs="+", type=int, required=True, + help="GWAS sample sizes (one per ancestry)") + parser.add_argument("--output_dir", required=True, + help="Output directory for per-locus results") + parser.add_argument("--window_kb", type=int, default=1000, + help="Half-width of fine-mapping window in kb") + parser.add_argument("--max_causal", type=int, default=10, + help="Maximum number of causal signals (L)") + parser.add_argument("--coverage", type=float, default=0.95, + help="Credible set coverage") + parser.add_argument("--min_abs_corr", type=float, default=0.5, + help="Minimum absolute correlation for credible sets") + parser.add_argument("--thousand_genomes_dir", required=True, + help="Path to 1000 Genomes reference panel directory") + parser.add_argument("--completion_file", required=True, + help="Sentinel file written on success") + return parser.parse_args() + + +def read_gwas(gwas_file): + """Read a standardised GWAS TSV (possibly gzipped).""" + return pd.read_csv(gwas_file, sep="\t", dtype={"CHR": str}) + + +def read_clumped(clumped_file): + """Read plink --clump output (whitespace-delimited).""" + try: + df = pd.read_csv(clumped_file, sep=r"\s+", engine="python") + if "SNP" not in df.columns or len(df) == 0: + return pd.DataFrame(columns=["SNP", "CHR", "BP"]) + return df[["SNP", "CHR", "BP"]] + except Exception: + return pd.DataFrame(columns=["SNP", "CHR", "BP"]) + + +def get_union_loci(clumped_dfs, window_bp): + """Merge lead SNPs across ancestries into non-overlapping loci.""" + all_leads = pd.concat(clumped_dfs, ignore_index=True) + if len(all_leads) == 0: + return [] + + all_leads["CHR"] = all_leads["CHR"].astype(str) + all_leads["BP"] = all_leads["BP"].astype(int) + all_leads = all_leads.sort_values(["CHR", "BP"]).reset_index(drop=True) + + loci = [] + current_chr = None + current_start = None + current_end = None + current_leads = [] + + for _, row in all_leads.iterrows(): + bp = int(row["BP"]) + chrom = str(row["CHR"]) + if current_chr is None or chrom != current_chr or bp - current_end > window_bp: + if current_chr is not None: + loci.append({ + "chr": current_chr, + "start": current_start, + "end": current_end, + "center": int((current_start + current_end) / 2), + "leads": current_leads + }) + current_chr = chrom + current_start = bp - window_bp + current_end = bp + window_bp + current_leads = [row["SNP"]] + else: + current_end = max(current_end, bp + window_bp) + current_leads.append(row["SNP"]) + + if current_chr is not None: + loci.append({ + "chr": current_chr, + "start": current_start, + "end": current_end, + "center": int((current_start + current_end) / 2), + "leads": current_leads + }) + + return loci + + +def compute_ld_matrix(rsids, chrom, ancestry, thousand_genomes_dir): + """Compute LD correlation matrix from 1000 Genomes via plink.""" + if len(rsids) < 2: + return None, None + + bfile = os.path.join(thousand_genomes_dir, ancestry) + with tempfile.NamedTemporaryFile(mode="w", suffix=".snps", delete=False) as f: + snp_file = f.name + f.write("\n".join(rsids) + "\n") + + out_prefix = tempfile.mktemp(prefix="ld_") + cmd = [ + "plink1.9", + "--bfile", bfile, + "--chr", str(chrom), + "--extract", snp_file, + "--r", "square", + "--out", out_prefix + ] + + result = subprocess.run(cmd, capture_output=True, text=True) + ld_file = out_prefix + ".ld" + + if result.returncode != 0 or not os.path.exists(ld_file): + _cleanup_plink(snp_file, out_prefix) + return None, None + + bim_file = out_prefix + ".bim" + if os.path.exists(bim_file): + bim = pd.read_csv(bim_file, sep="\t", header=None, usecols=[1], names=["SNP"]) + snp_order = bim["SNP"].tolist() + else: + bim_ref = bfile + ".bim" + bim = pd.read_csv(bim_ref, sep="\t", header=None, usecols=[0, 1, 3], + names=["CHR", "SNP", "BP"]) + bim = bim[(bim["CHR"].astype(str) == str(chrom)) & (bim["SNP"].isin(rsids))] + bim = bim.sort_values("BP") + snp_order = bim["SNP"].tolist() + + R = np.loadtxt(ld_file) + _cleanup_plink(snp_file, out_prefix) + + if R.shape[0] != len(snp_order): + return None, None + + return R, snp_order + + +def _cleanup_plink(snp_file, out_prefix): + for f in [snp_file] + [out_prefix + ext for ext in + (".ld", ".nosex", ".log", ".bim", ".bed", ".fam")]: + try: + os.unlink(f) + except OSError: + pass + + +def extract_locus_data(gwas_df, chrom, start, end): + """Extract GWAS data for a genomic window.""" + mask = ( + (gwas_df["CHR"].astype(str) == str(chrom)) & + (gwas_df["BP"].astype(float) >= start) & + (gwas_df["BP"].astype(float) <= end) & + gwas_df["BETA"].notna() & + gwas_df["SE"].notna() & + (gwas_df["SE"].astype(float) > 0) + ) + return gwas_df[mask].copy() + + +def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, + thousand_genomes_dir, max_causal, coverage, + min_abs_corr): + """Run MultiSuSiE on a single locus across ancestries.""" + chrom = locus["chr"] + start = locus["start"] + end = locus["end"] + + ancestry_data = [] + for i, (gwas_df, ancestry, n) in enumerate(zip(gwas_dfs, ancestries, sample_sizes)): + locus_gwas = extract_locus_data(gwas_df, chrom, start, end) + if len(locus_gwas) < 2 or "RSID" not in locus_gwas.columns: + return None + locus_gwas = locus_gwas[locus_gwas["RSID"].notna() & (locus_gwas["RSID"].str.len() > 0)] + if len(locus_gwas) < 2: + return None + ancestry_data.append({ + "gwas": locus_gwas, + "ancestry": ancestry, + "n": n + }) + + shared_rsids = set(ancestry_data[0]["gwas"]["RSID"]) + for ad in ancestry_data[1:]: + shared_rsids &= set(ad["gwas"]["RSID"]) + + if len(shared_rsids) < 2: + return None + + shared_rsids_list = sorted(shared_rsids) + + b_list = [] + s_list = [] + R_list = [] + n_list = [] + + for ad in ancestry_data: + gwas_sub = ad["gwas"][ad["gwas"]["RSID"].isin(shared_rsids_list)].copy() + gwas_sub = gwas_sub.drop_duplicates(subset="RSID") + gwas_sub = gwas_sub.set_index("RSID").loc[shared_rsids_list].reset_index() + + R, snp_order = compute_ld_matrix( + shared_rsids_list, chrom, ad["ancestry"], thousand_genomes_dir + ) + if R is None: + return None + + ld_rsids = set(snp_order) + common = [s for s in shared_rsids_list if s in ld_rsids] + if len(common) < 2: + return None + + ld_idx = [snp_order.index(s) for s in common] + R_sub = R[np.ix_(ld_idx, ld_idx)] + + gwas_sub = gwas_sub[gwas_sub["RSID"].isin(common)] + gwas_sub = gwas_sub.set_index("RSID").loc[common].reset_index() + + beta = gwas_sub["BETA"].astype(float).values + se = gwas_sub["SE"].astype(float).values + + b_list.append(beta) + s_list.append(se) + R_list.append(R_sub) + n_list.append(ad["n"]) + + final_rsids = common + if len(final_rsids) < 2: + return None + + try: + fit = MultiSuSiE.multisusie_rss( + b_list=b_list, + s_list=s_list, + R_list=R_list, + population_sizes=n_list, + L=max_causal, + coverage=coverage, + min_abs_corr=min_abs_corr, + low_memory_mode=True, + ) + except Exception as e: + print(f" MultiSuSiE failed for locus chr{chrom}:{start}-{end}: {e}", file=sys.stderr) + return None + + ref_gwas = ancestry_data[0]["gwas"] + ref_gwas = ref_gwas[ref_gwas["RSID"].isin(final_rsids)] + ref_gwas = ref_gwas.drop_duplicates(subset="RSID") + ref_gwas = ref_gwas.set_index("RSID").loc[final_rsids].reset_index() + + result_df = pd.DataFrame({ + "SNP": ref_gwas["SNP"].values if "SNP" in ref_gwas.columns else final_rsids, + "CHR": ref_gwas["CHR"].values, + "BP": ref_gwas["BP"].values, + "RSID": final_rsids, + }) + + if hasattr(fit, "sets") and fit.sets is not None and hasattr(fit.sets, "cs"): + cs_membership = np.full(len(final_rsids), np.nan) + for cs_i, cs_snps in enumerate(fit.sets.cs, start=1): + for idx in cs_snps: + if idx < len(cs_membership): + cs_membership[idx] = cs_i + result_df["CS"] = cs_membership.astype("Int64") + else: + result_df["CS"] = pd.NA + + if hasattr(fit, "pip"): + result_df["PIP"] = fit.pip + + if hasattr(fit, "lbf_variable") and fit.lbf_variable is not None: + lbf = fit.lbf_variable + if lbf.ndim == 2: + for j in range(lbf.shape[0]): + result_df[f"LBF_{j+1}"] = lbf[j, :] + + return result_df + + +def main(): + args = parse_args() + + n_ancestries = len(args.ancestries) + if n_ancestries < 2: + print("ERROR: MultiSuSiE requires at least 2 ancestries. " + "Use the standard finemap pipeline for single-ancestry.", + file=sys.stderr) + sys.exit(1) + + if len(args.gwas_files) != n_ancestries: + print("ERROR: Number of GWAS files must match number of ancestries.", file=sys.stderr) + sys.exit(1) + if len(args.clumped_files) != n_ancestries: + print("ERROR: Number of clumped files must match number of ancestries.", file=sys.stderr) + sys.exit(1) + if len(args.sample_sizes) != n_ancestries: + print("ERROR: Number of sample sizes must match number of ancestries.", file=sys.stderr) + sys.exit(1) + + os.makedirs(args.output_dir, exist_ok=True) + + window_bp = args.window_kb * 1000 + + print(f"Loading {n_ancestries} GWAS datasets...") + gwas_dfs = [read_gwas(f) for f in args.gwas_files] + clumped_dfs = [read_clumped(f) for f in args.clumped_files] + + print("Merging lead SNPs across ancestries into loci...") + loci = get_union_loci(clumped_dfs, window_bp) + print(f" {len(loci)} loci to fine-map") + + if len(loci) == 0: + print("No loci to fine-map.") + _write_completion(args.completion_file, 0) + return + + n_success = 0 + n_fail = 0 + + for i, locus in enumerate(loci): + locus_label = f"chr{locus['chr']}:{locus['start']}-{locus['end']}" + print(f" [{i+1}/{len(loci)}] Processing {locus_label}...") + + result = run_multisusie_for_locus( + locus=locus, + gwas_dfs=gwas_dfs, + ancestries=args.ancestries, + sample_sizes=args.sample_sizes, + thousand_genomes_dir=args.thousand_genomes_dir, + max_causal=args.max_causal, + coverage=args.coverage, + min_abs_corr=args.min_abs_corr, + ) + + if result is not None and len(result) > 0: + safe_name = f"{locus['chr']}_{locus['center']}_finemap.tsv.gz" + out_file = os.path.join(args.output_dir, safe_name) + result.to_csv(out_file, sep="\t", index=False, compression="gzip") + n_success += 1 + else: + print(f" Skipped {locus_label} (insufficient shared data or MultiSuSiE failure)") + n_fail += 1 + + print(f"\nMultiSuSiE complete: {n_success} loci succeeded, {n_fail} skipped/failed.") + _write_completion(args.completion_file, n_success) + + +def _write_completion(path, n_loci): + os.makedirs(os.path.dirname(path), exist_ok=True) + with open(path, "w") as f: + f.write(str(n_loci) + "\n") + + +if __name__ == "__main__": + main() diff --git a/snakemake/coloc.smk b/snakemake/coloc.smk index 32ea00a..a489e2a 100644 --- a/snakemake/coloc.smk +++ b/snakemake/coloc.smk @@ -10,6 +10,15 @@ onstart: ancestries = list([g.ancestry for g in pipeline.gwases]) validate_ancestries(ancestries) +unique_ancestries = list(set(ancestries)) +if len(unique_ancestries) > 1: + raise ValueError( + "Colocalization is not supported for multiple ancestries. " + f"Found {len(unique_ancestries)} unique ancestries: {unique_ancestries}. " + "Please use the same ancestry for all GWAS inputs in the coloc pipeline, " + "or use the finemap pipeline for multi-ancestry fine-mapping with MultiSuSiE." + ) + finemap_opts = getattr(pipeline, "finemap", SimpleNamespace()) finemap_window_kb = getattr(finemap_opts, "window_kb", 1000) finemap_max_causal = getattr(finemap_opts, "max_causal", 10) diff --git a/snakemake/finemap.smk b/snakemake/finemap.smk index 7172a30..8876ad8 100644 --- a/snakemake/finemap.smk +++ b/snakemake/finemap.smk @@ -9,6 +9,8 @@ onstart: ancestries = list([g.ancestry for g in pipeline.gwases]) validate_ancestries(ancestries) +unique_ancestries = list(set(ancestries)) +is_multi_ancestry = len(unique_ancestries) > 1 finemap_opts = getattr(pipeline, "finemap", SimpleNamespace()) finemap_window_kb = getattr(finemap_opts, "window_kb", 1000) @@ -21,17 +23,32 @@ std_file_pattern = standardised_gwas_name("{prefix}") for g in pipeline.gwases: g.finemap_dir = RESULTS_DIR + "finemap/" + g.prefix -rule all: - input: - expand(std_file_pattern, prefix=[g.prefix for g in pipeline.gwases]), - expand(FINEMAP_COMPLETE_TXT_PATTERN, prefix=[g.prefix for g in pipeline.gwases]) +MULTI_FINEMAP_COMPLETE = RESULTS_DIR + "finemap/multi_ancestry_finemap_complete.txt" + +if is_multi_ancestry: + rule all: + input: + expand(std_file_pattern, prefix=[g.prefix for g in pipeline.gwases]), + MULTI_FINEMAP_COMPLETE +else: + rule all: + input: + expand(std_file_pattern, prefix=[g.prefix for g in pipeline.gwases]), + expand(FINEMAP_COMPLETE_TXT_PATTERN, prefix=[g.prefix for g in pipeline.gwases]) include: "rules/standardise_rule.smk" include: "rules/clumping_rule.smk" -include: "rules/finemap_rule.smk" + +if is_multi_ancestry: + include: "rules/finemap_multi_ancestry_rule.smk" +else: + include: "rules/finemap_rule.smk" onsuccess: - files = [g.finemap_dir for g in pipeline.gwases] + if is_multi_ancestry: + files = [RESULTS_DIR + "finemap/multi_ancestry"] + else: + files = [g.finemap_dir for g in pipeline.gwases] onsuccess(pipeline_name, files, is_test=pipeline.is_test) onerror: diff --git a/snakemake/rules/finemap_multi_ancestry_rule.smk b/snakemake/rules/finemap_multi_ancestry_rule.smk new file mode 100644 index 0000000..3aef908 --- /dev/null +++ b/snakemake/rules/finemap_multi_ancestry_rule.smk @@ -0,0 +1,35 @@ +rule run_multi_ancestry_finemapping: + threads: 8 + resources: + mem = "64G", + time = "48:00:00" + input: + gwas_files = [g.standardised_gwas for g in pipeline.gwases], + clumped_files = [g.clumped_file for g in pipeline.gwases] + params: + gwas_files = " ".join([g.standardised_gwas for g in pipeline.gwases]), + clumped_files = " ".join([g.clumped_file for g in pipeline.gwases]), + ancestries = " ".join([g.ancestry for g in pipeline.gwases]), + sample_sizes = " ".join([str(g.N) for g in pipeline.gwases]), + output_dir = RESULTS_DIR + "finemap/multi_ancestry", + window_kb = finemap_window_kb, + max_causal = finemap_max_causal, + coverage = finemap_coverage, + min_abs_corr = finemap_min_abs_corr + output: + finemap_complete = MULTI_FINEMAP_COMPLETE + shell: + """ + python run_multisusie.py \ + --gwas_files {params.gwas_files} \ + --clumped_files {params.clumped_files} \ + --ancestries {params.ancestries} \ + --sample_sizes {params.sample_sizes} \ + --output_dir {params.output_dir} \ + --window_kb {params.window_kb} \ + --max_causal {params.max_causal} \ + --coverage {params.coverage} \ + --min_abs_corr {params.min_abs_corr} \ + --thousand_genomes_dir {THOUSAND_GENOMES_DIR} \ + --completion_file {output.finemap_complete} + """ diff --git a/tests/e2e_tests/run_test_pipelines.sh b/tests/e2e_tests/run_test_pipelines.sh index e2cae38..84a139f 100755 --- a/tests/e2e_tests/run_test_pipelines.sh +++ b/tests/e2e_tests/run_test_pipelines.sh @@ -5,6 +5,7 @@ set -e ./run_pipeline.sh snakemake/disease_progression.smk tests/testthat/data/snakemake_inputs/disease_progression.yaml -F ./run_pipeline.sh snakemake/compare_gwases.smk tests/testthat/data/snakemake_inputs/compare_gwases.yaml -F ./run_pipeline.sh snakemake/finemap.smk tests/testthat/data/snakemake_inputs/finemap.yaml -F +./run_pipeline.sh snakemake/finemap.smk tests/testthat/data/snakemake_inputs/finemap_multi_ancestry.yaml -F ./run_pipeline.sh snakemake/coloc.smk tests/testthat/data/snakemake_inputs/coloc.yaml -F if [[ -n "${QTL_DATA_DIR}" ]]; then diff --git a/tests/testthat/data/snakemake_inputs/finemap_multi_ancestry.yaml b/tests/testthat/data/snakemake_inputs/finemap_multi_ancestry.yaml new file mode 100644 index 0000000..300ebbb --- /dev/null +++ b/tests/testthat/data/snakemake_inputs/finemap_multi_ancestry.yaml @@ -0,0 +1,10 @@ +gwases: + - file: tests/testthat/data/test_data_small.tsv.gz + columns: {} + ancestry: EUR + - file: tests/testthat/data/test_data_small_eas.tsv.gz + columns: {} + ancestry: EAS +plink_clump_arguments: "--clump-p1 0.00000005" +populate_rsid: false +is_test: true \ No newline at end of file diff --git a/tests/testthat/data/test_data_small_eas.tsv.gz b/tests/testthat/data/test_data_small_eas.tsv.gz new file mode 100644 index 0000000000000000000000000000000000000000..9335c69f426d0f529b62f54b9201dbd6aa3f9da4 GIT binary patch literal 850847 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

oT5ps z`;42GKcCcWpZ?xM6ktsmGU0hR(c`Eq2u-8zdo0kJwDJ2Egs%jR#WqcNlP=CI0FE2Vbb?$V6B)b-7lviN zHmHd)=*pp%z|3+A!KuOJtS1d@FITg~FS)Gj7s6&ljhfTf(Rj&b-MjaSF@KR|s^dsM z@X>8Ea%-momYvE4Q&&J*FiLfstX9UUWMmi0X~86M^?x7tGS(R(J2T3-mWPdl@DE#M z%^XIR3}fL+pSpE8YTi%SCXty4Kg^2Q8UQ|ROyL=AE8PS0g%~CcwB}h@V2VzdL`nZ} zlLo zWqsT*Pr0~f5SF{Rj&FPXKM{|)(qK@}ct6?nxG zJ&Th!Th-XalJI$+V$1%}v(+#{o9UD4A~vRg6B@l)rd9Lfos8|zlIr_U?^|>pKvJ@@ zq@fr9o@Xk*DFJr2kxLx@FbPxaitd@CtR0u^|5Jn{+%>MBjkd907RMy`ks}RkMP?L? zjoI^KxWqOpH3tTmN;6a@N5-I(DP;L0T_~gD1%d1boy~i0);>7pU|%el^ZJbUPoHxm zGg9di`Mcb=9vjT6B^GfL=toMqp9|11S-{I>lYe6`uvE-F|NbzIYr$l71E|tUul-!G zdiV$lewn(!&on>TLdGXbuviq#{giK+{MnMsJTI>R7uRkvGApD&i|;>KWaruZ&S<}L zrlL9jdfHV)!|q(oM~}(|g7q<-TeJHBqy zF?OOw!?7T8D9?vkf)TyA3_Fc=1+tRClOWqBOKx(jQ-$2Di6n8*AXKd_6!fxF4I^1b zpw_w8v;>du!sQPETm`~tRZ6o(vt7cITRJv+F6(Ejck0}nTXMDJc1E>MI~Ntrj4l&7 zjU`2;h?a7YjZOFKG2<4vj13F{P;o5-pGfAh^eKa1W~X;K%97grpcbX%4C>M)ei@+v zOIKSrPWCkv4l|R$F3}(Qt^md{(LVFgMbA9mzeK(`f8i-3nxF*Gc*VA3m{()uv(a&5 zCs!a7GZQcAc-Fue_?bp1%4;YYtinI5$Q>B<80{%QCRDHw%;$&6#TmFcQ2;#i@TkvK ze$M_~;ak3mDQJzTJ+%b08`+aO_5ZEY#Ggfkb4Qqli^vp!AsTBK%7rlnMRBrUiXi5K8XC-B zP#UsdV`xXpIiGJSwd8sguMQas$P7Q^KLmf+CacH(6jYm>IlKA>Dr_WJrY}}msnCW{ zh>#gV4>Nm6noaAc6RV%NY0(ou%qDE*klSr z`+XZH5dz`Rhn~aa$F#09d3UPM;2Ed^U_G?2AC0!JYV}ezc@nIt3Dm_aEA7Zclm2bz zw|OSi@Eol#&`kGHF9uY7QJKwc$@JwDxmBPch3N$T;Pd1p%fYO)`%hB<1?o)^B;a$Y(&a;1|3 z`PBHpq_p^#6;WM2oqeCZc1}23Y<_h z!`T`Yc|A5eZmmI~%Zlwb%Y;#r%%?f;|2IYq(ai%ObTl0_zN7cf>}^G{HA5VsHUYH` zCZG{-sw6(oSiFszpfNPQ@z}Hs2#q%n848US9bbh-IKoHqGj|s9grH~?sR5sTq^Z}A(2eHuztO}2 zAywT+892pbS@Wfb^1eJJXl0vgcKEeL=v^g7z?RW9Wqdrd;fz%3f)w@z%L zYexoxJn=JQm|lmr0!%tNd9L5wx0iKxLj~Q&n)RmPkuD*%@4{zycA4FQ7@6tTKBbSj z!yFs9_PEJFw*YA&yMIlpB-+9z%jai9f>rwXeEv?)zFxFF_-z6oA!&j0R5Qu487Ajm-0A%^bvjB4-RhziXo+XydsobWv z4>X$6tZvJ~igT;(m|?a{pPqa|#k!`5fO)<8Pz<)8WZV?Sx1hn?V7Va?0#Ql1GiZm0 z)RFIbYo+pe87+(E-U&2XC>fw#-7fh13pSO0 zM5gy!GG~**ESp!r`YB{9r3JtHKE_g>zm%YXHX(tgIzPcr-Qn^#!j!G+X5hD(;2K{^ zQk$P645xck0w9mNu?GXRZG^1q20vDxw*YM`+B1I=rIQLrW)vua{*ScfMLb znlq+U2K%P5F!hpPNiOnpjoE~P9AAtO?;XhRFWLM$1TBZ*PosVl<>qdiNSvmj^S}Sl zm26#|4_=1v3fZP|nYgUaN62v;mv8d>mnBM_|C%s0e3)6-TeN-hvMPH5&;}%QUFhcG zAWtf3Z)yM)}r~yMcgNZ~}YZ5FRY*t0A=x{ECW|dE66Gpf@nCfYnxe1JBGFjK& zEjz+UAtIqUOYr-yXJ7Vx_~#w6579*hf%>Q%UF~d0D<+pl)`o4+)XiY1cs~D-iTHE^ z-yHl)Q;YSr$70rfHh;`HXQXRjQ5~F=W@^@pg9afbap(a zv1a<-F;y`uC&DzpZ%K)6i2f9Sge<+rWZpZj=ul#wzwzeWPP+-m8#YgP{ZefiUjV$!itOU2;2EtZ!Cr3Q$2R<8h zcCHpkYB9>Kd_~&j`WfvqTkM^eYY=lZxCs6WAmHryx^R=Fvx_ZFtoGy73$DZ-S-2zX zydWd16q?2q8d*;;Cfa=81z8^cFI?Y%*s%u6J}Nus4-)|X7KTmlmh$t5-$%0N&s)Y( z_N~hc;yk>p-mvzz19$@^8E>HIk8SFr)_e(l%yqru1)=fg}Gf5Ghk z;AyrcU_J=udclLZ-?WyQpR(#KOK;)ZFb{JH75DS|VYbIy>3XGPC`&uZ*(&9WZMsTM zoZydpl7{}|1*l5qdHsJ18xzV=>En1rs8j0*BapF5TCBYKScnwH>0~>^7GQ}Cyg_I5 z)3)g~rOUZ(T3aamcKDj7d^?-KzwYa2Ls$SWXcd{sMBQulUYeo*;r(qi7ic*QTYucc znZh8REx!tX8hmu?Nk@dpGllV2OD+JDo0wx7^Ev!uYEXBGKSEK>P&_+Cc^qR?nXMjY^ULq5y5+l0#(&T& z-+wavl>?41Tkx+IC}Y&;LrODq280z4*~)Ugze==I(!nJA9G^{#7#%#B{eA%LF2|sW_)2nbBb}b$IJg3-dYNnY3cw(zWu(Xyw z=&~3;sz#`lkh2hkfQ%#r1XFF{B7lBS9hAt6QP0A!dvxsaah#D=TbPqpT7(mJl-Ld& z!3pY(EKPsvzDZu2GS{~bj@h=R)k<`~6~>8(&6us;Vwo3-(dz?#uB`g3LKZ!s&?YW3 zE*+q33}qD~iJQ(in`P&K{>#PsQ!@PLjien_Z%AjYHPb-=JptE$l5CeITj6wm2%2nd zzvq2q%DUl9hgO-Xlz}>fYK&r{9a${Ft*{w8k%mr-r$&>+{W70*(oIN6ODf-4=7*M9r?;g8{>@WCne)k~0*w&EaqGd7ug0 z=JSzcaHCzZpBjE0(u2XHI%2W}3VFN6=HU$orm<@o}Am;Owv@?kiNn)N^IE8i9v?h=fMbct4i+~;E zb#BwavI4d1?095?Tf!=LR*vpP$3@c!#_5WQ0B5WyuvodSgMVz**F<1yf!aLBs}zN_ z@-A5sOw-K?YuExd4>VX*OKhZce|gHSQs;y{xayySu)Svfa=_1#qe8uNaxG~aiF#wZ zVWrio zuHvNPv8Os@y9d8+VE`?S=OBz7qJANtz;pBrOwhOF@vOFHEdj0TNUfg*llq0&WT!eg z-wL!dwp%CJns(3qlZ3M)r5lF(5S~8BGWpIld}6huq!9>sL$p6JAKWrOC`(!MI-SFh zsc!~mw~CeXiITQz{Z5yda0ao_Xf+CJhf z@MM1X3pIp_r9VHd3GdluuXYfsF_=PJ=KJ2?wtv~pt{fk25Il^EvO1&K>^S6dTU#!aa=zU0}S6|A~@50f@LQ$*ShIKC3i8pKy13+9v5EF z#9{fSkJ2C0(X9#|q%Ed!@ebvqaEn-Azi}A2a~x;}(VYe9k|&P{(|cwq^UX zcZ$%3=Wx1vut^|h?(4Z6M8Yr#yMO(<(p(_Z{=ChOuJe~KQp~X8W}$v3&(}mM4>xl} zf^LH)Sch3Vd+eRKe=@6Za0~&!S|HS(%X1KRgz`DdGQ2$2J4{+7X1^Ajs@wgHv-iN7 z45FGg=Cf#7#vE6;9W7nZ-?&gd`1<=G>Cj!WRi2tWjPvg*$Q*pT73W4Pr)BWQ2X04W zxt3F(GM?Fk{KWa@DGM=@Ip_mvDL$M4sySD>ZO?LxG`xMH|KwLqRd31lI&2YN``W#T zeQXGDKJe$(`aVZ0h@RUgqg-m1;^V3HJ>5lwJ7%D@kJ5m8YqjsW7)ot9#xL1SKplk* zxc;o15KpWiqLt!vOb{Tyn|u2ZIo-Ei7p@=(gtzo0TC&!u=j*YfNI?VlMq`0DG3p7K zx~Uz;U_?!Ne(w8y_f1eDTU8|AuR3tGs8lZ5=(yrdfm~MIumLu#{{+nG|ew^#)d>b6pj&*(_ zxFT#_7j8_{8*O5;t2_lBkBnxTqdY$W<51WI*1N3|9KE}xj$RRwI45aO55?I6q?C5V@~#I98^Kct`eS#Rw| zpL(B(>sl|b>5<6!d7Ygh$uz-@EbMv!um&O7ldX$xvasQv+KZuN^eK8H=hpcU)lpSE z?BtKuT?XO-1z8cEd5i?`c=I6V*0+xLPt!X-Lsdr2)(sYWIII-}vu!@PV3pyuJAzPr zst&LkxRrf7KWS$ZWOxl$fh(&_qwHR z<^G~y>v3Rw+}G+IVvZ$0Haq4Rw+#|#b`mUBd19qjx2LaHaMn6t@|Q2D8U6X9``VoA z`rk9gY1bBF+3~Ev-XZzB*L`*f2>QmRNz|VdZ6A*=mE;p>x3IIjh4Y0&rTsQl0GalA zswo9oAx1Omnx0yZ0H9aMp?x;ry3Hs;Jb92bMSBa&uv+{+3i7INccRGz__(A--j)7P zRI&-Xr`WR-VpUE&{?~QUF)*n&>wFGFmyjbcs9Ru;f^62idEacWO{+cf+W9Oe07P)Z z`Ehdn6T;a*xZ>LsU#ct;u3;E@P41gvwV%D+YqOv^(n7cJn1`!zo3x@;QEzDYc$(%~sLPIb zXZJ2lJz=unP#!i33%F7%&x1rpb==gukyFs9Q~vN{v(xc)0}Bfo?W}@&r##nc-)D7x zK^QlMkg>zfF_=tj1cQ9DnoI*8aN1vex2edY=6-Q|@K~6gvj}6pal*i!yKQxAROyxm zR3eS1(7Yqy{e!-<3f79p3k}d>yqWY6nvro`y_G(7*HkOx<;P-YHS0E0y;uqo5tm1) zkIkGVu!DN_*AQ3*oq*?hkmkK(P~b&iq}vn#gV~D^!cAkO;vV{AG{?Bw zh==V)FO-EwO?^J;juq$S)$=m5nIJg-UXvc24%3PAd^nz3y&Qx7l3Y{T@pvLk%Dd}R6&Ot( zbo0R#l3UQK*SB~jZPZV7rJaPKUmr3j=Jw|I{IVDWJ2jr31$d=n^GA4FAhneUx!phSy9<$R7aPgU{QnH#i4EUiG5`Q<`s&VPGc`W zZmP|EWAh=z-%9*zqAWz+pc!#{dJRJmw&}KZ&Jc^PGWaO#lXQ+%lwax+zoC|mu%cHa zL(gq8HTk|YAuD!V76x+ab2(~-?9MM8N;2Hr=pT$HmY+MSYgdof#Z~qAU`Vz-=$HMu zbc>!}7JD=W2!?l$iY`?NN=}9}(s!EbdmhnW8JpbScpQ*TgMTlGuF&I2%zY*{QW(jn z>gin&8_4Onx7fdL4_Qknso`MS$dIB|mHM8yfsmg`L-JmY<=#GNCGa^tXJK{`a=oH? zRyfe_pV1Q$Iw7_hb%&&pHnhc8GFA5{^c7Cuo`)};5twHnyFrC7a%7K9RWQPzPBcnA zh<(R%(+Nc>x=yC&8cNd@AR?t1V4IzHr|U`M?8J_0P=|Uq_DU%bp=BSQkjJ13@%HNG zb_OX22vDQf0bb(&*}9T!Npc&xj>D**b0(L1x7(N6o|bUHMS z30xp&ptI7^i}X78T`2f?Q57D7(Inn(Gi8BPR&B0GsDwd`_-G3kN;-3N#m)W3G?dg( zb~TU%IYK&w1?^VjQAt-+S1}CpCC^JL$jt$#WC<`mdoXmmM+)Q5U1dKzEbjxP44QCz z#_j|G=@bO~QGqeg;Fp<;!bx3^vpK`ejF3ZEWxgYVwmOsfFF3aT_11Rv=! z1P9vHc6D=O{gYF`n(|X>k5j$e5Su#LDcF8gpyrI1Fm*Y3TtZ<(It|Z0w8_zqg?Z}N zQR7MP(-sC*1ylItpq$z#cOSdRzwJZG#G|5KQ5>0R zN6g*34gEbJCN208zVwyeW>H>a_k$|lqL3g=@$r7(kp4RcVOK~LNEGp~ag5dgmddwjrK9foRLKi?1 z{GL7zjo5S>Fq4@K=fGQPppffkL8S*t#?Dq@mVu%`awiNZbO5|1@fesdIMQf4;x=jB z+L-QI8SaP=IP$sD38$~R=VMh;GJlEAAOM(}NL2o=#RMbuISK%07akcF$Yzn6@hi1! z28kkvq6gBEEA?YMepV;LP+n&jyVDJJBdSFX@&&;x&QTmw(*Z$ENm#JWT6e4JDa$tyGSm-$<#l&dK;iN5GzL)_SvMqF&YKbmvD3 zi26!TeuNkyx0m{z{*pxIo{9>j4RA9X(_m(Tpf9OCFUveK1 zczNOIHf?W&M5X(1$ANdSr1MGeq2h4kI_)WtnF(&J6vh%OV7J&xOPE58j(d3JtwYQ` z%0gH21F-EQ>fcKb=^$D6-$kg#1-*Sg&NAE+r`-3 zQp@Dcm&dSfCP)*Tk4#jAa`B_22snEBY2+lgiNq-174|5*&yrln%^;Y!=?&J2><_N) zjtQTH7`d?}9c-tQri~rsx4aZB&c)nxz3$zekBYri;gd~%ifF~0hNJ4yYZ;1@jh4b? zifHrzA$kjAAzKC+(=yO_b#wAcGT|gdE{vO5DVV>Z_csmRRa`A@pc-BhB=`P#mR;R% zQ^*uo<>3-WYA6?qDE4qP14@7(FnA;YDTckjmPDY{Aq;T{2gB^}J@*QTBI}iYD4mrOm5ms&NV5tqg*WXpK*hZ_Azplm#pTP7m$&Z&Joc~9qwc+ z^E-!N;92S^RT!P-DQpAC>+`E@nPn|CnXE-%DT`gb+pV~I(#wpGDYWD4v{dwm3{d1H zyK6>_*pFzyaX+Gsy1trCRwOlqI|%1lrG*M-b_q$Gxj5VVxfN4mW0YB&C&Bb9w`0J6XD5jx-iba6U- z&i=T~qjF!YeYlMZaH9ds@ zQLd4!{SP3;*=FYbNkkB<8vU>K&*Xv=xMm6rCdEe0I?2_~Bhpk7ABadHcdhPm8=oVM zNBAmYt-w9U#t~87)o#?GL&m)DVo*^0QffZ$i_YS>7C$#w*q}dF^1|Ij@heV2Pq&-o zzepB$T7~u>*FGT{xB_q zoYxCvj8RWEi(+NFwbaRh7qOzQ9Q(ERHvd>|@l97^!%3cTBx!8Prg2XHBB}@X#l^DH zB;qyLi~@N4({g-}!VQEXsRVLwVB%u@Q&ZL=CxWn4pCAdogPD9# zA$SHy!QktmkL_!&lrBiUS}HTeczP*O&Rokp{cs0p)G4 z$zc zSzDge(vZ{PB{>N*bxrOs=mM-bN&6XI=d{!TTSR^7`7(=7VnBPbPfc6l=61VVu#DIW zHG~7g#F~OWQX?87O8c;83J^fCd#6GGp?ImnW*Knk5-d!ueQC$>_j#GmC#^#jyaE4J z%KdH>xGKk1ip2JZo3qC=^3J}=IeC^yL-I6M3ry4Zxe?bkX$d7*m*=3dds6zdiRS%t z$}&=bMqa%SZ^c4q1UtJ=Yo@|I>+{gp9hb|q;feR(|(83s$@ z-VN9n)Pf}F>nU2MnqVDPK~hJGeSkDLjmwho%B&lgqoc6Fy}*$Vu|GzW^)W@@<3T>o zT_f@tyQasi&O{f+oiAkuE>@ztK2xJ;GgAzT_se!0X4^1iJa#s@uFbeDek#`9^q0;|D!dZup$iTHq=z!hMtu+^P3!KFFA? z1TAw-ASzt>w~=S-M$;%|c$K#1*NW70g(#wzoI$25CMWG~m~e$egW!$2Xu;Xivynkn;Z`wfQyA?S18b{~}Po-{C@Q)?=S9ZnR?NqIt* zj=``wzHD=Y7AtPP=V0M}LR%XwHYv_ne?WMqq=!@Cb&>^xF5HHe1_|Fcoqt#!e4J9;O+D$}(<86KaK95fu^bK#rn}%A}?0I^&>Gg9QpQ_L$Tzzl|*@Q^medj_- z!YI`Ng`WV5l^oMtzL(8EQ5Yp_f2;=aZTVL*``lAXD?z21O*ErOHVI!o%I-wghj%4X%cbuV5e(@ zsb1=E;C&^80}u=Ay-NIb#Ju+%7rc5-FB()PqZ09G#GJi-n^EZf>MM54kM=BlBNXYHE)l!5J?Tu4)e>!lTUDmf4*9Fyp1byS*p*nEOf-8((!W?9{R*B-M|K;~*% zgtb^j>eYAbX#@T38I{~e7FD=_mBWAJ2wy>bR!BxH^ORS64`hiEonvLCURA8!FQ~MQBVVfDJ{a-#H9Z|s}9ca5#`cG z(w(3gpu6QiH@_=2RiPOGom0NO2;x0$3`mfpXy|>b3SKv@+dZjXNJ%qpB%PXbcGuL}mSV65`dG*zn(9e<=x3w}iCM@Hc-vLRU*r@W+5S%nwDzDr)DZt5)< z^i4V>LO#x(XRN#i1P!moiZ4;7^kpDXo#=U)SZ7w7Rnx!>!hS+F zV_q*-@yQvq?ub^OkR~Hd;U#yPe7?Jp=mrd#iAbSKVT3S{duPdeND#^!emZM{i*9p``XjNtESB)H%#|XDInRb zfg4g9I^B*^0hD(3nr!;L0hc*?!DOlP;dEtuX~hSTTDcXM0*tb^An=KW?`zch>5k7y zVst4K)4HFQO$Nh}-`$`9IA97G2A9xz*Jcq%)$`dpX~a%jh7nW3!QGtoriPwIB4+J{ z1S^GcZBA}bJ3H z3m$j?yxeKSbwd9%%TRRo7jH!GQzJjuwHQ;igFe>~bp^bgbJc!>{n`z$EJzs@Twypy zPFC-~s!>pBz-S5k*x^+9LMes3eq!(LF!ix~g_2h+`c;~nKhx2q>&^yp5*+TSYeJOO zOz*C>H6c_1oj7=|OPb5MKDltsM2b;OCkem}1K-8}ifF`a@vmg;OG{G-m#CYc9PmwJ zXR~s)6N-edB!0ZwJE7s7+t&UopE|TJ_lad-8Y;ibW0y)7QKTX%&LfD6MmI$; z?GYu|QIyTZ4Uv{&RtAOAud@h4Wa^O}r&2hvgfl6f4k0R2jKpP}L3}ko=JYz;gvkz@ zm1_z!?;)b)`5p_DA`7@ESuks{X5KP*YP^ZWD_*lQqRE6#Nl}&x~QGD zsVBde0-Mb5YBrER=@}$k>(VC&MjwzxpEZBdbAR1u3=}#jD^u+qF?aF|gE;2C7xhF!25u>`o=A zLFz{371^3pJCq_Cf%HtyZm_OFv0R`#H{1&LX-aMeN1N6iR2c~r!Vxs49Cr|tn}NDi zDoz&;NlO|SxEUiQ5q5#83^(fGZ1g9X8#kJx*qFE71B?je#lf6)E)$Uy{p>F?>&T{u z)*`s(x>6W(|Gz9ZqyWEAKITuF9Kwy1xFPVSpGCz|PB*ssmjW!Bm;gvk+Cp-DVW7RD zc+u0_+`N<84KIDrUMF9Zi02Z&IzbUBE3_YX!YmL59lwkisRVl-y;yiE5DT2~BR9sk z)5G>nrN(xiL7;cs>cmK4KCGLxNyh{0MV(Pz`qHQHg>^t8mD;$Kg0>a3Wr|-pl(W*v$&C&t0mp6o6rUM_XuKt|?E8w}9J5%`DvrCU z!)9W=XmUegnvOIMc)<+_zzdn)NS}y^jfDN%kE-xF5OTF$suSV`WzZuD9J!_f{<@y? zj+?W#W+qR_2be{^`bHY4sx&HjmggYz;Ev6oX(yC%C8XGP10L!YU<;0?1ahK!@@b!8 zJ0y9K=?P3}rxQd~!QlrvbwHc`bMk`plbrSq+2`m^^IYEtVHt-_B=eb!?rrSoVsr)v zeP5*RU-H^(5sLK*rK`V^1B6a}0&QIzDk6RM7(=QzBzp3eO;UGoG+_#f zrjer!QIIvqH(G==i2t_i?u2uyG*F}fXhbAvs!BC<%kXsCJw*0pOuC+_w}Q(iDUz3a z5J<+;RgkyvmjJCWC1%VsH;p=q(*Xx z)UBDr;$KyK;ol|H{yXgf3QL!l92w+8)Ba^!8Bb)Rs)S?wxRvs)eIxd7J4qGSR-KFQ zD^gUAHk(RVkKjN|Wa>iZ8zQEkL=E~F?^sXiu#1w_#J?uPb#AzGkMEnhn36O|c!?9s zDt*bSuQE{=uy`3|;La}o#M z`EepY$Jl{v+3B2~)>sklVMnA$hLjiscBf<;;*GNMxqMV06h;G!SgK>5UOyL9Jp>jX z243%#feD0z`D$}9)z3nz4aKo9b$AFeOA_h-^++uuXyuQ(0&@3_Z&iEbe-y#C*OqJ+LCXAGkPpPr zKsYsBz(h0R==AEAWP#VM0yiFKqi#G!B|^&;B>jQk*#}Cqf1Cjgrp~7iQxph;stA{w zYnj>R=4-ZaQdbl*f0P$jto=61%lmvAPF2_Bo1&L+BHpHvz!=!j6rGIRSJD~a3Qx>w z8wE6b+t{D9k=T=P<+mmEr)zQVpJfU;+d%}8U8J$cMtTO-H@sy91PBEEqF9V2G7)lC zZ_V6L%ZBXfN(h7NOs=2o2H*@tETf};+j?5)dsmPgX$rz*NP&-1i#6YCGFbxUJx3D- z4!#Zo#2S;#Yjo4|=CrVtlwW2T`6RS>Up1BkX*RW`5KbA_fkVuzK;W)oGup~Aii>2S zFnPX~e%`q&^I7F(N!>)YH;@B6#Yoqx)n=RpMT11Y;HiIoZ6=4uFU1gOC8zUM1n*~B zaiXN0PP#_G8R%SN{A9&Qq>)Dab`4Uwe-K{*vBs*Y(Pn%Q1(&tcF#<5cp*Y=QWJT4q zUU=S1S`FgnxiW|lgJx8s4NY@7AhZfBxXvYU<0P9KH;JYJe-jBq(1c{@K<2w{cp| zL>!W4F6Oaq;o*W$WO?4OiE7=1Ad8mM;A^L07=i;)RQ2&H_h;Uw( zw0W+{aTV!L8G$j*ilOT-(gIwgvp`L%VV^j9j;SUWh{m_mlSn~g7&xxlEYhAh6gys9 z)QetA?gsWG%ikwpc}tk6n|`#rOg4WI>Z+InW(kF8b9cN`s*|oaFeU}pV_j*nNp+$* znHQ-@qc;lW#y=-@-#=MLzEpouH(YSZhhg`<1p)22$|UjyYHy|2q1fLv;=2^fB@{&u zzm}ceha?rJVad=8CD~s7ci?VqUrd5pB|+5Uq&IvE>Bvz{_d{h3LPT*km#82e&gn+1 z`CgO7HN*!tk?UK=42Mkh#?_{Yh2j`(w7n&y66~`RkIA*^r2YBaNDUz~Kb0Cx(WZ{^ z1+@<8dCQnG^b=yZNH@?Z%`vke#+2z5xW}`z%{od5hKhjnZBc_8_>t-6s;tU6A0$eu z2)?JhQn#)Vuw`{~^rBUcod6NJd>rcaMi^I*8Y~!PL%nnE{1^(CUc*Tdh5UIAuLp^G zCzG2xIT5)x(8v2tNQ7e3zun(OI=JsKp2V^r0m$XgL$c+4y)hIGmT-~q60`)@A~5Ex zRz;9>O9V|ZYdF4iip~7UQX>eSeE67`Dj02o$2hp`3E!0aO^GAD-Q0dm&&r}w z0DO6K>GJxCbb!wJh$c$a5Q>Wt#>Q;#NG`h(^3V-z$U$XSS~jQcBT?2}o7q}5xE7Ep z-HTYBSdqUbdr>kR=c^hj7N}#VISOhZa&^vJ)v&Pv|u#cFt=xA*=}rd4UHM& zzP=uzb~g#BnFB~K!9X|iudB2-jF?90)F4xVLP{C=Ih!SNtf?jCb-;i5qo(@Pbwfm$ z=^3H?c!QATCzdbbi=k4&%ZH1gr!d(Gp`b6Fpc|M|3T0)*Wt*pgBcLXzM5F(`nC5~g zHVQIXCZ<+B=@XGOmi#!Iz}LAD-aLtC^qLS3$aarHnPp~OAP|vHM;<5~kdClwOQN|hI^2aP?2>#$)XRi-~ZSDw61eW09>bAzY{~JHeDV?ivnTD;_qX2RjBNU z>_#0Vc=ynx?>axC@-y_E>;l1H^6pNcIHJcsqkb<;PzJjnCy@MUTe>0pq)6_uc?hez zGJ!VqoYK~w#B}PWEd?JSpdn6IcYd22U9Hd6*5ncrH5rZ*T2h+2MpTk@wKci8FulcD zN-Ff+??!4y4j$kcFfi<$pq`Dyo>#Rg9A$Gv(jYC~l~U*%*)jp6u>rXm9Faji^-KGP zNQplutSL=+xl&NJ+4+_B+5|y<&_H=5!RvkKp(I~VJS>5MS$VaQpLC3f=WTtXcACj} z*cU0bOI$wC7j#KJKl3=f5@G!AMdp0@THWgE2V0OAY45TVw<8_2gKeNlZWs_D)N4+3 zk-0$=tOLxf0UZARnN@(hs0#(yGtNz){wLAQ)G@U=ZM`FGX{g5PM-hV?SDR}W1sx?$ z#i2W=`nR}V`i3Uv0gEg7PQ14zaJTw;BxQJl%0!4ENp*<(*dmfx)8g%`d6T@%ilw<9CnLn++Dtn!cHb zFj)-3pBcU!X}vm918H(dNt`dh8(Vn;QX*K>IyM4Clv|m7AM;f^i_wlW?%+@YsRJ5a zU-d72KfEulNobA$0|nGGG;oH&y;Ft4?R(NnqRNE3|HNgz@8Hz0R1~En*TOt(8U6{( z@alnjqVZj%yN;>OXtAkT=dyb@gd=rDgL%S)211S@K5&e5V4p#Ej~`kMNFMSX)g{>l z?q10t$5VZRO(Pl`pU@#oN0>7NE)$;8s3Gd=Vj`_7h!?PVmiQ(_JT<8k|oN{~qD2 zC}NBZudr5wAnvXN4R0%$5~TmV1%p%enQvq1#K!l z%t}((8g3Mw6aqsGsIx|V^GWb0yJtlo9Aqyt>d2bv!Q|9xizOwGil}Q9nP?8@mc$3B zYH5H!+?PV{4qBr9g`Kq<$vRn`K*ovHge+DGKkS}MQfjr{h@+xuU@F*agohj=>3clJ zUxX%u(CKx%#Nv=FyB=K(?|%&i`}WCnjeqw_GK_AgRN22WE06KZ&p(4E_j)sGROun9 z#wbAgVX=tI?F`Q!=}GYLt72@ykT@IKQDS8@9|x|T(V_+6&TOanNopiq%*5*Bmqx*# zZIl}PH4eQP{{HMsvq)xb_x@dIHvHVn}B0Kg2Co0iE*WiFXe3r|3&DL^Q#~yip5lyGawn&9F-33Y-T}QvF1W!4=6rtOK}oQJILb!;KL~ zU#|-+HSq^d<(>Z&I>qADvrKns8DMg5YYn`evM%4M8OXg>58(+_^=~3&{RZhBpz1I%M-v~>NP)MQ1q#M;jZQ)2hVRjC(mdTD zi1vqnkEUimD8E=N&iph}Q|3`13-C40ikTXH4Bu&xy5jHk3=D+}i$P=ImTn8WUd{_wglTku2L!{dv^9)4m?g(pSVQ0CU6$*dgTJrkKD6J9LL4)+=s`0oE! z-CW$1qBmli4T}Ac65a(aeHwsLJ|8~j=E!%o`0_ND>?+YmI3_td8!~qv!lt&?IxO2H zF{7U#V@XuLsKU>>PHt_R5RiBrt&72i?Xj1L#aMH=cuqlch);xwY>jZNZm?FE@m+j8 zl8P#6AqMv1X4!{l1mCL&kQxguEMj$shnyQ*RvE;2eoN3RL(nTLe8xi}#I9ec${{}% z+k}T);b+lkkt>W#zgWTdI?UxC(mxg@{3)%07Quu#7jZ{8S|oZ+hf#kPuFVhPeFSRw z$&|1&VGxo-w01{NAXnmQ;VPlh3{^EAQ=Qbrl?sg=>ggkx(7?1SQ|JgXA4EvK?cuLc z5)rR|8N>yk&9TI6!4uJ&_wWo?&a5I4Q9{Jr8;P@)=Yy4-mp>!000dqL7QJl~LJFL; z15x>nO2TU0tDDI9Uq?iTwAoTF?s&W3oPCulcn-TqkzSzR$1)w>f~HDL0%$#tS^@W? ziP!M=sakHjVHz^RlX5|BwD^+nNEC{s#u;!_Yp#Y#da zEXHyABaX*|D$hT!jRK3c`&h=v!T&KOwd9TX&G7wh?$^3&0cqEsKOm%q7$zKQcofOL zAEnbqXz=q=m*7mPC{S$5>)E<*l2XpXfwC<)?#1DHSfSw}d8gXqJiL+Wb5i5()6@#((^Q!{)v zUZvPNtS-c0PuN*EMxpAk)fmI%KW8H+mbAuA+^DAUzPi+Im9ZRyt)Wme2ovv!(2AD1 z0Wxg@9~jZ(4A=f%Zo_w+Li)FQ3(8`8#-(#^1G9Y6SU8b-&+w1Wg z4nnP2KJvMicfsY@zL2%v)7g(}@096dQ?8em6<=iDn|*q!hydEd4*PcaCUdZml2KL4 zZp4-cbR_&L8saQ2#V@Yly@2uSJsuJ&jU7WZ!H3*i+Oa*=H&!Pmv)9juv+#7HrH0Dn z7v6mx{_zhn6JXpx7Q_^PY=RNG@p+y0L&6RS%xedVNgcgC4l-d?0~vxO7(GPHgLGb+ zPp3WF7n5a%rXODH|=#(PN;8r>Zd>965hhjZMgMH5yqvAMti%K|`g1UEFVTmFt`x2<**H)`{Y zIdmr1w~c1kRbV*N+aWxI=4qR0NJ{HMt}DnP&XB}hiyIhzS{Qi5u|Gx`a<~zeig;l? zsH(c!LxW7^F5&8#L^wIU&V++d*D4%xp;}Bs6^c!Od$19CEJRu$g79Oyo8QV@IMCy{_~AW#0{ zGrh zGtMNbzBlmM%sZ@uf>`Pp-}r9-Ws#NnJAl|jnQBo-tQs?lv=bWoZ;gYs(L$Gb^^dg$ z73477QCyotN1C1t7JGii4gFxM9BAkiM@T1$p@O!j-Xa1h@D`@M0gJm)TD6g4L0^3i zveCX!t5^iuIrRncM=Vg%1Q|*VNfphAP|RrR+M$C#!NU_OHH%i{Yu0R4{Vvoo`OvQr zV3SG+0aCT(Q=rcIwJ2rF?*d+QLk>5ZF;AdogG*}cqIFJ2@{dEC3Z0UQQf68}kv z;z>sNUL}?rPv?b!-0ZRXdowvwM0#=mbg-lYpnB~)Su7eMQx`v1ut16&{PnJMf%`_j z9CoS8ah0P5M8dvD=h#D3aB1imE2{wc4?-G1Rg^e9Fbjg8s6EvX4AAAKk3c+NaPQP@GTTj5c&dPO z`GzYYHaj#}(k1k@;vc6ujALElFH^hEdy>HCf!axkOb*qNrjG!6u;9j1?D-Sx1F_ge z*tFI{c;7OQxwqJ3G&h1%LQ9$-vQK~_oSR=2*WFSXVO$5iUi}MY=xf2?B}EoUzeX)M zeTkL4LskA_+#0fRF_*a-Kw9xfZN}UF8G@BVj@&a8Bx#%sd+-T zT)og;wgc*tb%v0im>$TlvRHucI2x?6^fdj)PPsNT*~^U<0dNFIvaA9@6?KGv z8qM)<^A>vn&=!=sWTa(EAtbETVa*qdOx%eb7;iagb%|ZcY59ig?GXOT06o3l@KjGi zt;r|Kw;Uwz5*^8*=<;!SDTEPY2%x&|5j02L9I7fkX>%Q#7XlXEkr4q$9by_b(2rgO zS;w~;290*?|CW!5D_6^IV*ud`gPVPxkmncbINrh2Yg&0vCY|6fS+P1R{ zJ9Fa+-EFD{M3bA0P7F+WdQ0@4*z27=;t3#DsUu_Z{om!KS2|}j(C6e-1->KOc}RE{ zzvrNg*C@ZV3V|O6YNS6)c6K*X2E_vk-DJT=XmOhnVxc+e9oaSf;`5*q8cXJdM@jtT zfn3BK+I*6g#do;}f|{)fZc6`wD%uS=|j`xaVJh@MA!%BJJH?3&bHCJYYjoYR-Q9;7*Kqvh^m-k>7^XK#2g zs?As`6P@yS^BR;D7mO5_rd`ESW-me#LN8LsOcvXz%NN0Css&fM>WRxmY7qwLkff=} zS!9#D&37`n*ZLd96O>Id2^CbT?~T2VIb|u0!B-&i{6ZI!Ob&Du{^!rVnjmqEE{QUA z@H|NU%{MMZ%x{H|xD@Dsz6!?h$(i7RR|(Awvgzcub;NeeV8ee}Uvx?LmsQ%x)-!SJ zg-cj)W{C*-7QfhTU7fvK6~)9zWCN^e&q4b4F9;_USLH{0$Mv&HUrW1(ND`J5{1-6TaY{B;BAOcvkdGmE$ri?#R6i33;d%o>E#g8H@mW zWfXh&zBn#9E#6J_hGf%=t+<{-?*cOoIT@K8Vx@nn%<;od3p&FmzC4X!`qa-Ov1yKh z-=(Erc0YYLhbe>WfNkGv38pK4mYbH9&o~D~Fhp2N1O*xjlq6BO$W`lbhY$XB7$&A= zl}4f+U7B>kg);mD4nKX$dx*5u^I7OCx>Yg~91U)~ZQ4sRiiTNmME`ZK_*KScDA=PV z4+O!y-Fi!#_~zrD>o^=+)^IkAmT5h5x2KImspYR0)H5Dl3ZzxDSQX-Gzh3Dfa?=^88)D4&3 z_r}XO;JN@NkV@stS(NC9nv8LyokA_M# zzWSs&%pM%m0xf2j?f#Zyy&U1baWbPcUJ-v-rRiZqbsS&A8mf?&O;(vs)m9F(gbI9e zW*nVsq{mc?J*9=GjNhLsA;p%vHb)>J5w>V>W0a_-r%WDZen4oMewWA^3F@jn>`mt6 z5j>u&6=5<_$fr-TsGZ39-pywdCGZ<3ow9brhw1_tC2>NBcmURNqRAkpOgqamfy52K z0_V5VW*MZ9{#W};IRju4gV9F3jJ_PFCz&G{H1x)9={dX7=$>vd9lYYNv)R>_*lQ~7 z-c-#NOz>;Z1VjK|G9enhr&lf&c)WhcevZwi!f*nwYb}?OloZkUj8S5vzUNu#97~#s z6FNs)<#k_pJG>E+ahauqD;xVukC|f>gYhAHA?h(a6_~*^TutaK2hdmUE9qJwD^JBm zB2BBN@&5S&7M5<-SSx9V_%RKm)#WCaSVl_`|xx#1p+uE+F{ zJ}Iwi?2D16^g;ywbRAj^eo^_IXdlNszPI}?c7*65SOiWuHa)II@4YueRZArc%LTcZ z=x6RJ-P7(4+C^X%wewyN#DIYCX)Ke&~>60=u~2ve>bO2LSqIq)))F%Wfw1x z5IQpAp<{kUv_o@PMOwO1kFAKd+De;q-VnPzwzP$(3{akltC_LCKzIp9ef$`FQH$s5 zUy087uJWiZTN0shAq2uSK}=x>{cEj?qvJMMuptWVrA8AH1#n2vAi53KbbqYmEu^ASJ$O^w+ifn*4;fnkODk!f1SsbD#;Y7y@Wq z9_32}4V62e??CSWf*I(jM)vfIl8^ssT9whuUxOH70an%F)Er)_rMTz`iV=J?BIr7H$K zlWDV87*ylmcV-NnZ-Bzf_~zjxLlZP5TK+wtTMBgrXR(1T`83E+kgd+$!%4gQ|3)@; z)dZ0b@DbM%BO#LcTEj-_kA0WxQ*d@-97sYb6o6@}z5UtT{E%K^tUU*{W$W(|1W93r z_b~XgVv~gw;L!VtSU~{JE5?#zeeoXgZ%$YD^=KfVQ1^1yBs3FSA8M`dK(NJ>Y3>-bU)Y zw)Yj$CM8LQJNIaFeQ9^ZN?It-3xW3LZHVQy1Sx{;3*d_y=lwy~7jeGo2 zgTT4pv)DpsCb1S@OC!3ZHAwf(-OLVswXsQ00&%QKrC!5IXlX{EwOc5rVwgpYS8a#6r^jOI&cVR;J+i%3mBY!AYRyx_;*{zU}EqO)Kua&148?Q+fa2CUOQ zu~)p-jWUW$o22%OIxb)=?TZ1>x_8nrUE$aH<+6tiD#t1VQ4Ug!{kTUwD*?{_h$JdB z%g&ktPaMsASM0P@{a80#BobJIy%alORY$*OvRUJJK|-a28?X-27`U z;nagD_ltGxMV$aw`*rFK1KWSM*jyrKK}p*?Fy6&N9Bu6w_z*6X=3bI)TYVTA=IIO; zg!*ygb>c3Ct&~6Li0p88UtjmI-i(3w&*W6U1Y_EeNiS-u_YZ-j}4X^_1=pVlQd3z zLF@ADWM`u1TBL6F7*rLJuhoBCFjI9zBjuAxr0< zZ&;Fzh$h7A|0Y;9SrF#MPgu(0t-NUi6cZ2Fu4Z;4BH^}*zwA{0doNrFc{#vuCFW)O z(B#A`vz6lx=4hXogqJzrqHXhPW&%P$Hiogmk*>14k69eyUCAhzD02jeEu#NB6kHdl zwWT+|V5|6P>73oyUx+WI(B{j(klJb^*8fQo9D`(f$qMcfBT+(tAM^5iVsFS{5)CVq zW!QI&6%WlJww(TwC6t$R%#CZzk*KRsQe5h!^vjgc0)Xc$`ekuk+EKU(A)yb-Sax@h}_!Aybv7w38mwzp8nk z2}w$N`Qu7{+?S+!Q{3;8aSkbDfuSV1|C_&-Z}`51D=?6h+D4Cg8RWfaeN`JeLVVB=?O2A0q@{9Dpv?G|J{J$|+R1=*2So^=< zeJ?jPBCCangqN8oE4;<^FSQzkOB35OP)v*D`61WS1b1yxe%KIF`@229v zj4N`4GFv1wCXZ5u^ORRioCUo$GV&1zV7O5>j2U0JYSB|a5;FHNz)xQPQ`)lc|1#My zptZ3kUn$mEUQP?%s7o&ok||@ycPYfO>F{{|6a&6MbA>b7+@RcZCu_LCTSe~K6=G5v zqd1PJI0TCTiPL;^jnARM^Yxmgb@+=+Kw@o$c%jnWHB3@kR1)=w@js}e7EDMgy;)c; zBi%wX1r=EWlSZ5Sxz2jaCi-=N`tVLI^NS16seAQ0vMNA^J~pPNR){bv0S9Zbqc1gV zk)j4wQ!PC{g_LaiJ7z)?)>TcbV>idwCp_k7=w;>50pbl+VE1qk{Lb1tH-Z7saN+|lx^f1?b8BtOP^+vn8J(Yx*`TJ7K1R2fC-Us zoG4|c1x@w1lyOdRy5+=EO%xCtd+lMkROXlqf9Hz_bW^494Gne~*+zSPicU}D5V$sd zo%3#H@ZUch)PYAyj^KPudt{JoH(xQOL_KEOZl{p2o*Ak0gpp`pM8?h=-|ibYS#pky zrYSU!cS4OD;Sj)QnDZFYmqYOv)q|BxCbhJ!#we9+L?`^iYE3K6ci?_~L-C$Uv`3E` zCB4e&bsNkAqq5%sUIsEAD>Bs<$}P_OT}^fxDtTDr9z7@N8c-Z%jNJWg=!wX5#nKlI z1e0=~0n8+4MEOI-t7o*i*Th=&wR7e33s(+C1LN2OrBbI9y9Px#OXRmPT=CWPl)$0U38iDPCx7%3UlbPEhYzofCd-nDbeEo?{ynoUT;p!mGLdr z;`m`@k(~2tSt__9qU``1tdM0_f&ff6Exkkj$7d(g0aG{o+g4`q)44=>^5d%9iY8oT z(tWJpH{rVCl3V@KyNqvro`Kd=M|S{4_v-Oe-b}tZl$E}Wq>OxPM&9>IBZ$?FI_dx> zh|(YUWx+v?@kv0iAh2QIY{#gXo_(YyG4^5InV&e%d{n*lbwdvPmDGz z&5JmtVU@;|3tCdm=w#{tsB9L6lO<{7{kGCZBRD<{|36@+hl?)gdbf}>)9Gv11L@~{ zgR3YSL91hjG>d5Fs5SjIO%omt5#RYFc?zedw#G#FPujyzyNZHLY-V4R$x??IWWn1R zv>H)G<60a-3|nbd`rmMv+{M~)k5!tIGd^%pVGw2Ef>Lfz7M&#sHN+6-hvF>oVsxZ} z3C~Hs0pyPPm@Xk2Z~hvQf0WqwA@o-kl;}g)(VoayU1{Qby{e?@&`Bq6V3Imo+^sU~ z-6c{`hJHT#Tmkkbd+h1xYNROfVjs?$TH2F`K-V+F*HvkfPvjnPPZG~{udl-9SfU1Knd(R)hwCL4H}cqO&FC}X;syz@s=Dvds`5j2AXW#yoe z6pJGzyiwv~uC$E9kz$t6DS?b~1TS2Z$x^1)kny_`xKWosCRLK_o-{wtlP7){B zG?QX1gaUc3GJW}hrfbH}NP_BJ2zZ=o8kfn65M9Q2|9V}loVR0eQ6MtNxd0Q7{)^Q4 zsB8G9Rs@I4A;kgb9OL1GP3Is_W5nu)oHyS~Jq026Vxr=L)w~=XL>J=Y*zCT3ns9B7 zQ1ZBtY8`CRd&=W}xgMRmM{j6XyBFwPLze5rl#*t=zwYSzJzGo%ZmGm+&ueq9v})bk z;xbnbQ799Msu|Rx-QAb3oj-1P=#F*OO5&d=$w5!GN>zZ1H%EI$>8H`OzoI?DJpX)7d?*XAaI+8vMOWPZO zQ*&N6!4fpd$(RO;m<9j9$dS{9d57 zPAvV7L99)V-cSHM{4N^mVymeQK7O%fzlCEMa)1y|28KuY|_#*pMA(A0#C&pw9@u^&&2`2-Ww zA12ckis6@zZb}sC^{MV+tL$CChG1W$KC8r!vAbhpR?Ps6yGs8fI?hQfBm32`Wb=cO z>;sh<>BL5p>#zm%Yo#JgJ43TCPE=RY+#TEKL9`&jE(tOKCwitym4I$jZ}F;`8x4RM zo!ryEPE}-CnV;lh81hB*OsBdErE0jxJwrp_z+;7myi`^>%8n$hcfr2T&lbo<)2oaVBbJXjDYe{=H6@B?k%CVv zC$=$e%zfX{F+FwnEv3&EU%g%5=0Gp8t}@UnicRlI%rDy$MGHrUsMqkZtWj^1@^OMa z7_`7wi2;2$>6hJ`x%C$S3+=P2lkrl}fLkybTv;)^r!E+JWtb^GF*KipIEK#4l|d1S z!Ht7P$!;+`B{7;_+?dF6HlmN2^Xp06%xzg-w*8So2b%_vqRreMzN>U_(k|TpYH|kE zhBVfcc^|0|;<~L-zmX(^_a2TPN{VqnNT9M-THFEmdauHe^S$^Sb*ux8^ApAYDno>i z$Wxa%>)!!-i8`~D!0!+&MSVqOI8pOFz&@o{Irk%M=azBDh$dk}>K|KP#4qu2Ec1^Y zVFfY?`)rHd;zcE>_E3U4Rw^y8g;*}87T0$tZKKDh)kT5Yn~?f@(&_A7b@f6)9swfq2%`qDLp;KdnrCsX9sBDl+||jOso&%kTsFay5hJ5PgXe#TBm& zA@YrjPrH%0Fq+Kqq+fP_+B7VVl7%Cc2ak6;YUd+LO(#^Q+H|-t_zH+aFGLT=b7ilZ zr_7B&W%B0SUwR5*t6ZEV#d!ov{Q4&fSYDIE9H5Vk2L^m9(E#9SKyPvLsa_pJ{%|H3 z5L-Rgi|!L--c33ao{HrFEg!3Y#96kQu@7spgmd1>(cdhw{(GJL*kc>8TAF2iK}#EJ zu9(Z+l)RSSV>=cg{14E=RK=n=wpSZ=#z__qN+_xIXwa!fZU^jf38R`{uvubIe!o!# ztVBw3ipKT#;z>SKEp1-8%EjdqQbD)|nDIo#P@8fP)=G@nm7ubYxKpSO z!`(qFHF}9qnJj>WGZXw^ z@zS`-AY(MNU?igzuOW|qW=l3yFLk=?5^4zW6Z4K)-<*?{@l3=2&r+0AqDD*VB?+@86w5u*Sbj z_ZO4I#&RN7#2FyXqO zi5^Ep2qe9FHKe=>{pJ*JSGar@8NojnaCvl@A4@lzSpr~LUO_=7vDl)^i{stREjl*7zD9-PO z`9;D4&{i!JWurLNwIH<~1ANQWv7#{$HMiI;Z6q$_sLo!jh`Si1V#NcPuAhE_FYoP&Mce|BV%;e0+?9psn)aK>Qr2Rnx!{I*jTaixa1Xcn-?f3X3^3_*ZxkYzo3Akau=sqKK`Zl( zxMDO0)Zf@sRYqAp_yh2S*!gS3_g9@-x`MH{lvu$=l$MONgiCkmLOK4tW}sDPy0lO~xq_EJ?OvvLuKmHb(Tdoae(Vtk9 zU?127&GI?JxC6n12aVOx58H`LxuG!EqkFkG*Q!nlvCP1#Fwp>t-jccKwrj~tiw!sV zl1ZGXz(5>%y$JTfkpm%`0o8Ggv9HA;__B5JXmFL~47*d+7!g`$%aXCQ{8p$~-ah-Qt>2 zKr>9~Ex6&tkX)_xL`7-~B#I}RQDU0$1 zo%ojmi^7HQ{nv>nfK=Cy2_CBs0XCR?+uq_1IAeKwY-N0tDPek}5qC2Y^EUvwOaKhE zBJ>wW3>qs9Lr>=}yi8RGZgNL)jB9hh{&MIVKktDPGhkrSxqnfabPQFpoqyu$H7>$k%2ocr zzn-iJyUo#(4S}LuT&7?K0Bt$^tC79$+K@r zq9c8hOHkuDWRNkdp~l(vUzw$Ib2F=LnV?LFPq_*{$!+8N-=~6*Ry~K{l71XvzLrxk z87$6W3bUi8rDDmR>Nj#9R{ zhUo!kKwMzzmKOI-WK2Q=n2E}K%oQ5(Hh=EZYwh#LbPBw~BBk_QE^0^>yO!Z8Do!Vq z!%w{asklp%>^2_kVPBA;82Kpx*BM_Y9Hl^IFkST}6K0fi0E1uxg2WLw*i9kFGOi;P z(-5*ZC}PK`q^;G#z$YduS;9-!p(D3i{4$$@1&>NVkpK{GY_Sp@<=rk!$(XoqwEicM z!5-@i*MtCew$Ac3y+CW*H9qLv|Ho%gSs}cTPCf&rBXxZvg+pqHzE2Z+GQf<*QVA)# z*0tQn9Of7lm9E?Tjr~z$tKF{!H*HoR+~0W41+FQ{7A6lbUfjpXu!tZ6}XG| z6^>+bUwX=Q2iuVYNQ)uF*OBV2^?ffs=gW%ZWV|~IDkp8li<}ygt3I!cRRm5BOB=Pd!54?nx$AnK$Y#bWNhdj!sCA90b?o28o{POQ&AAh66q7mRcYC z<~2j|m`|$&a*Gc{qb+6En+Sgxl&6nzPucvP7~&gD4)X>mOG^LvwTGP$g1WWLD4soX>t+>KL8 zG9KWG3u=-hzWco^n+H5BSB+d4T^NxR_og*9h|V4K@P=IGTrVsUzQVbYq(at4y?BW{}=j`SF}cxcT;|#8#~ZZ}^~ZNOzf6 zY(yIMMv$kkI2v`Oxf2X7KwmL;xjX+`!^VArxLF?s6|D3!Hx27f=R)&-kwV6XnK4b? z)ZJUhoiSl9!rW3rXFaADdy!i*UCd8BxzKhD3<*UO5_fhyC(l*L5DzDdBb}H{@(-V) zkwr^O+wu6vU5V&rNULs`noww#ZoXk#WP56)zf@hJth$Qi!m_tiEjl#4;Z=ksEaTP+ z&?d<(pF%t<4)>`Z17$T-%F_Wjm3GPl3P=_QtfYtt&U7yw61r-ZUNxCV7W^*Sk~`u{ z8?!LlnhEAfWhybh6$d4FPGo#0LQ;bT^6FUjzqiFVwoMlcbVE5<(JoJ+?CJNQt!fJp zAWSHHe=+epH};&L3uPl=KLnA^?gltoBLIx1ijax)dB^cIYRfcf20RmwpAqc zQ(~ls;|Hq21{>l)+b;PLVPH5l5M9q2I?|nPN9rxwU?qYX>`bwVIKj@8#LZFHdFl#q z>h1W$I@OR+D>;#jU~M@tC$8AtOO!40PR{(B^&naN;&FI`*1zb`9F2MM{ri=fch$Kp0CxqDE{Z@*wit{W(Of<6 zqP=T81%;Iz_asFNLZbgiZXT7QHPR2Gg3Igm3w6O$_~QGxfAMGC@3CDQ8i430R3!BN zCAp;g;LpoWcv9qw>e`pi{ULsLKa1n37z&6;(yk<$g|!WbP^A$kC@iJ9Og1#_H&c8e zLNEmaM}gmp2ts(uKFWazS8ZGHe=9!Zp6g}on@`$CI`Al7#&y2mjc0`HgjMg9;Kbrk z<+Y)3(S>m!25rK0jyb$gzw4xLK-1w_t`gV?HZNFjXJr>`)kOA`5isTT0Xt*p2 zO*(#d0J>;ED`gWut=IU=uA4g5Bs5g39cdB>S?fw~bF(}2{IupRmlBv>K))ZmH`nII zi*DXc%6@zTc*Vwwe}7WL%PF;pyM#3NS!j`s_%ZM8Ni1$Qi6Q7K6eb|qRnoiM=n+&} zVk1>ziF`qh8;1(64Pic;72~&`TgPZhY3bXndtGghEAf2-8On*0jlHmj4%XQ`4ZaNS zjk9Jv0W=0Gjm0E7R3X%KBB-bnLC)xIbT=X^Aq&vbp*d7rHu9c`c;z?RHNFYeaM;U+ zh>XMEJ%EsoBNf-=5S!MYx(_@P&S{C72%Q_)&246_6l1Igqhj&Wpjd(C;{Ftue@wa$ z49`hVS+n&=?^l!=7gb-tF>5F;cbX{O)d?t7^Gu?kHR8NqC%($#ZogXncj5iNXN-Gk z_;>N>x=t0f@cn7u^cjB`l_ZW0B5C3$zFbP|G48t|Dc3t*%R{iG{6Y9Bv#q$ubrX-` z3w*V!gdRM{87FSB`?J_D{G-UN;Z6&JI1=WICUdlE^f*th!(koi7zUdTA`6>DtlowX ze@sZP$&eX2K`#umSc5%okFy({xNe+?ut2X7$^pF^DFLbAJJvFyLKJ+T3A>qCT7Ga7UZb5#R+!;Xn#6l5?fc0^#7O5CCO~!a1$3f>#lmvCUHm^Wp z`DvTa*&b9j{MG*C4uf;jj>AFkpM*3r@U&geWN-A?t+myv!VFO2DM?Aqz zAiw?<^DjEDha~ZU8L=l5D)_#MB_&h?nhcb+tH=G)nB>6#Yhh>uhF^@}r~%!N@fr(7 ztI%Kz`ZjK`n@#LxE8JYU8}+N5^6+-Ibzj?s$w)`4Ko#ZXgUN)>(HmHk?)#7VO@Q_v z@gZ~YfT=bILUnM6@LH58>g~pqZNIL~kW#<=JXE_&i%Yz&kE^fGg|h24f!{;;drCTz zyGOv5f;{QlBN4AHUinm1E)KA&;fqv9Fie`3jQH7`eHY0R)P(CpCFXDK+@t>$&61=! z0?Dk&2eXV3U;hlI(v|3Chzg3lJ_emndi!$|9*1#}1_6j>i-5LI43avx`LjYZ3P}e_ z*e4RtT@(5+rUfvB5)DUdAY({l(Zrp*sXm@(cF^Hm;06f`(91{2khjW#5@*UNWegH; z{>EKS_viVv2o1?V5s!%19+5>rH$ZgIm$v|uSd?72CWP;5 zKO;Alh#%?Ul##&rm`*e9pwG1&LB8cgEizu=ebNxL9L(^y=`Y8yq7x0OovtNWtLDa% zkcNI;C#tW}T!X*ZC9zOb>tEa}G}qFL>Ap7q+JGEK+yO;xla!PbPl=2jaU!x}S?neT zjiglGSJxgNPCdF@kv`+v%t6EWHrXRxE)HFQC#|uTMnNl8f8N{kN-69HX=rpUB$T=w z?B-J!#-|>|lohKfcX?;f<~WAbVM1z_vWu@mMd9PAneiqF!H2lM_`?Y7v7Nr84?_m7 z`w~@5J1O|KvtKeT*92}l^pIm}Fcu5gS|d?%NsK~QfK_5Hd9SiUSy!Oc4cu-6Q;0G(HPYv4{!!OOVr zm^zQI{)P|3@n-=~XPGhop7gHeJ*5hH1S<9$@XRk@yRHeL>Ks3(Oae%MYhvZnQ|Qid z{FF-3%c0w157ttEJZTW1zpA*@glC~zl!m~0u2$XXoh=|uDMS%_Gx$7mL0dS9|= zPmuV%gF*rX4iOH_y&n5^)HyOZ#Y?czLZ!SXe#%9{o3H66afM8D7R-dU_*HhD-FKbj zyg=|{g3qGG(3RNSjzhy~1jizIdq`fn zKPTihYAU=fYR$VTaOW*1V0}r)tP=`hR}{EhQ$P+r-;*mAYwpEX>Nbqd2(WC3r9~C; zYcg34#nNv-YtaFUh%ZvklcE9KEDRg7$C&XuF4Au>0*vBklNLC~d-7rT?{f{n6b#+D z=au5Irf4#`yO1dZFqetZxf(0Ti?I+!PPDL8T~%z*P5EM~bN>=c4k(!$09Slfe1bZQ zF8uC$R?RRxx2si=v*rVqUS?32))dueNOkzsNA(^mEUw+`qLj~GQA)$?YunKutwD65 z4y3ZeNHd1hS}gCa`3c9UmJ;w708S8vmTb~kH9g^AUm1d#l5O8ThP$7WAfjExZAc6vqrD9 zu4k*o-LD8*fjq(Q>rp7@nv6r!k+1XQev%ZU2#*>~cCXbMk9dj{u6jjA9h=UJEb^|tODjpnZG0x)n) z3h&XTa)sH(?Y#{IS*U&!)_}F5m#0sVpj<+Kw4MXBlhorFH>1;b;+}+WP-4``xp24h z{e$mzbFt+xoHDZm(I;BpRtrFt1AWwFbrQ~Fuz-2vi~g0 z1n|K`4J*cs*V)wKifRg@k_H4|=h3V0MzOr>CU@6P9w_~+8i5oPm>n;Fs`ri5?YW?y za@fts+8Vtp=Hu*lBYQrP+LOkf%{IulVMhqub&V~%O_Zi%z0g!NFo)crAEu{QvKh_K z+rJJJ>YXy%)#DbJOgUqoP|tzb0OlR*s(alpGp*h$ zZnA$fhu4JH(3zgH5D5}EJRIm7J=EhQ^Hlp8gGwDoEf!b~F%?vk%-cSrS!_Z(E0|md zc^t;mD+cljpe{l%n1nxiKdZ|aAPVx3GrBH5=D=qX<;1H-Zv`yNgd#HTSob4hD`IKT zhKC`QRNiNd*t0&nvEqg9OI5+e)LrK*x{dV1h(K&Ok}AQGi{%5lnhCL*4!9 z?+X?;K0hV^)|COsVQFie1imJR(}_0>E>)%<=O^f<&iML^t^-HVE8T5{k7^n$#WcW1q&rBC-g*G>H z+GLh!pU@({M*EaHUJ)B*Oeuu0Ba5POcaK$;%u#K!;fkykE#(?&zqBiBA5L+}eH<{Y z*U-NhR4ycS62AN&(|U)>)aE~(v*NpVI%Q6i-5-}NgP=3M`8_blS7nt03B(lq`$km2 zxHdOCDeZx~1>*$%C-yfpPO05MVUddEyTv5cz{WWkrigXyQ5GgaU+ibsUTqtZPkfVo zf0s#GNz)ehC5E(STk%(swn;T77W^K-(6y%Te#*D)Ziy8+fFf&bKoe_4U&~D7Mfk5a z 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

HI*r{ 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

gTtWbDz$KrgqXP zBmc)g3fCI8Tpy7q&sGf-Zs>i~$_D|{lK~iR8I93MKz(Ge^AL9`6DW@^cfYmP7*67Q z{-6p=4fO`Ee@A`F^7*1$W}(Y-pN?3=-=Ye}!Hr}n`N<;RwhX!+K&)}kaCgyPewl!` z|9}_OXrN9`9t4ghJ?k6U1StL4wpwcZT+{npYh}J@poB1`4+FCF&r?K;EJ#k~umK9H z6>I0uW0pXl9{|8nTm$C?H~{Xk?0KSr`bwIGNWoxp!VK=^Y~kM9`DO&&b~MgsLkuBq zg!kGy$x2k}1p31p=Qg>?4ob0+0Y4j6s7HmIc4eQt*YO@Zpbbh0?M3fTy*3w+vK+8B z>e~l)t^qab$cpyIL|F6!t4Q)9yGrxwO-%{0U?)Ty^Dcl_wyX!>+5nwwil7_=oV0}y zuOmO6q}VAoTTzf6MG*qkJli1B+N|BCHXc0PT(ky-0P^=52P+guTcRW%Li-NvDaZ^q zp;nbvWbZ&^{=7kN)9Ah+6I6Vx6<6A=CLF`FFocNt!34}gv}7Vn>@h~wA~ zZ2-V|Gn|fPIOLurV{LO?enW4yJ9t%-_K|s!Wz?tlTMM^z#ZbFi8*J(GE>mQ#0v{9s zuQi1F8~}+sQ&hm2Hm62u%c_a@*(!6@C&}m=KwT5yAfF>6c$+yvO0P};k!JHjY!noz z;wFz-Jw1q0N9xdeO!YSJ=9A*>8fG(0wvucL5fzAfZ(n8JksPCgGO8!k6FW_4ipf@5 z+}jNZP2G-(r^3~$EJZqjLU}*HV^yRP)nJztMvGweaSnlw#~9k-X^iuS!lz?$g1&%+ znSpf_8-G-8w}<8N}>c}A`<8kp=Z7cNOWmfXuxO+6&2gfGAvJv$uJ%DQ>;N!XuK9V) z+_T+;)rLF_dROeAu@e;dSYMa7wHXf5oYefckGYh@>s3>%0K4yGK~m;g+RtUzIriOW z)#MFaR!29&Z2bN*Kb9VN*l8?*P#g$!IfTr|2PEN9a;!oz(NU{&CmWh9Y?Cz=xv1{` zOpMXHe3n3JmQpdkW1QyDGyvN6Wd>VpZLByA(ufwgI2jBpje1cCe<@UiLUkKj+gyGS zK^mEidP%;WdIPyatBfWmgqwW!+Cr5F?&<0&U_WnOX9?ZLYg%|zV*}WzatwZ-A=N+g zoSW(XDljFR6daGqOv(^^IR|#w02uR{MBvyyrsN}0ss zCpN+>6DdOs*sI490?lpk0!U<(gFJ?ljcFMk?0G%$Nz;=0jQn>*9%k7jhbT=aLLbJ5 zs1;FA*hCC2;fC;Tz3PLbJPZ?Sc|IS4e!OF9Putils<=SZ*T@hro9uc#&W(g@OhLa8 zkVLIa{$VF#arM>|@H)W5sLA3!OqOh-+AQT_yv{Jyna<9+_Y)ViOMPf6&0a+@0&@~g zI5tB82>!#Wr)UNwf#1#ZV>6Z7#;b2RW*P=S%iM@MHbUN1Z}g0Nsprt`-uPny!Vz>e?D*HnbEoXeWx`TQnu^2vC=K()-P&M389|jGd<4xu2>y~hthl#u$_{r zOO#K5w8p;Ix&s|LE;HOZgr|@)MGbqcy6}R&1Uf!~8zz%>f`?dq@s^JcSYjM7vEv*< zEm2=jomgQuDm|mo*BtXisE-@PFl*>P1G2D4{q0zYM)U|=T)!J~WpGW-K6rt*NM_=u zxj0Hs>$H%{jmu*o8Y_YFqB6$A=5C_NOfuu0zcHYnGSk=N-7-(uo}-ub`7t1Mb-%U7 zE>qN)O9@wC3fE>e5CUg)GEX(?bEa zhs<7Wi5F}MpY*$AJ$1BHLr?yg)J!=xQd8fML(gJEor z=VYF~jSF(k-W$??Ob8!w89hroO{m2^I<@AYjkkdFc;}DFJlEUX03$>*1yNV&1aZ|B zTN*XnjS;HI0{{IfOvphS929>b?haMT3Z)cM!$#Xa|u_D}TZ*pC4$s|o3-w@bc z#z2*dx6L|7Ue3(*Wc2=^S^GRhl$>r&qZ)DptP4}^YaRRyp)?Bvw9T%3BO9sU;^Dho zDwJrA#wtMbf+&y`ykkzhI(rb%F*p&>hdrUsx%g!S>M?>eit7hz_}8s7Q2G1I2vHCf zVRu#J{i3yt4^U_o$aEltzJ_ds<)S=!s@oIOcZ@k2%y%{XVd*0!b9zFxFslhC($fRYy1CIq)MW+2@)9SbAKgxb{Rv%G6p zmCR4{Z%ziEwDQ$|986!~_?xh$BZEOdwm8WURzFb$xYYHAB*ig+Zr^4vD?D&U43&DhS$SHaQ3ob;!5B?t2P2b2%@ME$BSM<7~mIAt{5OToE%eLggeux5tEm<`KDh@@uH_xUB<~WTKTrFA%7H(UO zpY9E*r0f!`DQKKYLmMfI&QuQq#sz< z4oJZfLo{q^o{lNPU6D#40`*}JRI0VT$FF~qO&{=!eeqb@7Q!L6X)1quPmU26x-tR$ z4HY#6fjxQ-GK-Gjf(@onKNh>B^qO0)n&VM0@+=-)Dbntf9dNNLUOxkp!U8E0_&r9m z=|Vl(8AD_OyQ(|k{A07txxH&}QuZLzFV%~^x6hUqs9Yd0@=~=S(m<}t8iTQlZqIRfxP9Eg zDM94tap&b&6rFvx6JUL<;x#I?s}tezj*Td?K3)iCKKdChMuJ;LQyde~+6+}XpK?_v zqkcoll*nZFTH^evC21g0g>)v}pE87@w21fIcrajbtvXPyxRv8+PuTJ0e!g-vdTjRR zW!lhrLV1}t7-|J%Y)qmv&Jwt{kshsP4Ma`_`BSAF?O2?McHSxo?aFKfR-c_LLrJrg zaHYNVsvW7+X2udJ@#GYgCk?me2pnS&TD)b(+&NB&I1EX*|LnGPDt{Wm3g=ru&T$5R z8#aW$%M#VmK=9*4rx;tp#g-a3IE4V9m!~XfT@9}VSo%c;hf<^%5Xg!%c{Fu}oAE?N zs91g6F-$x(*KpE0eg4`sC6<2Eo+bF&j-k(%J~pc!qq}Y54^wna%T#VV$M!hY@!++_ zib5PDq#!RQf;|b-o-|el&&hE^k%CrzRgFvT7+`3tP{b|#@h9PVsi0@}wx7}9pkUlhOA`VMA__sCT5eq~ImZlhuq@Fj*vkM0yNyiEO9+@SmnZI$v?N3P)fzp(sY~5i5{qh7Fno=zL=P6rD2(R(p zLY1Q7&YYjkyoL8DFy?#ufHQ-l)8-Wu+RF7NL{rS3p+&0mxWPo!R;x=D&?Pj0_a-?)tZW^FV4VoUUNWsmTAf6 z{QR_8rQ{f<9^y=$HPaiPWDyf6flI-T3r4m#`mTw$ z-j*>YnVU0e>)>N?{uOP0<7)>)ErUCMY|fjveb1MtB{=us)5?oK%hoIT{xCZ+_K&7} zu4ay}g%`?&#vbts&KO4a$L7@%*%sq}ZvSe)bTGpC-u+kU`UEP0yp7|Aev>NqjW-v2 zS$E*Ta6$)9Y#yWIp!S=k_c1)JNn;z2(LN^U3SUo#*mhwvf4OX^hNDFx(x1J)xYxof zjEI4zxboR=3Zi|Jv5shH@6HU~Y`hW7O88=NUh zn2;Z&$>timbHp1|l}%2Jh-4WimM7|s(u~2KgWgsI+53oEoUp*VpFp*7bwPLxat_T; zp9@!%Rjr`J;!E$`>tnQA%XVC+sf=Kk&dN!-u<_&?7^i0pEzvg0+yXf^Q+)ZGaftj2 zAP3Hyy)q~pVhJ!7Sin40NP1mtj&H9)f590`%m!BsXYm5*!pE_q40()%QWjSjjuW4& zg@TFKezZ9OSeqd7$YzKtMhN0QHhOPxv+3BJ?a`uQaw8jk%;d*Rnc2Q@=quj|RD45V z_W3r#CNV;1Hq5&Xix^wxryQ4Y9M;2++V0dVY!&oC3qM6<(V{xUj)U$SA!BL$nB8}* zM}d@Kp>u!Pmn5OAsPVygkDUadk!G- zs$4NVDcme6s4ddWV^?2QKj-tf6(ttEeITR@&GhI2Ya5$wB>K1M_5aL2sy>R(nCv+F z`M>TOs*FyLfX=aQ)z+v)FLfL#ncQu&te6SRjXIJ}lHpmnyhY+qP1;vQSpY>qy1yT? zi7Z+yL>I||hW;_ZXzBi>F}=-^of39^O)91<`3?}a=w1E}BU|H0b8;T}E&ceWGM|#G zmwwRFQU}0erROfyq3>`2!i`aO!D;3Kn?wLR2+Vr**KE`yj`I1ILM53W)%%XS4C5-y zy)Pyrm$$#)1?6At7rxEAs42uL#NQ1xDpfP|{l&XMdvwphq5 zsUU%>N8vJ-coi34=aFsa4ceh3@hqrkSweGjsql%xtz7D780C^4x{(9v-kpU_kwMm4bL+F*;N0Fdp`esi>GT~(lOJ1^2tZJ?k( z*^)5z3jNX>)&ug-MOmw1Dt*Ja>ux&6#D=UJtiv!J}7}&P}7QuDL@!^JHi&@8`E-(R~ zYIQ7ZnMo+iBKX4@r0J~cX+qOb7Al+T{!?VUYOF`u9Gs>;2<8UQ!W^5e3v@St4WXOd zITVa0U&~V>;Kz*R!%)VftfBV!)E9-PdxnanRf_Zqp8%T=rqU}SalGEVg{3?O=v{`j z0;I)f{#HngR|zu6$+*oC$)KyX2$v@u(gJCDA%<0btyBoQ=C=9M zw58z6%h_Xl?Y1@JQ1{}kDRAbr zAH65!rM)aO(Vyyx(`JDhjdsgFPFsfS858Mpce6=Trn8%AVGeTI37|c*1m|i{0}W-3f(z&eFa$2X{g-ej_qS(E1l-oym=(B;vm~^A*{p+e zEHF3N1i$^+VnFlS91J#@b=o2N^?CUs@xyCJ-YHEaS>S1BK7nJi72$TLjUoaFn_(61 zN1m-+%FD~VSOzEP!?*m9T9rD6=NgT8S>u?-hf-SWYrGj%t1T3xMbpAR!=H+fg$Vfk zsV?It(_hyia5O*PMBoOYO6&j&8@{(a!(YB9>JlfXxxg<25moyvu`sI4H#R~;eGOFY zh371ejTB`<7vEBOXHi!d%j8%^rBcd+jLx^p-GH-&J1f#zYav^t#==0oU~%3fo$y-c zJzy=IuY!oFf6kX^*N$*2@t8@&Y2F{3mUlqd^h^zW>;@S>;_oRC*s|V9Hdn5$5?!gx zrHm#0sTqWhj78sW%mGpz&VAPsKRx%9^^l2>oTVb7yBu{KvQwy^HayZ3Xx z#DTvTp2^@l1y}<9%8#)o7bh$+wwsQ392{nEkt(gXD3PtV+?)~;R+Gm7i^v<4@p{FV zvlM_f-FPi=iD3^Zs@~+k*v&jFb%I+HaR$zqMLRORi9^>{vP!;&!aOlhRCr}h-<=qI zO3f-KdQml=v^W{SIqE@v)$eo77#Dm2bKJ|coyH~>HX5b7MZ%~e)gS16a5Md}{&%H@V0r)gz%5yW1sG zWCko#s=UTSCfeQrln166UmY#B%5OgfTyeo7C5|*M>ohM$afoWsTA{~w%MyqHwD|RD zu^pSOL?{o)W{C!ZITuRjjVZhvk>B1=j5ZpU#&(_L*u_TX!~-k%zQ#z40U5Y{=GGgxGReJ+!?&>lS%poi8$&L5uX_JHXR7|fdm(FtVWy*C zR;_+)j&sj3tAEou+2r^ZwVLb6q$EkZ=b*i_Rxocdne4PmU9uU^d*IXtD^%Av+nc@9 z`O!HBLMevl6+VhLbe1wux+=luFAQ%D6~=Q>bTa7zBn&Lvju}NR1TDMDuI3yg<98v9 zfk8}wqeLJT5!0X&aebSDQb${{45{}zoea9YbWoSjwuSq<&)N2l+K+Q3=x(JbeP zR3nC(&qB}3OgPij%{eKRaGj;!lV7o58#%W2c3LJhhj6x+*qgRtf!obc(_HvDCy2-+ z@CvT?`Kv|vN}nHX&fy)Yh7FM4`xI>L$$3qca=ui%ZXeLmKk{La1}dU5nv5-t^MEl8 zW#Ha7j?U-P2=8NljI5DIsG%6NSmdNiQhOZqbG4S1fLigVb2|L@eXZKwMPo~*i@l(z zUYS|8%G7?+fX;eGv2D2YA8mgYY>QOTV=m_OX~F z)d%4-+^@|5W8Ri3Gbd#}&T>Ec6fd)4C`vp_3L;k?C0M;|H)-k263GrUrhS#~5lIRY(9{mTkyFQ~opWwsYa#Wc!H+6PnK{F}%s7?x@5 ziI3}0(y~jN6k+wC0_o%Pv(`HC2!ubQgaig2nt_Vxj;Q0ur?_uhThVxN&J9XR*lZZ7Nytu7{Of##$-2ue_+0lV^ftq?|w;Z z%HTCLy!tp5k+dm~W2PjcPy`w~eSVkZiTk=0lk-H1y+QJ;iD0zJYYWGU{;qegSYQcm zDwYB}VT1DNaj27gms4l|tBxV{*dTjw#mHz6Cr0@jJ6RYMD@=tgpU? z5DDEiy(t%IRcArJYZ2?-5f+N;wJmaIvOPDoe2+~{K|S27o`!axZ~={9r3pD=fBTXs zqX7AyRKOR3jFn@fw7%ER4NWg5c|IoR!b=zN>C!epIvBjXug`ZGeV2&!%~X-n%<98@ zQl*q5=$^|A9r?d7kIw_iLP=A06bxQ5AI0cwXTJK{R#wii*C@%+1~b|Db7+pwT#hLY zq%pD2*hIC|S0^`)4 z&ao^nN%VFnyv@X|wkC%>U9_n4tHxA{MsRc(Dp(;1a%=d;w0PmG+Fa~ZV>~7&W_%Ra zJnhnuiLlge71-zso$p)207@9_gu8!iy3WnL6F^WgjTk@DdBUNi96IQx%I%EE8-@%e3C7?Wy%qK|OpY(1?X;Ontj zqBnh`GP?zE(}E#+G4!!Y8JPy=9Ve_l7Nb==<&Vu-&#^B~*uSWuceS|kF_>E%-xX^L z^DYCq`07;0mMXI-bic8(5b?uxFtP24E};(!R^aZrOW8PUY+b^NdRqYHe%=t?zU z70@Mi6XItxL4nVm~&Adq#bF>x*B0HSImV;<8mc>~6vubD$wp zlB0&l*oVYE0pw?JoN;#cEG=*p`-GHU;~-N1fYDAKu%(Q5x3Vjn+PokB+hSre#bZj% z<8eS5CL_O3G#WdnA?2I>c+oA=v}QS4EQ^oX`47F>WZ7+Xr(vqI$$lE`fU}c_z!a{h zv0Kok$MkwmjUUs;STz=ljc5cRKEi-?!22N88wr%K9|G`SNG736-#Me3a%i7Wg>E@qyZkirPOIxVn z4Y0Y1Zd7I?Y5za|s~YA}aZyj6$q`!A-jvJC$q8$Gj3HE66Zja3G~5Hf7Sb#PJB_G3 zeT?Rn>s9w0FG9?{eFUhg6!Rr|zbcR3H^yK-ic?(sn(6$f88!|TCX51!5QB9pr&)O` zZL4M|3jkRQC#h2~)K3xE@GmxFgatp}lOI#$CX7R=M$s7v#|A?ah4NfMHP^=SXOQ|D zo;|bgm_@2pZwA7~jGF5M>FxIUY3;ba9Xb=0@t?Rq5-+sOw(rmZv2&o8I?}Y3=Ep?b zUBGi7n0I!z-ybQS6QT)i%>&vc2jyTZZ^ffP#59%z>t&~JDnCfgAG(JcY|qZx?N zU`Ks&b7nW^RM+qlNZV?LOTtw8;@`HChVEBU3~vs89?X6-o108a^%CVyM(7#~a!F4d z=XNJTnInvtI&KV@N$a22&lXr)G^{Riz*AeGxLt>wyxLiRQ98e80Fhv~u2x3LiJjUy zJ4>dUuMDI4P7GO~qRYjQC4HJF^*4<-(TYt5ZD*xdnQlDsL0B^zi^O!X0x8GhP`qp*UFVM3`_(|59YcOrvN0%5H%}%hpy@aNWZMgkY~Uw0 z7wDFp)NwOM3&>r71+H@suCJdk*`=t<53PeLntnxS-P_mWNJs=urpH*N+0b>I0e?_pzh>Mq+S2He8u+n-=# zM1JVIe5Nao!Ke{t-a{-?F$_3Zxvk0+kI*FCyWi35R%pk-9M^QW41g(Xu-{|WW6)AI zBoS6-*S`f~Fw>_%XDmz5HviPLx7PDRJZsZm2KQw(yNDNeFhJr= z2{%E~$Z@|pJ%S(0vFyBYZ>mYFe+MQj+8wHK$TBrjYb))s-&){6QSx=cGt^pOT735ky$JJ?KfzEUPU9+PCL@s%7b4mOIv*Yp>Q$K z>~vB;nlfslyi^}mjs+GDWwB{N!o7%;y5MErmhpi}jQ;8^P^ma4OxnsO%~6a21_6Q) ztpqY@5<)y-X!p!|>>Fl=`CFbOyyt!+e`nd#Y-wt;(b8wdP8>OVOffAJMe)QL3CKj4 zY||4|9qYNvfd)sOo0nJ`_&dxcQ$V^v#!)K2{Sx-i&^Dzy_%;@s%!|C*6iCgB$Ri~K zGKN;!Vzx1#!n1Sn*sv_Pc=#-50k*~aqQ=jnCvN4>?-Hiw^eFR9Xs3F`5i_}!f0<6c zF8`K3m8FLa@Jbn}V+&DKeZ@JSNif0yfZ6HpYen|#cne1KMJCs*6iv}aSoxIr12|jj z&O#V>FLP#{GE6~fC{4-tj?wskL5_Va-p#_uG*=|rAMa}d47sT`bxuRqLi+84;9hRV z8i9s>;XCFWR8<-Fs=3E9$jAz?pXFmRMY=QeC+|9me_6&$@Uhv-40$6HtFdUES`fba zaR_G7ihQ5^_%&k9sDgB|O}?3hTd1!<6cvQ7GveUFtT(NQUSZ%(w#&RZUAzX`lM?LX zFY6F^&24Mi(4?NT1*SC4{Eo>y4lN*ZoSIur5C(HN-$cq@;_(Y)My1u-Gy_pB)jp2N zi5k=8S2Q-JOPa3LFV24i!nad>?FkS6w15L_!`PqSb%LxOra5EpRF|zS-u~w@7&$#+ zj_mq|=oe|m%uJCo+T6yz_-Ye-zCvI~8_LI|DJu6iTH<~IKlfq@7?HnFwIgh?Y|ttf zAV>Do3oo$%Qfpv+2{oJ!2O>R8GFf@=^rjyY)o`q4&XDwD(?m};G@C8`*=mDsE3*+c zd3{lm7n|3fH4#ZXg&AX|rLS}MFOuc^Pb@c|eo=#Pp`F-kHsNY(=TUD$_%ei^{N)Q) z#M5vbAl}NdK~2bgz3vsRKPzGZC&{SK^NC`KU0AOx$r z^2S)))?^^PuX|(m;4delruj)1&UGh!ld#BE_0nz*hONfO;>4vTpffr(071(o%2qbMr@UlV7^zMUR@2ZJ^m^3E)J1;HZ zH#fk`YY^~Xcu&q5EBEflp0sYh`U;K}y6P3*N{R8LT+$m&%URb}W~cTHH@|Zw+W-TS zAI`3Yv~Bl&vkQZAVRl~!wg2dz9Fw(1eI`bgvtRLUadDw_;UFyS^)K+@k-)33;aQwx z(7G@Wy@piiFZYeuFMSrQ^i@{=JwCk}Z8W;d-`}+aF>)(}Ht^w&0=QK&5U6_(AY8-7 zqa&?BLSY!oG3lc|MK7x(^2Ns?$pB+{ z_3`RF`PTARux}~6k>{Lk-3cilc=;hc5Rlp6zn8{hdi_2F7a&uFT;%MZ?II2N8Fr-+ zQ9-x`7eHZt>|=AHg!xEYEfv=nK`hQvRBZ^LFu$`>LMATKlX@Vj4tGp??+^E7v)-5Q z9s@k<^Ayq4xqOw?rMUFgf@hWS7wTIHPN?lSQC6)4i+~3msjmw3u{paeptvq>U9*F3 zNmJ$PSkMJMJ+AA^^Qb)~a0GmK)tk&n)xeWh9bk$J$)-Mq%$_T?lC`6+z^me)crDNZeJB%bMu}aXD{U* z$u38*+4*0F-UREPM$iCu=d5!JNd0@}n|w@Er2Ja;33g52L98?f7Z`?4JOz^oW(FXA zeh#S65tMKN`V_a(H~y56jV*+Zqy~E6{5G}0xOfgnf^k902XukCje#$s1u1@rlmT;# zGZoe+(AQ4bZk2bL$ls0z$(K{KUqu>`x$~ zT1=62O!_=Y-z$2VjfSEV8>aENlf;VRpMw{~GDG|th;c!@l1%}(%9r)0zDsb_&trrq ztOP}-8Fma}QYCgJlQBln33K6}ild?(dCsmxqDv|XkBsD9&STojeU?mt`JskoL;R?i zVn9X@VYE33i70P90chBu+|jL5)_Kny|F-rGF}rbtnNRnU7O!#_nyA2%2~3vte|ys8;#mHvF-fqWg1S ze};<3MA>kC5=8~emVSMo6-oi)TiE)%D`(ofJRTCOc;cgIfKooai#dfG{Sky1K*&11 z7~W}|_RLvTna$&jcq4&^>l^+|krm4UB^Sc@bCYXE!laVYwrR4zKh16f$AIW z%Jf%<_fcOg7q}}vm6(;F5BO2Kuxivcv2@O>Pc{_0H^z2p6}&OgDdppJ7C7y|^!M2= zK7mUgMh2%>S-&qaG*TaM3NU?zz}{;b5%y_aMcw%jd}79vV{#nw43|YL`SzWF#2~E0 zu{p1|zdWoykb%m?`4;@s&R)tR3~^vzqTgXfB3@-d{r1;YcDxes_zA;U{4MJ~$)&-G z-lPmX#jq5X^O)6+t4wdudp#dE!9(0DVHevHSW0?7%RqRhSCP@{;h)u~$o;&LhZ2rG zA|4(LmqM3NHeQPniOvcrSokBJeKP7zMk#sUC`g^H%+FZE=$-$GCP4V0BC|VJd8Jd< z-tY?4%2Ri82;KHvggO7Bz8*E6NlDY}Qex&!<p<~cFJexy<&o`L@O-BkNiJB0s6apzl11yGncKgKg zGt%^v{@m8B+&MqkL;m-uS+<@#vI?ZoX0eTs__W`n>>0s@6}y){%e<57r9Pbw;~i8} zupCw@Uv&YU4@J@W{ztrL>@X0W;PD8Vt?fdqa0@sN*aaZAoKTNNRhr$=_rtJ@y^%Kcp^dM zF}!0U@(Mu?%ZO*KppHn63PoMuhV`jjCK6MHQrYIZqVOaa*I%cewf4E!K*2BZ%LrLd z4T-pe&(X5Q?%$h#nqb({1MGNgrL6}H%d|w1;t4F13Jnk~JPQ0+;+pwqb!pi@l^Wan zXp5sj+*xr-%KWNWPjmoSSx|J;&oAnIJvw}o=e^Q?8BUyT7hzD>KS4*BbH7C<+29RtWFO0g>xr4Iy5xq^c(@%K+r@^V z)mW4Tx`e;2k8I<&;~_QS^g+=*DAbo&OhjR|1RGGw8dHHmaC6Xi9w`LU0jgr`iP$!n zB;rFaLUWLuAO%sIiUn|{H6Qw_cg zN!3Vq-o`uINR6zJ*gh6Jrxx2U$R~}S9q3U`j=G@1a(`HR$IsZQ1Pj#U4=ID>tA@)c z5IW_Za2ZWrWl7r0^)MdtVG6qOs*`KL*ET~2;_)FXG7Ax!9)H>2WEmjZ7p57+KuaR89& z_urj=SP`wt{P>n*`c?Ac8kWD=rK7VR*!RoA$K$3n7KG6D=IjCgBb56 z>j~?anIqSyywUkh0ePbmO*g&Ac>Jvkm)Qz0e+k1tuaz)Eoxe77uCR-ZK?c(%3*(IC zvx}F29N*~dooIy(Se==nxEG!3c@5D!XZBP1CxE9oB$cs+5%7tZ(;WWQVEw#i;$T7> z*+WuGc3swi-{vGH0+9T)P_ct?HE|cASD6(GLZ&X`iPUAIY|l$}_O6Q7_?_%Lz2E^U zsE;nTSVe}a-BrXuxgjK(%<0^PeYWn<-0~Kx#(iM3EIer}d|tw5_7GP&xJy7MJA;mn zi4f<$c7>x4v~JNBU}qdB*HQ!uc=M!)9G8+YHaL5+s(L=Hw{+s9BC><9joI?-ty0iSOnJapz$IqtkB?GV45SRD-F*#TD47`yJwKd4Kmi~Cywku!J4D#IeO;L?A zI+?-}xF<2agC1Ct249r<&oi9lnW zmj=|wTGh>TXgZ$nz(4FH|0O*=V;>;|*ay{vmN*5F0C29*Q!}rwMY#bjwDvjG`=q5& zKg|LSL-!8gq6;sx6r=;1!pPKoA_`N-Oh0yPL=omyJzWg4;-b;}fB_g?RDwoS(1^A2 z2FXr6#KERXY#lMdg=TfMys;{WGy<%xp^RN@@XBy&nsG7#moP}oy!!o~;UernhJRY) zT}GA4o4dV~+hBvxL!&HAWO6QoM{4Vwo_4Kk6|b>IS3j|7mx#er&F1`Tpz3inDnCX9 zs#g$@vWAp{R&f<_*`SHO;~qB@u)+4rqOWhocXSi=kyfjSR3r+Rj_|u3WVt&jcId=UT2wyVKUC5;D$mwopc$jGb zT%dlRDyjc&A|a@>nHsPu!0gdCk_B> zbqZxy7T(bt*u+ZH&KSVvl)jB~{p|9pnIQ>kx*9ui;a6Z=;+r1?$1Z7fWYF?WT%Zx$ zPRoIEBG$k<@XmUHkvL}EP*w4^6Too&mw^y{%YeiIW5R-@u;Kp09cs%GGmme=MtbF?T@q&Bz?@B0tl1uRyP~w$&k4=b30`cu=c?O~x6dN=$;W%<* zdZX}kem;SCTP>6P?3(DA{~4+mJa@(`Lr5JRL!ga?9Tb{ zsToS5JyPW0uVOX*&mmtNqe}E>Vy%ySAko}4^eFdFjZ$N$mN}6Uf_Zp4yg5cy&cNmz zB8^E{tD_}0`*XVkoKN;$0WHg1S?WzDyJ?;KZvRN3tho-Yl=g87VM|$GO)pG<5(3LH zmyYcJeUGQwTWqcf_hCGR%Uu%^c|E(c+!ve%z=*`I>(6MC)Z zJqCun#xam2PDguhzpQ;uScckhWly%X^^}Lt{7|CXU>}beIF)f}_VdsJEbn0fVPz4y zp|kR5&xflzgbuEVp1Joqj>^!dic=;YZ{9a#(s{|-i+P=hw7jrksTTT1Ka5~vp%Bvq zTlaw?X9sX_2Jg%%d7s{OZ;TWnpi><9kUPhK8Zw=l#yv8QVY!U-uZb2<-(zC*7<2me zFK8Uis7~_y5?Ra67CwK*-fybz;C?1MFQ)5=e}kW*qxU@xF2xmNXcS;E6@tMw$~&Ll zB?M7`V8H@$gB^%v#I#&DkjENY;Hi734wb9ul>YMp zdQrZX7h^ec7kN2Yn}3?dk^rARUOE$1H@lEFNKe=L`DtCHYUaa!1P42Q(?SePUUTXs zX;OCac2@JIyZu5FZO=ASGN3#Z&M498h!Ngrt60bL+4OAF5k3EWwbe@SPgry`-~p`7 zY(KDZyKSy+vsNQMl5=Ey;oLjRb*}Z z`ol5?;iPTS2|9A7#}yNa=F^5IeQQiJ4wh?DzWg3)dU?~p1P~ZjUmiLIvtF{z!_*j* z_^k-9PnpZ_m|ShiWNb`w%2y!2DO>Y9ud25Y(lp1~A?o~Lg%q2)zIEf-=J*_tPkJx4 zGR33Voc*=y(qsKC!vdvlDg2pNtzX}-@{ax7@Es5YELPGI6Xl^!LuEcs;!t+ytl$dO zQf8d*$;h~V3{6&QwS;Y!&1uGRmgEC;xIrJYzn{k(WjlHA@928_4hOQRKMzrQGHtV1sA$Gbn`(&fb(}BDnJ2qh1)bK{61^JY-k-PM z^@AByL4lftLE{FrC7Iw->p#2s=qYjej623jMB6dNGvELP{2l z6A}qW7CM-D3!TCaYUZx~6TgaWAE~m8~p?YFX&bBN-Jj3yW(&ps z?@R9!h=V`Ntt}#1j2_sUWc9~&;1moNSRSwcsiS9`ZGw~+(UhYYB;1o{MTSbHjPG50 zflunbI6}p3FhChk6#cWnCZh|C;hoflcuum zO6v#7)N$b=_V?4&9z2==`^AUf5h%k`f;3GHRAINjGQTHNC?ojKiDtL`xst12YG`o<&siDTsuCobnLL7%P(jKz3OrG7Z}b!<%Ka6L~jT~7xxpy{@BlbNG zy@(XBqs@)SB)$Iigxs=k|LyzPH$MLLio9Jlo7lv~WnQ3aTtV$~rah+!jWXhz*iLd{ z*ZygUu)lI^-e#e^X8&q?`KkGE@zwm3#+Ltke54r~_Gom*m;hO50{A{_%xPoWfzWYW z86f=qJnQ`3d2>%DEQe~IgynN!3Cm+}cf6~QxIk*Grf(!Ufr9p5RWt#sI))>@b4uEH zdRaf(YnMF_a5(OJRbNO3+i2+Dq)w$r*tOO3PujIV37ikU*cmA1sfFn(U(B0E=G zB0s~JPJ(WC!5&|7jS_XV@mhX2=EaGuAl}GlKn#}RelBP*r!LF<#%e9Uv}(X7DT9bc zQ1Qi-!4(2>1C^ytsjhcnEnlhpYU`}eLOD20qFtddsx9;xtYYMSp^K1N&!B~*7i7NL= z$GRV+#5qzhjog;}yjM|txj|<_zo{veOfv9#KnUj9fAy0$l$PF81=Z_pQ9=P4`6{u) zLWNHs0MYqQt_ApFzPty!h7qrN5RghpMBzFe^~;-3+_OT@eq5_dPykOm^Ly*y$$1(y z#QU-#`C9q!_jzT*FQ=!dw2m*YgKFJn7_H+3P%^=ov8FxALUkG2?1bdWm(cNB*W` z31f`->T(;J#nuU~R8K{o5KM*mP>tSVAKRe!YGK!5@zp7LJIQUj5}CWtRXH>WS5nJy zbWy68q&XIg)ykkp>@st3{C8uyXn$)F zJ{ug1W-rf~^NIQt9Jc$s6KZB6QOG#o`?i_pY9Mp1IjO1ILZxF$7Vw;#cGPU2p1Oa8 zNA1PCbIJ9*L&QCmlgdR7t^ki-@HFQIlssyuV-y(9KZ9_Zr>!S1g%)Ve1s0SnQBZv( zu{Sm_>VO|<>rhU#e7Agg?Ur0O^&e2l<@U0`rsUL2D>6aOoVzxdM+J%C+>JhyxTkpw zkq2d^<`W4X<=hU8S!|_FTj9@wqZZ0i&LuLbkh8b)`Cl{*Dv6m2ajioS*s92O!&v9) zDQV_;&m2Y6^YuRdp?#0TTEOo@YkhQJ*IR;mbf0B%>;SZ&UaV)l$q1vve}ix>ZTLf-}7a@F}!byKr5FXTUjar`S4EY+B+J{YOd#_;;CesUmf=W zF;s$YiE*})PlNW@R(nX#blf^9%DPqt0mDovLET`lU zLb8JXJ)%XYs_8p1gxpbY{Qdk+P185^{^7#Na=+ws`1_?$)q4_VD)o5{VqOd#3?z$9 zVyCX#8QpULXh&s>15GKuA3X7OGS@G^v_!Ujm)J^i?>ZC|a433$jq5!+l#v3IdR&5n zUP3O#_QuBo)9N);i{#n`4Z&ba26&O_K9h5)?(Mr4F5FAV-d|tCTL_+?p@cf~o!Gik ztt4Ptp3Q(XR>|RvWQF!6|1TW#9O(RhtD;ynf@pFmoE01^UJpe$#Z^# zev*Qie_8cz+1N77N^V#wHd6QGq+GuP?P6mb$v~23hwqyE_1g-)D_js?uF0v?^6ppC zqvoOH;V!CEHrEuA;lp_ShrR`F_^e#O*HN}!l9=DfRlI={v}kLnzHoVsZkl36HK7-} zOXQZUdHCSu9|c*L-f8WIxXSi$p3N(T7FKU>0h~7Tdu!jeet*BZ6y`ZVVzj;-&M54l ztv9_Jyn}y+1hH+{=suYet>&5XAak~2JW3oC>q=g$!|V3}(dfYW54CuDf;g*n&hwy=IGLRq01WzS4I^h`;zw*#xy{egkRM5o3%4MsMUj+PHi4mMD6?^jNE^|INk zg8=9ix&q&CbQ0m1xePSFAF~_`BsE_TiWEp`6tgS^+%4Bd+fjDXN0Aop5|n3lJvPb* z^b>t2DRsDk{i{)5dxDN`aCF|_m8KGpMMqc5NQ;w2Tk6}R3|X?f^r;WJ7f=6245FT= z0OUn4^M2&OkHo%-)4j$oLWbhi^ZC(BEEm7c0gXqaNH|QHJQ*Bi6?&mJ(Nzw+j>gPO zr^BBbkHmI$zz)h}V8U%B2jBhEU^-zbqNeSOjVrS6Y$0j(P6yiq02pmy%1U~wbNT10T;z|4YkMTKC&pBDBE# zKl4GA`&dgH*TPYKh=g|J>ZNGO+D|e>)=a1yEI917rKRt?Q_r zBRs|ypScn)pJztB7OQ;TFLr6isK~7+fb7p^gHE7l`&|#VI{xU{ElKPHM8Z@~1891pXc%Lkk zqcrKgx~AgsVhW}@$SE&vUnjre*hZf@m|(cbeYdVH?eoSHLLJvpF5q-7E&nPdHW?{Z zbCLxVsSx}h3dU8L{ESrEjv77Ar#XV09rUfcDF6L@zGmZ}et=&J8*LX#=U1>@61Ebx zkSh~c0&Wug`?mwv902`+1BEX6-IQMWC7XF(Y+}N)(gxhhg|yOs@_fRg*oD4FFN7_t zHsW$2FKHb%NS&VQpc^PEDBNrF^b|FB;4>s=pj+karD<=3Do*?31rKu{66I!enPz6S z+zL`8+0NvKS@GQ38=9u{wEx__`Y;V3fxFTpBzk(-sp@3U(6-v}B2;Tv*6N<7&~x*8 zb|*5+!MKt(_cL#7?Rh`ouAqGE1gX6OLd?>G84 za&!VmSxcc`B>75zuaJq|luO{x`s4YX+h>Z{|I3M{%WlJWXAdx%tiee<>7l=d6bc=f zd<8jWSi*GWED(uQUHN)f`i7BcoFlsi)5U~jNxpiO_NnIGO=L7KBGhxO#)y)>#LAe; z6|QjI==|sfR$p*ji1+u{meS-kTT~nUiTYGVG&nC|&Xwgh`FefB(E$_zaIzy!qtB`| zeeD$#f{oG3Ob9Azp}P)}Ubgm2iEhgP=x+ad{;GZUQj#7w0D{d0Q5;dY=$$2Wq$y&b zRx#KL^sg3G!X;lUA1k*d#`^kql2k_26nxI8;h^SiuJXm1 z(U8P7<^Z^hT%bxKr`g&si*ygvwFuNTmMXudxIMT}tnF!mNFid`U;q+G01;oWC2$5+ZTuINI2 zrs|MQYBV$fQCRd0Y+kyvRnn~{uEUnMU;#5qMv&^U(ka%rpS+h2juX4WcgaYfq0*G= z3P$^&wmZR!hV-Pr7uViWrOhR#9oGpjnCk;3OTl0{uJP0N;4Kv&)DKbxV+b1h#hntfh+a_kH9 z-U<%01Hn&_pm0A$;h0X#)K6Ez2L|##lB02P5mHlbyU+m8wq{m{QF$VcS{7U_K7p`1(g4)_ZJ(a3pVlkBxTG!$s zf5D2hfqctfsYw#p)5H*=opH1D9N5SKU+qgb#PRud%+8=GShC9(&ogybzsMb40~n11 zy~UPK>Fhe+y)LjJT6>nKKtpL!r%nv^dOZJke$E_5x94pd-{ zOthmVfzWQzw3-A(^PF3v4zhNqXm#{uz8~f^$*7x`27(2(NHn|Y?iGXHLcV-F{yRWm zgPw3h-FzhToj9{ zL+7u`k%8(ULLaO1GlpicajauL)IMqP`Oq@SV72|iAnz{(Ne~=u&P}J{|Gj6QzO1`H z3u@%%%s)wPg5y`|KYBdoHqOk6=2Q*37!R2|vTC9`riz(2$5C2coVkk_L5k_$_?+A* zo=2;O@9GVb6O1v{f8Y3Ma-EPtC@W$*_rtK{BHX#L73Fb8+>EYH43cd2Ge^97xdk>y zfuh*d{hlkGp0Kx~5$|?QE!GC}MG^S=K3m+|d4j*kyKm&2Ym)_TZzw2fMw| z@cowm(qiz2HB^x|26b{$ASv(qQl{TssRfq>=zL1cXH9u-RB8LC0(Qw9Z52jF z6>9O}?AIIenOdlWf3BUCdzq5H7_r$8?~`|{faE7I%IVb#ufMc^_HV|R7_*d|u1d+5 zS}lKURUO%U3M+>CuQ9X_fNS+{-9l7dqB(BNurncShc|wY3 z4Ek9*^nV_7B9c10;N#QgME2;+YkA2;5NaYf2;baRe#TbCyO&Y%F)MuH7s{I$3vx;yYeI3d5-Y(st14+dcyH9U7Pcd2Z}fGKN|m38?>hG4a4+OqV4E#efakh)M|^hQUzS5x;wJcx z1eP^X<@)rpSNd)5c4B=fiZgkbKCj`pTqHPO4{cpNQC~aHCnBSV8){B1)!Cwdv%eAJ z>YD_!QRd$Z)f&{I&4j7A{8b=A>OD4nGLfK6XJg}2g_7%^4a5T#{LzbR74j*}4wtU6 zWjNCnX36_#gM7|J-Run!tTkxI+8*@k@|#w>Nb_i+0Ip)YYM+crkX@j4?bqP|WX*pZ z+7V~+dx%Rs)=7@iqxU$>S1;(6Z(?;TqH#6Mdh=C`6#Joa`y>4iSs z;@eQwCHEt0Sq=rjNdeQp&ZRY4#x0lnY_H3MoFL$P4*VcCpMEwP#Q4Nml;M-_0~b}U zo6Co3{meHA6!2X;kR6$q4sK=><%dl4JTduzKonC0MuMA6G-OH~^wmdiHu5t>a*bTP z<#tk3w4lH*8>+$0XmV1WqOE9MBbNI5lqfh{frsSw#4dvncF=xiZqRsEk?Z4+at> zbmrw2R6k22Dk>!vP$v=*e^6CmFaFuU)#ATzwcqkwWl3!ebrOV6EY6xw=q@^A=uDv8 zn>$4M`$m2En!vv~fiCJUxdW<$38Q@vRp^M><_FPAlOJs??eQxx@RkSrPcrt)qbJdD4QTJ=R^=&(?43Nt;SG`AY1e-n4TR^Z6Gf zDHhe_c%!Bg3<;ioSl^L4IchP!CmT zQqq(pDK3(O417?nL37p7(+DaJ4UT0?SUY{K?HFevr#Bbqfp^%0Gmiv!hzv)hlsSq+Kj{^7$#t@iwI08VYdCE6m7 zmO>Z`wQNdUBv{o<{S^;TVCp_h0USTY$vWB=Ky3siP9eF>E%2FPt>Cu_^_}RyqVedU6e(a&JsNf)(mpYy#ZJ?PYq9=#%Eo z&OE*(+vAN@o)tyLqr3GeGUDIXS}Ug)P=D_t4(yPrpDS-KD*yv*0`7 zq*q!^Fxgs>Hd`Ev({H@%r9}(@ftaoHsnYo;haF^4fUSElvr+v(WrVVScbJy`C#YKG z|FmfT>TKC~((5tFkKwWpMaf(kF3Q`Y6|T^<^_0k!Q(cCfH?UGeYNtBBm1nqqr2`yK zFn85{QDNuXo#+9AvsSLl;5@N*x0xy(aKnJyyx-_gf7$^cleN@Y`wxSA@AzIQeDa?c zU9=ltc5lBW->wBtwonSx6*W9(_UOT92QNpiSMm#akGmi(qQxG+sW&Rlbcta1dh;=L zrq25EJl{Y&$wqEDO^4&Y^|S~@VxO=*G|r(Wqdwx7=G`JP*=MkcmU16lqxphtT!O>d z?>7H3i5-lJA~cKu@o=$$g7PXwrN-wn@7awQ$oZBA`dH*2bRv0;TP5}16$&oH$4~hg z!zLE)s> zA1JOA_dp9C$Pj2NH-U<3dTX*8BM31UicbZ%QmC9I;eI)`IoX=ro4M59s^DSX~s*iD~7s$pAqRW_L4NhidkYoB-kmQchr@k7#3Kv4#LuuUw`y0Nr>bK8IZtAJ~=e=_FfWN{Q>{qoOn zqo~R*$FvdwXHgm>9iq8$jbplkvd;G9CRW;^EK-S)Z6@D%&_yDjJ+$yT-h^U?zb^aM z^ULrorMT9XNNUa{N~tlNmWbjey+wKga#TmOVjp^epe=GiLxaQdudIc+IWWr|V&4-B zMN;0ngJUn9KhPyqGgw4%X5)JV&)(E>I9JD%A9H_?8dr6GtnG8UZIC+=I|LEmns=hp7f&gd__9kS9VjnyS2O7Ch(S}O*y=2qD8ei-O}-DH$`sG2vYNK1U(NF` z2bgxuxk4=KE#dfMuXa>~k8b`stzZ6oW2}5Bf|JnX22Ewk_;E%VrQP0!gNCLL+*%c= zP{OK5ygHoryE8e#?CJPE))Y{sm6a6L=(YuI*kRd%Z_eEl(?Y0Ln+bx=LItp?x~F|T zgpQ+n?E2peono#*OB7toW{P2=MsGsX5#jwM0!>Q+TR4!8`$31a(EIW3a0V_<{3`7^@hU; zD*vCRuTBE4l7z&^TarEjSRR?5RV>Qtue1@ww_dV$_Tfc)OQi}ED%vM-TL@lZDvL6a zsc`=8^YXW-6FNUYsUCiY4rV->LMOII*%Rnxa|OvlGOSfSi@xPp{3O)nHhEDc4{5JJ z9FP$2X<48(s5?GYdvrY30_+jj_rrf}npRO@zA+u@HJB>Oo`aavU5g(v>PmGDAKJYE zfW=Ehd#TMrW%_&hm-|HE2{EBf?neTjw&rVEJF*Vk?jNeR_2<|srBr_iwu#s$;K;yB z(YIa4Dh#hV<&6q-VO^G$?i*Q*S<(zt@WFb4VmSbej^LI|J-xaQ?xM%I24J4lBc6L0 zV)#vD`0uiTAV2lHvvSJO!`c3Rsi<733G^`Qu!$_>6Tn)-TeuGTwuekw#iglMOO*8< zSlc}XDym5Zg!L)uSpSV0yqyCK1r??wrYoz}S7eGv(dV4)gfPl#>3(c2#Xop)L)_q+ zo0WRFtL$FB2mPukhy%-^kpU)ysu|N8mGgR{r=1pP%|ivxCI6qbC**p)j~Hm{Y*HI2 zD(l+!KNv*2Ix)`LXyUvq!&1KDd+{M0hX-KfYE3q&%4U2ko|P^_R2ntDB@@XT*DYi* zD~l&N)FWQX&bkte)H`|Dy9+5UH~KaAQIPt*p!)?86pViK#ed&S?lg8`I9>0Z*ny(( zYUvQ{c%@{oxmz0@LjgZ`^U~I8f8rol%nuz6VA2mYX_oGsFY&B9${(be0K>9pUrKiW zw2OksGU43|^+?xfeW#9c3uV#2tK6XxGx?sS18YeF(3c$Oi4P4INkeGGRqv%G6?Gp1 zv5Oz0L3XOL#Z;E!1h~!F1hjrXN+x6jteLe9ys(JLYL80j-KT_CJ&D8xyc|%_f`NTX z2jw!@vwweYC?GI^ksOsaS5o<5ypsoRyn$g%|8cXVfcBB%>aGW*g z+e`b3^X|ami0&@Rlj0zevBZZOx<7yp&j+sTs=4hT-6SFvhOiGw5d9wX`Io z!2*w%Zt6URu@!ew6Gbo>{<=@bIM2o+3&}s8bX*jRJjJs&XKcr=v+p$XT0O&a%2Mnw z#!>9{eHf!AVK;2!vN6n0OWwqXtxHG}6yO+mgLGV>deqi3YtkfbJ2l6Td%XGa5^93= zY9_=I)gV=S7(6T??<(I#2gZCUQYc7<=}#vMO;zu_<#c?Y_w4c5eb_=){G5L-Du>(J zHXDrR-r}(8!=;x%+k&FaHgTn~_M(Hbt3C#`ftauPcsn-DCelJ3eX-=>daX1^UXW1r z!Jlg?-^Z)9^icIiZ2}?Pw>o)Koq?^14J6cG{kVS)aHU^1bsYW0j6MeI3O)^EZF{oG z)N!Tj>_XSi?khN@R;gmYRq)+N=SXVMcMHbP7r`*))}8Yo<=)7UfPbg{lw1pnIJ(uA z2xQU!vqwl`Mz5iO=Jw_b?gSigI^91OZ5BDdyCu<#AYz0GBH2cP=GLTayfDR^S<%Jy zyp0mdEnj!cq>bm0dHqi?Y7k|S{JpIE6EbtvFjo}-++lFBR~rN+#}6ZAlhYHV$zEQ` zrp7}YIjgTbdz|8*ou%YX{Y^8MIKM!X;;KG;TPdeNyKgd=my1vfam5BoKhLLB@QDK} zfN2&w)P+=m;8qHEz5&|XhZFJaA)R(Tn`^hngb*{Rv3&07^YTfeaZ0M<4WE+m@`hC@ zPNq%}3rSx~f3d($MTdr7$|w}YA1$%Xhm~{LItL!0cK>np_9*n^+>cw~>A-U24dBiZ z;8Cr~H=h%1gP1X@*0>Nk&^k6r^cW@sPGG%(3U0u~ z15T$)WcD}02Rd|c2&fZL;u+sf?I;Hqc(j0d@=4T^&Ul@< z8vPl3VBlhjbXud*J!e*tOkfqC)grn0BA-_UGTxhm)n02ME^|>6TiSZ-}Mf0HU~7>W-lEOzOhJr^3$2Dhi(aRdT%uWJ^gKdh;ref$p3)HKIaTd52_Yc zWdU0KqNlIulm)ZUNbAH{T{Rc1NS1B|p5kNEQp4 zn4U8tvTQO`DC72Ays0(3YXpjw$rfvk#059sY;0NRZG7}~n;!EX$;cJabJ{R{4y{pM4J{u`^Q00aDBq^#5HB{y zI~`bZ#22nxPQ(QAKWa;prM}`V3k@luJX!QL`)z>va8vUPcVi#&BbMvXQ8(Q&a=`tQ zG@gnlSWW&8*x}!8zX_>*-5(vMCAVF!0R@#G<^&tC2a`l}O; zgs2)9wU6W&0+SD@38MY;VcR>gyklqn6y1l zrt`{;`w8e5^{12*)*8644&=GFN2XSHX!M1vxYzIIEiPknI~!oVAW3h@32i>vKG&t* z1B?7d;(ZpKb*0>{^+gTd{B-vYoKfe)F5jhU4s~6YdpXyVHYZoJs<-^kHPif0Y40NH=euYlXLc@9PonMyzKYLZa{Lp1<*2vHqZl?R)%zGrx! z-I|4@rZ_Gw3~ z5R+xqLWsgdgUL4}qTx`ggRYT8pr+1AfDN9}E-4TOHzLrky5p5J zAz}@mjv1LOs}op5OteDrG=d@&x1`t!f!55J0&xR!^_-MZ1!bA-5f8cs(PfB<^7+3K zx!Xk38yy9rvs0#+x>_2&iiQ{(9S!G-ESeStZV?weq_@b129a_evduPni{D(&mDKHJ zB;d;jrRx0beqs&I-wJklR1YWrF2!xmRGz9S$sfbwl|3>@KujbVc*D+jun&V#mLqC- zl`RxD*55qFPC-Wp(PJUyZ~4B%NG2nerGZo{7cNf1s*c$72W<{aw}nCx$x|{?Pg!42 zJD9>PCjjiUA60=Py?DF^(obj#Y&s;$N0u09D!CMAnaBkcCA0eGddIzGV%9aCyN0xq zbZ4#enBcvW?H=!dlA!F(S}TwL&2fqg0ehE(&#u-Iiw{QGsyIdZhhiQw zhelytQ;~soUA?RD;OA}RGrDWZV)f90`)(mDZc=brepD9FtyoT1=H;PG#F#l z$(PEEb)#BKl@X5&d_2fjX%G^pDxXhJ zazQ@jh9O=sFHFK3%D=4WvKPNy9yAG^!0OwqQlyM>Nuat)%;RGR#~UyxcVK^f2@;Dur6b$5{F?qD_JLZA*R_Al{|Q(Jo+Ac`qeQ)%v< z=Jkpzj`;-liKR&vN=~1K{ezbU2sQAB($J4sbR#o~>My)XNv)Mtc`NFeh0TpRmO6z` zazgEfC%~56akAUT4Lf`VS`p-cG0t%)A=Sb4a~{MZ0F8j20scV~@?x<~U*ckM zy`1Y!THGm}m!y}iO3e3Sh-m=(dD8-yMiOLVqNKlRk|m)sx^s=tBecym5@0kqU9q_^ zg!S>)8a8oxSEPl=u-yr`h-3q^$+mWHT-H$o2Kb>NG0Fa9XfO7p@udiZfg-nrZgOrd zCt$4LPM zPa&Y1ld9}f!hfBFc*@s4SLGu)xPE9WPT4ie8hUluuwtmLTi!!L-*tAKGk>FAQ3G~@ z=my`*-&RLDlez}Jtvv`7HJg`P!v0krJ+x1LAgo!S);T{GyR~%Ndf0&RGt{;?jGH#O z{l+HT?RtxHgM#3r#T(U!dEh^f4CC zTHsW)p+&2w&7pcxnXF@BNz5Ujx87Lu%W3PET8<4L;wL|xI?3@=!_?UwE9g1L; zdTI985(~)>I}$U1eYB_6vUWxs@X+PKP@~0iW3ms~-wAw=T^^yQf`Y7n1_Bo-d9kuX z#J6&j7_@LscS=B&61?v;GwO0a(O0mV2)n~Qjf3`GYWTd4M)16iFjUGlbJ|z`xp92# z&@tG2qEzj?B@(}upvbK`lO}tgQ&qw47V(2-#4agdANDHrjgQulE(zLnwiuuBk9q9; zjHL-x+Ktg3GG|g_l%?hn8aOoWc}LHJG))9OkBn^eXZEyzYN zLp8lMN*_-V;|f+dlYrG;8XYXTPmHbea&~*(Z5_vhfRvaUl^#*fmERzb{KOMn>tRqy zPjiqqpT>m;ilH@W-+0iyDLMFVFVXpeTGudI0KFd4nG*|1icbnlG9~fE^yusq#Ytd! z=1xtn%0mj~85_X`bUeumbT-v~&_{s(D#qZtLUSQgMetYjV_a3**v1^G*6biDoLY?c|DBd>@&=pFcRF+gA{YVw*FGdwnUNncaKXP<( zM6}rScQu7lJ9Hel;=#UDQSL1vwKA(k_cPOpNK{Nt%{)0VZDQBRadvQuoK)TOBx>GB zD)5PsB@Np3;;-eZy*{XBB>5Ntn4x%X&t;T7cM#V1SNJVBBYKgg^G#2tz9t0A!X9pn z71`<^MhcZf0Ree*Ln)5}h@;8&_xPvcK>K%w|UwHRTCVOPq zOEe$tP$6hh9-(Z}#1qvth=;;`ut`}+#~bn}!mE`FRSPtnGYwnvK8V#;Oty32x${aW zvfjO6OGU=hCG=d^-POSF*c%`T`vygtMwfwvbKS;R_ce4n41BY%63b~lM&|OcXVv)%JZr$r5Pz*XjQSuN5s3S|6pL7pKGjmX z{xn^d1+MwUTW$D3Lxf|W-+;~$Z$fht1roX!}xu>D@ z4Ap~p+T>Tv!2#8nILK*LQ}|5mtNzQsX8|oC!Ilm< zgGp~L`&<`LpHLWxyQdi+;+ShHic!9#Rdb%}kxSGHSzo7brE-GhT7>Iyx7*P6@ARWq zD4 z9V)G(CKIKKY>&IA1kqpc83W2ey&c&H-~P^HefBo4kJorJm;Sz&@@N#M2MTewp~sPL zkEZ$+-Xo@9F)80A2}lR)0)CmqHJjl1|Rcq#p1tSb*mtgS%u;iKplJ-;h7q9SFr5rLjdL5*40ADz`&I>L2k<5Fh zf`Iq`%s0#+lFBQn6Aju_iU0uH0~K3byh;~O2Gx|6BkY^V)Vl|z=$Z0XRP1@Fck@no zthRHTYB$=7^1mdpNbzW#@xR;fp6BOx9SY(CT^pO$VNFN{Z>0&pRWhhM%~t^3w7oe9K`E~2tV(M(mI==R)$`*?3)L(GDhb``!m&MVPe-V`&m z4>1I&0-gYp$DJ)CRP2f2oxuGAHB7oa>-vnR z??%2q( zo?WhAv5-(}{ zR-h|4zlH?Cb*Bjh5cs(IHl|-rPQFw`#%P4DLQyJon{1FdqzopIbYdD3@Amn9YQ)7U zQP5mOtEl=Qebh`NKgh;bzvQG_r_)CSrQbyp1iub$cbXf~tu?hidb>5zkF}~%^U4b$ z)-~xfJ^33g=TRQC5S8RGTlBB*FR{AC>BUpfM*KEOEhuG)O2uAGOr&9mAMnvPCx=~` z%fCck8I%?N9B+Ei-6JLgRfj0FAq$vF-gqBr=USL)FbXVWU;kh_i7^jImroeM7cF6?Nfra zvma)#=KEJg=j@El%w#P#$E4Haz_>U!{`F|Q779^^7BCjnBk;XEheH^F5=TZEipBcQ zxxG55st0fbP5H9uV@Y~7lBU5yVwT(wR4{ID^;OP-K?PY7db*QR zAFcK)()@q;!bX&eafnJ6%AA_H-&|??2vB6=@k;cJt>dB@sr2{42vDII6eL@8RegDp zM~v3l)d;?oNkea9vUEl=^&IoH1uAl)=#z_7-P^c%sQllnpj{4+7^>nM1HGWK#8Ko#{j(PYKyp6 zMoOqG(kic%8S0r1t2OvTUwKqP<(isanU|c#?;mtJ)QsH1(ka~bPKQSkz|#6Q(WoJt zsLo-%&Ns4M^qeNXF&AXzy5C<=`@i@JWP`xR$|j;`oLP{<{BL5?@c9=D3(ll?cI!mo z@(}oy0KK_osn0o+EmZ372996uAtCY@n=X*8!~0LhK5`h$yV<*RYBGxhJ6dhK{xE(M zP%em=sr{=;)do_!!K`;gz>?(Z&{TTZO6WW9XlsjM1MEVt4s?pPw$dEzH$xhN&=$>L z2-;L$vxOX{2P`P-4WxSpT4~x%SqH!Km>+|3&NF<>$xo^sN%nqbPpFMtPzTSju>vIv zSwJ8j;c`RZ=g-<;xNPXPkHr07{HAjCJZ)=ChuSUjxm%O>l2F>ghGE@IEQ^*IlF5;M zKAq@b{A3D%=KmD!kHO*-VS~rZj#L6_g!F6-02G0L4!2WGt{d7jg)etmah%{vjj zBMscL#rUi}cEO>JP759h2Y9ndx2oj@T?h4q)0Nq!wkXDs%Vf0r(xgDe00=Zu79fA6 z$9|rqEaLGYlp+wH@+_>F$Ui?t10R--5%Z1>L$!WgA_+=w+T*1ld-dTvjDMAab-vqW zjA`+C3wfs6L(49gBE-L<`RQI1-4F|y#V_X#tRY5i4^C18*lO{JBcmGo(X+J_|GnK+ zat1f;LpP$3YsxNE9}mNY^kaMpB_0}>5DN($Y&s4BJo-imb`R)4+Ryh=tW%ys3os2D zxu6`O0@693HE-`cowFG_`WhU!l}dn;?aDG`j#~%E=zoGIU>x2laur4!37gA(sXuBsqF$7Z(0q=d`EyeC73g zs>-+Jq?d0^8)Nq&C&yabYdu6aEq|^2w-0<3_q*fgaCseC6D1cpw-$I)X-vtWwNOc# zwrk&bd^g&U@CINZ#psptPW#FejZ4$>&U>m9%ZO?Q5;I=rdU_Fx99Wml!lH7I}2uRa=Jxo(x1u0Yt?Z zhek5l;IRT8SC7mZM)~ z-Z1RMz1q`zVD`C`%?8tW3m!nicb2^XRNQF(O8(*4kjo_!Lz4$f4nDv0(IbZPOlPl9 z)A_^wS*aPQBcSb+b)7rh)rff~%=_mgx~qK4vcL(2yg1`%_{X>bpK?`0(4g?@1CDf0 zO`jQ|S6Ah}eyiBHYTW(Ut=8z!s=!PLK_O-$P67K?s@a=Owp>A(v4T#sGx4|Y@)dRtUpL|sS9@} zDcy*-sx}LL2PYG>QW=r{jCYnT)&${7^daDX(4dCIk><78L_Eef-;6kzIb;>*bEuWH z&AZh>%1v_vYUYUoLa4oS+^_ND`8Gs1Zw=uNbPn7I`HZwr5pnYcW(n25$3kpEF+kI; z^5s_D`&t83Kw}=Vs4C8pK+B%)`BA?_7s;X(Wt({?w{u0^(pGW~%8SrV*UAf?*pBO0#cw6aI81Qbgeg9p(b~)N z0IHq?_--ogK8~CwK&yS;eXMjnTBnb-J`;U%zu05S!g`d>bEn=ir@C@C%2kyD-$uRW zfUD)!W?#C^Pokda^Bv>);UcozpNzVlw%g?iBUDMT6T~Rze3E|6uVjJ~Uw&tk^%*cq z7nV{wKDbu*=3^8AJ;5LY&EXQcdv>|G|q!m`a7&(RO5&0+-zLk5_GrjC>$EEW3lC7+yj`6cHY`b;`^OlcHMpqrmiwg_E z3Pd$Nl}36w;_?(<^`3%dxStqRw@wd{b=9KG4bwub!*-0r(N&y>9srIJ3Lw&gM{LdrL5(lXJ4s z=068&C@nP_G0ypwf$pzfBSa9xIySvY&+D8CuHwzQnW{b4e)Sqo6`S z7L&==QyWgvg=vuaNk(YjmwInQMUrdFuyr??SnoemK%$38Otcff2j^J2h50ur>qE^< zGZ~QFKt4g?qnM1P`d5yM8?M@gs~14=kG`!0x~ds@6BBspW?$+IPmwzSsB7Gl;S}v!dC|`;iG_nuqmT#pu{uh zwPN~vz``_lo0Wc&LP{1QhX-&QPNZ<~jq?hM#~n2d*?cQaj6X^?ZsB9Ll4*F1I%rC{( zHGkWJI-?@!Xg!q6e!UUDDECkNAWR+bHk?|+N#IOZ7qk}wzh<9}-eh(Y{d;guGeD07 zto=WKFP`K)-Lc4#5XE4lblSGdbk|d*A5Q>D=tPQ~v(TZ^akD%CZ%tH=wIduSrV+6? z;t3Li*ozM<6mQy`v>J-ln-|m+x0A;g4YL-7ev~S-oh&(KZ-L(yB=McL`Wc2{y}&6v z;?FTzHef_+cTP!sHzDg#9Vmz@e6Dj3^=kcr$gjd4$~x=cC`n^t<Z{Zo9|pbO(4)o7R1y^}a`x!6stg(4*P2jQ@&7g_NDjH}%lbTiqQ#q9yLgI3@6#u3O zgM$e0U|h~;&^pQiSS{6kSL!J2X^S&S-hC+B$zBh{5RgQ~xi0BJV`W1bT}nwq3SKuv z>CEHgp7TyI**inyuLilruMO*&|6WIkcIxV#6kU}Km;s3wsUovce%ue7iTTEMF>X@J z8Pz6Kv)1Rxmx4v3n^#^nm{RrEr;;I~0Kh*_!HNaYP4~Qe$m^4Shyy0=dX)%Rsk9!! zzAgNys9{quBNtwo=V6Jwo#LGA2;FDyR!LSPd1M;1`C)pnUB3vtA|^V*ogh)3Zeu#v z>?a|+bb7REnLmosLG%C)h7S~NUe`+T*ITMh68qmq-GFe;L-AvY?#Wx8xSK!B=FqJm`*LZN zcH8UA6Qe&9gvUKXZ?RPu{RX`7Cf!q=1t!r=pK0r)^rHohXvVAk=-+4e(~jI`iL*1N zY|-FoU^YAS5}I&+Z}2Bhc?_JIdmI#G^-puz1jTf!6)*NvHE-hdaSg~yZnDj zjFu+pR(c7vpEwQfIu6+r_%`4@K0au_i)7O@?kMfNiKiGQ!!C4wFNz#AXfGpAZc(;^ z)(fAeu0-rjx;n_c zDdE{|l;2mlq8{kao=#u5Y56L>e6Vd`q}9^Z$stYGhK=!|In9cDD|7ALi>kSUCKlVk zT;Zs_&)RL94}{f=42DgWy-rF^1~}&Q5^{Ug{@9d)K&;^Jt)4;k?O{#8{dn73Dt!!O zoNE<&>!r|^S0@U_AN%$2J?H0ysEFg6;c%k4h%vx`LS+VR4QS8j?kXam1QBfQR5KVV zMEt!DN)6dCJANTNkdZ)Qq6u8;fF{_2@~Y`S&6DeJ`rf^zt+*X0dJ;3sciJGE+O+|E zzgLKWcH@&?vNF=K{W}{z(k1W@n1`I(+Yl-)hY@`Rbd$!y`J%6N?R$ z>;37U#K?dhb@YTf_3*{N*GU|dvFTAF1WOK=2qnooYhNVw4P^jH93ZV4^m$je0lZs= z%n))+;mpB{sDP$^%U<#3ZeX$H;5Xk*8*T5+Q@x>}bH=klLnnXr?v52i0rl&SOLSZ` zy|`wRH4&q`c8!Y)K?5TLh=!zceb00I6E$^m3&IG^Q?i9Z=i4LhLEYT`9E^OVJSBgA zv={%DuM-5rJkTNtjeG@3S?V3%zW1%qtlMJng*#QhYrM%(FtXgd2xpMrqAe2?;8uf+ zQ@G?PKS5n}iW}PV@C8G*o5mQ%lt1s~?c0E`c^ZY&)F~!YN|5i-j0DqVVlZZ)r*R8^ zPbcNl5o2Tk)jr~=m#;8e=Iiv7yRyYt4Io9=u~aK0LDU2J z2JAnSLWo;fER>S(qU&yT!nPuc`UJ-lgSEBRedFq$ZzxQm6T`PSP(5!qiSm~S13S8f z-$EyHPjU>=`au{9F71^&!eX+t_VrTKgiq>@7wZ|iC>9C;ONyqU5QBss>2Rk)q%6)* z6~~*^;($PN5C^vAcW_6J@xgS}XA=b=>MYBuFOxsO$bm z-pF1a8Ad0sO76HPOyvX!YV?nvAy>}6#SGWFK)VQ_ zK`o|bgRPVkkCTm%0|$?2R8o~dsJA5G=LK=pm27^DJc%Sr%B7S5;GSo%@X^-Cp>KN( zSojiJ8(!7xD^A{mUOVE%pEG#&_>8ykf0BCN@Szv`#41IWEVgE5 zNlPZYJFuh$Fz`VJDn$H)Nv1ey z7oF{zKTj}!Qb3DI?9j@{zeXBqbDk-WV^Ha$dtev&hU-qLNA)o{e}Qcs{0OD@dgP90 zlLeA=s-P>A&NnZQM_lD@pnty`KjG-K=e;(3k^S!hT*}CYu~oFMJ%gTsC8s$&hN8nQ zmp~o=bWyEt(>~{PB7+v35&z2$7f>f`53Yx9ooqgrNc+xP+rJ$ge@t;bl>I@I;x}yO zfs%Q_X7!ccd51`v9W=Jo&^Ir*y%R?+K~9pootN9hXsqP~i1!yw^A8OcPHMC?^0?^0 z4ysiu+pY>LUQ!PKz?k`j>gM7vtZ>QiNuI^UZ0GOT9#-rmS*W1<3*fxI33_B;_fDmI z_I!GKr5MKJ3kUoIRYR^yN3Qi(UGV~hdLGB&JqU-RBhNjzn0h|t&@ob1Ll$SPhn{sZ zekT<%A59$P38gt<;0e!aL*08ziq-y1v#c;`&=OR@rr=MRXn9L@t z*lolEW;Iw&Q19X6q(qyEHQg@{p98Y3%V>$S_F3O!kzUEYO%HcF)h~{Y<(m^FiFHUh zeiNwg!|Sn?=IRl~_q0pYFPRVh_#tP1^XffCWzhNJ5m*uF!BA$^q(oc1?E&#epr|yq zdltGqztbO^yBFN@D!!zvEm2y28NHI_=!0xsdKKnc`Zw}a{TE>rsM!q+DuEA98y;S?BLtHpwBLDaL8qYzl zYe#ECMy~NP8k5RQ0@t2>p>^4iQDxxd)al8U_^%ucfRZB6^fcKtOMBxddOUI~K%AhD z;(qk2bl|BzQXk@k=~lNaL=r4F$!L(T4JpfX{nTyALZ=bYDcR8M-*`7?T%y8=42XK_eD} zNFLKO7WCTJ%yncjP-%&Kj{=T*%Zi`Jvt)5}*I%%=$4=q3&EMBiX*Zgp@V!Xm8R)VB zYEf3F!+WOD0N!(z$qB|665{zGTEyBr!Aye03xyxsIIU#l(^T5LJsvZ|U3V;r6Ex(h zlPPhSp}cSoi>Uiy#i`Sd3@d+5Q$ybuwCBha=#;xKij`KAg#u05 zbzD)@@I(y4bCWi(5`L;HyWtbg73LbCTC;X8&nSXPj^<5Uz4sMx3tN~Xn{BTLw9t+$1VW!mfx0v7$4S_%ezK9b)0CZ9$QLZ_9b9i9 zcp1yF@fndLF?v<>+ViD;Ex3lK|S#D$5-Tm`oIkHxBk_O4c+ z&nsPeCTUMPw(@%qTEabBaN?o!g+1@Z8QYJGPwn2$1nP@E@*Kge9@Wy`J*w(Ae;?wC zYL1QMy{jQ}@g~LiJ+;7Z6OWFfqg1K*Er@sfT$B=!8Op`POcqVYTAuKw&*Zot z1&~m&;1mNI+{D7h|IRGrqmtIyhu>ivbb&w*H|SPxw&TzHz^Q*Sy=l4^zliG1 ztc;;VTPmiCQQ2Aal=T^S^M7+OA#ewfK%%PkG}^isW|omI5fq&&=L&6&uecPVExTV- zL8Ohy@#7!0j0WJ&b~wARI|!67RF8*jwA=d2Q0a7&w&owL;4T(JUJt)~#MMGG)Q^<< zkxZJ2k_0x{yC-)3Hnil*U3&ldRk9wb@);+@yf5yZ zJt(c}N(Xw9R(ftkqk=nXhRRO`rwq$<|C{Kc;e#v#R|#vfkc;Z1^0i~WK!61$vcY~% zR%x%_@Fmqb(gT{_XrIY@!{N_~3oo#r*Cepnx6 z%@;K8{3aXHoJ3MDu1vOLeS`^Kbs9cbiQWh)B2UGA6}u6`1QD+nD&2%UutFnJ114xc zLTlT;*QA4@9nJ3zzXiVB+tC~sXq5PJwL9)^Z?#rTq(KAz;SR5rTydStPXGZ~S58(Pr^&rXKRvD>I6-;SBVWR6# zzE0&dPofG51U~>6C{y-EwFkZ3XOg4{3^>xzg=z}FyW$^48VUA;hS${x5`4oMf=7_{XTLDSfh%IdW**#9lo%(Ai1q=$YATo@>0kG<0&-F%DoK(goZ^6cv zkqBZS8GU=fR*>*HZOy`}(~ml;bM&U{8;$q^yg`)Xb2V9nv2V90=tEIohXJ}-<4`~vQIwn7Ia|7ax0}F8n7h+bX*Q9R>`Qd>KipyFylAXXER?oz{XLFL z#LXcuVrPr)pe5esoQI}qPG{=$kRCtsx}4otPo!zieBgs%_CkG85m>^_K8*P;uI!dy z-j;Gwe^>R8xUHQ7NF;M~d{r^EKgER0!_Qq1n^0Bn^bKGq>kecid3E`X0CPe+>-MPvCJe=wm<7b*51Nwig@e?v>Tp?Gb^M z5KBPH-~wP&o)nK#QJ##s8b4VmTY#>dpx|P%zV4OmF9g-T5$6jq9C~lP71x`st+_ma zF%h}U=@D}%(C+WeIeT}^7Gm2?*Ea7f1W7{u~6AU0?7*g$^TBg_Tl2~6q1Ik z7^uqCTaa7g0fH0rK7(4dM{c~5om{{S?H z?TJe_zx;-_Cp%!tW6Icx(rM)gqWNGMRZmqGm6)b7#aMHy(nH_N2(Rlq@R|Cq&gEM_ zZTh7QbuGyw1`raU0lQH)sgo&#p0a#Ci=Chr6*CIf#Yra0tKwqEueBZRO2~o|o_cAO zasDeN8KogBz>(sXY%Q&jv5v+oSmL zSGQp&Kw&#k%Pk{)FL;shTWz&-b@oT^(IrSq*z=VGjt$5G!5a0>)po%HU^^oKj-Xv9 zgG30|r)cMsayXn4WXA_npac_MS_X}&Lqw(sIegN>=@9tM&!@6!7o|9IEopi9+v(M{ zXPw#GXvd?)KuA*^l{q@+aQonCmpIt65=Yy`}@pEM)tCJieA4Qk;kXnX(i!#SaMf~Kh2g0X1a*1bYHq)m z;>vq%C}ioMw5F< z1S9T96G;YCCxlKjTg2egDIfZ;88-RR$&GA;xZ>MiHa=G$Vo1VX$ zO(8X~Cl%BUfBt?O$njDd_-K?xNx05h<2Tsl+v8~mjT9&j=%iI*a}bL*l#B2NWG7oV z?*M(*twVc{f;xt3-M}tqDu69zs~r2nabuFh(VymR?OsV1S_FD(E&QV}5MR$`i*B4a zucCoK$EoHE;F;t^s)?_>c=xvP(KtnNSTasamQ$&UUYWQ#=E0ShQ9bNg1XN7qvp)s4 zC`q~$1E^?u)tjm`m%Ac0G*$r{^wW4~uQz419}hPeAT=Zg3qu$Dv$XLs9~~)MY{Zv2 z%~=ZL{*o9_!~AD(C2y1q3qRz1k%XAj^%IDV8#N=csMVCn9y>!CY3#0QP7AM^heF_d8Y>qm?3N#-7nd2`#?((^PL3cdG|1M=Rx z#K>7Ps8pbkBlx4YlMB9k4itPTDrs9e#**rnqno_x2KKr_+x>hc?JHMIcWy_-yq!8| zVsYf5kKi|Szv3|IGpI|aL#bAy4PU*zYU%S>$XDoBX_tAH*Kz}w9u1&vLI{h+ZhB%u zOC*RzaD_mEgYan*I28qU-4hid111|joD$l)s!%o_IaBN_FTh(D=JbrxT9UY{OvK%Z z0q;gAYTs)2+;b8O*}RU6L0svy6p3u9P1;#q9Ck^Kmz#6~9br4OG=7sNry*%ALc8D_ zA$j~~qn7l$Od3Fu7>zhgW$+x<*I-x^H#a_8^&oEJ)z;?BF&I^b`n0IL@2)LCeFy$6@eQYfI zX&J{U7RuV=0G#%tIgTpyp?0}g$g+<&7U+d6MB?`5n@TyVaZ;33$pZlw)Sa=AM!%tg7$VvhA)bv4|WB_8J$FBpyElJ)In*-3;2ZYSJ%Jh z^T1c%*g_QNx>0~AnJ9hBLX7f2la7;sv!e>}(y`}y9y6=^cPBu1NGe^s8b+&DP9!28 z)cBYJyrfnsDK}I$*OTHJ_d(t1M!*fQ_#?}HtnGoXvQqg3%k0kuq{ZW%3XET9v)i)_ z*SM%PAQn2>`hutCC;htBZ^x0$v*TiNp2t zSyc9S4UL04%nN^*8V2{9a*L2f*W4<>;dZ{X&_3%K1gXd>m4r-?55KSd$XHDv*Oj%q zb5tJbVi+8Tgs4%}7y-bYlpIL8~&IHJsq$+WH>)w0}W>M%kYd09v zB~AmT5%M+%RIrsJb1ia}bA=neh&-@}&@FD8EHpA+iC8c-_69I4o0R1{`zYqngjISyOvG1r^euZhV9 z+bYDwyrvSMp7Z0coCkCv9Y0hamT<0S&r68v2I48@TBDC8>0v+TCNa?o1Fj7~WQlch z-(@Wg+!K|Zv-l$A1;_rGRIO2dViNt$mnb;2ekv(T5qk3ydw96z(>4P%iPWCd98o0; z??Df?5r?eXg~ioatq_0vjg{prfBJyYrpk-l#jTITN$0q2A89E#@P{mx0qJc`(f|bj zXC7_kzgP9W@3E74`PS|MRfGHcMdNAcD69@NRi`p5YvidL0gO1yFod~ty_l$>4qWWol@xJ4~ ztQol}wlX%8cRAfV7UMyfDQk3)w$=mMn|6xhJz;?=1-(vA z2mJQW^tu|%=7bW!629 zlO{+Zt)9MI`I8bU2^^KHc%n)XW7uhGn9a?j>ndY85|qj3GI}6t4NCjbk2>YE z2;_hMpB9TO#LXnV6|bdx)hL*u_!)Bdm!vKl>?$Z_;YB)KJ8SqYkcQqyVnB;lE7A3DkigDA1qQBja{sT8~O zXL=g!@jJC#jvkpLA~HOohXiy4nXR#ne69K_4PLqgP30jI6r z`(&bx`>VrLV`c!;WMBfJ5ewDuT9x>~TRMo&V|#Kj%N&pfL_g?*AZtM1Fb`F2Mc1T0 z%I7Re2(7zSG8HGEEhGi$PsRKT6c=bcfPETyM{Y%a^qIgN{tz#eK{;oCWFlE*U;80v zGNaUh02d7aC@{0Pmg=`b%WqL4Vn#w+YYb%UOm_y~IkZD{#&W#b=pj=%G*YZza{RD> z=s*0sRCeX5ie8Ry3@-s)HnWf4s(Mgb;vI_vXkW`Y+ISIz@WLT*y z^-R4!?!a_=*dndhtz>;?CVv;bLn{@5HhELQK|<4J;o&RXXP_%6A3L>Ql)J`h zT=j~8Z^q)dTaxs1c0Ma%b-PyEH|T3A9M1SKsLtf=1Z$;GHFDP`dE0nf9+{zw6+%(I`Cb1<-M6O_-6qbiDGLq=&DNw%Vl%)03BHaz15;#dk0{?!n zbz;zGO~0!}i48%cFDSv9RL-Zhb1Q|_3n4)o14azCn3~HzK3}kJ21*~w)00G|#AHY` zdx70GhQqMzm?AyB@>7n|9sD4CLeKz$YII06R@I2~@&NAl?j7$Vk!U9i$=2JGJ7bHE zVZy-{%4<^Y)>`}wpPZd!aq4-Ti9sjs*C_bJsT(E$hv{RIwSAKlU2(K~>fiSA0e z{`qp0TwX@x7m#M8{^Sxh_uh9XiO|TJ`bhz8k99G z-@Y*W&||w%v_sErJ+3QTS|*Kx8nJNGlgSBLpKf-u*>6Ctt;SkDw{=eNCk*4TJbV(+ z-&6{>>RFqq<=f5mvY91Ukf9|YpNNpnoG-P9Tj)|RXrs;@d$Y%4H_R-jRb;x zi~>i=d#19;8w*v48ylc@x$<4f;GqrorT@FURc@j66h3vU6nOUAx%NS$N#2;K16he2q2bOt>spIa=sy?^M@XO)|*+2)hilg0hZ!Y-*OC6JFpwR}Rn{bBJev z`z#}N=8i>Ob^MvEHhR>O0E3T%(#Pb4L}5M!O+h!=DEkZXXxwL%%nkSwX87s zF?K2S(KXojws=vKSW$b57Udk@Gf&QAsr zYs9!tn^mvl!aW{x*Zk;ht#V|%Li!v8o?0RX(*m7|SG3Fmg93xT#)<0YtB2gu5lDix zxK&8%Ri+=6BlD5*g!%9a3GWmCCAQhepZ}#{GFcxuQ)0P7CrJ6svQozm<=s%2BB%Q$NxrjXEgiuukz^}V@ zxvct5hLs{9W{J{t3L4unw(eWKch7?!y{;M6#f&j~*`*N9@Ljc$eD3OQ^!pru&!^bz zUs8sbA?FJTx75%^;EZUGo@30Fi0sK$7Vwq2`fF|UAXC`Ip8BwrP(bTDEC8bCIEi73 z0vM3CojTMz^q z#4o-C#CXz|H*G+3IKb9cDjrP%dW}by2&h6r)aNHr=QKfvCUURulLV$n0}t^xoFdT` z(W?aS2H8`gV0?-P7~z1+(PE=F7Kg}Akd*~s>B;2vy+G(=SZh#ZrkX=DFs4j40bL9g z9;SrjqrWGAXGpgJ-bt~*xuxo(JGx9_M%4ibrz1r0g?Xm$P6wXA4nQzD~O~a$6_fr&WG668ddtHK2LG3JWQ(RRr0U}tKQS@bb!n$9hZkijFY7u+MliQ zVwXH}J`WcX;)>9{&}`Q+=vBrJpP;w3IrLI{*_q2GC;SieK-L6|gS(R^WTjM=+S<1@ z%Vhe=@I#X<&P~m0aSLqlY+%fri~r?Zr$W`5+D&gbw`W*{&dP$_bq&E#dm*v7R)6{le236Y?r zpU?GrvOSg#CPo0MW4e|qv4%*-a4N>7kGkKc*m?>g zE@ZWs-yy^`sDx5Do?)PG%OG!bPeSXO9v9Xf(${a@pu>{b@WF z0Kvzm^f5V6?|c%CGX}{xOlGEdR61kbPPO&Hbi?s(5(+y8C+D88i!kGXGjT!rM>@)l?$-r+HA67|K3o0HeqUF9@IoQ!ODb$vJ)uT?5=?| zfWYM2Y9jdlm;#NO%bCtK=GEdNqXi)Z zm+*C#S;9uNNe0vdz!y;|H#(oN%=&17obKC(OEj7*gPy%hOllAE;8tFyFkBbi)+jj> zLzQt_A<6{xU8cA}XyNy)zb{*nNq}J_gWQ}99LR96x1??21)TwOXGJKSEKcUs-}s8- zr=n!2#1_%yguJ~55^JZc2Wq@n|C`qQd13v@O~yT9$|s59fW5OaNceN~65kaPoyiMc zw9;}5jxOTa(3Q=FTEANfdjc(xIqaYIFtw;fS>cu{T%S7xG?sH3Y*V9af)(tf{v_n- zBlxUkH2v{|2r;3Az3zXj<(zi(LY*tc&ia;fqnC$j^4F_R&;X<#jee&QwgKzm=riUQVr^#2pnR%N7SIASFf1(1cTP4*7b!A7IK8*wU0+ml zX2mt=dsNZ8dZTS49y?X{Fe7`V*6yVM$X#E z;<&zAACx@~(^Tvzl>&?w=QBM@Am=u<@Ll7x&-ds{32t6pH4GyZXv9ioC7O&}CBnQx zYzk?5akjq^lhu6=DkTf>Zj)t^D6v3Bk;a6NL9Jy5&F~hg@5fLN-p2PeQLn#E1Vk8? zfFh73X8$dt1LKWUdx!}fChBX%yK@Xi_ph!lF2+DWPkmORk_cSd0WWx(-v$0;40`Z= zqT2F?^_@Hwg;?M+%Z%~3#Fs@Rd%SPtFZ)8fkQo8c`&T5Vh7|?DT$*>pY>?pGu25pfW9MqZiyx!a4GFKn{%s6iDAh zBXXZ(A)0hSCU)I#*rqv^2w^-1Lc0G4U1;QL3G@`aOinmD)8o6l;xK3)0T9yoB16hT zp|6Z`vN7jkY0`Yiu@GjrN0^0rQFCM|0EWD>q|g%OZk>q^0|~&7({$68x=eZ0JEj-b zYCtwssvw*oAnVNZhn4HHjp}+KaWa8>iW18Uv#c*{h)tRgpolBKO%swz9Vg=v}fI4@gh;6pNz^Vcmbc3i`}JUAMN8D|TgzBf!=)z4^n z0~Pb4;G_t3+q_q3Mj+|RYzUkNT|&B&^&uRXSIq;5m>6y$7hickCl^7!8UURPHTs`= za@sxu7SX~Pc%QD(s`≧>JivPOn!-67h#^6nSd@u*3$r66}a z@k_swfe$bMiIO!{ZjXtcZQ%roP&`Q2%|WrriA8%`uZrg(?9ar`6b--0V4N@i#)6&b z7_%WA42R?rTM=IDE0}O6YA~g2UD}u2}*wHUdN_qY|1GhU8#iQ*ktoZ=MxrK3z z)*&udW0grp6eOGSUD#1uG<~9O@48j`h+X#KHE~7*)9OZLV;4F*o1F3O31AW5?^Jwj zqXB>uCyE+dDC1fA3s;$t$4j&krDLD^1JUM)z--yjPqf>c2tr0G!ANG&{KHdL(KN3x zSoivHB2CkJCSTglfBSMw55@(HVX#$t!7>FHqAcgmg2aNQJZ11T_NwX0Q*B!D)eoWg zx_VO5i1+MqJ|-8}R@r1Slxt3}qCYl5Va)9A%|BiOwtkgvZ(*Y3Y1ve!TRLIM-a!r$ z2BIWX@|H!u^16QP4d-=fQjs)8aU&ScC(Ahaavf6)*fEeL;kJU}Tm!_UzDjHguT?ST_`MT()Oo`?sY4ag6Be z$YjPe(zwTUZBU&A$S!3hf+k(-I=qe(&NgzxKtM~CzRuafC;Gph7*%pK1Ut4uZxN8V zhZM$xVzBch`fxbVlC(C3{7&ZC9#sll3yNnG35q;ye3)@Ej?}^|y}f8~xEMiFtj2HA ztn8slU^`iTH)@)lT(>00bG}&6sD%xgwE$y`A73Q81paXQFL(@tKp_w1Q%jie+ls=}v+^W#)J!?6&%WLLM2+Z7Le5+-Cj8O$bbmQz6qKJ;BP@;mlGVxT2~b37E|zLf!5r~=}}z8xPPI(i*SA{afSC}_s)QB zRSX#9Ms8sWnRKN1)RcbjPQ6J{=~v4F!(sjnxwHnVt55+~7^lV~3dt6e1K|oOW1`AE2ImEbff^6zs^u=|8&XO+ z#l5XZENo8>@3Ym_b&`+YO0LlYj5tQ+rma>NTkMq|;evm36lj`Nqv<(BXSF@N{D|lD z)~}LDyzZp9wWM~N%b5a3<5lcbBwlhf%tyWB-5{Vm&^6x#sFa7$^3ZD*hvB1bdF!A@ zUot+sF9nS?&5EOLP+X-=b=E+uk0Hf_c&lybha^qUEfXTZvpbZ;ya@=SKq5ejQ6er- zoJ~g0NR)L@MltQ3O(3W(X#GAPoeUPb3G3k$ot4)6k`n5EGHFKAiTr4zj5)}Y3KaYt z2X}|`w-htVv5U|Db6(33}-j0I*GWb(~MPI%#^9ATMFUxs&@@t0|)B!NA|LFOW=~ zg`ZqN_T#VKrpZsEpiXFO=@X~)^kw_DDQt}GqlCu%>_V2m1=;b?y%9wN5_ygCo{2C8 zhtt_B57zV6h-vXY+#1yd@CjnDVl`|%6Q%n_CMUgKPfKK3bq;GQBP^phV~gfk3fkKS zA+l^*eej}so^Vgf+PiO`)(YD}ycCKri0g3|v=!WSEM!_QjQGuu({G6;;T#Txk7untT3lPEB4=p$ub8-^TEQGS=aMH#t3ghW zq!lpf)N*{3;{!w^HN_T0oEWgC(E8d4r}l-$7VBC#*`Hpf$1q4}B63>wl9O4v+o?)% z?&g?92JRSG{! zt#!7CEcMAV483Nf@Y!s#q%HOUPNci(xl4r8WSK@7VfwWg->xBd^kw`tSyJ44=kE@; zRwr(abYVn8b86G-@dFqn6{8to5Fv7eEC`O=+Z{47?5AbRpm!aK?@XH7J*4pPcVO%U zGs>p&g_wvYkX4Rvwrd<^U}Kz(ALVRi3=z6}fl0RDf52bTQqH1~(t>lX!MS!2Sj|~z zVdlJ4Rq>NIfVUpxfjn*@o$!2?#3RJDS`3*GWFkxcd``lUVcECTKfPMqz1gA*`&cM- z8OA_AWi~i#{n(t4I*1ouS|R{*A*4`wFXz^43%b;fW6>-~cTVkbu0t%g)-UZ@Y!Q2# z6A}b9@#CNOk=F&8c#2|yI#B3sb~YJx1#v59gu?-@XEM=}XNiIp*zCY{q}C`bG>iew z$sclb;UT+Ek~z!+_U`i`horu54(9f~z$>P^CH7LqVvX_23d3&5CV=n?sBs|BaUtgp zdMV~$KpO~Fg4)<($jtaVzPYTg$6jNLl|()Hb+LBzE*QBX$^$VG_Q!x92uB#&uJa~Pq z>skS8L{*sB2u>88He)=%a7>u~ zZ+uRk3@VEU@;Bxp<5+26Ldv!C^EZ(%NVfuAi@_V<{MFUe)%j`KSu!bk6U?I#mmAmR zNunTGGSZw|xr@v~D_va;)Ss0@3#HMyJTvm_j5xZtr1*Oll+(O5$By#8m`cSU*@yp4)sy;>*a~!+wG= zL_Y)0r9srPS(1$;<1+5@u`68@Wnyw?(VbOUdi|xhK2oepOK)#w-eICJ-}{CCvq1N- zsVKH6PGD!{oY*zAQ?CtLlS0cd@`IDwENV9ZCr(uYv>zLxVSkbViRTi~@+U(3tipCZ z(ocpCPemx(Cx`A;bW(f3d3a?5orjGcC`V!vg|C1OF^c+bC05{xE587lyiWnY>HKU) zApqvB&zCtaH^P-K*R#5qk-eP2_qKYGSmd=2!?<^Ws3WT!i;YkZypY!?`*dY)>>!C) z*=N)(iVZK>ukp=w8~hiwR$8D<^0p_@d8N{<`v3|C-Ud=P-7yvS76A@40Mn`L*ktv!)*m>lkLRFq%VF<1 zepNgEf|%i!ED}dZvuJ+`DOzn;V8-R9jJOJKp>ZrD@Us<(=WL1swPRC8=T|Jui1Seb zdo{u&e{>^k&R~zXTIF@poE;1CE;Iy)K}0N0n4F&|&G#Z!R>^F$^kif*Qojm{B!$0< z98Gz=GsA>gkoq+6kM+$<|NK#72F?x(V{N?k7Ukv@wvR_2k6XYR zQpFshE|;A?-({aLwFT-5n~HTCod26&z!v4T@}ewLcQDmpW2j!_Hf0E*1&VPazf?nr z7mUeef-b}6HOPYc4z`qE%i^DFY(Y}KRcWl27MGwN-uUzPvzg`&Bck1qb^3uonbc^i zRBZZ&B9n{YM6$w`Z2D-ijqp3B+k>s4m5eUnN_^7xB1$Zeh@yrarzQxMcN3T2<|nJzqb6K&=-~=}Zy&+XXHI)%+q8X(-#11Qd|I zTIkd?POtj$$Zfv})9Jvy;AJTpzppkmU-;KkaSLX!p|##S3)k+tV31N^ICLT;{esXv zU#Zb1lPtK68EBQ&eL zGE75LfEmohVlulo{x~6sUy*}%H$&*A0Pojp=2zU(kFJ0)NSCFi=IwUYe8U}R& z$7Uf>PynuX&TKLqPJCLKEG@pw7Hq{syV{_ZYY3wah6M745 z>vwJK^OBW+^1+HzOchbXNZ&0Z3I%;W^m(Nq8KLFm@Ioe-W^7dEurnLFkIWpL&-X4> zDiSwVu(p^LWZ=hnkxkLbo|oy;TCVzKHvHhqypoUilvQ(6@@ynx`rBm?mQ7z~3er6e z@aGlZ85FHnrdM{7G-;x~=eMyhJ-!#B=J`pNr?BjoAf9d^nF|>H{$|*-k1F$0evSp? zUEL^@4elq1MirrKy|QSDEYbxo+@El)uctNE4EbSW-~f+uaY>55eS|(=j|Ysdh4EQr zGRN5-A*0oxt!l3a^USbh1`z&}84P7&+ICkOK`UFXO5a2 z>ZNg3Z@l>@rd^g48vRiqO0ji$(&f9 z)LqH7UUq@KY!jR~FS)KDG8a7t42~H>k3cV@Y8%mJB+Fo#zD!Gz3n=?F+0CqRRzTPT zm%~-BgFaTBoWeWthrhKIk4#W=jnA?X_Q4rC3pJX6voC+%^ElCR3LG%1%}y!ey-AmXbvoB0i_NT6is*k zyt7etFJGp5n`B1Lw*eL9BT&%&B|r8BW1KZHA(QO;e1Dq1g==L7 ze3#L$8yF7S*oA9;=a4OX-d4Buyv)a{jLZn8_@nXzwsK=hq|;B4F|)l-e^o<& zm%%WT$cC5*$xImEcl;5`y;dxtqL08l@`#Kh#tZ>>3>+(sa%XMD_QzXQV?AP9y*yKZ zt&O!(u53n4(OK@>n~D~qYd`PSuZaT&m~ezGeUIKt)X6c-h9*kr$S;yw%Tgz7E8pId zBM>ZNLRtD#jg$zl2(slxn(~8s?^1oTg$>E(Hxb1Xy(Z_f892Jit#hLyai2`|mBn%vv!q-{IIg3l|H~<%XcLTUAnqF)oE`> zo^uXFRlFmsUgbuip6r^2`^G30Z?9TKA~hV5;Up?Rv**SSFAOm&Ko(jIT(MUQ4f=>p zRbc6N5;=~UmP$2}ECa;5J^7;*K4drP$eq|k=HPY!)A;Ns>QEZX&7JshL|uKPKiNLn zeBz2K`Z?=`BHLP)a1%ga4BlYpjkR9KZKWA7!oms&f7Q=RTO#!l5KCpg%WPmM$H(rrDqu(y5Md{6%k|2~0EvXfqBa6k<0R%U7X9TsrImA=m5N=9ty6ms)JnEfjp0 zu!vb_^mddi+XI=)?jMUPkgY$92E(r#gV}6Rk2jew3ybLy@GA4;U(R|_eG9SZ-<$er zj4=84^9ozP=f?hD6Jx>zoR#I73t94iyZXQBUT5*9qLk~OMPfL)dt^249>a~qSyA7X?tZMo30Zzl+AEi@~g zv_%B=ZBdBEqy!XGXKE8 zAi5&T9I=@S-@Pe&CZB{XfAGV|aA5c{9=My#wPE3@&vPPLsf@e{`{v|4hVa6``1q(E- zQnhGfOZeUJHBVF(()d_(BF42U9|PwJc#*phsO5mWv8gXZx!|-UL}*scxbZr0qyfCp zCz*MCYIYoQ!sn z+6fAi&4zbzns;>l2aQZh!Kg@zao46RLpZ||P(g)n?xZ9&V7!QxqjrnUc?-;;Ow5-B z!D2>`s9WuCd>7~3we@@>;7as0*`9~s5yz_($xPna;q=A00tjtu`q-QZbc7)iCmzKx z2$Tc36fJ6QMd&Xs#8WL$RfV|sOkBR|GM!rQVBck^)zEi#15)xu_LSb@>vwfB(WK!M zGj;K3c?U2dWlRNQ;b=Ki&g!hKMK8_h84T2d*Da=?^+A>c*!5X)^EfIJQhG5B9mvFO$$(#PRGGG;nYj?W! z>kDX|WZEWkp{zVVpT2Lw-#;5Cqy%JN>vx5RNAnocQx0S~&eoyZ(NK$|%BwobElh$| z3<4Vw%tm-OKF(~+u5>ilMolaSfWHyWDl%DB;Dnz24VQt1Yqm~453C%U<840du$k* zjQ!Xw0zQ26DlU8D5@o2gaFsy@^>?~d=DCGk)`~SqcmqsPx?H!oHmnYB;&%i4o11WX z3bZz^GhZ`kc4=XzWGfd6mHYwCWB{$ExglCoH0@hDCd|tw7q~}BCyl3X^Dkk zumH4ti@3h?#F8+KiNNij4UOCp>W2Lj(9J1)vw>94TMOutfX|{%UN%$67Tzn!ByBem zX1mEkG=Kt!W~VUA>Puh81MdWlys_IJJcUHnU*b;p_;{X*S!s&c+xlL6R4}1ve zi;7KCAMuWVtQYXQqRzbQ$3*m*Uj5H#<|-O7`o>!4-F$xEOJK9J(P1YNMZm!8QlvBM z4q(3#Hl`9W>#TZao7s1HJwmIoArG3y|H4-hW|I2Ukc=|lnz+DLxBW2@n)Bpc#m^Wm zJX`r#?Cm8TeN#4cY8w~~1?DMp`P;eSB1WTrl&mkMi{v()VlcnJ7cL{E<1_UP6i*tuYqBtL&lZre=8upt0H5ypJvb0BZgJ5IN@o(-p9>eG5`7Cu_{`B-z@6t+1q08Jw7HL1~) z`#vY0oJqI4;yoNayHNYimGKl?Dj(_X`%74h!tX|>sD3Upx*uWDA!&;rW!jOr7q^Ef z)J|?T@7Er4@B$pG^*+PX&HcN_G4@+NS z=YF75!W&r-{>iAj0?5fOf(qlOF1rPMIA0VS$9pn_71o&iEc>jQfbn;IT8))4LdQZY zxqvk%K$fg|Z(_C>?doh%)5^Eo@0Ai8iP6}s5$CIzY&CgVT#hG&Mj4Z2SF^|#C~U%a zS&1-&1(@%u1Pm+^=H>L#xZ;c+YJ;l{Dwh@M?+7a8D##JW4T7+V8fC|%X>He9OW6*| zfuY6)EIFqnCDoY(e(15~LfB&pYL3C0d}}8X>OoP$I&v=M2;M9{`HRf9uIX@(YBt->}#=Qu8f)M_;we=@J&N`W^fIssHRVtK5#4sVqO~zpL}DpFXtZrC%{iNR@|C0?U6qwTTrg| zSv-x`*d0mPWDHu74KUK<^YSzfg=J?7=A66$8+tjgCXRrbjXTC(Am5sdlI`Hld}8Tm zHC!berKPF!di&wr{VKLrKsrK`ibb$EXEj}5i6wCj=qrSCJf>aLh+0NFyyvM;qtX;) z)6-aQmL`q305IFk#92}&9l~JnG8m@l(XwZvaYaGOSLsJ zZ`!>X3KMjJObJt@V=%QOi}-Ja_1r;mlo`2Mq{duU96{R=!=&aYz9HExfj*{k4?Yxx*DI@F{m*UhH|7+%qGWc?x@jW7&eSwp>xcU zgFxQ8Z1YE?8*3RDN~`^|q_;?gz7ji@T0unv^bVVm>qVoD5*Rt{9JB%;2DaIA7AY&_ z*8?)j1q<$=C&e`e(PI@&mxmV`VbOr2yf0n>GKALF_!ButlT0PUB7)a_hsvDI6X5kC z*zTEctfcI3IlV%T)&J0JA3aAS&tBY_DZj>xego!{+1=Y$S>rExnV&9!B4ley3hPmpN-_y=?yK z!JyHM3E|1_c(f_N`3o_NG*Z^aT9q#{mX`MJBC|aE&BhFF8OVBR`El|3Y$!(PK@8Q> z&5Y?{0i^>1?~+q zX_#99!SKFA2)z15)p3u%VFM~=7B_S@={4=Z_H0Bo8vKE6k^vBsGoFa%RauJ1O~3$o zsfmN&Dv+%(wo+zT%fpmbYbNm5*~?|s5;V_DJkh16wWgh^Ga(Z8YmX;o;nxAM9K$k| z%OK?(KuRF(4#4WaNYRWxv?P9>s)Lnp4n;3k4f3ir&B2FeJ$tB_$|2NC5N7K!vo~i= zRbKjomb%=e>3XB=O%mE-BAR_~7kgNu=n~`HTO7^SE;3|6MG?7~b#tI&x9jIIjz^k- z*rEW?dS3fjj}I?fg;2i*q@-Ko4Dh6EOIjCCE2Q67Hb7EXKZm8TRkabu z9Idk2El1UzmOqzS+WmhH!*XEtFltdr0##t(Cy)$do>nt)3Kh)*xXvP~eL{Tw>V<}` z{9SxWAG{vrZIpbW``Kj+N9dUeZAoLJ6D;MMWf-i!+UOEk)ILs0xS(WW@Z0yclo9AG zCJ`*+U`Nmj2Hi-iJ>W8PW>40R_uo;s(e)Qm1k+Q4$7w}Ae&q3*MYlMG6cDh%%E7$I z1qpomGQzB20z$~y*)6pbK&JhK1U@Djn{gN?I##nsN}vET)0AAZjKVf2OkM4b30N^# zmjEOYcFiA?m4+jK!-$9_*Z>XidD%u%7VR%o1W-93tS8fN92*&w2rWhn%M8d3l*!~n zMs#X&3Tj#w$zej~r>!jhE_0l){35K1>yiM8V&$CgrqLeOgI8FzY?3VC9GhI7YR4hg zNb_LN54wMN^Z8k2TRJ)8&jzs43;@tP9#^CpEROiYiR6Qhx&T!`s=tErX5TDO;gPQP zOa>FrJsHu4T!!-+C;@L^8Q%6i^Ha`?)*?-~QJ z#KvVdnb6qdMWl|H)d%U|ohuuzc}EJ(bt`^+Zfl%8 zka+F-Ta^+>{*>PCV^gKjb~7?V%c7W%gT437Z+Xi6R%5KV^CAFa%#4u7qNQC@NPBT# zAW{LiVDj1D&yo{zyjNrnt`9}l{0U@^8_TPO;R+wW4PUbIraVc%jO@M?&Ih&;UgJPJ zr^9DuE-lUbr&;K*_1FZ}xUXkrJMkHxFom>m5K8E|Mp z`N`W%`si@DgVRgFmPs%EotNc#<$_{!VVX*bVCS3QagWCj*8Z3i$daL}Zf; z+SyP$3}ZP}tF}s^t9Je$zvCwCGoi$4i_8(`dIC&-l;ivNy818s zUc+FGizeW>(Ackij>{nmdL_Sn!Kcx1^y$v*eY1_ulp>N}pWz4NYWoyEg-B}mat9eY zJQMKcKqDQG!QW*j9j~_MZ|3^Tjrlb+ZM-jq-)%$%06Sq7CE!Qw=9ebiIQex9yo~!( z`7Bg%*~f+?X9h5N8PENImZf(* z<=<<_7JEcjqLCp5IJP;V-xK`v!7_uD>ot4l4%?K>dpwy9@zY%a4t6X$x|>uPb>Rl((sDeDNW%jYDQ7{^8l_^%&cxM zDV_vKM35f}6W;?lsmXycoLtl>M&0i;@(#9v9#B;3m7iQ_d(t~6nu#-;SQort{Uk8Q z+X%wo9!0qGmZ0;m#j*S*`v;&`=sYf9B? z9+<2Gj9Uhw*l0@v7dT{A3}Y~k^Jl?GIKJm?EqOo=pAYKP%qPs;=S;4z<-_6(6L_Ka zFJqty@F6^wW@Ak{jihDEDxV4Ul4tPjyM?SJw#0TGvb0d<a&BD3W?tYl zr?cDe^VfO{azLcShw17u8q;-1O-GKhdyxCr)FlJjoy@Jp^S)&6=fODI^MD3ktow6c zO9=7qo^cffeFT>x=DRwca0NVu)zn<+4Uy(fd?cNNuji+@=umX*0vlocgjX^nw95-) zoM;{n0PV}X_`5WL*IZhEKlm(CHtZ&i?wq6jY}Ejjar%7ZFQ`Wz%gHuVJLz2d53UKk&+9b56I1Nwr~I z8xfez@)%yw^W1UTukM!u_gL9Bl*>L~FG<>NeZk8(2CM+Kda!re$D>II^J%QR5`bn+ z{j=7#3{Jcz*z|S-QixWK^j1gDA!V22-$f=NSv z!U(&iSLhLd$%F!11Z-yB)WWR-S|9D{u#QlXFAFeUhI~{3Vb2i;E1VV#WIvcje!4pU+Su%X50Q&l;j z7D|kfjR)iDHBr0tm<$~Ycy!hHBCa2ySL5=3%?f`kw^>#Ql@4khLULDWWL1YGwhxac zut|H4kI71PA=ug<3$L+J!K4a9jx&Fx3oN6l*Ev2W=K%CJb}Sg$#JeVUqjr8{O}HIG z++gw_#*2v*3C3LozqV_@maXWSalZPcn@^H zKX^d}HZe0My^7Xce#6+!rexu4;r?Wdo=r}$(ZZQ&bD{>5QfF3Js6x;yc}3=Z3!8x8 zM2eCczc3lat&g|OL7(U^7&3v6jFV;8^a>i6TEnI{(fZ0C6G172P&252m8QFTXDR|6 zlXEV;vC1nXZ-^8?{xX}Kcs}PV>1djShDc1H%iu>T^5@pr^)-x;)^9ud@jO#0M3TGh zhu&-fSFtd_K3SyYIKH#TQYhqmbgpX!tWqTa#K2!^=S;thSE zhdsd&$C%nGJ6Q&VKa}gHy@LI$`qR-yz{b^N9p7avT+U#WD<6|BX~y-i){Vufv6qE? zY|_rI49A7Z^fU)$0VzqP32A!N9>6F!ywrWRfiBB@EL9olx4Fl3vl0g}z)78Czp#<~ zDeL7W9+;aPJ>UXq@aL3XDREwKIUCN5Ekr~m!2W!rAsp9(sie;b9cLN#TQt1wA^<)? z#_gDw{S}wTir_fm2bNOSl1o;-QMfj8TWoMLg7ZoOCH8+WFo^&R{ zAE1T7S}P(T{5WU*?ec2oli(tl5@?@obIzHZAGXYpFDOa^D^u75Hi<;an-sD_j_V=Z zQr*X>NIm00%R}J^r^n#J{IS?;jF&N2TK*WzW_&>vm{1*et#{xhoV3=@ zTc5gw@Pi8c=Ifo={y zdd^2qKwjEoZuLf?c|Fj(e{xVRcP;9Q=Nr~XBix(e zucl4L>IYbe_kI_=|LWJdx^fy$$`0pBi>!;vdI}<|KD1_YUI4x@;cXR8g*F4tU4G|L zHhPfBMNb*_?T>-RvbTnR2N4;;9?tucG;z9t$4Ned3Pd&GP^%C;(W%%f2E-XNvFmfN_LDV@ z*S)UxVGQzPk>a8jiR8{pCZOJz!C8T!C<88k&V11inE4&9Uh7r_)&K}`6XHV%SgP~F z$|@;uw`?O-7@wM|;^{^JF58HwuKQWBHF;=7c6Y6jdVNHvjPBCnNc4oWE7jQWFjyJN zLxAlL_R8nj>uKN9(t+*}8LYsFRZhiZ04xPqnSC3*2r_F0_C*T`5o0zwE53LJ6V8?OdSyl6V z%9AMJkid1`nPbi}pM*Wy8&8`H1)RdmOgIm_G3pcsySAnKb1$x{4^dLgk9yQ|F(?zE zNV+6KU8JF&|GI?PeNfaJE#0;gvnQTbvYjR#feH+aKIem6WE!SE;CMUw%q33Ot z1r*9q#@_taBpS;5VK@x!Y*NX$uTNBqm~PB*1V^MmYXv5;U!`l@Iw_s>=26uj&pDNb&nPO{c#WuBx2)aa441M3r9)O&tz zOCY&##@Wl!#`T1WiciP?c(OLEtN0|-?Hbxs{4}D@GHx>a`l`e@m>g5BK7f;@a|x+O zJ^U_Blj?~%7+6#_$O^tZ=TM3p5I|S8^I)^2W?up=a_Dte5HfwcH%o}iHnb7yhZ|^N z{*tlCbrq%F{)K66v~2$us`~u8s{ z{>Z>OD8};{zJw;X;~H_i6%|;_5iSldS33db*uO{XYRgND!nFcU%Ns?KD(TeS2`8IY z0@Mu)ld~kzirf*kT_b3@YIME|hf1rH1Ezj_l{;_F&%U;&XFiWl>9 zjor$M;b;U?A>(bFy{&VqIRO0z2-fegetq5C=sE$fmb34o?6IC^Sx;)8%WN5o`(`7C z+BDs;^!Y9`&j|Cmq>!NA0wvnVRfr@n1>~fB4o)l`46Xj31s23Tug{d4WRkV$;-}&86JV6&5(j+$iVS@4GF8#6aQoN6b!_D zdg3Sl&vF;9$z{{yKLxphaie`q)+{^J#0`3huZNQ&@zOt8b{TWs4tEXp*N(2pWHLBu zuk7|1H+-z$2F~>lSh;*mBzzBFWklc!5Y>IN<2!pr=+^ZuzYL*aI2#8MVebVG-%|>G zq$rYGt*n^&?B1fby#w^rf>l%qnl1vqNbN~bKQ}b8l)^ee8domfTKjC0vYxQ09o(os zpe4#ouyqR-X@>fnJ&A_iby@M5&Q;;@Zsj52ti)|XRgimUO(Wr{?zKO!mt%B*1e6a* z5e(S-k-r#z!qjdxQ7XCdlL%j73hlrExfsac+oyjb#1wS|RFn7IfFGG~VqD_eTMpu& z+YA#u9T$iOzO|9_Bqdn|;-5^QzJWQ)z3F{P`)oV!H@*r@TLV8rAF>I4zC9|h;$;q$ zwoPf0IkuX7?HzcQoi5!lT7VBz2-bw>GS^$PxJ)xBL79#Ty|E_EwHAh2@A+kgK0T9| zV!kEe{|W;%p0VKk>V}8>m`E|@RiK>BS=&v;c*z?-zhJxf{r(x?l+-j`KZ^sW`RII| znl+RE%7B?{Gv+VW=W%3Th8DW-GA~(!++pyW7HoS^O)NeNi;x%pHGAhLYH}(C2w@

?~w&c_Q;JFzp)`)Yx4z4&S`1;SRDfpa>^Z@$D{DWPlbfsS8Qy{ zuCk$($kN$FecM+M6xpy+0^H@WZE-7V)jfG3+Ons&hP6) zVx>nqpVt&y>dsp){7rThO4CpmfrWnZj46lAVWp_8&ic?W+3u{(FsmTxE-#m@x(uNL z7sigJO?79=bdSxJPxIP>z$sc83ZtDYN_jFm31FXMz=-z*qS48<(I#cSneS|y58WVj zLmz!IZIICEw$cNiQGf&0WJogpngY7mHa?)xjuPVPzHJ~zdY$yHv2ZSX^5YM{5UF0O zv6$_#X%Z=WSmwAJTnQe%=FdBjqE)^ig507B0+hmM;PGXG(+?dulMHoDGmW(}6?>13 z)NU=t43%53npx#`vx%_D?ORZDj(SU#5Jk+^_-Q7Z>2LH9m-4iz%ZVVlDSE_TKZgNo;!Q`Jl>21asgw}ZGKEndOIE=Mvnys>&Rse zXoL-G<#5^>9}GsjK)1Rn0TyY#6#+{o(|Oru0dX%M8|e@{Skwye&VsId?}9r_A~4HYW#YGUc7ix-p7ZOq_M7<0@>j zdNC~Zef$gfsW<}ILMB%86OZ*_4JN zl%oc{&ib4*0zV)9RdHu*LskQ^^pD92^5zQzUDXx!TMg+phjjHMKoDGpzi{{=>Yd;O zX`km8LECwyJsjy}z#YuqFY4Tju1w8Qp@^iDplH7eLGZ+lZ^>ByS*lXfDI}bN@dWT;lh7+q$bbbNa?R=oR>T*ap_`7ui zKG#_T^b<@AgH?kgv+zD!lCMXMKzIXArd!yX)qQTJh1|i8S*v|p>HOoF&iCJMT)ET` z%!uBZZnwgxxgg1VeY1zv1f4N;Y;*sG34uilH0S4NygF^zU?fv}P*<)=IV`1@J{Q-K z(J#6z3S=L6lCIQhz3a1w;z@P>y;eRpBJh*Kb@IEpj`&3M5C$6w`Qru0XDT-j{YPHB z+?sT20{@(iETiha0WGbCF!(|vUCVqQ)n~V?owWb}+8>);g7Bs@F&K=;+FBfK$UDf7 zvaFCsAqXN$-TZaV@{k<)4adV3STfWwAw-i4l8Ndb{7P>C><+5_H5z}Nll7NCT6w*c zk%()beQ|Cp&GH_qJBAds$vq2h*nhM>RW0_zbY=vp9eB3JCL`?@b6e}{7=}SN_va#` zru3xxu7)CJ)_=-B%irZ>wd2V_xK1P5Kur^enm-G3=2h}j9Vj(!wdGpEjhCjd%SDdI z9*%;6`xNOMwwbL2w4_Bf#`dGxmoRma$?-K3h+Iyg*rQr{vCWcI=j&&I{J)BrwaigL z)i*vnC&QwLDA-dk@3tKJvirV5wvlsfzQWrI&ksl1xEIs})+m_Nhn5)cAeh}WyVwhg zz*K&OZ$29Dlis@gCkKM#q>eQ*mr(dLyoyBIY-Hi^49e3$Rl2;T7Ls{Hv<=CG0;iIr zo^5AlqZGNj>|C#p9i3TtctgtC71q*U&&WLBF4lgJhHkfN6AaGVUHMkDigRKAF2Tk5 ze^vodgL-^eirogAA=C??KWDW@{CvtZg@@#Zq`7j=>hBCqhMx;_=L2~e-=Ir5<5-^b z`_cP;aWYNlK=(YwyIHHuJ8*&$l=~5IpW4xgUvH(B^0O3~z2CcT!{V?e`@P7cKR^h6 z|I?bS?xPjo{P8&{&dS9BhyjdRb621S{cN}Ogdr|fpiS?hkXFOX>B9OIn%h1oWO!z+ zSz8%Ve?R1FMp)+ic`v5IS;A5n5(=hQ61TG%fX8a=)2&5=UQHD3pWtRUkO}$)s&9WY zP?X$VY}VFLKL%Au0fvX)4^@%8fu<4m08j?Zdmn7jNIA%=%{GIeNnq{qhSu&;)nSC> zzbC*pOL(Pc^_TpFro1m>Z3A_C)9GMfu#|<^14XBTu`Gso4fOX*==0V$2C*hK^0={j zc;fSO%v>2tAjDwMvf8V~UkhdGy&V^00PGg&!k#@W(k*i-cQDnk7uHv>F}S&NxPk}> zMl#D4aYPuo?5)HrtT}t&@OAVw3>qrh2HEXzgLE zih=OCrW_4U9JHT2nzKIOaPBy&qpLUuBhP1$!eGjTfYCWC;zQ)5@_e^rJKpBE9+&#- zU@$XUy#L0oxG}3??tRA#oQ$u<=o~%|qdOYV*SW(^$Rh6$i0g_~_2Er{%XdyWGdOWw z|B7uRG_i@NlH&u2vd4pBXXC2w)(CmV#@a6 zx+lUoPF9K65T%!=xqB6d^$%})Viuneas!z{dq;lw5ZO5TeURP_1d?{whD9$B%rg>2 z*IG6M?HGjqX8;-u%$2kjPvv8w>N8iF$ezOJw$=M>dT0U6hYFq(CjZYR< z7q+>hh0{DxWN}OcFYs{m-jqZ4I@z#OrB~H00kL?RRH;z%n)G|2ZM*S>kr@HNGf-CQ zzPiR&eCj3QQUMj|hjghf%x+(HH&wF78Z8J0EP5JqD9m0*CjI#ey;;HRbBep3?z8Jz$$OT z8sH@(tm*VtPgGVPx;=C(2SUoy7v0gGd%YmE0v=PgL4oz{&P-Y4IYQE_IeC_9{0b&V zKr2J)8Z*2nFQr@IQ9p!FTbM=L<#DA}M}rw)K_4TAedkb3N&Dy#e`sXX&|e*sUQ?G@ z%8=2=E;^`*#)`?I^xOrM_}T#x5!#GZw8r%+(;Dk?1pBZU+B%pPnUrhKG}VLoFbOt0qG3sfe(uXfJcv?`xpox*8O-r66hd{7?d8@ zlUTL(=0bhaMOW2sV8Tswg&{l&uX30~d zl7VDY?@-U)cTk_vG;41)#e0(DJ4|TbG+$rPM16b35L`y5*JBHJ1fowTY9Wf>)0AS^ zlLn^YRO2v9^yy9jzMfEoE1hXd3L4HHlZX>R$>`MY=^eyK6x_u-_xRBBle zH_X_tnAx2Dr;lxcHK4;jplTyb{8iJ zF@wH(=uW$~p&@_}_=UGB80FDl6|PtS0X8*cXSv3hrkzL!&djmn*8T?}9@_tT(lxdq zpq^)PzB)v4V0vjW#&0qLG0MYB4cZh2(_hg*NGQUfuXV5N6xBqi#$;UZa^vY4da8xa zuT^PcqNP}|{CJ(L#Oizp=t59L&?FFg?$WmqVmR%ml^s*3CdY5|mL=Q~lAHLUn@BqJ z*B4xrRimX`;`tyXd#eU=M#{{P`%$!h66T%iYw&oh-#!8ckXk&nqy?WJbotU}Ab&-7 zk3ZXags#Ih9yLYBgh9|2e=o|lYrI>U?=w$`B##o?0VkUk((jv6XYv9CSLm_8Daf`S z1SPAn>qArpr7Wof#xE_A-?;PN#c`B~PCVF*kyaZDZ^Bq(m`&Anik9Xk_u59)Sxa|* z7AyWVZU7vV7RULg9Ge#hW@tN5tAMzx#HwqPkfI?`iPzwN;39%3hJeI@lHK!}WoqmNSvF~a%D2Zt(Li}fUPZ@)d{bw3O*mS8GLZT( zCdRmb^J!qf$qC4G<$TqUu$DSp33O<`0Epd*5UcOV>a<)yQjE! zx+wVeJAvoakA@)tE2ArSn}JN6zY${R%D35*OH}a;YEe|?tD5AubK1mkSZVQ|gr2It zX#G+%VLAv0%bYPZk+`}&`tIhH8TES&yF2w76QM4SsYN7}ohQK0VVa~CvZy)EQ``vz z0JStVSSiK=B9oDKpqbdu@k3l>@zR(lADHQVy&g{pM17quAOTR1{0i}$#t~5xeU5d$ zanMCB5p*_i!OLM~7IVyfJCKk=0~dkU4V}fuJ5EUV2+2dTZ_wYNJ9ULcMe{+`Bjj>(p0K7WI+rZ%iy>&GOHePTJo3V8ra3 zjz^A#rV}q~J^4z@8c+q%H^RQSxW_yR#ri{iX{a*(E^R%&+dD^zA&6n6pmrNd4dsq$Y4q}ZO zu4-&DD5~^)KLd?dRKq-wK^wDNM_iq=4tRW2Ia(uwUfUCP^U%a*UNB>uVmdAS5VHjw zCRVFytY9L&#lvLE$({quF9+U^X*jGJ1LG-gDXi}+(1x-@2Sh#wq9-38!d-M1xW~FS zCyLNDk;QInKG6uA)6JO`#B9dMb=IyV%J)3+9-igwKorw+pX|50PJLB+3!97t%Fe>xKopW#HV^|5)~ zDn1f3&?e>_R|hCVpSSnH3!s}#^e`5{&tWerhA(F~a5Ewx48;kj7+s_ve|&opE~|v} z8)a?U6Jv;8?tM)=`mzRaZi)f^34Zj*zmsjD!&@;wCkU-zaCT81VdB!u2)GxpWAE5l zJQhM<`dYlPWK<2=O`hO9#Z-Ky%`{@yIh_$|qK&RF^{F0+69J7@Aa~0sHIqAAf*uP9 zlpb8BCGN`l7A(&C8m4d-e5@|OiV;Bmy?EG%l4R8>UA{R@GC2D#<^^^I=eEy3o3;-Y zTfy0n7C02xvlV)q(>B6ni%4)NOO1GRsXt4x#4gC7`mhx~UTSoB`t5{DB^sPe<*7zp zZEmY;Xxu@;?mGV>vpW}zv13aT`;IVfON7*I6g5^Qh=gEuPTtKz3EPS~Wx=PF*mLHBTy_1bIHF`f8 z)r-=nCN1VQ1Qa@B6m*tF8zb;9M5WvcrPwl5;>tMwP{3p! z$-$FZHj2EOHiPV+^(f^`bEX&rFM`q>lfSiuCi4}7y{C$Y2K_Sm`(tn-pf^=&BhJo4 zrCp02qpT&AVynDXwM84+NCDZEa>YM`6Kl9|${%QNL5d)pnbAVn&>wZaiHl>IHxo^c zu6T>*T48L{kx9BL&`lR6*Jz<2#RpCDxJ*9+0-RMRTkJhw71hI0fF$%SG(s|LRdbDV zD)2NeVyHgW<-*OP&iL^Rq38Mv##%xKC#lMBlF*u38mVAFboAKp6e^)m+O-O#_b+GE17e)KegL(c1hVyyjLBYk4eF=O1vyOu!w?$h%iqlK!A zs|XN28ETv*1?_*678tSNxlf+w;7{EX_`OD<2=RGo2tiDJOfYxS4jkgfrMNoINi8UB8i-DWsCe7-(yZjvoTB~b zqHa*@gMMabBGl7CUv7!V;y#h?)Tt%MGZ`h9UI8-jDpM0IM26vxF5ZeW5|sguObHKuPDmgu^bl*c@?#tqlGba}JNgi3szwqs1}j-|AE5Z1))AauNQ@xk)Mw(m zI>)kcSO>{kq!R-r9)64>qtkb-535xh7sM|;1+M%1J!iY2xYc02?yM`FaB^9a6HFpe zHO1IG^yHf@(+UyMzVyl?u}WIOc;9KROW42jdI64&vfKf9^rB+kFBXDTx*HIn7%!h; zRpr79_x!QR##`R2Z3dyV({iu@VPr-!B-?(sC4T^Yb18QPCY$2aL?}OlY_UZYvMK_W z6wq(3?}laxzDXPOzFP0lsf^8M0L|gtMs-FDZa%P6Yro9-)C(LQTd@ z^mfNQM^U~75G$=aWer9%cwwE0L)tNKw9!_UwIB*ELiaW0es9?Ag>0Li#5562`UrEI zw3;5%OTb_lrOM>RE3C+^K4;w)SpY3w*w&lU$3YO_jwBmmdGI?+c-l+@`@~`B2;ggEZ`qeeJnKPo3r*u zizhYNc}uO{vaupFSqOGIu;6-0Yg1Qk-CBMv-1%u%+mt&e8>@A0-DoJ!pqEeUx$X^AbjSt%T%iJ^;Q_ESE+5VZMs0 zKRb%~Wdr8C=)R7>s52DxEzJSss9_wK1K%uig!2;bd7TSR4D;n=?Yx?)R`S&A_ z*n9J-IsFW%*bl-7iIBFkg53h0lhbH4hdnmQFN$D!&OuAuro#rVq1EBUZ)&$T)77r? zRfW9eN}STp-E+tsldj!&?4Z158bOo1gGj>8nmn9Alq3|)x=m~hFZQHG>#MB%IIzp} zLjxbBW!i#L73?GbK5S{0AwX1Zbvo9I3Qrpo$tI@hiu(I*aTxlzA5oNfGABLa6>xSg zdhFxjW*DhYF+E>sZ>StaG&#O~2fUB_QFRE=>6Q$TO|}#|-nBiH_XXAW-(MX1fEfUp{k^%|Vp1vjwm z68gHlGem4{2LNCcvL8!Bz)npjF*!>;Bsu$WZw-8k_IdCzlrh;JeB8h$mT*7xWRk-2u`xub_+z($}^J;)Uvx2@`9S0HphKh*&l%{xuD=q1o#Ut(I!P}#s7c^#?g&ORRg z$>;uXIKhinno}44zw`u~FZNiy0#r(NB{wDQ?(znT`~bB1AU$Gf##^*2i*#|XUvn@9 znj!^rb99^uE8~dBhaH-2Cyqe*pTa|-HV6~+9_TJB&+ExS&hr=ujqNKg*+F1QhlW*S z@m-zhf8AKYs=@aX01@&+IqRzQeY2GszIxlJAJb%>DkDxsrbna;Un3JILlxQwn^%3q zQ3i-s->|u6Z~}$P_li0Z{Q5Nflpf@%v&mM}(*-BkHwV4~L+gpx)jr|V@YaBE9vCp>?ie<;ZXb-u=o~V2yNZcKjlM7`7z(aB2>cl?^y1YqtoTF`;+ss0TKr8#? z53h+~7W%zWgqnkVw1{Dq{+#-i6j6sbu9HauT!PV% zhSmFucIKdrk*wC+*rsdC?2>X97JO4v1j!%O6PJ7t39PpGBJv>lCW1~-s)2Vyd7)EXsmVx3y&SdOlTB26@P%Zw zq>|0Kv2jOhi_ZihO~G2L#Nr_ZGv(}bNZ$-~j}Fj@(6iBQ6iV?_Zy?~PEz6?xYi2qO z&jU)0;U2iI`VN$b)jfD;2{5tjuTwEB3{W18BJqGQ(D`a8MJg40&#)M*D!#7>*9J|yY$2;3{Ebxx0-(L|T z(d2|g>s`cRWKb*Un_C=I3;1cQR}lt&4iy94TZ5y;Zm76NS%J_5hp53gi55eKOcdz& z=0-+%49KQT3Sm#Wnf4p$uc%o!=Ec0`urQ6RH&_!f4)qf+$-LW*tF2XJA7i4?LiL+2)%iypXZ>0eek!O! zQ4rTf#Ocw2TtzBivt1^Ip1XBbR{xGwH`_-@)W|D}8kO(?-JyG{r=eu0abIndZcBuE z_d___AU5!ZsG!$Q2kyD4*7h6N@=CZtV~oy)-qp%EL=Kn32GAI^85VD+HC3D2qO#cy zd#eR~OaW#B)*g#3YONvI@9#C2p|R7>)K3+T`#c_G$DjsAZ(MB(n#t6v$lbhBhA%CR zPC$;nGldRA{7ttJ(Xi6-^rARKKdvRW0JREkec+T{JF$gKCcb3NI<(y6R z34V!1A7hBxW@v{K6Zq7XyC$8QqB$=c?s7LqA3d@GqUf%qy;33pE?z6fB=ooYIVNNYn9!aBFg*x&)VB~ z<&5}28oD5h^SdGWb71w)bTp&3Eiw*dvXtWR!90nrE*l1&uF?eeobP=(uZUV88fclA z`UHViXK2#L?+%LP^G)a)q9hteaV18>XIz=q}S_XageYQy8Qngwc8h6-ZjjMh_EC{+n^S?%8;s&ooK^USo53iYo3^>m)C5_hHLcsE6ZKujZK-v&Vj(s94h8>^;Jyb zr<1;@if+A*hSh)!=LVSe%6yfc#0xq{lTSZu#AKsuqf)RuPjEJC{yjMkwM1zO%m#~Z zOBm=c^@I13I~rIB92YZl3a!(d2r1#SPaIciXG%jvA7u0(Div@)1H^u9^HZGTr_}6s zl?*J4In;uAU^)_2N_#vR<{Qx%W05R)!Z~MY@Xi#Z&OCru{{V#FqEQ&Z$`nyQ)72Ps z_zYpIwcbUg!V}i!U4q27#byC`xCZmR&NlO#J#o@3;6@jSzlhOO4$!mU?+}A=fC96H zK%RW>3Fmd7=TQdg&*8M2(Rorfd}5}tR}>!#4zX?h(B9a>WGF8@BAjNlDHO!QtyumfIB?#Xh z1ioX3w4+=j@FOxgr)Ve`-bN%w27odlexa^s1BI@TF%^F0?NddcfmG+oR6k<1Z;8Q zpa;Ik0`A2>p!)c@x=wIbX1mje$r5SM1p$>ZGeza+mXd8KszeKL9sjir)Cys$Y&BE&4AqT4{Nvdp0FqvE0S~p#{Pz!JiBiW=< z;gZ=d5`d%$I3PlaaaP8lg^Bn94_tCWuLX6PLa>7q7S?2?)xv=K4w9I?2w}4oy#8jE zN-(I1O~+<~TIRYuLS8g7-Bd_y^~m6GEPBOAsGaBrhBJ-=bPX#ROaWoN4z$(vac`LF zD0Ci(JfV!C-jR6YDzd6|#deC$M>hRV7kAJN7)G%c@FjJ1;qd4)yc z&vEX`?RfWW@NWYX!-GzAkv&d<-^}SWP)-IIQp(BnJtR2{aqktbLiZAItVG?1vxgavY5Bsr-Sv3_`8o<7M-tUwtxlk*#L9EC_);ewTEmgYwe4>FMkyD}@ zMyJP?hE{#ja5r$kgf$W>u2{>`EsDYSb1+O%bhwF{`0cK#YMw88C#aA{$)!>0=tMI+ zg^HQi{`4SOn5QK=4pA%BiLxg`Ki&yahRgO+$LVCHI%)C>J7MB*pi9Nri;|46<^TB& zn}nEArV^{Uq#k($VLa2TNA0DU`f4YO*;5!AFMb%JehKYzVyY4x<_3|1%?*WZHIQ6Z z(&Z@9IOwH^Z52Gk!0h{~#ON;7>h;E9ZoaPP%@{z66VLql3R?bui^WF4L5%<&mb&QS zh5tH&C@nOLDkh^4JN0>q!x^(vsA{1j0_hpzzn1wH8DzW*(#H=q)7#p%X#`A?wqsu@ zzZ!~1O@^^ToI)JfB11U#>pvKPT_0M`W3gb$=`-r3dHj(gl5w6`Y}IaNirndZ!&4cZg6j5V51dYSSKX|9j|4d;UHY7 z*yPHOy|PHA;B&k<0PbO<*1h8-yoACwAxKDDA42?TzmT3{Z7p)Y@~S-tj!vA?J>oTr zAOJ_8^}yNh&x6d02=rzAD~dllEXz1tjEFeScODZ_*?h&nsAw-S_fHF-d{&hA-z_yVBT3Iux;Pn0G5!z$wYccZ_DeE!n;~a4Jqvr?U8oPchdY8Mp*;Fj^gZWEz zGs!|ing9Z(L{c|;rSs-^m|TLOw&AQS`dbO-PGys(Y`pKZ4YG{_u?CpPt8q)(!g8-Bb`b6*zNAZn3qKypYjmN@RG zY}R#z_+7FMU1GVooFI=hUB@uajvNkD8g(f$$#dDvuM_q%AgaHWs=p^9D0N#0=EaT{ z4}r9Dljh1=hA+`M6WX32!Pjr!aoaB1Sn}Knv*y*aAI>AEvy6K_8T+Q3~V5T9k$U>$E zUMCn2uD9fDK9u&HWPS_c!cNm>$aaL!AQaCuRa=^P;h^<&9ShdFLTF+s*UV5_GGXtU{C!vv#oyts^@kYzip z9!p=;5Z%O4Q$)1hGs^U)J+<*PaiI1={!NGvat^dM{as@X4E0m+(2hGx>2-dMmcYn0 z)N^;D#VbujI8AaQy@rK>1k}TQet))wvx&b^PZNMeHIpEcCxXseUA>$~A=a2sXPs@b z#gqY#n}C|2;RfyvC7s2ZY-j8CKzqb=tKcNsiH_(Kd8$AURqdV4M`tp2p_Emsa#HoU zathXH`YDP}pN2@ZWWZ;79t~$Z-n%Lw^BHUMHD(c^z}ICB0O|#D_s&Xg$FqRH!49Y2 z^$KI6X4LsH&g)z`a5=hODZCnbt<>y4CQC~9@9i4S0nKHk(TyUeUQ$Xc^O|1brlW@%~k!WZ!U z&tj56N{m+x1Jzx|SLaiv#4#9wX5RA3bv{+2DH0-S9lHnc(Rcf|)v17~qbzMd39-yI z+rhoE`{ETk1)Ac~$ac`Vho*&p@*D z5Jhl)uap-QuNXZ>7l{illKvV;^ED4SJp}h>J(E|Q+FyMtI;NqJ>X;2WT(g~%s!btA z>O`a{S4>tsl}t~L=w-BvaS1ru3H^DZ!ju(C9rTod1Iuss1Des5IAQ8onv4Zh@{2yklLGUo#>JBky1By{DuysRkMFNvTz<`p<6NOP`Eb=~ckkeqI`EH;7;`11 zmy`Sah!-)rK1Bp+I!>)+*6VpZAq>W5KnxZ?L(4jjk;sk>o_K*==8rLV5OGzD6rO@Nt6pX+1o+^$|NF?jkYCz`l+ zX^Hh*I}Bru1UCv1&p#`r>w-;AN?zblCw5P5npmp-JvaFRrE)BZhcpI$J+=n-@7{Dw zROuqYjUvpjPAnQjlSFc4g=$NrNk(t-BdfQpaB~aS=zPW-GT1X2lLK~CwjxV$4lP64 zX(j_5a^n1yCHot%C+l1H`UD8m_s@-$7xMKdcNk+bVMqYACr7YOwdRiQ{fAw1;K!ZD zFY8FiJrid&N$76(XnE_~hB#AE?c^Htf%GJ|QA{u5DM`8maDtmNooI8=3bDl{2?ka# z3HobBbC#;efJ%LEV+@H+z}dST=~wD8i~V;4P{k2FSQ=n<_B^(VK19kR)T7buIH!%ydr z)a?X^&Y&21YhkkYTMY<49Nbqxbt#0~vg@8X;G=$ke8pV)I#jLK@%1@g5EH#1N1ark zccHV`d!(HJ#!COK+th(|f)OH}hQSOUQ209gj#kf|C7iEuEF7*xQ#8_`V5lJT9LvMC3_ zJ2(_i**`z*SWoq86U}TIHy9ubB_hh}7nAq7TMnEnrszH@Ms5|7FK;Rgek8;&?8`8? zP*xnp^QTsBCb2?)k0;6NRtcK&;y%A5J|i=LLZ$G>+6_<662q>Sv$vzePVQ|hMzlEx z+hUd!;62a$=*TNm{kl`(o`9e|IWbW)Sl<39X>F2dbd-@5B0Hcbg?Ayl{+zQmUqqA& z0pKK*eN~y$`p98CLcYJs%n(C?j#6fyq|P0cBR~Z0-!_9nj)EQ^1EL=&Zx}BS6wC}R zlobkT$}GZohPkMD;G}apbjFni7^J!7>{pND6@^v0Jz& z70gtDsXBxILaKINNYmW0UgB+sKfbLqM9}-*O|Fo1WA%csqI<%jo*#x zQC|ZR7@d^HrQ4%b|M7gz;OGQ(<-s>Z-PTCSWT%f_(3zvSNnCng-+55ML2kzrj76!1 z!NHSc>}~Q}TxPzILI*hn@{z6z*!^=vbGU_r&9x>L-(|cH*#*GOQJ<)U>ro=fGSfEj zf{F5kzzsT3UFQK+`ua(B>~hI;FEwn-n5TaN+w;3VO$U8P`cjvqRSF(2_{N_Nbd6z0v#(qQd{dC z;Nk4;=sa08+j6n9DVu@L+`L3D&6c=V?<8C-NpxwD2}X@6X3pHDnK|vbp{L5BM+J&v ztj*&YS0DhB&X*m6tQf`>cuV6WSs=?L8%d+eg027cb;1_?D0e-yjrn!dpPjTXwHYgB zCDzFG8Cjvcau5FQS)SjIf%&mY+tBiJOO(zDtUHmrDz=kW=qP9Z`)#(ty0?WQ^rUaT zjHMx2M$f`9h5}(a61_5Ey1M)@4kiT#6oTmS+qcDe)-)2I`%`TK1oiQ+l7L_S?KRrG zYU^N|5w|g~ka#g8aBCW_Z5S_AnZLY5L0M^%2XFaW$;YH67G&eenXC|!X1j*3QwZE}#nlD9{Jm;U9Gqw7q76JjEJP{?X zf3+v0loV&hcSp(H%Tr`bi!#{OXC7)EUoo0Y3sZ6+D{K1vRw5oanZgE#rVxRjEKx=G zG=fegS@6EEefTNz|M(K5$D5M@NW}QS;msVA1AQpI{?5y6J}ukml~qVG-a+9I5Wy1b zWPgQMXk`+Rn_nrS)lozl^!HuSVlPWd%x`i_(WBvQ$R`2geUP%a+qG=5X!!7(l*QshAr$vlxg{4+6oPLfAT!dK&BX z{5{+9A8_93gHLvh;RyZz$&UzY4l_|tUOW}9L~EGhqG z4MEw|)~QC|-Tf`RY`iecGz?y{#@>mIIrR82$Aaok&l4J|bhUO(>|PPwUV;5PiiMI=qZ6hy zo;KeIr;V1KkJtPew3PNeB~hM7sRrxFeD5B19@e=LxT~@RJNnjrZO$>?& z)D-muiH?v6ur?5Ta0DrL3w9f+dB9@GliV1)L_U2d{L9gB4x=mvmDu66i@AXH24T@KGBk`lQ!u%Ca1l61H&tQ z#;N1XxAY&~-C)?Z3;&U$(@dv54wy(#uxFHX8=XZldgB2=U7!^_&f$zVjSI<=mB)pg zrH&{o`bQ>3Qopj!gIMH|!+o%->WL8qufd__bj90{Ljx_cMWYM z%bSd2SJJqapvCJQUpPn(2$UuK>}TIYk_l~E%t_IklDv79#De0dJtXc>#wReCESYDu z$08d|E1xZL^k9Bfy&3=WbD(}kY(kCP#7&1jpRK=yW0u)u;HT+2zedW?N@YBN>23ehoXA`v5f zk};2otv>r+p3ORDj@F=iC@*}E#P{in==e!+ZJSVPN)xHN5$}$q&kk$~*Z$iu@%V?N zPY0_a>+i&J)l_h6oXh?Py6&%sm>fm|Gcrn6bjv|*8<8s(D6;22Kedln()8>&OenBg zlvgO_?n*lFi{`82sm zv(O1%3skk0yruFY#be*Lm`}>P?i@liMX=^WGBro~E*Dy6j8PM7AL;P>(!yR_H}pHn zWO-j#Dc$pmA%?Uj20#Z!IU@!@OOx#4lr6Tz%@+#T7_xLf-6^&f?^Q;9-t%g~{aKX* zXw;g~B`V!AYfZH+cb_o7C<-rv0yd=^nMvojdlSx5wi6{ds&mY(lxWZVrqN^*#nm^> zJ5i#@N9pWbxGp(_*KOm*d4<-lQl1-;FSt>WfswbRuuN$PO2n? z3k4N{?Ms2pv_y>dx879J$~PVZC!H#Ls>xMeNyq_^x3_CXg+jU2wn->44(CQR7N1m# zV#P(PTeu(nBc32!6^^qc?ER80jqVs4Y4$w`F{&y;Itp=LZV;TAZ<|hYLB4J2R9Sho zpa_8+uHCV3S}?ov&)woAk`TzeI>Tl=6j-a$+m{mWXvO$+(Sq0E6_Um#5{(e9ancd{ z;1r3Ay*CxxR|P7`WWoA2x`A3VTuIyba%F=)!_35({H_#u-tVZthso{|>>d^((vk(; zg-e592j(<&r#lV(D3|=qgpck;?hpVlhZJcn6&CGD0^3IuXvxnpIVyhfr4QnGq6Q24 zXI%w)zenNA3BW-F1nXb~F~fvadFWH8`vT$pQN5I?41;oT69LAaBJJ5zIZ8A*9FiwKezx!3zR2-lW6(oXmn-3YyU$A7x7bdtuC$kh7WGod$dzYJ7A^~oZ0V3t88uIF zQ%lSi(2R}Fd~1CeyRQtx>0nhlJNJMklFMbPyPS4R;sG=b%2Itk`F^tTUaaAdvXz+-_d6 z^{dx+r5ucExrfiL|9m}d1MZz#(tkHT_Cmluv<+o$8BdlX9^nK>_VLc9gDBx{=F5u$ zETRmYs!?*iXjN69NG`1g!vTI4+>hexXw6HU=c1cKpi>+J9GuAV=uE84XY)Owi~rUNMw-HY-Tsz2ewFCvLY+dl~04vSfe(qU-Ix zC*O9ZV=Trh{(t$1;kKiaP7|6-O9HJXz(-sZw-06=d&bnLHg{P)@sPXG0_wpsmqTV= zR*2nxQcBH@)6l;F{Q6eeG8n^!Tz8|_tASSc*V}*9(lG{7=@CX(^|rC8 z!ED)~vKG<`Wm!(a(EEZq;r5AkfNcqt=x)^4yeo0myzEwW4Lg&@xlX*=+wl?d`<=c{)Q@h*=#; zAh;*Gkp}6kL)%b-jQ)O8%@s^=p|y`c;GC`;a`CV&{^@ zUSz@0V#}@n_{>NUpIDQoHafc!2#nmnZRr^UJY!4~WECT=o?csmOdaLuGt5bMBK=v) zO)|3(R(y7(xc0C`@~=zjV}mhy{y@V&I8P!sknbVKxu&_m{qEEpsGZc@QkNB)s`por z^QwLDrI};f{17n@$C=;W7!QKYvp^=b=^5GqT&e%(RSiHE5RH>DkvQY5^7yWUBGKX) z;3x)_RF{svs2662Y*_e$JGnMF+pcx)G>aaD2%%}^Ez^8@yM{CSynE=b&_ey;;&S}6 zRF|Rw-th*RohTVcg`zU?inWadV~ju+C8_0^B4sY}zc7?<`W{6BG6#3=*=?s5_DR?i;}JDa zU65XpiBPqJUTzfRg=-9yIUgS-Rg%WG(5QlSOav%4U0^zM^kLRFv|)D}dVk4BgBX^$ zZDoOVP2atm3@FDSNabf7t((QmDvrLGZtg$8hjJZyNz}WdG4Rj*BOi-|fT-5{XoUpi zNz&Cb1uK$5rmU0XujIrEvb*SuGE-{N(N|EB9$F!GzCB8%lkD6CkgXJouBX12nC4KSiMVnCaGm>4PpQ`bBc&q$)v zRdMv93hVEJJ;|KRrbV{;U=ih=6TLb5o2cp_maoqCY)KELO6!hemZj7|`<~r!A9m6c z=p3^+P;eWKwlSBDF51^iE4-@#S4d&NT)m$JlZ&7UwJ8ik7Ro%e%=WE2FB63LuF87g zJo!v*<1oB;!zbgQOo|!5PWjs0YxeV0Qi3TEEhhU-B*P-{mTLSxpmt7j2IM6sNubJ# zIm=0LHKFS4ClUXtk{j*Ol7vMl4`PLF-$LTNL|IziAWL{cELngQ^3Jtz(oc>|{BAd# z67$f5PKji9Kq`h>1&rXjUD(phz; zu$5k_Ih!Y!R%)gfAT=tNFtw3)vQmck*nA(rOEq4hnC7&Nm@P5W09Bw;`AW%6pC`G% z@HfcV9GpdB>v9a0-_|2*oI(o{aCHw?hqrZ_o-2qj2^|Xb7P%0stg*$ZXzU)jdjjA9 z7PRn!Q-&4dJZ|?6w8bM}!(Kf@R8@F+*Ti=http(T4jN*5MD1<17qxr#5u@8Er_pE!#U;ovlUv@$jj@$OnkPoIj=W%7LB01HhAey#TnlO~0pgr7eEBJX+7V zNHgSAKG2_f8gQUD#(r8+e zX@RliKGCw^IthfSS+vFPNi161NrU3NABAe@ARZlApjC|56ArC(3lcVn`YM&uRDNQg z{r8x>-iqlXZ4}!oqs7-Bqh&Z4FnTsskQ;P+9fN6w|@8!2k5&qP&cI-$VjXgQ-l7Vzr0S9@Ix zz5SZ!(Uw*_TAsFd-UA;6KuW;-kesMLexh&W)Ec~a{0&uO$uXm;qvTAa_6rYT`j%-+ zI?(&IJi?$aw05b{r^IDnd&7<)RN!yQZaLAmX&YwOmQ0W120FfmwJr&7C#Fv2&DwR9 z9(Cgp-3gJY25}U!SQ2Ro+!IQ=%cpth)#|A1cwu^_cRQS*iqEe2KCP2QZvjWw0sHnZ zOiLgOB$(<+Zy_DS4ZUb$u#yGaD?R1wD0wq>G&0W#I3-8l*I>EoX_dy zCn$6ga;G2e{0t3l)7|hT7IwMb5idBZ`Iwxn7r&A2V!*G{0EjFZee@ScHgC_@cN`lr z`)x7bdnZUnP&&rIrP(V2$!-OQgsuM41P}VnpcHG9S1g@`xE=kL!4-g>H&XQ7s-ZMS zZfbj5?9b>rtjE=IYQ2^IrmT7W0b&;~%v*$%!C?Ax=GrO7Ti(7v%m#_Xky~|JJJ;W{ z(*b+*C<#3hLVa!xOZA)b9E+=b0-iT$G($~7OWSz;|+gBqJffVwm!!rW^ybIKIZxm{PBX_G+X## zmUnt06g~Q;6>>;V&!oMnP14Rnqn*x{g1$?C2(O@vau935J1De5V&!^auf-)awvXCi zBAYiNiQ;@FzIco^J$-a(6Y6)EGz+N32=(EN)_=blr2M`3>@RUQH~_#mVxf~NiPIAG z(>E%^&YO?@+XvOjw!A<-UrQB_tMvmAz0=S)+WM5d^^wkeJr(QDhp8$)S=txN|cTh=-=H3ZA8M$QFp@8`&2z2Gu*|RKJMm+yWO#fb(1+sEchIj0MTInDt&q>8LrD5j*GGB4F>)8Du5b4vR>0fJ$Yn%{fp7DLw zx}#mN`L0)a+v`m-fBhsQcPw04KNmz&g!MfiU8sTpR@q7@8P$t7wVGcMPB*0mQ0&7S z*<(MPuutHHDgsEH3Yj3K_**sMYSz1j3r^P%E_p>;vXxh*Kx*f+QWn_AZ>Y3lmXaA7 zy+o5a3s!CXvy|)Osu@SE7Q+A*7|fazo~;C4J*n8W@Y09?U1w!yD66cgs;?Js3$?_r zdy-f{c}1sD0>-bGL_z22z1_d%tO&Gq`2pSMF4x1aptaHgNu|K7sb0)@s$*{!qJf@V z{eJ%YYAl7n7)#fN+Ca!mdbL$0|Jn`xVs0OSc=t1MXoZ9mDbHg`A^6bBkC>}|muciu zYN0LdEiyXmO&RaUE#`L@-K-9+0SQRwXPjET*S$IKFSn2LQgo>rm3rbXtE$iT+214c zB+ihnR2$Pdw*QGgjWWw#@U#>pt2%W_B6G3AF`rmbY1_RUmC>zKd!gD6EsD^SdYj5a ze?sQa?1)o#p|E-epc3Svn8FJ7Ny4w`%HdihObU8*}d!2Tdv~U5R(R}3l<2Ac}2^a3e zRjBP3l!H3Q4ZRelIe4Q|T)H(A+;YuRX>7mU>w|rG&IV)xz*mzODAj)gMCDf2w69pH z2PFUN?Kb4Ti&Bc34$jTT8Jh&++7fxC+k8|&r`7m4_ErpNd@0ww_T`mmSl>#?r@}0C z7W7|;c=UrolgfFB=E(JXT6Q7pg(3y+6%m?j`H!hHPM2}-qnY|3wOsTS&o=(9n42M) z14O9bqS5j_6#BT%eaBz6kKNs4$B zk6yL#_zJRv7PubcrWF!zywZk~xO)tAJeX~?K+J4OeDtoJ5;$QyTjWc$DydYRKLH2G zTR{!+k*!mD*7?Tpzrf=BnWCnZN)H93L)`R!@`9hsZzDMXOn4WvCqwM-PKp~XqF&&H zQC`4Zgqfig`pm9ybFNt^^9Te6ibwmb)<~VH`@|IRhw+W^I z1t3u5uT0XsCD@R#_pu3h2L;15K4HCi!L*Y8RX-{3CxQKh3wTQFJN5(mM$yE5A=KGc zZeWUWQ(#XLI`WvQJQ=56QvS$QiH6pLN&4g^8uKL<-0^XdNk6eT@e$m0sBLxWLU_)}6%@tnb=GCPHgzJUM?n-Q0 zzl1IFVj@Tf8bC04-cVLZbn&W?LC@-jVFEfrMHvPDfOjE61tdDI2mwJpA`sO&^8N1r zTwfM-JA*uN&q%?+rLBve2qoK!GlH%hMd3>#Z3Ux0USjW*+CR|)BfGHV$OS}}N?sUb zMU8@pCuPZ;vnLW*k3^k0)m1vFO130b9glg^*~z?|jLg1#hc}{(-w!$%l7HyuSkGt> zU})>;&`5-?Ua<}2uFVOPc$Taf2AI3nCul~@P$Q2V)XCBT+m=coksRP!q2Wu#gQaXN zWkvq%ju{MlXH?YT^7RnwZLB@_H+gvwsHy=LLQ)Zs7*j%m5K-GC`F73O_LfjE6B_Fbl5}>Nue2^H64^KfO6^2&*->O_&IJMvMq;v6IAvqiW^5gdvD?!--nzJF zZK*s`UWc)oeFK%-)D!cTD1f9qF-hmq$A^KBQ|Ckr)Bt5viwEIwBfxyo-nS0J)FkTl zI#H&ZYWrzLOg*3b)cWp*VY-^oybfAT8zO) z{FB(swrYlim|Koc02gYGccYDHi>*F#g8&l1h<-j`{If&?Wka_7Z?=p$x1b>+?WL_# zidr%X8rV06(NSKn#HJVsGdU1S9OMpq9sB*v^ODGT067TDasU;R|&ny58(Pyzykw}k|EejGJ5idnhSOKCwzH?p>D{Jp4^Jvlvfb0Lz`*Mi2ZT>9!T~jH6p976qIW0XQRWlt#i6zcTXHJCLt4dAV#`gvb0_^CT+UWZ3N@qo9o)hNyQnaGd z1k@X8Tj>bw`o6c7nW+Kh@wprN@cTQe-1TfWadd#Vs<0JO$W4Gw+7D(GZ}?>7qAcj` zBqC9-(MRPLHl^`*SJA`S-ZvS~rY!Vx&v$6+TjzWez3F^jZsCY^l9xEjoiY3CGkOFV z+5{*;4_>h)eM-_+aG}nt{9z(H2iOufnXvW+2LzXk{&RJ>x9qEwUr+~IQM#?av=ip0 z&&kzAS(AYH(&3}}Aj9|T{1tv{)X{4g{>0=wf+|pr} z`*~Ks^VY;lD>{(X;hg7Mm;@bCeawjKS@;taN2T=}NQJV(+Ha2yfjpybc_dx64P) zMCALGQc_GBw0v+0P_R&jfktb_`2tM&CV~$5GAw01B-kP=j`5yG_sbK|NL~=1WF9|N zuHKRA>1p)gwDk@FlVHe#qm||RNl*d1;2FCiB*A^EoXtSceiuArDZ+tt%RGx7VY61x zdpaGKImEpy&R3%qU2?W0#oRKyzCyKd(8;PgwppKjb7ugni|I!u7E~=;t^eI$6_(we zaZvtcin*g$>XSH0sBq-GcRw3hss;4ed`UM6M1+;ZoD>r=6*myoLO)k_M$QKNz^0vV z$-s7^@AE>4#g+Jp5`EJ)#BbJ&kTIovblSx* zsW-5gw6Sq7$F;5}ZT)n0An&xpb2^`7yA(-pg@Oa4gGty{%kaQrcL-E>6ziwBJVqc6 z7x}bpE%Iv30Qqk^Er=Dx6@DuNlON&q`m7&e}UA2Q8Lk_fj&7ey~z&RTtd%Ddi3LCMTF1v{TdfCn<| zN8xCq{$Wr+{OVw8uM8j1P9 z^{>|9hp0TzN)`3(O;f<3p`r6-7?;>03BNNpZ{wPz`RV!5?~*XLzLdx3p&U5{NM)b= zy86;_$y*5W8hi}rq3FHn@Qz`ET@U5q*e~a#usr(9FjrZk-GYl2D{kPuGi$b?5XwsK zxehKrVwd5c1W`Ze_et02D1~0x7p~&aFI*GQ+cPoN(F)j1+RbnwSE=XE3J>)6$AY~Z zojByyQFR!UsN~YSTmo=dcwCw)O>H{8DJA#a1{fYLwD}jzLn5{DtJ>4-@*P4(+TtY# z09N?cZYv3-av@+k0h4nAQu=^LTy(qnq>Dy60~Z3Ia`+^Q?VTkPIPYs4n)3jB{5_7c zN2KU4bGj9L(8?8DadrxWf4;N(K}Su*!qm3Ozz-!~F6*A&0Q1|XJAPy%G>KS5iQ&s5 zf{W5aXd7b8o66T(rkh_f@czPR2^UL;61cC_H+47S&{I_VJ8gfcsoSrxy9S#_@M&AKGN^)*E|u|7OSCMc*nfm=a{>5z82r^o$S1ok=HU>7?PaD$x+b5ypRT z065mtboXuDO9QSf2i#7hlv>4xYtNW7x4>rYKu`QF3LjLhaR%E<`idS1fnu>xJ~FiI zn?k^t%kV=F;;2qZqJs0!N%-4DBCtJnB;tMTy_WUFT%${g7u9@DhAgCN6!fHPKqz<> z!?7pR^oKH9bS=s8q)be6+Skloc`=Tf2s}BV#?B$iJ(HF+RTzm!;4n5HepyHqsBkFm z&4iTh&Z)Oo5p7b%TXp`%xtVTrt#05ezz<4;3`dmE?=&uj4TQ z=WO-sF4Z*){irsSo$xOh2Z#&+N0`D5u|Bho*VC*e2Ttzi7Vo;mpp@?_ypd-%nieZz&!F6%!*~o4>gN8>_b{A5Yo>l-)dpTEV^#o6G?aY5%OPJ@}Kdp;5;_Y{Ld1_$tKAN?`b+3+)0qh z507B~S4pA)$R!G4jzyA?_MLhQ7twWWMIgF=BcLZ?35jxjw%!l3$M zSs$y_e_-kNQ;we7P`DSt>Bc>34*zyj^QbKSyMl#KcIKoiWuFSc9f_^4lK*g(37YWH z$is-rZZ+DIV)O=Zu|7J8D#5bS%>5Oc@(D69pHQ~0;!!<=p~6lBQ!)HX(UPhfl4;Cf zJp0p20eJOQf&L!=0RR7NU0aeMIg0$wy-Tm@{rD`akGeo#Vefy11sq9uRL`1iPERKp z5fTCi9JGJ-EUT6>et!M@`APqqa^3o))Gj}ESxbKOUVlm&ZLR;=B2ZJUv;6!kBLApF z>X4ZFW2`JcMxTpB`dadb|NZ%Gzq*?}YU&@)wW~zhv+pR<wJ6f%w^Dv0sX#=3Hy8T@ea=ZDHTAUY#Z)8}`-t3h5lZU%Wvj0dMTUI7{K?-~ zuQc!w`?1PYiJ208%Gj;TBAtiytS^*mH_4iGF>-6PV6&w$vWWcgPqD8r-CnQTQ^w+_ z%$4e>B4BHrYy;)Jbd6Wb_IkC@ddVLcv)%Pd1)pN?HTTptSc~6lx032x;%54h%Ch%r z)An^O-u%7$uF1YdpEB+1TeDryrV49BftBQ2cCm-tPmp!e*V^4Sap(B^dCZmb(cskZ z<@Rbh4}ILqiJnkohg!Q5+jVQ3MAsifev(A1`j$t77xu#zY}tOwmqayLwb#~{JwjKi z;&W%V&91gkGfn!AI>#vKDPtS&C?=C!`X{4=?8nOIty*c&k_|1fXUP&ri6*B`wD-K0 zKO=AZU1&*~^dYTo)f;`r{J(z^j&9M#tz|UZlSaQkMwP$n?}WcB0{Wvh+l`znKVixG zW-}=I`Z$8!j>U#K5`BmQUH*rD6{J?I6ZFL7N?MZy${1p@j*VMT^rk;bt<@xGEBcmy z-Q?GQ`7-TyH1f8um~=AMD65Zh%|ctyUHghr%q+-$lY|_Np<7{JkqXSHSvIkTy0D@z zQ9yP^ZJMvF{Bb-&pD@k(?vm-9me_Auxj$IgG*{dTQ~I7at?b&hmHq6_^xf0nt*bRW zE4qWVWs`>bkKaH2>POSpDe`aht<;W30oB?rzy1q+N)l?P^U=dJqpDAP z$v$Y$car~G>lq$MR8z#Yw>h;McVrhaBVzXd=(q2)zQs(HSURk4r|&3pAD?EQfiK6S z%r@>!%PZSg#30_aQYA9uX8JX!zFbu=9Yk7}KRC{j)$Ot`H@}pp3eG}iWXn%EmFLS_ zqes|E_e_Rl_pCqk1jB}b2V6>cmNfW$lrL1>sGfNkDCMPaFVClcsReHw{i&PCYe2$-}Uti)A&PLejEBG;{+1^!nBeop*-i`y$fG^qf zyCn0-qKKrlyNS!_X4Qn^Rq`U^Hsy#Z`QaWiZnqp`E6$29*Ed-&wOotl#w&s z)A*WGgS^AOe&k95Lok*s@-=mk7!!xytm7E{BQr%;0jv$l;Y>EbjciAz<%q>aM(~Wr z0>?8PQ(>no8L%e6uM$Jf<-A8GyN|QQE<+z#=0`*nRo(l+$pxElrd9kXOketls8LV%sQ4o5g)~NV6Iz`xKO|f=9c|2Cn^;=tI%l z(MR8Q6Y0$m!pN0WSnQ|7JmvXE7cnF_@JNX`E6WIOPS1vw{vhhYe##OT77=tey1_>S zwd?JtAZj}*pHrW^INMa81z!2=Pxnoj_~YL-00gLyWfsFp5@4{5eD9KAz@~`Je=rPAVX5&O29WqGDG{#DT z6a*g5`))nsrA*)Yfa6^KBO}qo$R{4`2(@7VcY!ac3hkndgc8T`|I;q)wXjZt^lc}N zU9teuCCAfLpnoMy5%y#~s}k1MGVZByqiHIT*GAOI7C?e$wM}zrqP#WWhbf z!Gi5bC946g8;nU5Ug<&lbCAD3$&??+F@MfxU8zgpcD;WOuQm)TjrG}mL5h3ilj^*l z9InX}H0Q|+pjq5Kj!1<@7DK<{EDir?ctRpeboKd6#D|{wstv2~(U@HY`1F_b+phke zb-?Gd#_W+)EiY1r14NG0p4A3p>n4g=-`A(nqAjyc8vG>^aOEbu|NGeG?Wrc)!fl>? zw4PaJ7{)mmWBAt_VyFh1`b_*{rE79AfJ;wW+i|Q5X=Q#h0ck`0&rNyG{dBC>ozK&v zj2x;R(!+fQ4NLHwW3YsT)#I6Rq@D{B3d>fkQ@S^+(@vVlxG&~N&hxkSeqzTe%T#f^ zEqp&VAJJ|D2;u;)H4XRYb>-Dvxy2#PJlY(r$+9bg;M;Y~01WW1uGg|ag#ILYETdgK zUh(}N$X0;m#m=mCi(pPVv*U;r{AdklzcE@C6%&|HZyp!s-eNtVr@R{P{upc5P<_Ee z;A*$6vBs(_vYR-C=VU#Tix|OxruakNN^#5848My&U2Hob-#=)vO?m9>H{s#CV$}`# z2MZW#{)lK&?O{?+tK07`xHJnsqR0~6Ya!xu%md3e&2)&RH;wDA%+-3tpp51Z9ASTDC2pZ$`w9U93pnf+MXg0NrU zSEg&3X_vjA_~614@;SML8s7?wwhao(X(zqxqKaZ>UQmX0t_WT2#7yyyEFuABEt%41 zd5&Xa3i4v7KxF4KYuH30!*Vtp@_V#68d9RXH4vzN5|XoGb}h-h zbc{!fUIjvmWq1MA z@XoA~)FRyI0y*e{h-ui-&Xvt_UviZ8y4dgNj3rAPqDTzNs<|}hS5J5`5bgKGX*^yu zamu|s?2}Km#=ZkFaBZ9=?^{fH%5QJrWb`AFeamhii?L<@Q^=~iEra4)8e?{LvO|F} zl?VVzAUdGTf5}wkxI7t;FJkS!4+a?m;&-vq)31;%DyUwYW=_Rw0UbBT*A%w6EWT!bf=9h3wT*kaOrWRiT zU>{UBD<8`-TVB0iW`!eJ`}4h_=*)IWV2@TTk6A8I{t9xzu&7rYBtK+ncIbt$UhO%R zS_7Jc9p(^7woCYaM7?;7XtW1DgJsrg;}MDeTW0Wc#ObJ;ye8AZzZIzEXc%)Ke?&Bg z{PHpW83$onuCzARv)%Fzr$4*wcWkcDqh1gGpZ&M!>S;F8l-8pPzyG4S>`qeYW=X-uoFc#z@Q z-s%}Id&BW5UrsGWhRoN2%qBa#hZ&j@jzXp8m0m5{Jpgik18!~Y{*f6L!JZFlp-wDb z$m0LX&PkxEIizRML;0hjo-N@9%ZS^M_kC&rs9XvN6n0KW;VR3lf*tld)ZJ?arl*43 z%?T1kM`fm!hmYgz$N+bM&%CbY( zJA;j>O5Pu#=@cf+;DX$;^Zq<#SLIe+RtQX|`B-FT=B_L;il%>GVZx!NxeQa)t`Q4K zsOh-OlM+mTMAHuIc!h`3DoV()qaJ};IU?x!K|o?RllrXdHk~mBsNos+qAXMrnnTku z#}AGuQzqyVjJ4<7Esgc!h7g?%P$bJI{Wq65sZjHtF$e%XviFZf9?7UTU23hA#FLclh`f73%iGSe7{_h80!29kiKel~MU2$&xavwB&^LM&$%Os>Yy zJ-qmZ6@$i9_iRWPCq9--UB1`Y%v?HO*&{7v0YAQ0yx>~pra!CmJ)t_V?rQT%qzD4< zuTY)|YMbAvnd@>(xiAG3z~=+J!hqDw{!~lEYxcu&LO{F2{x6H~N@6c4;hg;U6iz@8 zL87VX)1pY%GoC}Hq0nOt4(-aX)@PemWjvJa8D(rw*)Xr60Chgf-HsAFxqsd))8y2b zSNn+df^7;QV2HGNspIUA2YE8)27keM8jS_ zkc8zF6c(9FUG`;~2A0%7(PWp;Q>tpki%p!3dryqHjZYXLwr|$<45rhty^dpMDrYw4 z68;)9{T0~Y^?Vter`mbR6lcwsGc1!1vpL*SzcS+foK}|}aSyeniq!O{%CP&Et?Ad8 zm1ogq!>p6w`(mr8K?}gy@eiVMB()haDOp+((_wrgG`%Hugj{^clyaa;b~Av`OZNg+ z*J+FKtiXBEjHk;7WHp2(CQ}ocerU^BAyx2AZekb}BW6 zWTlJjy&oquIq%0q^8scRxj&<2oP6Fzq=zJkbe0`;648)m1nOyhueNYJYbBs<9D|u& znc-SlJH@Sm$+7s=G-@azZa9&neLJ}Ca}^d5WNNm|t6#B_JIsC*J~LX$-^&V_2mby% zTmt)~C?HD6vC`t+DX=1Hsta+3xj%_TdC4>gPLGw4B4DWCaJ9~#()z0TvQm7B0pYyD zwDw0r!szzOAD)pqrB5^DY-5nh?@uIuX!f>lb@R4}g|BU0#$R@ZjXkG=eV+T^B^yNy z?ej5(`YP=7@5&N085Q!T0KgSM9!tw9ww0Cje-`UX`gIpzg=H>YI$FFlQ!L58CWAPl zvN*Q=`*Sd-2J|7(~xNzF27GTC#qW7|bA_K-1%WCcH1p4`rS+&$h zD{j+c3va|hPH&Q3Rx8t2zFfiT_9Bp1(_&7VJ}7JE%fH5n)Xn{7M^2aMoARHv^Xr|+ z8HczZM)oNM)Belg3ACMO(BTxO>g{|Cb(=qWOnj7V9HHfyxkUmj{cDpNd}&6h2GeC({vom zEW_$&rHLxGp#rmicBhNp*7X6v;3PGy1N#gmQQ>0{F~MaZ&xGt|VTPSZ^fucqnl&!~ zqRGM8W}BD{BBF`Z8~ru6WkRehEXc zLywv*WF*)rXN6Dwl_jWUY$3&(`L)*21Y0P{*SElB8ro=F{LI=iHtTK3t9~ZYZ|jEe z1AMaf#uz3&1v3N~fOAMl4KA2w?NwC-`pwH42I$)syAQT85>d4>){SCMOj^B!wST;x zA7yg2et?_#@ooomVFRH*bA`qI>T~9W*kuOeS~gB~U7vR=>M$R@(wT4I)T8Bx4SA6u zX5^R3J=Gj6H0r0VvieIXl(l4bGr8_%k;P12%3~cU68zO!e?GY%ASJAG<=ju!U|CV= zr>h86d^F7T&akA27Ug<*Iix=ncr)jHqOZ|x`{+c;R*Rvfwi}gYe=+Ce8st#A3(05%6cTx9g+^Gx_?G<2 zyqlWF&?M&zfMQ;D55!I!F^Vb|BxX*S5!>V@2&0)2QzFx~@%zR9^_k7G&A?Y?jcC)) z(Db8yPI({$`)IaJT{nq{t;>%vnVo47XHWF{d5Yl7RIWz@sWf%x8CzW5J_bNzd#wT9 zb#@Ejx{0pl%z#NmYIpA(a=BicNAE}dJY~)uQn}83DX6#(!#0(xlS*V9Iq=^OpTo0x zW~wEu;^%1FeJwYfO{bUv=wnfkSV`9BHb+jO)*N!#5>FW~Ib~L~t~&jIHnj5EfP~JG z&U>Q>aE{>6yaIsKEO>TA0#Rz3ZNwu1h1e9nY7~wd1+gy;B%h^0q&d9iZky9Sil(hR zHKafzpJkxeBo$sWvA}Bh?L@z(1n=drW2YVeEV4C1y=lf7@;{?ibp3KdLylivvD$t@ zI8;D7iol=8C_f;`c+tQ~2i3biIndA+vp!$X(DLN0byb27+*Q3vqzwt_LOS2im|+@} zv)U&-6W_STYqL3&mg6|=X^pdUvX!aTJ7L1dKOD4GJ?+luu?d!%=@zHz2?B6zhPP)j z+LG{kZ_k^B74QluN^P0HrfC$kUu8C-0nSPN3o*y$#A#Dn$;xllJlZ@mfL)xVXrfL^ zr9W9fr`$ADe~{BHoNj809ou8WI6EB}YHp+&CrgOMit&a|NwLH!PTH=F0|gc&ZCN?Y zQLkruOU6cBi_fzhZ^6sg*`73r4^aU26b#OAt2HI4Mw^RfgaxOqyHLh<@B(o$GreUXiOPt z@`s2yYwOJcajLE1l8laK9jU@1b@Y6JqjwABji%S`B~Xq~w9u$d`08>D1<^s)nVqi* z_|;qB&Ugy|I1SS|N}Qf=O2MunrFX_|INJnuLkpQ`kMx|^3TN3s*f^j*(?EV zu4kJ~Q9#k!y?!K?>VMz?=U~k+W~O|0W(jP{4>-C__EOkH!M*d6Nz6XmH8Rf6ImmGU z&}81sU2Po6<4(Q9Kc^{YXL7oTC~57@bxAuECjvx7l(Ctl(EuvU73Q1S@W;1!K862_g!qeC`)BMEz>} z*1$<*Y5n)QB=40paI&EYt0aC()wg={m{w%*LfuMcB-ce_l>m0jU#DN#LIyxB`J-gU zyS6gb^yor9|Hv#%M>8h}bINAd2I7~TLY~3-W#||hoMpDueDJTuS+mG!&4wHZ+cBlX z1ja~dUMfaDA56>jS+lt6CFZNZ_NG~)GFlGWh3(jLTo)Qr4Kr%Tc zLohjpw07O#;ZCYsakVv6e*&u?X~|GXA1zG z*pk)31%S~s5&yd8JYq6%F&BJ)rzQvy5rxRNG12Mrhh~E@F^y9o8VqP&@r`AO<;=N| z)?$P`y7IU$U^>HSylUWSox$I)Fm7CyUGdVl+ZnX-FBXsxs|Baz&JWcr4CP3bMKr=o zHwj)&DIc4^ou$Y=V~p9f1^+r_S7lIUJdk66HKx}0UXQ6$S`++y6czz z@YI|>1nIzC#^)hoX3N|B)0k$C6{+J=*!~YqRhBnB?GVjjWbM7y_?)q&eYvkNe<#|Z zif;(G7cPJfO@~-e>h`Y&95bAjI@w?httPMgYK}>~V(uLQX?;YR^(wwmU%Ucf=~FYK zcK+7-%8chITf{fabL3C@Yiu1tb_)%MFzI|bAgoX9Kb7|Xp#M29fY;j_xjC6BfpS$g z!T~0yR%}lhnEO?@(j=jkWf;zj`Gi+*o9NEU5cVIdA>U7)OahWo!wgbCy= zM2pN}tlCMIpk&^BtRpX(UlxZh-+7Fd@6$4L`mBIcDE=|dC=sAwO@&QY*HXwko?-O%nQRH*}Uj4UqFoe~qb%!|0dOG=?MNqYFRL;dc5Pub?ZTcWu=YHDhU+eQ)!+hJ#{Bo+mzDQ&CC?h+WyQ%W|{P!un zZ6tCSVJt;IE4VUmF-Kkw<3&WRI?KrFx0m&yNyQlA)wumno=~-%bxzFLN?R(hQ!0-L z6p5~LJl+~R7_-f{guz%GTdt~M>$8`|Q>CZEa@b=ZA^Coz3wkLN$zovhiq^D`k_jTU zeB>SAi>Dy#>G2#jbBRP-3b}5%XnJZ5O_m8^30uF_QVRgPocS8wnP_f<4f$%~d-`25 z5B<(WlICoFj!L!1Y?U{}%ZO2^i&6Jn!FPP>({ekdC<_iYLEnJ*!C zLTtExWVB_;`17?Zb3M4|aPLezM3J^~XS)1d8)R}#xi1;GuNVcJI9}Fo9AR>9t0C*V zkp$3T5BzRp73J~YzDcL@fiZ>c)V3XxnWAX>H1oR#r{*wl!HsZlwges$|A$G@hraV; z={0aIIlU|=!e$NL$!|L<4QAzSMj1-E&1D4h=gA_B88A#cD;LbR5*FKd3lKTB=zS0g zT4=GlY42Oesi>Fr(>8-3n@`P_bEb^q)5+wu;(%yAGkHX!*^Jzi!EWn6MA&6+0r+jb z*%zL~vme>VAaA0Wi=8vl+|QlI6l%;BP;M;he9B5v8~ZjHo~Q)zf?3>AIm5EmUboPc zD%-xhbxoyF7n|R$AuEl=?)Segbn-7pCwQy_q4-q-Y?09(pyBpPY{?I{TsZ8a9QPKf_z# zKQcp0m`^QFt29!DPEN0hcV921$S)}ct@K_oLo#jhQ>I?j^3wRutUGxeGXkY#Ru}F2 z?U(sqLaUHb-jb0Lc%d~~ocZ>>dDa)L2&ZEHSu+8@tB+eO$>jU6{hW{%9abLC>qtr= zTCC_#vxIRF(GC;cXMakqWR^DkAx~~D#$;c&8g)2%r}GKZ!uTm!XQhOUL>SvG=GX+8 zU#I=vZG<7@)k(=1u;Z;_gi5t|)qqN!D89T_0&tC;ttow;qhkDgnVOcn zd5H+-htJsQjYYbE&v2=Vhsr0%0=H`f@hCKsxsw|+yLU!z*~@Z`C3Fn@%NX4GHwJ+g zW;xW4rV0EP2>enRC;JIdhMA0<{u2zQ-AsY?fd3EwVm~V9806q7pD|8Ltk3+3b;zdB z6wZmAt(NTgeVt}tK4ir9nLEbRHY+zV)Qg_sC>Tu9c&xlcI#q`s-v#L2$&K-BW1eW> zBQ&g-_#FY|ml4>yFAnHMX0`4WgMapi%!s42>tvC-wj#HGnKFoC9ys0XIh2@O`zx@! z;dBH5kk&rW=(DR|aC_d9k3O;YK{ziT%TLil?oQ7-Bg}xooS5gsOis;~*BVBKRKyw8 zJ8jW0O7^_WsZ7pmX^TUq*D~?fGXw$mmzQu5hrnTNj~5q3(C( zn3tL`1=>tRB2^C24j8isZrPgNVYc}(;v>rI8FALqA&Ra4h<LfB8z+qAjh9$^G5N4>_`tReIL49^hW}d=}<%#N;rRlKzFqf~4keQrL8~bAIW>eN4 zZZ6J#$0+7r9C7i3a^bZ^u~vl`}KO@Ci2HG1&Un{8?Y| z#c9k7n4RnGZQlz>p3P;`F$w!2Kd(cgKs+%kk8N@jP?z5{hR8!(ur-nlwCgmd-r^Oj$lg#!$M`lIg``FaD7 zMSgC>3j1TdxTC#G6zSp$lSp2OUo! z6o1Ub-erXe(TQnw34KMZEIR#r?bjme)jNkuR=(nbr$}h}BJ^+i*!Ja(KjxGYmHTZv zdLQF`3(XbXm=(AA#fp|=Zk42+aTiwT?T3)c0eLTI-FO_iP>XbuVA+E|r)rOIxEHI1 z__Be%Xn7oxk-+c0TRHb3`CJWDvN%zuw^fz;8U%b4Q}y+>EW=<0P*%qZw=bQ0!4UX+ z?W^#Mi5`!3&)A*A1o}osEYI0E!IgGr%DwCc3kyaqS`z1HmDfz;jeGV|%5|-1`6NQI zC`CzeKvX&-65#X<0*z08X~;{=7CJspG7iL5aCnG`RP_G6HmfKQT6VTxhn5jm<20(&0n z^@8_llLn)jl}tWKM0yau$70`P1cD2y&%E(QGu$>*GE41N4~@G+G3(B3+Ow~0Y7 z3uA&mNJ)XCmeW6@=+O0))4BVS6iq&+_K?FqlR^Q12f}6MA{Onc(?b8{R>Yo)jd9e8 zv%abTwLfcql98zT7#=B$lfFaS&3m}9&NBs`VB3g%IqR#;D#a7WXgE@em%U~lm0FZp zg=CrMmZ50~$)RwTu_O__BIA+jX|NQSH6?u>vRYjs>rYc9Ex6QsC!&bXZS3*-WRGFa zUP3!8_$MDa|&tCy-u=DkU;ob27nlhP?a$%ZSJ2 z>a}!36T|ju>w9CaMRWb5H3}x*g=bF3_dJ;$<~ey|R@Y$(k0*9`k{I9y&Ug9jzfGbH zv#5NL<1KuHuWyl^%#kI0CqFc}SY*qH!ls*F%bWS;p4KT`7N7DHRKwcShW>Trak!aG z^OJfnVo1fV_$i=afAHT@R(W23ovpJ=`kdK|hoR3Gl{)LW;PHwO`852Qm1?)fiq}>qkOdZ^0=JcaQtP zM(Ypn?ISUU_L=~(oVOe@v^m-8Ma95-29E={&q6DX;V%riC?`kBcdOO$G+X;vuDI(%qd&oq_ zt7^S(opU$4YW*XO;dXWL>XmI|+eE4=m=1Z{Z*LwBxgjq`Fz}bH7Z3G%34N#zGB*n$ zgWVGlWwbyvAJLyiN?@L9=9$eRqPJ_lV8I#1XQYJLrO9#JmVl^-u}!x`1THP&xxq@d zwK@Kc;Xaq#BSQohrXlbsGO|`79*#Y((yS5YYJZ3bN*Zb5{>@t;__2X~-b}|&(R4(} zT{hV)86{3c?P)E$0bK+Za)W{@BZOp@_Lqn6_Xx|Y!?vfBxeI&iCBk4~-ODsj zTWA7DhSEe;y!_Vq@XmSdQ85=tm1LBw>Y(1xeHYnd>NB~#eO#w(QNWLN+=C|OdKKG|O({w%U{giul&{4HwAdbl3NQ`hdn2bf6Y zDh2bm1ba!2FNUOz$4Tqll2O;2^L&^qKURMM?LNnY0id4nlk-Q z9x|WiQy9O3W~%ym%CsKan^N~O4B$8hwtsd~@2?$q0GXo~q{li6J{*o$9i?1W;Gl-- z8?zQCFVREvBEgnk+quJcQ+%(kY`#XfDxXGA`#r|z=0!8DsCy5p*;b7cN`DD;>T;>L z6>!eaV{}Boev`zVwBz@>o7UK^eNm*_O;7KH#ncMs+z%coW)zH+!|3_;G^|vB3-%Ub z4h3%1IN}271TT`I0f`9(A|qxg-0oaMDB>5LOnyqy;G;xrMTrtXD~fn^_>8hPU(Nc= z#kKI*gIT);jfAG&sBlAG9}VR<{NkS~^A;qe(VmreYtQkqKHvfA>q$He?J;U?ywNzG z!U4x&f$cY0VDG%c#9BXOm~sme_n3SDG_}?GBb05V7VfpkKInlLpvWJaA-NKDvw`kd zxCNnV8FuBH!M@Qb3JQJ+$7gd?)xtd06v0pT#=yi+(d$a*>)NTo$5c0he3N#yv1Q}E zSU~;I&tAU*dS_Pb*$65B0fV_SzUS<^E?fmckQL?F! z;D#gMTO9afkElF&LH<#PZ@(GW-sFNq4E|x^8$Ly3t6_dcTTq>*4_-i*%i@n;MaPd{ zc~#fWV#=>+kj@W-=CRCXXJ|8o$7y^+o-6DjfQV*eMkq*_guMDYr=|+aL|~nY*OJ zTKA-(SSDgTorPObv@@4PH0pVcbhjfIaMZ8FNc@zlvt0sV>2$1s>SBLk^6TA%10;T&FyuUNkohFR_D64h*TTd zdH{J)GIRT%d(jm0SsUoZeUae~%GTnvebr9IzTULbOYlS57WctyDt6SS1EhK!I}am+ zcnMu`lbf$}c#dTOZ~p;zM&Oi=&ZbFV>}+r7)WLCn{Tl8B;6u}N;PoSHdC-TER%?NO zTRsobi^X&3*Mpu}hG9Vg24B-uo6eC9F|U8Wx42+ZGtW2CVHhjEm?I?%cN!X8`QqWK z*Fm@b7|V;Y$>8_p#3F*=^*WgAE&3$mXM4)c+9K0!SovjM&OljSpl_8qKhN2=GFQ(+ zuyD*@X58C!M%jJ|jOvaY_7CuE^DVj}qbc~C?L9R+PY;%hWuk~(Bk)S(jz}-10!4z) z*2p@?6xPYcU>=^;eP^N4o!D}{+Wk%IryGGf3OSWWyjLy%t#uDG0;E*W#6o9!ZWa+w z6`DM%r@g$F1{QIz&%0RbC|f z)CdHFA;HEDT{dl&IJ0$zkZHnxer6WbZqT$}3w5R`!Dsr=;_(sbN_KiW?P0cGCcZI& zmC|MEZAGWj?J0;i&?3jsKek4omlY6yokBT`z;6h3cx$N{gZd3l-YpKlC zw}Ujb-rPnKd(TH=0{hHvB)sReaN~krrftIy525-b|3MFgC0!p8g_?23S&!5A;0kQ0 zE6I!+FUQH$?cnodd77xAx;Y--ublC7-jOt6p-7>Jtg#kQ-{l|yJr3lmM(5nzu(t9$ z7_VhA0u#HnIoC8~GqkMq=I@2URRzO7GE)-t(kSD$e=i|2_kB@a`?J61M$AX4;RyK&^2-+8Y!M*>5m}*_n;CZEapIC#JGGt_I@a7*%#;Op`gB zAH0^|qH3iEoz)<$@5?H1PH(6N*J-cfCgRuGi^~K+4F1;LMk!>t&@Q^>@$p zA@CrZiQyQZjwA{l|-mzn6m^rT^F*BN}PLj1fjTzGo zIj>jM*5okZ+V7D+WHB$}@#j|^bQAb4-c5yY0Jq%C52l}*GYZ$Wo?HGbF^Bnsd}WW4 zbDO5oZVyTvbkRY?UmR=CHf_AZ%NzL!4uDexv^;rL=OV4Vo`p$g$~%lP3c!`WMUGev z)#8)?$CR^S)}!^0j9&2D-W=T-YG2B>|FK47RvG1$*_HK&Ruo3b36MaO;N%q;!>WV# zYfgz7mCPR-@XDL1CFxL@@hP8ZiNi81ZjKNUt$l|PEN=S_mi3lWK4!C)nQpoCvUk9d z0EL4ST63jD_kzVt8%7VM7nHtd4CYbNwQ$Z*^ke>E;UI>%LOWO6YM9%fGgXa0bJVW*6)QyJ{0U^ zvJul0sk&-Bf~(|hz>CksJNIrnGRfuhUg9kC3z^TZpzW%GSi?2!rGt^i`+6U{gQQgR zc2a&Zt+2#PG!KCVsV}duu;p8|?bTmB{@kJnq`Z$k-i*Dk>(mB9BG@UgG}tYkV^F9wU}!Vjn@2aA6ZKn(7B9O56HuMy>hN`L5xV{De#I^IgD*uB5dmDG?0Y5;o(pa=9>XFM&%LI&GufznsAo@3 zHi9q;X_tGuDVckL0H$1=8~_{Uox9x|ad{k0%CP9YAt}W@RT7ITTi_84d<-Zo(?Eyw zXJ>ZNg%9JZ^4l3q)E%{bB=k<;+g0K>m7`E#M)|WV5}WJgRxcsviEQuIwZp<@Olu*t zJOt}xM=vm;Qo0(8D3LQicBt3-%}XGSYd6A>gskCyV0?Ishl71&u@(d6t%Jo&58r|< zF>GxT#+)Y!foJ92Q&j^;VuFAF8SYlarpY!2WSJvOLQP^PF5&Jmd+Ko*z%!MeE#H$P zD|u0!iD`!aRlGMUE2w;JrXua7*TIHP?S>wK zNPnoC_7oh@#ut0my_Yi9!!eH2Q188aahbJ|v5xZk=>QhafE(b8M0uE&K;H^+68d?4 zQ@6M64U$pTQy{#Z#2VPq9dxWsL`-cW)(g>|P4?05j+W50!UsU_n;!@J{1Z&<^4@!V z&qqXyb?=6X(@J2-0;4JgvVC5yh~9*<>=`414*GTO`2MV$*!~r!uh6{4fhvgE`Y6+M zl7#2}LtWZ@EYhU?BOym4^z5FCeJsH^yV<~AHousX1V;CM9;yGk$7C72^RXb zMqu*??)e>qbzru>>n$=l^TSIZ4dm@jUC~N-?E8%a&nLBNUxDl0K4g)mcvlCkT)=p4 c5A$X+! Date: Fri, 5 Jun 2026 17:17:07 +0100 Subject: [PATCH 77/85] Updating multi susie to include variance --- docker/Dockerfile | 6 +++--- docker/requirements.R | 7 ++++++- scripts/run_multisusie.py | 22 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 5d11ad1..01146fc 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -47,9 +47,9 @@ RUN /bin/condabin/conda tos accept --override-channels --channel https://repo.an cd /home/ldsc && \ /bin/condabin/conda env create --file environment.yml -COPY . /home/GeneHackman -RUN Rscript /home/GeneHackman/docker/requirements.R +COPY DESCRIPTION docker/requirements.* docker/ +RUN Rscript docker/requirements.R ENV R_LIBS_SITE=/usr/lib/R/site-library -RUN pip install --no-cache-dir -r /home/GeneHackman/docker/requirements.txt +RUN pip install --no-cache-dir -r docker/requirements.txt CMD ["/bin/bash"] diff --git a/docker/requirements.R b/docker/requirements.R index 9546a56..53b9665 100644 --- a/docker/requirements.R +++ b/docker/requirements.R @@ -14,4 +14,9 @@ BiocManager::install(c("ensembldb", "EnsDb.Hsapiens.v75"), update = FALSE, ask = install.packages(c("locuszoomr", "patchwork")) -remotes::install_local("/home/GeneHackman", upgrade = "never") +remotes::install_deps( + "docker", + dependencies = c("Depends", "Imports", "LinkingTo"), + upgrade = "never", + repos = BiocManager::repositories() +) diff --git a/scripts/run_multisusie.py b/scripts/run_multisusie.py index 84f7cdc..8afbbbf 100644 --- a/scripts/run_multisusie.py +++ b/scripts/run_multisusie.py @@ -167,6 +167,24 @@ def _cleanup_plink(snp_file, out_prefix): pass +def estimate_var_y(se, eaf, n): + """Estimate outcome variance from GWAS SE, EAF, and sample size.""" + se = np.asarray(se, dtype=float) + if eaf is None: + return 1.0 + eaf = np.asarray(eaf, dtype=float) + valid = np.isfinite(se) & (se > 0) & np.isfinite(eaf) & (eaf > 0) & (eaf < 1) + if valid.sum() < 2: + return 1.0 + oneover = 1.0 / (se[valid] ** 2) + nvx = 2 * n * eaf[valid] * (1 - eaf[valid]) + denom = np.dot(oneover, oneover) + if denom <= 0: + return 1.0 + var_y = np.dot(nvx, oneover) / denom + return float(var_y) if var_y > 0 else 1.0 + + def extract_locus_data(gwas_df, chrom, start, end): """Extract GWAS data for a genomic window.""" mask = ( @@ -215,6 +233,7 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, s_list = [] R_list = [] n_list = [] + varY_list = [] for ad in ancestry_data: gwas_sub = ad["gwas"][ad["gwas"]["RSID"].isin(shared_rsids_list)].copy() @@ -240,11 +259,13 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, beta = gwas_sub["BETA"].astype(float).values se = gwas_sub["SE"].astype(float).values + eaf = gwas_sub["EAF"].astype(float).values if "EAF" in gwas_sub.columns else None b_list.append(beta) s_list.append(se) R_list.append(R_sub) n_list.append(ad["n"]) + varY_list.append(estimate_var_y(se, eaf, ad["n"])) final_rsids = common if len(final_rsids) < 2: @@ -255,6 +276,7 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, b_list=b_list, s_list=s_list, R_list=R_list, + varY_list=varY_list, population_sizes=n_list, L=max_causal, coverage=coverage, From 253bc1070b80ececd9be01dc21d9ec2fa16ba139 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Fri, 5 Jun 2026 18:04:36 +0100 Subject: [PATCH 78/85] Making changes to multi susie --- scripts/run_multisusie.py | 182 +++++++++++++++++++++++++++----------- 1 file changed, 131 insertions(+), 51 deletions(-) diff --git a/scripts/run_multisusie.py b/scripts/run_multisusie.py index 8afbbbf..594d518 100644 --- a/scripts/run_multisusie.py +++ b/scripts/run_multisusie.py @@ -185,6 +185,100 @@ def estimate_var_y(se, eaf, n): return float(var_y) if var_y > 0 else 1.0 +def assign_credible_set_columns(sets, n_variants): + """Map MultiSuSiE credible sets to IN_CS and CS_ID per variant.""" + in_cs = np.zeros(n_variants, dtype=int) + cs_id = np.full(n_variants, np.nan) + if sets is None or not isinstance(sets, (list, tuple)) or len(sets) == 0: + return in_cs, cs_id + + cs_list = sets[0] + include_mask = sets[3] if len(sets) > 3 else [True] * len(cs_list) + cs_counter = 0 + for l_idx, indices in enumerate(cs_list): + if l_idx >= len(include_mask) or not include_mask[l_idx] or len(indices) == 0: + continue + cs_counter += 1 + for idx in np.asarray(indices, dtype=int): + if 0 <= idx < n_variants: + in_cs[idx] = 1 + if np.isnan(cs_id[idx]): + cs_id[idx] = cs_counter + return in_cs, cs_id + + +def build_multisusie_result_df(fit, final_rsids, ref_gwas, ancestries): + """Build per-variant output table from a MultiSuSiE fit.""" + n = len(final_rsids) + result_df = pd.DataFrame({ + "SNP": ref_gwas["SNP"].values if "SNP" in ref_gwas.columns else final_rsids, + "CHR": ref_gwas["CHR"].values, + "BP": ref_gwas["BP"].values, + "RSID": final_rsids, + }) + + if hasattr(fit, "pip") and fit.pip is not None and len(fit.pip) == n: + result_df["JOINT_PIP"] = fit.pip + else: + result_df["JOINT_PIP"] = np.nan + + in_cs, cs_id = assign_credible_set_columns( + getattr(fit, "sets", None), n + ) + result_df["IN_CS"] = in_cs + result_df["CS_ID"] = pd.array(cs_id, dtype="Int64") + + if hasattr(fit, "coef") and fit.coef is not None: + for k, ancestry in enumerate(ancestries): + if fit.coef.shape[0] > k and len(fit.coef[k]) == n: + result_df[f"BETA_{ancestry}"] = fit.coef[k] + + return result_df + + +def build_credible_sets_df(fit, final_rsids): + """Summarise each MultiSuSiE credible set for locus_credible_sets.tsv.""" + sets = getattr(fit, "sets", None) + columns = ["CS_ID", "CS_SIZE", "PURITY", "MAX_PIP_RSID", "MAX_PIP", "LBF"] + if sets is None or not isinstance(sets, (list, tuple)) or len(sets) == 0: + return pd.DataFrame(columns=columns) + + cs_list = sets[0] + purity_list = sets[1] if len(sets) > 1 else [np.nan] * len(cs_list) + include_mask = sets[3] if len(sets) > 3 else [True] * len(cs_list) + pip = ( + np.asarray(fit.pip, dtype=float) + if hasattr(fit, "pip") and fit.pip is not None + else np.full(len(final_rsids), np.nan) + ) + lbf = ( + np.asarray(fit.lbf, dtype=float) + if hasattr(fit, "lbf") and fit.lbf is not None + else np.full(len(cs_list), np.nan) + ) + + rows = [] + cs_counter = 0 + for l_idx, indices in enumerate(cs_list): + if l_idx >= len(include_mask) or not include_mask[l_idx] or len(indices) == 0: + continue + cs_counter += 1 + indices = np.asarray(indices, dtype=int) + cs_pip = pip[indices] + best_local = int(np.nanargmax(cs_pip)) + best_idx = int(indices[best_local]) + rows.append({ + "CS_ID": cs_counter, + "CS_SIZE": len(indices), + "PURITY": purity_list[l_idx] if l_idx < len(purity_list) else np.nan, + "MAX_PIP_RSID": final_rsids[best_idx], + "MAX_PIP": float(cs_pip[best_local]), + "LBF": float(lbf[l_idx]) if l_idx < len(lbf) else np.nan, + }) + + return pd.DataFrame(rows, columns=columns) + + def extract_locus_data(gwas_df, chrom, start, end): """Extract GWAS data for a genomic window.""" mask = ( @@ -229,12 +323,7 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, shared_rsids_list = sorted(shared_rsids) - b_list = [] - s_list = [] - R_list = [] - n_list = [] - varY_list = [] - + ancestry_ld = [] for ad in ancestry_data: gwas_sub = ad["gwas"][ad["gwas"]["RSID"].isin(shared_rsids_list)].copy() gwas_sub = gwas_sub.drop_duplicates(subset="RSID") @@ -246,17 +335,33 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, if R is None: return None - ld_rsids = set(snp_order) - common = [s for s in shared_rsids_list if s in ld_rsids] - if len(common) < 2: - return None + ancestry_ld.append({ + "gwas_sub": gwas_sub, + "R": R, + "snp_order": snp_order, + "ancestry": ad["ancestry"], + "n": ad["n"], + }) - ld_idx = [snp_order.index(s) for s in common] - R_sub = R[np.ix_(ld_idx, ld_idx)] + final_rsids = set(shared_rsids_list) + for entry in ancestry_ld: + final_rsids &= set(entry["snp_order"]) + final_rsids = sorted(final_rsids) + if len(final_rsids) < 2: + return None - gwas_sub = gwas_sub[gwas_sub["RSID"].isin(common)] - gwas_sub = gwas_sub.set_index("RSID").loc[common].reset_index() + b_list = [] + s_list = [] + R_list = [] + n_list = [] + varY_list = [] + for entry in ancestry_ld: + snp_order = entry["snp_order"] + ld_idx = [snp_order.index(r) for r in final_rsids] + R_sub = entry["R"][np.ix_(ld_idx, ld_idx)] + + gwas_sub = entry["gwas_sub"].set_index("RSID").loc[final_rsids].reset_index() beta = gwas_sub["BETA"].astype(float).values se = gwas_sub["SE"].astype(float).values eaf = gwas_sub["EAF"].astype(float).values if "EAF" in gwas_sub.columns else None @@ -264,12 +369,8 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, b_list.append(beta) s_list.append(se) R_list.append(R_sub) - n_list.append(ad["n"]) - varY_list.append(estimate_var_y(se, eaf, ad["n"])) - - final_rsids = common - if len(final_rsids) < 2: - return None + n_list.append(entry["n"]) + varY_list.append(estimate_var_y(se, eaf, entry["n"])) try: fit = MultiSuSiE.multisusie_rss( @@ -292,33 +393,9 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, ref_gwas = ref_gwas.drop_duplicates(subset="RSID") ref_gwas = ref_gwas.set_index("RSID").loc[final_rsids].reset_index() - result_df = pd.DataFrame({ - "SNP": ref_gwas["SNP"].values if "SNP" in ref_gwas.columns else final_rsids, - "CHR": ref_gwas["CHR"].values, - "BP": ref_gwas["BP"].values, - "RSID": final_rsids, - }) - - if hasattr(fit, "sets") and fit.sets is not None and hasattr(fit.sets, "cs"): - cs_membership = np.full(len(final_rsids), np.nan) - for cs_i, cs_snps in enumerate(fit.sets.cs, start=1): - for idx in cs_snps: - if idx < len(cs_membership): - cs_membership[idx] = cs_i - result_df["CS"] = cs_membership.astype("Int64") - else: - result_df["CS"] = pd.NA - - if hasattr(fit, "pip"): - result_df["PIP"] = fit.pip - - if hasattr(fit, "lbf_variable") and fit.lbf_variable is not None: - lbf = fit.lbf_variable - if lbf.ndim == 2: - for j in range(lbf.shape[0]): - result_df[f"LBF_{j+1}"] = lbf[j, :] - - return result_df + variant_df = build_multisusie_result_df(fit, final_rsids, ref_gwas, ancestries) + cs_df = build_credible_sets_df(fit, final_rsids) + return variant_df, cs_df def main(): @@ -376,10 +453,13 @@ def main(): min_abs_corr=args.min_abs_corr, ) - if result is not None and len(result) > 0: - safe_name = f"{locus['chr']}_{locus['center']}_finemap.tsv.gz" - out_file = os.path.join(args.output_dir, safe_name) - result.to_csv(out_file, sep="\t", index=False, compression="gzip") + if result is not None and len(result[0]) > 0: + variant_df, cs_df = result + safe_name = f"{locus['chr']}_{locus['center']}" + out_file = os.path.join(args.output_dir, f"{safe_name}_finemap.tsv.gz") + variant_df.to_csv(out_file, sep="\t", index=False, compression="gzip") + cs_file = os.path.join(args.output_dir, f"{safe_name}_locus_credible_sets.tsv") + cs_df.to_csv(cs_file, sep="\t", index=False) n_success += 1 else: print(f" Skipped {locus_label} (insufficient shared data or MultiSuSiE failure)") From 0402c4e05ca71ae469b81d19f01bbc68888ca948 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 6 Jun 2026 08:42:40 +0100 Subject: [PATCH 79/85] Adding parallelism --- scripts/run_multisusie.py | 148 +++++++++++++++++++++++++++++++------- 1 file changed, 122 insertions(+), 26 deletions(-) diff --git a/scripts/run_multisusie.py b/scripts/run_multisusie.py index 594d518..f9c7c60 100644 --- a/scripts/run_multisusie.py +++ b/scripts/run_multisusie.py @@ -12,6 +12,7 @@ import subprocess import sys import tempfile +from concurrent.futures import ProcessPoolExecutor, as_completed import numpy as np import pandas as pd @@ -19,6 +20,57 @@ import MultiSuSiE +def available_memory_mb(): + """Slurm allocated memory (MB) when under Slurm, else total system memory.""" + slurm = os.environ.get("SLURM_MEM_PER_NODE", "").strip() + if slurm: + try: + value = float(slurm) + if value > 0: + return value + except ValueError: + pass + if sys.platform == "linux": + try: + with open("/proc/meminfo", encoding="utf-8") as meminfo: + line = meminfo.readline() + kb = int("".join(c for c in line if c.isdigit())) + return kb / 1024 + except (OSError, ValueError): + pass + elif sys.platform == "darwin": + try: + raw = subprocess.check_output( + ["sysctl", "-n", "hw.memsize"], stderr=subprocess.DEVNULL + ) + return int(raw.strip()) / (1024 ** 2) + except (subprocess.SubprocessError, ValueError): + pass + return None + + +def available_cpus(): + """Logical CPUs on this host.""" + cpus = os.cpu_count() + return max(1, cpus if cpus is not None else 1) + + +def calculate_parallelism(max_workers=10, memory_per_worker_mb=8000): + """Match R/constants.R calculate_parallelism() for worker count.""" + slurm = os.environ.get("SLURM_CPUS_ON_NODE", "").strip() + if slurm: + try: + return max(1, int(slurm) - 1) + except ValueError: + pass + cpus = available_cpus() + mem = available_memory_mb() + if mem is not None and mem > 0: + by_mem = int(mem // memory_per_worker_mb) + return max(1, min(max_workers, by_mem, cpus)) + return max(1, min(max_workers, cpus)) + + def parse_args(): parser = argparse.ArgumentParser(description="Run MultiSuSiE multi-ancestry fine-mapping") parser.add_argument("--gwas_files", nargs="+", required=True, @@ -398,6 +450,44 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, return variant_df, cs_df +_WORKER_CTX = {} + + +def _init_worker(ctx): + global _WORKER_CTX + _WORKER_CTX = ctx + + +def _run_locus_job(job): + """Process one locus in a worker process; writes output files.""" + i, n_loci, locus = job + ctx = _WORKER_CTX + locus_label = f"chr{locus['chr']}:{locus['start']}-{locus['end']}" + + result = run_multisusie_for_locus( + locus=locus, + gwas_dfs=ctx["gwas_dfs"], + ancestries=ctx["ancestries"], + sample_sizes=ctx["sample_sizes"], + thousand_genomes_dir=ctx["thousand_genomes_dir"], + max_causal=ctx["max_causal"], + coverage=ctx["coverage"], + min_abs_corr=ctx["min_abs_corr"], + ) + + if result is None or len(result[0]) == 0: + return i, n_loci, locus_label, False + + variant_df, cs_df = result + safe_name = f"{locus['chr']}_{locus['center']}" + output_dir = ctx["output_dir"] + out_file = os.path.join(output_dir, f"{safe_name}_finemap.tsv.gz") + variant_df.to_csv(out_file, sep="\t", index=False, compression="gzip") + cs_file = os.path.join(output_dir, f"{safe_name}_locus_credible_sets.tsv") + cs_df.to_csv(cs_file, sep="\t", index=False) + return i, n_loci, locus_label, True + + def main(): args = parse_args() @@ -435,35 +525,41 @@ def main(): _write_completion(args.completion_file, 0) return + worker_ctx = { + "gwas_dfs": gwas_dfs, + "ancestries": args.ancestries, + "sample_sizes": args.sample_sizes, + "thousand_genomes_dir": args.thousand_genomes_dir, + "max_causal": args.max_causal, + "coverage": args.coverage, + "min_abs_corr": args.min_abs_corr, + "output_dir": args.output_dir, + } + jobs = [(i + 1, len(loci), locus) for i, locus in enumerate(loci)] + max_workers = min( + calculate_parallelism(memory_per_worker_mb=6000), + len(loci), + ) + print(f"Running up to {max_workers} loci in parallel...") + n_success = 0 n_fail = 0 - for i, locus in enumerate(loci): - locus_label = f"chr{locus['chr']}:{locus['start']}-{locus['end']}" - print(f" [{i+1}/{len(loci)}] Processing {locus_label}...") - - result = run_multisusie_for_locus( - locus=locus, - gwas_dfs=gwas_dfs, - ancestries=args.ancestries, - sample_sizes=args.sample_sizes, - thousand_genomes_dir=args.thousand_genomes_dir, - max_causal=args.max_causal, - coverage=args.coverage, - min_abs_corr=args.min_abs_corr, - ) - - if result is not None and len(result[0]) > 0: - variant_df, cs_df = result - safe_name = f"{locus['chr']}_{locus['center']}" - out_file = os.path.join(args.output_dir, f"{safe_name}_finemap.tsv.gz") - variant_df.to_csv(out_file, sep="\t", index=False, compression="gzip") - cs_file = os.path.join(args.output_dir, f"{safe_name}_locus_credible_sets.tsv") - cs_df.to_csv(cs_file, sep="\t", index=False) - n_success += 1 - else: - print(f" Skipped {locus_label} (insufficient shared data or MultiSuSiE failure)") - n_fail += 1 + with ProcessPoolExecutor( + max_workers=max_workers, + initializer=_init_worker, + initargs=(worker_ctx,), + ) as executor: + futures = [executor.submit(_run_locus_job, job) for job in jobs] + for future in as_completed(futures): + i, n_loci, locus_label, ok = future.result() + if ok: + n_success += 1 + print(f" [{i}/{n_loci}] Completed {locus_label}") + else: + n_fail += 1 + print(f" [{i}/{n_loci}] Skipped {locus_label} " + f"(insufficient shared data or MultiSuSiE failure)") print(f"\nMultiSuSiE complete: {n_success} loci succeeded, {n_fail} skipped/failed.") _write_completion(args.completion_file, n_success) From 00ffa13c171e4fadf9219ae973b53c49b0e8a6f4 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 6 Jun 2026 08:42:50 +0100 Subject: [PATCH 80/85] Ading dockerignore --- .dockerignore | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..681344f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,29 @@ +.git +.github +.cursorrules +.snakemake +.genehackman +.cache +pipeline_logs +.ipynb_checkpoints +.env +.env_example +*.sif +build +build.log +README.pdf +tests/testthat/data +venv +__pycache__ +*.pyc +.pytest_cache +.quarto +**/*.quarto_ipynb +*input.yaml +*input.json +.Rproj.user +.DS_Store +ieugwasr_oauth +PLATFORM_SETUP.md +extract_by_range.r +input_for_project.yaml From ee46745bd570d6b64c21dd32c3511104958b4b9d Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 6 Jun 2026 08:54:13 +0100 Subject: [PATCH 81/85] Fixing bugs with mismatching matrix sizes --- scripts/run_multisusie.py | 160 +++++++++++++++++++++++++------------- 1 file changed, 106 insertions(+), 54 deletions(-) diff --git a/scripts/run_multisusie.py b/scripts/run_multisusie.py index f9c7c60..fd4f732 100644 --- a/scripts/run_multisusie.py +++ b/scripts/run_multisusie.py @@ -9,6 +9,7 @@ import argparse import gzip import os +import shutil import subprocess import sys import tempfile @@ -56,7 +57,6 @@ def available_cpus(): def calculate_parallelism(max_workers=10, memory_per_worker_mb=8000): - """Match R/constants.R calculate_parallelism() for worker count.""" slurm = os.environ.get("SLURM_CPUS_ON_NODE", "").strip() if slurm: try: @@ -162,61 +162,101 @@ def get_union_loci(clumped_dfs, window_bp): return loci +def _read_plink_ld_matrix(ld_file, n_snps): + """Parse plink --r square output into an n_snps x n_snps matrix.""" + try: + R = np.loadtxt(ld_file) + except (OSError, ValueError): + return None + + if n_snps < 2: + return None + if R.ndim == 0: + return None + if R.ndim == 1: + if len(R) == n_snps * n_snps: + R = R.reshape(n_snps, n_snps) + else: + return None + if R.shape[0] != n_snps or R.shape[1] != n_snps: + return None + return R + + def compute_ld_matrix(rsids, chrom, ancestry, thousand_genomes_dir): """Compute LD correlation matrix from 1000 Genomes via plink.""" if len(rsids) < 2: return None, None bfile = os.path.join(thousand_genomes_dir, ancestry) - with tempfile.NamedTemporaryFile(mode="w", suffix=".snps", delete=False) as f: - snp_file = f.name - f.write("\n".join(rsids) + "\n") - - out_prefix = tempfile.mktemp(prefix="ld_") - cmd = [ - "plink1.9", - "--bfile", bfile, - "--chr", str(chrom), - "--extract", snp_file, - "--r", "square", - "--out", out_prefix - ] - - result = subprocess.run(cmd, capture_output=True, text=True) - ld_file = out_prefix + ".ld" - - if result.returncode != 0 or not os.path.exists(ld_file): - _cleanup_plink(snp_file, out_prefix) - return None, None - - bim_file = out_prefix + ".bim" - if os.path.exists(bim_file): - bim = pd.read_csv(bim_file, sep="\t", header=None, usecols=[1], names=["SNP"]) - snp_order = bim["SNP"].tolist() - else: - bim_ref = bfile + ".bim" - bim = pd.read_csv(bim_ref, sep="\t", header=None, usecols=[0, 1, 3], - names=["CHR", "SNP", "BP"]) - bim = bim[(bim["CHR"].astype(str) == str(chrom)) & (bim["SNP"].isin(rsids))] - bim = bim.sort_values("BP") - snp_order = bim["SNP"].tolist() - - R = np.loadtxt(ld_file) - _cleanup_plink(snp_file, out_prefix) - - if R.shape[0] != len(snp_order): - return None, None - - return R, snp_order + tmpdir = tempfile.mkdtemp(prefix="ld_") + snp_file = os.path.join(tmpdir, "snps.txt") + out_prefix = os.path.join(tmpdir, "ld") + try: + with open(snp_file, "w", encoding="utf-8") as f: + f.write("\n".join(rsids) + "\n") + + cmd = [ + "plink1.9", + "--bfile", bfile, + "--chr", str(chrom), + "--extract", snp_file, + "--r", "square", + "--out", out_prefix, + ] + result = subprocess.run(cmd, capture_output=True, text=True) + ld_file = out_prefix + ".ld" + + if result.returncode != 0 or not os.path.exists(ld_file): + return None, None + + bim_file = out_prefix + ".bim" + if os.path.exists(bim_file): + bim = pd.read_csv(bim_file, sep="\t", header=None, usecols=[1], names=["SNP"]) + snp_order = bim["SNP"].tolist() + else: + bim_ref = bfile + ".bim" + bim = pd.read_csv( + bim_ref, sep="\t", header=None, usecols=[0, 1, 3], + names=["CHR", "SNP", "BP"], + ) + bim = bim[(bim["CHR"].astype(str) == str(chrom)) & (bim["SNP"].isin(rsids))] + bim = bim.sort_values("BP") + snp_order = bim["SNP"].tolist() -def _cleanup_plink(snp_file, out_prefix): - for f in [snp_file] + [out_prefix + ext for ext in - (".ld", ".nosex", ".log", ".bim", ".bed", ".fam")]: - try: - os.unlink(f) - except OSError: - pass + R = _read_plink_ld_matrix(ld_file, len(snp_order)) + if R is None: + return None, None + + return R, snp_order + finally: + shutil.rmtree(tmpdir, ignore_errors=True) + + +def _validate_multisusie_inputs(b_list, s_list, R_list, ancestries, locus_label): + """Ensure every population has the same variant count before MultiSuSiE.""" + p = int(R_list[0].shape[0]) + for i, ancestry in enumerate(ancestries): + b_arr = np.asarray(b_list[i]) + s_arr = np.asarray(s_list[i]) + r_arr = np.asarray(R_list[i]) + if ( + b_arr.ndim != 1 + or s_arr.ndim != 1 + or r_arr.ndim != 2 + or b_arr.shape[0] != p + or s_arr.shape[0] != p + or r_arr.shape != (p, p) + ): + print( + f" MultiSuSiE input mismatch for {locus_label} " + f"({ancestry}): b={b_arr.shape}, s={s_arr.shape}, " + f"R={r_arr.shape}, expected P={p}", + file=sys.stderr, + ) + return False + return True def estimate_var_y(se, eaf, n): @@ -408,14 +448,22 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, n_list = [] varY_list = [] + locus_label = f"chr{chrom}:{start}-{end}" for entry in ancestry_ld: snp_order = entry["snp_order"] - ld_idx = [snp_order.index(r) for r in final_rsids] - R_sub = entry["R"][np.ix_(ld_idx, ld_idx)] + snp_to_idx = {rsid: idx for idx, rsid in enumerate(snp_order)} + ld_idx = [snp_to_idx[r] for r in final_rsids] + R_sub = np.ascontiguousarray(entry["R"][np.ix_(ld_idx, ld_idx)], dtype=np.float64) - gwas_sub = entry["gwas_sub"].set_index("RSID").loc[final_rsids].reset_index() - beta = gwas_sub["BETA"].astype(float).values - se = gwas_sub["SE"].astype(float).values + gwas_sub = entry["gwas_sub"].set_index("RSID").reindex(final_rsids) + if gwas_sub["BETA"].isna().any() or gwas_sub["SE"].isna().any(): + return None + beta = np.ascontiguousarray( + gwas_sub["BETA"].astype(float).to_numpy().ravel(), dtype=np.float64 + ) + se = np.ascontiguousarray( + gwas_sub["SE"].astype(float).to_numpy().ravel(), dtype=np.float64 + ) eaf = gwas_sub["EAF"].astype(float).values if "EAF" in gwas_sub.columns else None b_list.append(beta) @@ -424,6 +472,9 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, n_list.append(entry["n"]) varY_list.append(estimate_var_y(se, eaf, entry["n"])) + if not _validate_multisusie_inputs(b_list, s_list, R_list, ancestries, locus_label): + return None + try: fit = MultiSuSiE.multisusie_rss( b_list=b_list, @@ -434,7 +485,8 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, L=max_causal, coverage=coverage, min_abs_corr=min_abs_corr, - low_memory_mode=True, + variant_ids=final_rsids, + low_memory_mode=False, ) except Exception as e: print(f" MultiSuSiE failed for locus chr{chrom}:{start}-{end}: {e}", file=sys.stderr) From a3f3ac396b2b424f54ae49c10bdc0460041afaf0 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 6 Jun 2026 09:50:36 +0100 Subject: [PATCH 82/85] Making BETA floats --- scripts/run_multisusie.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/run_multisusie.py b/scripts/run_multisusie.py index fd4f732..8ce44f3 100644 --- a/scripts/run_multisusie.py +++ b/scripts/run_multisusie.py @@ -487,6 +487,7 @@ def run_multisusie_for_locus(locus, gwas_dfs, ancestries, sample_sizes, min_abs_corr=min_abs_corr, variant_ids=final_rsids, low_memory_mode=False, + float_type=np.float64, ) except Exception as e: print(f" MultiSuSiE failed for locus chr{chrom}:{start}-{end}: {e}", file=sys.stderr) From 90e1c3b6e68958f93ab2537b9bc61ee6ce75c5aa Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Sat, 6 Jun 2026 09:58:20 +0100 Subject: [PATCH 83/85] More checks --- snakemake/finemap.smk | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/snakemake/finemap.smk b/snakemake/finemap.smk index 8876ad8..f54d29a 100644 --- a/snakemake/finemap.smk +++ b/snakemake/finemap.smk @@ -10,6 +10,12 @@ onstart: ancestries = list([g.ancestry for g in pipeline.gwases]) validate_ancestries(ancestries) unique_ancestries = list(set(ancestries)) +if len(unique_ancestries) > 1 and len(unique_ancestries) < len(ancestries): + raise ValueError( + "Finemap requires either the same ancestry for all GWAS inputs, " + "or a distinct ancestry per GWAS (no duplicates). " + f"Found ancestries: {ancestries}" + ) is_multi_ancestry = len(unique_ancestries) > 1 finemap_opts = getattr(pipeline, "finemap", SimpleNamespace()) @@ -23,7 +29,7 @@ std_file_pattern = standardised_gwas_name("{prefix}") for g in pipeline.gwases: g.finemap_dir = RESULTS_DIR + "finemap/" + g.prefix -MULTI_FINEMAP_COMPLETE = RESULTS_DIR + "finemap/multi_ancestry_finemap_complete.txt" +MULTI_FINEMAP_COMPLETE = RESULTS_DIR + "finemap/multi_ancestry/finemap_complete.txt" if is_multi_ancestry: rule all: From a4a479f2131693919da07fd340eb437386ca85e1 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 8 Jun 2026 12:32:26 +0100 Subject: [PATCH 84/85] Improving documentaiton / md --- .gitignore | 1 + CONTRIBUTING.md | 213 ++++++++++++++++++++++++++++++++++++++ README.md | 64 +++--------- scripts/run_multisusie.py | 2 +- 4 files changed, 232 insertions(+), 48 deletions(-) create mode 100644 CONTRIBUTING.md diff --git a/.gitignore b/.gitignore index 98bbbd7..76f4721 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ pipeline_logs/ .bashrc .DS_Store ieugwasr_oauth +__pycache__/ /.quarto/ **/*.quarto_ipynb diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..5348582 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,213 @@ +# Contributing to GeneHackman + +This guide covers how to change code, update the Docker image, and run the test suite before opening a pull request. + +For running pipelines in production, see [README.md](README.md) and [PLATFORM_SETUP.md](PLATFORM_SETUP.md). For pipeline inputs and parameters, see [snakemake/PIPELINES.md](snakemake/PIPELINES.md). + +## Development setup + +1. Clone the repository and create the conda environment: + + ```bash + git clone git@github.com:MRCIEU/GeneHackman.git + cd GeneHackman + conda env create -f environment.yml + conda activate genehackman + ``` + +2. Copy and edit `.env` (see [.env_example](.env_example)): + + ```bash + cp .env_example .env + ``` + + For development you need at least: + + - **`PROJECT_DIR`** — absolute path where test outputs go (e.g. a scratch folder; the pipeline writes to `PROJECT_DIR/data/` and `PROJECT_DIR/results/`). + - **`PIPELINE_DATA_DIR`** — absolute path to the reference data bundle from `gs://genehackman` (1000 Genomes LD panels, LDSC assets, etc.). + - **`DOCKER_VERSION`** — image tag to run (e.g. `1.1.0` or `develop`). + + Use **absolute paths** in `.env`. Relative paths (e.g. `QTL_DATA_DIR=hi`) break Apptainer bind mounts with errors like `destination must be an absolute path`. + +3. Install the R package locally (for unit tests outside Docker): + + ```bash + Rscript -e "devtools::install()" + ``` + +## Repository layout + +| Path | Role | +|------|------| +| `R/` | R package functions used by pipeline steps | +| `scripts/` | CLI entry points called from Snakemake (`Rscript …`, `python …`) | +| `snakemake/` | Workflow `.smk` files, `profiles/`, `input_templates/`, shared `util/` | +| `docker/` | `Dockerfile`, `requirements.R`, `requirements.txt` | +| `tests/testthat/` | Unit tests and small test GWAS files | +| `tests/e2e_tests/` | End-to-end Snakemake test runner | +| `inst/` | Package data (e.g. column maps) | + +Snakemake profiles bind-mount `R/`, `scripts/`, and `inst/` from the repo into the container, so **changes to R and script code take effect without rebuilding the image** on the next pipeline run. New R or Python **dependencies** still require a Docker rebuild. + +## Making code changes + +### R package (`R/`) + +- Follow existing style: **data.table** / **dplyr** patterns already in the file, **roxygen2** docs for exported functions. +- Regenerate documentation when you change exports: + + ```bash + Rscript -e "devtools::document()" + ``` + +- Snakemake rules typically call thin wrappers in `scripts/` that load the package and parse CLI args. + +### Scripts (`scripts/`) + +- Keep scripts as CLI wrappers; put reusable logic in `R/`. +- Python scripts (e.g. `run_multisusie.py`) should stay compatible with packages in `docker/requirements.txt`. + +### Snakemake (`snakemake/`) + +- Shared helpers live in `snakemake/util/` (`common.smk`, `constants.smk`, rules under `snakemake/rules/`). +- Add or update an example input under `snakemake/input_templates/` when you change required YAML fields. +- Site-specific cluster settings belong in new profiles under `snakemake/profiles/` (copy `local/` or `slurm/` as a template). + +### Conventions + +- **Ancestry** codes must be one of: `EUR`, `EAS`, `AFR`, `AMR`, `SAS`. +- **Finemap** (`finemap.smk`): ancestries must be either all the same (single-ancestry SuSiE) or all distinct (multi-ancestry MultiSuSiE). Mixed duplicates fail at startup. +- **Coloc** (`coloc.smk`): all GWAS inputs must share the same ancestry. + +## Docker changes + +The pipeline runs inside **`mrcieu/genehackman`** (Apptainer/Singularity on HPC, Docker locally). + +| File | Purpose | +|------|---------| +| `docker/Dockerfile` | Base OS, R, PLINK, liftOver, LDSC, PHESANT, bcftools | +| `docker/requirements.R` | CRAN/Bioconductor R dependencies | +| `docker/requirements.txt` | Python dependencies (Snakemake, MultiSuSiE, …) | + +The Dockerfile copies only `DESCRIPTION`, `docker/requirements.R`, and `docker/requirements.txt` before installing dependencies, so **edits to those files invalidate the dependency layer** and rebuild quickly without copying the whole repo first. + +### Build locally + +From the **repository root**: + +```bash +docker build --platform linux/amd64 -f docker/Dockerfile \ + -t mrcieu/genehackman:$(grep '^Version:' DESCRIPTION | awk '{print $2}') . +``` + +The image is **linux/amd64 only**. Use `--platform linux/amd64` on Apple Silicon. + +After changing `DESCRIPTION` (new R package in `Imports:`), update `docker/requirements.R` or rely on `remotes::install_deps("docker", …)` picking up new imports. + +After changing Python deps, edit `docker/requirements.txt` and rebuild. + +### Publish (maintainers) + +```bash +docker push mrcieu/genehackman: +``` + +Bump **`Version:`** in `DESCRIPTION` and **`DOCKER_VERSION`** in `.env` together so the SIF name (`genehackman_.sif`) matches the image tag. + +HPC users without Docker pull the same image via `run_pipeline.sh`, which builds or uses `$PIPELINE_DATA_DIR/genomic_data/pipeline/genehackman_.sif`. + +## Unit tests + +Unit tests use **testthat** and live in `tests/testthat/`. + +### Run all package tests + +```bash +# Inside the conda env, with the package installed: +Rscript -e "devtools::test()" + +# Or: +Rscript tests/testthat.R +``` + +### Full package check (what CI runs) + +Runs `R CMD check`–style validation (examples, vignettes, namespace, etc.): + +```bash +Rscript -e "devtools::check()" +``` + +CI runs this inside `mrcieu/genehackman:develop` (see [.github/workflows/main.yml](.github/workflows/main.yml)). + +### Writing tests + +- Add new test files as `tests/testthat/test_.R`. +- Use `testthat::local_mocked_bindings()` to mock external tools (PLINK, SuSiE, liftover) where the existing tests do. +- Small GWAS fixtures are under `tests/testthat/data/`. + +## End-to-end pipeline tests + +End-to-end tests run real Snakemake workflows against tiny test GWAS files via Apptainer. + +### Prerequisites + +- `.env` configured with valid **`PROJECT_DIR`** and **`PIPELINE_DATA_DIR`** (reference data required for LD, liftover, etc.). +- Apptainer/Singularity available (see [PLATFORM_SETUP.md](PLATFORM_SETUP.md)). +- Conda env activated. + +### Run all e2e tests + +```bash +./tests/e2e_tests/run_test_pipelines.sh +``` + +This script runs `run_pipeline.sh` with `-F` (force rerun) for: + +| Pipeline | Test input | +|----------|------------| +| `standardise_gwas.smk` | `tests/testthat/data/snakemake_inputs/standardise_gwas.yaml` | +| `disease_progression.smk` | `tests/testthat/data/snakemake_inputs/disease_progression.yaml` | +| `compare_gwases.smk` | `tests/testthat/data/snakemake_inputs/compare_gwases.yaml` | +| `finemap.smk` | `finemap.yaml` and `finemap_multi_ancestry.yaml` | +| `coloc.smk` | `tests/testthat/data/snakemake_inputs/coloc.yaml` | +| `qtl_mr.smk` | `qtl_mr_eqtlgen.yaml` (only if **`QTL_DATA_DIR`** is set in `.env`) | + +On success it writes **`tests/testing_complete.txt`** with a line like: + +```text +SUCCESS: All tests passed on branch: your-branch-name +``` + +### CI requirement + +Pull requests must include an updated **`tests/testing_complete.txt`** from a successful run on **your branch**. GitHub Actions checks that: + +1. The file exists. +2. On non-`main` branches, the file contains the branch name. + +Run the e2e script on your feature branch, then commit `tests/testing_complete.txt` with your other changes. + +### Run a single pipeline test + +```bash +./run_pipeline.sh snakemake/finemap.smk \ + tests/testthat/data/snakemake_inputs/finemap.yaml -F +``` + +Useful flags: `--dry-run`, `--unlock`, `-n` (dry run), `-R ` (rerun specific rule). + +## Suggested workflow before a PR + +1. Make changes on a feature branch. +2. Run unit tests: `Rscript -e "devtools::test()"` (or `devtools::check()` for a fuller pass). +3. Run e2e tests: `./tests/e2e_tests/run_test_pipelines.sh`. +4. Commit code changes **and** `tests/testing_complete.txt`. +5. Open a pull request against `main`. + +If you change Docker dependencies, note the new image tag in the PR description and confirm you have rebuilt (or that maintainers will publish) the matching `mrcieu/genehackman` image. + +## Getting help + +- Open a [GitHub issue](https://github.com/MRCIEU/GeneHackman/issues) for bugs or feature requests. +- Contact **andrew.elmore at bristol dot ac uk** for Bristol-internal coordination. diff --git a/README.md b/README.md index ad0a298..c536621 100644 --- a/README.md +++ b/README.md @@ -37,8 +37,6 @@ There are **six** Snakemake pipelines (grouped as two tables of three). Each pip ## Onboarding -**Running on macOS, Linux, Slurm, or PBS?** See **[PLATFORM_SETUP.md](PLATFORM_SETUP.md)** for platform-specific setup (Apptainer/Lima, SIF cache, Snakemake profiles under **`snakemake/profiles/`**, `qsub` template). - ### 1. Clone the repository into your personal space on BlueCrystal 4 `git clone git@github.com:MRCIEU/GeneHackman.git && cd GeneHackman` @@ -52,27 +50,17 @@ or if you have already created the environment ### 3. Get reference data (Google Cloud Storage) -Much of what the pipelines expect (LD references, LDSC masks, MetaBrain/QTL summaries, …) ships in two buckets. Copy them somewhere on your machine or HPC scratch space (**do not commit data to git**). - -| Bucket | Typical use | Env var to set after download | -|--------|--------------|-------------------------------| -| Mandatory: `gs://genehackman` | Core pipeline bundle (e.g. 1000 Genomes LD panels, genomic assets, LDSC helpers under the layout expected under `PIPELINE_DATA_DIR`) | **`PIPELINE_DATA_DIR`** → absolute path of the folder that mirrors this bucket root (same internal directory names as on GCS). | -| Optional: `gs://genehackman-qtl` | QTL summary statistic trees used by **`qtl_mr`** | **`QTL_DATA_DIR`** → absolute path of the folder containing that hierarchy. Needed for **`qtl_mr`**; ignored by other pipelines. | - -**Authenticate** (private buckets — use whichever applies): [install Google Cloud SDK](https://cloud.google.com/sdk/docs/install), then `gcloud auth login` so `gsutil` can read the buckets you’ve been granted. +The data to run the pipelines have been split into two buckets, the mandatory bucket, and QTL bucket (only needed if you want to run MR-QTL pipeline). To download, [install gsutil](https://docs.cloud.google.com/storage/docs/gsutil_install) -**Download with `gsutil`** (multipart copy; adjust local paths): - -```bash -mkdir -p /path/to/my_pipeline_data /path/to/my_qtl_data -gsutil -m rsync -r gs://genehackman/ /path/to/my_pipeline_data/ -gsutil -m rsync -r gs://genehackman-qtl/ /path/to/my_qtl_data/ -``` +* Mandatory: `gs://genehackman` + * `gsutil -m rsync -r gs://genehackman/ /path/to/my_pipeline_data/` + * Update `PIPELINE_DATA_DIR` to `/path/to/my_pipeline_data/` in the .env file +* Optional: `gs://genehackman-qtl` + * `gsutil -m rsync -r gs://genehackman-qtl/ /path/to/my_qtl_data/` + * Update `QTL_DATA_DIR` to `/path/to/my_qtl_data/` in the .env file To copy only selected prefixes instead of the QTL bucket, use `gsutil -m cp -r gs://genehackman-qtl/SOME_PREFIX/ ...` as needed. For example, you may only be interested in cis, not trans data. -**Download via web UI:** Open [Google Cloud Console → Cloud Storage](https://console.cloud.google.com/storage/browser), select the project/storage account you were given access to, open bucket **`genehackman`** or **`genehackman-qtl`**, and download files or folders in the browser (or use **“Activate Cloud Shell”** and run `gsutil` there, then drag files out if convenient). - Then point your **`.env`** at those directories (trailing slashes are fine): ```bash @@ -129,6 +117,12 @@ SNAKEMAKE_PROFILE=snakemake/profiles/local/ ### 5. Run the pipeline +To ensure you have configured everything correctly, you can run a test pipeline from `run_test_pipelines.sh` + +`./run_pipeline.sh snakemake/standardise_gwas.smk tests/testthat/data/snakemake_inputs/standardise_gwas.yaml` + +To run your pipeline: + `./run_pipeline.sh snakemake/.smk ` Snakemake execution profiles (**`--profile`**) live under **`snakemake/profiles/`** (see also [PLATFORM_SETUP.md](PLATFORM_SETUP.md)). @@ -159,36 +153,12 @@ The pipeline can be run either on its own, or via your institutions HPC. Each s * `scripts` directory holds the scripts that can be easily called by snakemake (`Rscript example.R --input_ex example_input`) * `snakemake` directory: workflow `.smk` files, **`snakemake/profiles/`** (Snakemake `--profile`: local vs Slurm/HPC defaults), **`input_templates/`**, and shared **`util/`** code between pipelines * `docker` directory holds the information for creating the docker image that the pipeline runs -* `tests` directory holds all R tests, and a end to end pipeline test script +* `tests` directory holds all R tests, and end to end pipeline tests -### Docker image +### Platform Setup -Pipelines use the image **`mrcieu/genehackman`** (tag usually matches the **`Version:`** field in [`DESCRIPTION`](DESCRIPTION) and **`DOCKER_VERSION`** in `.env`; see [`snakemake/util/common.smk`](snakemake/util/common.smk)). - -**Build** (run from the **repository root** so paths in the Dockerfile resolve correctly): - -```bash -docker build --platform linux/amd64 -f docker/Dockerfile -t mrcieu/genehackman:$(grep '^Version:' DESCRIPTION | awk '{print $2}') . -``` - -To tag a specific version explicitly (for example `1.1.0`): - -```bash -docker build --platform linux/amd64 -f docker/Dockerfile -t mrcieu/genehackman:1.1.0 . -``` - -The image is **x86_64/amd64-only** (Posit R `.deb`, PLINK, Miniconda, etc.). Use **`--platform linux/amd64`** when building so it works on **ARM** laptops (e.g. Apple Silicon) as well as on amd64 Linux; on native amd64 machines the flag is optional but harmless. - -The image installs OS packages and tools in [`docker/Dockerfile`](docker/Dockerfile), R packages via [`docker/requirements.R`](docker/requirements.R), and Python packages via [`docker/requirements.txt`](docker/requirements.txt). After changing those files, rebuild the image before running pipelines that depend on the new dependencies. - -**Publish** (maintainers with access to the `mrcieu` organisation on Docker Hub): - -```bash -docker push mrcieu/genehackman: -``` - -Use the same `` you built locally. HPC users without Docker can still obtain the image via Apptainer/Singularity (for example `singularity build genehackman_.sif docker://mrcieu/genehackman:`), as in [`run_pipeline.sh`](run_pipeline.sh). +**Running on macOS, Linux, Slurm, or PBS?** See **[PLATFORM_SETUP.md](PLATFORM_SETUP.md)** for platform-specific setup (Apptainer/Lima, SIF cache, Snakemake profiles under **`snakemake/profiles/`**, `qsub` template). ### Making changes -If you want to make any additions / changes please contact andrew.elmore@bristol.ac.uk, or open an issue in this repo. +See **[CONTRIBUTING.md](CONTRIBUTING.md)** for development setup, Docker rebuilds, unit tests, and end-to-end tests. You can also contact open an issue in this repo. diff --git a/scripts/run_multisusie.py b/scripts/run_multisusie.py index 8ce44f3..3510099 100644 --- a/scripts/run_multisusie.py +++ b/scripts/run_multisusie.py @@ -323,7 +323,7 @@ def build_multisusie_result_df(fit, final_rsids, ref_gwas, ancestries): if hasattr(fit, "coef") and fit.coef is not None: for k, ancestry in enumerate(ancestries): if fit.coef.shape[0] > k and len(fit.coef[k]) == n: - result_df[f"BETA_{ancestry}"] = fit.coef[k] + result_df[f"POSTERIOR_COEF_{ancestry}"] = fit.coef[k] return result_df From bc7d45139210193541d5205fb3a83b65f710e3f8 Mon Sep 17 00:00:00 2001 From: Andrew Elmore Date: Mon, 8 Jun 2026 14:13:04 +0100 Subject: [PATCH 85/85] Adding instructions to cut new release --- CONTRIBUTING.md | 119 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 8 ---- 2 files changed, 119 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5348582..42c9662 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -207,6 +207,125 @@ Useful flags: `--dry-run`, `--unlock`, `-n` (dry run), `-R ` (rerun specif If you change Docker dependencies, note the new image tag in the PR description and confirm you have rebuilt (or that maintainers will publish) the matching `mrcieu/genehackman` image. +## Cutting a release (maintainers) + +Releases tie together three versioned artefacts: + +| Artefact | Where | Format | +|----------|--------|--------| +| R package | `DESCRIPTION` → `Version:` | `1.2.0` (no `v` prefix) | +| Docker / Apptainer image | Docker Hub `mrcieu/genehackman` | tag `1.2.0` (matches `Version:`) | +| Git tag | GitHub | `v1.2.0` (`v` + same semver) | + +Users set **`DOCKER_VERSION=1.2.0`** in `.env`; Snakemake looks for `genehackman_1.2.0.sif` under `PIPELINE_DATA_DIR/genomic_data/pipeline/`. + +### Before you release + +1. Merge all intended changes to **`main`**. +2. Confirm CI is green on `main` ([Actions](https://github.com/MRCIEU/GeneHackman/actions)). +3. Run the full test suite on `main`: + + ```bash + git checkout main && git pull + Rscript -e "devtools::check()" + ./tests/e2e_tests/run_test_pipelines.sh + ``` + +4. Commit `tests/testing_complete.txt` on `main` if the e2e run updated it. + +### 1. Bump the version + +Edit **`Version:`** in [`DESCRIPTION`](DESCRIPTION) to the new semver (e.g. `1.2.0`). + +Update the example default in [`.env_example`](.env_example): + +```bash +DOCKER_VERSION=1.2.0 +``` + +Regenerate R docs if exports changed: + +```bash +Rscript -e "devtools::document()" +``` + +Commit on `main` (or via PR): + +```bash +git add DESCRIPTION .env_example +git commit -m "Bump version to 1.2.0" +git push origin main +``` + +### 2. Build and publish the Docker image + +From the repository root, on a machine with Docker Hub access to **`mrcieu`**: + +```bash +VERSION=1.2.0 + +docker build --platform linux/amd64 -f docker/Dockerfile \ + -t mrcieu/genehackman:${VERSION} . + +docker push mrcieu/genehackman:${VERSION} +``` + +Optional: refresh the rolling **`develop`** tag used by CI (`mrcieu/genehackman:develop` in [`.github/workflows/main.yml`](.github/workflows/main.yml)): + +```bash +docker tag mrcieu/genehackman:${VERSION} mrcieu/genehackman:develop +docker push mrcieu/genehackman:develop +``` + +### 3. Tag the release in Git + +Create an annotated tag on `main` pointing at the version bump commit: + +```bash +git checkout main && git pull +git tag -a v1.2.0 -m "Release 1.2.0" +git push origin v1.2.0 +``` + +Tags use a **`v` prefix** (e.g. `v1.0.0`); Docker tags do **not** (`1.2.0`). + +### 4. Create the GitHub release + +Using the GitHub CLI: + +```bash +gh release create v1.2.0 \ + --title "1.2.0" \ + --notes "$(cat <<'EOF' +## Summary +- … + +## Docker +`docker pull mrcieu/genehackman:1.2.0` + +## Citation +https://doi.org/10.5281/zenodo.10624713 +EOF +)" +``` + +Or in the browser: **GitHub → Releases → Draft a new release** → choose tag `v1.2.0`, title `1.2.0`, and add release notes (changes since the previous tag, Docker pull command, any breaking changes). + +### 5. Zenodo archive + +The project is archived on Zenodo ([10.5281/zenodo.10624713](https://doi.org/10.5281/zenodo.10624713)). If the [Zenodo–GitHub integration](https://docs.github.com/en/repositories/archiving-a-github-repository/referencing-and-citing-content) is enabled for this repository, publishing the GitHub release should trigger a new Zenodo version automatically. Otherwise, upload the release manually on Zenodo and note the new version DOI in the GitHub release. + +### After release + +Tell users to: + +1. Set **`DOCKER_VERSION`** in `.env` to the new version. +2. Pull or build the SIF, e.g. delete an old `genehackman_*.sif` and re-run `run_pipeline.sh` (it builds from `docker://mrcieu/genehackman:` if the file is missing), or on HPC: + + ```bash + singularity build genehackman_1.2.0.sif docker://mrcieu/genehackman:1.2.0 + ``` + ## Getting help - Open a [GitHub issue](https://github.com/MRCIEU/GeneHackman/issues) for bugs or feature requests. diff --git a/README.md b/README.md index c536621..3fb2379 100644 --- a/README.md +++ b/README.md @@ -147,14 +147,6 @@ There are 2 main components to the pipeline The pipeline can be run either on its own, or via your institutions HPC. Each snakemake step spins up a singularity container inside an HPC job (ex. slurm). Each step can specify different cpu/memory requirements. -### Repository Organisation - -* `R` directory holds R package code that can also be called and reused by any step in the pipeline (accessed by a cli script) -* `scripts` directory holds the scripts that can be easily called by snakemake (`Rscript example.R --input_ex example_input`) -* `snakemake` directory: workflow `.smk` files, **`snakemake/profiles/`** (Snakemake `--profile`: local vs Slurm/HPC defaults), **`input_templates/`**, and shared **`util/`** code between pipelines -* `docker` directory holds the information for creating the docker image that the pipeline runs -* `tests` directory holds all R tests, and end to end pipeline tests - ### Platform Setup **Running on macOS, Linux, Slurm, or PBS?** See **[PLATFORM_SETUP.md](PLATFORM_SETUP.md)** for platform-specific setup (Apptainer/Lima, SIF cache, Snakemake profiles under **`snakemake/profiles/`**, `qsub` template).

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�j~Z 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 z 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