Computational scheduling for sequencing analysis

The sequencing system addresses inefficiencies in conventional platforms by managing resources across multiple flow cells, enhancing throughput and flexibility in sequencing tasks.

JP2025532444APending Publication Date: 2025-10-01ILLUMINA INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024557200
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-09-16
Filing Date
2023-09-07
Publication Date
2025-10-01

AI Technical Summary

Technical Problem

Conventional sequencing platforms are limited by the number of samples that can be tested in a given process, require separate sequencing jobs for each flow cell, and lose analysis if a job is stopped before completion, leading to inefficient resource utilization.

Method used

A sequencing system that monitors and controls computational and non-computational resources across multiple flow cells, prioritizes tasks based on analysis priorities, and provides real-time feedback to manage sequencing efficiently.

Benefits of technology

Enables simultaneous sequencing of multiple flow cells with optimized resource allocation, allowing for higher throughput and flexibility in sequencing tasks without losing analysis progress.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025532444000001_ABST
    Figure 2025532444000001_ABST
Patent Text Reader

Abstract

Described herein are systems, methods, and apparatus for sequencing one or more biological samples in at least two flow cells on a sequencing device. The sequencing system may include one or more of a scheduling engine, a sequencing device, and a display. The scheduling engine may maintain scheduling information for the status of computational and non-computational resources. The sequencing device may receive the scheduling information from the scheduling engine, determine the status of the computational and non-computational resources, determine sequencing analysis priorities associated with performing analyses on the at least two flow cells on the sequencing device, and perform sequencing tasks associated with one or more biological samples in the at least two flow cells according to the sequencing analysis priorities. The display may display real-time feedback associated with the completion of sequencing tasks for each flow cell.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Provisional Patent Application No. 63 / 407,393, filed September 16, 2022, which is incorporated herein by reference in its entirety. [Background technology]

[0002] In recent years, biotechnology companies and research institutions have improved hardware and software platforms for sequencing nucleotide bases (or whole genomes) and identifying variant calls for nucleotide bases that differ from reference bases in a reference genome. However, the sequencing performance of conventional sequencing platforms is generally limited. For example, conventional sequencing platforms may perform sequencing using a single flow cell that utilizes a single schedule to complete sequencing tasks associated with the flow cell. Therefore, the number of samples that can be tested in a given sequencing process is inherently limited. Furthermore, typical sequencing methods rely on performing the sequencing process on a large number of samples. However, because the sequencing process uses one or more of the same computational or non-computational resources, the sequencing process is performed on a fixed schedule so that samples are analyzed when an appropriate number of flow cells and corresponding computational and non-computational resources become available. Furthermore, conventional sequencing platforms require a separate sequencing job to be performed for each flow cell that is loaded in its entirety onto the sequencing device. Therefore, if a sequencing job is stopped before completion to allow for a higher-priority job, the analysis already performed is lost and the entire job must be restarted later. Summary of the Invention [Means for solving the problem]

[0003] Described herein are systems, methods, and apparatuses for sequencing one or more biological samples in at least two flow cells on a sequencing device. For example, the sequencing device may perform a sequencing task related to one or more biological samples in at least two flow cells loaded on the sequencing device. In some cases, computational resources (e.g., processing resources, data storage resources, memory resources, communication resources, and / or other computational resources) and non-computational resources (e.g., power resources, pumps, heaters, lasers, cameras, and / or portions thereof) may be monitored and controlled on the sequencing device when performing the sequencing task. The computational and non-computational resources may be controlled to enable the sequencing task to be performed according to one or more sequencing analysis priorities (e.g., prioritizing sequencing task processing time, sequencing task power consumption, flow cell priority, etc.) identified for the sequencing task. The sequencing device may display real-time feedback associated with the completion of the sequencing task.

[0004] In another example, the sequencing system may maintain scheduling information for the status of computational and non-computational resources. The sequencing system may receive the scheduling information and determine the status of the computational and non-computational resources. In one example, the sequencing system may determine a sequencing analysis priority associated with performing an analysis of two flow cells on a sequencing device. The sequencing system may perform sequencing tasks related to one or more biological samples in the two flow cells according to the sequencing analysis priority. In one example, the sequencing system may perform the sequencing tasks by controlling at least one computational resource or at least one non-computational resource according to the sequencing analysis priority. In one example, the sequencing system may control the computational or non-computational resources based on the status of the computational and non-computational resources. In one or more cases, the sequencing system may display real-time feedback associated with the completion of a sequencing task for each flow cell.

[0005] In one or more cases, when the sequencing system performs a sequencing task according to a sequencing analysis priority, the sequencing analysis priority may include prioritizing the processing time of the sequencing task, the power consumption for performing the sequencing task, or the priority of one of the at least two flow cells. In one or more cases, when the sequencing system determines the sequencing analysis priority, the sequencing system determines that a first flow cell is associated with a first priority and a second flow cell is associated with a second priority. In one embodiment, the first priority of the first flow cell has a higher priority than the second priority of the second flow cell. In one or more cases, the sequencing system can perform the sequencing task on the first flow cell and the second flow cell by prioritizing a first set of computational and non-computational resources and a second set of computational and non-computational resources. In one embodiment, the sequencing system can prioritize the first set of computational and non-computational resources to utilize a first amount of power when performing the sequencing task on the first flow cell. In one embodiment, the sequencing system may prioritize the second set of computational and non-computational resources to utilize a second amount of power when performing a sequencing task on the second flow cell. In some embodiments, the first amount of power utilized by the first set of computational and non-computational resources may be greater than the second amount of power utilized by the second set of computational and non-computational resources. In one or more cases, the sequencing system may perform a first sequencing task on the second flow cell using the first set of computational and non-computational resources. The sequencing system may receive instructions to perform a second sequencing task on the first flow cell. Upon receiving the instructions, the sequencing system may allocate the first set of computational and non-computational resources to performing the second sequencing task. The sequencing system may perform the second sequencing task on the first flow cell using the first set of computational and non-computational resources.In one or more cases, the sequencing system may allocate a second set of computational and non-computational resources to performing the first sequencing task on the second flow cell. After allocating the second set of computational and non-computational resources, the sequencing system may perform the first sequencing task on the second flow cell using the second set of computational and non-computational resources.

[0006] In one or more cases, the sequencing system may perform a first sequencing task on a second flow cell using the first set of computational and non-computational resources. In one or more cases, the sequencing system may receive an instruction to perform a second sequencing task on the first flow cell. In one example, the priority of the second sequencing task performed on the first flow cell may be higher than the priority of the first sequencing task performed on the second flow cell. In some cases, the sequencing system may queue one or more computational and non-computational resources from the first set of computational and non-computational resources. In one example, the sequencing system may queue one or more computational and non-computational resources to be allocated to performing the second sequencing task upon completing the first sequencing task. After queuing the one or more computational and non-computational resources, the sequencing system may allocate one or more computational and non-computational resources from the first set of computational and non-computational resources based on the completion of the first sequencing task. In one or more cases, the sequencing system may perform a second sequencing task using the one or more allocated computational and non-computational resources. In some cases, the sequencing system may save a context about the current state of the first sequencing task. Upon saving the context, the sequencing system may allocate one or more computational and non-computational resources from the first set of computational and non-computational resources to perform the second sequencing task. In some cases, the sequencing system may perform a second sequencing task on the first flow cell using the allocated one or more computational and non-computational resources. In one or more cases, the sequencing system may determine that the second sequencing task is complete. Upon determining that the second sequencing task is complete, the sequencing system loads the saved context about the current state of the first sequencing task. In some cases, the sequencing system may continue to perform the first sequencing task by allocating the first set of computational and non-computational resources.Once the first set of computational and non-computational resources have been allocated, the sequencing system may perform a first sequencing task on a second flow cell based on the saved context for the current state of the first sequencing task. In one embodiment, the first sequencing task and the second sequencing task may include a mapping task. In another embodiment, the first sequencing task and the second sequencing task may include a sorting task. In another embodiment, the first sequencing task and the second sequencing task may include a variant calling task.

[0007] In one or more cases, the sequencing system may receive scheduling information from a scheduling table. In one embodiment, the scheduling information includes the status of computational and non-computational resources and the sequencing stage of one or more biological samples. In one or more cases, the sequencing system may schedule the computational and non-computational resources to perform sequencing tasks according to sequencing analysis priorities. [Brief explanation of the drawings]

[0008] [Figure 1A] Illustrates a schematic diagram of the system environment. [Figure 1B] Illustrates examples of one or more sequencing subsystems that may be implemented by a sequencing device and / or another computing device to identify variant or base calls. [Figure 1C] 1 illustrates an example of one or more sequencing subsystems of an exemplary sequencing system. [Figure 1D] FIG. 1 illustrates an example of one or more portions of a sequencing device that may include computational resources. [Figure 2] 1 is a flowchart illustrating exemplary sequencing of one or more biological samples in at least two flow cells. [Figure 3] 1 illustrates an exemplary interface displaying the status of an exemplary sequencing task. [Figure 4]1 illustrates a block diagram of an exemplary computing device. DETAILED DESCRIPTION OF THE INVENTION

