2. 基因组数据基础与工程视角

在基因组与EHR数据融合工程中,数据格式不是简单的文件后缀问题,而是决定后续所有处理逻辑的“契约”。FASTQ、BAM、VCF、MAF这四种格式分别对应测序、比对、变异调用、变异注释四个阶段,每一层都携带不同的生物学语义和工程约束。理解它们的结构,等于理解数据在流水线中如何被解释、压缩、索引和传递。

一、从碱基到变异:四种格式的生物学定位

FASTQ是测序仪的直接输出,每条read由四行组成:序列标识、碱基序列、可选描述、质量值字符串。质量值采用Phred编码,Q=30表示错误率1/1000。工程上,FASTQ通常以gzip压缩存储,文件体积大、无索引,适合按read流式处理,但不适合随机访问。

BAM是比对到参考基因组后的二进制格式,核心结构包括header、alignment records和索引。每条record记录read名称、flag、参考序列ID、位置、比对质量、CIGAR字符串、序列和碱基质量。CIGAR中的M/I/D/N/S等操作符描述read与参考的匹配关系,是判断变异可信度的重要依据。BAM必须排序并建立BAI索引,才能支持区间查询,这是工程上最常用的访问模式。

VCF记录变异位点,包含CHROM、POS、ID、REF、ALT、QUAL、FILTER、INFO、FORMAT和样本列。它描述的是“相对于参考基因组,样本在哪里发生了何种改变”。VCF的工程属性包括:必须声明参考基因组版本,必须明确多等位基因的拆分策略,必须处理基因型字段中的等位基因编码。

MAF是变异注释后的表格格式,常见于肿瘤分析。它在VCF基础上增加了Hugo_Symbol、Variant_Classification、Variant_Type、Tumor_Sample_Barcode等列,把变异映射到基因和功能类别。MAF的工程价值在于可直接用于下游统计和报告,但代价是丢失了部分原始调用信息,且不同来源的MAF列定义可能不一致。

基因组数据四层格式:生物学含义与工程属性 FASTQ 测序原始read @read_id ACGT...N + IIII...## BAM 比对到参考基因组 header + records CIGAR: 50M2I48M POS / MAPQ / FLAG BAI索引支持区间查询 VCF 变异位点记录 CHROM POS REF ALT QUAL FILTER INFO FORMAT: GT:DP:AD 0/1 或 1|1 等位基因编码 MAF 注释后变异表 Hugo_Symbol Variant_Classification Tumor_Sample_Barcode 可直接用于统计报告 比对 调用 注释 工程视角下的关键约束与检查点 参考基因组版本 GRCh37 / GRCh38 chr前缀与坐标必须一致 等位基因编码 0=REF, 1=ALT1, 2=ALT2 多等位基因需拆分或保留 变异表示 SNV / Indel / SV 左对齐与归一化 样本标识一致性 Tumor vs Normal 与EHR患者ID映射 FASTQ → BAM → VCF → MAF:每一层都改变数据的语义粒度与可查询性 工程上必须保证:参考版本一致、坐标系统一、等位基因编码可解释、样本标识可追溯

二、参考基因组版本:一切坐标的基准

VCF中的POS、BAM中的比对位置、MAF中的Start_Position,全部依赖于参考基因组版本。GRCh37与GRCh38在多个区域存在坐标差异,且chr1与1的命名方式不同。工程上必须做到:在BAM header中记录@SQ的参考序列名称和长度;在VCF header中写入##reference=file:///ref/GRCh38.fa;在MAF中保留NCBI_Build列。如果融合EHR数据时忽略版本,变异坐标将无法与临床注释对齐。

一个常见的工程检查是:用samtools view -H sample.bam查看@SQ行,确认参考序列名称与长度;用bcftools view -h sample.vcf查看##contig和##reference行。若BAM使用GRCh37而VCF使用GRCh38,必须用CrossMap或liftOver转换,并记录转换链。

三、等位基因编码与基因型表示

VCF的FORMAT列中,GT字段用数字表示等位基因:0代表REF,1代表第一个ALT,2代表第二个ALT。例如REF=A,ALT=T,C,则GT=1/2表示该样本携带T和C两个不同等位基因。工程上必须区分“未定相”的0/1与“定相”的0|1,前者表示两个等位基因来源未知,后者表示分别来自父母。在肿瘤样本中,还需关注AF(等位基因频率)和AD(等位基因深度),它们决定变异是否被下游信任。

MAF中的Variant_Type和Variant_Classification是注释结果,不是原始观测。Variant_Type包括SNP、DNP、TNP、INS、DEL;Variant_Classification包括Missense_Mutation、Nonsense_Mutation、Frame_Shift_Del等。工程上不能直接用MAF反推VCF,因为MAF可能过滤了低质量位点,也可能合并了多个转录本注释。

四、工程实践中的格式转换与校验

从FASTQ到BAM,常用bwa mem比对后经samtools sort和index。从BAM到VCF,常用GATK HaplotypeCaller或bcftools mpileup+call。从VCF到MAF,常用vcf2maf或MAFtools,需要提供转录本注释和参考基因组。每一步都应保留中间文件与日志,便于回溯。

# 示例:BAM排序与索引
samtools sort -@ 8 -o sample.sorted.bam sample.bam
samtools index sample.sorted.bam

# 示例:VCF归一化与多等位基因拆分
bcftools norm -f GRCh38.fa -m -both -o sample.norm.vcf sample.vcf

# 示例:查看VCF样本基因型
bcftools query -f '%CHROM\t%POS\t%REF\t%ALT[\t%GT\t%AD]\n' sample.norm.vcf
工程检查清单:
  • BAM header中的@SQ与VCF header中的##contig是否一致?
  • VCF的REF是否与参考基因组对应位置完全匹配?
  • 多等位基因位点是否已拆分或明确保留策略?
  • MAF中的Tumor_Sample_Barcode能否映射到EHR患者ID?
  • 是否记录了参考基因组版本、软件版本和命令行参数?

五、格式选择与融合工程的接口设计

在基因组与EHR融合场景中,VCF通常作为变异层的“事实标准”,MAF作为分析层的“宽表”。EHR侧的患者ID、就诊时间、用药记录需要与VCF样本列或MAF的Tumor_Sample_Barcode建立映射。工程上建议保留VCF作为原始变异存储,MAF作为派生视图,并在两者之间维护版本号和生成时间戳。这样既能满足临床解读对注释的需求,也能在需要时回溯到原始调用证据。

理解FASTQ、BAM、VCF、MAF的生物学含义与工程属性,本质上是理解数据在“测序—比对—调用—注释”链条中如何被逐步赋予语义。只有把参考版本、等位基因编码、样本标识和坐标系统一管理,后续的EHR融合才不会在第一步就出现不可解释的偏差。