Basic Introduction


ODIN is an HMM-based approach to detect and analyse differential peaks in pairs of ChIP-seq data. ODIN performs genomic signal processing, peak calling and p-value calculation in an integrated framework. ODIN is tailored for the comparison of two ChIP-seq signals without replicates. If you like to take replicates into account, please use THORFor further information about ODIN, please see

Manuel Allhoff, Kristin Seré, Heike Chauvistré, Qiong Lin, Martin Zenke and Ivan G. Costa. Detecting differential peaks in ChIP-seq signals with ODIN. Bioinformatics, 2014, DOI: 10.1093/bioinformatics/btu722.

Feel free to post your question in our googleGroup or write an e-mail:

Download & Installation

Download the latest version of ODIN. To install simply type:

sudo apt-get install python-numpy python-scipy zlib1g-dev python-setuptools; 
sudo python install --rgt-tool=ODIN

Further installation instructions are found here.


Download the example files. The following command finds differential peaks in the two bamfiles:

rgt-ODIN pu1-0h-5k.bam pu1-1h-5k.bam mm9.fa mm9.chrom.sizes

We do not use the ‘-m’ option to merge potential differential peaks. This is only recommended for histone data with broader ChIP-seq peak profiles.

To download the mouse genome mm9.fa, type

wget '*'
gunzip *gz
cat *fa > mm9.fa
rm md5sum.txt chr*fa README.txt

To download the chromosome size file mm9.chrom.sizes, follow these instructions. The file is contained in the example files as well.

ODIN creates several files. The file(s)

  • exp-pu1-0h-5k-pu1-1h-5k-gc-s*.bw give the postprocessed ChIP-seq signal (in bigWig format),
  • gives information about the setting,
  • exp-pu1-0h-5k-pu1-1h-5k-diffpeaks.bed describes the differential peaks in a proprietary BED format,
  • exp-pu1-0h-5k-pu1-1h-5k-uncor-diffpeaks.bed gives the same information like above, but without corrected p-value,
  • exp-pu1-0h-5k-pu1-1h-5k-diffpeaks.narrowPeak describes the differential peaks in narrowPeak format, and
  • exp-pu1-0h-5k-pu1-1h-5k-uncor-diffpeaks.narrowPeak gives the same information like above, but without corrected p-value.

Here, we provide a screenshot of the results based on IGV:


Please note that the *diffpeaks.bed file saves additional information in the 11th column (see BED format). It is a comma separated list with counts in the first sample, counts in the second sample and the calculated p-value. For downstream analysis we provide two tools:

  • split-ODIN: split the *diffpeaks.bed file in gaining and losing differential peaks and
  • filter-ODIN: filter *diffpeaks.bed by p-value threshold and write to stdout.


Here is the BibTeX entry for our paper:

  author = {Allhoff, Manuel and Seré, Kristin and Chauvistré, 
            Heike and Lin, Qiong and Zenke, Martin and Costa, Ivan G.}, 
  title = {{Detecting differential peaks in ChIP-seq signals with ODIN}},
  journal = {Bioinformatics},
  year = {2014},
  volume = {30}, 
  number = {24}, 
  pages = {3467-3475}, 
  doi = {10.1093/bioinformatics/btu722}, 
  URL = {}