[ PROMPT_NODE_26664 ]
refget
[ SKILL_DOCUMENTATION ]
# 参考序列管理
refget 模块处理参考序列的检索和摘要计算,遵循 refget 协议进行序列标识。
## RefgetStore
RefgetStore 管理参考序列及其摘要:
python
import gtars
# 创建 RefgetStore
store = gtars.RefgetStore()
# 添加序列
store.add_sequence("chr1", sequence_data)
# 检索序列
seq = store.get_sequence("chr1")
# 获取序列摘要
digest = store.get_digest("chr1")
## 序列摘要
计算并验证序列摘要:
python
# 计算序列摘要
from gtars.refget import compute_digest
digest = compute_digest(sequence_data)
# 验证摘要是否匹配
is_valid = store.verify_digest("chr1", expected_digest)
## 与参考基因组集成
使用标准参考基因组:
python
# 加载参考基因组
store = gtars.RefgetStore.from_fasta("hg38.fa")
# 获取染色体序列
chr1 = store.get_sequence("chr1")
chr2 = store.get_sequence("chr2")
# 获取子序列
region_seq = store.get_subsequence("chr1", 1000, 2000)
## CLI 使用
从命令行管理参考序列:
bash
# 计算 FASTA 文件的摘要
gtars refget digest --input genome.fa --output digests.txt
# 验证序列摘要
gtars refget verify --sequence sequence.fa --digest expected_digest
## Refget 协议合规性
refget 模块遵循 GA4GH refget 协议:
### 摘要计算
摘要使用 SHA-512 计算并截断为 48 字节:
python
# 计算符合 refget 标准的摘要
digest = gtars.refget.compute_digest(sequence)
# 返回: "SQ.abc123..."
### 序列检索
通过摘要检索序列:
python
# 通过 refget 摘要获取序列
seq = store.get_sequence_by_digest("SQ.abc123...")
## 使用场景
### 参考验证
验证参考基因组完整性:
python
# 计算参考摘要
store = gtars.RefgetStore.from_fasta("reference.fa")
digests = {chrom: store.get_digest(chrom) for chrom in store.chromosomes}
# 与预期摘要进行比较
for chrom, expected in expected_digests.items():
actual = digests[chrom]
if actual != expected:
print(f"Mismatch for {chrom}: {actual} != {expected}")
### 序列提取
提取特定基因组区域:
python
# 提取感兴趣的区域
store = gtars.RefgetStore.from_fasta("hg38.fa")
regions = [
("chr1", 1000, 2000),
("chr2", 5000, 6000),
("chr3", 10000, 11000)
]
sequences