Source: https://github.com/aipoch/medical-research-skills
When to Use
- Overlap and set operations on genomic intervals (e.g., peak/promoter overlap, variant annotation, shared-feature detection).
- Coverage track generation from interval-like inputs (e.g., ATAC-seq/ChIP-seq/RNA-seq coverage for visualization in genome browsers).
- Machine-learning preprocessing where genomic regions must be converted into discrete tokens (e.g., Transformer-style models, geniml-style pipelines).
- Reference sequence management and verification (e.g., subsequence retrieval, digest calculation aligned with GA4GH refget concepts).
- Single-cell fragment workflows (e.g., splitting fragments by barcode/cluster, scoring fragments against reference region sets).
Key Features
- Rust performance with low overhead; designed for large genomic datasets.
- Python bindings for integration into analysis notebooks/pipelines.
- CLI tooling for batch processing and shell workflows.
- Fast overlap detection via IGD-style indexing and interval operations.
- Coverage track generation (WIG/BigWig workflows via the
uniwig functionality).
- Genomic tokenizers for ML-ready representations of genomic regions.
- Reference sequence utilities (FASTA-backed stores, subsequence retrieval, digesting).
- Fragment processing and scoring for common single-cell genomics tasks.
Additional module-specific guidance may be available in: references/overlap.md, references/coverage.md, references/tokenizers.md, references/refget.md, references/python-api.md, and references/cli.md.
Dependencies
- Python package:
gtars (version not specified in the source document)
- Rust toolchain (for CLI install):
cargo (version not specified)
- Rust crate:
gtars = "0.1" (as shown in the example)
Example Usage
Python: overlap analysis workflow (runnable)
import gtars
# Load two region sets
peaks = gtars.RegionSet.from_bed("chip_peaks.bed")
promoters = gtars.RegionSet.from_bed("promoters.bed")
# Find overlaps (peaks that overlap promoters)
overlapping_peaks = peaks.filter_overlapping(promoters)
# Export results
overlapping_peaks.to_bed("peaks_in_promoters.bed")
CLI: generate coverage tracks (runnable)
# Generate WIG coverage at a given resolution
gtars uniwig generate --input atac_fragments.bed --output coverage.wig --resolution 10
# Generate BigWig coverage for genome browser visualization
gtars uniwig generate --input atac_fragments.bed --output coverage.bw --format bigwig
Python: ML tokenization (runnable)
import gtars
from gtars.tokenizers import TreeTokenizer
# Load regions and build a tokenizer from BED
regions = gtars.RegionSet.from_bed("training_peaks.bed")
tokenizer = TreeTokenizer.from_bed_file("training_peaks.bed")
# Tokenize each region into a discrete representation
tokens = [tokenizer.tokenize(r.chromosome, r.start, r.end) for r in regions]
print(tokens[:5])
Implementation Details
- Interval overlap & indexing: Overlap queries are designed around an IGD-like index to accelerate repeated interval queries (build once, query many). Typical parameters are chromosome, start, end; results are overlapping intervals or derived set operations.
- Coverage generation (
uniwig): Produces coverage tracks from interval/fragments input. Common knobs include output format (e.g., WIG vs BigWig) and resolution/binning for track granularity.
- Tokenization: Tokenizers (e.g.,
TreeTokenizer) map genomic coordinates to discrete tokens suitable for ML pipelines. Token vocabularies are commonly derived from a BED-defined training region universe.
- Reference sequence store: FASTA-backed reference access supports subsequence retrieval and digesting/verification workflows aligned with refget-style usage.
- Fragment workflows: Fragment splitting and scoring operate on fragment-like inputs (often TSV/BED-style) and can be used for barcode/cluster partitioning and enrichment-style scoring against reference region sets.
1---2name: gtars3description: A high-performance Rust toolkit (with Python bindings and a CLI) for genomic interval analysis; use it when you need fast overlap queries, coverage track generation, genomic tokenization for ML, reference sequence verification, or fragment processing.4license: MIT5---6> **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)78## When to Use910- **Overlap and set operations on genomic intervals** (e.g., peak/promoter overlap, variant annotation, shared-feature detection).11- **Coverage track generation** from interval-like inputs (e.g., ATAC-seq/ChIP-seq/RNA-seq coverage for visualization in genome browsers).12- **Machine-learning preprocessing** where genomic regions must be converted into discrete **tokens** (e.g., Transformer-style models, geniml-style pipelines).13- **Reference sequence management and verification** (e.g., subsequence retrieval, digest calculation aligned with GA4GH refget concepts).14- **Single-cell fragment workflows** (e.g., splitting fragments by barcode/cluster, scoring fragments against reference region sets).1516## Key Features1718- **Rust performance** with low overhead; designed for large genomic datasets.19- **Python bindings** for integration into analysis notebooks/pipelines.20- **CLI tooling** for batch processing and shell workflows.21- **Fast overlap detection** via IGD-style indexing and interval operations.22- **Coverage track generation** (WIG/BigWig workflows via the `uniwig` functionality).23- **Genomic tokenizers** for ML-ready representations of genomic regions.24- **Reference sequence utilities** (FASTA-backed stores, subsequence retrieval, digesting).25- **Fragment processing and scoring** for common single-cell genomics tasks.2627> Additional module-specific guidance may be available in: `references/overlap.md`, `references/coverage.md`, `references/tokenizers.md`, `references/refget.md`, `references/python-api.md`, and `references/cli.md`.2829## Dependencies3031- **Python package**: `gtars` (version not specified in the source document)32- **Rust toolchain** (for CLI install): `cargo` (version not specified)33- **Rust crate**: `gtars = "0.1"` (as shown in the example)3435## Example Usage3637### Python: overlap analysis workflow (runnable)3839```python40import gtars4142# Load two region sets43peaks = gtars.RegionSet.from_bed("chip_peaks.bed")44promoters = gtars.RegionSet.from_bed("promoters.bed")4546# Find overlaps (peaks that overlap promoters)47overlapping_peaks = peaks.filter_overlapping(promoters)4849# Export results50overlapping_peaks.to_bed("peaks_in_promoters.bed")51```5253### CLI: generate coverage tracks (runnable)5455```bash56# Generate WIG coverage at a given resolution57gtars uniwig generate --input atac_fragments.bed --output coverage.wig --resolution 105859# Generate BigWig coverage for genome browser visualization60gtars uniwig generate --input atac_fragments.bed --output coverage.bw --format bigwig61```6263### Python: ML tokenization (runnable)6465```python66import gtars67from gtars.tokenizers import TreeTokenizer6869# Load regions and build a tokenizer from BED70regions = gtars.RegionSet.from_bed("training_peaks.bed")71tokenizer = TreeTokenizer.from_bed_file("training_peaks.bed")7273# Tokenize each region into a discrete representation74tokens = [tokenizer.tokenize(r.chromosome, r.start, r.end) for r in regions]7576print(tokens[:5])77```7879## Implementation Details8081- **Interval overlap & indexing**: Overlap queries are designed around an IGD-like index to accelerate repeated interval queries (build once, query many). Typical parameters are chromosome, start, end; results are overlapping intervals or derived set operations.82- **Coverage generation (`uniwig`)**: Produces coverage tracks from interval/fragments input. Common knobs include output format (e.g., WIG vs BigWig) and resolution/binning for track granularity.83- **Tokenization**: Tokenizers (e.g., `TreeTokenizer`) map genomic coordinates to discrete tokens suitable for ML pipelines. Token vocabularies are commonly derived from a BED-defined training region universe.84- **Reference sequence store**: FASTA-backed reference access supports subsequence retrieval and digesting/verification workflows aligned with refget-style usage.85- **Fragment workflows**: Fragment splitting and scoring operate on fragment-like inputs (often TSV/BED-style) and can be used for barcode/cluster partitioning and enrichment-style scoring against reference region sets.