跳转至

摘要: nallo 是由 Genomic Medicine Sweden 开发的一款基于 Nextflow 框架的生物信息学分析流程,专为 PacBio 和 ONT 长读长测序数据设计,聚焦于罕见病的基因组分析。该流程整合了多种业界主流工具,覆盖从变异检测到功能注释的完整分析链路。在变异检测方面,流程使用 DeepVariant 和 GLNexus 进行单核苷酸变异(SNV)检测与联合基因分型,利用 Severus、Sniffles 或 Sawfish 检测结构变异(SV),借助 HiFiCNV 检测拷贝数变异(CNV),并通过 TRGT 或 STRdust 分析串联重复序列。流程还支持利用 LongPhase、WhatsHap 或 HiPhase 进行单倍型分型与读段标记,使用 modkit 或 pb-CpG-tools 生成甲基化图谱,并可通过 MethBat 开展罕见甲基化分析。在注释层面,流程集成了 gnomAD、ClinVar、CADD 等数据库,结合 echtvar、VEP、SVDB 等工具对 SNV、INDEL 和 SV 进行全面注释,并使用 GENMOD 对变异进行致病性排序,最后通过 filter_vep 和 bcftools 完成变异过滤。该流程深受 nf-core/sarek、nf-core/raredisease 等成熟流程的启发,为长读长测序在临床罕见病诊断中的应用提供了系统化的解决方案。


nallo —— 长读长测序罕见病分析流水线

概述

nallo(全称 genomic-medicine-sweden/nallo)是由瑞典基因组医学中心(Genomic Medicine Sweden)开发的一套生物信息学分析流水线(pipeline),专为 PacBio 和(靶向)ONT 长读长测序数据设计,聚焦于罕见病(rare disease)的基因组分析。

该流水线深受多个业界最佳实践流水线的影响,包括 nf-core/sarek、nf-core/raredisease、nf-core/nanoseq、PacBio Human WGS Workflow、epi2me-labs/wf-human-variation 以及 brentp/rare-disease-wf。nallo 整合了从变异检测(variant calling)、分相(phasing)、甲基化分析(methylation analysis)到变异注释(annotation)、排序(ranking)和过滤(filtering)的完整分析链路,为临床和科研人员提供了一站式的罕见病长读长测序数据分析解决方案。

nallo 基于 Nextflow 工作流管理框架构建,遵循 nf-core 社区规范,支持 Docker、Singularity 等多种容器化部署方式,具有高度的可复现性和可移植性。

核心原理与功能

nallo 流水线覆盖了长读长测序数据分析的多个关键环节,以下按功能模块逐一说明:

1. 变异检测(Variant Calling)

1.1 SNV 与联合基因分型(SNV Calling & Joint Genotyping)

  • 使用 DeepVariant 进行单核苷酸变异(SNV, Single Nucleotide Variant)检测
  • 使用 GLNexus 进行联合基因分型(joint genotyping),支持多样本分析

1.2 结构变异检测(SV Calling)

  • 支持 SeverusSnifflesSawfish(仅限 PacBio 数据)进行结构变异(SV, Structural Variant)检测

1.3 拷贝数变异检测(CNV Calling)

  • 使用 HiFiCNV 进行拷贝数变异(CNV, Copy Number Variant)检测

1.4 串联重复检测(Tandem Repeat Calling)

  • 使用 TRGT(仅限 PacBio 数据)或 STRdust 进行串联重复(tandem repeat)检测

1.5 旁系同源基因检测(Paralogous Gene Calling)

  • 使用 Paraphase(仅限 PacBio 数据)进行旁系同源基因(paralogous gene)检测

2. 分相与单倍型标记(Phasing & Haplotagging)

  • 支持 LongPhaseWhatsHapHiPhase 进行读段分相(phasing)和单倍型标记(haplotagging)

3. 甲基化分析(Methylation Analysis)

  • 使用 modkitpb-CpG-tools(pbcpgtools,仅限 PacBio 数据)生成甲基化堆叠图(methylation pileup)
  • 使用 MethBat profile(methbat profile,仅限 PacBio 数据)进行罕见甲基化分析(rare methylation analysis)

4. 变异注释(Variant Annotation)

