Clair3 — 长读测序深度学习变异检测工具¶
一句话说明¶
Clair3(v1.2.0)专为 ONT 和 PacBio 长读数据设计的变异检测工具——它融合了"覆盖堆叠(pileup)"和"全比对(full-alignment)"两种策略,用深度神经网络准确识别SNP和Indel,是长读变异检测的当前最优工具之一。
安装与配置¶
# 方法1:conda安装(推荐,v1.2.0)
conda create -n clair3 python=3.9
conda activate clair3
conda install -c bioconda clair3 # 安装最新稳定版(支持GPU加速,v1.2.0+)
# 验证安装
run_clair3.sh --help # 查看主运行脚本帮助
# 方法2:Docker(最简单,包含所有依赖)
docker pull hkubal/clair3:latest # CPU版本
docker pull hkubal/clair3:latest_gpu # GPU版本(需nvidia-docker)
# 方法3:Singularity(HPC集群)
singularity pull docker://hkubal/clair3:latest
# 下载模型文件(根据测序数据类型选择)
# ONT R10.4.1数据(sup碱基检测)- 最常用
MODEL_DIR=/path/to/models
wget -r -nH --cut-dirs=2 \
https://cdn.oxfordnanoportal.com/software/analysis/rerio/clair3_models/r1041_e82_400bps_sup_v420/ \
-P $MODEL_DIR
核心用法¶
基本变异检测(ONT数据)¶
# 最常用命令(ONT R10.4.1 sup模型)
run_clair3.sh \
--bam_fn=aligned_reads.bam \ # 输入比对BAM(需排序和索引)
--ref_fn=reference.fasta \ # 参考基因组
--threads=16 \ # 线程数
--platform=ont \ # 测序平台:ont 或 hifi
--model_path=/models/r1041_e82_400bps_sup_v420 \ # 模型路径
--output=/clair3_results # 输出目录
PacBio HiFi数据¶
# HiFi数据使用对应模型
run_clair3.sh \
--bam_fn=hifi_reads.bam \
--ref_fn=reference.fasta \
--threads=16 \
--platform=hifi \ # HiFi平台
--model_path=/models/hifi_revio \ # HiFi模型
--output=/clair3_hifi_results
GPU加速(v1.2.0新功能)¶
# GPU加速(v1.2.0起原生支持,速度约5倍提升)
run_clair3.sh \
--bam_fn=aligned_reads.bam \
--ref_fn=reference.fasta \
--threads=16 \
--platform=ont \
--model_path=/models/r1041_e82_400bps_sup_v420 \
--output=/clair3_results \
--use_gpu=True # 开启GPU加速
参数详解¶
| 参数 | 说明 | 示例值 |
|---|---|---|
--bam_fn | 输入BAM文件(需排序和索引) | aligned.bam |
--ref_fn | 参考基因组FASTA | hg38.fasta |
--threads | 线程数 | 16 |
--platform | 测序平台 | ont(ONT)、hifi(PacBio HiFi) |
--model_path | 模型路径 | /models/r1041_e82_400bps_sup_v420 |
--output | 输出目录(自动创建) | clair3_output/ |
--bed_fn | 限定检测区域BED | targets.bed(WES时加速) |
--use_gpu | 开启GPU加速(需CUDA) | True |
--gvcf | 同时输出GVCF | True |
--haploid_sensitive_mode | 单倍型敏感模式(微生物基因组) | 无值flag |
--sample_name | 输出VCF中的样本名 | SAMPLE1 |
实战案例¶
# 完整ONT变异检测流程
REF="hg38.fasta"
# 下载ONT R10.4.1 sup模型(Dorado v5.2碱基检测)
MODEL="/data/models/r1041_e82_400bps_sup_v520"
# 1. 确认BAM已排序和索引
samtools sort -@ 16 -o sorted.bam input.bam
samtools index sorted.bam
# 2. 运行Clair3变异检测
run_clair3.sh \
--bam_fn=sorted.bam \
--ref_fn=$REF \
--threads=32 \
--platform=ont \
--model_path=$MODEL \
--output=clair3_out \
--include_all_ctgs \ # 包含所有染色体(包括非主要)
--gvcf \ # 同时输出GVCF(需要时)
--sample_name=PATIENT_01 2>&1 | tee clair3.log
# 3. 查看输出结果
ls clair3_out/
# merge_output.vcf.gz - 最终合并的VCF
# merge_output.vcf.gz.tbi - VCF索引
# tmp/ - 中间文件
# 4. 统计变异数量
bcftools stats clair3_out/merge_output.vcf.gz | grep "^SN"
# SN 0 number of samples: 1
# SN 0 number of SNPs: 3526891
# SN 0 number of indels: 412356
# 5. 过滤高置信度变异(FILTER=PASS)
bcftools view -f PASS clair3_out/merge_output.vcf.gz \
-o clair3_pass.vcf.gz -O z
tabix -p vcf clair3_pass.vcf.gz
# 6. 下游单倍型分型(WhatsHap)
whatshap phase \
--output phased.vcf.gz \
--reference $REF \
clair3_pass.vcf.gz \
sorted.bam
tabix -p vcf phased.vcf.gz
常见报错与解决¶
报错1:Error: model_path does not exist or model files are missing - 原因:模型路径不正确,或模型文件未下载完整 - 解决:确认模型目录下有pileup.data-00000-of-00002等文件;重新下载模型
报错2:变异数量异常少(SNP<100万,对人类WGS) - 原因:模型与测序化学版本不匹配(如用R9模型处理R10数据) - 解决:ONT R9数据用r941_*前缀模型;R10.4.1数据用r1041_e82_*模型;查看Rerio模型仓库
报错3:GPU加速报错 CUDA out of memory - 原因:GPU显存不足 - 解决:减少--threads参数;或不使用GPU(去掉--use_gpu=True)
速查表¶
| 命令/参数 | 说明 |
|---|---|
--platform=ont | ONT数据 |
--platform=hifi | PacBio HiFi数据 |
r1041_e82_400bps_sup_v420 | ONT R10.4.1 SUP模型 |
--use_gpu=True | GPU加速(v1.2.0+,约5倍提速) |
--gvcf | 同时输出GVCF |
--bed_fn | 限定分析区域(加速WES分析) |
merge_output.vcf.gz | 最终合并VCF结果 |
--include_all_ctgs | 包含所有染色体scaffold |
--haploid_sensitive_mode | 适合微生物(单倍型)基因组 |
| v2.0 注意 | v2.0已切换到PyTorch(TF模型不兼容) |