grit merge
Merge overlapping intervals into single intervals.
Usage
grit merge [OPTIONS] -i <INPUT>
Options
| Option | Description |
|---|---|
-i, --input <FILE> | Input BED file (use - for stdin) |
-d, --distance <N> | Maximum distance between intervals to merge (default: 0) |
-s, --strand | Require strand to match for merging |
-c, --count | Report count of merged intervals |
--in-memory | Use in-memory mode (handles unsorted input) |
--assume-sorted | Skip sorted validation (faster) |
-g, --genome <FILE> | Genome file for chromosome order validation |
--stats | Print streaming statistics to stderr |
Examples
Basic merge
# Merge overlapping intervals
grit merge -i regions.bed > merged.bed
# With pre-sorted input (faster)
grit merge -i sorted.bed --assume-sorted > merged.bed
Merge nearby intervals
# Merge intervals within 100bp of each other
grit merge -i regions.bed -d 100 > merged.bed
# Merge intervals within 1kb
grit merge -i regions.bed -d 1000 > merged.bed
Strand-specific merge
# Only merge intervals on the same strand
grit merge -i stranded.bed -s > merged.bed
Count merged intervals
# Report how many intervals were merged
grit merge -i regions.bed -c > merged_with_counts.bed
Handle unsorted input
# Automatically sort and merge (uses more memory)
grit merge -i unsorted.bed --in-memory > merged.bed
Output
Input:
chr1 100 200
chr1 150 250
chr1 300 400
Output (basic):
chr1 100 250
chr1 300 400
Output (with -c):
chr1 100 250 2
chr1 300 400 1
Performance
- Streaming mode (default): O(k) memory, requires sorted input
- In-memory mode: O(n) memory, handles unsorted input
# Fastest for sorted input
grit merge -i sorted.bed --assume-sorted