当前位置: 首页 > news >正文

Sentieon | TNscope 分析流程详解

一、前言

在肿瘤基因组学研究中,精准识别体细胞变异位点(call somatic mutations)是解析肿瘤发生机制、寻找用药靶点与监控疗效的核心基础。然而,由于肿瘤样本的异质性和测序噪音,高灵敏度和高特异性的变异检测极具挑战。

Sentieon 的 TNscope 模块为此提供了高效解决方案,TNscope 流程采用了优化的机器学习算法,能在极大提升分析速度的同时,显著提高体细胞点突变与插入缺失检测的灵敏度与准确性,尤其擅长处理低丰度变异。该模块已成为肿瘤精准医疗与大规模测序项目中不可或缺的生信分析工具。

下图展示了利用 Sentieon 软件的 TNscope 模块进行体细胞变异和结构变异检测,从而运行仅针对肿瘤或肿瘤-正常组织样本的生物信息学分析流程。

图1 Sentieon TNscope 的生物信息学分析流程


二、流程总览

1. 概述

在这个生物信息学流程中,你需要以下输入:

  1. 参考基因组 FASTA 文件。

  2. 两组包含待分析样本核苷酸序列的 FASTQ 文件,一组用于肿瘤样本,一组用于匹配正常样本。这些文件包含 DNA 测序的原始读段。该软件支持输入使用 GZIP 压缩的 FASTQ 文件。该软件仅支持包含桑格格式(Phred+33)高质量评分的文件。

  3. (可选)单核苷酸多态性数据库(dbSNP)数据。数据以 VCF 文件的形式使用。

  4. (可选)多个已知位点数据。数据以 VCF 文件的形式使用。

以下步骤构成肿瘤正常匹配对的典型生物信息学流程:

  1. 对肿瘤样本和正常样本,分别采用类似于“DNAseq® 典型使用流程”中所介绍的DNA测序流程,进行独立的前处理,包括以下步骤:

    • 将测序读数比对到参考基因组上;你需要确保肿瘤样本和正常样本的 SM 标签不同,因为在体细胞变异检测中,这将被用作一个参数。同时,你还需要确保两个样本的 RG:ID 是不同且唯一的。

    • 统计数据指标。

    • 删除重复序列。

    • (可选)基础质量评分重新校准(BQSR)。

  2. 体细胞变异检测:此步骤旨在识别肿瘤基因组数据中相较于正常基因组存在体细胞变异的位点,并计算该位点的基因型。

2. 分析流程步骤

(1)比对

使用多线程时,为了保持 bwa 输出结果的一致性,需要添加-K 10000000参数。

# ****************************************** # 1a. Mapping reads with BWA-MEM, sorting for tumor sample # ****************************************** #The results of this call are dependent on the number of threads used. To have number of threads independent results, add chunk size option -K 10000000 ( $SENTIEON_INSTALL_DIR/bin/sentieon bwa mem -R "@RG\tID:$TUMOR_RGID\tSM:$TUMOR_SM\tPL:$PL" \ -t $NT -K 10000000 $FASTA$TUMOR_FASTQ_1$TUMOR_FASTQ_2 || \ { echo -n 'BWA error'; exit 1; } ) | \ $SENTIEON_INSTALL_DIR/bin/sentieon util sort -o tumor_sorted.bam -t $NT --sam2bam -i - || \ { echo"Alignment1 failed"; exit 1; } # ****************************************** # 1b. Mapping reads with BWA-MEM, sorting for normal sample # ****************************************** #The results of this call are dependent on the number of threads used. To have number of threads independent results, add chunk size option -K 10000000 ( $SENTIEON_INSTALL_DIR/bin/sentieon bwa mem -R "@RG\tID:$NORMAL_RGID\tSM:$NORMAL_SM\tPL:$PL" \ -t $NT -K 10000000 $FASTA$NORMAL_FASTQ_1$NORMAL_FASTQ_2 || \ { echo -n 'BWA error'; exit 1; } ) | \ $SENTIEON_INSTALL_DIR/bin/sentieon util sort -o normal_sorted.bam -t $NT --sam2bam -i - || \ { echo"Alignment2 failed"; exit 1; }

