Tools for analysis of nucleosome positioning experiments
Below is a repository of computational tools for analysis of nucleosome positioning experiments. This is part of NucPosDB, a manually curated database of experimental nucleosome maps in vivo, cell-free DNA (cfDNA) datasets and computational tools related to nucleosome positioning and cfDNA analysis. If your dataset or software is not mentioned please contact us to include it in the database.
Jump to: NucPosDB front page | stable nucleosomes of the human genome | experimental nucleosome maps in vivo | experimental cfDNA datasets | tools for analysis of nucleosome mapping experiments | tools for prediction of nucleosome maps from DNA sequence | tools for analysis of sequenced cfDNA
How to cite: Shtumpf M., Piroeva K.V., Agrawal S.P., Jacob D.R., Teif V.B. (2022). NucPosDB: a database of nucleosome positioning in vivo and nucleosomics of cell-free DNA. Chromosoma 131, 19-28 | open access article
Name & link | Description | Programming notes | Experiment type | Analysis type | Citation |
---|---|---|---|---|---|
BINOCh | Binding Inference from Nucleosome Occupancy Changes. 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 (Shirley Liu). | Python code | MNase-seq, single-end, paired-end | motif analysis, compare two conditions | He et al. 2010, Meyer et al. 2011 |
ChIPseqR | Nucleosome calls from ChIP-Seq experiments using Bioconductor R package. ChIPseqR takes as input mapped reads and outputs nucleosome centres and their scores. It allows producing basic statistical graphs using standard R functions. | R package, Bioconductor | ChIP-seq, MNase-seq, single-end | peak calling | Humburg et al., 2011 |
DANPOS, DANPOS2 | Dynamic Analysis of Nucleosome Positioning and Occupancy by Sequencing. 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. | Python code | ChIP-seq, MNase-seq, single-end, paired-end | peak calling, aggregate profiles, heat maps | Chen et al. 2013 |
deNOPA | Decoding nucleosome positions with ATAC-seq data at single-cell level | Python code | ATAC-seq | peak calling | Xu et al., 2021 |
Multiperiod | Mutperiod is a hybrid Python and R toolset for characterizing nucleosome mutational periodicities. | R code, Python | MNase-seq | mutations, periodicity | Morledge-Hampton and Wyrick, 2021 |
dnpatterntools | Dnpatterntools is a suite of software tools to analyze nucleosome positioning sequence patterns. These patterns are represented by distributions of frequencies of dinucleotide occurrences in a stack of DNA sequences that were bound by nucleosomes. | C++ code, R code, Galaxy package | MNase-seq | motif analysis, dinucleotide frequency, periodogram | (Pranckeviciene et al., 2020) |
Dimnp | Identifying regions with differential nucleosome occupancy in multiple samples using Chi-squared test. The input files contain mapped reads in Bowtie or BED format. | Python code, MATLAB code | Not specific | compare multiple conditions | Liu et al., 2017 |
iNPS | The authors developed an improved version of the NPC nucleosome peak calling algorithm, which they claim to outperform the latter. | Python code | MNase-seq, single-end, paired-end | peak calling | Chen et al. 2014 |
MLM | A Multi-Layer Method to analyze microarray nucleosome positioning data. MLM able to classify four kind of patterns: linkers, well positioned, delocalized and fused nucleosomes. | MATLAB code | microarrays | peak calling, pattern recognition | Di Gesu et al., 2009 |
NOrMAL | Accurate nucleosome positioning using a modified Gaussian mixture model. 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). | C++ code | MNase-seq, single-end, paired-end | peak calling, pattern recognition | Polishko et al. 2012 |
NPS | Nucleosome Positioning from Sequencing. This is a Python based nucleosome peak caller, which is recommended for the use together with software BINOCh by the same group (Shirley Liu). | Python code | MNase-seq, single-end | peak calling | Zhang et al. 2008 |
Nseq | A multithreaded Java application for finding positioned nucleosomes from sequencing data. 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. | Java code | MNase-seq, single-end | peak calling, nucleosome occupancy | Nellore et al. 2012 |
NucDe | Mapping nucleosome-linker boundaries. 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. | R package | ChIP-seq, MNase-seq, single-end | peak calling | Kuan et al. 2009 |
NucHunter | Inferring nucleosome positions with their histone mark annotation from ChIP-seq data. 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. | Java code | ChIP-seq, single-end, paired-end | peak calling | Mammana et al. 2013 |
NucleoATAC | A Python package for calling nucleosomes using ATAC-Seq data. 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. | Python code | ATAC-seq, paired-end | peak calling, nucleosome occupancy | Schep et al. 2015 |
Nucleosome Dynamics | A suite of programs integrated into a virtual research environment. Results are displayed in a genome browser, etc. The main analyses are performed with nucleR and NucDyn R packages. A single MNase-seq experiment can be analysed, obtaining: nucleosome calls with nucleR, their fuzzy/well-positioned classification and stiffness estimation, Nucleosome Free Regions location, classification of TSS according to −1 and +1 nucleosomes, and nucleosome phasing along the gene body. Comparing two MNase-seq experiments, NucDyn identifies hotspots of changes (SHIFT +, SHIFT -, INCLUSION and EVICTION), and reports a significance score of the difference in the coverage profiles at base-pair level. Summary statistics per gene as well as genome-wide are also reported for each calculation. | R package | MNase-seq, single-end, paired-end | peak calling, biophysical parameters, genome browser, compare two conditions | Buitrago et al., 2019 |
Nucleosome spacing estimation | MATLAB scripts for analyzing MNase-seq data in order to estimate nucleosome spacing by Răzvan Chereji | MATLAB code | MNase-seq | NRL calculation | Ocampo et al., 2019 |
NucleoFinder | A statistical approach for the detection of nucleosome positions. This is an R package, which addresses both the positional heterogeneity across cells and experimental biases. | R package | MNase-ChIP, MNase-seq, single-end, paired-end | peak calling | Becker et al. 2013 |
nucleR | Non-parametric nucleosome positioning. This is an R package included in the Bioconductor. 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. | R package, Bioconductor | MNase-seq, microarrays, paired-end | peak calling | Flores and Orozco 2011 |
NuCMap | R 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. | R package | chemical mapping | peak calling | Xi et al., 2014 |
NucPosSimulator | Deriving non-overlapping nucleosome configurations from MNase-seq data. 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. | Web installation, Python code | ChIP-seq, MNase-seq, single-end, paired-end | equilibrium nucleosome distribution | Schopflin et al., 2013 |
NucTools | A suite of Perl scripts as well as MATLAB- and R-based visualization programs for a nucleosome-centred downstream analysis of deep sequencing data. NucTools accounts for the continuous distribution of nucleosome occupancy. It allows calculations of nucleosome occupancy profiles averaged over several replicates, comparisons of nucleosome occupancy landscapes between different experimental conditions, and the estimation of the changes of integral chromatin properties such as the nucleosome repeat length. | Perl code, MATLAB code | ChIP-seq, MNase-seq, single-end, paired-end | NRL calculation, compare two conditions, aggregate profiles, heat maps, clustering | Vainshtein et al., 2017 |
NUCwave | Nucleosome occupancy maps from MNase-seq, ChIP-seq and CC-seq. 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. | Python code | ChIP-seq, MNase-seq, chemical mapping, paired-end | occupancy maps | Quintales et al. 2014 |
N-score, Tiling array analysis | Matlab codes for tiling array analysis, which are complemented by MLM and NucleR packages. | MATLAB code | microarrays | peak calling | Yuan et al., 2005, Yuan et al, 2008 |
PING, 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. The authors say that PING compares favorably to NPS and TemplateFilter in scalability, accuracy and robustness. | R package, Bioconductor | ChIP-seq, MNase-seq, single-end, paired-end | peak calling | Zhang et al., 2012, Woo et al., 2013 |
plot2DO | Plot 2D nucleosome occupancies around genomic features taking into account DNA fragment sizes | R package | MNase-seq, paired-end | visualisation, 2D plots, heatmaps | Beati and Chereji, 2020 |
PuFFIN | A parameter-free method to build genome-wide nucleosome maps from paired-end sequencing data. 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. 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 code | MNase-seq, paired-end | peak calling | Polishko et al. 2014 |
TemplateFilter | Source code and executable files for nucleosome positioning data processing (Weiner et al. 2010). | Perl code | MNase-seq, single-end | peak calling | Weiner et al. 2010 |
Vplot | A command-line tool for generating V-plot matrices from paired-end sequencing data | Rust code and prebuilt binary | MNase-seq, ATAC-seq, CUT&RUN, paired-end | visualisation, V-plots | Developed by Spencer Nystrom |
VplotR | R/Bioconductor package to generate DNA fragment density plots (V-plots). | R package, Bioconductor | MNase-seq, DNase-seq, ATAC-seq, paired-end | visualisation, V-plots | Serizay and Achinger, 2021 |
Name & link | Description | Programming notes | Experiment type | Analysis type | Citation |