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 intervalsmerge
Combine overlapping intervalscoverage
Compute coverage statisticssubtract
Remove overlapping intervalsclosest
Find nearest intervalswindow
Find nearby intervals within windowsort
Sort BED/GFF/VCF filesgenomecov
Compute genome-wide coveragegetfasta
Extract sequences from FASTAbamtobed
Convert BAM to BEDslop
Extend intervals by a specified number of basesflank
Create flanking intervals for each featurecomplement
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
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
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.