(2)统计质控和质控绘图

# ****************************************** # 2a. Metrics for tumor sample # ****************************************** $SENTIEON_INSTALL_DIR/bin/sentieon driver -r $FASTA -t $NT -i tumor_sorted.bam \ --algo MeanQualityByCycle tumor_mq_metrics.txt \ --algo QualDistribution tumor_qd_metrics.txt --algo GCBias \ --summary tumor_gc_summary.txt tumor_gc_metrics.txt --algo AlignmentStat \ --adapter_seq '' tumor_aln_metrics.txt \ --algo InsertSizeMetricAlgo tumor_is_metrics.txt \ --algo CoverageMetrics tumor_coverage_metrics || \ { echo"Metrics1 failed"; exit 1; } $SENTIEON_INSTALL_DIR/bin/sentieon plot GCBias -o tumor_gc-report.pdf tumor_gc_metrics.txt $SENTIEON_INSTALL_DIR/bin/sentieon plot QualDistribution \ -o tumor_qd-report.pdf tumor_qd_metrics.txt $SENTIEON_INSTALL_DIR/bin/sentieon plot MeanQualityByCycle \ -o tumor_mq-report.pdf tumor_mq_metrics.txt $SENTIEON_INSTALL_DIR/bin/sentieon plot InsertSizeMetricAlgo \ -o tumor_is-report.pdf tumor_is_metrics.txt # ****************************************** # 2b. Metrics for normal sample # ****************************************** $SENTIEON_INSTALL_DIR/bin/sentieon driver -r $FASTA -t $NT -i normal_sorted.bam \ --algo MeanQualityByCycle normal_mq_metrics.txt \ --algo QualDistribution normal_qd_metrics.txt --algo GCBias \ --summary normal_gc_summary.txt normal_gc_metrics.txt --algo AlignmentStat \ --adapter_seq '' normal_aln_metrics.txt \ --algo InsertSizeMetricAlgo normal_is_metrics.txt \ --algo CoverageMetrics normal_coverage_metrics || \ { echo"Metrics2 failed"; exit 1; } $SENTIEON_INSTALL_DIR/bin/sentieon plot GCBias -o normal_gc-report.pdf normal_gc_metrics.txt $SENTIEON_INSTALL_DIR/bin/sentieon plot QualDistribution \ -o normal_qd-report.pdf normal_qd_metrics.txt $SENTIEON_INSTALL_DIR/bin/sentieon plot MeanQualityByCycle \ -o normal_mq-report.pdf normal_mq_metrics.txt $SENTIEON_INSTALL_DIR/bin/sentieon plot InsertSizeMetricAlgo \ -o normal_is-report.pdf normal_is_metrics.txt

如果输入样本是WGS也可以添加一步统计:

$SENTIEON_INSTALL_DIR/bin/sentieon driver --temp_dir $TMPDIR -r $FASTA -t $NT \ -i tumor_sorted.bam --algo WgsMetricsAlgo tumor.wgs_metrics.txt $SENTIEON_INSTALL_DIR/bin/sentieon driver --temp_dir $TMPDIR -r $FASTA -t $NT \ -i normal_sorted.bam --algo WgsMetricsAlgo normal.wgs_metrics.txt

Dedup模块默认是标记重复 reads ,如果需要删除重复 reads ,可以添加--rmdup参数。

# ****************************************** # 3a. Remove Duplicate Reads for tumor # sample. It is possible # to remove instead of mark duplicates # by adding the --rmdup option in Dedup # ****************************************** $SENTIEON_INSTALL_DIR/bin/sentieon driver -t $NT -i tumor_sorted.bam --algo LocusCollector \ --fun score_info tumor_score.txt || { echo"LocusCollector1 failed"; exit 1; } $SENTIEON_INSTALL_DIR/bin/sentieon driver -t $NT -i tumor_sorted.bam --algo Dedup \ --score_info tumor_score.txt --metrics tumor_dedup_metrics.txt tumor_deduped.bam || \ { echo"Dedup1 failed"; exit 1; } # ****************************************** # 3b. Remove Duplicate Reads for normal # sample. It is possible # to remove instead of mark duplicates # by adding the --rmdup option in Dedup # ****************************************** $SENTIEON_INSTALL_DIR/bin/sentieon driver -t $NT -i normal_sorted.bam --algo LocusCollector \ --fun score_info normal_score.txt || { echo"LocusCollector2 failed"; exit 1; } $SENTIEON_INSTALL_DIR/bin/sentieon driver -t $NT -i normal_sorted.bam --algo Dedup \ --score_info normal_score.txt --metrics normal_dedup_metrics.txt normal_deduped.bam || \ { echo"Dedup2 failed"; exit 1; }

