Version 2.4.3 of the bedops tool now offers --chop and --stagger functions to melt input regions into non-overlapping, adjacent or overlapping windows.
For instance, given input.bed:
chr1    1000000 1500000
chr3    500000  900000
You can use --chop 250000 to get the desired adjacent windows:
$ bedops --chop 250000 input.bed 
chr1    1000000 1250000
chr1    1250000 1500000
chr3    500000  750000
chr3    750000  900000
Use of --stagger will step the window from the initial start position by the specified amount, keeping within bounds. Here's an example that makes overlapping windows:
$ bedops --chop 250000 --stagger 100000 input.bed
chr1    1000000    1250000
chr1    1100000    1350000
chr1    1200000    1450000
chr1    1300000    1500000
chr1    1400000    1500000
chr3    500000    750000
chr3    600000    850000
chr3    700000    900000
chr3    800000    900000
The stagger value can be larger than the chop to create non-overlapping windows, where all output elements fall within the bounds of the input elements:
$ bedops --chop 50000 --stagger 100000 input.bed
chr1    1000000    1050000
chr1    1100000    1150000
chr1    1200000    1250000
chr1    1300000    1350000
chr1    1400000    1450000
chr3    500000    550000
chr3    600000    650000
chr3    700000    750000
chr3    800000    850000
                    
                
                 
Does it matter? The two tools complement each other pretty well. Why not just use the windows created by
bedtoolswithbedops?hi aaronquinlan, i am trying to minimize the amount of dependencies of our pipelines. but it seems like we will continue to use both