2. 靶向区域确定与基因组坐标体系

靶向测序的第一步不是设计探针,而是把“要测哪里”用一套无歧义的坐标语言说清楚。同一份基因列表,如果参考基因组版本不同、转录本不同、坐标体系不同,最终捕获到的区间可能相差几十甚至上千个碱基。本节围绕三件事展开:选定参考基因组版本、获取目标基因的外显子与热点区间、把不同来源的区间统一坐标并合并去冗余。

一、参考基因组版本:先定“地图”,再定“地点”

基因组坐标必须依附于一个具体的参考版本,否则坐标没有意义。人类常用 GRCh37/hg19 与 GRCh38/hg38,二者在着丝粒、免疫相关区域和若干基因座上存在序列长度与位置差异。例如 EGFR 在 hg19 与 hg38 上的起始坐标并不相同,若把 hg19 的 BED 直接用于 hg38 比对结果,区间会整体偏移。

选择版本时遵循三条原则:与下游分析流程一致(比对索引、注释 GTF、变异数据库同版本);与临床或协作方约定一致(如多数肿瘤 panel 仍以 hg19 交付);全流程只允许一个主版本,其他版本通过 liftover 转换后必须校验。建议在项目配置中显式记录:

reference:
  genome_build: GRCh38
  fasta: GRCh38.primary_assembly.fa
  annotation: gencode.v44.annotation.gtf
  hotspot_db: cancer_hotspots_v2.hg38.bed
  coordinate_system: 0-based-half-open  # BED 约定

这里必须强调坐标体系的参照约定:BED 文件使用 0-based、半开区间 [start, end),即 start 从 0 计数、end 不包含在区间内;而 VCF、GFF/GTF 及大多数临床报告使用 1-based、闭区间。同一段序列在 BED 中写作 chr7 55086714 55087058,在 1-based 表示中对应 55086715–55087058。全文与图示统一采用 BED 约定,凡出现 1-based 数据必须显式标注并转换。

二、获取外显子与热点区间

目标区间通常由两类来源组成:基因外显子(覆盖编码区及必要的内含子边界)和热点区间(已知高频突变位点)。

外显子区间可从注释文件提取。以 GTF 为例,用 gffread 或 bedtools 按 gene/transcript 过滤后导出外显子 BED:

# 从 GTF 提取指定基因的外显子(1-based GTF → 0-based BED)
grep -w -E "EGFR|KRAS|BRAF" gencode.v44.annotation.gtf \
  | awk '$3=="exon"' \
  | awk 'BEGIN{OFS="\t"}{print $1,$4-1,$5,$10}' \
  > targets_exon.bed

注意 $4-1 正是把 1-based 起点转为 0-based 起点的关键一步。若基因存在多个转录本,应明确以哪个转录本为准(如 MANE Select),否则同一基因会得到多套外显子坐标。

热点区间一般来自数据库或文献整理,常见形式为位点列表(chrom, pos, ref, alt)。需要把单位点扩展为可捕获的区间,例如以突变位点为中心向两侧各延伸 10–25 bp,保证探针能覆盖并保留比对锚定序列:

# 单位点扩展为 ±15 bp 区间(输入为 1-based 位点)
awk 'BEGIN{OFS="\t"}{print $1, $2-1-15, $2-1+15, $3}' hotspots_1based.txt \
  | awk 'BEGIN{OFS="\t"}{if($2<0)$2=0; print}' \
  > hotspots.bed

三、坐标转换与区间合并去冗余

不同来源的区间往往版本、体系、命名都不一致,需要三步处理:统一命名 → 统一版本 → 合并去冗余。

统一命名指把 1、chr1、NC_000001.11 等写法归一,通常统一加 chr 前缀并只保留主染色体。统一版本指用 liftOver 把非主版本区间转换到主版本,转换后必须检查未映射区间比例,一般应低于 1%–2%,超限说明版本或命名不匹配。

合并去冗余用 bedtools merge 完成,它会自动合并重叠或相邻区间:

cat targets_exon.bed hotspots.bed \
  | sort -k1,1 -k2,2n \
  | bedtools merge -i - -d 0 \
  > targets_merged.bed

# 统计合并前后区间数与总长度
wc -l targets_exon.bed hotspots.bed targets_merged.bed
awk 'BEGIN{s=0}{s+=$3-$2}END{print s}' targets_merged.bed

参数 -d 0 表示仅合并重叠或首尾相接的区间;若希望把间隔小于 50 bp 的碎片并成一段以减少探针数量,可设 -d 50,但需评估是否会引入过多非目标序列。合并后应核对:总覆盖长度是否与预期 panel 大小接近、是否存在异常超长区间(可能由命名错误或坐标转换错误导致)、目标基因是否全部被覆盖。

实操建议:把“外显子 BED + 热点 BED → 排序 → 合并 → 校验”固化为一条可重复执行的命令链,每次更新数据库或注释版本后重跑,并保留合并前后的区间数与总长度作为质量记录。
靶向区域确定与坐标统一流程 注释文件 GTF 外显子 · 1-based 热点数据库 位点 · 1-based 参考基因组 GRCh38 / hg38 坐标转换 1-based → 0-based 热点扩展 位点 ±15 bp 命名与版本统一 chr 前缀 · liftOver 区间合并去冗余 sort -k1,1 -k2,2n bedtools merge -d 0 输出 targets_merged.bed 0-based 半开区间 合并后校验要点 • 区间总数与总长度是否符合预期 panel 大小 • 是否存在异常超长区间(命名/版本错误信号) • 目标基因是否全部被覆盖,未映射比例是否 < 2%

完成上述步骤后,得到的 targets_merged.bed 就是后续探针设计与捕获区间计算的唯一输入。它同时锁定了参考版本、坐标体系和区间边界,使设计、比对、变异检出三个环节共享同一套坐标语言,避免因版本或体系不一致造成的系统性偏差。