Software to analyse nucleosome positioning experiments:

*How to cite: Teif V.B. (2016). Nucleosome positioning: resources and tools online. Briefings in Bioinformatics 17, 745-757.  | Published version | Author’s PDF

BINOCh: Binding Inference from Nucleosome Occupancy Changes (He et al. 2010; Meyer et al. 2011). This is a Python package, which allows identification of putative enhancers by comparing nucleosome occupancy in two cell conditions and analyzing DNA motifs near nucleosome centres and edges. It requires as input sorted BED files and relies for peak calling on the software NPC developed by the same group. Applicable to single- and paired-end sequencing.

CAM: A Quality Control Pipeline For MNase-Seq Data. CAM uses either raw sequencing file or aligned file as an input (supporting both paired end and single end data) and provides multiple informative QC measurements and nucleosome organization profiles on potentially functionally related regions for a given MNase-seq dataset. CAM also includes 268 historical MNase-seq datasets from human and mouse as a reference atlas.

ChIPseqR: Analysis of ChIP-Seq experiments using R; included in the Bioconductor R package (Humburg et al. 2011). ChIPseqR takes as input mapped reads and outputs nucleosome centres and their scores. It allows producing basic statistical graphs using standard R functions. Applicable to single-end sequencing.

DANPOS and DANPOS2: Dynamic Analysis of Nucleosome Positioning and Occupancy by Sequencing (Chen et al. 2013). This is a Python package, which reports changes in location, fuzziness, or occupancy for a given nucleosome or any genomic region. It allows generating aggregate profile plots and heatmaps for subsets of genomic regions. Applicable to paired-end sequencing.

Dimnp: identifying differential nucleosome regions in multiple samples. The method is described in (Liu et al., 2017). The main difference from previous methods is the possibility to work with more than two experimental conditions.

DiNuP: A systematic approach to identify regions of differential nucleosome positioning (Fu et al. 2012). DiNuP compares the nucleosome profiles generated by high-throughput sequencing between different conditions. It provides a statistical P-value for each identified differential regions and empirically estimates the False Discovery Rate (FDR) as a cutoff when two samples have different sequencing depths and differentiate differential regions from the background noise.

DPNuc: Identifying Nucleosome Positions Based on the Dirichlet Process Mixture Model (Chen et al., 2015). In this method, Markov chain Monte Carlo (MCMC) simulations are employed to determine the mixture model with no need of prior knowledge about nucleosomes. The authors claim that this approach can more reliably detect the size distribution of nucleosomes. Web server address not indicated (?).

iNPS: The authors developed an improved version of the NPC nucleosome peak calling algorithm, which they claim to outperform the latter (Chen et al. 2014). Applicable to paired-end sequencing.

MLM: A Multi-Layer Method to analyze microarray nucleosome positioning data. A Matlab code is available for download (Di Gesu et al. 2009).

NOrMAL: Accurate nucleosome positioning using a modified Gaussian mixture model.  C++ code and executables are provided for download (Polishko et al. 2012). It is a command line tool designed to resolve overlapping nucleosomes and extract extra information (“fuzziness”, probability, etc.) of nucleosome placement. Newer software called PuFFIN developed by the same authors is claimed to outperform NOrMAL (see below). Applicable to paired-end sequencing.

NPS: Nucleosome Positioning from Sequencing (Zhang et al. 2008). This is a Python based nucleosome peak caller, which is recommended for the use together with software BINOCh from the same group (see below). Applicable to single-end NGS sequencing.

NSeq: a multithreaded Java application for finding positioned nucleosomes from sequencing data (Nellore et al. 2012). NSeq includes a user-friendly graphical interface written in Java. It computes FDRs for candidate nucleosomes from Monte Carlo simulations, plots nucleosome coverage and centers, and exploits the availability of multiple processor cores by parallelizing its computations. NSeq analyzes alignment data in BAM, SAM, or BED format. It assumes that the data are single-end. 

NucDe: Mapping nucleosome-linker boundaries (Kuan et al. 2009). This is an R package mapping nucleosome-linker boundaries from both MNase-ChIP-seq and MNase-seq data using a non-homogeneous hidden-state model based on first order differences of experimental data along genomic coordinates. Applicable to single-end sequencing.

