
先说一个2026年3月我印象很深的项目一个结直肠癌多发家系送来做临床外显子组先证者46岁确诊家族里还有两位直系亲属在相近年龄段被诊断。临床高度怀疑遗传性结直肠癌综合征重点排查Lynch综合征。当时送检的样本包括家系三人的外周血WES以及先证者肿瘤组织的WES——也就是说一次数据处理要同时完成两条分析线胚系家系分析和肿瘤体细胞分析。很多人觉得家系WES和肿瘤WES是两套完全独立的流程实际上在临床项目里两者经常绑在一起出现尤其是遗传性肿瘤场景胚系变异需要肿瘤组织的数据来佐证肿瘤体细胞变异也需要回过头去确认是否存在遗传易感背景。这篇文章就把这个项目从FASTQ到报告的全流程拆开讲涉及家系共分离分析、肿瘤配对变异检测、MSI/TMB计算、ACMG评级和结果复核适合正在做临床生信、想把分析链路理清楚的同行参考。1. 项目背景与整体设计思路1.1 为什么家系和肿瘤WES要放进同一套流程先回答一个问题为什么遗传性肿瘤家系需要同时做胚系和体细胞分析最经典的解释是Knudson“二次打击”模型。比如Lynch综合征相关的错配修复基因MLH1、MSH2等患者从父母那里遗传了一个失活的等位基因第一次打击肿瘤组织里再发生体细胞层面的LOH或者另一个等位基因的突变第二次打击细胞才彻底丧失修复功能走向恶变。所以临床上仅仅确认“病人携带MLH1胚系杂合突变”是不够的还要在肿瘤组织里找到对应的体细胞证据整条证据链才闭合。反过来也一样。肿瘤组织检出MSH2的高频体细胞突变时如果这个突变在正常组织里也存在胚系来源那就不是单纯的体细胞事件要考虑遗传性肿瘤综合征的可能。实际操作中我见过不少只看体细胞结果就直接给用药建议的报告把胚系来源的变异当成体细胞突变处理这在后续家系筛查和风险评估上会带来完全不同的指导意义。所以我在设计流程时坚持把家系样本和肿瘤配对样本放在同一个样本管理框架下共用一套质控规则、同一套参考基因组和版本锁定清单最后再联合解读。这样做的直接好处是胚系变异和体细胞变异之间可以做双向交叉验证避免了两个流程各跑各的、后期发现数据不匹配再返工的尴尬局面。1.2 流程选型与版本锁定的实践逻辑胚系变异检测我用的GATK HaplotypeCaller先对每个样本独立产出GVCF再做联合基因分型体细胞变异检测用GATK Mutect2肿瘤和配对正常样本一起输入。注释环节做了VEP和ANNOVAR双轨验证家系样本关系校验用KING和sommelier辅助。选GATK系而不是FreeBayes或者VarScan并不是说其他工具不好而是临床项目对稳定性的要求远高于对单点灵敏度的追求。GATK的社区案例最多、文档最全、参数调整踩坑的参考资料也最多真遇到异常结果你能在公开渠道找到足够多的讨论去定位问题。VarScan在肿瘤分析里也有自己的优势比如对低VAF的容忍度但Mutect2在常规肿瘤WES配对分析上是目前最省心的选项。这里必须提醒一句工具版本一定要锁定。GATK这几年版本更新频繁大版本之间不光参数变了运行逻辑也有调整同一批数据用不同版本跑出来的变异数可能差上百个。我习惯在项目启动时把GATK、VEP、ANNOVAR、bwa等工具的版本号写进项目配置分析过程中不做任何升级。这个习惯能帮你省掉大量莫名其妙的结果不一致问题。2. 数据前处理与质量控制实战2.1 FASTQ到BAM的标准流程与参数取舍这个环节看起来机械却是整个项目里决定后续分析质量的关键。我的标准步骤是先用fastp做质量裁剪和接头去除这一步也可以换成fastqctrimmomatic的组合如果数据量特别大建议用fastp速度优势明显然后用BWA-MEM2比对到GRCh38参考基因组再用samtools sort排序、Picard MarkDuplicates标记重复最后用GATK BaseRecalibrator做碱基质量校正BQSR。有同行问过现在GATK官方对BQSR的态度有点摇摆老流程做了新流程好像默认值也覆盖了一部分是否可以直接跳过我的建议是临床项目不要省这一步。BQSR的目的是校正测序仪系统误差对低频体细胞变异的检测有实际帮助尤其是在FFPE样本里误差校正之后CT伪影的过滤会更容易处理。程序运行时间虽然长一点但换来的结果稳定性是值得的。测序深度方面家系WES样本我通常要求中位深度达到100x以上。因为家系分析里判断一个位点是纯合还是杂合、是否共分离都依赖单样本位点基因型的可靠性深度太低了联合基因分型也会因为缺少足够reads支撑而产出大量低质量位点。肿瘤组织样本最好能到150x以上配对正常样本保持100x以上肿瘤深度不足会直接影响低VAF变异的检出灵敏度。2.2 质控指标怎么看才不白做标准质控报告里会有一堆指标但我真正在意的其实就那么几个Q30比例、比对率、重复率、目标区间捕获效率、插入片段分布、以及整个捕获区间内达到20x以上覆盖的位点比例。比对率低于90%就要排查样本是否污染、测序是否存在异常重复率过高会明显压缩有效测序深度需要重新评估是否需要补数据。外显子组还有一个独特指标经常被忽略目标区域reads占比。如果这个值低于60%说明捕获效率不行有可能是杂交捕获环节出了问题也可能是样本本身降解严重。拿到BAM之后我不会急着跑变异检测。先做三件事样本关系校验、性别校验、样本指纹比对。家系样本必须用KING或sommelier确认真实亲缘关系与送检单一致性别用X和Y染色体的覆盖情况判断指纹对比用一组高频SNP位点的基因型来匹配不同批次的数据。这一步的重要性怎么强调都不过分——样本标签颠倒或者装错盒子的事情在临床实验室里真的发生过一旦进入变异检测环节才发现问题前面全部白跑。3. 家系胚系变异分析核心3.1 变异检测与家系共分离分析家系胚系分析里联合基因分型Joint Calling几乎是必须做的。单独对每个样本跑HaplotypeCaller再把VCF合并和直接把所有样本的GVCF传给GenomicsDBImport再一起genotype结果差距非常大。原因在于联合基因分型会利用整个家系在所有样本上的reads信息来校正单样本基因型比如某个样本在某位点只有8条reads单独call时可能因为深度不足给一个PL值模糊的基因型但联合分析时能借助其他样本的信息把这个位点的基因型推断得更可靠。拿到联合VCF之后第一个核心步骤是共分离过滤。以常染色体显性遗传模式为例Lynch综合征就是AD遗传我设置的筛选条件是家系中所有患病个体必须携带该变异的杂合基因型未患病个体原则上应为野生型如果未患病成员也携带该变异则要评估外显率问题不能一概排除候选变异在gnomAD等参考人群数据库中的等位基因频率不能过高AD遗传相关的致病基因通常把阈值卡在0.001甚至更低。实际操作里我用的是自写的Python脚本读入VCF和家系pedigree文件直接生成每个变异在各位成员的基因型矩阵然后自动标签化“患者/未患病/未知”筛选出完全符合共分离规律的位点做后续注释。这个脚本本质上就是把之前用Excel手动筛选的流程自动化但出错率低得多而且复盘的时候每一步都有据可查。3.2 遗传模式与候选致病位点的筛选逻辑不同遗传模式对应的筛选逻辑差异很大这里展开说说常染色体显性所有患者共享同一个杂合变异家族中连续多代发病男女均可受累。筛选时重点关注在肿瘤易感基因列表比如PanelApp里的遗传性肿瘤panel或者自家维护的基因清单内的变异先看基因再看位点。常染色体隐性患者必须携带纯合变异或者复合杂合变异。复合杂合的情况最容易被漏掉——两个不同的变异分别来自父母单独看每个都是杂合必须用相位phasing和家系父母基因型来判断是否真的处于不同等位基因上。X连锁X染色体上的变异要注意男性的半合子状态通常只过滤男性样本的chrX变异和女性样本的高频杂合变异。这个环节我还有个惯用技巧在注释时直接给每个候选变异打上“孟德尔遗传匹配”标签。比如VEP注释完我用一个自定义脚本检查基因型状态和家系表型状态是否矛盾把符合AD遗传、AR遗传、X连锁遗传模式的候选位点分别挑出来。这样可以快速锁定最值得人工审阅的位点集合剩下的整体变异交给自动化注释去做初筛。4. 肿瘤体细胞变异分析流程4.1 肿瘤-正常配对检测与克隆造血过滤肿瘤体细胞分析我走的是Mutect2标准流程输入肿瘤BAM、配对正常BAM和参考基因组先用Mutect2生成未经滤波的VCF再用FilterMutectCalls做常规过滤。这里有几个非常容易被忽略的坑第一个坑是克隆造血CHClonal Hematopoiesis。随着年龄增长骨髓里的造血干细胞会积累一些驱动突变常见于DNMT3A、TET2、ASXL1、PPM1D等基因。这些变异会出现在“正常”外周血样本里但其实是体细胞突变。如果在配对正常样本的等位基因频率很低比如1%-3%这些变异会被Mutect2当作胚系变异过滤掉导致肿瘤样本里相同位点的低频突变也被连带过滤。最典型的就是DNMT3A、TET2这类基因在实体瘤样本里被检出第一反应不是兴奋而是先检查配对正常样本里有没有相同位点的信号。处理办法是对Mutect2过滤后的结果单独验证一遍正常样本在这些位点的read count。如果正常样本有支持reads且VAF低就要考虑克隆造血的可能性谨慎报告为体细胞突变。第二个坑是肿瘤纯度。肿瘤组织的VAF和纯度直接相关100%纯度的样本杂合体细胞突变的VAF理论上是50%如果纯度只有40%VAF就降到20%左右。纯度太低会让很多真实的体细胞变异跌出检出阈值造成假阴性。我习惯在体细胞变异检测前先做个简单的纯度评估可以用ASCAT、PURPLE也可以用CNVkit的拷贝数情况粗略估计纯度低于20%的样本要特别小心结论的可靠性。4.2 MSI与TMB的计算细节微卫星不稳定性MSI和肿瘤突变负荷TMB是肿瘤外显子组报告里的标配内容。MSI检测我用MSIsensor基于WES数据计算让程序读入配对BAM和参考基因组统计一组微卫星位点的重复单元长度变化情况。这里有个容易被忽略的问题不同参考基因组版本对应的位点坐标不一样GRCh37和GRCh38的MSI位点列表不能混用一定要确认好版本。TMB的计算方法看起来简单就是编码区突变总数除以覆盖的兆碱基大小但不同流程算出来的TMB数值差异能大到让人怀疑人生。原因出在过滤策略上有的人算同义突变有的人不算有的人去掉克隆造血相关基因有的人保留有的人用20x以上的位点做分母有的人用30x。所以临床报告里TMB数值必须附带详细的过滤条件说明否则不同平台的数据无法横向比较。我的计算方式是TMB计算区域内只统计编码区和非同义突变missense、nonsense、frameshift、splice-site过滤掉已知的复发性伪影位点分母用实际达到20x覆盖的编码区碱基数。这一套规则定下来之后同一批数据两次计算的结果才能稳定一致。5. 变异注释与临床解读要点5.1 注释数据库的选择与补充变异注释我采用VEP和ANNOVAR双轨并行原因很简单两个工具在解析复杂变异比如indel附近的重叠基因时的表现不完全一样对比确认能降低漏注释的风险。数据库方面胚系注释重点看gnomAD人群频率、ClinVar临床评级、HGMD如果实验室有授权、OMIM疾病关联和自家维护的肿瘤易感基因列表体细胞注释则要增加COSMIC这个数据库收录了大量已报道的肿瘤驱动突变和耐药突变对判断变异是否具有临床意义非常关键。但是有个提醒任何自动化注释都不能替代人工核查。ClinVar上同一变异经常出现互相矛盾的评级Pathogenic和VUS并存的状态很常见这种confllicting interpretations的位点必须回溯原始文献和数据库证据甚至直接去查LSDB位点特异性数据库。比如Lynch综合征的MMR基因InSiGHT数据库里有大量功能试验数据这些是常规注释流程覆盖不到的但对于评级非常有价值。5.2 致病性评估的实战逻辑ACMG/AMP 2015版指南以及后续ClinGen的更新说明是胚系变异致病性评级的通用语言。这个评级过程本质上是一个证据积分过程。我拿一个实例来说明假设MLH1基因上检出一个新错义变异c.1987CTp.Leu663Phe家系共分离支持肿瘤组织MSI-HMMR蛋白免疫组化结果显示MLH1表达缺失。这个位点评级走下来大概是人群频率极低PM2位于功能结构域PM1多个计算机预测工具支持致病PP3同一位点已有功能实验证实影响蛋白活性PS3如果实验证据充分的话家系共分离有限支持PP1。如果ClinVar上已有的submission评级是VUS那么我们需要综合所有证据给出实验室自己的评级。体细胞变异则通常参考AMP/ASCO/CAP联合发布的体细胞变异解读指南按照Tier I/II/III分级结合FDA批准的药物标签和临床指南来标注可干预级别。这个环节我特别想强调评级不是机器输出就算完成而是要写清楚“哪条证据对应哪个代码”。报告审核的时候我看到评级结论但没有证据链支撑的报告一律打回重写。证据链的完整程度直接决定临床医生能不能理解这个评级逻辑也决定了报告的可信度。6. 报告输出与结果复核6.1 报告核心模块怎么组织一份家系肿瘤联合报告我一般按六个模块组织样本信息和送检要求、测序与质控统计、胚系变异检出及ACMG评级、体细胞变异检出及Tier分级、MSI/TMB等基因组标志物、结论与临床建议。最后的临床建议部分最考验水平。一个明确的MLH1致病性胚系变异后续要写清楚建议该变异位点的家系内成员验证阳性者进入Lynch综合征相关肿瘤早筛程序结直肠镜、子宫内膜活检等如果肿瘤组织同时检出了MLH1的体细胞LOH那这个家系遗传性原因的解释会更有说服力。这里每个建议都要落到临床操作层面让临床医生拿到手能直接执行而不是给出模棱两可的表述。6.2 复核环节容易漏掉的检查点报告正式发出前我习惯做一轮人工复核重点盯这几个地方基因组版本所有变异坐标是否都是GRCh38报告里标注的版本是否与数据库一致基因命名与转录本是否明确写清楚了转录本ID比如NM_000249.4HGVS命名是否通过Mutalyzer或VariantValidator校验过性别一致性男性样本是否在X染色体上出现异常高的杂合变异率胚系与体细胞交叉比对肿瘤检出的体细胞突变是否与胚系突变有重叠是否存在LOH或二次突变家系亲缘关系复核最终报告中的关系描述是否与分析初期的关系校验结果一致命名规范变异描述是否避免使用“Variant”或“Mutation”等容易引发歧义的词在临床报告中表述清晰专业。这个环节里HGVS命名校验是我特别推荐的一个动作。人工手写的命名经常在重复序列附近出错一个碱基的偏移在后续Sanger验证时就会导致引物设计错误用VariantValidator自动校验能极大降低这种低级错误。7. 常见问题排查与避坑实录7.1 家系样本里最隐蔽的问题样本混淆与关系不一致做家系分析项目多了之后会发现真正让人头疼的往往不是变异检测本身而是样本层面的问题。有一次我们拿到一个家系三人样本跑完KING一看两个“兄弟”之间的亲缘关系实际是全同胞但送检单上写的是“同母异父兄弟”这就完全对不上。后面重新联系临床核实才发现确实是送检信息填写有误而不是样本混了。如果关系校验产出的IBD共享比例和理论值差距过大比如该共享50%的亲子关系实际只有25%那大概率是样本标签错了。这时候必须立刻停下来要求临床重新确认样本身份绝对不能硬着头皮往下分析。另一个常用技巧是同时检查每个样本的线粒体单倍群母系亲属之间的线粒体序列应该一致这个指标对判断同母样本特别有用。7.2 FFPE样本伪影与肿瘤纯度干扰FFPE样本是肿瘤WES的常态但FFPE带来的脱氨基伪影会产生大量CT/GA突变其中相当一部分是假的。Mutect2的过滤模块里有orientation bias方向偏好过滤机制它通过检测突变是否在正反链的分布上极度不对称来判断伪影这对FFPE样本的处理非常有效。但需要注意这个过滤严格了会误杀真实突变宽松了又留杂音。实际处理时我一般会在分析流程里加一步样本水平的转换比如用picard的CollectSequenceArtifactMetrics看总体CT水平如果整体比例异常高就要对过滤阈值做调整。肿瘤纯度干扰的问题前面讲过低纯度肿瘤样本的VAF被严重压缩真实变异可能低于算法阈值。这里有个补充技巧比较纯度和拷贝数变化CNV的一致性。纯度40%的样本你的logR分布波动的幅度理论上不会太大如果CNV信号很强但纯度估算只有20%那可能是纯度估算程序本身没有正确矫正倍性这时的体细胞变异结果也要谨慎对待。7.3 数据量大时的运行时间与资源分配最后说一个项目管理层面的经验。家系三人WES加上肿瘤配对WES一共五个样本的全流程跑下来计算资源不足会非常痛苦。我习惯把重计算任务BWA-MEM2比对、MarkDuplicates、HaplotypeCaller、Mutect2丢到后台服务器上并行跑每家系和每对配对样本分别用独立的任务队列主分析流程则在产出对齐BAM之后串行推进这样整体时间能压缩一半以上。另外所有中间文件都要做好命名规范和目录归档。我见过太多项目跑到最后拿不清哪个VCF是过滤前的、哪个是过滤后的哪个BAM用的参考基因组是GRCh37、哪个是GRCh38。在项目启动时就建立统一目录模板按样本建子目录、按分析版本建根目录看似麻烦但一旦需要回溯结果时能替你省出大把时间。这个项目最终确认了一个MSH2基因的胚系致病性变异肿瘤组织里又找到了对应的体细胞二次打击整条证据链非常完整。临床建议部分顺利推进了家系成员的位点检测和后续肿瘤早筛计划。做临床生信这几年我最大的体会是分析工具和数据库每年都在更新但真正决定项目质量的是你是否建立了一套严格的样本管理、质量控制、证据复核机制。版本锁定的流程、Joint Calling的基因分型策略、克隆造血过滤的意识、FFPE伪影的处理方案每一条都是从实际项目里摔打出来的经验。希望这篇实战梳理能帮你少踩几个坑尤其是家系和肿瘤数据联合分析的时候两套逻辑穿插在一起最容易乱的就是数据版本和变异属性区分这两点管住了后续的解读就顺了。