MoDIFI is a Nextflow DSL2 pipeline that integrates ATAC-seq, RNA-seq, Hi-C, and promoter annotations to calculate Multi-omics Differential Inference for Functional Interpretation (MoDIFI) scores. It supports modular workflows, containerized execution (Docker/Singularity), and flexible re-analysis with customizable sample pairings.
- End-to-end integration of ATAC-seq, RNA-seq, Hi-C, and promoter data
- Modular workflow in Nextflow DSL2
- Portable with Docker or Singularity containers
- Automatic generation of SampleInfo.tsv and SamplePair.tsv
- Re-analysis workflow recalMoDIFI to test new combinations without rerunning the full pipeline
- Nextflow ≥ 22.10
- Java ≥ 11
- Docker or Singularity/Apptainer (recommended for HPC)
Clone the repository:
git clone https://github.com/your-org/MoDIFI.git cd MoDIFI
MoDIFI/ ├─ modifi.nf # Main Nextflow pipeline ├─ modifi_example.config # Configuration file ├─ modifi.sif # Singularity container ├─ scripts/ # Pipeline scripts │ ├─ *.py # Python scripts │ └─ *.R # R scripts ├─ resources/ │ ├─ SampleInfo.tsv # Auto-generated │ ├─ SamplePair.tsv # Auto-generated (editable for recalMoDIFI) │ ├─ hg38_annotation.txt # Gene annotation file required for running RNA-seq DESeq2 analysis. │ ├─ Gnocchi.tsv # prior information │ └─ Promoter/Promoter.tsv # External promoter annotations │ └─ imr90/ │ ├─ atac_seq/ │ │ ├─ *.bed.gz or *.narrowPeak.gz │ │ └─ bam/*.bam │ ├─ hic/*.bedpe.gz # Hi-C data │ └─ rna_seq/*.genes.results or *.tsv files └─ output/
Update the input paths and parameters in dact.config .
- Peak files:
ATACBEDFile= absolute path
- BAM files:
ATACBAMFiles= absolute path
- Label for DESeq2 outputs:
ATACSeq='ATACseq'
- Filter out low quality variants:
atac_minQ=5
- The column used for merging:
ATAC_Key_col='Region'
- Gene expression files:
RNACountFile= absolute path
- Label for DESeq2 outputs:
RRNASeq='RNAseq'
- The column of gene IDs for DEseq anlysis:
RNA_Key_col='GeneID'
- The column of RNA counts for DEseq anlysis:
RNA_quantification='expected_count'
- HiC files:
HiCLoopsFile= absolute path
- Gene annotation:
RNA_ANN_File="${resources_dir}/hg38_annotation.txt" - Prior information:
prior_file="${resources_dir}/Gnocchi.tsv" - Prior information:
SamplePair = "${resources_dir}/SamplePair.tsv"
- ATAC-seq peaks linked with promoters
- ATAC-promoter links intersected with Hi-C loops
- RNA-seq fold changes mapped to gene IDs in loops
- Normalization restricted to Hi-C regions
- MoDIFI calculation
Run the full workflow:
bash nextflow run modifi.nf -c modifi_example.config
- ATAC_counts.txt, ATAC_ann.txt, ATAC_conds.txt
- RNA_counts.txt, RNA_ann.txt, RNA_conds.txt
- Comparison results: [Target]vs[Reference]_ATACseq.txt, [Target]vs[Reference]_RNAseq.txt, etc.
- MoDIFI results: MoDIFI_all_[Target]vs[Reference].tsv, MoDIFI_loop_[Target]vs[Reference].tsv
After the full run, edit resources/SamplePair.tsv to define new Target–Reference comparisons.
Example:
| Target | Reference | Check |
|---|---|---|
| GM12878 | IMR90 | PASS |
Then run:
nextflow run modifi.nf -c modifi_example.config -entry recalMoDIFI