NucHunter: Inferring nucleosome positions with their histone mark annotation from ChIP-seq data (Mammana et al. 2013). It uses data from histone ChIP-seq experiments to infer positioned nucleosomes, and can predict positioned nucleosomes from one or multiple BAM files, e.g. taking into account a control experiment. Applicable to paired-end sequencing.

NucleoATAC: A Python package for calling nucleosomes using ATAC-Seq data (Schep et al. 2015). Requires as input sorted aligned paired-end reads in BAM format, FASTA file with genome reference and sorted bed file with non-overlapping regions for which nucleosome analysis is to be performed. These regions will generally be broad open-chromatin regions. Outputs nucleosome calls and occupancy. Applicable to paired-end sequencing.

NucleoFinder: A statistical approach for the detection of nucleosome positions (Becker et al. 2013). This is an R package, which addresses both the positional heterogeneity across cells and experimental biases. Applicable to paired-end sequencing.

nucleR: Non-parametric nucleosome positioning. This is an R package included in the Bioconductor (Flores and Orozco 2011). It allows treating both NGS and Tiling Arrays experiments. The software is integrated with standard genomics R packages and allows for in situ visualization as well as to export results to common genome browser formats. Applicable to paired-end sequencing.

NucMapR package for chemical mapping of nucleosome positioning. The algorithm is described in Xi et al., 2014. Used in Brogaard et al., 2012; Voong et al., 2016.

NucPosSimulator:  Deriving non-overlapping nucleosome configurations from MNase-seq data (Schopflin et al. 2013). It utilizes a Monte Carlo approach to determine the most probable nucleosome position in overlapping and ambiguous DNA reads from high through-put sequencing experiments. In contrast to peak-calling procedures NucPosSimulator probes many possible solutions, and can apply a Simulated Annealing scheme, a heuristic optimization method, which finds an optimal solution for complex positioning problems. Applicable to paired-end sequencing.

NucTools: analysis of chromatin feature occupancy profiles from high-throughput sequencing data. The method and its applications are described in (Vainshtein et al., 2017).

NUCwave: Nucleosome occupancy maps from MNase-seq, ChIP-seq and CC-seq  (Quintales et al. 2014). It is a Python package which generates nucleosome occupancy maps from MNase-seq, ChIP-seq and chemical cleavage (CC-seq), both for single-end and paired-end reads. It requires as input files in a Bowtie output format. Applicable to paired-end sequencing.

Perl scripts to analyze MNase-seq experiments (Cole et al. 2012). The authors have listed the code in supplementary materials of their publication, which is useful for other developers.

PING and PING 2.0: Probabilistic inference for nucleosome positioning with MNase-based or sonicated short-read data. An R package for nucleosome peak calling integrated in the Bioconductor (Zhang et al. 2012; Woo et al. 2013). The authors say that PING compares favorably to NPS and TemplateFilter in scalability, accuracy and robustness.

PuFFIN: A parameter-free method to build genome-wide nucleosome maps from paired-end sequencing data (Polishko et al. 2014). PuFFIN is a command line tool for accurate placing of the nucleosomes based on the pair-end reads. It was designed to place non-overlapping nucleosomes using extra length information present in pair-end data-sets. PuFFIN is written in Python, and released in 2014. It outperforms NOrMAL previously released by the same authors, and is claimed by the authors to outperform also NSeq, NPS and Template Filtering. It returns nucleosome positions, the width of the peak, confidence score and fuzziness. Applicable to paired-end sequencing.

Python scripts for the study “Cell-free DNA Comprises an In Vivo Nucleosome Footprint that Informs Its Tissues-Of-Origin” (Snyder et al., 2016).

TemplateFilter: Perl source code and executable files for nucleosome positioning data processing (Weiner et al. 2010). Applicable to single-end NGS sequencing.

Tiling array analysis (Yuan et al. 2005). A Matlab code, which is complemented by MLM and NucleR packages (see below). Applicable to tiling microarray experiments for nucleosome positioning.

Skyline nucleosome browser: a web-based application for the identification of nucleosome peaks over the genome (Belch et al. 2010).