bedtools

Analyze and manipulate genomic interval data

TLDR

Intersect genomic intervals
$ bedtools intersect -a [file1.bed] -b [file2.bed]
Merge overlapping intervals
$ bedtools merge -i [sorted.bed]
Sort BED file
$ bedtools sort -i [unsorted.bed]
Get coverage
$ bedtools coverage -a [regions.bed] -b [reads.bam]
Subtract intervals
$ bedtools subtract -a [all.bed] -b [exclude.bed]
Find closest features
$ bedtools closest -a [query.bed] -b [reference.bed]
Extract FASTA sequences for intervals
$ bedtools getfasta -fi [genome.fa] -bed [regions.bed]

SYNOPSIS

bedtools command [options]

DESCRIPTION

bedtools is a suite of utilities for analyzing genomic intervals in BED, BAM, VCF, and GFF formats. It provides fast operations on genome annotations including intersection, merging, counting, and statistical analysis.The tool is essential for genomics research and comparative analysis of genomic features.

COMMANDS

intersect

Find overlapping intervals
merge
Combine overlapping intervals
coverage
Compute coverage statistics
subtract
Remove overlapping intervals
closest
Find nearest intervals
window
Find nearby intervals within window
sort
Sort BED/GFF/VCF files
genomecov
Compute genome-wide coverage
getfasta
Extract sequences from FASTA
bamtobed
Convert BAM to BED
slop
Extend intervals by a specified number of bases
flank
Create flanking intervals for each feature
complement
Return intervals not covered by features

COMMON PARAMETERS

-a file

First input file
-b file
Second input file
-wa
Write original A entry
-wb
Write original B entry
-f fraction
Minimum overlap fraction
-v
Report A entries without B overlap
-s
Require same strand
-S
Require opposite strand
-sorted
Use sorted algorithm for large files (lower memory)
-i file
Input file (used by merge, sort, etc.)

WORKFLOW

$ # Find genes overlapping SNPs
bedtools intersect -a genes.bed -b snps.bed

# Merge nearby features
bedtools merge -i features.bed -d 100

# Count reads in regions
bedtools coverage -a regions.bed -b reads.bam

# Extract promoter regions
bedtools flank -i genes.bed -g genome.txt -l 2000 -r 0

INSTALL

sudo apt install bedtools
yay -S bedtools
brew install bedtools
nix profile install nixpkgs#bedtools

CAVEATS

Some operations require sorted input. Large files consume significant memory. Coordinate systems (0-based vs 1-based) can cause off-by-one errors. Performance depends on file size and operation.

HISTORY

bedtools was created by Aaron Quinlan and Ira Hall, first released in 2010 as a comprehensive toolkit for genomic interval analysis.

SEE ALSO

samtools(1), vcftools(1), bcftools(1)