[ PROMPT_NODE_26624 ]
utilities
[ SKILL_DOCUMENTATION ]
# Geniml 实用工具与辅助功能
## BBClient: BED 文件缓存
### 概述
BBClient 提供从远程源高效缓存 BED 文件的功能,支持更快的重复访问并与 R 工作流集成。
### 何时使用
在以下情况使用 BBClient:
- 需要重复访问远程数据库中的 BED 文件
- 使用 BEDbase 存储库
- 将基因组数据集成到 R 流水线中
- 需要本地缓存以提升性能
### Python 使用方法
python
from geniml.bbclient import BBClient
# 初始化客户端
client = BBClient(cache_folder='~/.bedcache')
# 获取并缓存 BED 文件
bed_file = client.load_bed(bed_id='GSM123456')
# 访问缓存文件
regions = client.get_regions('GSM123456')
### R 集成
r
library(reticulate)
geniml <- import("geniml.bbclient")
# 初始化客户端
client <- geniml$BBClient(cache_folder='~/.bedcache')
# 加载 BED 文件
bed_file <- client$load_bed(bed_id='GSM123456')
### 最佳实践
- 配置具有足够存储空间的缓存目录
- 在不同分析中保持缓存位置一致
- 定期清理缓存以移除未使用的文件
---
## BEDshift: BED 文件随机化
### 概述
BEDshift 提供在保留基因组上下文的同时随机化 BED 文件的工具,这对于生成零分布和统计检验至关重要。
### 何时使用
在以下情况使用 BEDshift:
- 为统计检验创建零模型
- 生成对照数据集
- 评估基因组重叠的显著性
- 对分析方法进行基准测试
### 使用方法
python
from geniml.bedshift import bedshift
# 随机化 BED 文件并保留染色体分布
randomized = bedshift(
input_bed='peaks.bed',
genome='hg38',
preserve_chrom=True,
n_iterations=100
)
### CLI 使用方法
bash
geniml bedshift
--input peaks.bed
--genome hg38
--preserve-chrom
--iterations 100
--output randomized_peaks.bed
### 随机化策略
**保留染色体分布:**
python
bedshift(input_bed, genome, preserve_chrom=True)
保持区域在与原始文件相同的染色体上。
**保留距离分布:**
python
bedshift(input_bed, genome, preserve_distance=True)
保持区域间的距离。
**保留区域大小:**
python
bedshift(input_bed, genome, preserve_size=True)
保持原始区域的长度。
### 最佳实践
- 选择与零假设相匹配的随机化策略
- 生成多次迭代以获得稳健的统计结果
- 验证随机化输出