[0009] 1A illustrates a schematic diagram of a system environment (or "environment") 100 described herein. As illustrated, the environment 100 includes one or more server devices 102 connected to one or more client devices 108, a database 116, and a sequencing device 114 via a network 112.

[0010] As shown in FIG. 1A , the server device 102, the client device 108, the database 116, and the sequencing device 114 can communicate with each other via a network 112. The network 112 can include any suitable network over which computing devices can communicate. The network 112 can include a wired and / or wireless communication network. An exemplary wireless communication network can be comprised of one or more types of radio frequency (RF) communication signals using one or more wireless communication protocols, such as a cellular communication protocol, a wireless local area network (WLAN), or a Wi-Fi communication protocol, and / or another wireless communication protocol. While FIG. 1A illustrates components of the environment 100 communicating via the network 112, it will be understood that the components of the environment 100 can communicate directly with each other, for example, bypassing the network 112. For example, the client device 108 can communicate directly with the sequencing device 114.

[0011] As shown by FIG. 1A , the sequencing device 114 may include a device for sequencing a biological sample. In one or more cases, the biological sample may include, but is not limited to, human and non-human deoxyribonucleic acid (DNA), for example, to determine individual nucleotide bases of a nucleic acid sequence (e.g., sequencing by synthesis). In one or more cases, the biological sample may include, but is not limited to, human and non-human ribonucleic acid (RNA). The sequencing device 114 may analyze nucleic acid segments and / or oligonucleotides extracted from the sample to generate nucleotide reads and / or other data, either directly or indirectly on the sequencing device 114, utilizing the computer-implemented methods and systems described herein. In particular, the sequencing device 114 may receive and analyze nucleic acid sequences extracted from the sample within a nucleotide-sample slide (e.g., a flow cell). The sequencing device 114 may utilize sequencing-by-synthesis (SBS) to sequence nucleic acid segments into nucleotide reads.

[0012] 1A, the server device 102 may generate, receive, analyze, store, and / or transmit digital data, such as data for determining nucleotide base calls or sequencing a nucleic acid polymer. As shown in FIG. 1A, the sequencing device 114 may generate and transmit (and the server device 102 may receive) nucleotide reads and / or other data analyzed by the server device 102 for base calling and variant calling.

[0013] In one or more cases, the server device 102 may communicate with the client device 108. For example, the server device 102 may send data, including sequencing data or other information, to the client device 108, and the server device 102 may receive input from a user via the client device 108.

[0014] In some cases, server device 102 may include a distributed collection of servers, where server device 102 includes several server devices distributed across network 112. In some embodiments, distributed server devices 102 may be co-located or may be located in different physical locations. Additionally, server device 102 may include a content server, an application server, a communication server, a web hosting server, or another type of server.

[0015] In one or more cases, the server device 102 and / or the sequencing device 114 may include a sequencing system 104 or a portion thereof. The sequencing system 104 may analyze nucleotide reads and / or other data, such as sequencing metrics, generated by the sequencing device 114 to determine a nucleotide base sequence for a nucleic acid polymer. For example, the sequencing system 104 may receive raw data generated by the sequencing device 114. The sequencing system 104 may determine the nucleotide base sequence of a nucleic acid segment based on the received raw data. In one or more cases, the raw data may be in a file format (e.g., but not limited to, a FASTQ file) that can be recognized for processing by the sequencing device 114. The FASTQ file may include a text file containing sequence data from clusters that pass through a filter on a flow cell. The FASTQ format is a text-based format for storing both biological sequences (e.g., nucleotide sequences) and the corresponding quality scores of the biological sequences. In one or more cases, the sequencing system 104 may process the sequencing data to determine the sequence of nucleotide bases in the DNA and / or RNA segments or oligonucleotides.

[0016] The sequencing system 104, or one or more portions thereof, residing on the sequencing device 114 may enable on-device analysis of the sequencing data. The sequencing system 104, or one or more portions thereof, residing on the sequencing device 114 may enable the sequencing device to monitor the status of one or more applications operating to perform analysis on the sequencing data and / or to assist in monitoring the status of resources on the sequencing device 114 to help manage the operation of the sequencing device and portions thereof to accomplish sequencing tasks. As shown in FIG. 1A, the sequencing system 104, or one or more portions thereof, may reside on the server device 102, such that the sequencing device 114 can request information from the server device 102 to offload certain sequencing analysis tasks to be performed on the server device 102 and / or enable the sequencing device 114 to perform as described herein.

[0017] FIG. 1B illustrates an example of one or more bioinformatic subsystems that may be implemented by the sequencing system 104, or one or more portions thereof, to perform secondary and / or tertiary methods of sequencing analysis. As shown in FIG. 1B, the sequencing system may implement a mapper subsystem 122, a sorter subsystem 124, and / or a variant caller subsystem 126. Each bioinformatic subsystem may perform a different sequencing task. The mapper subsystem 122 may be implemented to align reads within sequencing data received from the sequencing device 114 and / or stored on the server device 102. The reads in the sequencing data generated by the sequencing device 114 and / or generated and stored in a file may not be included in a single sequence containing all DNA information. Instead, the sequencing data generated by the sequencing device 114 may include several short subsequences or reads containing partial DNA information. Alignment of the reads may be performed by the mapper subsystem 122 to map the reads to a reference genome and identify the location of each individual read on the reference genome.

[0018] After read alignment is performed in the mapper subsystem 122, the aligned sequencing data may be passed downstream to the sorting subsystem 124 to sort the reads by reference position, and optionally flag polymerase chain reaction (PCR) or optical duplicates. An initial sorting step may be performed by the sorter subsystem 124 on the aligned reads returned from RAM 127. Once mapping is complete, final sorting and duplicate marking may begin.

[0019] The variant caller subsystem 126 can be used to call variants from aligned and sorted reads within the sequencing data. For example, the variant caller subsystem 126 can receive a sorted file as input and process the reads to generate variant data that will be included in a variant call file (VCF) or genomic variant call format (gVCF) file as output from the variant caller subsystem 126.

[0020] Different images may be loaded from disk 123 onto random access memory (RAM) 127 on the sequencing device 114 and / or server device 102 for each of the subsystems (e.g., mapper subsystem 122, sorter subsystem 124, and variant caller subsystem 126). For example, RAM 127 may include field programmable gate array (FPGA) board dynamic RAM (DRAM) on the sequencing device 114 and / or server device 102, and different types of data, such as image data, intensity data, voltage data, and / or other types of information associated with genome sequencing, may be loaded from disk 123 to perform different types of analysis using corresponding subsystems. In one embodiment, the sequencing device 114 may utilize local RAM 127 to load images of the different subsystems onto disk, and may utilize the server device 102 to store and / or retrieve from disk 123. The read mapping process may be performed by FPGA logic on RAM 127.

[0021] In one or more cases, sequencing system 104 may remain within global memory in RAM 127 and / or on a hard disk drive (HDD) or disk 123 when processing sequencing data. RAM 127 and disk 123 may be different types of memory. RAM 127 may be used to store programs and data that can be used in real time by processors on sequencing device 114 and / or server device 102 to operate sequencing system 104 or one or more portions thereof. RAM 127 may be volatile and may be erased when the computing device is turned off. Disk 123 may be persistent storage used to store user-specific data, programs, and files that can be accessed when the computing device is turned off and then turned on. For example, sequencing system 104 and / or its subsystems may be stored on disk 123 such that computer-executable instructions can be loaded into RAM 127 to operate as described herein. Disk 123 may be a network storage device that includes persistent storage shared across one or more computing devices on a network (e.g., a cloud storage system). In addition to RAM 127, each of the subsystems can access memory in disk 123.

[0022] 1A , the client device 108 may generate, store, receive, and / or transmit digital data to enable the sequencing processes and analyses described herein. For example, the client device 108 may receive sequencing metrics from the sequencing device 114. The client device 108 may communicate with the server device 102 and / or the sequencing device 114 to receive one or more files containing nucleotide base calls and / or other metrics. In one or more cases, the client device 108 may present or display information regarding the nucleotide base calls to a user within a graphical user interface of the client device 108.

[0023] The client device 108 may include various types of client devices. In some embodiments, the client device 108 may be a non-mobile device such as a desktop computer, a server, etc. In other embodiments, the client device 108 may include a mobile device such as a laptop, a tablet, a mobile phone, or a smartphone.

[0024] The client device 108 may include a sequencing application 110. The sequencing application 110 may be, for example, a web application or a native application (e.g., a mobile application, a desktop application) stored and executed on the client device 108. In one or more cases, the sequencing application 110 may include instructions that (when executed) cause the client device 108 to receive data from the sequencing device 114 and display the data, for example, but not limited to, from a variant call file, within a graphical user interface of the client device 108.

[0025] The environment 100 may include a database 116. The database 116 may store information such as, but not limited to, variant call files, nucleotide sequences of samples, nucleotide reads, nucleotide base calls, sequencing metrics, population data, and / or other data as described herein. The server device 102, the client device 108, and / or the sequencing device 114 may communicate with the database 116 (e.g., via the network 112) to store and / or access information such as, but not limited to, variant call files, nucleotide sequences of samples, nucleotide reads, nucleotide base calls, sequencing metrics, and / or other data as described herein.

