Dynamic Programming Algorithm for Peak Detection in ChIP-Seq Data

A quadratic time dynamic programming algorithm can be used to compute an approximate solution to the problem of finding the most likely changepoints with respect to the Poisson likelihood, subject to a constraint on the number of segments, and the changes which must alternate: up, down, up, down, etc. For more info read < http://proceedings.mlr.press/v37/hocking15.html> "PeakSeg: constrained optimal segmentation and supervised penalty learning for peak detection in count data" by TD Hocking et al, proceedings of ICML2015.



remove binSum.

add cDPA_interface.


depend on penaltyLearning, delete related code in this pkg.


Suggest ggplot2 >= 2.0, new geom_tallrect implementation.

cDPA C code now computes total Poisson loss which is consistent with the PoissonLoss R function, and with other packages (Segmentor3IsBack, coseg). It has been significantly cleaned up (duplication removed).


move joint segmentation code to PeakSegJoint package.


multiSampleSegZoom C function.

R implementation of multiSampleSegSome.


Scripts up to Step4 under exec/


Error checking in binSum.

chrom and sample ratio features in exec/Step1.R


multiSampleSeg Optimal and Heuristic C code.


clusterPeaks C code.

LinDynProg.c renamed to cDPA to be consistent with paper.


Do not use GSL headers for positive infinity cost; instead use INFINITY defined in "math.h"


fista.R interval regression code.

binSum C code sets count to -1 for profiles that are too short for the number of bins requested.


binSum C code for quickly computing sums over bins of constant size.


warning when user requests X peaks but that model is infeasible.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


2017.08.15 by Toby Dylan Hocking, 4 years ago

Browse source code at https://github.com/cran/PeakSegDP

Authors: Toby Dylan Hocking , Guillem Rigaill

Documentation:   PDF Manual  

GPL-3 license

Suggests ggplot2, testthat, penaltyLearning

Suggested by PeakSegOptimal.

See at CRAN