[ PROMPT_NODE_26660 ]
overlap
[ SKILL_DOCUMENTATION ]
# 重叠检测与 IGD
Overlaprs 模块使用集成基因组数据库 (IGD) 数据结构提供基因组区间之间的高效重叠检测。
## IGD 索引
IGD (Integrated Genome Database) 是一种专门用于快速基因组区间查询和重叠检测的数据结构。
### 构建 IGD 索引
从基因组区域文件创建索引:
python
import gtars
# 从 BED 文件构建 IGD 索引
igd = gtars.igd.build_index("regions.bed")
# 保存索引以供重用
igd.save("regions.igd")
# 加载现有索引
igd = gtars.igd.load_index("regions.igd")
### 查询重叠
高效查找重叠区域:
python
# 查询单个区域
overlaps = igd.query("chr1", 1000, 2000)
# 查询多个区域
results = []
for chrom, start, end in query_regions:
overlaps = igd.query(chrom, start, end)
results.append(overlaps)
# 仅获取重叠计数
count = igd.count_overlaps("chr1", 1000, 2000)
## CLI 使用
Overlaprs 命令行工具提供重叠检测功能:
bash
# 查找两个 BED 文件之间的重叠
gtars overlaprs query --index regions.bed --query query_regions.bed
# 计算重叠数量
gtars overlaprs count --index regions.bed --query query_regions.bed
# 输出重叠区域
gtars overlaprs overlap --index regions.bed --query query_regions.bed --output overlaps.bed
### IGD CLI 命令
构建并查询 IGD 索引:
bash
# 构建 IGD 索引
gtars igd build --input regions.bed --output regions.igd
# 查询 IGD 索引
gtars igd query --index regions.igd --region "chr1:1000-2000"
# 从文件批量查询
gtars igd query --index regions.igd --query-file queries.bed --output results.bed
## Python API
### 重叠检测
计算区域集之间的重叠:
python
import gtars
# 加载两个区域集
set_a = gtars.RegionSet.from_bed("regions_a.bed")
set_b = gtars.RegionSet.from_bed("regions_b.bed")
# 查找重叠
overlaps = set_a.overlap(set_b)
# 获取 A 中与 B 重叠的区域
overlapping_a = set_a.filter_overlapping(set_b)
# 获取 A 中与 B 不重叠的区域
non_overlapping_a = set_a.filter_non_overlapping(set_b)
### 重叠统计
计算重叠指标:
python
# 计算重叠数量
overlap_count = set_a.count_overlaps(set_b)
# 计算重叠比例
overlap_fraction = set_a.overlap_fraction(set_b)
# 获取重叠覆盖率
coverage = set_a.overlap_coverage(set_b)
## 性能特征
IGD 提供高效查询