[0026] The environment 100 may be included in a local network or a local high-performance computing (HPC) system. In one or more cases, the environment 100 may be included in a cloud computing environment including multiple server devices, such as server devices 102, having distributed software and / or data. In one or more cases, the sequencing system 104 may be implemented to operate one or more subsystems as described herein. The sequencing system 104 may be distributed across server devices 102 with access to a database 116 via a network 112 in a cloud-based computing system.

[0027] The sequencing device 114 may include computational and non-computational resources within different sequencing subsystems that may be utilized during operations enabling sequencing analysis. For example, computational resources may include computational hardware and / or software resources, such as computing hardware and / or software for analyzing sequencing data, processing, scheduling non-computational resources, communicating over wired or wireless networks, and / or performing other computational tasks on the sequencing device. Computational resources may include processing resources, data storage resources, memory resources, and / or communication resources. Non-computational resources may include resources utilized to control non-computing hardware that may be operated and / or controlled by the computing subsystems to enable operation of the non-computing hardware on the sequencing device 114. Non-computational resources may include resources on the sequencing device 114 for operating pumps, heaters, lasers, cameras, and / or other non-computational resources on the sequencing device 114. Non-computational resources may include power resources used to power one or more subsystems on the sequencing device 114.

[0028] FIG. 1C illustrates an example of one or more sequencing subsystems that may be implemented by sequencing device 114. Sequencing device 114 may include one or more subsystems, which may include non-computational resources. The one or more non-computational resources may be monitored and / or controlled by the computing subsystem as analyses are performed on one or more flow cells. Additionally or alternatively, the subsystems may be controlled in response to a schedule / workflow determined by the computing subsystem. In one or more cases, detector subsystem 115 may be configured to perform analyses on one or more flow cells, such as flow cell 125. For example, detector subsystem 115 may utilize one or more non-computational resources to perform analyses on one or more flow cells. While FIG. 1C illustrates one flow cell, i.e., flow cell 125, it should be understood that flow cell 125 may represent multiple flow cells, such as a set of flow cells, on which analyses may be performed.

[0029] In one or more cases, one or more flow cells 125 can be loaded into the sequencing device 114 and used within the detector subsystem 115. Each flow cell 125 can include a flow cell body having one or more channels, each configured to carry a solution through the flow cell body. In one or more cases, the flow cell 125 can be configured to be removably coupled to the detector subsystem 115 such that the flow cell 125 can be inserted into and removed from the sequencing device 114. One or more surfaces of the flow cell 125 can be transparent and configured to allow light to pass through the flow cell. The flow cell body of the flow cell 125 can include fluid inlet and outlet ports in fluid communication with one or more channels such that a sample can be contained within the respective channels.

[0030] The detector subsystem 115 may include non-computational resources, such as a fluid flow subsystem 137 for directing the flow of reagents (e.g., fluorescent nucleotides, buffers, enzymes, cleavage reagents, etc.) or other solutions toward and through the flow cell 125 and waste valve 120. The fluid flow subsystem 137 may include one or more pumps (e.g., EO pumps) utilized during operation of the sequencing device 114. The computing subsystem of the sequencing device 114 may control the fluid flow subsystem 137 and / or the pumps therein, which are responsible for initiating reaction cycles within one or more flow cells 125. The computing subsystem of the sequencing device 114 may monitor the status (e.g., on / off status, speed, usage time, remaining usage time, etc.) of one or more pumps in the fluid flow system 137 to understand the status of available non-computational resources that are in use and available. These cycles may be performed with different solutions and / or temperatures and flow rates. However, it should be noted that a variety of pumping devices may be operated to control the fluid flow subsystem 137.

[0031] Additionally, the detector subsystem 115 may include other non-computational resources, such as heating / cooling elements (e.g., heaters) of the temperature control subsystem 135, to regulate reaction conditions within the channels and reagent storage areas / reservoirs of the flow cell 125. The temperature control subsystem 135 may have a heating / cooling element (e.g., heater) disposed below the flow cell 125. The heating / cooling element may be configured to heat / cool the flow cell 125 during operation of the detector subsystem 115. The temperature control subsystem 135 may also include one or more other heating / cooling elements for other portions of the sequencing device 114. For example, the temperature control subsystem 135 may include heating / cooling elements to control the temperature of one or more components, such as a driving fan for cooling computer components, an illuminator (laser or LED), or other heating / cooling elements for heating / cooling other portions of the sequencing device. The computing subsystem of the sequencing device 114 may monitor the temperature status of one or more heating / cooling elements in the temperature control subsystem 135 to keep track of the available non-computational resources in use and available on the sequencing device 114, and / or may calculate the amount of time to achieve a given temperature using one or more heaters in the temperature control subsystem 135.

[0032] Additionally or alternatively, detector subsystem 115 may include other non-computational resources, such as a camera, optics, and / or other components of camera system 140. Camera system 140 (e.g., a CCD camera) may monitor flow cell 125 and track sequencing. In some cases, camera system 140 may be configured to interact with various filters in a filter change assembly, lens 142, and focusing laser / focusing laser assembly. Laser device 160 (e.g., an excitation laser, optionally in an assembly including multiple lasers) may illuminate the fluorescent sequencing reaction in flow cell 125, for example, via laser illumination through optical fiber 161. In one example, laser device 160 may include one or more reimaging lenses, fiber optic mounts, etc. The detector subsystem may also, or alternatively, provide illumination from one or more light emitting diodes (LEDs) through a light pipe and lens. The computing subsystem of the sequencing device 114 may monitor the status of the camera system, the location of the camera system relative to a position within the flow cell (e.g., the lane being analyzed), laser usage (e.g., power usage and / or duration) to understand the status of the imaging process on one or more flow cells, LED usage (e.g., power usage and / or duration) and / or LED status (on / off, intensity, etc.), or another status of non-computational resources in use and available on the sequencing device 114.

[0033] Another non-computational resource within the detector subsystem 115 may be a movable stage 170 upon which one or more flow cells 125 are positioned. The stage 170 may be configured to allow the flow cell 125 to be brought into the proper orientation for laser (or other light) excitation 101 of the substrate (e.g., the flow cell 125). Additionally, the stage 170 may be configured to move relative to the lens 142 and camera system 140 so that the detector subsystem 115 can read different regions of the substrate. It will be appreciated that other components of the detector subsystem 115 (e.g., camera, objective lens, heater / cooler, etc.) may be movable / adjustable, for example, to analyze one or more flow cells 125. The computing subsystem of the sequencing device 114 may monitor the state of the stage to understand the status of the imaging process for the flow cells. The computing subsystem of the sequencing device 114 may monitor the state of the stage to understand the status of the non-computational resources in use and available on the sequencing device 114.

[0034] Each flow cell, such as flow cell 125, may include its own flow cell subsystem, including non-computational resources that can be monitored and / or controlled by the computing subsystem of sequencing device 114 when performing analyses on one or more flow cells. For example, the non-computational resources of flow cell 125 may include a pump (e.g., an electroosmotic (EO) pump) and / or one or more solutions that can be monitored and / or controlled by the computing subsystem when performing analyses on sequencing device 114. The pump in each flow cell may induce flow of a solution through a channel between the pump and a fluid inlet port and a fluid outlet port. A pump cavity may be provided in the flow cell body. The pump cavity may be in fluid communication with and sandwiched between an end of the channel and one of the fluid inlet port and the fluid outlet port. In one or more cases, a flow cell, such as flow cell 125, may include contacts disposed on at least one of the top and bottom surfaces of the flow cell body. The contacts may be electrically coupled to the pump. The pump may include a porous membrane core disposed between electrodes that induces a flow rate of liquid through the porous core membrane based on an electrical potential maintained between the electrodes. In one or more cases, the flow cell 125 may have clusters of nucleic acid sequences to be sequenced, which may be attached to a substrate of the flow cell 125. The flow cell 125 may include an array of beads, in which each bead may contain multiple copies of a single sequence. The computing subsystem of the sequencing device 114 may monitor the status of the pump and / or the level of the solution within the flow cell 125 to determine the status of the pump and / or the solution.

[0035] As discussed herein, the sequencing device 114 can be used for SBS, which uses fluorescently labeled modified nucleotides to sequence high-density clusters (perhaps millions of clusters) of amplified DNA present on the surface of a substrate (e.g., a flow cell). The flow cell containing the nucleic acid sample to be sequenced can take the form of an array of distinct, separately detectable single molecules, an array of features (or clusters) containing homogeneous populations of specific molecular species, such as amplified nucleic acids with a common sequence, or an array in which the features are beads containing molecules of nucleic acid. The nucleic acids can be prepared so that they contain oligonucleotide primers flanking an unknown target sequence. To initiate an SBS sequencing cycle, one or more differently labeled nucleotides and a DNA polymerase, etc., can be flowed into or through the flow cell by a fluid flow subsystem, such as fluid flow subsystem 137.