4.1 SNV 与 INDEL 注释

  • 使用 echtvarVEP(Variant Effect Predictor)对 SNV 和 INDEL 进行注释
  • 支持的注释数据库包括:gnomAD(人群等位基因频率数据库)、ClinVar(临床变异数据库)、CADD(致病性评分数据库)等用户自选数据库

4.2 重复序列扩展注释(Repeat Expansion Annotation)

  • 使用 strdropstranger(仅针对 TRGT 结果)对重复序列扩展进行注释

4.3 结构变异注释(SV Annotation)

  • 使用 SVDBVEP 对结构变异进行注释

5. 变异排序(Variant Ranking)

  • 使用 GENMOD 对 SNV、INDEL、SV 和 CNV 进行优先级排序(ranking)

6. 变异过滤(Variant Filtering)

  • 使用 filter_vepbcftools 对 SNV、INDEL、SV 和 CNV 进行过滤

平台兼容性说明

功能PacBioONT
Sawfish (SV 检测)
TRGT (串联重复检测)
Paraphase (旁系同源基因检测)
pb-CpG-tools (甲基化堆叠)
MethBat profile (罕见甲基化分析)
STRdust (串联重复检测)
modkit (甲基化堆叠)
Severus / Sniffles (SV 检测)

安装与使用

环境准备

nallo 基于 Nextflow 构建。如果您是 Nextflow 和 nf-core 的新用户,请先参阅 nf-core 官方文档完成 Nextflow 的安装与配置。建议在运行实际数据前,先使用 -profile test 测试您的环境配置。

第一步:准备样本信息表(samplesheet)

创建一个 CSV 格式的样本信息文件 samplesheet.csv,包含以下字段:

# samplesheet.csv
# project: 项目名称
# sample: 样本名称
# file: 输入文件路径(支持 .fastq.gz 和 .bam 格式)
# family_id: 家系 ID
# paternal_id: 父亲样本 ID(无则填 0)
# maternal_id: 母亲样本 ID(无则填 0)
# sex: 性别(1=男, 2=女)
# phenotype: 表型(1=未患病, 2=患病)
project,sample,file,family_id,paternal_id,maternal_id,sex,phenotype
my_project,HG002,/path/to/HG002.fastq.gz,NIST,HG003,HG004,1,2
my_project,HG003,/path/to/HG003.bam,NIST,0,0,1,1
my_project,HG004,/path/to/HG004.bam,NIST,0,0,2,1

第二步:运行流水线

使用 --fasta 参数指定参考基因组,使用 --preset 参数选择与数据匹配的预设方案:

# 运行 nallo 流水线
nextflow run genomic-medicine-sweden/nallo \
  -profile <docker/singularity/.../institute> \  # 选择容器化方案或机构配置
  --input samplesheet.csv \                       # 指定样本信息表
  --preset <revio/pacbio/ONT_R10> \               # 选择数据预设(revio/pacbio/ONT_R10)
  --fasta <reference.fasta> \                     # 指定参考基因组 FASTA 文件
  --outdir <OUTDIR>                               # 指定输出目录

预设方案说明

预设值适用平台
revioPacBio Revio 测序仪数据
pacbioPacBio 通用数据
ONT_R10Oxford Nanopore R10 化学试剂数据

注意事项

要运行流水线的大部分功能,除了参考基因组外,还需要提供额外的参考文件(如注释数据库等)。更多细节和高级功能请参阅 nallo 的官方文档。

实战示例

场景一:罕见病家系三人组(Trio)分析

以经典的 GIAB(Genome in a Bottle)三人组家系为例:HG002(先证者/患病)、HG003(父亲/未患病)、HG004(母亲/未患病)。

第一步:编写样本信息表

# 三人组家系样本信息表
# HG002 为先证者(phenotype=2 表示患病),父母分别为 HG003 和 HG004
# HG003 和 HG004 的 paternal_id 和 maternal_id 均为 0,表示无上一代信息
project,sample,file,family_id,paternal_id,maternal_id,sex,phenotype
my_project,HG002,/path/to/HG002.fastq.gz,NIST,HG003,HG004,1,2
my_project,HG003,/path/to/HG003.bam,NIST,0,0,1,1
my_project,HG004,/path/to/HG004.bam,NIST,0,0,2,1

