[ PROMPT_NODE_26666 ]
tokenizers
[ SKILL_DOCUMENTATION ]
# 基因组分词器 (Tokenizers)
分词器将基因组区域转换为机器学习应用中的离散标记,特别适用于训练基因组深度学习模型。
## Python API
### 创建分词器
从各种来源加载分词器配置:
python
import gtars
# 从 BED 文件
tokenizer = gtars.tokenizers.TreeTokenizer.from_bed_file("regions.bed")
# 从配置文件
tokenizer = gtars.tokenizers.TreeTokenizer.from_config("tokenizer_config.yaml")
# 从区域字符串
tokenizer = gtars.tokenizers.TreeTokenizer.from_region_string("chr1:1000-2000")
### 对基因组区域进行分词
将基因组坐标转换为标记:
python
# 对单个区域进行分词
token = tokenizer.tokenize("chr1", 1000, 2000)
# 对多个区域进行分词
tokens = []
for chrom, start, end in regions:
token = tokenizer.tokenize(chrom, start, end)
tokens.append(token)
### 标记属性
访问标记信息:
python
# 获取标记 ID
token_id = token.id
# 获取基因组坐标
chrom = token.chromosome
start = token.start
end = token.end
# 获取标记元数据
metadata = token.metadata
## 使用场景
### 机器学习预处理
分词器对于为机器学习模型准备基因组数据至关重要:
1. **序列建模**:将基因组区间转换为 Transformer 模型的离散标记
2. **位置编码**:在不同数据集间创建一致的位置编码
3. **数据增强**:生成用于训练的替代分词方案
### 与 geniml 集成
分词器模块与用于基因组机器学习的 geniml 库无缝集成:
python
# 为 geniml 对区域进行分词
from gtars.tokenizers import TreeTokenizer
import geniml
tokenizer = TreeTokenizer.from_bed_file("training_regions.bed")
tokens = [tokenizer.tokenize(r.chrom, r.start, r.end) for r in regions]
# 在 geniml 模型中使用标记
model = geniml.Model(vocab_size=tokenizer.vocab_size)
## 配置格式
分词器配置文件支持 YAML 格式:
yaml
# tokenizer_config.yaml
type: tree
resolution: 1000 # 标记分辨率(碱基对)
chromosomes:
- chr1
- chr2
- chr3
options:
overlap_handling: merge
gap_threshold: 100
## 性能考量
- TreeTokenizer 使用高效的数据结构实现快速分词
- 建议对大数据集使用批量分词
- 预加载分词器可减少重复操作的开销