CN117555671A - 协调的应用处理 - Google Patents

协调的应用处理 Download PDF

Info

Publication number
CN117555671A
CN117555671A CN202311179941.1A CN202311179941A CN117555671A CN 117555671 A CN117555671 A CN 117555671A CN 202311179941 A CN202311179941 A CN 202311179941A CN 117555671 A CN117555671 A CN 117555671A
Authority
CN
China
Prior art keywords
images
processing
image
region
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311179941.1A
Other languages
English (en)
Inventor
D·基梅尔
E·内
P·史密斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Illumina Inc
Original Assignee
Illumina Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Illumina Inc filed Critical Illumina Inc
Publication of CN117555671A publication Critical patent/CN117555671A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • G16B50/30Data warehousing; Computing architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Biophysics (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Image Processing (AREA)

Abstract

协调的应用处理。方法识别可用的处理引擎,用于协调的应用处理,将被配置为执行以执行图像处理的应用分发给处理引擎,并将图像分发给处理引擎。图像覆盖包括多个不同子区域的图像区域,其中图像处理跨图像处理的多个周期进行,以处理多个不同子区域的每个子区域中的相应一组图像,并且其中对于多个不同子区域的每个子区域,分发图像包括:针对该子区域选择处理引擎中的相应的处理引擎以跨多个周期执行图像处理,从而处理该子区域的相应一组图像,以及跨图像处理的多个周期将该子区域的相应一组图像的图像分发给针对该子区域选择的相应的处理引擎。

Description

协调的应用处理
本申请是申请日为2018年6月14日、申请号为201880036170.1、发明名称为“协调的应用处理”的专利申请的分案申请。
背景技术
基因组测序(genomic sequencing)可以是需要大量计算能力的复杂任务。虽然将工作分配到多个节点是可能的,但是可能很难协调它们的执行,执行包括测序包软件执行的开始和停止、运行时间度量的收集以及对工作到不同的节点的分配。
发明内容
通过提供计算机实现的方法,克服了现有技术的缺点并且提供了附加的优点。方法包括:识别在计算环境中可用于协调应用处理的多个处理引擎;将配置为执行以执行图像处理的应用分发(distribute)给多个处理引擎;以及将多个图像分发给多个处理引擎以执行图像处理,其中多个图像覆盖包括多个不同子区域的图像区域,其中图像处理跨图像处理的多个周期进行以处理不同子区域的每个子区域中的多个图像中的相应一组图像,并且其中对于不同子区域的每个子区域分发多个图像包括:为该子区域选择多个处理引擎中的相应处理引擎以跨多个周期执行图像处理以处理该子区域的相应一组图像;以及跨图像处理的多个周期,将该子区域的相应一组图像的图像分发给为该子区域选择的相应处理引擎。
此外,提供了一种计算机系统,其包括存储器和至少一个处理器,该计算机系统被配置为执行程序指令以执行一种方法。该方法包括:识别在计算环境中可用于协调应用处理的多个处理引擎;将配置为执行以执行图像处理的应用分发给多个处理引擎;以及将多个图像分发给多个处理引擎以执行图像处理,其中,多个图像覆盖包括多个不同子区域的图像区域,其中,图像处理跨图像处理的多个周期进行以处理不同子区域的每个子区域中的多个图像中的相应的一组图像,并且其中,对于不同子区域的每个子区域分发多个图像包括:为该子区域选择多个处理引擎中的相应处理引擎以跨多个周期执行图像处理以处理该子区域的相应一组图像;以及跨图像处理的多个周期,将该子区域的相应一组图像的图像分发给为该子区域选择的相应处理引擎。
此外,提供了一种计算机程序产品,其包括有形存储介质,该有形存储介质存储用于执行以执行方法的程序指令。该方法包括:识别在计算环境中可用于协调应用处理的多个处理引擎;将配置为执行以执行图像处理的应用分发给多个处理引擎;以及将多个图像分发给多个处理引擎以执行图像处理,其中,多个图像覆盖包括多个不同子区域的图像区域,其中,图像处理跨图像处理的多个周期进行以处理不同子区域的每个子区域中的多个图像中的相应的一组图像,并且其中,对于不同子区域的每个子区域分发多个图像包括:为该子区域选择多个处理引擎中的相应处理引擎以跨多个周期执行图像处理以处理该子区域的相应一组图像;以及跨图像处理的多个周期,将该子区域的相应一组图像的图像分发给为该子区域选择的相应处理引擎。
将应用分发给多个处理引擎可包括:将相同的应用包分发给多个处理引擎中的每个处理引擎,该应用包用于在每个处理引擎上进行实例化作为应用的实例,该应用被配置为执行与从在多个处理引擎的其它处理引擎中的每一个处理引擎上的应用包中实例化的应用实例相同的一组任务。该方法可以进一步包括:维持图像获取组件,该图像获取组件被配置为获得多个图像并提供多个图像以供分发,其中,图像获取组件是应用收集器的一部分,该应用收集器被配置为在与多个处理引擎上的每个应用收集器被配置为执行的模式不同的图像获取和分发模式中执行。
可以从成像装置采集多个图像,并且该方法可以进一步包括:在执行图像处理期间,从多个处理引擎接收扫描位置信息,该扫描位置信息指示在获取多个图像中的至少一些图像时对成像装置的图像扫描引擎的指导。图像区域的不同子区域中的每个子区域可以对应于不同的一组一个或多个相机帧位置。
多个图像可以包括碱基序列的图像,碱基序列的图像在实时序列分析运行期间被获取以对碱基序列执行测序,并且分发多个图像可在实时序列分析运行期间实时地执行分发多个图像。
该方法可以进一步包括从多个处理引擎中的每个处理引擎收集一个或多个应用完成通信,该通信指示分配给该处理引擎的图像处理的相应一个或多个部分已完成。该方法可以进一步包括:至少部分地基于接收或将要接收的应用完成通信来维持多个处理引擎中的每个处理引擎的图像处理状态;以及将每个处理引擎的图像处理状态的指示传达给请求此类指示的控制组件。
多个处理引擎可以各自是不同的物理主机计算机系统或不同的虚拟机。
选择可以选择多个处理引擎中的一个处理引擎以处理不同子区域的第一子区域的第一组图像,并选择多个子引擎中的不同的处理引擎以处理不同子区域的第二子区域的第二组图像。另外地或可替代地,选择可以选择多个处理引擎中的同一处理引擎以处理不同子区域中的至少两个子区域的一组图像。
通过在此描述的概念实现了附加特征和优点。
附图说明
特别指出并明确要求本文所描述的方面作为在说明书的结尾处的权利要求中的示例。通过以下结合附图的详细描述,本公开的前述和其它目的、特征和优点将变得显而易见,在附图中:
图1描绘了用于基因组测序的流通池(flow cell)的示例性布局;
图2描绘了示例计算环境以结合和使用在此描述的方面;
图3描绘了根据在此描述的方面的用于协调实时分析处理的示例方法;
图4描绘了根据在此描述的方面的在分发引擎和处理引擎之间的示例通信;
图5描绘了根据在此描述的方面的用于协调的应用处理的示例过程;
图6描绘了根据在此描述的方面的用于将图像分发给多个处理引擎的示例过程;
图7描绘了结合和/或使用在此描述的方面的计算机系统和相关装置的一个示例;
图8描绘了可与在此描述的方面结合使用的测序设备的一个示例;以及
图9描绘了根据在此描述的方面的云计算环境的一个示例。
具体实施方式
在此描述了用于分布式协调的应用处理的设施,例如通过分析和测序软件应用的多个实例对图像数据进行处理,以执行基因组材料的测序。示例分析和测序软件应用是由美国加利福尼亚州圣地亚哥市的Illumina公司提供的实时分析(RTA)。在此所描述的示例在上下文中被呈现并参考RTA软件(其仅作为示例);在此描述的方面同样适用于其它分析和测序软件应用,并且更广泛地适用于任何分布式协调的应用处理。
RTA结合Illumina公司提供的基因组分析仪(GA)来执行在下一代测序(NGS)中的主要分析。在该上下文中,主要分析是指直至(以及包括)碱基检出(base calling)和质量评分的分析。RTA是多线程的,并且可以采用可配置数量的线程工作。能够在RTA的实时测序运行期间在后台执行。另外地或可替代地,其可以使用一组预先存在的图像数据来运行以进行离线分析。在利用多线程功能的一种方法中,RTA可以为每个线程提供其自己的图块(tile)的子集,相应的线程负责处理该图块子集,以便帮助最小化线程竞争。
通过使用测序设备收集生物样本的许多图像,生成序列数据的RTA处理针对流通池周期地进行。图1描绘了用于基因组测序的流通池的示例布局。流通池100包括单个表面,该表面具有两个通道101a、101b。每个通道101a、101b被分为多个条带(swath),并且每个条带被分为图块。图1中的通道101a包括条带102a、102b、102c和102d,每个条带包括25个图块(104是单个图块)。因此,该示例中的每个通道包括45*4=180个图块。在本示例中,流通池100包括具有两个通道101a、101b的单个表面,然而在其它示例中,流通池也可包括多个表面(例如,顶表面和底表面),每个表面各自包括多个通道。
相机接口板或其它成像装置对生物样本进行成像以生成多个图像,这些图像被发送到RTA。该成像覆盖图像区域,图像区域包括许多不同的子区域。被发送到RTA的单个图像可以覆盖流通池的单个图块,然而可以理解的是,图像也可以覆盖比单个图块更大或更小的区域。例如,图像可能实际上覆盖了多个图块、单个条带等。
RTA处理在多个周期中进行,在多个周期期间,样本在每个周期上重新成像。因此,在每个周期期间可以对给定的图块成像,并且因此,跨多个周期的成像生成每个子区域(在该示例中,图块)的相应图像组(整个图像组中的相应图像组)。
图像在存储器中传递到RTA应用,作为流通池的图块,其中每个图块可以是相机的一个视野或行扫描系统上的单个条带中的一些/全部(作为示例)。从图像生成的碱基检出可以每周期写出到二进制文件(例如,*.bcl)。
RTA的主要输入是包含在本地系统存储器中的这些图像。图像由扫描系统创建,并可以经由进程间通信机制传输到RTA和/或在离线模式下由RTA从用户指定的路径加载。RTA产生的主要输出文件是.bcl和过滤器文件。
在一些示例中,RTA在仪器计算机系统上本地运行,计算机系统与该仪器相关联并且通常物理上位于该仪器计算机系统上,以便控制其操作。例如,RTA的图像处理功能包括从获取的图像中提取强度,执行碱基检出,对碱基进行质量评分,对准到Phi X参考基因组,以及在二进制InterOp文件中报告数据以在由Illumina公司提供的测序分析查看器(Sequencing Analysis Viewer)应用中查看。
可能期望跨多个节点分发RTA处理,每个节点执行RTA的实例,以便利用由分布式处理提供的增强。但是,如上所指出的,可能难以协调应用实例的执行,包括RTA执行的开始和停止,运行时间度量的收集以及工作到适当的节点的分发。RTA在几个周期中的每个周期处理图块,并期望对于给定图块在每个周期处接收该图块的图像。存在针对在每个周期要被成像的图像区域的每个子区域传送的多个图像。为了在给定周期适当地处理给定子区域的图像数据,可能需要或期望来自前一/下一周期(多个周期)的周期数据(即来自不同周期的该子区域的图像的数据),以便在给定周期处理该数据的RTA实例正确且有效地处理当前周期数据。当RTA处理由单个计算机上的单个RTA实例进行时,无需过多考虑上述问题。当将RTA处理分发到多个RTA实例时,将解决周期之间的相互相关性。
控制跨多个计算节点的RTA的多个实例进行主要分析的该问题通过在此描述的方面解决,特别是通过在分发引擎(DE)上运行(执行)应用分发器(“应用分发器”),应用分发器进行分发应用,以及在多个处理引擎(PE)中的每一个处理引擎上运行分布式应用的应用收集器(“应用收集器”)。应用分发器协调针对图像处理而获取的图像到分布式应用实例的分发。该协调的分发可以包括识别哪个处理引擎将接收给定的图像数据。接收第一区域(较大图像区域中的第一子区域)的图像并将其分发给第一处理引擎,接收第二区域(较大图像区域中的第二子区域)的图像并将其分发给第二处理引擎,等等。当接收到第一区域的下一图像时(例如在下一周期),通过主动选择第一处理引擎作为提供第一区域的下一图像的引擎,来解决以上描述的相关性方面。
因此,对于给定的周期,存在多个图像以覆盖图像区域,诸如流通池。可以取决于有多少可用的处理引擎来将这些图像分发到处理引擎。当处理进行到测序的下一周期时,可以采集覆盖图像区域的其它多个图像。来自该随后周期的图像与来自先前周期的图像之间存在相关性,该相关性在于图像具有在被称为子区域的流通池中的公共的可能重叠的区域或位置。这可能是在该随后周期中覆盖流通池的多个图像中的许多图像的情况-每个图像都与先前周期中的先前获取的图像相关。这些图像可以以将相关的图像分发到同一处理引擎的方式而分发到处理引擎。在特定示例中,每个图像都覆盖流通池(该示例中,图像区域)的相应条带(该示例中,子区域),并且因此,公共处理引擎可以处理跨多个周期得到的覆盖该条带的一组图像。
应用管理包包括两个应用:
-应用分发器-应用分发器经由多播或任何其它适当的方式来识别网络上可用的应用收集器的地址和端口,并将目标应用(例如RTA)分发给各个处理引擎上的可用的应用收集器。在特定示例中,尽管可以通过任何其它适当的方式来完成应用分发,但是应用分发器使用嵌入在HTTP中的Boost测序消息来分发应用(Boost指示www dot boost dot org提供的一组库)。
-应用收集器-应用收集器从应用分发器接收目标应用,并使用分发器提供的设置启动它。
参考图2提供进一步的细节和说明,图2描绘了示例计算环境200,从而结合并使用在此描述的方面。分发引擎(DE)202包括应用分发器204和应用收集器206。作为示例,分发引擎202可以被实现为一个或多个计算机系统和/或虚拟机。
应用收集器206包括与图像源210通过接口连接以收集图像的图像获取客户端208应用。图像源210可以是图像的存储库或模拟器,和/或测序器的组件(未示出),例如采集图像的成像装置/相机接口板。
图像源210将图像提供给图像获取客户端208,和/或图像获取客户端208经由在两个组件之间延伸的通信链路224从图像源210取得图像。通信链路包括有线和/或无线通信链路,诸如基于以太网的有线和/或Wi-Fi连接、蜂窝连接等。更广泛地,通信链路可以是用于传送数据的任何适当的无线或有线通信链路。在特定示例中,图像源和图像获取客户端经由基地址寄存器空间进行通信,该基址寄存器空间可以是被指定用于在相机接口板和收集图像的组件之间传送消息或其它数据的存储器的一部分。
分发引擎202的一个功能是将所获取的图像分发到多个处理引擎(PE)212a,...,212n,以进行主要分析,并且这样做以使得对于要被成像的整个图像区域的任何给定子区域,同一应用实例处理跨所有周期的该子区域的图像。
图像获取客户端208可以将图像提供给应用分发器204以分发给处理引擎。可替代地,图像获取客户端208可以直接将图像提供给处理引擎,而不是经由应用分发器204来实现。分发引擎或其组件跟踪哪个实例将处理给定图块(或其它子区域)的到达图像的一种方法是,将唯一标识符与每个图块/子区域相关联,并将其与给定的处理引擎或应用实例相关联。当图像到达时,确定标识符以识别到达的图像覆盖哪个子区域,并将图像提供给适当的应用实例进行处理。
处理引擎是由计算机系统、虚拟机和/或可以处理数据的任何其它期望实体实现的节点。每个处理引擎(212a,...,212n)运行相应的应用收集器(214a,...,214n),并且每个此类应用收集器运行RTA应用的相应实例(216a,...,216n),RTA应用的相应实例(216a,...,216n)根据处理引擎从分发引擎接收到的图像而实例化。在一些示例中,期望确保跨节点使用相同版本的处理软件(例如,RTA),并且确保在应用的启动和执行方面进行协调。因此,如下面进一步详细解释的,应用分发器204可以将应用的图像分发到每个处理节点,用于在每次新的测序运行中实例化,以帮助确保在每个处理节点处执行相同版次的应用。将应用分发给处理引擎可以包括向每个处理引擎分发相同的应用包,应用包用于在每个处理引擎上实例化以作为应用的实例,该应用被配置为执行与其它处理引擎上的应用实例相同的一组任务。应用分发器204可以经由HTTP消息传递或任何其它通信方式与应用收集器通信。
在图1中还示出了仪器PC 218,其是与仪器(例如,测序器)相关联的计算机系统。该仪器可被包括作为仪器的一部分或在物理上接近仪器。仪器PC 218包括控制软件220,以控制仪器的操作,例如以控制测序运行的开始和停止,并向其它组件发出控制。控制软件220和分发引擎202,特别是其应用分发器204,通过通信链路226a、226b、226c彼此通信。在图1中示出了单独的通信链路,以示出逻辑分离,但是这些链路可以被实现为组件之间的一个或多个物理链路。分发引擎202包括接口,管理员和/或软件可以通过该接口经由这些链路来调用命令。在特定示例中,经由链路226a传送测序开始和停止请求/回复,经由链路226b传送测序状态请求/回复,并且经由链路226c传送注册偏移请求/回复。
应用分发器204跨通信链路228与应用收集器206通信,例如传递测序开始和停止请求/回复。例如,应用分发器与应用收集器进行通信,以通知应用收集器将基于测序运行的开始来开始图像获取和提供。
应用分发器204还从应用收集器206获取应用收集器获取的图像,并将这些图像分发到RTA实例216a,...,216n以进行处理。应用分发器204经由链路230a,...,230n与安装在处理节点上的应用收集器214a,...,214n通信,以交换测序开始和停止请求/回复。
应用分发器204经由链路232a,...,232n与RTA实例216a,...,216n通信以交换测序状态请求/回复,并且经由链路234a,...,234n以交换注册偏移请求/回复。
应用实例216a,...,216n可以以任何期望的方式(例如如果不在协调的处理环境中则它们可能执行的方式)执行。作为特定示例,RTA实例可以如当前执行的那样执行RTA处理。作为该执行的一部分,例如,RTA实例可以将数据写出到任何期望的位置,例如硬盘驱动或其它本地存储装置,或跨通信链路240a,...,240n的网络存储装置238。RTA的输出可以在某种情况下由从NAS238读取输出或者从每个节点提取输出的组件聚合。可替代地,RTA实例、应用收集器或处理引擎可能负责将输出提供给另一进程、组件、远程计算机系统等。RTA实例的示例输出例如包括*.bcl格式的数据(与序列的碱基检出有关的二进制文件)和当前与RTA处理相关联的其它数据,例如,来自测序运行的度量和过滤器文件。
在一些示例中,处理引擎经由HTTP或其它消息传递将信息提供回分发引擎,例如分发引擎可能需要或期望的度量。例如,分发引擎可以从处理引擎收集有助于扫描引擎的信息。示例信息包括坐标信息,该坐标信息通知对流通池的位置中的漂移的调节并协助图像配准。
应用收集器206可以与在处理引擎上运行的应用收集器214a,...,214n相同,例外之处在于应用收集器206被配置为以图像获取和分发模式执行以将图像分发到处理引擎或应用分发器,该模式与处理引擎上的每个应用收集器被配置执行的模式不同。因此,分发引擎202上的应用收集器206可以不运行RTA实例,但是可以运行图像分发器应用,该图像分发器应用跟踪要向处理引擎上的哪些特定RTA实例提供哪些获取的图像。可替代地,如果期望地,分发引擎上的应用收集器206可以通过执行RTA的实例来像其它节点一样操作,从而像另一节点一样进行RTA处理。
图1的组件可以被实现为一个或多个物理主机(计算机系统),但是在一些示例中,一个或多个此类组件作为虚拟机/在虚拟机中运行。
图3描绘了根据在此描述的方面的用于协调的实时分析处理的示例方法。图3的方面由计算机系统执行,例如分布式引擎计算机系统、处理引擎计算机系统和/或仪器计算机系统。
该过程开始于应用分发器发送多播消息(或任何其它期望类型的消息)以确定可用的处理引擎的地址(302)。在可用的情况下,节点上的应用收集器进行响应。通过应用分发器接收对多播消息的响应,以识别在计算环境中可用的处理引擎以用于协调的应用处理。在一些示例中,该多播消息的发送通过由分发引擎从控制软件接收的“测序开始请求”触发,从而向分发引擎通知序列运行的开始。
该过程继续进行,应用分发器将图像获取客户端应用发送到分发引擎的应用收集器,并请求对图像获取客户端应用的启动(304)。在特定示例中,应用分发器通过回送地址(127.0.0.1)发送图像获取客户端应用,并请求分发引擎启动图像获取客户端应用。
然后,应用分发器将应用分发到处理引擎(306),例如,基于多播消息的发送及对其的响应而发现的处理引擎。用于分发应用的触发器可以是应用编程接口(API)触发器或从控制软件到应用分发器的通知运行启动的其它通信。应用分发器还可以显式请求处理引擎实例化/启动被分发的应用。在特定示例中,应用分发器将应用(例如RTA)的图像(磁盘、ISO、RAM、可执行文件等图像)、压缩文件等形式的应用包发送给处理引擎应用收集器以进行实例化。应用可以通过专用的高吞吐量连接来发送。因为将图像移动到适当的应用实例的速度和可靠性可能是期望的,所以该高吞吐量连接还可被用作通过其将图像分发到处理引擎的连接。
图像获取客户端、应用分发器或分发引擎的其它组件将图像分发给处理引擎,例如,在其上执行的应用实例(308)。应用以任何期望的方式处理所接收的图像,例如以当前RTA处理的方式。当从测序器收集图像时,可以实时执行分发。
在特定处理引擎上运行的应用的退出/完成/终止时,每个参与处理引擎的应用收集器发送“应用退出”消息,并且应用分发器接收“应用退出”消息(310)。应用分发器可以随着时间在每个单独的应用实例完成对提供给其的图像的处理以及终止时从处理引擎接收“应用退出”消息。分发引擎上的应用收集器也可能会或可能不会发送“应用退出”消息。分发引擎上的应用收集器可能知道(例如,通过来自应用分发器的通信)测序运行何时结束,这表明分发引擎上的应用收集器不获取并提供另外的图像给分发器和/或RTA实例。然后,如果需要,应用收集器可以退出并将通信发送到应用分发器。以该方式,分发引擎上的应用收集器可以被视为应用分发器在结束运行的处理之前期望退出的另一工作者节点。
在应用收集器已经提供了适当的消息后,应用分发器可以通知控制软件测序运行已经完成,并且然后关闭(312)。可替代地,应用分发器可以保留并监测后续运行的开始。
分发引擎可以知道每个处理引擎上的应用处理的状态。例如,RTA包括服务器,该服务器允许用户查询包括RTA准备情况、运行状态和x-y偏移的信息。这可被利用来支持控制API或其它接口,从而允许管理员或其他用户查询应用的状态。查询可以在处理期间发生,在处理过程中,消息在分发引擎和处理引擎上的应用收集器之间交换,以便传递应用状态。
图4描绘了根据在此描述的方面的图2的分发引擎和处理引擎之间的示例通信。在1处,分发引擎202的应用分发器204将图像获取客户端208发送到分发引擎202的应用收集器206(对应于图3的304)。例如,这可以经由回送地址发送。在2处,应用分发器204将用于应用216的应用包发送到处理引擎212的应用收集器214(对应于图3的306)。例如,应用分发器204和应用收集器214之间的通信可以在端口9035(或任何其它所需的端口)上进行,并且包括“AppAdd”请求、状态请求和“AppStop”请求。在3处,图像获取客户端208在端口9036(或任何其它所需的端口)上将图像发送到应用216。在4处,应用216在针对处理引擎212指定的端口上向图像获取客户端208发送空闲图像请求(每个处理引擎可具有被分配的端口号,其通过该端口号将消息发送至图像获取客户端208)。RTA具有有限数量的图像缓冲区,用于存储传入的图像。应用分发器可以跟踪每个RTA实例具有的剩余(空/可用)图像缓冲区的数量,并且仅在存在可用缓冲区时才发送新图像。上面提到的自由图像请求是RTA实例向应用分发器传送图像缓冲区已释放的示例方法。在5处,应用收集器214在端口9034(或任何其它所需的端口)上向应用分发器204发送“AppExited”消息。
根据在此描述的方面的分布式协调的应用处理实际上提供了针对主要分析的非限制的可伸缩性。应用管理者软件包(其包括分发引擎上的应用收集器和分发器)为在分离的处理节点上执行的多个RTA实例提供集中控制。应用管理者软件包通过以下方式实现对分布式处理的有效控制和协调:(i)自动检测网络或其它计算环境中的可用处理引擎;(ii)在不同的机器上自动启动多个RTA应用;以及(iii)经由分发引擎提供查询RTA实例的状态的能力。
根据在此描述的一些方面,图像数据被向下分发到RTA实例以进行处理,而无需分发组件收集回的处理的任何输出。例如,所需的输出可被放置在其它位置和/或由另一下游组件获得以进行处理。此外,图像的路由确保一致性,其中RTA实例跨多个处理周期的每个周期处理给定图块或要被成像的区域的其它子区域的图像,从而考虑在处理周期之间存在的处理中的相关性。
相应地,图5描绘了根据在此描述的方面的用于协调的应用处理的示例过程。在一些示例中,该过程由一个或多个计算机系统(诸如在此描述的计算机系统)执行,该系统可以包括运行分发引擎和/或其组件的一个或多个计算机系统和/或一个或多个其它计算机系统。
图5的过程包括识别在计算环境中可用于协调的应用处理的多个处理引擎(502)。多个处理引擎可以是不同的物理主机计算机系统或不同的虚拟机。通过将配置为执行以执行图像处理的应用分发到多个处理引擎来继续该过程(504)。一个此类示例应用是实时分析。将应用分发到多个处理引擎可以包括将相同的应用包分发到多个处理引擎中的每个处理引擎,该应用包被用于在每个处理引擎上实例化作为应用的实例。每个此类应用实例可以被配置为相同地执行,即,执行与在从多个处理引擎中的每个其它处理引擎上的应用包实例化的应用实例相同的一组任务(尽管针对不同的图像)。
图5的过程还维持了图像获取组件,图像获取组件被配置为获得多个图像并提供多个图像以进行分发(506)。图像获取组件可以是分发引擎的应用收集器的一部分,应用收集器被配置为以与多个处理引擎上的每个应用收集器被配置执行的模式不同的图像获取和分发模式执行。
该过程将多个图像分发到多个处理引擎以执行图像处理(508)。多个图像可以覆盖包括多个不同(即,至少部分地不重叠)的子区域的图像区域。图像区域的不同子区域中的每个子区域可以对应于不同组的一个或多个相机帧位置。图像处理跨图像处理的多个周期进行,以处理不同子区域的每个子区域中的多个图像中的一组相应图像。因此,对于每个子区域,在多个处理周期的每个周期中,存在该子区域的一个或多个图像。对于每个子区域,这导致该子区域的一组相应图像,该相应组包括跨周期获取的该子区域的图像。参考图5提供图像的分发的更多细节。在一些示例中,图像获取组件本身将图像向下分发给处理引擎。可替代地,图像获取组件可以将图像提供给分发引擎上的应用分发器,用于分发到处理引擎。
可以从成像装置获取多个图像。因此,图5的过程包括在图像处理的执行期间从多个处理引擎接收扫描位置信息(510),扫描位置信息指示在获取多个图像中的至少一些图像时对成像装置的图像扫描引擎的指导。以这种方式,处理引擎可以将信息返回到分发引擎,以帮助相机/扫描仪定位。
该过程还至少部分地基于所接收的或将要接收的应用完成通信来维持多个处理引擎中的每个处理引擎的图像处理状态(512)。如果尚未从给定的处理引擎接收到应用“退出”或“完成”通信,则可以假定该处理引擎上的处理引擎和/或应用实例的状态为活动的。可选地,过程包括将每个处理引擎的图像处理状态的指示传送到请求此类指示的控制组件。
图5的过程还从多个处理引擎中的每个处理引擎收集一个或多个应用完成通信,应用完成通信指示分配给该处理引擎的图像处理的相应一个或多个部分已完成。完成通信不仅可以包括与多个周期的完成有关的应用完成/终止消息,而且还可以包括在处理期间从处理引擎发送的以及与特定周期的状态或完成有关的任何状态消息。因此,该过程确定是否已经从所有处理引擎接收到所有应用完成通信(514)。如果不是,则处理返回到(512)以继续维持图像处理状态。否则,将通知应用完成,并且过程结束。
在特定示例中,多个图像包括碱基序列的图像,该碱基序列的图像在实时序列分析运行期间被获取以对碱基序列执行测序,并且在实时序列分析运行期间实时地执行分发多个图像。
图6描绘了根据在此描述的方面的用于将图像分发到多个处理引擎的示例过程。图6的过程针对给定的子区域而执行,并且可以针对不同子区域的每个子区域而执行。该过程由一个或多个计算机系统执行,例如执行分发引擎或其组件的一个或多个计算机系统。该过程包括针对该子区域选择多个处理引擎中的相应处理引擎以执行跨多个周期的图像处理,从而处理该子区域中的相应一组图像(602)。因此,所选择的(单个)处理引擎将对对象子区域的该组图像中的多个图像中的每个图像执行处理。然后,该过程进入循环,直到不存在将要接收和分发图像的下一周期。该过程确定是否存在下一周期(604)。如果存在(604,是),则过程接收该周期的(多个)图像,并将(多个)图像分发到所选择的处理引擎(606),然后返回到604。只要存在下一周期,就重复该过程。在每次迭代时(例如在每个周期),分发选择相同的处理引擎来处理子区域的图像。最终,没有下一周期(604,否),并且过程结束。以这种方式的跨图像处理的多个周期的分发将该子区域的图像的相应一组图像分发给针对该子区域选择的相应处理引擎。随着过程通过周期进行,该组中的图像是分发给所选择的处理引擎以进行处理的给定子区域的图像。
不同的处理引擎可以处理不同子区域的图像;该选择可以选择多个处理引擎中的一个处理引擎来处理不同子区域的第一子区域中的第一组图像,以及选择多个处理引擎中的不同的处理引擎来处理不同子区域的第二子区域中的第二组图像。在一些示例中,选择公共处理引擎以处理多于一个子区域的图像。因此,该选择可以选择多个处理引擎中的同一处理引擎来处理不同子区域的至少两个子区域中的一组图像。
尽管提供了各种示例,但是在不背离所要求保护的方面的精神的情况下可以进行变化。
在此描述的过程可以由一个或多个计算机系统单独或共同执行。在一些示例中,这些计算机系统是云托管的。图7描绘了此类计算机系统和相关联装置的一个示例,以结合和/或使用在此描述的方面。计算机系统在本文中也可以称为数据处理装置/系统、计算装置/系统/节点,或简称为计算机。作为示例,该计算机系统可以基于各种系统架构和/或指令集架构中的一种或多种,诸如由英特尔公司(美国加利福尼亚州圣塔克拉拉市)提供的那些。
图7示出了与外部装置712通信的计算机系统700。计算机系统700包括一个或多个处理器702,例如,中央处理器(CPU)。处理器可以包括在指令的执行中使用的功能组件,诸如用于从诸如高速缓存或主存储器的位置获得程序指令,对程序指令进行解码,以及执行程序指令,访问用于指令执行的存储器以及写入执行指令的结果的功能组件。处理器702还可包括将由一个或多个功能组件使用的寄存器。计算机系统700还包括存储器704、输入/输出(I/O)装置708和I/O接口710,其可以经由一个或多个总线和/或其它连接彼此耦接到处理器702。总线连接表示几种类型的总线结构中的任何一种或多种,包括使用各种总线架构中的任何一种的存储器总线或存储器控制器、外围总线、加速的图形端口以及处理器或本地总线。作为示例而非限制,此类架构包括行业标准架构(ISA)、微通道架构(MCA)、增强型ISA(EISA)、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)。
存储器704可以是或包括在程序指令的执行中使用的主存储器或系统存储器(例如,随机存取存储器),例如诸如硬盘驱动、闪存介质或光学介质的存储装置,和/或例如高速缓存。存储器704可以包括例如高速缓存,诸如共享高速缓存,其可以耦接到处理器702的本地高速缓存(示例包括L1高速缓存,L2高速缓存等)。另外,存储器704可以是或包括具有一组(例如,至少一个)程序模块、指令、代码等的至少一个计算机程序产品,该程序模块、指令、代码等被配置为在由一个或多个处理器执行时执行在此描述的示例的功能。
存储器704可以存储操作系统705和其它计算机程序706,诸如执行以执行在此描述的方面的一个或多个计算机程序/应用。具体地,程序/应用可以包括计算机可读程序指令,该计算机可读程序指令可以被配置为执行在此描述的方面的示例的功能。
I/O装置708的示例包括但不限于麦克风、扬声器、全球定位系统(GPS)装置、相机、灯、加速度计、陀螺仪、磁力计、传感器装置(其配置为感测光、接近度、心率、身体和/或环境温度、血压和/或皮肤阻力)、以及活动监视器。如图所示,可以将I/O装置结合到计算机系统中,但是在一些示例中,可以将I/O装置视为通过一个或多个I/O接口710耦接到计算机系统的外部装置(712)。
计算机系统700可以经由一个或多个I/O接口710与一个或多个外部装置712通信。示例外部装置包括键盘、指向装置、显示器和/或使用户能够与计算机系统700交互的任何其它装置。其它示例外部装置包括使计算机系统700能够与一个或多个其它计算系统或外围装置(诸如打印机)通信的任何装置。网络接口/适配器是示例I/O接口,其使计算机系统700能够与一个或多个网络(诸如,局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网))通信,提供与其它计算装置或系统、存储装置等的通信。基于以太网的(诸如Wi-Fi)接口和适配器只是当前计算机系统中可用类型的网络适配器的示例(BLUETOOTH是位于美国华盛顿州柯克兰市的Bluetooth SIG公司的注册商标)。
I/O接口710与外部装置712之间的通信可以跨有线和/或无线通信链路711进行,诸如基于以太网的有线或无线连接。示例无线连接包括蜂窝、Wi-Fi、基于接近度的、近场或其它类型的无线连接。更广泛地,通信链路711可以是用于传送数据的任何适当的无线和/或有线通信链路。
特定的外部装置712可以包括一个或多个数据存储装置,其可以存储一个或多个程序、一个或多个计算机可读程序指令和/或数据等。计算机系统700可以包括可移动/不可移动的易失性/非易失性计算机系统存储介质和/或与可移动/不可移动的易失性/非易失性计算机系统存储介质耦接并与其通信(例如,作为计算机系统的外部装置)。例如,它可以包括不可移动的非易失性磁性介质(可以称为“硬盘驱动器”)、用于读取和写入可移动的非易失性磁盘(例如“软盘”)的磁盘驱动器和/或用于读取或写入可移动的非易失性光盘(诸如CD-ROM、DVD-ROM或其它光学介质)的光盘驱动器,和/或与不可移动的非易失性磁性介质、用于读取和写入可移动的非易失性磁盘的磁盘驱动器和/或用于读取或写入可移动的非易失性光盘的光盘驱动器耦接。
计算机系统700可以与许多其它通用或专用计算系统环境或配置一起操作。计算机系统700可以采用各种形式中的任何一种,其公知的示例包括但不限于个人计算机(PC)系统、服务器计算机系统(诸如消息传递服务器)、瘦客户端、厚客户端、工作站、膝上型计算机、手持装置、移动装置/计算机(诸如智能电话、平板计算机和可穿戴装置)、多处理器系统、基于微处理器的系统、电话装置、网络装置(诸如,边设备)、虚拟化装置、存储控制器、机顶盒、可编程消费者电子产品、网络PC、小型计算机系统、主机计算机系统、以及包括以上系统或装置中任何项的分布式云计算环境等。
现在描述使用计算机系统进行测序的其它方面。图8是可以与例如参见图9描述的云计算环境结合使用的测序设备800的示意图。测序设备800可以根据任何测序技术来实现,诸如结合合成测序法或通过连接技术测序的技术。一些示例可以利用纳米孔测序,由此靶核酸链或从靶核酸外切核酸去除的核苷酸穿过纳米孔。当靶核酸或核苷酸穿过纳米孔时,可以通过测量孔的电导率的波动来识别每种类型的碱基。其它示例包括对将核苷酸掺入延伸产物后释放的质子的检测。例如,基于对释放的质子的检测的测序可以使用电检测器和相关联技术。具体的示例可以利用涉及实时监测DNA聚合酶活性的方法。可以通过带有荧光团的聚合酶和y-磷酸酯标记的核苷酸之间的荧光共振能量转移(FRET)相互作用或零模波导来检测核苷酸的掺入。其它合适的替代技术包括,例如,荧光原位测序(FISSEQ)和大规模并行签名测序(MPSS)。在特定示例中,测序设备800可以是来自Illumina公司的HiSeq、MiSeq或HiScanSQ。
在所描绘的示例中,测序设备800包括单独的样本处理装置818和相关联的计算机系统820。然而,如所指出的,这些可以被实现为单个装置。此外,相关联的计算机820可以位于样本处理装置818的本地或与样本处理装置818联网(例如,作为云或其它远程提供)。在一些示例中,计算机820可以是远离测序设备800的云计算装置。也就是说,计算机820可以能够通过云计算环境与测序设备800通信。在所描绘的示例中,生物样本可以作为样本载玻片870被加载到样本处理装置818中,该样本载玻片870被成像以生成序列数据。例如,响应于由成像模块872生成的激发光束,与生物样本相互作用的试剂以特定的波长发出荧光,并且从而返回用于成像的辐射。例如,荧光组分可以由荧光标记的核酸生成,该核酸与组分的互补分子杂交或与使用聚合酶掺入寡核苷酸的荧光标记的核苷酸杂交。如本领域技术人员将理解的,样本的染料被激发的波长和它们发荧光的波长将取决于特定染料的吸收和发射光谱。该返回的辐射可能会通过定向光学系统传播回来。这种后光束可以指向成像模块872的检测光学器件。
成像模块检测光学器件可以基于任何适当的技术,并且可以是例如基于影响装置中的光子的位置生成像素化图像数据的电荷耦合器件(CCD)传感器。然而,可以理解,还可使用多种其它检测器中的任何一种,包括但不限于检测器阵列(其被配置用于时延积分(TDI)操作)、互补金属氧化物半导体(CMOS)检测器、雪崩光电二极管(APD)检测器、盖革(Geiger)模式光子计数器或任何其它合适的检测器。TDI模式检测可以与线扫描耦合。在各种核酸测序方法的上下文中描述了其它有用的检测器。
成像模块872可以在处理器的控制下(例如,经由处理器874),并且样本处理装置818还可以包括I/O控件876、内部总线878、非易失性存储器880、RAM 882和任何其它存储器结构使得存储器能够存储可执行指令,以及其它合适的硬件组件,其可以类似于关于图7所描述的那些组件。此外,相关联的计算机820还可以包括处理器884、I/O控件886、通信模块887以及包括RAM 888和非易失性存储器890的存储器架构,使得存储器架构能够存储可执行指令892。硬件组件可以由内部总线894链接,内部总线894也可以链接到显示器896。在将测序设备实现为多合一装置的示例中,可以消除某些冗余硬件元件。
现在转向图9,示意性地示出了用于生物数据的云计算环境910。如在此所使用的,术语“云”或“云计算环境”可以指示可以基于互联网的各种演进的布置、基础设施、网络等。术语可以指任何类型的云,包括客户端云、应用云、平台云、基础架构云、服务器云等。如本领域技术人员可理解的,此类布置可以允许测序设备的所有者或用户使用,提供软件即服务(SaaS),提供计算平台即服务(PaaS)的各个方面,提供各种网络基础架构即服务(IaaS)等。此外,该术语中应包括这些产品和服务的各种类型和业务布置,包括公共云、社区云、混合云和私有云。这些中的任何一个或全部都可以由第三方实体提供服务。然而,在某些示例中,私有云或混合云可允许在授权用户之间共享序列数据和服务。
云设施912包括多个计算机系统/节点914。可以将节点914的计算资源池化以服务于多个消费者,根据消费者需求动态分配和重新分配不同的物理和虚拟资源。资源的示例包括存储装置、处理、存储器、网络带宽和虚拟机。节点914可以彼此通信以分发资源,并且可以通过驻留在一个或多个节点914中的云管理模块来控制资源的此类通信和管理。节点914可以经由任何合适的布置和协议来通信。此外,节点914可以包括与一个或多个提供者相关联的服务器。例如,某些程序或软件平台可以经由通过程序所有者提供的一组节点914来访问,而其它节点914则由数据存储公司提供。某些节点914也可以是在较高的负载时间期间使用的溢出节点。
在一个示例中,云管理模块负责负载管理和云资源。可以通过考虑多种因素来实现负载管理,这些因素包括用户访问级别和/或云计算环境中的总负载(峰值时间与平均负载时间)。也可以考虑项目类型。在一个示例中,公共卫生紧急事件可被赋予比其它类型的项目更高的优先级。此外,用户可以通过提供某些运行作为较低优先级来管理成本,该运行被保持直到云使用量低于某个阈值。
云设施912被配置为与各种用户(例如,用户计算机系统)通信以生成生物数据。此类数据可以包括经由测序设备916生成的序列数据,在特定示例中测序设备916可以包括测序装置918(测序装置918包括接受生物样本并生成序列数据的模块)和相关联的计算机920(计算机920包括用于分析序列数据或将序列数据传送到云设施912的可执行指令)。可以理解,在某些示例中,测序设备916也可以被实现为多合一装置。测序设备916被配置为经由合适的通信链路924与云设施912进行通信。与云设施912的通信可以包括经由局域网(LAN)、通用广域网(WAN)和/或经由通信链路924的公共网络(例如互联网)的通信。具体地,通信链路924发送序列数据926以及在某些示例中的身份验证信息928到云计算环境912。身份验证信息可以确认测序设备916是云设施912的客户端。
如所指出的,云设施912可以为具有相关联装置(例如测序设备916a、916b和916c)的多个用户或客户端服务。此外,其它类型的客户端(诸如次级用户930或第三方软件所有者)也可以访问云设施912。因此,云设施912可以取决于特定客户端的访问级别来提供不同类型的服务。测序客户端可以访问存储和数据分析服务,而次用户930可以仅访问共享或公共序列。第三方软件所有者可以与测序客户端进行协商,以确定适当的访问权限。例如,可以免费或以有限许可为基础提供开源软件,同时可以根据各种费用或订阅基础来提供其它类型的软件。
此外,主用户(或次用户)还可以通过任何适当的访问装置(诸如移动装置或其它计算机系统,其包括与关于计算机920描述的组件类似的组件)与云设施912进行交互。也就是说,在序列数据已被传送到云设施912后,与序列数据的进一步交互和访问可能不必须被耦合到测序设备916。在其中生物样本和/或序列数据的所有者已与例如核心实验室设施签订测序合同的示例中,此类示例可能是有益的。在此类示例中,在将序列数据已经传送到云设施912之后,主用户可以是所有者,而与测序设备916相关联的核心实验室设施最多是次用户。在某些示例中,序列数据可通过安全参数访问,诸如云设施912中受密码保护的客户帐户,或与特定机构或IP地址的关联。可以通过从云设施912下载一个或多个文件或登录到基于Web的界面或软件程序来访问序列数据,该界面或软件程序提供图形用户显示,在该显示中序列数据被描述为文本、图像和/或超链接。在此类示例中,序列数据可以以经由通信链路或网络发送的数据包的形式被提供给主用户或次用户。
云设施912可以执行用户交互软件(例如,经由基于web的界面或应用平台),该用户交互软件为用户提供图形用户界面,并且有助于访问序列数据、研究者社区或群体、数据分析程序、可用的第三方软件以及用于负载平衡和仪器设置的用户选择。例如,在特定示例中,可以经由云设施912来设置用于在测序设备916上运行的测序的设置。因此,云设施912和单独的测序设备916可以能够双向通信。此类示例对于控制远程测序运行的参数可能是特别有用的。
测序运行和各种分析的结果可以例如以FASTQ文件、二进制对齐(alignment)文件(bam)、*.bcl、*.vcf和/或*.csv文件的形式存储在文件中。输出文件可以采用与序列数据查看、修改、注释、操纵、对齐和重新对齐软件兼容的格式。因此,可访问的序列对齐数据集可以是原始数据、部分处理的数据或处理后的数据、和/或与特定软件程序兼容的数据文件的形式。就这一点而言,例如计算机系统(诸如测序设备的计算机系统或与测序设备的计算机系统,或云设施计算机系统)可以获得bam或其它测序对齐数据集并例如通过读取文件的数据并执行操作以执行在此描述的方面来处理文件。然后,计算机系统可以输出具有测序对齐数据的文件,例如另一个bam文件。此外,输出文件可以与其它数据共享平台或第三方软件兼容。
本公开可以是系统、方法和/或计算机程序产品,其任何一个可以被配置为执行或促进在此描述的方面。
在一些示例中,本公开的各方面可以采取计算机程序产品的形式,其可以被体现为计算机可读介质。计算机可读介质可以是其上存储有计算机可读程序代码/指令的有形存储装置/介质。示例计算机可读介质包括但不限于电、磁、光或半导体存储装置或系统,或前述的任何组合。计算机可读介质的示例实现方式包括硬盘驱动器或其它大容量存储装置、具有线路的电连接、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(诸如EPROM或闪存)、光纤、便携式计算机磁盘/软磁盘(诸如光盘只读存储器(CD-ROM)或数字多功能光盘(DVD))、光学存储装置、磁性存储装置或前述的任意组合。计算机可读介质可以通过处理器、处理单元等读取,以从介质获得数据(例如,指令)用于执行。在特定示例中,计算机程序产品是或包括一个或多个计算机可读介质,该计算机可读介质包括/存储计算机可读程序代码以提供和促进在此描述的一个或多个方面。
如所指出的,包含在计算机可读介质中或存储在计算机可读介质上的程序指令可以由各种合适的组件(诸如计算机系统的处理器)中的任何一个来获得和执行,以使计算机系统以特定方式运行和运作。可以采用任何期望的编程语言编写或从以任何期望的编程语言编写的代码编译用于执行来执行、实现或促进在此描述的方面的操作的此类程序指令。在一些示例中,此类编程语言包括面向对象语言和/或过程编程语言,诸如C、C++、C#、Java等。
程序代码可以包括获得的一个或多个程序指令,以由一个或多个处理器执行。计算机程序指令可被提供给例如一个或多个计算机系统的一个或多个处理器以产生机器,使得程序指令在由一个或多个处理器执行时执行、实现或促进本公开的各个方面,诸如在此描述的流程图和/或框图中描述的动作或功能。因此,在一些示例中,可以通过计算机程序指令来实现在此所描绘和描述的流程图和/或框图中的每个框或框的组合。
尽管上面描述了各种示例,但是这些仅仅是示例。例如,其它架构的计算环境可以用于结合和使用一个或多个示例。
在此所使用的术语仅出于描述特定示例的目的,而不旨在进行限制。除非上下文另外明确指出外,如在此所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式。还将理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指定了所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
以下权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物(如果存在)旨在包括与具体要求的其它要求的元素组合的用于执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了一个或多个示例的描述,但并不旨在穷举或限于所公开的形式。对于本领域普通技术人员而言,许多修改和变型将是显而易见的。为了最好地解释各个方面和实际应用来选择和描述示例,并使本领域的其他普通技术人员能够理解具有适合于所设想的特定用途的各种修改的各种示例。
术语“基本上”、“近似”、“大约”、“相对”或其它类似的术语(其可以在包括权利要求的整个本公开中被使用)用于描述和解释小的变动,诸如由于参考或参数的处理过程中的变化而造成的。此类小变动还包括参考值或参数的零变动。例如,它们可以指小于或等于±10%,诸如小于或等于±5%,诸如小于或等于±2%,诸如小于或等于±1%,诸如小于或等于±0.5%,诸如小于或等于±0.2%,诸如小于或等于±0.1%,诸如小于或等于±0.05%。
可理解,在此更详细讨论的前述概念和附加概念的所有组合(只要此类概念不相互矛盾)被认为是在此公开的发明主题的一部分。特别地,出现在本公开的结尾处的要求保护的主题的所有组合被认为是在此公开的发明主题的一部分。

