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列定义可能不一致。
二、参考基因组版本:一切坐标的基准
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融合才不会在第一步就出现不可解释的偏差。