ClairS:基于深度学习的体细胞小变异检测工具¶
概述¶
ClairS 是一款适用于配对肿瘤-正常样本的体细胞小变异(SNV 和 Indel)检测工具,主要针对 Oxford Nanopore Technologies (ONT) 长读长 数据,同时也支持 PacBio HiFi 和 Illumina 短读长平台。它通过集成深度学习模型(以 Clair3 的 pileup 和 full-alignment 模型为基础),在消除胚系变异的基础上,利用规则和过滤策略输出高置信度的体细胞变异。ClairS 名称源自“Clair-Somatic”,法文中“clair”的阳性复数形式(末尾 s 不发音),其 logo 由 DALL-E 2 根据“DNA 序列中形似字母 S 的遗传变异”提示生成。
在典型的 ONT Q20+ 化学试剂下,针对 HCC1395 肿瘤(50× 覆盖度)和匹配的正常样本(25×),以高置信度真集(Fang et al., 2021)为基准,ClairS 在 VAF ≥ 0.05 时 SNV 的召回率和精确率分别达到 86.86% 和 93.01%;VAF ≥ 0.2 时进一步提升至 94.65% 和 96.63%。最新版本 v0.4.4 通过改进模型训练策略、引入真实癌症细胞系数据增强以及支持与 LongPhase-S 等下游分析工具的整合,进一步提高了性能与实用性。
核心知识点¶
1. 方法学框架¶
- 变体分型策略:ClairS 首先利用 Clair3 对正常样本和肿瘤样本分别进行胚系变异识别,然后过滤掉肿瘤样本中与正常样本共享的胚系变异。
- 双模型集成:同时使用 Clair3 的 pileup 模型(仅依赖目标位点周围的堆积信息)和 full-alignment 模型(利用完整比对信息)进行预测,两个模型的结果以等权重集成,再通过规则和后处理过滤器确定最终变异。
- 质量控制与标注:支持
--snv_min_qual和--indel_min_qual分别设置 SNV 和 INDEL 的 QUAL 阈值,低于阈值的变异标记为 “LowQual” 或过滤;可结合 LongPhase-S 进行体细胞单倍型重建,识别与体细胞单倍型不一致的假阳性变异并降级为 “LowQual”。
2. 支持平台与模型¶
ClairS 针对不同测序平台和化学试剂提供预训练模型,常用模型包括:
| 平台 | 模型名称 | 说明 |
|---|---|---|
| ONT R10.4.1 (5 kHz) | ont_r10_dorado_sup_5khz_ssrs | 混合真实肿瘤细胞系数据增强的 ssrs 模型(推荐) |
| ONT R10.4.1 (5 kHz) | ont_r10_dorado_sup_5khz_ss | 仅由合成数据训练的 ss 模型(若训练肿瘤类型缺失时可使用) |
| ONT R10.4.1 (4 kHz) | ont_r10_dorado_sup_4khz | 旧版 4 kHz 数据模型,不再更新 |
| PacBio Revio (SMRTbell 3.0) | hifi_revio_ssrs | 支持 Revio HiFi 数据的 ssrs 模型 |
| Illumina (NovaSeq/HiSeq) | ilmn_ssrs | 支持 Illumina 短读长数据的 ssrs 模型 |
- ssrs 模型:在合成数据预训练基础上,利用多癌种、多覆盖度、多肿瘤纯度的真实细胞系数据(如 HCC1395/BL、HCC1937/BL 等)进行增强训练,包含 BQ 值抖动(jittering)以缓解训练与测试间 BQ 分布偏移问题,性能通常优于 ss 模型。
- ss 模型:仅使用合成数据训练,适合当肿瘤类型未在 ssrs 训练集中覆盖且对跨癌种泛化有顾虑时的保守选择。
3. 独立版本与关联工具¶
为覆盖不同应用场景,ClairS 生态系统包括: - ClairS:配对肿瘤-正常体细胞变异检测。 - ClairS-TO:仅肿瘤样本的体细胞变异检测(Tumor-Only)。 - Clair3:胚系变异检测(DNA-seq)。 - Clair3-RNA:长读长 RNA-seq 的胚系变异检测。 - Clair-skills:面向 AI 代码助手(如 Claude Code、Cursor 等)的技能包。
4. 关键性能特征¶
ONT Q20+ 性能¶
根据技术报告(v0.4.0, 2024年10月),使用 ssrs 模型时,在不同覆盖度和等位基因频率(AF)范围下,ClairS 均优于 ss 模型和 DeepSomatic v1.7.0,特别在中低覆盖度和低 AF 区域优势明显。
PacBio Revio SNV 性能¶
- 数据集:HCC1395/HCC1395BL Revio,SMRTbell 3.0 试剂盒。
- 正常覆盖度固定 25× 时,ClairS 在不同肿瘤覆盖度(10×、25×、50×、100×)下均能保持高精度和高召回,VAF ≥ 0.05 时平均精确率 > 95%。
- 肿瘤覆盖度固定 50× 时,ClairS 在不同正常覆盖度(5×、10×、25×、50×)下性能稳定,召回率随正常覆盖度增加而略有提升。
Illumina SNV 性能¶
- 数据集:HCC1395/HCC1395BL,NovaSeq 6000 / HiSeq 4000。
- 肿瘤 50× / 正常 25× 时,多纯度组合的 Precision-Recall 曲线显示 ClairS 可取得较高的综合性能。
5. 版本迭代亮点¶
- v0.4.4(2025-11-28):发布 LongPhase-S 后过滤集成文档;明确 5 kHz 模型在 4 kHz 旧数据上的基准性能(作为参考,不推荐混用)。
- v0.4.4(2025-11-18):更新 ssrs 模型,引入 BQ 抖动,增加多肿瘤/正常覆盖度和纯度训练样本,整体性能较 v0.4.3 稳定提升。
- v0.4.3:支持通过模型目录下的
model_specific_settings.conf设置参数(如snv_min_qual、indel_min_qual)。 - v0.4.2:新增
--snv_min_qual和--indel_min_qual选项,替代旧版--qual。 - v0.4.1:新增 PacBio Revio 和 Illumina 的 ssrs 模型。
- v0.4.0:引入 ssrs/ss 双模型体系;使用四种真实癌细胞系训练 ssrs 模型;加入 BQ 抖动;调整 ONT 平台 Indel 最小 AF 要求至 0.1 等。
代码实操¶
以下为在 Linux 服务器上使用 Docker 运行 ClairS 的典型流程,其他安装方式(Singularity、Conda 等)详见官方仓库。
1. 获取镜像并准备数据¶
# 拉取最新预构建 Docker 镜像
docker pull hkubal/clairs:latest
# 准备参考基因组文件 (例如 GRCh38)
wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/001/405/GCA_000001405.15_GRCh38/seqs_for_alignment_pipelines.ucsc_ids/GCA_000001405.15_GRCh38_no_alt_analysis_set.fna.gz
gunzip GCA_000001405.15_GRCh38_no_alt_analysis_set.fna.gz
# 肿瘤和正常样本的 BAM 文件需包含合适的标记 (如 SM 标签) 并已排序索引
# 假设文件为 tumor.bam, normal.bam 及对应的 .bai
2. 运行体细胞变异检测¶
# 设置输入输出路径
TUMOR_BAM=/path/to/tumor.bam
NORMAL_BAM=/path/to/normal.bam
REFERENCE=/path/to/ref.fa
OUTPUT_VCF=/path/to/output.vcf
MODEL="ont_r10_dorado_sup_5khz_ssrs" # 推荐模型
# 运行 ClairS
docker run -v $(pwd):/data hkubal/clairs:latest \
run_clairs.sh \
--tumor_bam /data/tumor.bam \
--normal_bam /data/normal.bam \
--ref /data/ref.fa \
--model ${MODEL} \
--output /data/output.vcf \
--snv_min_qual 30 \ # SNV 最小 QUAL 阈值(默认 30)
--indel_min_qual 30 \ # INDEL 最小 QUAL 阈值(默认 30)
--threads 16 # 线程数
3. 针对特定平台的模型选择示例¶
# ONT R10 4 kHz 旧数据
--model ont_r10_dorado_sup_4khz
# PacBio Revio
--model hifi_revio_ssrs
# Illumina
--model ilmn_ssrs
4. 后处理:结合 LongPhase-S 过滤低置信度变异¶
(需单独安装 LongPhase-S)
# 先使用 LongPhase-S 对 ClairS 的输出进行体细胞单倍型定相
longphase-s --somatic_vcf clairs_output.vcf --tumor_bam tumor.bam --normal_bam normal.bam --ref ref.fa --out phased_somatic
# ClairS 输出的 VCF 中与体细胞单倍型不一致的变异会被标记为 “LowQual”
# 可用 bcftools 筛选 PASS 变异
bcftools view -f PASS clairs_output.vcf > clairs_pass_only.vcf
常见问题¶
Q1:如何为我的数据选择合适的模型?¶
A:优先使用 ssrs 模型(如 ont_r10_dorado_sup_5khz_ssrs),它在多癌种真实数据上增强训练,泛化能力更强。当您的肿瘤类型(如罕见癌种)未出现在训练所用的四种细胞系(乳腺癌和肺癌)中,且您担心跨癌种偏差时,可保守选择 ss 模型。对于 PacBio Revio 和 Illumina,直接使用对应的 hifi_revio_ssrs 或 ilmn_ssrs 模型。
Q2:我的 ONT 数据是用 4 kHz 试剂盒测的,能否用 5 kHz 模型?¶
A:不推荐。尽管 v0.4.4 文档给出了 5 kHz 模型在 4 kHz 数据上的基准性能以供参考,但两种化学试剂的信号特征存在差异,通常会导致性能下降。官方建议继续使用专用模型 ont_r10_dorado_sup_4khz,但请注意该模型将不再更新。
Q3:如何调整 SNV 和 Indel 的输出质量阈值?¶
A:在 v0.4.2 及以上版本,使用 --snv_min_qual 和 --indel_min_qual 分别设置。也可在模型目录的 model_specific_settings.conf 中添加 snv_min_qual=XX 和 indel_min_qual=XX 实现全局默认值。低于阈值的变异仍会出现在 VCF 中,但会被标记为 LowQual 或直接被过滤(取决于输出设置)。
Q4:ClairS 对 Indel 的灵敏度如何?如何优化 Indel 检测?¶
A:在 ONT 平台上,v0.4.0 起默认最低体细胞等位基因频率(AF)已调整为 0.1。如果您需要检测更低频率的 Indel,可使用 --indel_min_af 降低阈值,但可能增加假阳性。建议在 ONT 数据上结合 --indel_min_qual 提高阈值,或使用 ssrs 模型以获得更好的 Indel 精度。
Q5:如何评估结果的可信度?¶
A:可通过 QUAL 值、VAF 以及 PASS 标识初步筛选。更严谨的评估建议结合 LongPhase-S 进行体细胞单倍型一致性分析,假阳性变异往往与单倍型冲突。另外,可与独立验证集或正交技术(如靶向深度测序)比较。
速查表¶
常用命令行选项¶
| 选项 | 说明 | 默认值 |
|---|---|---|
--tumor_bam | 肿瘤样本 BAM 文件路径 | 必需 |
--normal_bam | 正常样本 BAM 文件路径 | 必需 |
--ref | 参考基因组 FASTA 文件 | 必需 |
--model | 预训练模型名称 | 必需 |
--output | 输出 VCF 文件路径 | 必需 |
--snv_min_qual | SNV 最低 QUAL 值,低于则标记/过滤 | 30 |
--indel_min_qual | INDEL 最低 QUAL 值 | 30 |
--indel_min_af | INDEL 最小等位基因频率 | ONT: 0.1 |
--threads | 并行线程数 | 1 |
可用模型速查¶
| 模型 | 适用平台/化学 | 类型 |
|---|---|---|
ont_r10_dorado_sup_5khz_ssrs | ONT R10.4.1 5 kHz | 混合增强 |
ont_r10_dorado_sup_5khz_ss | ONT R10.4.1 5 kHz | 纯合成 |
ont_r10_dorado_sup_4khz | ONT R10.4.1 4 kHz | 旧版 |
hifi_revio_ssrs | PacBio Revio | 混合增强 |
ilmn_ssrs | Illumina NovaSeq/HiSeq | 混合增强 |
ONT Q20+ 性能速览(VAF ≥ 0.05,HCC1395, 50×/25×)¶
| 指标 | 值 |
|---|---|
| SNV 召回率 | 86.86% |
| SNV 精确率 | 93.01% |
| 当 VAF ≥ 0.2 时 SNV 召回率 | 94.65% |
| 当 VAF ≥ 0.2 时 SNV 精确率 | 96.63% |
相关资源链接¶
- 论文预印本:bioRxiv
- 技术报告:Improving the performance of ClairS and ClairS-TO
- LongPhase-S 集成文档:docs/longphase-s_post-filter.md
- ClairS GitHub 仓库:https://github.com/HKU-BAL/ClairS