[0036] The detector subsystem 115 may also include other non-computational resources, such as a readout subsystem, which may be used in conjunction with the camera system 140. The readout subsystem may be configured to assist in the analysis of the flow cell 125. For example, a laser device 160 coupled to an optical fiber 161 may be positioned to illuminate the flow cell 125 when a nucleic acid sample is deposited on the surface of the flow cell 125. The flow cell 125 may be placed within a flow cell holder, which may be placed on a movable staging area 170. The flow cell holder may securely hold the flow cell 125 or one or more flow cell cartridges in the appropriate position or orientation relative to the laser device 160, a prism (not shown) that directs the laser illumination to an imaging surface, and the camera system 140 while sequencing is occurring. An objective lens component, such as a lens 142, may be positioned above the flow cell 125 to capture and monitor various fluorescent emissions when the fluorophores are illuminated by a laser or other light. In one or more cases, the fluid flow subsystem 137 may direct reagents through the flow cell 125. Alternatively, the objective lens component is positioned below the flow cell 125. The laser device 160 may be similarly positioned or appropriately adjusted so that the objective lens component reads the fluorescent emission. In one or more other cases, the flow cell 125 may be visible from both sides (i.e., above and below). Thus, multiple reading or imaging systems can be used to read signals emitted from the channels of the flow cell 125. The flow cell 125 may include one or more complementary metal oxide semiconductor (CMOS) sensors, which may be implemented in place of or in addition to external cameras and / or optical elements in the camera system 140. Non-computational resources may be used to drive the capture and readout of measurements from the CMOS sensors. The computing subsystem of the sequencing device 114 may monitor the status of the optical fibers, the laser device 160, the LEDs, the CMOS sensors, and / or other non-computational resources to understand the status of the non-computational resources.

[0037] The sequencing device 114 may include an access subsystem configured to move cartridges (e.g., from a receiving position to a processing position) and / or actuate doors (e.g., open and close) to provide access to the cartridge holder. A cartridge may contain one or more flow cells, fluids, reagents, or other materials to be loaded into the sequencing device 114. For example, a cartridge may include one or more rows of flow cells. A cartridge may include multiple flow cells (e.g., two, four, six, or more flow cells) in each row. This may allow imaging on multiple different flow cells simultaneously. The flow cells may be the same size or different sizes in a single cartridge. Each cartridge may have several flow cells loaded into it automatically or manually. The sequencing device 114 may be loaded with one or more cartridges automatically or manually. In one example, the sequencing device 114 may perform an analysis on a cartridge and then automatically move the cartridge to allow analysis on another cartridge. For example, a first cartridge may be in a processing position to allow imaging and / or analysis, while a second cartridge may be in a receiving position. After analysis of the first cartridge, the second cartridge may be moved to the processing position to allow imaging and / or analysis. The first cartridge may be moved to the receiving position for cartridge removal and / or loading of another cartridge. Each of the cartridges may be analyzed in one or more sequencing runs. While examples may be provided herein for performing analysis on one or more flow cells, similar analyses may be performed using cartridges in flow cells, as described herein. The sequencing device 114 may include a status subsystem including a light bar that provides a visual indication of the status of one or more processes occurring on the sequencing device 114 through color and / or intensity changes.

[0038] Each of the subsystems on the sequencing device may be powered by power resources controlled by power subsystem 117. Power subsystem 117 may include a power source, such as an alternating-current (AC) power source or a direct current (DC) power source. The power source may be a non-computational resource controlled by one or more applications to perform different tasks in the sequencing process. The power source may generate a supply voltage to power the subsystems within sequencing device 114.

[0039] The computing subsystem of the sequencing device 114 may include computational resources configured to monitor non-computational resources and / or perform analysis on one or more flow cells 125 and / or the sequencing data obtained therefrom. FIG. 1D illustrates an example of one or more portions of the sequencing device 114 that may include computational resources. As shown in FIG. 1D, the sequencing device 114 may include a computing subsystem 150 including computational resources 152. The computing subsystem 150 may be utilized by the sequencing system 104 to perform sequencing analysis as described herein. For example, the computing subsystem 150 may include one or more processors 154 for performing sequencing analysis as described herein. In an environment where the processor 154 is capable of multithreading, the processor 154 may provide multiple threads of execution that run independently and simultaneously within a process, sharing resources such as memory and / or processing resources. The computing subsystem 150 may include memory located on the sequencing device 114. The memory may include RAM and / or disk memory as described herein. The RAM may include one or more FPGAs 156 on the sequencing device 114. As shown in FIG. 1D , each processor 154 may communicate with one or more FPGAs 156 to perform sequencing analysis as described herein. Each processor 154 may also have access to disk memory located on the sequencing device 114 and / or on a remote computing device, such as one or more server devices 102. Although not shown in FIG. 1D , the computing subsystem 150 may include a communications interface and / or other computing components configured to operate the sequencing device 114. The communications interface may comprise a transmitter, a receiver, a transceiver, and / or other communications circuitry capable of communicating via a wired and / or wireless communications interface.

[0040] Computational resources that the computing subsystem 150 may monitor and / or utilize may include, for example, processing resources, data storage resources, memory resources, and / or communication resources. Processing resources may indicate available and / or utilized processing power on one or more processors. Processing resources may indicate the state, time, or rate of processing on one or more processors. The state or time may be the state or time relative to the completion of one or more sequencing tasks on the sequencing device 114. In an environment where the processor 154 is capable of multithreaded processing, processing resources may be monitored separately for one or more threads. Memory resources may indicate available memory, such as available RAM and / or disk space. Communication resources may include signal strength or network availability for communicating over a network. For example, communication resources may indicate the time and / or rate for sending / receiving data over a network. The computational and / or non-computational resources may be included within one or more subsystems of the sequencing device 114, although it will be understood that one or more of the computational and / or non-computational resources may reside locally within one or more subsystems of the sequencing device 114 and one or more other computational and / or non-computational resources may reside remotely from the sequencing device 114. For example, the computational resources, memory resources, and / or communication resources may include resources on the sequencing device 114 and / or one or more server devices 102.

[0041] The processor 154 on the computing subsystem 150 may load and execute different applications to operate different hardware and / or software portions of the sequencing device 114 when performing one or more sequencing tasks to analyze the flow cell 125. For example, the processor 154 may load and execute different applications to control the hardware and / or software to operate different subsystems, or portions thereof, to perform different tasks on the sequencing device 114. Referring again to FIG. 1B , different applications may be loaded into memory and executed on the processor 154 to operate the mapper subsystem 122, the sorter subsystem 124, and / or the variant caller subsystem 126, or portions thereof, to perform secondary or tertiary analysis of sequencing data on the sequencing device 114. Referring to FIG. 1C, different applications may be loaded into memory and executed on processor 154 to control the hardware and / or software resources on the detector subsystem 115, fluid flow subsystem 137, temperature control subsystem 135, flow cell subsystem, read subsystem, or portions thereof, when operating sequencing device 114.

[0042] Referring again to FIG. 1D , the computing subsystem 150 of the sequencing device 114 may include a scheduling engine 158 that assists in scheduling tasks and / or workflows for analyzing biological samples on one or more flow cells 125. In another embodiment, the scheduling engine 158 may reside on a remote computing device, such as the server device 102 and / or the client device 104. Each of the flow cells 125 may be loaded into the sequencing device 114 and processed within the sequencing device 114 using the scheduling engine 158 to prioritize sequencing tasks and / or workflows on the sequencing device 114. The scheduling engine 158 may perform sequential analysis of each of the flow cells 125. For example, the scheduling engine 158 may dedicate computational and / or non-computational resources to each flow cell before allocating computational and / or non-computational resources to another flow cell. The scheduling engine 158 may allocate resources to different flow cells. Each sequencing task may utilize the same or different computational and / or non-computational resources as other sequencing tasks. If a set of computational and / or non-computational resources is scheduled and / or in use for a sequencing task that also needs to be utilized for another sequencing task, the computing subsystem 150 may queue the set of computational and / or non-computational resources to be allocated to the execution of a subsequent sequencing task upon completion of the previous sequencing task execution. If different sets of computational and / or non-computational resources are scheduled and / or utilized for different sequencing tasks, the sequencing tasks may be performed in parallel (e.g., using different FPGAs, processors, etc.). The scheduling engine 158 may be executed via computer-readable and / or machine-readable instructions on one or more processors 154.The scheduling engine 158 may have a comprehensive view of the computational and / or non-computational resources on the sequencing device 114 for scheduling and / or workflow management to enable sequencing analysis by the sequencing system 104 for one or more flow cells 125 that may be loaded onto the sequencing device 114.

