用途:处理任何跨越边界的坐标问题——文件格式之间、工具之间、装配版本之间,或基因组与转录本之间。核心原则是坐标由三要素构成:数值、书写约定、所依据的装配版本,三者缺一不可。
主要能力:
- 坐标约定转换。1-based 闭区间转 0-based 半开区间为 start-1, end;反向为 start+1, end。仅适用于同一参考、同一链上的非空区间,不涵盖插入、环形回绕、liftover 或转录本映射。
- 变异规范化与比较。先修剪至最简再左对齐,再进行比较;支持 --split 拆分多等位、--compare 比较等价性。
- 装配与 contig 校验。从主染色体长度识别装配版本,报告命名不匹配、长度冲突、坐标超出 contig 末端、单文件独有 contig 等。
- 区间文件审计。检查 start_below_one、many_zero_length、past_contig_end、mixed_contig_naming、first_block_offset、not_parsimonious、bad_alt_allele 等坐标错误痕迹。
使用方式(命令保持原样): cd skills/genomic-coordinates/scripts python3 convert_coords.py --list python3 convert_coords.py --from bed --to gff chr1 999 1000 python3 convert_coords.py --from ucsc --to bed "chr7:5,530,601-5,530,625" python3 convert_coords.py --from granges --to pyranges --input regions.tsv python3 normalize_variant.py --fasta ref.fa chr1 7 CAC C python3 normalize_variant.py --fasta ref.fa --split --input cohort.vcf python3 normalize_variant.py --fasta ref.fa --compare chr1:7:CAC:C chr1:2:GCA:G python3 check_contigs.py --identify unknown.fa.fai python3 check_contigs.py variants.vcf annotation.gtf --genome GRCh38.fa.fai python3 audit_intervals.py peaks.bed python3 audit_intervals.py gencode.gtf --genome hg38.chrom.sizes python3 audit_intervals.py cohort.vcf --genome GRCh38.fa.fai
适用场景:跨格式或跨装配的坐标转换、变异去重与查找前的规范化、合并前装配一致性检查、区间文件坐标审计、转录本/CDS/蛋白位置与 HGVS 编号处理。
限制:转换器不编码特征语义,零长度 BED 特征对闭区间目标报为不可表示;输出为诊断 TSV/JSON,不重写 GFF/VCF。--input 仅解析 BED/bedGraph、GFF/GTF、字面等位 VCF REF 区间、显式区域字符串及三列 GRanges/PyRanges/Python TSV,且要求未压缩文件。规范化默认左移窗口 1000 bp,不足则返回 incomplete 并退出 1;其 TSV 丢弃基因型与注释,生产级 VCF 重写应使用 bcftools norm;符号/断点/缺失等位被跳过。check_contigs 无法检测等长序列变化或屏蔽;unknown/ambiguous 且退出 0 不构成兼容性证明。GRCh37 与 hg19 核坐标相同但线粒体参考不同(16569 bp 对 16571 bp)。HGVS 转换应使用 VEP、Mutalyzer 或 hgvs 包配合匹配的转录本模型。审计为针对性坐标检查,非完整格式校验器。转录本注释与 liftover 工具为文档化替代方案,未执行全基因组工作流。