跳转至

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参考基因组FASTAhg38.fasta
--threads线程数16
--platform测序平台ont(ONT)、hifi(PacBio HiFi)
--model_path模型路径/models/r1041_e82_400bps_sup_v420
--output输出目录(自动创建)clair3_output/
--bed_fn限定检测区域BEDtargets.bed(WES时加速)
--use_gpu开启GPU加速(需CUDA)True
--gvcf同时输出GVCFTrue
--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=ontONT数据
--platform=hifiPacBio HiFi数据
r1041_e82_400bps_sup_v420ONT R10.4.1 SUP模型
--use_gpu=TrueGPU加速(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模型不兼容)