Claims (20)

1.一种用于对生物样本进行测序的计算机实现的方法,所述方法包括:
获得多个图像;以及
分发所述多个图像到多个处理引擎,用于协调的应用处理,所述多个处理引擎执行图像处理,其中,所述多个图像覆盖其中存在要被测序的生物样本的图像区域,所述图像区域包括多个不同子区域,所述多个不同子区域中的每个子区域与流通池的相应区域相关,其中,所述多个图像包括生物样本的要被测序的碱基序列的图像,其中,所述图像处理跨图像处理的多个周期进行以处理所述多个图像中的所述不同子区域的每个子区域中的相应的一组图像,以及因此所述流通池中与所述子区域相关的所述相应区域,并且其中,对于所述不同子区域中的每个子区域,分发所述多个图像包括:
跨所述图像处理的所述多个周期,将所述子区域的所述相应的一组图像中的所述图像分发到多个处理引擎中的与处理所述子区域的图像相关联并针对处理所述子区域的图像选择的相应处理引擎。
2.根据权利要求1所述的方法,其中,所述多个处理引擎中的每个处理引擎包括用于实例化的相同应用程序包,以在由所述相应处理引擎接收的图像上执行与多个处理引擎中的其他处理引擎在由所述其他处理引擎接收的图像上所执行的相同的一组任务。
3.根据权利要求2所述的方法,还包括维持图像获取组件以获得所述多个图像并提供所述多个图像以供分发,其中,所述图像获取组件是应用收集器的一部分以在图像获取和分发模式中执行,其与所述多个处理引擎中的每一者上的相应应用收集器要执行的模式是不同的。
4.根据权利要求1所述的方法,其中,图像获取组件从成像装置获取所述多个图像,并且其中,所述方法还包括:在执行所述图像处理期间,从所述多个处理引擎接收扫描位置信息,所述扫描位置信息指示在获取所述多个图像中的至少一些图像时对所述成像装置的图像扫描引擎的指导。
5.根据权利要求1所述的方法,其中,所述图像区域的所述不同子区域中的每个子区域对应于不同的一组一个或多个相机帧位置。
6.根据权利要求1所述的方法,其中,所述多个图像在实时序列分析运行期间被获取以对所述碱基序列执行测序,并且其中,分发所述多个图像在所述实时序列分析运行期间实时地分发所述多个图像。
7.根据权利要求1所述的方法,进一步包括从所述多个处理引擎中的每个处理引擎收集一个或多个应用完成通信,所述应用完成通信指示分配到所述处理引擎的所述图像处理的相应一个或多个部分已完成。
8.根据权利要求7所述的方法,进一步包括:
至少部分地使用接收或将要接收的应用完成通信来维持所述多个处理引擎中的每个处理引擎的图像处理状态;以及
将每个处理引擎的图像处理状态的指示传送到请求所述指示的控制组件。
9.根据权利要求1所述的方法,其中,所述多个处理引擎中的每个处理引擎是不同的物理主机计算机系统或不同的虚拟机。
10.根据权利要求1所述的方法,其中,所述方法选择所述多个处理引擎中的一个处理引擎用于处理所述不同子区域的第一子区域中的第一组图像,以及选择所述多个处理引擎中的第二处理引擎用于处理所述不同子区域的第二子区域中的第二组图像。
11.根据权利要求10所述的方法,其中,所述方法包括选择所述多个处理引擎中的同一处理引擎用于处理所述不同子区域中的至少两个子区域中的一组图像。
12.一种用于对生物样本进行测序的计算机系统,包括存储器和至少一个处理器,所述计算机系统执行程序指令以执行方法,所述方法包括:
获得多个图像;以及
分发所述多个图像到多个处理引擎,用于协调的应用处理,所述多个处理引擎执行图像处理,其中,所述多个图像覆盖其中存在要被测序的生物样本的图像区域,所述图像区域包括多个不同子区域,所述多个不同子区域中的每个子区域与流通池的相应区域相关,其中,所述多个图像包括生物样本的要被测序的碱基序列的图像,其中,所述图像处理跨图像处理的多个周期进行以处理所述多个图像中的所述不同子区域的每个子区域中的相应的一组图像,以及因此所述流通池中与所述子区域相关的所述相应区域,并且其中,对于所述不同子区域中的每个子区域,分发所述多个图像包括:
跨所述图像处理的所述多个周期,将所述子区域的所述相应的一组图像中的所述图像分发到多个处理引擎中的与处理所述子区域的图像相关联并针对处理所述子区域的图像选择的相应处理引擎。
13.根据权利要求12所述的计算机系统,其中,所述多个处理引擎中的每个处理引擎包括用于实例化的相同应用程序包,以在由所述相应处理引擎接收的图像上执行与多个处理引擎中的其他处理引擎在由所述其他处理引擎接收的图像上所执行的相同的一组任务。
14.根据权利要求13所述的计算机系统,其中,所述方法还包括:维持图像获取组件以获得所述多个图像并提供所述多个图像以供分发,其中,所述图像获取组件是应用收集器的一部分以在图像获取和分发模式中执行,其与所述多个处理引擎中的每一者上的相应应用收集器要执行的模式是不同的。
15.根据权利要求12所述的计算机系统,其中,图像获取组件从成像装置获取所述多个图像,并且其中,所述方法还包括:在执行所述图像处理期间,从所述多个处理引擎接收扫描位置信息,所述扫描位置信息指示在获取所述多个图像中的至少一些图像时对所述成像装置的图像扫描引擎的指导。
16.根据权利要求12所述的计算机系统,其中,所述多个图像在实时序列分析运行期间被获取以对所述碱基序列执行测序,并且其中,分发所述多个图像在所述实时序列分析运行期间实时地分发所述多个图像。
17.一种计算机存储介质,其存储用于执行以执行方法的程序指令,所述方法包括:
获得多个图像;以及
分发所述多个图像到多个处理引擎,用于协调的应用处理,所述多个处理引擎执行图像处理,其中,所述多个图像覆盖其中存在要被测序的生物样本的图像区域,所述图像区域包括多个不同子区域,所述多个不同子区域中的每个子区域与流通池的相应区域相关,其中,所述多个图像包括生物样本的要被测序的碱基序列的图像,其中,所述图像处理跨图像处理的多个周期进行以处理所述多个图像中的所述不同子区域的每个子区域中的相应的一组图像,以及因此所述流通池中与所述子区域相关的所述相应区域,并且其中,对于所述不同子区域中的每个子区域,分发所述多个图像包括:
跨所述图像处理的所述多个周期,将所述子区域的所述相应的一组图像中的所述图像分发到多个处理引擎中的与处理所述子区域的图像相关联并针对处理所述子区域的图像选择的相应处理引擎。
18.根据权利要求17所述的计算机存储介质,其中,所述多个处理引擎中的每个处理引擎包括用于实例化的相同应用程序包,以在由所述相应处理引擎接收的图像上执行与多个处理引擎中的其他处理引擎在由所述其他处理引擎接收的图像上所执行的相同的一组任务。
19.根据权利要求18所述的计算机存储介质,其中,所述方法还包括:维持图像获取组件以获得所述多个图像并提供所述多个图像以供分发,其中,所述图像获取组件是应用收集器的一部分以在图像获取和分发模式中执行,其与所述多个处理引擎中的每一者上的相应应用收集器要执行的模式是不同的。
20.根据权利要求17所述的计算机存储介质,其中,所述多个图像在实时序列分析运行期间被获取以对所述碱基序列执行测序,并且其中,分发所述多个图像在所述实时序列分析运行期间实时地分发所述多个图像。
CN202311179941.1A 2017-07-14 2018-06-14 协调的应用处理 Pending CN117555671A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762532657P 2017-07-14 2017-07-14
US62/532,657 2017-07-14
PCT/US2018/037455 WO2019013919A1 (en) 2017-07-14 2018-06-14 COORDINATED APPLICATION PROCESSING
CN201880036170.1A CN110692041B (zh) 2017-07-14 2018-06-14 协调的应用处理

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201880036170.1A Division CN110692041B (zh) 2017-07-14 2018-06-14 协调的应用处理

Publications (1)

Publication Number Publication Date
CN117555671A true CN117555671A (zh) 2024-02-13

Family

ID=62875281

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880036170.1A Active CN110692041B (zh) 2017-07-14 2018-06-14 协调的应用处理
CN202311179941.1A Pending CN117555671A (zh) 2017-07-14 2018-06-14 协调的应用处理

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201880036170.1A Active CN110692041B (zh) 2017-07-14 2018-06-14 协调的应用处理

Country Status (4)

Country Link
US (2) US11599394B2 (zh)
EP (2) EP3652742B1 (zh)
CN (2) CN110692041B (zh)
WO (1) WO2019013919A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110692041B (zh) 2017-07-14 2023-09-15 伊鲁米那股份有限公司 协调的应用处理
JP7240916B2 (ja) * 2019-03-22 2023-03-16 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法、および情報処理プログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782408B1 (en) 1999-03-30 2004-08-24 International Business Machines Corporation Controlling a number of instances of an application running in a computing environment
JP2004519043A (ja) * 2001-02-09 2004-06-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 画像処理機能を分散型プロセッサ環境のプログラマブルプラットフォーム上に展開配置するソフトウェアシステム
JP2006031358A (ja) * 2004-07-15 2006-02-02 Ziosoft Inc ボリュームレンダリング等の画像処理システム
US8230426B2 (en) 2004-10-06 2012-07-24 Digipede Technologies, Llc Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics
US20060075408A1 (en) 2004-10-06 2006-04-06 Digipede Technologies, Llc Distributed object execution system
DE102006004618A1 (de) * 2006-02-01 2007-08-09 Siemens Ag Arbeitsablauf-basiertes Management von medizinischen Bilddaten
US20070300239A1 (en) 2006-06-23 2007-12-27 International Business Machines Corporation Dynamic application instance placement in data center environments
US7835871B2 (en) * 2007-01-26 2010-11-16 Illumina, Inc. Nucleic acid sequencing system and method
US20080250121A1 (en) 2007-04-09 2008-10-09 Oracle International Corporation Facilitating configuration of multiple instances of an application on a server cluster
US20080263130A1 (en) 2007-04-23 2008-10-23 Nir Michalowitz Apparatus, system and method of digital content distribution
US8229251B2 (en) * 2008-02-08 2012-07-24 International Business Machines Corporation Pre-processing optimization of an image processing system
CN102257476B (zh) 2008-12-18 2015-12-16 爱立信电话股份有限公司 分发应用
US8300971B2 (en) * 2009-04-17 2012-10-30 LevelSet Systems, Inc. Method and apparatus for image processing for massive parallel DNA sequencing
US9477500B2 (en) 2013-03-15 2016-10-25 Avi Networks Managing and controlling a distributed network service platform
US9591268B2 (en) * 2013-03-15 2017-03-07 Qiagen Waltham, Inc. Flow cell alignment methods and systems
GB2522453A (en) * 2014-01-24 2015-07-29 Barco Nv Dynamic display layout
CN104602008B (zh) * 2015-01-14 2018-03-20 腾讯科技(深圳)有限公司 视频编码方法、装置和系统
US10496447B2 (en) * 2017-06-08 2019-12-03 Western Digital Technologies, Inc. Partitioning nodes in a hyper-converged infrastructure
CN110692041B (zh) 2017-07-14 2023-09-15 伊鲁米那股份有限公司 协调的应用处理

