I am performing a protocol that is very similar to ChIP-seq, except that it uses restriction enzyme digestion (with a cocktail of 4-5 restriction enzymes) rather than regularly-spaced MNase digestion or sonication. This presents some difficultly when peak calling, as the peaks will be a mixture of sizes ranging from 100-2000 bp. I've found that regardless of the peak caller I use, macs2, HOMER, sicer etc., the peaks that are called in these programs sometimes can't possibly be accurate - if I generate a BED file with all the restriction enzyme sites I used throughout the genome, I can see that many peaks don't extend to the RE site, or there may be 3-4 peaks called within one "chunk" that I know can physically only be one peak. So far, HOMER with the -style histone flag does the best job, but even that is really suboptimal.
Some peak calling algorithms allow you to extend the peaks out by a certain number of basepairs on either side. My question is, is there a way that you can extend/shrink peaks to known digest sites? In other words, can I provide a BED file of the digest sites I used, then tell the peak caller "when you call a peak, make sure the left and right boundary falls at the closest location in the provided BED file." Is this possible?
For reference, I've included two pictures here, one where the peak caller does a decent job, and one not so much. The gray track is the BAM file, purple is the peak called, and blue track at the bottom are the RE digest sites.