[0043] The scheduling of sequencing tasks and / or workflows on the sequencing device 114 may take into account the current state of computational and / or non-computational resources for processing multiple flow cells 125 that may be loaded onto the sequencing device 114. The sequencing device 114 may include a sensor that detects when each of the flow cells 125 is loaded onto the sequencing instrument. For example, each flow cell 125 may include an RFID tag or other device that can be detected by a sensor (e.g., based on RF signal strength). The scheduling of sequencing tasks and / or workflows may be updated when a flow cell 125 is loaded onto the sequencing device 114 and / or priority may be given to other flow cells 125 already loaded onto the sequencing device 114. The sequencing device 114 may receive user input, for example, via the scheduling engine 158, to generate and / or update the scheduling of tasks and / or workflows. The priority level of each flow cell 125 may be received by the scheduling engine 158 and communicated to the sequencing device 114 via user input on a user interface of the sequencing device 114 and / or via a user interface on the client device 108. In another example, one or more flow cells 125 may be designated as having a priority level or as having a higher priority level than other flow cells 125 that do not have an designated priority level. The sequencing device 114 may automatically generate and / or update task and / or workflow scheduling. For example, the computing subsystem 150 of the sequencing device 114, via the scheduling engine 158, may schedule tasks and / or workflows based on the status of one or more computational and / or non-computational resources or other inputs.

[0044] Because some sequencing platforms may rely on a fixed schedule for performing sequencing tasks and / or do not understand the resources available in other parts of the system, these sequencing platforms may not be able to efficiently utilize the resources on the sequencing device on which they may operate. Because the scheduling engine 158 may include software and / or hardware that provides a comprehensive view of the state of each of the computational and non-computational resources, the scheduling engine 158 may enable the sequencing device 114 to provide efficient scheduling and utilization of resources for performing analyses of multiple flow cells 125.

[0045] The scheduling engine 158 of the computing subsystem 150 of the sequencing device 114 may schedule applications for execution of sequencing tasks in a workflow prepared for multiple flow cells 125 in a sequencing process. The scheduling engine 158 may monitor the computational and / or non-computational resources associated with each application being executed by the computing subsystem 150 to control the hardware and / or software on the sequencing device 114. The scheduling engine 158 knows which applications should be executed to perform tasks on the sequencing device and may manage workflows for analyzing one or more flow cells 125. The scheduling engine 158 may maintain a job schedule table 160 in memory to assist in scheduling tasks on the sequencing device for analyzing flow cells 125. The job schedule table 160 may include a global view of each application running on the sequencing device 114 to perform tasks. The job schedule table 160 may include job scheduling information generated and / or monitored by the scheduling engine 160. The job scheduling information may include one or more applications 162 scheduled and / or running on the sequencing device 114 to control hardware and / or software for operating one or more portions of the sequencing device 114. The applications 162 may include applications scheduled or currently running in a workflow to control software and / or hardware. The job scheduling information may include stages 164 that indicate the stage of the workflow at which the application 162 is running and / or the stage of the sequencing process at which the corresponding application is running for a given flow cell 125 or one or more biological samples. The stages 164 may be comprised of a set of one or more operations that constitute a basic unit of work for performing more complex sequencing tasks. The stages 164 may be interruptible or non-interruptible.The job scheduling information may include a state 166. The state 166 may include the state of one or more computational and / or non-computational resources being utilized for the corresponding application. The state 166 may indicate the relative state of the application toward completion. The state 166 may indicate the state or amount of computational and / or non-computational resources being utilized by the corresponding application. The state 166 may include the relative state of availability, the amount of resources being utilized, and / or another state of the resources.

[0046] By implementing the scheduling engine 158, the sequencing device 114 may provide efficient scheduling of sequencing tasks, such as, but not limited to, sequencing tasks including primary, secondary, and / or tertiary analyses on two or more flow cells. Additionally, the sequencing device 114 may provide real-time feedback via a graphical user interface (GUI) (e.g., GUI 302 of the client device 108 illustrated in FIG. 3) about the estimated time to completion of one or more sequencing tasks performed by the sequencing device 114.

[0047] The computing subsystem 150 of the sequencing device 114 may monitor computational and / or non-computational resources, for example, via the scheduling engine 158, and may inform the scheduling of analyses of multiple flow cells 125 based on one or more sequencing analysis priorities. For example, the scheduling engine 158 may receive sequencing analysis priorities that may indicate one or more flow cells, processing time for one or more tasks or processes, one or more computational resources, and / or one or more non-computational resources to prioritize when analyzing multiple flow cells. The computational and / or non-computational resources on the sequencing device 114 may be divided to perform analyses on multiple flow cells or may be centralized to perform analyses on one or more flow cells. The scheduling engine 158 may update the workflow based on different sequencing analysis priorities. Each sequencing analysis priority may indicate to the scheduling engine 158 how to prioritize computational and / or non-computational resources. For example, a sequencing analysis priority may include one or more flow cells 125 being prioritized over other flow cells 125 loaded on the sequencing device 114. Each flow cell 125 may be given a priority level relative to the priority levels of each of the other flow cells 125, such that available computational and / or non-computational resources may be scheduled and / or utilized to process one or more higher priority flow cells 125 before scheduling and / or utilizing computational and / or non-computational resources to process lower priority flow cells 125. As described herein, each flow cell may be given a priority for imaging and / or analysis sequentially (e.g., as loaded) such that each flow cell may be analyzed in the order in which it was loaded into the system. In another example, each flow cell 125 may be assigned a priority level from one or more priority levels, and multiple flow cells may have the same priority level. The scheduling engine 158 may identify flow cells being processed in a workflow based on their priority levels.The scheduling engine 158 may schedule available computational and / or non-computational resources to be processed according to the priority level of each of the flow cells 125. If two flow cells 125 have the same priority level assigned to them, the flow cell 125 that is loaded into the sequencing device 114 earlier in time may be scheduled to utilize computational and / or non-computational resources before the flow cell 125 that is loaded later.

[0048] The scheduling engine 158 may receive sequencing analysis priorities that prioritize one or more identified computational resources. For example, the sequencing analysis priorities may indicate preferences for conserving processing resources, data storage resources, memory resources, communication resources, and / or other computational resources, as described herein. The scheduling engine 158 may have knowledge of the computational resources utilized for each application 162 that may be running at each stage 164 of the sequencing process. The computational resources utilized by a given application may be identified by average and / or high-end values ​​if the computational resources utilized by the application vary. The scheduling engine 158 may generate and / or update workflows based on the status of one or more computational resources and / or the preferences indicated in the sequencing analysis priorities. For example, the sequencing analysis priorities may indicate preferences for conserving processing and / or memory resources on the sequencing device 114. The scheduling engine 158 may schedule tasks for processing one or more flow cells in a workflow that conserves processing and / or memory resources on the sequencing device 114. For example, tasks may be scheduled such that processing and / or memory resources are at a predetermined level or below a level indicated in the received sequencing analysis priority.

[0049] The scheduling engine 158 may receive sequencing analysis priorities that prioritize one or more identified non-computational resources. For example, the sequencing analysis priorities may indicate preferences for conserving power levels utilized by the sequencing device 114. The sequencing analysis priorities may be received via user input on a user interface of the sequencing device and / or communication from a sequencing application 110 running on the client device 108. The scheduling engine 158 may have knowledge of the computational and / or non-computational resources utilized for each application 162 that may be running at each stage 164 of the sequencing process. The scheduling engine 158 may have knowledge of how the computational and / or non-computational resources utilized by a given application affect the non-computational resources indicated as being sequencing analysis priorities. For example, the scheduling engine 158 may have knowledge of the power consumed by each computational and / or non-computational resource when executing each application for performing sequencing tasks in the sequencing process. When the computational and / or non-computational resources utilized by an application vary, the values ​​of the computational and / or non-computational resources utilized by each application may be identified by average and / or high-end values. The scheduling engine 158 may generate and / or update workflows based on the preferences indicated in the one or more computational resources, one or more non-computational resources, and / or sequencing analysis priorities. The scheduling engine 158 may schedule tasks for processing one or more flow cells in a workflow that conserves the indicated non-computational resources on the sequencing device 114. For example, the tasks may be scheduled so that the power consumption of the sequencing device 118 is below a predetermined level or a level indicated in the received sequencing analysis priorities.In one embodiment, the heating / cooling elements of the temperature control subsystem 135 may be scheduled to start earlier and operate at a lower temperature for a longer period of time to consume less power than operating at a higher temperature for a shorter period of time. In another embodiment, processing and / or memory resources may be limited to limit the load drawn by the processing and / or memory resources.

[0050] The scheduling engine 158 may receive a sequencing analysis priority that prioritizes processing time for a sequencing process or one or more tasks of a sequencing process for one or more flow cells 125. The processing time may include the amount of time elapsed from the start of one or more sequencing tasks of a sequencing process for a particular sample or flow cell to the end of one or more sequencing tasks of the sequencing process for that particular sample or flow cell. The one or more tasks may be performed by one or more applications monitored by the scheduling engine 158. In one embodiment, the sequencing analysis priority may indicate a preference for prioritizing processing time for a sequencing process for an identified flow cell 125 (e.g., a priority flow cell). The scheduling engine 158 may have knowledge of the amount of time to complete each task when different levels of computational and / or non-computational resources are utilized by each application 162 that may be operating at each stage 164 of the sequencing process to perform the task. The scheduling engine 158 has knowledge of available computational and / or non-computational resources and may utilize the available computational and / or non-computational resources to prioritize processing time for a sequencing process for an identified flow cell 125. For example, the scheduling engine 158 may maximize the use of available computational and non-computational resources for performing each task in the sequencing process for the identified flow cell. The scheduling engine 158 may generate and / or update workflows based on preferences expressed in one or more computational resources, one or more non-computational resources, and / or sequencing analysis priorities. In one example, the heating / cooling elements of the temperature control subsystem 135 may be scheduled to begin operating at a higher temperature for a shorter period of time to shorten the processing time of the identified flow cell 125. In another example, each available processing and / or memory resource may be utilized to shorten processing time by utilizing the available processing and / or memory resources.

