Skip to content

Conversation

@dhusmann
Copy link

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/cutandrun branch on the nf-core/test-datasets repository.
  • Make sure your code lints (nf-core 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).

dhusmann and others added 12 commits December 30, 2025 00:30
Added a comprehensive specification for the Peak-Calling Extension Module, detailing peak-calling variants, input requirements, execution model, output structure, and QC metrics.
ChIPBinner documentation updated to enhance clarity and structure, including sections on algorithmic differences, use cases, normalization options, and workflow extensions.
Updated ChIPBinner documentation with links to repositories and additional database information.
This spec covers TODOs 1-3 from the extension roadmap:

1. Samplesheet extension with 'condition' column for experimental design
   (WT/KO, Treatment/Control) with backward compatibility

2. Group-specific handling for normalization and peak calling:
   - Condition-aware spike-in normalization
   - Control pairing respecting conditions
   - Extended consensus peak modes (by condition, group×condition)

3. Support for additional peak callers:
   - GoPeaks (narrow + broad variants)
   - epic2 (200bp, 150bp, 25bp window variants)
   - SPAN/omnipeaks (default + stringent variants)
   - MACS2 explicit narrow/broad support

Includes implementation plan, parameter definitions, output structure,
DiffBind samplesheet generation, testing strategy, and migration guide.
@github-actions
Copy link

This PR is against the master branch ❌

  • Do not close this PR
  • Click Edit and change the base to dev
  • This CI test will remain failed until you push a new commit

Hi @dhusmann,

It looks like this pull-request is has been made against the dhusmann/cutandrun master branch.
The master branch on nf-core repositories should always contain code from the latest release.
Because of this, PRs to master are only allowed if they come from the dhusmann/cutandrun dev branch.

You do not need to close this PR, you can change the target branch to dev by clicking the "Edit" button at the top of this page.
Note that even after this, the test will continue to show as failing until you push a new commit.

Thanks again for your contribution!

This implements the specification from SPEC_ConditionAwarePeakCalling.md:

## Samplesheet Extension (TODO 1)
- Add optional 'condition' column to samplesheet format (backward compatible)
- Update check_samplesheet.py to parse and validate condition field
- Update input_check.nf to propagate meta.condition through pipeline

## Group-Specific Processing (TODO 2)
- Add normalisation_scope parameter (global, condition, group, group_condition)
- Add condition_aware_norm parameter for differential analysis workflows
- Add pool_controls_by parameter for IgG pooling strategy
- Extend consensus_peak_mode to support condition and group_condition
- Create pool_controls.nf subworkflow for merging IgG BAMs by condition

## Additional Peak Callers (TODO 3)
- Add GoPeaks module (narrow and broad variants)
- Add epic2 module (200bp, 150bp, 25bp window variants)
- Add SPAN module (default and stringent variants)
- Add MACS2 explicit narrow/broad mode support
- Update workflow to orchestrate all new peak callers
- Add configuration for all new caller variants in modules.config
- Update parameter schema with new peak caller options

## Testing
- Add test_condition.config test profile
- Add samplesheet_test_condition.csv test samplesheet
@dhusmann dhusmann marked this pull request as draft December 30, 2025 17:43
@dhusmann
Copy link
Author

Closing this PR - it was submitted in error to the wrong repository. This work was intended for testing in my personal fork before formal submission.

@dhusmann dhusmann closed this Dec 30, 2025
@dhusmann dhusmann changed the title Claude/review pipeline peak calling dgyu o Adding support for additional peak-callers; GoPeaks, Epic2, SPAN Dec 30, 2025
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