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 大小接近、是否存在异常超长区间(可能由命名错误或坐标转换错误导致)、目标基因是否全部被覆盖。
完成上述步骤后,得到的 targets_merged.bed 就是后续探针设计与捕获区间计算的唯一输入。它同时锁定了参考版本、坐标体系和区间边界,使设计、比对、变异检出三个环节共享同一套坐标语言,避免因版本或体系不一致造成的系统性偏差。