[0051] The sequencing device 114 may support task transitions by utilizing the sequencing engine 158 to update a workflow to shift computational and / or non-computational resources on the sequencing device 114 from one task that may be performed on one or more flow cells to another task that may be performed on one or more other flow cells (e.g., in response to sequencing analysis priorities). For example, if a flow cell is loaded into the sequencing device and / or is prioritized over other flow cells, or processing time for processing the flow cell is prioritized, the scheduling engine 158 may shift computational and / or non-computational resources to an application to perform each task in the workflow for the prioritized flow cell. Because different computational and / or non-computational resources may be utilized to perform different tasks in the sequencing process, the scheduling engine 158 may prioritize the use of computational and / or non-computational resources for tasks on the prioritized flow cell. The scheduling engine 158 may keep track of the amount of computational and / or non-computational resources utilized for each task in the sequencing process and may generate a workflow that releases the computational and / or non-computational resources needed for each task in the sequencing process for the prioritized flow cell. For example, the secondary and / or tertiary analyses may utilize a relatively large amount of computational and / or non-computational resources (e.g., power resources) on the sequencing device 114 compared to other tasks that may be performed on the sequencing device 114. To free up computational and / or non-computational resources for the priority flow cell, the scheduling engine 158 may reduce or deactivate the computational and / or non-computational resources utilized by the sequencing device 114 to process other flow cells.

[0052] When prioritizing a given flow cell or flow cell cartridge, the flow cell may be given a priority for loading and / or analysis. For example, a flow cell or flow cell cartridge may be prioritized during loading so that it is prioritized when computational and / or non-computational resources become available to allow a currently running analysis to be completed. The prioritized flow cell or flow cell cartridge may be moved to a location for imaging and / or analysis before other flow cells. In another example, a flow cell or flow cell cartridge may be given a priority for analysis so that a currently running analysis may be stopped or stopped at a predetermined point in the analysis, and computational and / or non-computational resources may be utilized for the prioritized flow cell or flow cell cartridge. When an analysis is stopped, the current results may be stored (e.g., written to disk) for uploading when the analysis is resumed.

[0053] The sequencing device 114 (e.g., via the scheduling engine 158) may support task migration by allowing one or more tasks for processing a priority flow cell to preempt a task currently running on a lower-priority flow cell. To preserve the analysis performed as a result of the completion of a task for the lower-priority flow cell, the sequencing device may store context for one or more tasks that have been performed and / or are currently running to process the lower-priority flow cell. The context may include hardware context and / or software context. The scheduling engine 158 may allow a sequencing task currently running for the lower-priority flow cell to complete before preempting and / or storing context for the task. When the sequencing device 114 allows a current task associated with a flow cell to finish, the scheduling engine 158 may prepare a workflow to shift computational and / or non-computational resources to the sequencing process for another flow cell. The scheduling engine 158 may preempt the task and / or store context for the task before its completion. The context may be stored locally at the sequencing device 114, in memory, on disk, and / or on a remote device such as a server device. The context may include the current state of the sequencing task being performed and / or the state of computational resources (e.g., memory resources and / or processing resources, including resources in one or more CPUs and / or FPGAs) before preemption.For example, the current state of a sequencing task may include information corresponding to the current progress of the sequencing task, the type and / or number of computational and non-computational resources being utilized, the current state of the computational and non-computational resources being utilized, the subsystem and / or application performing the current sequencing task, the stage of the workflow at which the application is performing the task, the stage of the sequencing process at which the corresponding application is performing, and / or other context information that allows the sequencing device 114 to resume performing the sequencing task on a lower priority flow cell at a later time. In one example, if the sequencing device 114 is performing secondary analysis of sequencing data generated on the sequencing device 114, the stored context may identify the bioinformatic subsystem (e.g., mapper subsystem 122, sorter subsystem 124, and / or variant caller subsystem 126) or application performing the secondary analysis and / or the portion of the sequencing data being processed by the bioinformatic subsystem and / or application. Results of the analysis performed may also be stored in the context.

[0054] The context for one or more sequencing tasks may be stored on the disk of the sequencing device 114 and / or transmitted to a remote computing device, such as the server device 102. Having saved the context for the current state of the sequencing tasks for the lower-priority flow cells, the sequencing device 114 may allocate computational and non-computational resources and load one or more applications to perform the sequencing tasks for the higher-priority flow cells using the allocated computational and non-computational resources. The processor 154 of the sequencing device 114 may continue to load applications for performing the sequencing tasks according to a workflow generated by the scheduling engine 158 to complete the sequencing process for the higher-priority flow cells. After the sequencing process for the higher-priority flow cells is completed, the sequencing device 114 may load the saved context for other flow cells (e.g., including applications for performing the sequencing tasks). Preemption may occur multiple times, and the context may be determined and / or saved multiple times (e.g., for each preemption). The scheduling engine 158 of the sequencing device 114 may then resume allocating one or more computational and / or non-computational resources to perform the sequencing task.

[0055] The sequencing device 114 may allow partial reconfiguration of one or more FPGAs 156 when performing task preemption. As described herein, different software and / or images may be loaded into the FPGAs 156 to operate different portions of the bioinformatic subsystems (e.g., the mapper subsystem 122, the sorter subsystem 124, and / or the variant caller subsystem 126) depending on the state of the task being performed. When one of the portions of the bioinformatic subsystem is in use to perform an analysis on a flow cell that is preempted to perform an analysis using another portion of the bioinformatic subsystem, software and / or images to operate another portion of the bioinformatic subsystem may be loaded into one or more FPGAs 156.

[0056] When the sequencing device 114 is processing one or more flow cells 125, an application running to perform one or more tasks in the sequencing process of one or more flow cells 125 may be preempted to prioritize one or more tasks in the sequencing process of one or more flow cells 125. This preemption may occur in response to one or more flow cells 125 being loaded into the sequencing device and / or receiving a sequencing analysis priority (e.g., a different sequencing analysis priority). For example, the scheduling engine 158 may identify another flow cell 125 loaded into the sequencing device and / or a change in sequencing analysis priority and update the workflow for processing the flow cells 125.

[0057] 2 is a flowchart illustrating a procedure 200 for performing one or more sequencing tasks of a sequencing process on one or more biological samples in at least two flow cells. One or more portions of procedure 200 may be performed by one or more computing devices. For example, one or more portions of procedure 200 may be performed by one or more sequencing devices. One or more portions of procedure 200 may be stored in memory as computer-readable or machine-readable instructions that may be executed by processors of one or more computing devices. One or more portions of procedure 200 may be performed by a scheduling engine and / or one or more subsystems operating on the sequencing device. While portions of procedure 200 may be described herein as being performed by a sequencing device, procedure 200 or portions thereof may be performed by another computing device or distributed across multiple computing devices, such as one or more sequencing devices, one or more client devices, and / or one or more server devices.

[0058] Procedure 200 may begin at 202. As shown in FIG. 2, at 202, the sequencing device 114 may identify that at least one flow cell has been loaded into the sequencing device 114. For example, a user may load a first flow cell (e.g., FC1) into the detector subsystem 115 of the sequencing device 114. The sequencing device may include a sensor that detects when a flow cell has been loaded into the sequencing device. For example, the flow cell may include an RFID tag or other device detectable by the sensor. In another example, upon receiving the first flow cell FC1 on the sequencing device 114, the sequencing device 114 may identify that a second flow cell (e.g., FC2) has been loaded into the sequencing device 114. In one or more cases, upon receiving the flow cell, the sequencing device 114 may also determine a sequencing task associated with the flow cell.

[0059] The sequencing device 114 may determine at least one sequencing analysis priority at 204. For example, the scheduling engine 158 of the sequencing device 114 may determine at least one sequencing analysis priority for scheduling tasks and / or workflows for allocating computational and / or non-computational resources on the sequencing device 114. The sequencing device 114 may determine a sequencing analysis priority associated with performing analysis of at least two flow cells on the sequencing device. For example, when a second flow cell FC2 is identified as loaded in the sequencing device 114, the sequencing device 114 may determine that the first flow cell FC1 is associated with a first sequencing analysis priority and the second flow cell FC2 is associated with a second sequencing analysis priority. The sequencing analysis priority may include a value, score, or other similar indicator that can provide a ranking or relative priority level. The sequencing analysis priority may be associated with a priority for allocating one or more respective computational and / or non-computational resources for performing sequencing tasks on the priority flow cells. A sequencing analysis priority may be associated with a priority for scheduling a sequencing task to one or more priority flow cells. For example, a first sequencing analysis priority may prioritize processing time for performing a sequencing process on the first flow cell FC1. In another example, the sequencing analysis priority may simply identify the first flow cell FC1 as a flow cell having a higher priority than the priority flow cell or the second flow cell FC2. Although a sequencing analysis priority is described to prioritize at least one identified flow cell, the sequencing analysis priority may include other priorities for consideration by the sequencing device when scheduling tasks and / or allocating computational and / or non-computational resources to a workflow. For example, a sequencing priority may indicate one or more computational resources (e.g., processing resources, data storage resources, memory resources, communication resources, and / or other resources) and / or non-computational resources (e.g., power resources and / or other non-computational resources on the sequencing device).Additionally, although a single sequencing priority is used as an example herein, one or more sequencing priorities may be considered when scheduling tasks and / or allocating computational and / or non-computational resources to a workflow. The sequencing analysis priority may be entered by a user into a user interface of the sequencing device 114 or may be received from another device, such as the client device 108. The sequencing device 114 may not determine a sequencing analysis priority for the first flow cell FC1 if the first flow cell FC1 is the only flow cell loaded on the sequencing device 114.

[0060] The status of the computational and / or non-computational resources may be determined by the sequencing device 114 at 206. For example, the current status of the computational and / or non-computational resources may be determined by the scheduling engine 158 of the sequencing device 114 for scheduling tasks and / or workflows to allocate computational and / or non-computational resources on the sequencing device 114. In one example, upon receiving the first flow cell FC1, the sequencing device 114 and sequencing system 104 may utilize one or more computational resources (e.g., one or more CPUs and one or more FPGAs) and / or one or more non-computational resources (e.g., the fluid flow subsystem 137 and the temperature control subsystem 135) as described herein to perform one or more tasks in the sequencing process of the first flow cell FC1. The sequencing device 114 may determine the status of the available computational and non-computational resources on the sequencing device in order to allocate computational and / or non-computational resources to sequencing tasks associated with analyzing the first flow cell FC1 and / or the second flow cell FC2.

[0061] At 208, the sequencing device 114 may schedule one or more sequencing tasks to be performed on the sequencing device 114. For example, the scheduling engine 158 may schedule one or more sequencing tasks, such as in a workflow, based on at least one sequencing analysis priority and / or the current state of available computational and / or non-computational resources. In the example provided herein, the scheduling engine 158 may schedule one or more sequencing tasks and prioritize the allocation of computational and / or non-computational resources to enable a sequencing process to be performed on the first flow cell FC1. The one or more scheduled tasks may also include one or more tasks to enable a sequencing process to be performed on the second flow cell FC1. The one or more sequencing tasks may be performed by applications and / or subsystems resident on the sequencing device 114. The scheduling engine 158 may maintain a job scheduling table 160 that includes a schedule of applications that perform one or more tasks (or simply holds one or more tasks), stages, and / or states associated with the applications. In the example provided above, the scheduling engine 158 may prioritize sequencing tasks performed on the first flow cell FC1 and may prioritize allocation of available computational and non-computational resources to the first flow cell FC1.

[0062] The scheduled sequencing tasks may be performed by the sequencing device 114 at 210. For example, the sequencing device 114 may perform sequencing tasks associated with one or more biological samples in each flow cell according to a scheduled workflow. For example, if a first flow cell FC1 has a higher sequencing analysis priority than a second flow cell FC2, the sequencing device 114 may prioritize the allocation of computational and / or non-computational resources to perform sequencing tasks associated with one or more biological samples in the first flow cell FC1. In such a case, the sequencing device 114 may queue the sequencing task associated with the second flow cell FC2 until one or more computational and non-computational resources become available. The sequencing device 114 may be configured to perform sequencing tasks by controlling at least one computational resource and / or at least one non-computational resource.

[0063] Upon determining that computational and / or non-computational resources are available to perform queued sequencing tasks associated with the second flow cell FC2, the sequencing device 114 may allocate the available computational and non-computational resources to perform the sequencing tasks associated with one or more biological samples in the second flow cell FC2. Note that such a queuing mechanism may allow a user to maximize the use of computational and non-computational resources even when the user is not on-site or does not have access to the sequencing device 114.

[0064] While performing one or more sequencing tasks, the sequencing device 114 may determine at 212 that one or more sequencing tasks have been preempted. The preemption may be based on at least one additional sequencing analysis priority. For example, the sequencing device may determine that a third flow cell FC3 has been loaded onto the sequencing device 114 and / or that a sequencing task has been assigned a higher priority than a flow cell currently performing a sequencing task on the sequencing device. In another example, the sequencing analysis priority may indicate a priority for reducing power usage on the sequencing device or for reducing the processing time of the first flow cell FC1 or the second flow cell FC2. In another example, the sequencing analysis priority may indicate a change in relative priority between the first flow cell FC1 and the second flow cell FC2. If the current task is preempted at 212 (e.g., based on a later received sequencing analysis priority), the sequencing device 114 may determine the current state of computational and / or non-computational resources and update the workflow to schedule one or more sequencing tasks (e.g., according to the later received sequencing analysis priority).

[0065] In examples in which the schedule of one or more sequencing tasks causes a change to the current sequencing task (e.g., due to the prioritization of another flow cell, such as a third flow cell FC3, loaded on the sequencing device 114, or a change in priority between the first flow cell FC1 and the second flow cell FC2), the sequencing device may adjust the allocation of computational and / or non-computational resources for performing the sequencing tasks in the updated workflow. Before the second sequencing task preempts the first sequencing task, the sequencing device 114 may save a context about the current state of the current sequencing task being performed on the first flow cell FC1 to enable the sequencing device 114 to resume performing the sequencing task at a later time. Having saved the context of the current state of the first sequencing task, the sequencing device 114 may allocate computational and / or non-computational resources and perform the newly scheduled sequencing task using the allocated computational and / or non-computational resources. The scheduling engine 158 may include loading the stored context at an appropriate location in the workflow to resume performing a previously preempted sequencing task (e.g., after completion of one or more tasks on a priority flow cell and / or identification of available computational and / or non-computational resources).

[0066] The sequencing device 114 may provide real-time feedback associated with performing and / or completing the sequencing task provided in 210. For example, the sequencing device 114 may provide real-time feedback to the sequencing application 110 implemented on the client device 108 and / or on a user interface running locally on the sequencing device 114, indicating the current status and / or completion of the sequencing task.

[0067] As illustrated in FIG. 3 , the sequencing application 110 and / or a local application running on the sequencing device 114 may display a GUI 302 that represents real-time feedback associated with the completion of a sequencing task for one or more flow cells. For example, the GUI 302 may display a processing window 308 to provide a graphical representation of the sequencing analysis being performed on one or more biological samples associated with each flow cell. The GUI 302 may display a sequencing analysis status window 306. The information in the sequencing analysis status window may be determined and / or generated from information in the job scheduling table 160 and / or other information monitored by the scheduling engine 158. The status window 306 may provide indicators, such as indicators 304a and 304b, to indicate time to completion. For example, indicator 304a may indicate that the time to complete the sequencing task for the first flow cell FC1 is six hours, although other indications may be provided. Indicator 304b may indicate that the time to complete the sequencing task for the second flow cell FC2 is one hour, although other indications may be provided. Indicators such as indicators 304a and 304b may change dynamically based on the progress of the associated sequencing task and / or the computational / non-computational resources that are available or scheduled to be available over a period of time. For example, as the sequencing task progresses, regions of the indicator may be illuminated in distinct colors. The illuminated regions may increase as the sequencing task progresses or decrease if the sequencing task regresses. Note that GUI 302 is displayed on client device 108 via sequencing application 110. However, it should be understood that GUI 302 may be displayed on other devices, such as a display associated with server device 102 or a display associated with sequencing device 114 (e.g., a display integrated with sequencing device 114).

[0068] FIG. 4 illustrates a block diagram of an exemplary computing device 400. One or more computing devices, such as computing device 400, may implement one or more features for generating and / or processing sequencing tasks as described herein. For example, computing device 400 may include one or more of sequencing device 114, client device 108, and / or server device 102 shown in FIG. 1A. As shown by FIG. 4, computing device 400 may include a processor 402, memory 404, storage device 406, I / O interface 408, and / or communication interface 410, which may be communicatively coupled by a communication infrastructure 412. It should be understood that computing device 400 may include fewer or more components than those shown in FIG. 4.

[0069] Processor 402 may include hardware for executing instructions, such as instructions that make up a computer program. In an embodiment, to execute instructions for dynamically altering a workflow, processor 402 may retrieve (or fetch) instructions from an internal register, an internal cache, memory 404, or storage device 406, decode these instructions, and execute them. Memory 404 may be volatile or non-volatile memory used to store data, metadata, computer-readable or machine-readable instructions, and / or programs executed by the processor to operate as described herein. Storage device 406 may include a storage device, such as a hard disk, flash disk drive, or other digital storage device, for storing data or instructions for performing the methods described herein.

[0070] The I / O interface 408 may enable a user to provide input to, receive output from, and / or otherwise transfer data to and receive data from the computing device 400. The I / O interface 408 may include a mouse, a keypad or keyboard, a touchscreen, a camera, an optical scanner, a network interface, a modem, other known I / O devices, or a combination of such I / O interfaces. The I / O interface 408 may include one or more devices for presenting output to a user, including, but not limited to, a graphics engine, a display (e.g., a display screen), one or more output drivers (e.g., a display driver), one or more audio speakers, and one or more audio drivers. The I / O interface 408 may be configured to provide graphical data to a display for presentation to a user. The graphical data may represent one or more graphical user interfaces and / or any other graphical content.

