Skip to content

Add association and heritability analysis routes - #99

Draft
lyh970817 wants to merge 71 commits into
nf-core:devfrom
lyh970817:feat/gwas-development-routes
Draft

Add association and heritability analysis routes#99
lyh970817 wants to merge 71 commits into
nf-core:devfrom
lyh970817:feat/gwas-development-routes

Conversation

@lyh970817

@lyh970817 lyh970817 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Description

This PR replaces the existing --input samplesheet contract on dev with linked cohort and analysis manifests, then wires the association and individual-level heritability routes that consume that relational model.

Compared with dev, this PR:

  • adds --cohort_manifest, --analysis_manifest and optional --method_options inputs with dedicated schemas and validation;
  • prepares each cohort once from PLINK 2, PLINK 1 or VCF input and shares the resulting genotype derivatives across compatible analyses;
  • adds PLINK 2, REGENIE, GCTA fastGWA-MLM and LDAK-KVIK association routes;
  • adds GCTA GREML, GCTA GREML-LDMS, LDAK REML, LDAK Haseman-Elston and LDAK PCGC heritability routes;
  • standardises association results with GWASLab while preserving each method's native output;
  • reuses compatible REGENIE/LDAK prediction bundles and GCTA/LDAK relatedness matrices across analyses;
  • adds opt-in publication controls for prepared genotypes, normalised phenotypes, association predictions and relatedness matrices;
  • replaces the single modules configuration file with method-family configuration files and adds route-aware MultiQC reporting;
  • replaces the retired samplesheet fixtures with relational examples, route profiles and pipeline-level nf-tests; and
  • removes the unwired PLINK 1 association and legacy PLINK VCF-conversion components and synchronises the pipeline-local LDAK component family.

The usage, output, README, citations and development changelog documentation are updated for the submitted interface and routes.

Important

This draft must not be merged until nf-core/test-datasets#2198 has been merged into the gwas branch. The test profiles in this PR intentionally reference those canonical fixture URLs.

Companion fixture PR: nf-core/test-datasets#2198

PR checklist

  • This comment contains a description of changes (with reason).
  • If you've fixed a bug or added code that should be tested, add tests!
  • If you've added a new tool - have you followed the pipeline conventions in the contribution docs
  • If necessary, also make a PR on the nf-core/gwas branch on the nf-core/test-datasets repository.
  • Make sure your code lints (nf-core pipelines lint).
  • Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
  • Check for unexpected warnings in debug mode (nextflow run . -profile debug,test,docker --outdir <OUTDIR>).
  • Usage Documentation in docs/usage.md is updated.
  • Output Documentation in docs/output.md is updated.
  • CHANGELOG.md is updated.
  • README.md is updated (including new tool citations and authors/contributors).

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Warning

Newer version of the nf-core template is available.

Your pipeline is using an old version of the nf-core template: 4.0.3.
Please update your pipeline to the latest version.

For more documentation on how to update your pipeline, please see the Synchronisation documentation.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

nf-core pipelines lint overall result: Failed ❌

Posted for pipeline commit afa7ea4

+| ✅ 284 tests passed       |+
#| ❔   7 tests were ignored |#
!| ❗   8 tests had warnings |!
-| ❌   2 tests failed       |-
Details

❌ Test failures:

  • container_configs - conf/containers_conda_lock_files_amd64.config is out of date – please regenerate the container configuration files.
  • container_configs - conf/containers_conda_lock_files_arm64.config is out of date – please regenerate the container configuration files.

❗ Test warnings:

  • readme - README contains the placeholder zenodo.XXXXXXX. This should be replaced with the zenodo doi (after the first release).
  • pipeline_todos - TODO string in README.md: Add the pipeline citation when a Zenodo DOI is available, then update the badge above.
  • pipeline_todos - TODO string in nextflow.config: Optionally, you can add a pipeline-specific nf-core config at https://github.com/nf-core/configs
  • pipeline_todos - TODO string in awsfulltest.yml: You can customise AWS full pipeline tests as required
  • pipeline_todos - TODO string in CONTRIBUTING.md: Add any pipeline specific contribution guidelines here, such as coding styles, procedures, checklists etc.
  • pipeline_todos - TODO string in base.config: Customise requirements for specific processes.
  • schema_lint - Schema 'description' should be 'A pipeline for Genome Wide Association Studies'
    Found: 'A pipeline for Genome Wide Association Studies.'
  • schema_lint - Parameter input not found in schema

❔ Tests ignored:

✅ Tests passed:

Run details

  • nf-core/tools version 4.0.3
  • Run at 2026-08-25 03:15:32

@lyh970817
lyh970817 requested a review from chriswyatt1 August 4, 2026 18:57
@lyh970817
lyh970817 force-pushed the feat/gwas-development-routes branch 2 times, most recently from 18c69f6 to 0ce919f Compare August 4, 2026 19:06
@lyh970817
lyh970817 force-pushed the feat/gwas-development-routes branch from 0ce919f to bb91075 Compare August 4, 2026 19:13
Comment thread conf/base.config
@@ -26,36 +25,36 @@ process {
// adding in your local modules too.
// TODO nf-core: Customise requirements for specific processes.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// TODO nf-core: Customise requirements for specific processes.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe in the template, but I think theres normally info here,

// Process-specific resource requirements
    // NOTE - Please try and reuse the labels below as much as possible.
    //        These labels are used and recognised by default in DSL2 files hosted on nf-core/modules.
    //        If possible, it would be nice to keep the same label naming convention when
    //        adding in your local modules too.
    // See https://www.nextflow.io/docs/latest/config.html#config-process-selectors

@chriswyatt1

Copy link
Copy Markdown

@lyh970817 . Hey, I will try to finish the review on this by next week. Looks great though, what I have gone through so far

# Conflicts:
#	README.md
#	docs/usage.md
#	nextflow_schema.json
#	ro-crate-metadata.json
#	subworkflows/local/utils_nfcore_gwas_pipeline/main.nf
#	subworkflows/local/validate_gwas_input/main.nf
#	subworkflows/local/validate_gwas_input/tests/main.function.nf.test
#	tests/full_scale.nf.test
#	tests/full_scale.nf.test.snap
# Conflicts:
#	docs/usage.md
#	ro-crate-metadata.json
#	subworkflows/local/validate_gwas_input/main.nf
#	workflows/gwas.nf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants