背景
Sentieon套装中所有模块的速度都远超对应开源软件的数倍至数十倍,用户在使用这些模块的同时,有时也希望Sentieon团队可以帮助加速自己开发的定制化软件。为了帮助这些用户能在自研软件上享受到Sentieon模块的速度,我们开发了Python API系统, 满足用户二次开发,自主加速的需求。
API介绍
Sentieon Python API本质上是一套沟通系统,连接了用户的数据分析脚本与Sentieon的高速引擎,在加速的同时也提升了脚本的可读性与可维护性。
Sentieon的数据处理引擎是Sentieon多个模块的核心,可以高速分析BAM/CRAM和FASTA格式的数据文件。引擎同时支持single-pass以及multithreaded execution这两种数据流方式。其中Multithreaded数据流速度较快,也相对比较复杂,会将基因组分拆为默认长度1Gb的片段(Fragment),Sentieon引擎会并行地在每个线程中独立处理单个片段;每个片段又会被分拆为默认长度1Kb的小片段(Step),引擎会线性的依次处理这些小片段。在此过程中,用户软件的数据处理逻辑将会得到高速执行。
实施案例
下面我们通过一个与美国圣朱迪儿童研究医院(St Jude Children’s Research Hospital)的CREST软件团队的合作案例展现Sentieon的加速效果。CREST (Clipping REveals Structure)是业内一款著名的检测癌症基因组结构变异的软件,主要通过断点(Breakpoints)作为线索来检测基因组中的结构变异。具体来说,CREST软件的流程中包括了soft-clip检测,组装,组装后比对,断点确认,结构变异确认等步骤。其中的组装与比对步骤主要依赖于第三方工具完成。CREST的优势是准确度较高,然而速度方面的缺陷同样明显,对于一个标准30x肿瘤全基因组配对样本来说,在20线程的工作站的处理时间长达24小时,很难满足用户的需求。
在了解到Sentieon Python API的功能之后,CREST团队使用这套系统重新实现了CREST的功能。在测试数据中,利用Sentieon加速版CREST达到了10倍的提速,结果与原版的CREST完全一致。在20线程的工作站中将绝大多数样本的处理时间降低到了1小时以内。
下面我们介绍另外两个应用加速案例。质量控制是NGS数据处理流程中的重要步骤,虽然逻辑比较简单,然而涉及到对于BAM/CRAM文件的大量读取工作,这些工具在速度,多线程并行,以及代码的可维护性上往往难以兼得。
Sentieon Python API可以将质控工具的算法逻辑与数据读取分开,同时提升速度与代码可读性。作为实施案例,我们利用Python API加速了Picard的CollectInsertSizeMetrics工具,快速统计insert size;另外我们也加速了GATK的CalculateTargetCoverge工具,快速统计目标区域的深度。用户也可参考此案例,加速自研的质控工具。
技术支持
Sentieon Python API可以让用户的脚本与Sentieon引擎沟通,高速并行读取BAM/CRAM/FASTA文件,提速10倍以上。用户可以利用这个平台进行二次开发,加速自研软件,我们非常愿意提供详尽的技术支持。
Sentieon软件介绍
Sentieon为完整的纯软件基因变异检测二级分析方案,其分析流程完全忠于BWA、GATK、MuTect2、STAR、Minimap2、Fgbio、picard等金标准的数学模型。在匹配开源流程分析结果的前提下,大幅提升WGS、WES、Panel、UMI、ctDNA、RNA等测序数据的分析效率和检出精度,并匹配目前全部第二代、三代测序平台。
Sentieon软件团队拥有丰富的软件开发及算法优化工程经验,致力于解决生物数据分析中的速度与准确度瓶颈,为来自于分子诊断、药物研发、临床医疗、人群队列、动植物等多个领域的合作伙伴提供高效精准的软件解决方案,共同推动基因技术的发展。
截至2023年3月份,Sentieon已经在全球范围内为1300+用户提供服务,被世界一级影响因子刊物如NEJM、Cell、Nature等广泛引用,引用次数超过700篇。此外,Sentieon连续数年摘得了Precision FDA、Dream Challenges等多个权威评比的桂冠,在业内获得广泛认可。