Skip to content

Conversation

@johanneskoester
Copy link
Contributor

@johanneskoester johanneskoester commented Oct 4, 2025

Summary by CodeRabbit

  • Chores

    • CI now runs a matrix of Linux environments (including ARM) with dynamic job names for clearer logs and broader coverage.
    • Updated many workflow tool/container versions across the pipeline to a newer, unified release.
  • Refactor

    • Sample region outputs are now exposed as stable, named outputs for more reliable downstream use.

@coderabbitai
Copy link

coderabbitai bot commented Oct 4, 2025

Walkthrough

Added a GitHub Actions matrix to run tests on multiple runner images and replaced many Snakemake wrapper references with v7.6.0; also changed the build_sample_regions rule to use named outputs (dist, quant, bed, bed_dist) and bumped its mosdepth wrapper.

Changes

Cohort / File(s) Summary
CI Workflow Matrix Update
.github/workflows/main.yml
Replaced static runs-on: ubuntu-latest with a matrix.image (ubuntu-latest, ubuntu-24.04-arm) and templated job name to include ${matrix.image}.
Regions rule: named outputs & mosdepth bump
workflow/rules/regions.smk
build_sample_regions outputs converted from positional paths to named outputs (dist, quant, bed, bed_dist) and wrapper updated from v2.3.2/bio/mosdepth to v7.6.0/bio/mosdepth.
Wrapper bumps — mapping (many rules)
workflow/rules/mapping.smk
Numerous mapping rules updated to use v7.6.0 wrappers for tools (BWA, VG giraffe, Samtools, Picard, GATK, etc.) — no logic/input/output changes.
Wrapper bumps — annotation / benchmarking / calling / filtering / candidate_calling / fusion_calling / maf / primers / qc / ref / testcase / trimming / utils / datavzrd
workflow/rules/annotation.smk, workflow/rules/benchmarking.smk, workflow/rules/calling.smk, workflow/rules/candidate_calling.smk, workflow/rules/datavzrd.smk, workflow/rules/filtering.smk, workflow/rules/fusion_calling.smk, workflow/rules/maf.smk, workflow/rules/primers.smk, workflow/rules/qc.smk, workflow/rules/ref.smk, workflow/rules/testcase.smk, workflow/rules/trimming.smk, workflow/rules/utils.smk
Updated many rule wrapper references to v7.6.0 (replacing older versions such as v2.x, v3.x, v5.x, v6.x, v7.1.0, etc.). No functional changes to inputs, outputs, or control flow were introduced in these diffs.

Sequence Diagram(s)

sequenceDiagram
    participant Dev as Developer
    participant GH as GitHub Actions
    participant Matrix as Matrix Expander
    participant RunnerA as ubuntu-latest
    participant RunnerB as ubuntu-24.04-arm

    Dev->>GH: Push/PR triggers workflow
    GH->>Matrix: Expand matrix (image)
    Matrix-->>RunnerA: Schedule job (runs-on = ubuntu-latest)
    Matrix-->>RunnerB: Schedule job (runs-on = ubuntu-24.04-arm)
    RunnerA->>RunnerA: Execute job (name uses matrix.image)
    RunnerB->>RunnerB: Execute job (name uses matrix.image)
    RunnerA-->>GH: Report result
    RunnerB-->>GH: Report result
    GH-->>Dev: Aggregate results
Loading
sequenceDiagram
    participant Snakemake as Snakemake Engine
    participant Rule as build_sample_regions
    participant Wrapper as mosdepth:v7.6.0
    participant Downstream as Dependent Rules

    Snakemake->>Rule: Request `results/regions/{group}/{sample}.*`
    Rule->>Wrapper: Run with named outputs (dist, quant, bed, bed_dist)
    Wrapper-->>Rule: Produce named outputs
    Rule-->>Snakemake: Return named outputs
    Snakemake->>Downstream: Bind downstream inputs to named outputs (dist/quant/bed/bed_dist)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • fxwiegand
  • FelixMoelder
  • dlaehnemann

Poem

I hopped through CI with a jaunty bound,
Two runners now spin where one was found.
I named each carrot, four tidy rows,
Mosdepth learned tricks and proudly grows.
Tests hum along — the burrow glows. 🥕🐇

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title “chore: test on arm” succinctly and accurately describes the core change of adding ARM-based CI testing in the workflow matrix, directly reflecting the updates to the GitHub Actions configuration. It is concise, uses a standard prefix, and omits extraneous details while conveying the main intent. A reviewer scanning the history can immediately understand that the PR is about enabling ARM tests.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/arm

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ee49828 and 966ce38.

