I have a few .bed files from different companies offering exome sequencing kits.
I would like to have a file that summarizes all target regions for all these kits. The .bed file have a basic structure composed for three columns (chr#, Start, End).
I would like to get an output table that shows which genomic regions are covered only by one of these kits, and which regions are covered by more than one (and which ones). The best way to illustrate this is by an example:
BED file 1
chr# | Start | End |
---|---|---|
1 | 100 | 300 |
BED file 2
chr# | Start | End |
---|---|---|
1 | 150 | 350 |
BED file 3
chr# | Start | End |
---|---|---|
1 | 80 | 200 |
From these files, I created a dataframe containing all target regions, and ordered it by chr# and Start coordinates. This is what the resulting dataframe looks like:
I would like to merge and intersect the files for an output that divides the regions into subregions based on overlap between the input files. It should looks something like this:
chr# | Start | End | Kit 1 | Kit 2 | Kit 3 |
---|---|---|---|---|---|
1 | 80 | 100 | 0 | 0 | 1 |
1 | 100 | 150 | 1 | 0 | 1 |
1 | 150 | 200 | 1 | 1 | 1 |
1 | 200 | 300 | 1 | 1 | 0 |
1 | 300 | 350 | 0 | 1 | 0 |
I know there may be such a function on GRanges from Bioconductor, but I am not familiar with the library and its functions.
Any help would be appreciated.
UPDATE
Using
multiIntersectBed
from bedtoolsThere's a Python interface too:
http://daler.github.io/pybedtools/