[0071] Communications interface 410 may include hardware, software, or both. In any case, communications interface 410 may provide one or more interfaces for communications (e.g., packet-based communications, etc.) between computing device 400 and one or more other computing devices or networks. The communications may be wired or wireless. By way of example and not limitation, communications interface 410 may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wired-based network, or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network such as Wi-Fi.

[0072] Additionally, communication interface 410 may facilitate communication with various types of wired or wireless networks. Communication interface 410 may also facilitate communication using various communication protocols. Communication infrastructure 412 may also include hardware, software, or both that couple components of computing device 400 to one another. For example, communication interface 410 may use one or more networks and / or protocols to enable multiple computing devices connected by a particular infrastructure to communicate with each other to perform one or more aspects of the processes described herein. Illustratively, a sequencing process may enable multiple devices (e.g., client devices, sequencing devices, and server devices) to exchange information such as sequencing data and error notifications.

[0073] In addition to what is described herein, the methods and systems may also be implemented in, for example, a computer program, software, or firmware embodied in one or more computer-readable media for execution by a computer or processor. Examples of computer-readable media include electronic signals (transmitted over wired or wireless connections) and tangible / non-transitory computer-readable storage media. Examples of tangible / non-transitory computer-readable storage media include, but are not limited to, read-only memory (ROM), random-access memory (RAM), removable disks, and optical media such as CD-ROM disks and digital versatile disks (DVDs).

[0074] While the present disclosure has been described with respect to particular embodiments and generally associated methods, modifications and permutations of the embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of exemplary embodiments does not constrain the present disclosure. Other modifications, substitutions, and alterations are also possible without departing from the spirit and scope of the present disclosure. [Explanation of symbols]

[0075] 100 System Environment 101 Laser excitation 102 Server Device 104 Sequencing System 108 client devices 110 Sequencing Applications 112 Network 114 Sequencing Device 115 Detector Subsystem 116 databases 117 Power Subsystem 120 Disposal valve 122 Mapper Subsystem 123 discs 124 Sorter Subsystem 125 flow cell 126 Variant Caller Subsystem 127 Random Access Memory (RAM) 135 Temperature Control Subsystem 137 Fluid Flow Subsystem 140 Camera System 142 Lens 150 Computing Subsystem 152 Computational Resources 154 processors (CPUs) 156 Field Programmable Gate Array (FPGA) 158 Scheduling Engine 160 Laser Device, Job Schedule Table 161 Optical Fiber 162 Applications 164 stages 166 Status 170 Movable Stage 400 computing devices 402 processor 404 Memory 406 Storage Devices 408 I / O interface 410 Communication Interface 412 Communications Infrastructure

Claims

1. 1. A computer-implemented method for sequencing one or more biological samples in at least two flow cells on a sequencing device, comprising: analyzing computational and non-computational resources associated with the sequencing device to determine a state of the computational and non-computational resources; determining a sequencing analysis priority associated with performing an analysis of the at least two flow cells on the sequencing device; performing a sequencing task associated with the one or more biological samples in at least one of the at least two flow cells according to the sequencing analysis priority, wherein the sequencing task is performed by controlling at least one computational resource or at least one non-computational resource according to the sequencing analysis priority, and the at least one computational resource or the at least one non-computational resource is controlled based on the states of the computational resource and the non-computational resource; and displaying on a display real-time feedback associated with completion of the sequencing task for each flow cell.

2. 2. The method of claim 1, wherein the sequencing analysis priority includes prioritizing a processing time of a sequencing process including the sequencing task, a power consumption for performing the sequencing task, or a priority of one of the at least two flow cells.

3. 2. The method of claim 1, wherein determining the sequencing analysis priority further comprises determining that a first flow cell is associated with a first priority and a second flow cell is associated with a second priority, the first priority being a relatively higher priority than the second priority.

4. 4. The method of claim 3, further comprising performing the sequencing task on the first flow cell and the second flow cell by prioritizing a first set of computational and non-computational resources to utilize a first amount of power when performing the sequencing task on the first flow cell and prioritizing a second set of computational and non-computational resources to utilize a second amount of power when performing the sequencing task on the second flow cell.

5. The method of claim 4 , wherein the first amount of power is greater than the second amount of power.

6. performing a first sequencing task on the second flow cell using a first set of computational and non-computational resources; receiving instructions to perform a second sequencing task on the first flow cell; allocating the first set of computational and non-computational resources to perform the second sequencing task; 4. The method of claim 3, further comprising: performing the second sequencing task on the first flow cell using the first set of computational and non-computational resources.

7. allocating a second set of computational and non-computational resources to perform the first sequencing task on the second flow cell; 7. The method of claim 6, further comprising: performing the first sequencing task on the second flow cell using the second set of computational and non-computational resources.

8. performing a first sequencing task on a second flow cell using a first set of computational and non-computational resources; 10. The method of claim 1, further comprising receiving an instruction to perform a second sequencing task on a first flow cell, wherein the second sequencing task has a higher priority than the first sequencing task.

9. Upon completion of performing the first sequencing task, queuing one or more computational and non-computational resources of the first set of computational and non-computational resources for allocation to performing the second sequencing task; allocating the one or more computational and non-computational resources of the first set of computational and non-computational resources based on the completion of the first sequencing task; The method of claim 8 , further comprising: performing the second sequencing task using the one or more allocated computational and non-computational resources.

10. saving a context about the current state of the first sequencing task; allocating the one or more computational and non-computational resources of the first set of computational and non-computational resources to perform the second sequencing task; 10. The method of claim 8, further comprising: performing the second sequencing task on the first flow cell using the one or more allocated computational and non-computational resources.

11. determining that the second sequencing task is complete; and loading the saved context for the current state of the first sequencing task; allocating the first set of computational and non-computational resources to continue performing the first sequencing task; 11. The method of claim 10, further comprising: performing the first sequencing task on the second flow cell based on the saved context for the current state of the first sequencing task.

12. 12. The method of claim 11 , wherein the first sequencing task and the second sequencing task comprise one of a mapping task, a sorting task, or a variant calling task.

13. receiving scheduling information from a scheduling table, the scheduling information including the states of the computational and non-computational resources and a sequencing stage of the one or more biological samples; The method of claim 1 , further comprising: scheduling the computational resources and the non-computational resources to perform the sequencing task based on the scheduling information.

14. 1. A sequencing system for sequencing one or more biological samples in at least two flow cells on a sequencing device, comprising: a scheduling engine configured to maintain scheduling information of the state of computational and non-computational resources; the computational resources and the non-computational resources configured to perform a sequencing task; The sequencing device, receiving the scheduling information from the scheduling engine; determining the state of the computational and non-computational resources; determining a sequencing analysis priority associated with performing an analysis of the at least two flow cells on the sequencing device; a sequencing device configured to perform the sequencing tasks associated with the one or more biological samples in the at least two flow cells according to the sequencing analysis priority, wherein the sequencing tasks are performed by controlling at least one computational resource or at least one non-computational resource according to the sequencing analysis priority, and the at least one computational resource or the at least one non-computational resource is controlled based on the states of the computational resource and the non-computational resource; a display configured to display real-time feedback associated with completion of the sequencing task for each flow cell.

15. 15. The sequencing system of claim 14, wherein the sequencing analysis priority comprises prioritizing a processing time of a sequencing process including the sequencing task, a power consumption for performing the sequencing task, or a priority of one of the at least two flow cells.

16. 15. The sequencing system of claim 14, wherein the sequencing device is further configured to determine the sequencing analysis priority by determining that a first flow cell is associated with a first priority and a second flow cell is associated with a second priority, the first priority being a higher priority than the second priority.

17. the sequencing device performing a first sequencing task on the second flow cell using a first set of computational and non-computational resources; receiving instructions to perform a second sequencing task on the first flow cell; allocating the first set of computational and non-computational resources to perform the second sequencing task; 17. The sequencing system of claim 16, further configured to: perform the second sequencing task on the first flow cell using the first set of computational and non-computational resources.

18. the sequencing device performing a first sequencing task on a second flow cell using a first set of computational and non-computational resources; 15. The sequencing system of claim 14, further configured to receive instructions to perform a second sequencing task on a first flow cell, the second sequencing task having a higher priority than the first sequencing task.

19. the sequencing device saving a context about the current state of the first sequencing task; allocating one or more computational and non-computational resources of the first set of computational and non-computational resources to perform the second sequencing task; 20. The sequencing system of claim 18, further configured to: perform the second sequencing task on the first flow cell using the one or more allocated computational and non-computational resources.

20. the sequencing device determining that the second sequencing task is complete; and loading the saved context for the current state of the first sequencing task; allocating the first set of computational and non-computational resources to continue performing the first sequencing task; 20. The sequencing system of claim 19, further configured to: perform the first sequencing task on the second flow cell based on the saved context for the current state of the first sequencing task.