1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//! # gtars-tokenizers
//!
//! Wrapper around gtars-overlaprs for producing tokens for machine learning models.
//!
//! ## Purpose
//!
//! This module wraps the core overlap infrastructure from gtars-overlaprs to convert
//! genomic regions into vocabulary tokens for machine learning pipelines. It is
//! specifically designed for ML applications that need to represent genomic intervals
//! as discrete tokens.
//!
//! ## Design Philosophy
//!
//! All overlap computation is delegated to gtars-overlaprs. This module focuses on:
//! - Token vocabulary management
//! - Encoding/decoding strategies
//! - Integration with ML frameworks (HuggingFace, etc.)
//!
//! ## Use Cases
//!
//! - **Transformer Models**: Convert genomic regions to token sequences
//! - **Feature Extraction**: Represent intervals as discrete features for ML
//! - **Language Model Input**: Prepare genomic data for NLP-based models
//!
//! ## Main Components
//!
//! - **`Tokenizer`**: Maps regions to vocabulary tokens using overlap detection
//! - **`Universe`**: Vocabulary of genomic regions (peaks/intervals)
//!
//! ## Example
//!
//! ```rust
//! use std::path::Path;
//! use gtars_tokenizers::Tokenizer;
//! use gtars_core::models::Region;
//!
//! let tokenizer = Tokenizer::from_bed(Path::new("../tests/data/tokenizers/peaks.bed")).unwrap();
//!
//! let regions = vec![Region {
//! chr: "chr1".to_string(),
//! start: 100,
//! end: 200,
//! rest: None,
//! }];
//! let tokens = tokenizer.tokenize(®ions);
//! ```
//!
// re-export things
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
// contants