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
bedtools
withbedops
?hi aaronquinlan, i am trying to minimize the amount of dependencies of our pipelines. but it seems like we will continue to use both