关于 alterlab-nf-core-sarek
alterlab-nf-core-sarek 是用于驱动 nf-core/sarek 的生物信息学技能,将短读长 FASTQ 处理为变异 VCF。适合需要可复现胚系或体细胞变异分析的研究者,并提供无 Nextflow 时的 GATK4 手动流程参考。
主要功能
- 01FASTQ 到 VCF 的分析流程
- 02胚系与体细胞变异检测
- 03显式选择变异调用工具
- 04样本表生成与校验
- 05支持中间步骤续跑
适用场景
- 01对 WGS 或 WES 短读长数据进行变异检测
- 02分析配对肿瘤与正常样本
- 03从 BAM 或 CRAM 恢复并继续流程
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alterlab-ieu/ alterlab-academic-skills --skill alterlab-nf-core-sarek安装后在 Claude Code 中输入/alterlab-nf-core-sarek确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
evals/evals.jsonreferences/caller_accuracy.mdmanual_gatk4.mdsamplesheet_schema.mdusage_3.10.0.mdscripts/make_samplesheet.py详细介绍
nf-core/sarek — FASTQ 到 VCF 变异检测
从原始 reads 到变异的工作流运行入口:运行
Nextflow nf-core/sarek 流水线(固定为 -r 3.10.0)
处理生殖系或体细胞短读长 FASTQ,完成比对、GATK4 重复标记和碱基质量重校准,以及 SNV/indel 检测,随后将生成的 VCF 交给套件中的数据库和解析技能进行解读。
此技能是套件中基于 Python 库的生物信息学技能的命令行/工作流对应方案。用于原始数据到 VCF 这一步;已有 VCF 后,则使用库技能(alterlab-pysam、alterlab-tiledbvcf)。
何时使用此技能
当用户想要执行以下操作时,触发此技能:
- 从 FASTQ 转到 VCF——对全基因组(WGS)或全外显子组(WES)短读长数据进行变异检测。
- 运行生殖系 SNV/indel 检测(一个或多个正常样本)。
- 运行体细胞/肿瘤-正常检测(配对的肿瘤和正常样本,或仅肿瘤样本)。
- 特别使用 nf-core/sarek,或想要可复现的“GATK 最佳实践比对到 VCF”流水线,而不想手动编写每个步骤。
- 从中间的
--step恢复运行(已有 BAM/CRAM,只需进行重校准或变异检测)。
不适用——将相关请求转到这里
| 用户实际想要的是…… | 转到 |
|---|---|
| 在 Python 中解析/筛选/读取已有 VCF/BAM(pysam/htslib) | alterlab-pysam |
| 存储/查询大型多样本变异存储(TileDB-VCF 数组) | alterlab-tiledbvcf |
| 解读已检测变异的临床意义(致病/良性) | alterlab-clinvar |
| 查询已检测变异的人群等位基因频率 | alterlab-gnomad |
| 查询体细胞突变目录/癌症普查 | alterlab-cosmic |
| RNA-seq 转录本/基因定量(salmon/kallisto),而不是 DNA 变异 | alterlab-rnaseq-quant |
| 16S/ITS 扩增子/微生物组 FASTQ → 特征表 | alterlab-qiime2-amplicon |
| 序列同源性/相似性搜索(BLAST+、DIAMOND) | alterlab-blast |
| 空间转录组邻域/SVG 分析 | alterlab-squidpy-spatial |
| 根据计数数据进行差异表达统计 | alterlab-pydeseq2 |
如果用户没有工作流引擎,且无法安装 Nextflow 和容器,不要拒绝——改用手动 GATK4 配方(见下文/references/manual_gatk4.md)。
第一大正确性陷阱:sarek 的默认 caller 是 Strelka
根据 3.10.0 用法文档,未设置 --tools 时,sarek 只会运行预处理,然后运行 Strelka。它不会默认使用 GATK HaplotypeCaller 或 DeepVariant。务必显式设置 --tools,以符合用户意图:
| 意图 | 传入参数 |
|---|---|
| GATK4 最佳实践生殖系检测 | --tools haplotypecaller |
| 最高生殖系 F1(CNN) | --tools deepvariant |
| 体细胞配对肿瘤/正常检测 | --tools mutect2(通常为 mutect2,strelka) |
| 跨队列联合生殖系分型 | --tools haplotypecaller --joint_germline |
| GPU 加速的生殖系检测(需要 NVIDIA GPU 配置) | --tools parabricks_haplotypecaller |
(根据 3.10.0 架构)--tools 接受:deepvariant、freebayes、
haplotypecaller、parabricks_haplotypecaller、mutect2、lofreq、mpileup、
muse、strelka、sentieon_*、结构变异 caller(manta、tiddit、
indexcov)、CNV/纯度工具(ascat、cnvkit、controlfreec)、质控工具
(ngscheckmate、msisensorpro)、varlociraptor,以及注释工具
(snpeff、vep、snpsift、bcfann)。caller 的选择会显著影响精确率和召回率——参见 references/caller_accuracy.md 中的 nf-core 基准测试(Hanssen 等,2024)。
流水线(如何运行)
1. 构建样本表
sarek 的输入是 CSV。--step mapping 必需的列:
patient、sample、lane、fastq_1、fastq_2。可选列:sex(XX/XY,
默认 NA)和 status(0 = 正常,1 = 肿瘤,默认 0)——status
用于告知 sarek 一对样本是否为体细胞样本。
使用辅助工具从 FASTQ 目录生成有效的样本表(它会配对 R1/R2、
填写 lane,并在消耗计算资源前验证架构):
uv run python skills/bioinformatics/alterlab-nf-core-sarek/scripts/make_samplesheet.py \
--fastq-dir ./fastq --patient PATIENT_01 --sample TUMOR_01 \
--status 1 --sex XY --out samplesheet.csv
运行前,追加更多行(例如,使用 --status 0 --append 添加匹配的正常样本)。
所有列、BAM/CRAM 重新输入行和肿瘤-正常示例,请参阅 references/samplesheet_schema.md。
2. 运行流程(固定版本)
nextflow run nf-core/sarek -r 3.10.0 \
-profile docker \
--input samplesheet.csv \
--outdir ./results \
--genome GATK.GRCh38 \
--tools haplotypecaller \
--aligner bwa-mem2
- 始终保留
-r 3.10.0——不固定版本的运行会漂移到不同的流程版本。 -profile必填:针对本地环境,使用docker、singularity、apptainer或conda(集群还会添加test、机构配置等)。--genome GATK.GRCh38会选择 iGenomes/GATK GRCh38 参考基因组,并自动使用其 捆绑的 BQSR 已知位点(dbSNP、Mills/1000G indels)。--aligner选项:bwa-mem(默认)、bwa-mem2、dragmap、sentieon-bwamem、parabricks(GPU)。- 对于 WES/靶向 panel,同时传入
--wes和--intervals targets.bed:--intervals限定变异检测的区域,而--wes会将工具切换为靶向测序设置。未传入--wes运行的外显子组数据也会顺利完成, 但会使用针对 WGS 调优的阈值。 - 使用
--step(默认mapping,之后依次为markduplicates、prepare_recalibration、recalibrate、variant_calling、annotate)和 Nextflow 的-resume,从流程中途恢复运行。
预处理遵循 GATK 最佳实践:比对 → MarkDuplicates →
BaseRecalibrator/ApplyBQSR(BQSR)→ 变异检测。详情和所有标志参数:
references/usage_3.10.0.md。
3. 解读输出 VCF
各调用工具生成的 VCF 位于 results/variant_calling/<tool>/ 下。然后:
- 使用
alterlab-pysam解析 / 过滤。 - 使用
alterlab-tiledbvcf大规模存储 / 查询(多样本)。 - 注释临床意义 →
alterlab-clinvar;人群频率 →alterlab-gnomad;体细胞目录 →alterlab-cosmic。
备选方案:手动运行 GATK4(不使用 Nextflow)
如果用户无法运行 Nextflow + 容器,则手动运行等效的 GATK4
最佳实践流程:bwa-mem2 mem → gatk MarkDuplicates →
gatk BaseRecalibrator + gatk ApplyBQSR(使用 dbSNP + Mills/1000G 已知
位点)→ gatk HaplotypeCaller -ERC GVCF → gatk GenotypeGVCFs。完整命令
序列和资源包路径见 references/manual_gatk4.md。
报告前自检
- 是否明确设置了
--tools?除非用户确实需要 Strelka,否则绝不要让运行落入其默认设置。 - 是否固定了版本(
-r 3.10.0)、选定了-profile,且 Nextflow 版本是否>=25.10.4(3.10.0 版本所需)? - 对于体细胞分析请求,样本表是否包含
status 1的肿瘤样本 和 同一patient下status 0的正常样本? - 对于 WES/靶向 panel,是否同时提供了
--wes和--intervals <capture.bed>? - 运行结束后,是否将 VCF 解读交给了正确的相关技能,而不是在此处重新推导变异含义?
参考资料
references/usage_3.10.0.md— 固定版本的运行命令、配置方案、--step/--aligner选项、--wes+--intervals的搭配、BQSR 预处理;内容源自 3.10.0 使用文档。references/samplesheet_schema.md— 完整的 CSV 列规范、BAM/CRAM 重新输入、 肿瘤-正常示例。references/caller_accuracy.md— 选择--tools,总结 nf-core 基准测试(Hanssen et al., 2024, NAR Genomics & Bioinformatics)。references/manual_gatk4.md— 不使用 Nextflow 时的 GATK4 最佳实践备选方案。
AlterLab Academic Skills 套件的一部分。