📒 Files selected for processing (1)
  • .github/workflows/main.yml (2 hunks)

Comment on lines +20 to +22
image:
- ubuntu-latest
- ubuntu-24.04-arm
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix the ARM runner label.

ubuntu-24.04-arm is not a valid GitHub-hosted runner label, so the job will sit in “Waiting for a runner to pick up this job” and never execute. Use ubuntu-24.04-arm64 instead to target the official ARM image.

Also applies to: 66-67

🤖 Prompt for AI Agents
.github/workflows/main.yml around lines 20-22 (and also at 66-67): the workflow
uses an invalid runner label "ubuntu-24.04-arm" which prevents jobs from
starting; replace that label with the correct GitHub-hosted runner label
"ubuntu-24.04-arm64" in both places so the jobs will run on the official ARM64
image.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3d14816 and df0bcf6.

📒 Files selected for processing (15)
  • workflow/rules/annotation.smk (3 hunks)
  • workflow/rules/benchmarking.smk (5 hunks)
  • workflow/rules/calling.smk (2 hunks)
  • workflow/rules/candidate_calling.smk (3 hunks)
  • workflow/rules/datavzrd.smk (4 hunks)
  • workflow/rules/filtering.smk (2 hunks)
  • workflow/rules/fusion_calling.smk (3 hunks)
  • workflow/rules/maf.smk (1 hunks)
  • workflow/rules/mapping.smk (11 hunks)
  • workflow/rules/primers.smk (2 hunks)
  • workflow/rules/qc.smk (4 hunks)
  • workflow/rules/ref.smk (7 hunks)
  • workflow/rules/testcase.smk (1 hunks)
  • workflow/rules/trimming.smk (3 hunks)
  • workflow/rules/utils.smk (3 hunks)
✅ Files skipped from review due to trivial changes (3)
  • workflow/rules/maf.smk
  • workflow/rules/annotation.smk
  • workflow/rules/datavzrd.smk
🔇 Additional comments (29)
workflow/rules/candidate_calling.smk (1)

23-23: Verify wrapper compatibility and ARM test results

  • Wrappers bio/freebayes, bio/delly and bio/bcftools/filter v7.6.0 are available; confirm no breaking changes to parameters or output formats.
  • Ensure the updated rules have been tested and pass on ARM architecture.
workflow/rules/testcase.smk (1)

17-17: LGTM! Consistent wrapper upgrade.

The bcftools concat wrapper upgrade to v7.6.0 is consistent with changes in other files (e.g., filtering.smk).

workflow/rules/primers.smk (1)

62-62: LGTM! Wrapper upgrades are consistent with PR objectives.

The bwa mem (v2.13.0 → v7.6.0) and samtools view (v2.3.2 → v7.6.0) wrapper upgrades align with the ARM testing objectives mentioned in the PR.

Also applies to: 75-75

workflow/rules/calling.smk (1)

111-111: LGTM! Bcftools wrapper upgrades are consistent.

The bcftools sort and concat wrapper upgrades to v7.6.0 are consistent with changes across the workflow.

Also applies to: 125-125

workflow/rules/benchmarking.smk (1)

16-16: LGTM! Comprehensive wrapper upgrade for benchmarking rules.

All five wrapper references have been consistently upgraded to v7.6.0 across benchmarking rules: bcftools concat, chm-eval-sample, samtools sort, chm-eval-kit, and chm-eval.

Also applies to: 26-26, 40-40, 68-68, 114-114

workflow/rules/qc.smk (1)

12-12: LGTM! QC wrapper upgrades are comprehensive.

All QC-related wrappers (fastqc, samtools idxstats, samtools stats, and multiqc) have been consistently upgraded to v7.6.0.

Also applies to: 24-24, 35-35, 53-53

workflow/rules/utils.smk (1)

22-22: LGTM! Utility wrapper upgrades complete the migration to v7.6.0.

The bcftools view, samtools index, and tabix index wrappers have been upgraded to v7.6.0, completing the comprehensive wrapper migration across the workflow.

Also applies to: 33-33, 47-47

workflow/rules/trimming.smk (1)

8-8: Wrapper interfaces unchanged between versions
The v7.6.0 wrappers for both sra-tools/fasterq-dump and fastp use the same parameters and default behavior as v5.0.2 and v6.2.0, so no breaking changes to interfaces or defaults. Confirm that ARM-compatible binaries are available for these new versions.