第二步:使用 PacBio Revio 预设运行

# 以 PacBio Revio 数据为例,使用 Singularity 容器运行
nextflow run genomic-medicine-sweden/nallo \
  -profile singularity \          # 使用 Singularity 容器
  --input samplesheet.csv \       # 输入样本信息表
  --preset revio \                # 使用 Revio 预设
  --fasta /ref/GRCh38.fasta \    # GRCh38 参考基因组
  --outdir results_trio           # 输出目录

场景二:使用测试配置验证环境

在正式运行前,建议先使用内置的测试配置验证环境是否正确配置:

# 使用测试配置文件运行,验证 Nextflow 与容器环境是否可用
nextflow run genomic-medicine-sweden/nallo \
  -profile test,docker    # 使用 test 配置和 Docker 容器

场景三:ONT 靶向测序数据分析

对于 Oxford Nanopore 靶向测序数据,选择 ONT_R10 预设:

# ONT R10 数据分析
nextflow run genomic-medicine-sweden/nallo \
  -profile docker \               # 使用 Docker 容器
  --input ont_samplesheet.csv \   # ONT 样本信息表
  --preset ONT_R10 \              # 使用 ONT R10 预设
  --fasta /ref/GRCh38.fasta \    # 参考基因组
  --outdir results_ont            # 输出目录

常见问题

Q1: nallo 支持哪些测序平台的数据?

nallo 支持两大长读长测序平台的数据:PacBio(包括 Revio 和其他 PacBio 机型)和 Oxford Nanopore Technologies (ONT)(靶向测序数据)。通过 --preset 参数选择 reviopacbioONT_R10 来匹配您的数据类型。需要注意的是,部分工具(如 Sawfish、TRGT、Paraphase、pb-CpG-tools、MethBat profile)仅支持 PacBio 数据。

Q2: 输入数据支持哪些文件格式?

从样本信息表(samplesheet)的示例来看,nallo 支持 .fastq.gz(压缩 FASTQ)和 .bam(比对后的 BAM 文件)两种输入格式。不同样本可以使用不同的输入格式。

Q3: 除了参考基因组外,还需要准备哪些参考文件?

运行流水线的基础功能只需参考基因组(--fasta),但要启用完整的注释和过滤功能,需要额外提供注释数据库文件,例如 gnomAD、ClinVar、CADD 等。具体所需的参考文件和配置方式,请参阅 nallo 的官方文档。

Q4: 如何在不同计算环境中部署 nallo?

nallo 通过 -profile 参数支持多种部署方式:docker(Docker 容器)、singularity(Singularity 容器)以及各机构自定义的配置文件。对于 HPC(高性能计算集群)环境,通常推荐使用 Singularity。建议首次运行时使用 -profile test 验证环境配置。

Q5: 如何引用 nallo?

如果您在分析中使用了 nallo,请使用以下 DOI 进行引用:10.5281/zenodo.13748210。此外,nallo 使用了 nf-core 社区开发的代码和基础设施(MIT 许可证),相关引用为:Philip Ewels 等人发表于 Nature Biotechnology 的 nf-core 框架论文(doi: 10.1038/s41587-020-0439-x)。流水线生成的 MultiQC 报告中的"Software Versions"部分包含了所有使用工具的完整参考文献列表。

总结

nallo 是一套由瑞典基因组医学中心开发的、专注于罕见病分析的长读长测序生物信息学流水线。它整合了业界领先的分析工具,覆盖了从 SNV/SV/CNV/串联重复检测、分相与单倍型标记、甲基化分析,到变异注释、排序和过滤的完整工作流程。

该流水线同时支持 PacBio 和 ONT 两大长读长测序平台,通过简单的 --preset 参数即可适配不同数据类型。基于 Nextflow 框架和 nf-core 社区规范构建,nallo 具备良好的可复现性、可扩展性和跨平台移植能力。其样本信息表设计天然支持家系分析(如 trio 分析),使其非常适合临床罕见病基因组学研究场景。

nallo 最初由 Felix Lenner 编写,并得到了多位开发者的贡献与维护,是一个活跃的开源项目。