grit sort
Sort a BED file by chromosome and position.
Usage
grit sort [OPTIONS] -i <INPUT>
Options
| Option | Description |
|---|---|
-i, --input <FILE> | Input BED file (use - for stdin) |
-g, --genome <FILE> | 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 |
Examples
Basic sorting
# Sort by chromosome and position
grit sort -i unsorted.bed > sorted.bed
# Sort from stdin
cat unsorted.bed | grit sort -i - > sorted.bed
Sort by interval size
# Sort by size, smallest first
grit sort -i regions.bed --sizeA > by_size_asc.bed
# Sort by size, largest first
grit sort -i regions.bed --sizeD > by_size_desc.bed
Custom chromosome order
# Use genome file for chromosome ordering
grit sort -i regions.bed -g genome.txt > sorted.bed
genome.txt format:
chr1 248956422
chr2 242193529
chr3 198295559
...
Reverse sort
# Reverse the default sort order
grit sort -i regions.bed -r > reversed.bed
Output
Output is a sorted BED file with the same columns as input.
Input:
chr2 100 200
chr1 500 600
chr1 100 200
Output:
chr1 100 200
chr1 500 600
chr2 100 200
Performance
- Uses parallel sorting for large files
- Memory usage: O(n) where n = number of intervals