This repository implements a benchmarking framework for chromatin module (CM) detection methods. It is designed to enable systematic comparison of CM detection methods (PHM, Clomics, VCMtools) across bulk and single-cell modalities, with unified downstream analyses including aCM computation, cmQTL analysis, and visualization.
The work was carried out as a semester project (September–December 2025) at the Deplancke Lab of Systems Biology and Genetics, EPFL.
This repository is a derived implementation of the Chromatin_modules pipeline developed in the Deplancke Lab by Olga Pushkarev: https://github.com/DeplanckeLab/Chromatin_modules
Relative to the original framework, it introduces a benchmarking-oriented structure with explicit execution ordering, standardized outputs, and parallelized method- and modality-specific workflows.
Scientific ownership of the original pipeline and methodological concepts remains with its original authors.
- Scripts and notebooks are numerically indexed (
1.0,2.0.2,4.0, etc.). - Indices define execution order and dependencies.
- Scripts sharing the same index within a directory are independent and can be run in parallel.
Visualization requires special handling:
4.0_calculate_peak_corr.shmust be run per region of interest (ROI),- and re-run for each modality or method to be visualized downstream.
Olga Pushkarev, PhD, Deplancke Lab: original pipeline design and methodological framework
Vincent Gardeux, Senior Scientist, Deplancke Lab: supervision
Elisa Bugani, PhD Candidate, Deplancke Lab: supervision
A high-level overview of the pipeline is shown below.
A fully detailed per-script flowchart is available under PIPELINE_DETAILED.md
flowchart TD
subgraph S0["0. Format & Normalize"]
S0_OUT[("Normalized counts<br/>+ peak BED files")]
end
subgraph S1["1. Call CMs"]
S1_IN(("Input"))
S1_CLO["Clomics"]
S1_PHM["PHM"]
S1_VCM["VCMtools"]
S1_OUT[("CM tracks & content<br/>(all methods)")]
S1_IN --> S1_CLO & S1_PHM & S1_VCM --> S1_OUT
end
subgraph S2["2. Compare CMs"]
S2_METH["Per Method<br/>(original)"]
S2_MOD["Per Modality<br/>(bulk vs sc)"]
S2_OUT[("Overlap scores<br/>+ similarity stats")]
S2_METH --> S2_OUT
S2_MOD --> S2_OUT
end
subgraph S3["3. Compute aCMs"]
S3_SCORES["aCM scores<br/>(clomics | phm | vcmtools)"]
S3_SIGN["Sign correction"]
S3_OUT[("Corrected aCM matrix<br/>+ cmQTLs")]
S3_SCORES --> S3_SIGN --> S3_OUT
end
subgraph S4["4. Visualize CMs & ..."]
S4_ROI{{"For each ROI"}}
S4_CORR["4.0_calculate_peak_corr.sh"]
S4_BRANCH_M["Per Method"]
S4_BRANCH_D["Per Modality"]
S4_VIZ["Correlation & track plots"]
S4_ROI --> S4_CORR
S4_CORR --> S4_BRANCH_M & S4_BRANCH_D --> S4_VIZ
end
subgraph S5["5. aCM & cmQTL Analysis"]
S5_CMP["Compare QTLs<br/>across methods"]
S5_ANA["cmQTL annotation<br/>& interpretation"]
S5_CMP --> S5_ANA
end
S0_OUT --> S1_IN
S1_OUT --> S2_METH & S2_MOD
S1_OUT --> S3_SCORES
S0_OUT --> S4_ROI
S1_OUT --> S4_CORR
S3_OUT --> S5_CMP
S4_VIZ -.-> S5_ANA
S2_OUT --> FINAL1[("CM Comparison Reports")]
S5_ANA --> FINAL2[("cmQTL Results")]
S4_VIZ --> FINAL3[("Visualizations")]