workflow/rules/fusion_calling.smk (3)

3-3: Wrapper bump looks good.

New Arriba meta wrapper version aligns with the repo-wide upgrade. No further action needed.


98-98: Wrapper bump looks good.

Updating to v7.6.0/bio/bcftools/sort stays consistent with the other upgrades.


116-116: Wrapper bump looks good.

bcftools concat now matches the v7.6.0 toolchain without requiring extra adjustments.

workflow/rules/ref.smk (7)

14-14: Wrapper bump looks good.

ensembl-sequence v7.6.0 is fine; inputs/params remain compatible.


26-26: Wrapper bump looks good.

samtools/faidx upgrade is straightforward.


59-59: Wrapper bump looks good.

ensembl-variation moves to v7.6.0 without downstream changes.


74-74: Wrapper bump looks good.

ensembl-annotation v7.6.0 aligns with the rest of the ref pipeline.


123-123: Wrapper bump looks good.

bwa/index v7.6.0 should behave identically here.


137-137: Wrapper bump looks good.

vep/cache upgrade keeps cache handling consistent.


148-148: Wrapper bump looks good.

vep/plugins v7.6.0 slots in cleanly.

workflow/rules/mapping.smk (11)

13-13: Wrapper bump looks good.

bwa/mem v7.6.0 keeps the mapping rule aligned with the other upgrades.


76-76: Wrapper bump looks good.

vg/giraffe upgrade matches the updated wrapper set.


107-107: Wrapper bump looks good.

samtools/fixmate v7.6.0 should behave the same here.


150-150: Wrapper bump looks good.

samtools/sort version bump is consistent with the rest of the workflow.


181-181: Wrapper bump looks good.

picard/markduplicates v7.6.0 is a straight upgrade.


217-217: Wrapper bump looks good.

Second bwa/mem invocation now uses the updated wrapper.


231-231: Wrapper bump looks good.

samtools/merge v7.6.0 requires no other changes.


243-243: Wrapper bump looks good.

samtools/sort upgrade for consensus reads aligns with earlier changes.


265-265: Wrapper bump looks good.

gatk/splitncigarreads v7.6.0 remains compatible.


288-288: Wrapper bump looks good.

gatk/baserecalibratorspark v7.6.0 matches the toolkit refresh.


311-311: Wrapper bump looks good.

gatk/applybqsr v7.6.0 reflects the coordinated upgrade.

extra="-a",
wrapper:
"v2.3.2/bio/bcftools/concat"
"v7.6.0/bio/bcftools/concat"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

LGTM! Wrapper version upgrade is consistent.

The bcftools concat wrapper has been upgraded to v7.6.0 in both gather_calls and merge_calls rules. Ensure that this version supports ARM architecture and is backwards compatible with your existing workflows.

Run the following script to verify the wrapper version exists and check for any ARM-specific compatibility notes:

Also applies to: 95-95


🏁 Script executed:

#!/bin/bash
# Description: Verify bcftools concat wrapper v7.6.0 exists and check ARM compatibility

# Check if the wrapper version exists in the Snakemake wrappers repository
curl -s "https://api.github.com/repos/snakemake/snakemake-wrappers/contents/bio/bcftools/concat" | \
  jq -r '.[].name' | grep -q "v7.6.0" && echo "✓ v7.6.0 exists" || echo "✗ v7.6.0 not found"

# Fetch the wrapper meta.yaml to check for platform compatibility
curl -s "https://raw.githubusercontent.com/snakemake/snakemake-wrappers/v7.6.0/bio/bcftools/concat/meta.yaml"

Length of output: 497


Use a valid bcftools concat wrapper version
v7.6.0 isn’t found in the Snakemake wrappers repository. Update both gather_calls and merge_calls rules (lines 65 & 95 in workflow/rules/filtering.smk) to a released version (e.g., v2.3.2).

🤖 Prompt for AI Agents
In workflow/rules/filtering.smk around lines 65 and 95, the bcftools concat
wrapper version "v7.6.0" is invalid; update both occurrences in the gather_calls
and merge_calls rules to a released wrapper version (for example replace
"v7.6.0/bio/bcftools/concat" with "v2.3.2/bio/bcftools/concat"). Ensure both
lines use the same valid version string and run a quick Snakemake dry-run to
confirm the wrapper is found.

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