一、前言在肿瘤基因组学研究中精准识别体细胞变异位点call somatic mutations是解析肿瘤发生机制、寻找用药靶点与监控疗效的核心基础。然而由于肿瘤样本的异质性和测序噪音高灵敏度和高特异性的变异检测极具挑战。Sentieon 的 TNscope 模块为此提供了高效解决方案TNscope 流程采用了优化的机器学习算法能在极大提升分析速度的同时显著提高体细胞点突变与插入缺失检测的灵敏度与准确性尤其擅长处理低丰度变异。该模块已成为肿瘤精准医疗与大规模测序项目中不可或缺的生信分析工具。下图展示了利用 Sentieon 软件的 TNscope 模块进行体细胞变异和结构变异检测从而运行仅针对肿瘤或肿瘤-正常组织样本的生物信息学分析流程。图1 Sentieon TNscope 的生物信息学分析流程二、流程总览1. 概述在这个生物信息学流程中你需要以下输入参考基因组 FASTA 文件。两组包含待分析样本核苷酸序列的 FASTQ 文件一组用于肿瘤样本一组用于匹配正常样本。这些文件包含 DNA 测序的原始读段。该软件支持输入使用 GZIP 压缩的 FASTQ 文件。该软件仅支持包含桑格格式Phred33高质量评分的文件。可选单核苷酸多态性数据库dbSNP数据。数据以 VCF 文件的形式使用。可选多个已知位点数据。数据以 VCF 文件的形式使用。以下步骤构成肿瘤正常匹配对的典型生物信息学流程对肿瘤样本和正常样本分别采用类似于“DNAseq® 典型使用流程”中所介绍的DNA测序流程进行独立的前处理包括以下步骤将测序读数比对到参考基因组上你需要确保肿瘤样本和正常样本的 SM 标签不同因为在体细胞变异检测中这将被用作一个参数。同时你还需要确保两个样本的 RG:ID 是不同且唯一的。统计数据指标。删除重复序列。可选基础质量评分重新校准BQSR。体细胞变异检测此步骤旨在识别肿瘤基因组数据中相较于正常基因组存在体细胞变异的位点并计算该位点的基因型。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 - || \ { echoAlignment1 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 - || \ { echoAlignment2 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 || \ { echoMetrics1 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 || \ { echoMetrics2 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.txtDedup模块默认是标记重复 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 || { echoLocusCollector1 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 || \ { echoDedup1 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 || { echoLocusCollector2 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 || \ { echoDedup2 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 vcfPanel 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.TABLENORMAL 样本的 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.TABLENORMAL 样本的 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 LTS3. 参考基因组和dbsnp下载curl -L \ -o hg38_ucsc.fahttps://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/genome.fa \ -o hg38_ucsc.fa.faihttps://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/genome.fa.fai \ -o hg38_ucsc.fa.ambhttps://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa.amb \ -o hg38_ucsc.fa.annhttps://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa.ann \ -o hg38_ucsc.fa.bwthttps://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa.bwt \ -o hg38_ucsc.fa.pachttps://ngi-igenomes.s3.amazonaws.com/igenomes/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa.pac \ -o hg38_ucsc.fa.sahttps://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.sh6. 分析结果展示├── [ 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.txt7. 质控统计SampleIDTest-normalTest-tumorHG008-normalHG008-tumorTotalReads89005728077046474431247092502912610202TotalBases(Gb)133.508592115.569712471.831097439.804141MappedRate(%)99.977399.955399.647299.7546Duplicate(%)0.86711.795520.657920.1688MeanDepth27.56321.426142.41133.85PCT_1X97.25896.59597.47297.242PCT_5X96.20895.01397.05696.842PCT_10X94.3589.95996.86196.649PCT_15X89.9578.53896.72396.511PCT_20X82.09659.53496.60696.391PCT_25X68.03836.15396.50296.281PCT_30X45.81916.97696.40596.176PCT_40X8.02652.508396.21895.962PCT_50X0.587130.7241696.02995.689PCT_60X0.217310.3617395.81995.155PCT_70X0.152950.2300195.5693.4PCT_80X0.115440.1545295.23787.976PCT_90X0.0926020.1048194.81377.468PCT_100X0.0761590.07336194.12265.48MedianInsertSize1901654384208. 耗时统计TestHG008Normal 比对排序时间min37.49379.43Normal 去重时间min4.6810.37Normal 统计 metrics 质控信息时间min2.416.12Normal LocusCollector 统计1.133.67Tumor 比对排序时间min71.53406.08Tumor 去重时间min5.6711.38Tumor统计metrics 质控信息时间min2.656.57Tumor LocusCollector 统计1.514.72TNscope变异检测时间min30.699.02总时间157.75837.35在 64 核测试服务器上 tumor 115Gbnormal 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用户提供服务用户处理超过7400PB数据量被世界一级影响因子刊物如NEJM、Cell、Nature等广泛引用引用次数超过1900篇。此外Sentieon连续数年摘得了Precision FDA、Dream Challenges等多个权威评比的桂冠在业内获得广泛认可。