Also Published As

Publication number Publication date
EP3652742A1 (en) 2020-05-20
US11934884B2 (en) 2024-03-19
US11599394B2 (en) 2023-03-07
WO2019013919A1 (en) 2019-01-17
CN110692041B (zh) 2023-09-15
US20230176922A1 (en) 2023-06-08
EP4332976A2 (en) 2024-03-06
CN110692041A (zh) 2020-01-14
US20200133736A1 (en) 2020-04-30
EP3652742B1 (en) 2023-12-13

Similar Documents

Publication Publication Date Title
US11894135B2 (en) Cloud computing environment for biological data
US11934884B2 (en) Coordinated application processing
US20180158126A1 (en) Methods and systems for using a cloud computing environment to share biological related data
Angiuoli et al. CloVR: a virtual machine for automated and portable sequence analysis from the desktop using cloud computing
US9989544B2 (en) Sequence scheduling and sample distribution techniques
US20140278461A1 (en) System and method for integrating a medical sequencing apparatus and laboratory system into a medical facility
Levi et al. Searching the sequence read archive using Jetstream and Wrangler
Augustyn et al. Perspectives of using Cloud computing in integrative analysis of multi-omics data
Gorton et al. Exploring architecture options for a federated, cloud-based system biology knowledgebase
Cozzuto et al. Nanopore direct RNA sequencing data processing and analysis using MasterOfPores
Smowton et al. A cost-effective approach to improving performance of big genomic data analyses in clouds
Jansen et al. The EMPAIA Platform: Vendor-neutral integration of AI applications into digital pathology infrastructures
Paraskevakos et al. Workflow design analysis for high resolution satellite image analysis
CN103294535A (zh) 最大化磁盘缓存效果的工作流作业调度装置及方法
Femminella et al. The ARES project: Cloud services for medical genomics
Namai A Large Scale, Cloud-Based, Low Cost and Reproducible Mutation Calling Pipeline Using Docker Containers.
Onsongo et al. Hadoop-CNV-RF: a clinically validated and scalable copy number variation detection tool for next-generation sequencing data
Kumar et al. A Survey on Dynamic Resource Allocation for Efficient Parallel Data Processing
De Meo et al. A high performance grid-web service framework for the identification of ‘conserved sequence tags’
Avery et al. Automating flow cytometry for cell-based screening in drug discovery
Terzo et al. An effective grid infrastructure for efficiently support high throughput sequencing analysis
Henschel et al. High throughput image analysis on PetaFLOPS systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination