Sentieon|应用教程:利用Sentieon Python API引擎为自研算法加速

简介: Sentieon|应用教程:利用Sentieon Python API引擎为自研算法加速

背景

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等多个权威评比的桂冠,在业内获得广泛认可。


软件试用:https://www.insvast.com/sentieon

目录
相关文章
|
1天前
|
存储 缓存 监控
利用Python和Flask构建RESTful API的实战指南
在当今的软件开发中,RESTful API已成为前后端分离架构中的核心组件。本文将带你走进实战,通过Python的Flask框架,一步步构建出高效、安全的RESTful API。我们将从项目初始化、路由设置、数据验证、错误处理到API文档生成,全方位地探讨如何构建RESTful API,并给出一些实用的最佳实践和优化建议。
|
1天前
|
机器学习/深度学习 数据采集 自然语言处理
理解并应用机器学习算法:神经网络深度解析
【5月更文挑战第15天】本文深入解析了神经网络的基本原理和关键组成,包括神经元、层、权重、偏置及损失函数。介绍了神经网络在图像识别、NLP等领域的应用,并涵盖了从数据预处理、选择网络结构到训练与评估的实践流程。理解并掌握这些知识,有助于更好地运用神经网络解决实际问题。随着技术发展,神经网络未来潜力无限。
|
1天前
|
算法 搜索推荐 C语言
Python实现数据结构与算法
【5月更文挑战第13天】学习数据结构与算法能提升编程能力,解决复杂问题,助你面试成功。从选择资源(如《算法导论》、Coursera课程、LeetCode)到实践编码,逐步学习基本概念,通过Python实现栈、队列和快速排序。不断练习、理解原理,探索高级数据结构与算法,参与开源项目和算法竞赛,持续反思与实践,以提升技术能力。
5 0
|
1天前
|
机器学习/深度学习 算法 数据可视化
Python 数据结构和算法实用指南(四)(4)
Python 数据结构和算法实用指南(四)
9 1
|
1天前
|
机器学习/深度学习 存储 算法
Python 数据结构和算法实用指南(四)(3)
Python 数据结构和算法实用指南(四)
14 1
|
1天前
|
存储 算法 搜索推荐
Python 数据结构和算法实用指南(四)(2)
Python 数据结构和算法实用指南(四)
9 0
|
1天前
|
算法 Python
利用贝叶斯算法对简单应用实现预测分类
利用贝叶斯算法对简单应用实现预测分类
6 0
|
1天前
|
存储 算法 Serverless
Python 数据结构和算法实用指南(四)(1)
Python 数据结构和算法实用指南(四)
13 0
|
1天前
|
存储 算法 搜索推荐
Python 数据结构和算法实用指南(三)(4)
Python 数据结构和算法实用指南(三)
10 1
|
1天前
|
存储 搜索推荐 算法
Python 数据结构和算法实用指南(三)(3)
Python 数据结构和算法实用指南(三)
10 1