-
Notifications
You must be signed in to change notification settings - Fork 68
Adding support for additional peak-callers; GoPeaks, Epic2, SPAN #306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding support for additional peak-callers; GoPeaks, Epic2, SPAN #306
Conversation
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.
This PR is against the
|
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
|
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. |
PR checklist
nf-core lint).nextflow run . -profile test,docker --outdir <OUTDIR>).nextflow run . -profile debug,test,docker --outdir <OUTDIR>).docs/usage.mdis updated.docs/output.mdis updated.CHANGELOG.mdis updated.README.mdis updated (including new tool citations and authors/contributors).