3. 兼顾配对与无配对样本的体细胞变异分析

只需执行一个指令,即可调用肿瘤-正常匹配对的变异。

sentieon driver -t NUMBER_THREADS -r REFERENCE \ -i TUMOR_DEDUPED_BAM [-q TUMOR_RECAL_DATA.TABLE] \ -i NORMAL_DEDUPED_BAM [-q NORMAL_RECAL_DATA.TABLE] \ --algo TNscope \ --tumor_sample TUMOR_SAMPLE_NAME --normal_sample NORMAL_SAMPLE_NAME \ [--dbsnp DBSNP] OUT_TN_VCF

过 Normal BAM 文件和 Normal 名输入,因为这些不是必需的;但由于缺乏正常样本,生殖系变异会出现在输出文件中:

sentieon driver -t NUMBER_THREADS -r REFERENCE \ -i TUMOR_DEDUPED_BAM [-q TUMOR_RECAL_DATA.TABLE] \ --algo TNscope --tumor_sample TUMOR_SAMPLE_NAME \ [--dbsnp DBSNP] OUT_TN_VCF

为了在缺少匹配正常样本时过滤生殖系变异,你可以用通用 PON 替换匹配的正常样本,使用下文所述方法生成 PON vcf(Panel of Normal VCF)文件。

只需执行一个命令即可检测 tumor only 样本上的变异:

sentieon driver -t NUMBER_THREADS -r REFERENCE \ -i TUMOR_DEDUPED_BAM [-q TUMOR_RECAL_DATA.TABLE] \ --algo TNscope --tumor_sample TUMOR_SAMPLE_NAME \ --pon PANEL_OF_NORMAL_VCF [--dbsnp DBSNP] OUT_TN_VCF

该命令需要以下输入:

  • 线程数:计算中使用的计算机线程数。建议该数值不要超过系统可用计算核心数。

  • 参考文件:参考 FASTA 文件的位置。请确保此参考文件与映射阶段使用的文件相同。

  • TUMOR_DEDUPED_BAM:肿瘤样本去重后预处理 BAM 文件的位置。

  • NORMAL_DEDUPED_BAM:正常样本去重后预处理 BAM 文件的位置。

  • TUMOR_SAMPLE_NAME:用于将 Map reads 比对到参考阶段的肿瘤样本的样本名称。

  • OUT_TN_VCF:包含变异体的输出文件的位置和文件名。

以下输入参数为可选:

  • TUMOR_RECAL_DATA.TABLE:肿瘤样本的 BQSR 分期结果存储位置。

  • NORMAL_RECAL_DATA.TABLE:NORMAL 样本的 BQSR 阶段存储结果的位置。

  • NORMAL_SAMPLE_NAME:在将读取数据映射到参考序列阶段使用的正常样本名称。

  • DBSNP:单核苷酸多态性数据库 (dbSNP) 的位置。dbSNP 中的变异更有可能被标记为种系变异,因为它们需要更多证据证明在正常人群中不存在。您只能使用一个 dbSNP 文件。

  • PANEL_OF_NORMAL_VCF:普通 VCF 文件中面板的位置和名称。

4. 生成PON VCF

为了生成您自己的用于 TNscope® 的 PON VCF 文件,您需要对 panel 中要使用的每个正常样本运行以下命令:

sentieon driver -t NUMBER_THREADS -r REFERENCE -i NORMAL_DEDUPED_BAM \ [-q NORMAL_RECAL_DATA.TABLE] --algo TNscope \ --tumor_sample NORMAL_SAMPLE_NAME OUT_NORMAL_VCF

该命令需要以下输入:

  • 线程数:计算中使用的计算机线程数。建议该数值不要超过系统可用计算核心数。

  • 参考文件:参考 FASTA 文件的位置。请确保此参考文件与映射阶段使用的文件相同。

  • NORMAL_DEDUPED_BAM:正常样本去重后预处理 BAM 文件的位置。

  • NORMAL_SAMPLE_NAME:在将读取数据映射到参考序列阶段使用的正常样本名称。

  • OUT_NORMAL_VCF:包含输入正常样本相关变异的输出 VCF 文件的位置和名称。

以下输入参数为可选:

  • NORMAL_RECAL_DATA.TABLE:NORMAL 样本的 BQSR 阶段存储结果的位置。

生成所有要包含在面板中的 VCF 文件后,需要将它们合并成一个单独的 Normal VCF 面板。您可以使用 bcftools 来完成此操作:

BCF=/path_to_bcftools export BCFTOOLS_PLUGINS=$BCF/plugins DIR=/path_to_normal_vcf_file $BCF/bcftools merge -m all -f PASS,. --force-samples $DIR/*.vcf.gz |$BCF/bcftools plugin fill-AN-AC |$BCF/bcftools filter -i 'SUM(AC)>1' > panel_of_normal.vcf

官方文档:

  • https://support.sentieon.com/docs/TNscope_usage/tnscope/#

Sentieon TNscope 流程 github 地址:

  • https://github.com/Insvast/bioinformatics/tree/main/TNscope_WGS


三、实际测试运行

本次测序运行使用 GIAB 项目的 HG008 样本和真实生产项目中的 Test 样本的 Fastq 数据作为输入,从而进行 TNscope 分析查看实际的运行效率。

1. Sentieon软件下载安装

  • https://ftp.insvast.com/user/Sentieon/release/sentieon-genomics-202503.03.tar.gz(适配 X86 架构 CPU 服务器,例如 Intel、 AMD、 曙光)

  • https://ftp.insvast.com/user/Sentieon/release/arm-sentieon-genomics-202503.03.tar.gz(适配 ARM 架构 CPU 服务器, 例如华为鲲鹏、 阿里倚天、 Ampere)

  • 软件下载链接需用户名与密码,请于后台发送“Sentieon安装包”进行获取。

2. 测试项目使用配置

  • CPU 为 Intel(R) Xeon(R) Platinum 8358P CPU @ 2.60GHz 64 核心

  • 内存为 512GB DDR4

  • 系统为 Ubuntu 22.04.3 LTS

3. 参考基因组和dbsnp下载

curl -L \ -o 'hg38_ucsc.fa''https://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/genome.fa' \ -o 'hg38_ucsc.fa.fai''https://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/genome.fa.fai' \ -o 'hg38_ucsc.fa.amb''https://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa.amb' \ -o 'hg38_ucsc.fa.ann''https://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa.ann' \ -o 'hg38_ucsc.fa.bwt''https://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa.bwt' \ -o 'hg38_ucsc.fa.pac''https://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa.pac' \ -o 'hg38_ucsc.fa.sa''https://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa.sa' \ -O 'https://storage.googleapis.com/gcp-public-data--broad-references/hg38/v0/Homo_sapiens_assembly38.dbsnp138.vcf.gz' \ -O 'https://storage.googleapis.com/gcp-public-data--broad-references/hg38/v0/Homo_sapiens_assembly38.dbsnp138.vcf.gz.tbi'
# HG008 来自 GIAB项目 wget -c https://42basepairs.com/download/web/giab/data_somatic/HG008/Liss_lab/superseded-2022-data/BCM_ILMN-somatic-analysis_20220816/HG008-N_Illumina_R1.fastq.gz wget -c https://42basepairs.com/download/web/giab/data_somatic/HG008/Liss_lab/superseded-2022-data/BCM_ILMN-somatic-analysis_20220816/HG008-N_Illumina_R2.fastq.gz wget -c https://42basepairs.com/download/web/giab/data_somatic/HG008/Liss_lab/superseded-2022-data/BCM_ILMN-somatic-analysis_20220816/HG008-T_Illumina_R1.fastq.gz wget -c https://42basepairs.com/download/web/giab/data_somatic/HG008/Liss_lab/superseded-2022-data/BCM_ILMN-somatic-analysis_20220816/HG008-T_Illumina_R2.fastq.gz # Test 样本为私有样本,不提供下载

5. 分析运行

sbatch somatic_wgs_TNscope.HG008.sh sbatch somatic_wgs_TNscope.Test.sh

6. 分析结果展示

├── [ 10M] output_tnscope.filtered.vcf.gz ├── [146K] output_tnscope.filtered.vcf.gz.tbi ├── [ 10M] output_tnscope.pre_filter.vcf.gz ├── [146K] output_tnscope.pre_filter.vcf.gz.tbi ├── [ 32K] run.log ├── [1.2K] tumor_aln_metrics.txt ├── [ 79G] tumor_coverage_metrics ├── [8.5K] tumor_coverage_metrics.sample_cumulative_coverage_counts ├── [6.3K] tumor_coverage_metrics.sample_cumulative_coverage_proportions ├── [6.9K] tumor_coverage_metrics.sample_interval_statistics ├── [ 14K] tumor_coverage_metrics.sample_interval_summary ├── [ 12K] tumor_coverage_metrics.sample_statistics ├── [ 160] tumor_coverage_metrics.sample_summary ├── [135G] tumor_deduped.bam ├── [9.0M] tumor_deduped.bam.bai ├── [1.9K] tumor_dedup_metrics.txt ├── [6.0K] tumor_gc_metrics.txt ├── [ 534] tumor_gc_summary.txt ├── [ 12K] tumor_is_metrics.txt ├── [4.3K] tumor_mq_metrics.txt ├── [ 295] tumor_qd_metrics.txt ├── [2.8G] tumor_score.txt ├── [3.0M] tumor_score.txt.idx ├── [134G] tumor_sorted.bam ├── [9.0M] tumor_sorted.bam.bai ├── [3.8K] tumor.wgs_metrics.txt

7. 质控统计

SampleID

Test-normal

Test-tumor

HG008-normal

HG008-tumor

TotalReads

890057280

770464744

3124709250

2912610202

TotalBases(Gb)

133.508592

115.569712

471.831097

439.804141

MappedRate(%)

99.9773

99.9553

99.6472

99.7546

Duplicate(%)

0.8671

1.7955

20.6579

20.1688

MeanDepth

27.563

21.426

142.41

133.85

PCT_1X

97.258

96.595

97.472

97.242

PCT_5X

96.208

95.013

97.056

96.842

PCT_10X

94.35

89.959

96.861

96.649

PCT_15X

89.95

78.538

96.723

96.511

PCT_20X

82.096

59.534

96.606

96.391

PCT_25X

68.038

36.153

96.502

96.281

PCT_30X

45.819

16.976

96.405

96.176

PCT_40X

8.0265

2.5083

96.218

95.962

PCT_50X

0.58713

0.72416

96.029

95.689

PCT_60X

0.21731

0.36173

95.819

95.155

PCT_70X

0.15295

0.23001

95.56

93.4

PCT_80X

0.11544

0.15452

95.237

87.976

PCT_90X

0.092602

0.10481

94.813

77.468

PCT_100X

0.076159

0.073361

94.122

65.48

MedianInsertSize

190

165

438

420

8. 耗时统计

Test

HG008

Normal 比对+排序时间(min)

37.49

379.43

Normal 去重时间(min)

4.68

10.37

Normal 统计 metrics 质控信息时间(min)

2.41

6.12

Normal LocusCollector 统计

1.13

3.67

Tumor 比对+排序时间(min)

71.53

406.08

Tumor 去重时间(min)

5.67

11.38

Tumor统计metrics 质控信息时间(min)

2.65

6.57

Tumor LocusCollector 统计

1.51

4.72

TNscope变异检测时间(min)

30.69

9.02

总时间

157.75

837.35

在 64 核测试服务器上 tumor 115Gb+normal 133Gb 数据量的人类 WGS 数据(27.5X Tumor + 21.4X Normal WGS 样本)最快分析仅耗时 157.75 分钟,若 TNscope 前面步骤同时跑,时间能进一步压缩到 112 分钟,极大缩短了分析时间,加快科研成果转化。

Sentieon在不断地优化算法的运行效率,为科研工作者提供更快速、更经济的基因检测方案。若您刚好有需要检测的数据,不妨来申请试用Sentieon吧!


Sentieon软件介绍

Sentieon为完整的纯软件基因变异检测二级分析方案,其分析流程完全忠于BWA、GATK、MuTect2、STAR、Minimap2、Fgbio、picard等金标准的数学模型。在匹配开源流程分析结果的前提下,大幅提升WGS、WES、Panel、UMI、ctDNA、RNA等测序数据的分析效率和检出精度,并匹配目前全部第二代、三代测序平台。

Sentieon软件团队拥有丰富的软件开发及算法优化工程经验,致力于解决生物数据分析中的速度与准确度瓶颈,为来自于分子诊断、药物研发、临床医疗、人群队列、动植物等多个领域的合作伙伴提供高效精准的软件解决方案,共同推动基因技术的发展。

截至2026年4月份,Sentieon已经在全球范围内为1860+用户提供服务,用户处理超过7400+PB数据量,被世界一级影响因子刊物如NEJM、Cell、Nature等广泛引用,引用次数超过1900篇。此外,Sentieon连续数年摘得了Precision FDA、Dream Challenges等多个权威评比的桂冠,在业内获得广泛认可。

http://www.jsqmd.com/news/1072256/

相关文章:

  • AMD Ryzen SMU Debug Tool完整教程:5分钟掌握专业级CPU调试技巧
  • 同城外卖系统源码搭建指南:商城交易与即时配送架构解析
  • 安装VMware Tools灰了怎么点亮以及后续安装(lunix版)
  • 如何高效下载网页视频资源?猫抓浏览器扩展提供专业解决方案
  • Windows美化新选择:3分钟为系统换上macOS风格鼠标指针
  • 开放式耳机性能怎么样?2026年开放式蓝牙耳机十大排行
  • 从手动复制到智能批处理:一个自媒体人的抖音素材收集变革
  • Ollama 与 LM Studio 谁更适合你的 AMD 主机
  • 5分钟掌握Nucleus Co-Op:单台电脑实现多人分屏游戏的终极方案
  • 一鍵多平台直播:obs-multi-rtmp免費插件終極指南
  • NS-USBLoader:Switch游戏管理的终极跨平台解决方案
  • 光伏储能设备工业模块电源怎么选?三大选型技术要点
  • 日本海关查验应对策略与异常处理机制的技术实现
  • JetBrains IDE试用期重置终极指南:30天无限续杯的简单方法
  • WecomApi 拆解客诉预警管理如何避免“小患酿大灾”?
  • 微信小程序--能量攒攒
  • AMD Ryzen 处理器调试终极指南:解锁硬件性能潜力的专业工具
  • VMware Workstation Pro 17 免费激活终极指南:5000+许可证密钥与完整使用教程
  • 本地模型当 Copilot,VSCode 插件联动实战
  • 3步终极指南:完全掌握GTA5线上小助手开源工具
  • 计算机毕业设计之流浪猫狗救助管理系统
  • agent 开发知识点
  • 2026年建筑工地夏季透气工装定制,告别闷热,干活更带劲
  • 不会编程?没关系!用AI就能做一个智能体
  • 3分钟搞定Mac微信防撤回:让重要消息不再消失的终极方案
  • 联想拯救者工具箱:轻量级性能管理解决方案深度解析
  • 202-函数、Lambda 与作用域函数
  • 3步掌握抖音无水印批量下载:免费开源工具完整指南
  • 隐私至上,如何在断网环境搭建私有 AI 工作站
  • 从RAG到GEO(AI搜索优化):AI搜索时代品牌可见性优化的技术路径