sort
Description
Sort a BED file by chromosome and position. Uses radix sort with memory-mapped I/O for optimal performance.
Example Input
cat unsorted.bed
chr2 100 200 feat1
chr1 300 400 feat2
chr1 100 200 feat3
chr3 50 150 feat4
chr1 250 350 feat5
Command
grit sort -i unsorted.bed
Output
chr1 100 200 feat3
chr1 250 350 feat5
chr1 300 400 feat2
chr2 100 200 feat1
chr3 50 150 feat4
Options
| Flag | Description |
|---|---|
-i, --input | Input BED file (use - for stdin) |
-g, --genome | Genome file for chromosome ordering |
--sizeA | Sort by interval size (ascending) |
--sizeD | Sort by interval size (descending) |
-r, --reverse | Reverse the sort order |
--chrThenSizeA | Sort by chromosome name only |
--stats | Print sorting statistics to stderr |
Sorting by Genome Order
grit sort -i unsorted.bed -g genome.txt
Reverse Sort
grit sort -i unsorted.bed --reverse
Notes
- 5.4x faster than bedtools sort (10M intervals benchmark)
- Uses radix sort with memory-mapped I/O for optimal performance
- Output is deterministic for identical inputs