[ PROMPT_NODE_26658 ]
coverage
[ SKILL_DOCUMENTATION ]
# 使用 Uniwig 进行覆盖率分析
Uniwig 模块从测序数据生成覆盖率轨迹,提供将基因组区间高效转换为覆盖率配置文件的功能。
## 覆盖率轨迹生成
从 BED 文件创建覆盖率轨迹:
python
import gtars
# 从 BED 文件生成覆盖率
coverage = gtars.uniwig.coverage_from_bed("fragments.bed")
# 以特定分辨率生成覆盖率
coverage = gtars.uniwig.coverage_from_bed("fragments.bed", resolution=10)
# 生成链特异性覆盖率
fwd_coverage = gtars.uniwig.coverage_from_bed("fragments.bed", strand="+")
rev_coverage = gtars.uniwig.coverage_from_bed("fragments.bed", strand="-")
## CLI 使用
从命令行生成覆盖率轨迹:
bash
# 生成覆盖率轨迹
gtars uniwig generate --input fragments.bed --output coverage.wig
# 指定分辨率
gtars uniwig generate --input fragments.bed --output coverage.wig --resolution 10
# 生成 BigWig 格式
gtars uniwig generate --input fragments.bed --output coverage.bw --format bigwig
# 链特异性覆盖率
gtars uniwig generate --input fragments.bed --output forward.wig --strand +
gtars uniwig generate --input fragments.bed --output reverse.wig --strand -
## 处理覆盖率数据
### 访问覆盖率值
查询特定位置的覆盖率:
python
# 获取位置覆盖率
cov = coverage.get_coverage("chr1", 1000)
# 获取范围覆盖率
cov_array = coverage.get_coverage_range("chr1", 1000, 2000)
# 获取覆盖率统计信息
mean_cov = coverage.mean_coverage("chr1", 1000, 2000)
max_cov = coverage.max_coverage("chr1", 1000, 2000)
### 覆盖率操作
对覆盖率轨迹执行操作:
python
# 归一化覆盖率
normalized = coverage.normalize()
# 平滑覆盖率
smoothed = coverage.smooth(window_size=10)
# 合并覆盖率轨迹
combined = coverage1.add(coverage2)
# 计算覆盖率差异
diff = coverage1.subtract(coverage2)
## 输出格式
Uniwig 支持多种输出格式:
### WIG 格式
标准 wiggle 格式:
fixedStep chrom=chr1 start=1000 step=1
12
15
18
22
...
### BigWig 格式
用于高效存储和访问的二进制格式:
bash
# 生成 BigWig
gtars uniwig generate --input fragments.bed --output coverage.bw --format bigwig
### BedGraph 格式
用于可变覆盖率的灵活格式:
chr1 1000 1001 12
chr1 1001 1002 15
chr1 1002 1003 18
## 用例
### ATAC-seq 分析
生成