[ PROMPT_NODE_26662 ]
python-api
[ SKILL_DOCUMENTATION ]
# Python API 参考
Gtars Python 绑定的综合参考。
## 安装
bash
# 安装 gtars Python 包
uv pip install gtars
# 或使用 pip
pip install gtars
## 核心类
### RegionSet
管理基因组区间集合:
python
import gtars
# 从 BED 文件创建
regions = gtars.RegionSet.from_bed("regions.bed")
# 从坐标创建
regions = gtars.RegionSet([
("chr1", 1000, 2000),
("chr1", 3000, 4000),
("chr2", 5000, 6000)
])
# 访问区域
for region in regions:
print(f"{region.chromosome}:{region.start}-{region.end}")
# 获取区域数量
num_regions = len(regions)
# 获取总覆盖率
total_coverage = regions.total_coverage()
### 区域操作
对区域集执行操作:
python
# 排序区域
sorted_regions = regions.sort()
# 合并重叠区域
merged = regions.merge()
# 按大小过滤
large_regions = regions.filter_by_size(min_size=1000)
# 按染色体过滤
chr1_regions = regions.filter_by_chromosome("chr1")
### 集合操作
对基因组区域执行集合操作:
python
# 加载两个区域集
set_a = gtars.RegionSet.from_bed("set_a.bed")
set_b = gtars.RegionSet.from_bed("set_b.bed")
# 并集
union = set_a.union(set_b)
# 交集
intersection = set_a.intersect(set_b)
# 差集
difference = set_a.subtract(set_b)
# 对称差集
sym_diff = set_a.symmetric_difference(set_b)
## 数据导出
### 写入 BED 文件
将区域导出为 BED 格式:
python
# 写入 BED 文件
regions.to_bed("output.bed")
# 写入分数
regions.to_bed("output.bed", scores=score_array)
# 写入名称
regions.to_bed("output.bed", names=name_list)
### 格式转换
在格式之间转换:
python
# BED 转 JSON
regions = gtars.RegionSet.from_bed("input.bed")
regions.to_json("output.json")
# JSON 转 BED
regions = gtars.RegionSet.from_json("input.json")
regions.to_bed("output.bed")
## NumPy 集成
与 NumPy 数组无缝集成:
python
import numpy as np
# 导出为 NumPy 数组
starts = regions.starts_array() # 起始位置的 NumPy 数组
ends = regions.ends_array() # 结束位置的 NumPy 数组
sizes = regions.sizes_array() # 区域大小的 NumPy 数组
# 从 NumPy 数组创建
chromosomes = ["chr1"] * len(starts)
regions = gtars.RegionSet.from_arrays(chromosomes, starts, ends)
## 并行处理
利用并行处理处理大数据集:
python
# 启用