Create a BedTool

First, follow the Installation instructions if you haven’t already done so to install both BEDTools and pybedtools.

Then import the pybedtools module and make a new BedTool. A BedTool object encapsulates all of the available BEDTools programs and makes them easier to use within Python. Most of the time when working with pybedtools you’ll be using BedTool objects. In general, a single BedTool object points to an interval file (BED, GFF, GTF, VCF, SAM, or BAM format).

>>> import pybedtools

>>> # use a BED file that ships with pybedtools...
>>> a = pybedtools.example_bedtool('a.bed')

>>> # ...or use your own by passing a filename
>>> a = pybedtools.BedTool('peaks.bed')

This documentation uses example files that ship with pybedtools. To access these files from their installation location, we use the example_bedtool() function. This is convenient because if you copy-paste the examples, they will work. When using the example_bedtool() function, the resulting BedTool object will point to the corresponding file in the test/data directory of your pybedtools installation. If you would rather learn using your own files, just pass the filename to a new BedTool, like the above example.

You can use any file that BEDTools supports – this includes BED, VCF, GFF, and gzipped versions of any of these. See Creating a BedTool for more on the different ways of creating a BedTool, including from iterators and directly from a string.

Now, let’s see how to do a common task performed on BED files: intersections.