Base calling using multiple base call models
Patent Information
- Application Number
- JP2023580568
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-07-28
- Filing Date
- 2022-08-02
- Publication Date
- 2025-08-13
AI Technical Summary
Deploying deep convolutional neural networks (CNNs) in portable and embedded systems is challenging due to large data volumes, intensive computations, and frequent memory accesses, which hinder efficient low-latency processing with strict power consumption requirements.
Utilizing field programmable gate arrays (FPGAs) to accelerate CNN inference by customizing digital circuits for specific computations, optimizing data flow, and maximizing resource utilization.
FPGAs provide high performance, efficiency, and flexibility for CNN acceleration, enabling effective base calling in portable systems by minimizing data communication and enhancing resource utilization.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] (Priority Application) This application claims priority to U.S. Nonprovisional Patent Application No. 17 / 876,528, entitled "Base Calling Using Multiple Base Caller Models," filed July 28, 2022 (Attorney Docket No. ILLM1021-2 / IP-1856-US), which claims the benefit of U.S. Provisional Patent Application No. 63 / 228,954, entitled "Base Calling Using Multiple Base Caller Models," filed August 3, 2021 (Attorney Docket No. ILLM1021-1 / IP-1856-PRV). The priority application is incorporated herein by reference for all purposes.
[0002] FIELD OF THEINVENTION The disclosed technology relates to artificial intelligence based computers and digital data processing systems and corresponding data processing methods and products for mimicking intelligence (i.e., knowledge-based systems, inference systems, and knowledge acquisition systems), including systems for reasoning with uncertainty (e.g., fuzzy logic systems), adaptive systems, machine learning systems, and artificial neural networks. In particular, the disclosed technology relates to using deep neural networks, such as deep convolutional neural networks, to analyze data.
[0003] (Built-in) The following are incorporated by reference as if fully set forth herein: U.S. Provisional Patent Application No. 62 / 979,384, entitled “Artificial Intelligence-Based Base Calling of Index Sequences,” filed on February 20, 2020 (Attorney Docket No. ILLM1015-1 / IP-1857-PRV); U.S. Provisional Patent Application No. 62 / 979,414, entitled “Artificial Intelligence-Based Many-to-Many Base Calling,” filed on February 20, 2020 (Attorney Docket No. ILLM1016-1 / IP-1858-PRV); U.S. Nonprovisional Patent Application No. 16 / 825,987, entitled “Training Data Generation for Artificial Intelligence-Based Sequencing,” filed on March 20, 2020 (Attorney Docket No. ILLM1008-16 / IP-1693-US); U.S. Nonprovisional Patent Application No. 16 / 825,991, entitled “Artificial Intelligence-Based Generation of Sequencing Metadata,” filed on March 20, 2020 (Attorney Docket No. ILLM1008-17 / IP-1741-US); U.S. Nonprovisional Patent Application No. 16 / 826,126, entitled “Artificial Intelligence-Based Base Calling,” filed on March 20, 2020 (Attorney Docket No. ILLM1008-18 / IP-1744-US); U.S. Nonprovisional Patent Application No. 16 / 826,134, entitled “Artificial Intelligence-Based Quality Scoring,” filed on March 20, 2020 (Attorney Docket No. ILLM1008-19 / IP-1747-US); and U.S. Nonprovisional Patent Application No. 16 / 826,168, entitled “Artificial Intelligence-Based Sequencing,” filed March 21, 2020 (Attorney Docket No. ILLM1008-20 / IP-1752-PRV-US). [Background technology]
[0004] The subject matter discussed in this section should not be assumed to be prior art merely as a result of its mention in this section. Similarly, it should not be assumed that the problems mentioned in this section, or associated with the subject matter provided as background, have been previously recognized in the prior art. The subject matter in this section merely represents different approaches, which as such may also correspond to implementations of the claimed technology.
[0005] Rapid improvements in computing power have enabled deep Convolution Neural Networks (CNNs) to achieve great success in many computer vision tasks in recent years, with significantly improved accuracy. During the inference stage, many applications require low-latency processing of a single image with strict power consumption requirements, which reduces the efficiency of Graphics Processing Units (GPUs) and other general-purpose platforms, which creates an opportunity for specific acceleration hardware, such as Field Programmable Gate Arrays (FPGAs), by customizing digital circuits to be particularly effective for inference of deep learning algorithms. However, deploying CNNs in portable and embedded systems remains challenging due to large data volumes, intensive computations, various algorithm structures, and frequent memory accesses.
[0006] Since convolution provides most of the operations in CNN, the convolution acceleration scheme will greatly affect the efficiency and performance of hardware CNN accelerators. Convolution involves multiply and accumulate (MAC) operations with four levels of loops that slide along the kernel and feature maps. The first loop level calculates the MAC of pixels in one kernel window. The second loop level accumulates the sum of MAC products over various different input feature maps. After completing the first and second loop levels, the final output element in the output feature map is obtained by adding a bias. The third loop level slides the kernel window in the input feature map. The fourth loop level generates various different output feature maps.
[0007] FPGAs have attracted more interest and become more widespread, especially for accelerating inference tasks. This is because FPGAs (1) are highly reconfigurable, (2) are superior to application specific integrated circuits (ASICs) in terms of the development time required to catch up with the rapid evolution of CNNs, (3) have good performance, and (4) are more energy efficient than GPUs. The high performance and efficiency of FPGAs can be achieved by synthesizing circuits customized for specific calculations and directly processing billions of operations with customized memory systems. For example, hundreds to thousands of digital signal processing (DSP) blocks in a modem FPGA support core convolution operations, such as multiply-and-accumulate operations with high parallelism. Dedicated data buffers between external on-chip memory and on-chip processing engines (PEs) can be designed to realize prioritized data flow by configuring tens of megabytes of on-chip block random access memory (BRAM) on the field programmable gate array (FPGA) chip.
[0008] Efficient data flow and hardware architecture for CNN acceleration is desired to minimize data communication while maximizing resource utilization to achieve high performance. This creates an opportunity to design methodologies and frameworks to accelerate the inference process of various CNN algorithms on acceleration hardware and achieve high performance, high efficiency, and high flexibility. [Brief description of the drawings]
[0009] In the drawings, like reference characters generally refer to like parts throughout the different views. Also, the drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the disclosed technology. In the following description, various embodiments of the disclosed technology are described with reference to the following drawings, in which: [Figure 1] FIG. 1 illustrates a cross-sectional view of a biosensor that can be used in various embodiments. [Diagram 2] 1 shows one implementation of a flow cell that includes clusters within its tiles. [Diagram 3] An exemplary flow cell with eight lanes is shown, along with a zoom-in of one tile and its cluster and their surrounding background. [Figure 4] FIG. 1 is a simplified block diagram of a system for analysis of sensor data from a sequencing system, such as base call sensor output. [Diagram 5] FIG. 2 is a simplified diagram illustrating aspects of a base call operation, including functions of a runtime program executed by a host processor. [Figure 6] 5 is a simplified diagram of a configuration of a configurable processor, such as the configurable processor of FIG. 4. [Figure 6A] FIG. 1 illustrates a system that employs two or more base callers for base calling operations on raw images output by a biosensor. [Figure 7] FIG. 1 is a diagram of a neural network architecture that can be implemented using a configurable or reconfigurable array configured as described herein. [Figure 8A] FIG. 8 is a simplified diagram of an organization of tiles of sensor data used by a neural network architecture such as that of FIG. [Figure 8B] FIG. 8 is a simplified diagram of a patch of tiles of sensor data used by a neural network architecture such as that of FIG. [Figure 9]8 illustrates part of the configuration of a neural network such as that of FIG. 7 on a configurable or reconfigurable array such as a field programmable gate array (FPGA). [Figure 10] FIG. 13 is a diagram of another alternative neural network architecture that can be implemented using a configurable or reconfigurable array configured as described herein. [Figure 11] 1 shows one implementation of a dedicated architecture of a neural network-based base caller used to separate the processing of data in different sequencing cycles. [Figure 12] 1 illustrates one implementation of separated layers, each of which may contain convolutions. [Figure 13A] 1 illustrates one implementation of combinational layers, each of which may include convolutions. [Figure 13B] 13 illustrates another implementation of combination layers, each of which may include convolutions. [Figure 14] FIG. 1 shows a base calling system including multiple base callers for predicting base calls of an unknown sample that includes a base sequence. [Figure 15A] 15 is a corresponding flowchart depicting various operations of the base calling system of FIG. 14 for a corresponding set of sensor data. [Figure 15B] 15 is a corresponding flowchart depicting various operations of the base calling system of FIG. 14 for a corresponding set of sensor data. [Figure 15C] 15 is a corresponding flowchart depicting various operations of the base calling system of FIG. 14 for a corresponding set of sensor data. [Figure 15D] 15 is a corresponding flowchart depicting various operations of the base calling system of FIG. 14 for a corresponding set of sensor data. [Figure 15E] 15 is a corresponding flowchart depicting various operations of the base calling system of FIG. 14 for a corresponding set of sensor data. [Figure 16]FIG. 15 illustrates a context information generation module of the base calling system of FIG. 14 that generates context information for an exemplary set of sensor data. [Figure 17A] FIG. 1 illustrates a flow cell containing tiles sorted based on the spatial location of the tiles. [Figure 17B] FIG. 1 shows tiles of a flow cell containing clusters sorted based on the spatial location of the clusters. [Figure 17C] FIG. 1 shows an example of fading in signal intensity decrease as a function of cycle number, a sequencing run of a base calling operation. [Figure 17D] FIG. 1 conceptually illustrates the decreasing signal-to-noise ratio as cycles of sequencing progress. [Figure 18] FIG. 1 shows base calling accuracy (1 base calling error rate) across homopolymer (e.g., GGGGG) and near-homopolymer (e.g., GGTGG) base calls of different exemplary compositions of base calls. [Figure 19A] FIG. 15 illustrates the generation of a final base call for a set of sensor data based on a function of first base call classification information from a first base caller and second base call classification information from a second base caller of the base calling system of FIG. [Figure 19A1] 1 is a look-up table (LUT) illustrating an exemplary weighting scheme used for the final confidence score based on temporal context information. [Figure 19B] This is a LUT that indicates the base caller to be used when the base being called contains a special base sequence. [Figure 19C] This is a LUT that indicates the weighting given to the confidence scores of individual base calls when the base being called contains a particular base sequence. [Figure 19D] 15 is a LUT illustrating the operation of the base call binding module of FIG. 14 taking into account the detection of one or more air bubbles in a cluster of flow cells. [Figure 19D1]15 is a LUT illustrating the operation of the base calling binding module of FIG. 14 taking into account the detection of out-of-focus image(s) from a cluster of flow cells. [Figure 19E] 13 is a LUT showing exemplary weightings given to the confidence scores of individual base collaborators based on the group of reagents used. [Figure 19F] 15 is a LUT illustrating the operation of the base calling combination module of FIG. 14 taking into account the spatial grouping of tiles. [Figure 19G] 15 is a LUT illustrating the operation of the base call combination module of FIG. 14, taking into account the spatial classification of clusters. [Figure 20A] 15 is a LUT illustrating the operation of the base call combination module of FIG. 14 when (i) a special base sequence is detected and (ii) a first called base from a first base caller does not match a second called base from a second base caller. [Figure 20B] 15 is a LUT illustrating the operation of the base call combination module of FIG. 14 when (i) a bubble is detected in a cluster and (ii) a first called base from a first base caller does not match a second called base from a second base caller. [Figure 20C] 15 is a LUT illustrating the operation of the base call combination module of FIG. 14 when (i) one or more out-of-focus images are detected from at least one cluster, and (ii) a first called base from a first base caller does not match a second called base from a second base caller. [Figure 20D] 15 is a LUT showing the operation of the base call combination module of FIG. 14 when (i) the sensor data is from an edge cluster, and (ii) a first called base from a first base caller does not match a second called base from a second base caller. [Figure 21]FIG. 1 illustrates a base calling system including a plurality of base callers for predicting base calls for an unknown sample that includes a base sequence, in which a neural network-based final base call determination module determines a final base call based on the output of one or more of the plurality of base callers. [Figure 22] FIG. 1 is a block diagram of a base calling system according to one implementation. [Figure 23] FIG. 23 is a block diagram of a system controller that can be used in the system of FIG. 22. [Figure 24] FIG. 1 is a simplified block diagram of a computer system that can be used to implement the disclosed techniques. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] As used herein, the term "polynucleotide" or "nucleic acid" refers to deoxyribonucleic acid (DNA); however, where appropriate, one of skill in the art will recognize that the systems and devices herein can also be utilized with ribonucleic acid (RNA). These terms should be understood to include, as equivalents, analogs of either DNA or RNA made from nucleotide analogs. As used herein, these terms also encompass complementary cDNA or copy DNA generated from an RNA template, for example, by the action of reverse transcriptase.
[0011] The single-stranded polynucleotide molecules sequenced by the systems and devices herein may originate in single-stranded form as DNA or RNA, or may originate in double-stranded DNA (dsDNA) form (e.g., genomic DNA fragments, PCR and amplification products, etc.). Thus, the single-stranded polynucleotide may be the sense or antisense strand of a polynucleotide duplex. Methods for preparing single-stranded polynucleotide molecules suitable for use in the methods of the present disclosure using standard techniques are known in the art. The exact sequence of the primary polynucleotide molecule is generally not critical to the present disclosure and may be known or unknown. The single-stranded polynucleotide molecule may represent a genomic DNA molecule (e.g., human genomic DNA), including both intron and exon sequences (coding sequences), as well as non-coding regulatory sequences such as promoter and enhancer sequences.
[0012] In certain embodiments, for example, the nucleic acid to be sequenced by use of the present disclosure is immobilized on a substrate (e.g., a substrate in a flow cell or one or more beads on a substrate such as a flow cell). The term "immobilized" as used herein is intended to encompass direct or indirect, covalent or non-covalent attachment, unless otherwise indicated explicitly or by context. In certain embodiments, covalent attachment may be preferred, but generally, what is required is that the molecule (e.g., nucleic acid) remains immobilized or attached to the support under conditions under which the support is intended to be used, for example, in applications requiring nucleic acid sequencing.
[0013] The term "solid support" (or "substrate" in certain uses), as used herein, refers to any inert substrate or matrix to which nucleic acids may be attached, such as, for example, glass surfaces, plastic surfaces, latex, dextran, polystyrene surfaces, polypropylene surfaces, polyacrylamide gels, gold surfaces, and silicon wafers. In many embodiments, the solid support is a glass surface (e.g., the flat surface of a flow cell channel). In certain embodiments, the solid support may include an inert substrate or matrix that has been "functionalized," such as by applying a layer or coating of an intermediate material that includes reactive groups that allow for covalent attachment to molecules such as polynucleotides. As a non-limiting example, such a substrate may include a polyacrylamide hydrogel supported on an inert substrate such as glass. In such embodiments, the molecule (polynucleotide) may be covalently attached directly to the intermediate material (e.g., hydrogel), although the intermediate material may itself be non-covalently attached to the substrate or matrix (e.g., glass substrate). Covalent attachment to a solid support should be interpreted accordingly to encompass this type of arrangement.
[0014] As mentioned above, the present disclosure includes novel systems and devices for sequencing nucleic acids. As will be clear to those skilled in the art, reference herein to a specific nucleic acid sequence may also refer to a nucleic acid molecule that includes such a nucleic acid sequence, depending on the context. Sequencing a target fragment means that a chronological reading of bases is established. The bases read do not have to be consecutive, but this is preferred, and it is not necessary that all bases on all fragments are sequenced during sequencing. Sequencing can be performed using any suitable sequencing technique, where nucleotides or oligonucleotides are added consecutively to a free 3' hydroxyl group, resulting in the synthesis of a polynucleotide chain in the 5' to 3' direction. The nature of the added nucleotide is preferably determined after each nucleotide addition. Sequencing techniques that use sequencing by ligation, where not all consecutive bases are sequenced, and techniques such as massively parallel signature sequencing (MPSS), where bases are removed from strands rather than added to strands on a surface, are also suitable for use with the systems and devices of the present disclosure.
[0015] In certain embodiments, the present disclosure discloses sequencing by synthesis (SBS), in which four fluorescently labeled modified nucleotides are used to sequence high-density clusters (potentially millions of clusters) of amplified DNA present on the surface of a substrate (e.g., a flow cell). Various additional aspects of SBS procedures and methods that can be utilized with the systems and devices herein are disclosed, for example, in WO 04018497, WO 04018493, and U.S. Pat. No. 7,057,026 (nucleotides), WO 05024010 and WO 06120433 (polymerases), WO 05065814 (surface attachment techniques), and WO 9844151, WO 06064199, and WO 07010251, the contents of each of which are incorporated herein by reference in their entirety.
[0016] In a particular use of the system / device herein, a flow cell containing a nucleic acid sample for sequencing is placed in a suitable flow cell holder. The sample for sequencing can take the form of a single molecule, an amplified single molecule in the form of a cluster, or a bead containing molecules of nucleic acid. The nucleic acid is prepared to contain oligonucleotide primers flanking an unknown target sequence. To initiate the first SBS sequencing cycle, one or more different labeled nucleotides, and a DNA polymerase, etc., are flowed into / through the flow cell by a fluid flow subsystem (various embodiments of which are described herein). A single nucleotide can be added at a time, or the nucleotides used in the sequencing procedure can be specifically designed to have reversible termination properties, thus allowing each cycle of the sequencing reaction to occur simultaneously in the presence of all four labeled nucleotides (A, C, T, G). When the four nucleotides are mixed together, the polymerase can select and incorporate the correct base, and each sequence is extended by a single base. In such methods of using the system, the natural competition between all four options results in greater accuracy than if only one nucleotide were present in the reaction mixture (thus resulting in the majority of the sequence not being exposed to the correct nucleotide). Sequences in which a particular base is repeated one after the other (e.g. homopolymers) are treated with the same high accuracy as any other sequence.
[0017] The fluid flow subsystem also flows appropriate reagents to remove blocked 3' ends (if appropriate) and fluorophores from each incorporated base. The substrate can be exposed to either a second round of the four blocked nucleotides, or a second round with different individual nucleotides, if desired. Such cycles are then repeated and the sequence of each cluster is read over multiple chemical cycles. Computer aspects of the present disclosure can optionally align sequence data collected from each single molecule, cluster or bead to determine the sequence of longer polymers, etc. Alternatively, image processing and alignment can be performed on separate computers.
[0018] The heating / cooling components of the system regulate the reaction conditions within the flow cell channel and reagent storage areas / containers (and optionally the camera, optics, and / or other components), while the fluid flow components allow the substrate surface to be exposed to appropriate reagents for incorporation (e.g., appropriate fluorescently labeled nucleotides to be incorporated) while unincorporated reagents are washed away. An optional movable stage on which the flow cell is positioned allows the flow cell to be properly oriented for laser (or other light) excitation of the substrate, and optionally moved relative to the objective lens to allow reading of different regions of the substrate. In addition, other components of the system are also optionally movable / adjustable (e.g., camera, objective lens, heaters / coolers, etc.). During laser excitation, images / locations of the fluorescence emitted from the nucleic acids on the substrate are captured by the camera component, thereby recording the identity of the first base for each single molecule, cluster, or bead in the computer component.
[0019] The embodiments described herein may be used in a variety of biological or chemical processes and systems for academic or commercial analysis. More specifically, the embodiments described herein may be used in a variety of processes and systems in which it is desirable to detect an event, characteristic, quality, or property indicative of a desired response. For example, the embodiments described herein include cartridges, biosensors, and components thereof, as well as bioassay systems that operate with the cartridges and biosensors. In certain embodiments, the cartridges and biosensors include a flow cell and one or more sensors, pixels, photodetectors, or photodiodes that are bonded together in a substantially single structure.
[0020] The following detailed description of certain embodiments may be better understood when read in conjunction with the accompanying drawings. To the extent that the figures illustrate diagrams of functional blocks of various embodiments, the functional blocks do not necessarily indicative of a division between hardware circuitry. Thus, for example, one or more of the functional blocks (e.g., a processor or memory) may be implemented in a single piece of hardware (e.g., a general-purpose signal processor or random access memory, hard disk, etc.). Similarly, a program may be a stand-alone program, may be incorporated as a subroutine in an operating system, may be a function in an installed software package, etc. It should be understood that the various embodiments are not limited to the arrangements and instrumentalities shown in the figures.
[0021] As used herein, elements or steps described in the singular and followed by the word "a" or "an" should be understood as not excluding a plurality of those elements or steps, unless such exclusion is expressly stated. Furthermore, references to "one embodiment" are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features. Furthermore, unless expressly stated to the contrary, embodiments that "comprise" or "have" or "include" an element or elements having a particular characteristic may include the additional elements, whether or not they have that characteristic.
[0022] As used herein, a "desired reaction" includes a change in at least one of the chemical, electrical, physical, or optical properties (or qualities) of the analyte of interest. In certain embodiments, the desired reaction is a positive binding event (e.g., incorporation of a fluorescently labeled biomolecule into the analyte of interest). More generally, the desired reaction may be a chemical conversion, chemical change, or chemical interaction. The desired reaction may also be a change in an electrical property. For example, the desired reaction may be a change in the concentration of an ion in a solution. Exemplary reactions include, but are not limited to, chemical reactions such as reduction, oxidation, addition, elimination, rearrangement, esterification, amidation, etherification, cyclization, or substitution; binding interactions in which a first chemical binds to a second chemical; dissociation reactions in which two or more chemicals separate from each other; fluorescence, luminescence, bioluminescence, chemiluminescence, and biological reactions such as nucleic acid replication, nucleic acid amplification, nucleic acid hybridization, nucleic acid ligation, phosphorylation, enzyme catalysis, receptor binding, or ligand binding. The desired reaction may also be the addition or removal of a proton, which is detectable, for example, as a change in the pH of the surrounding solution or environment. An additional desired response can be detecting the flow of ions across a membrane (e.g., a natural or synthetic bilayer membrane), e.g., when ions flow through the membrane, the current is disturbed and this disturbance can be detected.
[0023] In certain embodiments, the desired reaction includes incorporation of a fluorescently labeled molecule into the analyte. The analyte may be an oligonucleotide and the fluorescently labeled molecule may be a nucleotide. The desired reaction may be detected when excitation light is directed to the oligonucleotide with the labeled nucleotide and the fluorophore emits a detectable fluorescent signal. In alternative embodiments, the detected fluorescence is the result of chemiluminescence or bioluminescence. The desired reaction may also be, for example, increasing fluorescence (or Forster) resonance energy transfer (FRET) by bringing a donor fluorophore into close proximity with an acceptor fluorophore, decreasing FRET by separating the donor and acceptor fluorophores, increasing fluorescence by separating a quencher from a fluorophore, or decreasing fluorescence by co-localizing a quencher and a fluorophore.
[0024] As used herein, "reaction component" or "reactant" includes any substance that can be used to obtain a desired reaction. For example, reaction components include reagents, enzymes, samples, other biomolecules, and buffers. Reaction components are typically delivered to the reaction site in solution and / or immobilized at the reaction site. Reaction components may interact directly or indirectly with another substance, such as an analyte of interest.
[0025] As used herein, the term "reaction site" is a localized area where a desired reaction can occur. A reaction site may include a support surface of a substrate on which a substance may be immobilized. For example, a reaction site may include a substantially planar surface within a channel of a flow cell having a colony of nucleic acids thereon. Typically, but not always, the nucleic acids in the colonies have the same sequence, e.g., are clonal copies of a single-stranded or double-stranded template. However, in some embodiments, a reaction site may contain only a single nucleic acid molecule, e.g., in single-stranded or double-stranded form. Furthermore, multiple reaction sites may be distributed non-uniformly along the support surface or may be arranged in a predetermined manner (e.g., parallel in a matrix such as a microarray). A reaction site may also include a reaction chamber (or well) that at least partially defines a spatial region or volume configured to compartmentalize a desired reaction.
[0026] This application uses the terms "reaction chamber" and "well" interchangeably. As used herein, the term "reaction chamber" or "well" includes a spatial region in fluid communication with a flow channel. A reaction chamber may be at least partially isolated from the surrounding environment or other spatial regions. For example, multiple reaction chambers may be separated from each other by a shared wall. As a more specific example, a reaction chamber may include a cavity defined by an inner surface of the well and have an opening or aperture such that the cavity is in fluid communication with the flow channel. A biosensor including such a reaction chamber is described in more detail in International Application No. PCT / US2011 / 057111, filed October 20, 2011, the entirety of which is incorporated herein by reference.
[0027] In some embodiments, the reaction chamber is sized and shaped relative to a solid (including a semi-solid) so that the solid can be fully or partially inserted therein. For example, the reaction chamber can be sized and shaped to accommodate only one capture bead. The capture bead may have clonally amplified DNA or other material thereon. Alternatively, the reaction chamber can be sized and shaped to receive an approximate number of beads or solid substrates. As another example, the reaction chamber can also be filled with a porous gel or material configured to control diffusion or filter fluids that may flow into the reaction chamber.
[0028] In some embodiments, a sensor (e.g., a photodetector, photodiode) is associated with a corresponding pixel area of the sample surface of the biosensor. Thus, a pixel area is a geometric construct that represents an area on the sample surface of the biosensor of one sensor (or pixel). The sensor associated with a pixel area detects luminescence collected from the associated pixel area when a desired reaction occurs at a reaction site or reaction chamber above the associated pixel area. In flat surface embodiments, the pixel areas can overlap. In some cases, multiple sensors can be associated with a single reaction site or a single reaction chamber. In other cases, a single sensor can be associated with a group of reaction sites or a group of reaction chambers.
[0029] As used herein, a "biosensor" includes a structure having multiple reaction sites and / or reaction chambers (or wells). The biosensor may include a solid-state imaging device (e.g., a CCD or CMOS imager) and, optionally, a flow cell attached thereto. The flow cell may include at least one flow channel in fluid communication with the reaction sites and / or reaction chambers. As one particular example, the biosensor is configured to fluidly and electrically couple to a bioassay system. The bioassay system may deliver reactants to the reaction sites and / or reaction chambers according to a predetermined protocol (e.g., sequencing by synthesis) and perform multiple imaging events. For example, the bioassay system may direct solutions to flow along the reaction sites and / or reaction chambers. At least one of the solutions may include four types of nucleotides with the same or different fluorescent labels. The nucleotides may bind to corresponding oligonucleotides located in the reaction sites and / or reaction chambers. The bioassay system may then illuminate the reaction sites and / or reaction chambers using an excitation light source (e.g., a solid-state light source such as a light emitting diode or LED). The excitation light may have a predetermined wavelength or multiple wavelengths including a range of wavelengths. The excited fluorescent label provides a luminescent signal that can be captured by a sensor.
[0030] In alternative embodiments, the biosensor may include electrodes or other types of sensors configured to detect other distinguishable characteristics. For example, the sensor may be configured to detect changes in ion concentration. In another example, the sensor may be configured to detect the flow of ionic current across a membrane.
[0031] As used herein, a "cluster" is a colony of similar or identical molecules or nucleotide sequences or DNA strands. For example, a cluster can be an amplification oligonucleotide or any other group of polynucleotides or polypeptides with the same or similar sequences. In other embodiments, a cluster can be any element or group of elements that occupy a physical region on a sample surface. In embodiments, the cluster is immobilized in a reaction site and / or reaction chamber during the base calling cycle.
[0032] As used herein, the term "immobilized" when used in reference to a biomolecule or biological substance or chemical includes substantially attaching the biomolecule or biological substance or chemical to a surface at a molecular level. For example, the biomolecule or biological substance or chemical may be immobilized to the surface of a substrate material using adsorption techniques including non-covalent interactions (e.g., electrostatic forces, van der Waals, and hydrophobic interfacial dehydration), as well as covalent bonding techniques in which functional groups or linkers facilitate attachment of the biomolecule to the surface. Immobilizing the biomolecule or biological substance or chemical to the surface of a substrate material may be based on the properties of the substrate surface, the liquid medium carrying the biomolecule or biological substance or chemical, and the properties of the biomolecule or biological substance or chemical itself. In some cases, the substrate surface may be functionalized (e.g., chemically or physically modified) to facilitate immobilization of the biomolecule (or biological substance or chemical) to the substrate surface. The substrate surface may first be modified to have functional groups attached to the surface. The functional groups may then bind to the biomolecule or biological substance or chemical to immobilize them thereon. Substances can be immobilized on a surface via a gel, for example, as described in US Patent Application Publication No. 2011 / 0059865(A1), which is incorporated herein by reference.
[0033] In some embodiments, nucleic acids can be attached to a surface and amplified using bridge amplification. Useful bridge amplification methods are described, for example, in U.S. Patent No. 5,641,658, International Publication No. WO 2007 / 010251, U.S. Patent No. 6,090,592, U.S. Patent Application Publication No. 2002 / 0055100 (A1), U.S. Patent No. 7,115,400, U.S. Patent Application Publication No. 2004 / 0096853 (A1), U.S. Patent Application Publication No. 2004 / 0002090 (A1), U.S. Patent Application Publication No. 2007 / 0128624 (A1), and U.S. Patent Application Publication No. 2008 / 0009420 (A1), each of which is incorporated herein in its entirety. Another useful method for amplifying nucleic acids on a surface is Rolling Circle Amplification (RCA), for example, using the methods described in more detail below. In some embodiments, the nucleic acid may be attached to a surface and amplified using one or more primer pairs. For example, one of the primers may be in solution and the other primer may be immobilized (e.g., 5'-attached) on the surface. As an example, a nucleic acid molecule may hybridize to one of the primers on the surface, followed by extension of the immobilized primer to generate a first copy of the nucleic acid. The primer in solution then hybridizes to the first copy of the nucleic acid, which may be extended using the first copy of the nucleic acid as a template. Optionally, after the first copy of the nucleic acid is generated, the original nucleic acid molecule may hybridize to a second immobilized primer on the surface and be extended simultaneously or after the primer in solution is extended. In any embodiment, repeated rounds of extension (e.g., amplification) using the immobilized primer and the primer in solution provide multiple copies of the nucleic acid.
[0034] In certain embodiments, the assay protocols performed by the systems and methods described herein include the use of naturally occurring nucleotides and enzymes configured to interact with the naturally occurring nucleotides. Naturally occurring nucleotides include, for example, ribonucleotides (RNA) or deoxyribonucleotides (DNA). Naturally occurring nucleotides may be in monophosphate, diphosphate, or triphosphate form and may have a base selected from adenine (A), thymine (T), uracil (U), guanine (G), or cytosine (C). However, it will be understood that non-naturally occurring nucleotides, modified nucleotides, or analogs of the above nucleotides may be used. Some examples of useful non-naturally occurring nucleotides are described below with respect to reversible terminator-based sequencing by synthetic methods.
[0035] In embodiments that include a reaction chamber, an article or solid material (including semi-solid material) may be placed in the reaction chamber. When placed, the article or solid may be physically held or immobilized in the reaction chamber via interference fit, adhesion, or entrapment. Exemplary articles or solids that may be placed in the reaction chamber include polymer beads, pellets, agarose gels, powders, quantum dots, or other solids that may be compressed and / or held in the reaction chamber. In certain embodiments, nucleic acid superstructures such as DNA balls may be placed in or on the reaction chamber, for example, by attaching to the inner surface of the reaction chamber or by residing in a liquid in the reaction chamber. DNA balls or other nucleic acid superstructures may be preformed and then placed in or on the reaction chamber. Alternatively, DNA balls may be synthesized in situ in the reaction chamber. DNA balls may be synthesized by rolling circle amplification to generate concatemers of specific nucleic acid sequences, and the concatemers may be treated under conditions to form relatively compact balls. DNA balls and methods for their synthesis are described, for example, in U.S. Patent Application Publication Nos. 2008 / 0242560(A1) or 2008 / 0234136(A1), each of which is incorporated herein in its entirety. The material held or disposed within the reaction chamber can be in a solid, liquid, or gaseous state.
[0036] As used herein, a "base call" identifies a nucleotide base in a nucleic acid sequence. Base calling refers to the process of determining the base call (A, C, G, T) of every cluster in a particular cycle. As an example, base calling can be performed utilizing the four-channel, two-channel, or one-channel methods and systems described in the incorporated materials of US Patent Application Publication No. 2013 / 0079232. In certain embodiments, a base call cycle is referred to as a "sampling event." In a one-dye and two-channel sequencing protocol, a sampling event includes two illumination stages in chronological order such that a pixel signal occurs at each stage. The first illumination stage induces illumination from a given cluster that indicates nucleotide bases A and T in an AT pixel signal, and the second illumination stage induces illumination from a given cluster that indicates nucleotide bases C and T in a CT pixel signal.
[0037] The disclosed technology, for example, the disclosed base code, may be implemented on processors such as central processing units (CPUs), graphics processing units (GPUs), field programmable gate arrays (FPGAs), coarse-grained reconfigurable architectures (CGRAs), application specific integrated circuits (ASICs), application specific instruction set processors (ASIPs), and digital signal processors (DSPs).
[0038] Biosensors FIG. 1 shows a cross-sectional view of a biosensor 100 that can be used in various embodiments. The biosensor 100 has pixel areas 106', 108', 110', 112', and 114', each of which can retain two or more clusters (e.g., two clusters per pixel area) during a base call cycle. As shown, the biosensor 100 can include a flow cell 102 mounted on a sampling device 104. In the illustrated embodiment, the flow cell 102 is fixed directly to the sampling device 104. However, in alternative embodiments, the flow cell 102 can be removably coupled to the sampling device 104. The sampling device 104 has a sample surface 134 that can be functionalized (e.g., chemically or physically modified in a manner suitable for causing a desired reaction). For example, the sample surface 134 may be functionalized and may include multiple pixel regions 106', 108', 110', 112', and 114' each capable of holding two or more clusters during a base calling cycle (e.g., having corresponding cluster pairs 106A, 106B, cluster pairs 108A, 108B, cluster pairs 110A, 110B, cluster pairs 112A, 112B, and cluster pairs 114A, 114B immobilized thereon). Each pixel region is associated with a corresponding sensor (or pixel or photodiode) 106, 108, 110, 112, and 114, such that light received by the pixel region is captured by the corresponding sensor. The pixel region 106' may also be associated with a corresponding reaction site 106'' on the sample surface 134 holding the cluster pair, such that light emitted from the reaction site 106'' is received by the pixel region 106' and captured by the corresponding sensor 106. As a result of this sensing structure, if two or more clusters are present in a pixel region of a particular sensor during a base call cycle (e.g., each having a corresponding cluster pair), the pixel signal in that base call cycle carries information based on all of the two or more clusters.As a result, the signal processing described herein is used to distinguish between clusters where there are more clusters than pixel signals at a given sampling event of a particular base call cycle.
[0039] In the illustrated embodiment, the flow cell 102 includes sidewalls 138, 125 and a flow cover 136 supported by the sidewalls 138, 125. The sidewalls 138, 125 are coupled to the sample surface 134 and extend between the flow cover 136 and the sidewalls 138, 125. In some embodiments, the sidewalls 138, 125 are formed from a curable adhesive layer that bonds the flow cover 136 to the sampling device 104.
[0040] The side walls 138, 125 are sized and shaped such that a flow channel 144 exists between the flow cover 136 and the sampling device 104. The flow cover 136 may include a material that is transparent to excitation light 101 propagating from outside the biosensor 100 to the flow channel 144. In one example, the excitation light 101 approaches the flow cover 136 at a non-orthogonal angle.
[0041] As also shown, the flow cover 136 may include inlet and outlet ports 142, 146 configured to fluidly engage other ports (not shown). For example, these other ports may be from a cartridge or a workstation. The flow channel 144 is sized and shaped to direct fluid along the sample surface 134. The height Hi and other dimensions of the flow channel 144 may be configured to maintain a substantially uniform flow of fluid along the sample surface 134. The dimensions of the flow channel 144 may also be configured to control bubble formation.
[0042] By way of example, the flow cover 136 (or flow cell 102) may comprise a transparent material such as glass or plastic. The flow cover 136 may comprise a substantially rectangular block having a planar outer surface and a planar inner surface that defines the flow channel 144. The block may be attached onto the side walls 138, 125. Alternatively, the flow cell 102 may be etched to define the flow cover 136 and the side walls 138, 125. For example, a recess may be etched into the transparent material. When the etched material is attached to the sampling device 104, the recess may become the flow channel 144.
[0043] The sampling device 104 may be similar to an integrated circuit comprising, for example, multiple stacked substrate layers 120-126. The substrate layers 120-126 may include a base substrate 120, a solid-state imager 122 (e.g., a CMOS image sensor), a filter or light management layer 124, and a passivation layer 126. Note that the above is merely exemplary and other embodiments may include fewer or additional layers. Additionally, each of the substrate layers 120-126 may include multiple sublayers. The sampling device 104 may be fabricated using processes similar to those used in fabricating integrated circuits such as CMOS image sensors and CCDs. For example, the substrate layers 120-126 or portions thereof may be grown, deposited, etched, etc. to form the sampling device 104.
[0044] The passivation layer 126 is configured to shield the filter layer 124 from the fluid environment of the flow channel 144. In some cases, the passivation layer 126 is also configured to provide a solid surface (i.e., the sample surface 134) that allows for biomolecules or other analytes of interest to be immobilized thereon. For example, each of the reaction sites may include a cluster of biomolecules immobilized on the sample surface 134. Thus, the passivation layer 126 may be formed from a material that allows for the reaction sites to be immobilized thereon. The passivation layer 126 may also include a material that is at least transparent to the desired fluorescence. By way of example, the passivation layer 126 may include silicon nitride (Si2N4) and / or silica (SiO2). However, other suitable materials may be used. In the illustrated embodiment, the passivation layer 126 may be substantially planar. However, in alternative embodiments, the passivation layer 126 may include recesses, such as pits, wells, grooves, and the like. In the illustrated embodiment, the passivation layer 126 has a thickness of about 150-200 nm, and more specifically, about 170 nm.
[0045] The filter layer 124 may include various features that affect the transmission of light. In some embodiments, the filter layer 124 may perform multiple functions. For example, the filter layer 124 may be configured to (a) filter unwanted light signals, such as light signals from an excitation light source, (b) direct luminescence signals from the reaction sites toward corresponding sensors 106, 108, 110, 112, and 114 configured to detect luminescence signals from the reaction sites, or (c) block or prevent detection of unwanted luminescence signals from adjacent reaction sites. Thus, the filter layer 124 may also be referred to as a light management layer. In the illustrated embodiment, the filter layer 124 has a thickness of about 1-5 μm, more specifically about 2-4 μm. In alternative embodiments, the filter layer 124 may include an array of microlenses or other optical components. Each of the microlenses may be configured to direct the luminescence signal from an associated reaction site to a sensor.
[0046] In some embodiments, the solid-state imager 122 and the base substrate 120 may be provided together as a previously constructed solid-state imaging device (e.g., a CMOS chip). For example, the base substrate 120 may be a wafer of silicon, and the solid-state imager 122 may be mounted thereon. The solid-state imager 122 includes a layer of semiconductor material (e.g., silicon) and the sensors 106, 108, 110, 112, and 114. In the illustrated embodiment, the sensors are photodiodes configured to detect light. In other embodiments, the sensors include photodetectors. The solid-state imager 122 may be fabricated as a single chip via a CMOS-based manufacturing process.
[0047] The solid-state imager 122 may include a high density array of sensors 106, 108, 110, 112, and 114 configured to detect activity indicative of a desired response from within or along the flow channel 144. In some embodiments, each sensor has a size of about 1-2 micrometers squared (μm 2 ) The array may include 500,000 sensors, 5 million sensors, 10 million sensors, or even 120 million sensors. Sensors 106, 108, 110, 112, and 114 may be configured to detect predetermined wavelengths of light that are indicative of a desired response.
[0048] In some embodiments, the sampling device 104 includes a microcircuit arrangement, such as that described in U.S. Patent No. 7,595,882, which is incorporated herein by reference in its entirety. More specifically, the sampling device 104 may include an integrated circuit having a planar array of sensors 106, 108, 110, 112, and 114. The circuitry formed within the sampling device 104 may be configured for at least one of signal amplification, digitization, storage, and processing. The circuitry may collect and analyze the detected fluorescence and generate a pixel signal (or detection signal) for communicating the detection data to a signal processor. The circuitry may also perform additional analog and / or digital signal processing in the sampling device 104. The sampling device 104 may include conductive vias 130 that perform signal routing (e.g., transmit the pixel signal to a signal processor). The pixel signal may also be transmitted through electrical contacts 132 of the sampling device 104.
[0049] The sampling device 104 is discussed in more detail with respect to U.S. Non-Provisional Patent Application No. 16 / 874,599, entitled "Systems and Devices for Characterization and Performance Analysis of Pixel-Based Sequencing," filed May 14, 2020 (Attorney Docket No. ILLM1011-4 / IP-1750-US), which is incorporated by reference as if fully set forth herein. The sampling device 104 is not limited to the above configurations or uses as described above. In alternative embodiments, the sampling device 104 may take other forms. For example, the sampling device 104 may comprise a CCD device, such as a CCD camera, coupled to a flow cell or moved to interface with a flow cell having reaction sites therein.
[0050] Figure 2 shows one implementation of a flow cell 200 that includes clusters within its tiles. The flow cell 200 corresponds to the flow cell 102 of Figure 1, e.g., without the flow cover 136. Additionally, the depiction of the flow cell 200 is symbolic in nature, and the flow cell 200 symbolically shows the various lanes and tiles therein without showing the various other components therein. Figure 2 shows a top view of the flow cell 200.
[0051] In one embodiment, flow cell 200 is divided or split into multiple lanes, such as lanes 202a, 202b, ..., 202P, i.e., P lanes. In the example of Figure 2, flow cell 200 is shown as including eight lanes, i.e., P=8 in this example, although the number of lanes in a flow cell is implementation specific.
[0052] In one embodiment, each lane 202 is further divided into non-overlapping regions called "tiles" 212. For example, Figure 2 shows an expanded view of a section 208 of an exemplary lane. The section 208 is shown to include multiple tiles 212.
[0053] In one example, each lane 202 includes one or more tile columns. For example, in FIG. 2, each lane 202 includes two corresponding tile columns 212, as shown in enlarged section 208. The number of tiles in each tile column in each lane is implementation specific, and in one example, there may be 50 tiles, 60 tiles, 100 tiles, or another suitable number of tiles in each tile column in each lane.
[0054] Each tile contains a corresponding number of clusters. During the sequencing procedure, the clusters on the tile and their surrounding background are imaged. For example, Figure 2 shows an example cluster 216 in an example tile.
[0055] FIG. 3 shows an exemplary Illumina GA-IIx™ flow cell with eight lanes, and also shows a zoom-in of one tile and its clusters and their surrounding background. For example, there are 100 tiles per lane in the Illumina Genome Analyzer II, and 68 tiles per lane in the Illumina HiSeq2000. The tile 212 holds hundreds of thousands to millions of clusters. In FIG. 3, an image generated from a tile with clusters shown as bright spots is shown at 308 (e.g., 308 is a magnified image view of a tile), and an exemplary cluster 304 is labeled. The cluster 304 contains about a thousand identical copies of the template molecule, but the clusters differ in size and shape. The clusters are grown from the template molecules by bridge amplification of the input library prior to a sequencing run. The purpose of the amplification and cluster growth is to increase the intensity of the emitted signal, since imaging devices cannot reliably sense single fluorophores. However, the physical distance between the DNA fragments within the cluster 304 is small, so the imaging device perceives the cluster of fragments as a single spot 304 .
[0056] Clusters and tiles are discussed in further detail in U.S. Non-provisional Patent Application No. 16 / 825,987, entitled “Training Data Generation For Artificial Intelligence-Based Sequencing,” filed March 20, 2020 (Attorney Docket No. ILLM1008-16 / IP-1693-US).
[0057] FIG. 4 is a simplified block diagram of a system for analysis of sensor data from a sequencing system, such as base calling sensor output (see, e.g., FIG. 1). In the example of FIG. 4, the system includes a sequencing machine 400 and a configurable processor 450. The configurable processor 450 can execute neural network based base calling and / or non-neural network based base calling (discussed in more detail herein) in cooperation with a runtime program executed by a host processor, such as a central processing unit (CPU) 402. The sequencing machine 400 includes a base calling sensor (e.g., as discussed with respect to FIGS. 1-3) and a flow cell 401. The flow cell can include one or more tiles in which clusters of genetic material are exposed to an array of analyte flows that are used to induce reactions in the clusters to identify bases in the genetic material, as discussed with respect to FIGS. 1-3. A sensor senses the reaction of each cycle of the array in each tile of the flow cell to provide tile data. An example of this technique is described in more detail below. Genetic sequencing is a data-intensive operation that converts base call sensor data into a sequence of base calls for each cluster of genetic material sensed during the base calling operation.
[0058] The system in this example includes a CPU 402 that executes a runtime program that coordinates the base calling operation, and memory 403 that stores the sequence of the array of tile data, the base call reads generated by the base calling operation, and other information used in the base calling operation. In this figure, the system also includes a configuration file (or files), e.g., an FPGA bit file, and memory 404 that stores model parameters of a neural network used to configure and reconfigure configurable processor 450 and to run the neural network. Sequencing machine 400 can include programs for configuring the configurable processor, and in some embodiments can include a reconfigurable processor that runs the neural network.
[0059] The sequencing machine 400 is coupled to the configurable processor 450 by a bus 405. The bus 405 can be implemented using a high throughput technology, such as one exemplary bus technology compatible with the PCIe standard (Peripheral Component Interconnect Express) currently maintained and developed by the PCI Special Interest Group (PCI-SIG). Also, in this embodiment, the memory 460 is coupled to the configurable processor 450 by a bus 461. The memory 460 can be an on-board memory located on a circuit board having the configurable processor 450. The memory 460 is used for fast access by the configurable processor 450 of working data used in base calling operations. The bus 461 can also be implemented using a high throughput technology, such as a bus technology compatible with the PCIe standard.
[0060] Configurable processors, including Field Programmable Gate Arrays (FPGAs), Coarse Grained Reconfigurable Arrays (CGRAs), and other configurable and reconfigurable devices, can be configured to implement various functions more efficiently or faster than can be achieved using a general-purpose processor executing a computer program. Configuring a configurable processor involves compiling a functional description to generate a configuration file, sometimes called a bitstream or bitfile, and distributing the configuration file to the configurable elements on the processor.
[0061] The configuration file configures the circuit to set data flow patterns, including the use of distributed memory and other on-chip memory resources, lookup table contents, operation of configurable logic blocks, and configurable execution units such as configurable interconnects and other elements of the configurable array. A configurable processor is reconfigurable if the configuration file can be changed in the field by changing the loaded configuration file. For example, the configuration file may be stored in a volatile SRAM element, in a non-volatile read-write memory element, or distributed among an array of configurable elements on a configurable or reconfigurable processor. A variety of commercially available configurable processors are suitable for use in base calling operations as described herein. Examples include commercially available products such as the Xilinx Alveo™ U200, Xilinx Alveo™ U250, Xilinx Alveo™ U280, Intel / Altera Stratix™ GX2800, Intel / Altera Stratix™ GX2800, and Intel Stratix™ GX10M. In some embodiments, the host CPU may be implemented on the same integrated circuit as the configurable processor.
[0062] The embodiments described herein use a configurable processor 450 to implement a multi-cycle neural network. The configuration file of the configurable processor may be implemented by specifying the logic functions to be performed using a high-level description language (HDL) or register transfer level (RTL) language specification. The specification may be compiled using resources designed by a selected configurable processor to generate a configuration file. The same or similar specifications may be compiled to generate a design for an application specific integrated circuit, which may not be a configurable processor.
[0063] Thus, alternatives to the configurable processor in all of the embodiments described herein include a configured processor including an application specific ASIC or dedicated integrated circuit or set of integrated circuits, or a system-on-chip SOC device, configured to perform the neural network based base calling operations described herein.
[0064] In general, the configurable and configured processors described herein that are configured to perform neural network operations are referred to herein as neural network processors. In another example, the configurable and configured processors described herein that are configured to perform non-neural network based base caller operations are referred to herein as non-neural network processors. In general, the configurable and configured processors can be used to implement one or both of the neural network based base caller and the non-neural network based base caller, as described later in this specification.
[0065] Configurable processor 450 is configured, in this embodiment, by a configuration file loaded using a program executed by CPU 402, or by other sources that configures an array of configurable elements on configurable processor 454 to perform the base calling function. In this embodiment, the configuration includes data flow logic 451 coupled to buses 405 and 461, which performs the function of distributing data and control parameters among the elements used in the base calling operation.
[0066] Configurable processor 450 is also configured with base call execution logic 452 to execute the multi-cycle neural network. Logic 452 includes a number of multi-cycle execution clusters (e.g., 453), which in this example include multi-cycle cluster 1 through multi-cycle cluster X. The number of multi-cycle clusters can be selected according to tradeoffs involving the desired throughput of operation and available resources on the configurable processor.
[0067] The multi-cycle clusters are coupled to data flow logic 451 by data flow paths 454, implemented using configurable interconnect and memory resources on a configurable processor, and by control paths 455, implemented using, for example, configurable interconnect and memory resources on a configurable processor, that provide control signals indicating available clusters, readiness to provide input units to available clusters for execution of neural network operations, readiness to provide trained parameters for the neural network, readiness to provide output patches of base call classification data, and other control data used in the execution of the neural network.
[0068] The configurable processor is configured to use the trained parameters to perform a multi-cycle neural network operation to generate classification data for a sensing cycle of a baseflow operation. The neural network operation is performed to generate classification data for a subject sensing cycle of a base calling operation. The neural network operation operates on an array including a number N of arrays of tile data from each sensing cycle of the N sensing cycles, which in the examples described herein provide sensor data for different base calling operations for one base position per operation in the time series. Optionally, some of the N sensing cycles can be out of the array as needed according to the particular neural network model being performed. The number N can be any number greater than 1. In some examples described herein, the sensing cycle of the N sensing cycles represents a set of sensing cycles for at least one sensing cycle preceding the subject sensing cycle and at least one sensing cycle following the subject sensing cycle in the time series. Examples described herein are in which the number N is an integer greater than or equal to 5.
[0069] The data flow logic 451 is configured to use an input unit for a given operation that includes tile data of an array of N spatially aligned patches to move the tile data and at least some trained parameters of the model from the memory 460 to the configurable processor for operation of the neural network. The input unit can be moved by direct memory access operations in a single DMA operation, or in smaller units that move during available time slots in coordination with the execution of the deployed neural network.
[0070] The tile data of the sensing cycle described herein can include an array of sensor data having one or more features. For example, the sensor data can include two images that are analyzed to identify one of four bases at a base position in a genetic sequence of DNA, RNA, or other genetic material. The tile data can also include metadata about the images and the sensor. For example, in an embodiment of a base calling operation, the tile data can include information about the alignment of the images with the clusters, such as distance from center information indicating the distance of each pixel in the array of sensor data from the center of a cluster of genetic material on the tile.
[0071] During execution of the multi-cycle neural network as described below, the tile data may also include data generated during execution of the multi-cycle neural network, referred to as intermediate data, which may be reused rather than recomputed during execution of the multi-cycle neural network. For example, during execution of the multi-cycle neural network, the data flow logic may write the intermediate data to memory 460 in place of the sensor data for a given patch of the array of tile data. Such embodiments are described in more detail below.
[0072] As shown, a system for analysis of base calling sensor output is described that includes a memory (e.g., 460) accessible by a runtime program that stores tile data including sensor data for tiles from sensing cycles of a base calling operation. The system also includes a neural network processor, such as a configurable processor 450, having access to the memory. The neural network processor is configured to perform operations of the neural network using trained parameters to generate classification data for the sensing cycles. As described herein, the operations of the neural network operate on an arrangement of N arrays of tile data from each sensing cycle of the N sensing cycles that comprise a subject cycle to generate classification data for the subject cycle. Data flow logic 451 is provided to move the tile data and trained parameters from the memory to the neural network processor for execution of the neural network using input units including data for spatially aligned patches of the N arrays from each sensing cycle of the N sensing cycles.
[0073] Also described is a system in which a neural network processor has access to a memory and includes a plurality of execution clusters, and an execution logic cluster in the plurality of execution clusters is configured to execute a neural network. The data flow logic includes access to the memory and executes a cluster in the plurality of execution clusters to provide an input unit of tile data to an available execution cluster in the plurality of execution clusters, the input unit including an input unit including a number N of spatially aligned patches of the array of tile data from a respective sensing cycle, and causing the execution cluster to apply the N spatially aligned patches to the neural network to generate an output patch of classification data for the spatially aligned patches of the subject sensing cycle, where N is greater than 1.
[0074] FIG. 5 is a simplified diagram illustrating aspects of a base calling operation, including functions of a runtime program executed by a host processor. In this diagram, the output of an image sensor from a flow cell (such as that shown in FIGS. 1 and 2) is provided on line 500 to an image processing thread 501, which can perform processes on the image such as resampling, alignment and positioning of the array of sensor data for individual tiles, which can be used by a process to calculate a tile cluster mask for each tile in the flow cell, which can be used by a process to identify pixels in the array of sensor data that correspond to clusters of genetic material on the corresponding tile of the flow cell. To calculate the cluster mask, one exemplary algorithm is based on a process that detects unreliable clusters in early sequencing cycles using a metric derived from the softmax output, and then data from those wells / clusters is discarded and no output data is generated for those clusters. For example, the process can identify clusters that are highly reliable during the first N1 (e.g., 25) base calls and reject other clusters. Rejected clusters can be polyclonal or very weak intensity or unclear according to the criteria. This procedure can be executed on the host CPU. Alternative implementations could potentially use this information to identify necessary clusters that are to be returned to the CPU, thereby limiting the storage required for intermediate data.
[0075] The output of image processing thread 501 is provided on line 502 to dispatch logic 510 in the CPU, which routes the array of tile data according to the state of the base call operation, either on high speed bus 503 to data cache 504 or on high speed bus 505 to hardware 520, such as the configurable processor of Figure 4. Hardware 520 may be a multi-cluster neural network processor for performing a neural network based base call, as discussed later in this specification, or may be hardware for performing a non-neural based base call.
[0076] Hardware 520 returns classification data (e.g., output by the neural network base caller and / or the non-neural network base caller) to dispatch logic 510, which passes the information to data cache 504 or on line 511 to thread 502, which can use the classification data to perform base calling and quality score calculations and place the data in a standard format for base called reads. The output of thread 502, which performs base calling and quality score calculations, is provided on line 512 to thread 503, which aggregates the base called reads, performs other operations such as data compression, and writes the resulting base calling output to a specified destination for consumption by the customer.
[0077] In some embodiments, the host may include a thread (not shown) that performs final processing of the output of the hardware 520 supporting the neural network. For example, the hardware 520 may provide an output of classification data from a final layer of a multi-cluster neural network. The host processor may perform output activation functions, such as a softmax function, over the classification data to populate the data used by the base calling and quality score thread 502. The host processor may also perform input operations (not shown), such as resampling, batch normalization, or other adjustments of the tile data before inputting it to the hardware 520.
[0078] FIG. 6 is a simplified diagram of a configuration of a configurable processor, such as the configurable processor of FIG. 4. In FIG. 6, the configurable processor comprises an FPGA with multiple high-speed PCIe interfaces. The FPGA is configured with a wrapper 600 including the data flow logic described with reference to FIG. 1. The wrapper 600 manages interfacing and coordinating with a runtime program in the CPU via a CPU communication link 609, and manages communication with an on-board DRAM 602 (e.g., memory 460) via a DRAM communication link 610. The data flow logic in the wrapper 600 provides patch data obtained by traversing an array of tile data on the on-board DRAM 602 to a cluster 601 for a number N of cycles, and obtains process data 615 from the cluster 601 and delivers it to the on-board DRAM 602. The wrapper 600 also manages the transfer of data between the on-board DRAM 602 and the host memory for both the input array of tile data and the output patch of classification data. The wrapper transfers the patch data on line 613 to the assigned cluster 601. The wrapper provides cluster 601 with trained parameters such as weights and biases obtained from on-board DRAM 602 on line 612. The wrapper provides cluster 601 with configuration and control data provided from or generated in response to a runtime program on the host over CPU communication link 609 on line 611. The cluster can also provide status signals to wrapper 600 on line 616 that are used in conjunction with control signals from the host to manage traversal of an array of tile data to provide spatially aligned patch data and to perform multi-cycle neural network and / or non-neural network based base calling operations on the patch data using resources of cluster 601.
[0079] As described above, there may be multiple clusters on a single configurable processor managed by wrapper 600 configured to run on corresponding ones of the multiple patches of tile data. Each cluster may be configured to provide classification data for base calls in a subject sensing cycle using the tile data of multiple sensing cycles as described herein.
[0080] In an example system, model data including kernel data such as filter weights and biases can be sent from the host CPU to the configurable processor, so that the model can be updated as a function of cycle number. The base calling operation can include, in a representative example, on the order of hundreds of sensing cycles. The base calling operation can include paired end reading in some embodiments. For example, the model trained parameters may be updated every 20 cycles (or other number of cycles) or according to an update pattern implemented in a particular system. In some embodiments where the sequence for a given string in a genetic cluster on a tile includes a first portion extending down (or up) from a first end of the string and a second portion extending up (or down) from a second end of the string, the trained parameters can be updated at the transition from the first portion to the second portion.
[0081] In some implementations, image data for multiple cycles of sensor data for a tile may be sent from the CPU to the wrapper 600. The wrapper 600 may optionally perform some pre-processing and conversion of the sensor data and write the information to the on-board DRAM 602. The input tile data for each sensing cycle may include an array of sensor data including 4000 x 3000 pixels or more per sensing cycle per tile, with two features representing the colors of the two images of the tile, and including one or two bytes per pixel. In one embodiment, where the number N is three sensing cycles used in each operation of the multi-cycle neural network, the array of tile data for each operation of the multi-cycle neural network may consume in the hundreds of megabytes per tile. In some embodiments of the system, the tile data also includes an array of DFC data stored once per tile, or other types of metadata about the sensor data and the tile.
[0082] In operation, if a multi-cycle cluster is available, the wrapper assigns the patch to the cluster. The wrapper fetches the next patch of tile data for the cross section of the tile and sends it to the assigned cluster along with the appropriate control and configuration information. The cluster can be configured with enough memory on the configurable processor to have enough memory to hold the patch of data, including the patch, from multiple cycles in some systems being processed in place, and in various embodiments are processed using ping-pong buffer or raster scan techniques.
[0083] When the assigned cluster completes its operation of the neural network of the current patch and generates an output patch, it signals the wrapper. The wrapper will either read the output patch from the assigned cluster or the assigned cluster will push the data to the wrapper. The wrapper will then assemble the output patch for the processed tile in DRAM 602. Once the processing of the entire tile is complete and the output patch of data is transferred to DRAM, the wrapper will send the processed output array back to the host / CPU in a specific format. In some embodiments, the on-board DRAM 602 is managed by memory management logic in the wrapper 600. The runtime program can control the sequencing operations to complete the analysis of the array of all tile data for every cycle running in a continuous flow to provide real-time analysis.
[0084] Multiple base cola FIG. 6A illustrates a system 600 that employs two or more base callers for base calling operations on raw images (i.e., sensor data) output by a biosensor. For example, the system 600 includes a sequencing machine 1404, such as the sequencing machine discussed with respect to FIG. 1 (and also discussed with respect to FIG. 14 later herein). The sequencing machine 1404 includes a flow cell 1405, such as the flow cell discussed with respect to FIGS. 1-3. The flow cell 1405 includes a plurality of tiles 1406, each of which includes a plurality of clusters 1407 (e.g., an exemplary cluster for a single tile is shown in FIG. 6A), as discussed with respect to FIGS. 2 and 3. The sensor data 1412, including raw images from the tiles 1406, is output by the sequencing machine 1404, as discussed with respect to FIGS. 4-6.
[0085] In one embodiment, the system 600 includes two or more base colers, such as a first base coler 1414 and a second base coler 1416. Although two base colers are shown in the figure, in one example, three or more base colers may be present in the system 600.
[0086] 6A outputs corresponding base call classification information. For example, the first base caller 1414 outputs first base call classification information 1434, and the second base caller 1416 outputs second base call classification information 1436. The base call combination module 1428 generates a final base call 1440 based on one or both of the first base call classification information 1434 and / or the second base call classification information 1436.
[0087] In one example, the first base caller 1414 is a neural network-based base caller. For example, the first base caller 1414 is a nonlinear system that employs one or more neural network models for base calling, as described later in this specification. The first base caller 1414 is also referred to herein as a DeepRTA (deep real-time analysis) base caller or a deep neural network base caller.
[0088] In one example, the second base caller 1416 is a non-neural network based base caller. For example, the second base caller 1416 is a linear system used, at least in part, for base calling. For example, the second base caller 1416 does not employ a neural network for base calling (or uses a smaller neural network model for base calling compared to the larger neural network model used by the first base caller 1414), as discussed later herein. The second base caller 1416 is also referred to herein as an RTA (real-time analysis) base caller.
[0089] Examples of DeepRTA (or deep neural network) base calling and RTA base calling are discussed in U.S. Non-provisional Patent Application No. 16 / 826,126, entitled "Artificial Intelligence-Based Base Calling," filed March 20, 2020 (Attorney Docket No. ILLM1008-18 / IP-1744-US), which is incorporated by reference for all purposes as if fully set forth herein.
[0090] Further details of the operation of the system 600 of FIG. 6A, as well as further examples of the first base collator 1414 and the second base collator 1416, are discussed in more detail later herein, for example, with respect to FIG.
[0091] A non-neural network based at least partially linear basis caller (eg, second basis caller 1416 in FIG. 6A and FIG. 14). As discussed with respect to Figure 6A, the second base caller 1416 is a non-neural network based at least partially linear base caller, i.e., the second base caller 1416 does not employ a neural network for base calling (or uses a smaller neural network model for base calling compared to the larger neural network model used by the first base caller 1414). One example of the second base caller 1416 is the RTA base caller.
[0092] RTA is a base caller that uses a linear intensity extractor to extract features from sequencing images for base calling. The following discussion describes one implementation of intensity extraction and base calling by RTA. In this implementation, RTA performs a template generation step to generate a template image that identifies the location of clusters on a tile using sequencing images from several initial sequencing cycles, called template cycles. The template image is used as a reference for the subsequent alignment and intensity extraction steps. The template image is generated by detecting and merging bright points in each sequencing image of the template cycle, which then includes sharpening the sequencing image (e.g., using Laplacian convolution), determining an "on" threshold by spatially separated Otsu's method, and subsequent 5-pixel local maximum detection with sub-pixel position interpolation. In another example, the location of clusters on a tile is identified using fiducial markers. The solid support on which the biological specimen is imaged can include such fiducial markers to facilitate the determination of the orientation of the specimen or its image relative to the probe attached to the solid support. Exemplary criteria include, but are not limited to, beads (with or without moieties such as fluorescent moieties or nucleic acids to which labeled probes can bind), fluorescent molecules attached to known or determinable features, or structures that combine a morphological shape with a fluorescent moiety. Exemplary criteria are described in U.S. Patent Application Publication No. 2002 / 0150909, which is incorporated herein by reference.
[0093] RTA then registers the current sequencing image to the template image, which is accomplished by aligning the current sequencing image to the template image on the sub-region using image correlation, or by using a nonlinear transformation (e.g., a full six-parameter linear affine transformation).
[0094] The RTA generates a color matrix to correct for crosstalk between color channels of the sequencing image. The RTA performs an empirical phase correction to compensate for noise in the sequencing image caused by phase errors.
[0095] After the different corrections are applied to the sequencing image, the RTA extracts the signal intensity for each spot location in the sequencing image. For example, for a given spot location, the signal intensity can be extracted by determining a weighted average of the intensities of the pixels within the spot location. For example, the weighted average of the central pixel and the neighboring pixels may be performed using bilinear or bicubic interpolation. In some implementations, each spot location in the image may include several pixels (e.g., 1-5 pixels).
[0096] RTA then spatially normalizes the extracted signal intensities to account for variations in illumination across the sampled images. For example, intensity values may be normalized such that the 5th and 95th percentiles have values of 0 and 1, respectively. The normalized signal intensities of an image (e.g., the normalized intensities of each channel) can be used to calculate the average purity of multiple spots in the image.
[0097] In some implementations, the RTA uses an equalizer to maximize the signal-to-noise ratio of the extracted signal intensity. The equalizer can be trained (e.g., using least squares estimation, adaptive equalization algorithms) to maximize the signal-to-noise ratio of the cluster intensity data in the sequencing image. In some implementations, the equalizer is a LUT bank with multiple look-up tables (LUTs) with sub-pixel resolution, also called "equalizer filters" or "convolution kernels." In one implementation, the number of LUTs in the equalizer depends on the number of sub-pixels into which a pixel of the sequencing image can be divided. For example, if a pixel can be divided into n×n sub-pixels (e.g., 5×5 sub-pixels), the equalizer generates n LUTs (e.g., 25 LUTs).
[0098] In one implementation of training the equalizer, data from the sequencing image is binned by well subpixel location. For example, for a 5×5 LUT, 1 / 25 of the wells have centers that fall within bin (1,1) (e.g., the upper left corner of the sensor pixel), 1 / 25 of the wells fall within bin (1,2), and so on. In one implementation, the equalizer coefficients for each bin are determined using least squares estimation on the subset of data from the wells that correspond to the respective bin. In this way, the resulting estimated equalizer coefficients vary from bin to bin.
[0099] Each LUT / equalizer filter / convolution kernel has multiple coefficients learned from training. In one implementation, the number of coefficients in the LUT corresponds to the number of pixels used to base call the clusters. For example, if the local grid of pixels (image or pixel patch) used to base call the clusters is of size p×p (e.g., 9×9 pixel patch), then each LUT has p2 coefficients (e.g., 81 coefficients).
[0100] In one implementation, the training generates equalizer coefficients that are configured to mix / combine intensity values of pixels representing intensity radiation from a base-called target cluster and intensity radiation from one or more neighboring clusters to maximize the signal-to-noise ratio. The signal that is maximized in the signal-to-noise ratio is the intensity radiation from the target cluster, and the noise that is minimized in the signal-to-noise ratio is the intensity radiation from the neighboring clusters, i.e., spatial crosstalk, plus some random noise (e.g., to account for background intensity radiation). The equalizer coefficients are used as weights, and the mixing / combining involves performing element-wise multiplications between the equalizer coefficients and the intensity values of the pixels to calculate a weighted sum of the intensity values of the pixels, i.e., a convolution operation.
[0101] The RTA then performs base calling by fitting a mathematical model to the optimized intensity data. Suitable mathematical models that may be used include, for example, k-means clustering algorithms, k-means-like clustering algorithms, expectation-maximization clustering algorithms, histogram-based methods, and the like. Four Gaussian distributions may be fitted to a set of two-channel intensity data, such that one distribution is applied to each of the four nucleotides represented in the data set. In one particular implementation, an expectation-maximization (EM) algorithm may be applied. As a result of the EM algorithm, for each X,Y value (each referring to each of the two channel intensities), a value may be generated that represents the likelihood that a certain X,Y intensity value belongs to one of the four Gaussian distributions to which the data is fitted. If the four bases give four separate distributions, then each X,Y intensity value also has four associated likelihood values, one for each of the four bases. The maximum of the four likelihood values indicates the base call. For example, if a cluster is "off" in both channels, the base call is G. If a cluster is "off" in one channel and "on" in another, the base call is either C or T (depending on which channel is on); if a cluster is "on" in both channels, the base call is A.
[0102] Further details regarding RTA may be found in U.S. Non-provisional Patent Application No. 15 / 909,437, entitled "Optical Distortion Correction For Imaged Samples," filed March 1, 2018; U.S. Non-provisional Patent Application No. 14 / 530,299, entitled "Image Analysis Useful for Patterned Objects," filed October 31, 2014; U.S. Non-provisional Patent Application No. 15 / 153,953, entitled "Methods and Systems for Analyzing Image Data," filed December 3, 2014; U.S. Non-provisional Patent Application No. 13 / 006,206, entitled "Data Processing System and Methods," filed January 13, 2011; and U.S. Non-provisional Patent Application No. 13 / 006,206, entitled "Equalization-Based Image Processing and Spatial Crosstalk," filed May 4, 2021. No. 17 / 308,035 (Attorney Docket No. ILLM1032-2 / IP-1991-US), entitled "Positive Impedance Attenuator," which is incorporated by reference as if fully set forth herein.
[0103] A neural network-based at least partially nonlinear base caller (e.g., the first base caller 1414 in FIG. 6A ). 7-13B discuss various examples of the first base caller 1414 of FIG. 6A. For example, FIG. 7 is an illustration of a multi-cycle neural network model that can be implemented using the systems described herein. The multi-cycle neural network model is one example of the first base caller 1414 of FIG. 6A, although other neural network-based models may be used for the first base caller 1414.
[0104] The example shown in FIG. 7 may be referred to as a 5-cycle input, 1-cycle output neural network. However, it should be noted that the 5-cycle input 1-cycle output neural network is only one example, and the neural network may have a different number of inputs (such as 6, 7, 9, or another suitable number). For example, FIG. 10, described later in this specification, has 9-cycle inputs. Referring again to FIG. 7, the input to the multi-cycle neural network model includes five spatially aligned patches (e.g., 700) from the tile data array of five sensing cycles of a given tile. The spatially aligned patches have the same aligned row and column dimensions (x, y) as other patches in the set, such that the information relates to the same cluster of genetic material on the tile in the sequence cycle. In this example, the subject patch is a patch from the array of tile data for cycle K. The set of five spatially aligned patches includes a patch from cycle K-2 that precedes the subject patch by two cycles, a patch from cycle K-1 that precedes the subject patch by one cycle, a patch from cycle K+1 that follows the patch from the subject cycle by one cycle, and a patch from cycle K+2 that follows the patch from the subject cycle by two cycles.
[0105] The model includes a separate stack 701 of layers of a neural network for each of the input patches. Thus, stack 701 receives as input patch tile data from cycle K+2 and is separate from stacks 702, 703, 704, and 705 such that they do not share input data or intermediate data. In some embodiments, all of stacks 710-705 can have the same model and the same trained parameters. In other embodiments, the models and trained parameters can be different in different stacks. Stack 702 receives as input patch tile data from cycle K+1. Stack 703 receives as input patch tile data from cycle K. Stack 704 receives as input patch tile data from cycle K-1. Stack 705 receives as input patch tile data from cycle K-2. Each layer of the separate stacks performs a convolution operation of a kernel that includes multiple filters over the input data of the layer. As in the above example, patch 700 may include three features. The output of layer 710 may include many more features, such as 10-20 features. Similarly, the output of each of layers 711-716 may include any number of features suitable for a particular implementation. The parameters of the filters are the trained parameters of the neural network, such as weights and biases. The output feature sets (intermediate data) from each of stacks 701-705 are provided as inputs to an inverse layer 720 of temporal combination layers, where the intermediate data from multiple cycles are combined. In the illustrated example, the inverse layer 720 includes a first layer including three combination layers 721, 722, 723 that respectively receive intermediate data from three of the separated stacks, and a final layer including one combination layer 730 that receives intermediate data from the three temporal layers 721, 722, 723.
[0106] The output of the final combination layer 730 is an output patch of classification data for the clusters located in the corresponding patch of the tile from cycle K. The output patches can be assembled into an output array classification data for the tile in cycle K. In some embodiments, the output patch can have a different size and dimensions than the input patch. In some embodiments, the output patch can include per-pixel data that can be filtered by the host to select cluster data.
[0107] The output classification data 735 can then be applied to a softmax function 740 (or other output-driven function) optionally executed by the host or on a configurable processor, depending on the particular implementation. An output function different from softmax can be used (e.g., create base call output parameters according to the maximum output, then use a nonlinear mapping learned using the context / network output to give the base quality).
[0108] Finally, the output of the softmax function 740 is provided as the base call probability for cycle K (750) and may be stored in host memory for use in subsequent processing. Other systems may use different functions, e.g., different non-linear models, for the output probability calculation.
[0109] The neural network can be implemented using a configurable processor with multiple execution clusters to complete the evaluation of one tile cycle within or near the duration of the time interval of one sensing cycle, effectively outputting output data in real time. Dataflow logic can be configured to distribute input units of tile data and trained parameters to the execution clusters, and to distribute output patches for aggregation in memory.
[0110] The input unit of data for a 5-cycle input, 1-cycle output neural network similar to that of FIG. 7 is described with reference to FIG. 8A and FIG. 8B for a base calling operation using 2-channel sensor data. For example, for a given base in a genetic sequence, the base calling operation can perform two flows of analyte and two reactions, which generate two channels of signals, such as images, that can be processed to identify which one of the four bases is located at the current position of the genetic sequence for each cluster of genetic material. In other systems, a different number of channels of sensor data can be utilized. For example, base calling can be performed using a 1-channel method and system. The incorporated materials of U.S. Patent Application Publication No. 2013 / 0079232 discuss base calling using various numbers of channels, such as 1-channel, 2-channel, or 4-channel.
[0111] 8A shows an array of five cycles of tile data for a given tile, Tile M, used to implement a five cycle input, one cycle output neural network. The five cycle input tile data in this example may be written to on-board DRAM or other memory in the system that may be accessed by the dataflow logic, and includes channel 1 array 801 and channel 2 array 811 for cycle K-2, channel 1 array 802 and channel 2 array 812 for cycle K-1, channel 1 array 803 and channel 2 array 813 for cycle K, channel 1 array 804 and channel 2 array 814 for cycle K+1, and channel 1 array 805 and channel 2 array 815 for cycle K+2. Also, an array of tile metadata 820 may be written once to memory, in this case with each cycle including a DFC file that is included for use as input to the neural network.
[0112] Although Figure 8A discusses a two-channel base calling operation, the use of two channels is merely an example, and base calling can be performed using any other suitable number of channels. For example, the incorporated materials of US Patent Application Publication No. 2013 / 0079232 discuss base calling using various numbers of channels, such as one channel, two channels, or four channels, or another suitable number of channels.
[0113] The dataflow logic configures an input unit, which may be understood with reference to FIG. 8B, of tile data including spatially aligned patches of arrays of tile data for each execution cluster configured to perform a neural network execution on the input patches. The input unit of an assigned execution cluster is configured by the dataflow logic to read spatially aligned patches (e.g., 851, 852, 861, 862, 870) from each of the arrays of tile data 801-805, 811, 815, 820 for five input cycles and deliver them via a datapath (schematically 850) to memory on a configurable processor configured for use by the assigned execution cluster. The assigned execution cluster performs a 5 cycle input / 1 cycle output neural network execution and delivers subject cycle K output patches of classification data for the same patch of tiles for subject cycle K.
[0114] Figure 9 is a simplified representation of a stack of neural networks that can be used in a system such as that of Figure 7 (e.g., 701 and 720). In this example, some functions of the neural network (e.g., 900, 902) run on the host and other parts of the neural network (e.g., 901) run on a configurable processor.
[0115] In one example, the first function may be batch normalization (layer 910) formed on the CPU, however, in another example, batch normalization as a function may be blended into one or more layers, and there may not be a separate batch normalization layer.
[0116] Several spatially separated convolutional layers are implemented as a first set of convolutional layers of a neural network as discussed above for the configurable processor. In this example, the first set of convolutional layers applies spatially 2D convolutions.
[0117] As shown in Figure 9, for a number L / 2 of spatially separated neural network layers in each stack (where L was described with reference to Figure 7), a first spatial convolution 921 is performed, followed by a second spatial convolution 922, followed by a third spatial convolution 923, etc. As shown in 923A, the number of spatial layers can be any practical number, which in context can range from a few to more than 20 in different embodiments.
[0118] For SP_CONV_0, the kernel weights are stored in, for example, a (1, 6, 6, 3, L) structure since this layer has 3 input channels.
[0119] For the other SP_CONV layers, the kernel weights are stored in a (1, 6, 6L) structure in this embodiment since there are K(=L) inputs and outputs for each of these layers.
[0120] The output of the stack of spatial layers is provided to a temporal layer, including convolution layers 924, 925 running on an FPGA. Layers 924 and 925 may be convolution layers that apply 1D convolution over cycles. As shown in 924A, the number of temporal layers may be any practical number, which in context may range from a few to more than 20 in different embodiments.
[0121] The first temporal layer, TEMP_CONV_0 layer 924, reduces the number of cycle channels from 5 to 3, as shown in Figure 7. The second temporal layer, layer 925, reduces the number of cycle channels from 3 to 1, as shown in Figure 7, reducing the number of feature maps to 4 outputs per pixel representing the confidence of each base call.
[0122] The outputs of the temporal layers are accumulated in output patches and delivered to the host CPU, where a softmax function 930, or other function, is applied to normalize the base call probabilities.
[0123] Figure 10 shows an alternative implementation illustrating a 10-input, 6-output neural network that can be implemented for base calling operations. In this example, the spatially aligned input patch tile data for cycles 0-9 are applied to separated stacks in the spatial layer, such as stack 1001 for cycle 9. The outputs of the separated stacks are applied to the inverted hierarchical arrangement of the time stack 1020, and outputs 1035(2)-1035(7) provide base call classification data for subject cycles 2-7.
[0124] Figure 11 shows one implementation of the dedicated architecture (e.g., Figure 7) of a neural network-based base caller used to separate the processing of data in different sequencing cycles. The motivation for using the dedicated architecture above is first explained.
[0125] The neural network-based base caller processes data from a current sequencing cycle, one or more preceding sequencing cycles, and one or more subsequent sequencing cycles. Data from additional sequencing cycles provides sequence-specific context. During training, the neural network-based base caller learns to use sequence-specific context to improve base calling accuracy. Additionally, data from pre- and post-sequencing cycles provide secondary contributions of pre-phasing and phasing signals to the current sequencing cycle.
[0126] The spatial convolutional layer uses so-called "decoupled convolutions" that operate on separation by processing the data for each of multiple sequencing cycles independently through a "dedicated, non-shared" array of convolutions. Decoupled convolutions convolve on the data and resulting feature maps only within a given sequencing cycle, i.e., the cycle, without convolving on the data and resulting feature maps of any other sequencing cycles.
[0127] For example, consider that the input data includes (i) current data for the current (time t) sequencing cycle to be base called, (ii) previous data for the previous (time t-1) sequencing cycle, and (iii) next data for the next (time t+1) sequencing cycle. The dedicated architecture then starts three separate data processing pipelines (or convolution pipelines), namely, the current data processing pipeline, the previous data processing pipeline, and the next data processing pipeline. The current data processing pipeline receives the current data for the current (time t) sequencing cycle as input and processes it independently through multiple spatial convolution layers to generate a so-called "current spatial convolution representation" as the output of the final spatial convolution layer. The previous data processing pipeline receives the previous data for the previous (time t-1) sequencing cycle as input and processes it independently through multiple spatial convolution layers to generate a so-called "previous spatial convolution representation" as the output of the final spatial convolution layer. The next data processing pipeline receives the next data for the next (time t+1) sequencing cycle as input and processes it independently through multiple spatial convolution layers to produce a so-called “next spatially convolved representation” as the output of the final spatial convolution layer.
[0128] In some implementations, the current pipeline, the one or more previous pipelines, and the one or more next processing pipelines execute in parallel.
[0129] In some implementations, the spatial convolutional layer is part of a spatial convolutional network (or sub-network) within a dedicated architecture.
[0130] The neural network-based base caller further includes temporal convolutional layers that blend information between sequencing cycles, i.e., between cycles. The temporal convolutional layers receive their input from the spatial convolutional network and operate on the spatially convolved representations produced by the final spatial convolutional layer for each data processing pipeline.
[0131] The temporal convolutional layer uses so-called "combinatorial convolution" that convolves group-wise on the input channels with the subsequent input on a sliding window basis. In one implementation, the subsequent input is the subsequent output generated by the previous spatial convolutional layer or the previous temporal convolutional layer.
[0132] In some implementations, the temporal convolutional layer is part of a temporal convolutional network (or sub-network) in the dedicated architecture. The temporal convolutional network receives its input from a spatial convolutional network. In one implementation, the first temporal convolutional layer of the temporal convolutional network combines the spatial convolutional representations between sequencing cycles by group. In another implementation, subsequent temporal convolutional layers of the temporal convolutional network combine successive outputs of previous temporal convolutional layers. In one example, a compression logic (or compression network or compression sub-network or compression layer or squeeze layer) processes the output of the temporal and / or spatial convolutional network and generates a compressed representation of the output. In one implementation, the compression network includes a compression convolutional layer that reduces the depth dimensionality of the feature maps generated by the network.
[0133] The output of the final temporal convolutional layer (e.g., with or without compression) is fed into an output layer that produces outputs that are used to base call one or more clusters in one or more sequencing cycles.
[0134] During forward propagation, the dedicated architecture processes information from multiple inputs in two stages. In the first stage, separated convolutions are used to prevent mixing of information between the inputs. In the second stage, combined convolutions are used to It is used to blend information between inputs. The results from the second stage are used to make a single inference across multiple inputs.
[0135] This differs from batch-mode techniques, where the convolutional layer processes multiple inputs in a batch simultaneously and makes a corresponding inference for each input in the batch. In contrast, dedicated architectures map multiple inputs to a single inference. A single inference may include two or more predictions, such as a classification score for each of the four bases (A, C, T, and G).
[0136] In one implementation, the inputs have a temporal ordering such that each input occurs at a different time step and has multiple input channels. For example, the multiple inputs may include three inputs: a current input generated by a current sequencing cycle at time step (t), a previous input generated by a previous sequencing cycle at time step (t-1), and a next input generated by a next sequencing cycle at time step (t+1). In another implementation, each input is derived from the current, previous, and next inputs by one or more previous convolutional layers, respectively, and includes k feature maps.
[0137] In one implementation, each input may include five input channels: a red image channel (red), a red distance channel (yellow), a green image channel (green), a green distance channel (purple), and a scaling channel (blue). In another implementation, each input may be in a blue channel and a purple channel (or one or more other suitable color channels) instead of or in addition to the red and green channels. In another implementation, each input may be in a blue channel and a purple channel instead of or in addition to the red, green, purple, and / or yellow channels. In another implementation, each input may include k feature maps generated by a previous convolutional layer, and each feature map is treated as an input channel. In yet another example, each input may have just one channel, two channels, or another different number of channels. The incorporated materials in US Patent Application Publication No. 2013 / 0079232 discuss base calling using various numbers of channels, such as one channel, two channels, or four channels.
[0138] FIG. 12 illustrates one implementation of separated layers, each of which may include a convolution. Separate convolution processes multiple inputs at once by applying a convolution filter to each input in parallel. In separated convolution, a convolution filter combines input channels within the same input and does not combine input channels within different inputs. In one implementation, the same convolution filter is applied to each input in parallel. In another implementation, a different convolution filter is applied to each input in parallel. In some implementations, each spatial convolution layer includes a bank of k convolution filters, each of which is applied to each input in parallel.
[0139] FIG. 13A shows one implementation of a combination layer, each of which may include a convolution. FIG. 13B shows another implementation of a combination layer, each of which may include a convolution. A combination convolution mixes information between different inputs by grouping corresponding input channels of the different inputs and applying a convolution filter to each group. The grouping of corresponding input channels and the application of the convolution filter occur on a sliding window basis. In this context, a window spans two or more consecutive input channels, for example representing the output for two consecutive sequencing cycles. Because the window is a sliding window, most input channels are used in two or more windows.
[0140] In some implementations, the distinct inputs come from an output array generated by a preceding spatial or temporal convolutional layer, where the distinct inputs are arranged as successive outputs and are therefore viewed by the next temporal convolutional layer as successive inputs, where a combinatorial convolution then applies a convolutional filter to groups of corresponding input channels in the successive inputs.
[0141] In one implementation, the successive inputs have a temporal ordering such that the current input is generated by a current sequencing cycle at time step (t), the previous input is generated by a previous sequencing cycle at time step (t-1), and the next input is generated by a next sequencing cycle at time step (t+1). In another implementation, each successive input is derived from the current, previous, and next inputs by one or more previous convolutional layers, respectively, and includes k feature maps.
[0142] In one implementation, each input may include five input channels: a red image channel (red), a red distance channel (yellow), a green image channel (green), a green distance channel (purple), and a scaling channel (blue). In another implementation, an additional input channel may be a purple channel. In another implementation, each input may include k feature maps generated by a previous convolutional layer, with each feature map being treated as an input channel.
[0143] The depth B of the convolution filter depends on the number of consecutive inputs whose corresponding input channels are convolved with the convolution filter on a sliding window basis for each group. In other words, the depth B is equal to the number of consecutive inputs in each sliding window and the group size.
[0144] In Figure 13A, corresponding input channels from two consecutive inputs are combined in each sliding window, so B = 2. In Figure 13B, corresponding input channels from three consecutive inputs are combined in each sliding window, so B = 3.
[0145] In one implementation, the sliding windows share the same convolution filter. In another implementation, a different convolution filter is used for each sliding window. In some implementations, each temporal convolution layer includes a bank of k convolution filters, each of which is applied to successive inputs on a sliding window basis.
[0146] Further details of Figures 4-10 and variations thereof can be found in co-pending U.S. non-provisional patent application Ser. No. 17 / 176,147, entitled "Hardware Execution and Acceleration of Artificial Intelligence-Based Base Caller," filed Feb. 15, 2021 (Attorney Docket No. ILLM1020-2 / IP-1866-US), which is incorporated by reference as if fully set forth herein.
[0147] Base calling using multiple base calls FIG. 14 illustrates a base calling system 1400 including multiple base callers for predicting base calls for an unknown sample that includes a base sequence.
[0148] It should be noted that FIG. 6A, discussed above, shows only some components of the system 1400 of FIG. 14, and FIG. 14 shows various other components that were not shown in FIG. 6A.
[0149] As discussed in connection with Figure 6A, the system 1400 of Figure 14 includes a sequencing machine 1404, such as the sequencing machine discussed in connection with Figure 1. The sequencing machine 1404 includes a flow cell 1405, such as the flow cell discussed in connection with Figures 1-3. The flow cell 1405 includes a number of tiles 1406, each of which includes a number of clusters 1407 (an exemplary cluster for a single tile is shown in Figure 6A), e.g., as discussed in connection with Figures 2 and 3. Sensor data 1412, including raw images from the tiles 1406, is output by the sequencing machine 1404, as discussed in connection with Figures 4-6.
[0150] In one embodiment, the system 1400 includes two or more base colers, such as a first base coler 1414 and a second base coler 1416. Although two base colers are shown in the figure, in one example, there may be more than two base colers in the system 1400, such as three, four, or more base colers.
[0151] In one example, the base callers 1414 and 1416 are local to the sequencing machine 1404. Thus, the base callers 1414 and 1416 and the sequencing machine 1404 are located proximally (e.g., in the same housing or in two proximally located housings), and the base callers 1414 and 1416 receive the sensor data 1412 directly from the sequencing machine 1404.
[0152] In another example, the base callers 1414 and 1416 are located remotely to the sequencing machine 1404, which is an example of a so-called cloud-based base caller. Thus, the base callers 1414 and 1416 receive the sensor data 1412 from the sequencing machine 1404 over a computer network, such as the Internet.
[0153] Each base caller 1414 and 1416 in Figure 14 outputs corresponding base call classification information. For example, the first base caller 1414 outputs first base call classification information 1434, and the second base caller 1416 outputs second base call classification information 1436. The base call combination module 1428 generates a final base call 1440 based on one or both of the first base call classification information 1434 and the second base call classification information 1436.
[0154] In one example, the first base caller 1414 is a neural network-based base caller. For example, the first base caller 1414 is a nonlinear system that employs one or more neural network models for base calling, as described previously herein (see, e.g., Figures 6-13B).
[0155] In one example, the second base caller 1416 is a non-neural network based base caller. For example, the second base caller 1416 is a linear system used, at least in part, for base calling. For example, the second base caller 1416 does not employ a neural network for base calling (or uses a smaller neural network model for base calling compared to the larger neural network model used by the first base caller 1414) as previously described herein (see, e.g., FIG. 6 and the discussion that follows).
[0156] In one embodiment, the system 1400 includes a context information generation module 1418. The context information generation module 1418 generates context information 1420. In one embodiment, the base call combination module 1428 operates based on the context information 1420. For example, based on the context information 1420, the base call combination module 1428 generates a final base call using one or both of the base call classification information 1434 and the base call classification information 1436. Context information is discussed later herein, for example, with respect to FIG.
[0157] In one embodiment, the system 1400 also includes a switching module 1422. Note that in Figure 14, the switching module 1422, the context information generation module 1418, and the base call combining module 1428 are shown as three separate components of the system 1400. However, in one example, one or more of these modules can be combined to form a combined module.
[0158] In one embodiment, the system 1400 also includes a switching module 1422 that selectively switches the base chores 1414 and 1416 on or off. For example, if only one of the base chores 1414 and 1416 is to analyze a particular set of sensor data 1412, depending on the context information 1420, then only the selected base chore is enabled and the other base chore is disabled for that sensor data set, as discussed in more detail later herein.
[0159] Enabling or switching on the base chora for a set of sensor data means that the base chora operates or executes on the particular set of sensor data. Thus, enabling or switching on the base chora does not necessarily mean turning on the base chora, but simply means that the base chora executes on the particular corresponding set of sensor data. Disabling or switching off the base chora for a set of sensor data means that the base chora refrains from operating or executing on the particular set of sensor data. Note that, for example, the base chora may be disabled for a first set of sensor data, while the base chora may be enabled for a second set of sensor data. In one example, the first base chora 1414 may be selectively enabled or disabled using the enable signal 1424, and the second base chora 1416 may be selectively enabled or disabled using the enable signal 1426. Thus, the enable signals 1424 and 1426 are signals for selectively enabling (or disabling) the corresponding base chora 1414 or 1416, respectively.
[0160] A "set of sensor data" as discussed herein refers to a section of sensor data 1412 or a data set of sensor data 1412. For example, a set of sensor data may be sensor data from one or more particular clusters 1407 or one or more particular tiles 1406 of the flow cell 1405. A set of sensor data may be sensor data from one or more particular base sensing cycles. Thus, a set of sensor data may be associated with a particular spatial aspect of the flow cell 1405 (e.g., from one or more particular clusters 1407 of the flow cell 1405) and / or a particular temporal aspect of a base call cycle (e.g., from one or more particular base call cycles).
[0161] By way of example only, for a first set of sensor data 1412, the base call combining module 1428 may rely only on the base call classification information 1434 from the first base caller 1414 to generate a final base call 1440 for the first set of sensor data 1412. The base call combining module 1428 may determine to rely only on the base call classification information 1434 (and not on the base call classification information 1436) based on, for example, the context information 1420 associated with the first set of sensor data 1412. In one example, when processing the first set of sensor data, the switching module 1422 uses the enable signal 1424 to enable only the first base caller 1414 (e.g., the first base caller 1414 runs on the first set of data), disables the second base caller 1416 using the enable signal 1426 (e.g., the second base caller 1416 does not run on the first set of data), and uses the first base call classification information 1434 from the first base caller 1414 to generate the final base calls 1440. However, in another example, the first base call classification information 1434 from the first base caller 1414 is used to generate the final base calls 1440 for the first set of data, but the switching module 1422 enables the first base caller 1414, and optionally also enables the second base caller 1416, e.g., for reasons described later herein. In such an example, both base call classification information 1434 and 1436 are available for the first set of data, and the final base call 1440 is based only on the first base call classification information 1434.
[0162] As just another example, for the second set of sensor data 1412, the base call combining module 1428 may rely only on the base call classification information 1436 from the second base caller 1416 to generate the final base call 1440 for the second set of sensor data 1412. The base call combining module 1428 determines to rely only on the base call classification information 1436 (and not on the base call classification information 1434), e.g., based on the context information 1420 associated with the second set of sensor data 1412. In one example, when processing the second set of sensor data, the switching module 1422 enables only the second base caller 1416 using the enable signal 1426 and disables the first base caller 1414 using the enable signal 1424, e.g., the second base call classification information 1436 from the second base caller 1416 is used to generate the final base call 1440. In another example, however, second base call classification information 1436 from second base caller 1416 is used to generate final base call 1440 for the second set of data, but switching module 1422 enables second base caller 1416 and, optionally, also enables first base caller 1414, e.g., for reasons described herein below. In such an example, both base call classification information 1434 and 1436 are available and final base call 1440 is based only on base call classification information 1436.
[0163] As merely yet another example, for the third set of sensor data 1412, the base call combining module 1428 may rely on both base call classification information 1434 and 1436 from base callers 1414 and 1416, respectively, to generate a final base call 1440 for the third set of sensor data 1412. The base call combining module 1428 determines to rely on both base call classification information 1434 and 1436, for example, based on the context information 1420 associated with the third set of sensor data 1412. Thus, when processing the third set of sensor data, the switching module 1422 enables both base callers 1414 and 1416 using enable signals 1424 and 1426, respectively.
[0164] Thus, for a given set of sensor data, the base call combining module 1428 determines to rely on a particular one or both of the base call classification information 1434 and 1436 based on the context information 1420 associated with the corresponding set of sensor data. Similarly, the switching module 1422 determines to enable a particular one or both of the base callers 1414 and 1416 based on the context information 1420 associated with the corresponding set of sensor data.
[0165] Example Operation of First Base Caller 1414 and Second Base Caller 1416 Figures 15A, 15B, 15C, 15D, and 15E show corresponding flow charts illustrating various operations of base calling system 1400 of Figure 14 for corresponding sets of sensor data. For example, Figures 15A-15E show various permutations and combinations in which system 1400 can operate.
[0166] A first base caller 1414 that validates a final base call 1440 based on the first base call classification information 1434. FIG. 15A illustrates operation of system 1400, where a first base caller 1414 is enabled and generates base call classification information for a set of sensor data 1501a (e.g., while a second base caller 1416 is not operating on the set of sensor data 1501a), and a final base call 1440 is based on the first base call classification information 1434 for the set of sensor data 1501a.
[0167] Thus, in FIG. 15A, the operation of the system 1400 is illustrated for a set of sensor data 1501a generated by the flow cell 1405. At 1505a, the flow cell 1405 generates the set of sensor data 1501a. As discussed, the set of sensor data 1501a can be generated for a particular sequence cycle at a particular location of the flow cell, such as by a particular cluster of a particular tile or by a particular tile (i.e., the set is associated with a particular spatial location(s) and a particular temporal sequence cycle(s) of the flow cell 1405). Also at 1505a, context information associated with the set of sensor data 1501a is accessed (e.g., by the switching module 1422 and / or the base call binding module 1428). As discussed, the context information can be generated by the context information generation module 1418.
[0168] 15A, the switching module 1422 determines that the first base collaborator 1414 (rather than the second base collaborator 1416) will process the set of sensor data 1501a. Thus, at 1510a, the switching module 1422 enables the first base collaborator 1414, for example, by turning on the enable signal 1424. The second base collaborator 1416 may remain disabled, i.e., the second base collaborator 1416 does not operate on the set of sensor data 1501a.
[0169] In 1515a, the first base caller 1414 generates first base call classification information 1434 for the set of sensor data 1501a, but the second base caller 1416 refrains from generating second base call classification information 1436 for the set of sensor data 1501a.
[0170] At 1520a, the base call combining module 1428 generates a final base call for the set of sensor data 1501a using the first base call classification information 1434 based on the context information 1420 associated with the set of sensor data 1501a.
[0171] A second base caller 1416 that validates a final base call 1440 based on the second base call classification information 1436. FIG. 15B illustrates operation of system 1400, where second base caller 1416 is enabled and generates base call classification information for set of sensor data 1501b (e.g., while first base caller 1414 is not operating on set of sensor data 1501b), and final base call 1440 is based on second base call classification information 1436 for set of sensor data 1501b.
[0172] At 1505b, the flow cell 1405 generates a set of sensor data 1501b. As discussed, the set of sensor data 1501b can be generated for a particular sequence cycle at a particular location of the flow cell, such as by a particular cluster of a particular tile, or by a particular tile (i.e., the set is associated with a particular spatial location(s) and a particular temporal sequence cycle(s) of the flow cell 1405). Also at 1505b, context information associated with the set of sensor data 1501b is accessed (e.g., by the switching module 1422 and / or the base call binding module 1428). As discussed, the context information can be generated by the context information generation module 1418.
[0173] 15B, the switching module 1422 determines that the second base collaborator 1416 (rather than the first base collaborator 1414) processes the set of sensor data 1501b. Thus, at 1510b, the switching module 1422 enables the second base collaborator 1416, for example, by using the enable signal 1426. The first base collaborator 1414 may remain disabled, i.e., the first base collaborator 1414 does not operate on the set of sensor data 1501b.
[0174] In 1515b, the second base caller 1416 generates second base call classification information 1436 for the set of sensor data 1501b, but the first base caller 1414 refrains from generating any first base call classification information 1434 for the set of sensor data 1501b.
[0175] At 1520b, the base call combining module 1428 generates a final base call for the set of sensor data 1501b using the second base call classification information 1436 based on the context information 1420 associated with the set of sensor data 1501b.
[0176] A first base caller 1414 and a second base caller 1416 that validate a final base call 1440 based on one or both of (i) the first base call classification information 1434 and / or (ii) the second base call classification information 1436. FIG. 15C illustrates operation of system 1400 where both first base caller 1414 and second base caller 1416 are enabled (i.e., both base callers operate on a corresponding set of sensor data 1501c) to generate corresponding base call classification information for set of sensor data 1501c, and final base call 1440 is based on one or both of (i) first base call classification information 1434 and / or (ii) second base call classification information 1436.
[0177] At 1505c, the flow cell 1405 generates a set of sensor data 1501c. As discussed, the set of sensor data 1501c can be generated for a particular sequence cycle(s) at a particular location(s) of the flow cell, such as by a particular cluster of a particular tile or by a particular tile (i.e., the set is associated with a particular spatial location(s) and a particular temporal sequence cycle(s) of the flow cell 1405 of FIG. 14). Also at 1505c, context information associated with the set of sensor data 1501c is accessed (e.g., by the switching module 1422 and / or the base call binding module 1428). As discussed in more detail herein, the context information can be generated by the context information generation module 1418.
[0178] In the example of FIG. 15C, the switching module 1422 determines that both the first base chorer 1414 and the second base chorer 1416 should process the set of sensor data 1501c. Thus, at 1510c, the switching module 1422 (FIG. 14) enables both the first base chorer 1414 and the second base chorer 1416, e.g., using enable signals 1424 and 1426 (FIG. 14). For example, both the first base chorer 1414 and the second base chorer 1416 will process the entire set of sensor data 1501c. In another example, the first base chorer 1414 processes a first subset of the set of sensor data 1501c, and the second base chorer 1416 processes a second subset of the set of sensor data 1501c.
[0179] In 1515c, the first base caller 1414 generates first base call classification information 1434 for the set of sensor data 1501c, and the second base caller 1416 generates second base call classification information 1436 for the set of sensor data 1501c.
[0180] In 1520c, the base call combination module 1428 generates a final base call for the set of sensor data 1501b using the first base call classification information 1434 and / or the second base call classification information 1436 based on the context information 1420 associated with the set of sensor data 1501c.
[0181] If the final base call cannot be generated using only the first base call classification information 1434, the second base call classification information 1436 is enabled and used. FIG. 15D illustrates operation of the system 1400 in which if the final base call cannot be generated using only the first base call classification information 1434, then the second base call classification information 1436 is used for the final base call 1440.
[0182] At 1505d, the flow cell 1405 generates a set of sensor data 1501d. As discussed, the set of sensor data 1501d can be generated for a particular sequence cycle at a particular location of the flow cell, such as by a particular cluster of a particular tile, or by a particular tile (i.e., the set is associated with a particular spatial location(s) of the flow cell 1405 and a particular time sequence cycle(s). Also at 1505d, context information associated with the set of sensor data 1501d is accessed (e.g., by the switching module 1422 and / or the base call binding module 1428). As discussed, the context information can be generated by the context information generation module 1418.
[0183] 15D, the switching module 1422 determines that the first base collaborator 1414 processes the set of sensor data 1501d. Optionally, the switching module 1422 may also determine that the second base collaborator 1416 can also process the set of sensor data 1501d. Thus, in 1501d, the first base collaborator 1414 is enabled, and optionally, the second base collaborator 1416 is also enabled.
[0184] In 1515d, the first base caller 1414 generates first base call classification information 1434 for the set of sensor data 1501d. In an optional operation in 1510d in which the second base caller 1416 is enabled, the second base caller 1416 optionally generates second base call classification information 1436 for the set of sensor data 1501d.
[0185] In 1520d, a determination is made (e.g., by the switching module 1422 and / or the base call combining module 1428) as to whether a final base call can be generated from the first base call classification information 1434 (e.g., without using the second base call classification information 1436). For example, it may be determined that, for example, if the final base call 1440 is based solely on the first base call classification information 1434, there may be a relatively high probability of an error in the final base call 1440. Numerous examples of such determinations are discussed in turn later herein. As merely one example, if the first base call classification information 1434 indicates a homopolymeric (e.g., GGGGG) or near homopolymeric (e.g., GGTGG) sequence, the first base call classification information 1434 may be insufficient or inappropriate for generating a final base call (e.g., the second base call classification information 1436 must be relied upon to generate the final base call), as discussed later herein with respect to, for example, FIG. 19B and FIG. 19C.
[0186] If the answer is "yes" in 1520d (i.e., if the final base call can be generated from the first base call classification information 1434 without using the second base call classification information 1436), method 1500d proceeds to 1525d, where the first base call classification information 1434 is used to generate the final base call for the set of sensor data 1501d.
[0187] If the answer is "no" in 1520d (i.e., if the final base call cannot be generated from only the first base call classification information 1434, for example, without using the second base call classification information 1436), method 1500d proceeds to 1530d, where the second base caller 1416 is enabled, and then in 1535d, the second base call classification information 1436 is generated using the second base caller 1416. Note that the operations in blocks 1530d and 1535d are optional, and thus are shown using dotted lines. For example, if the second base caller 1416 was optionally enabled in 1510d, operation 1530d can be skipped. Similarly, if the second base call classification information 1436 was optionally generated using the second base caller 1416 in 1515d, operation 1535d can be skipped.
[0188] Assume a scenario in which the second base caller 1416 is not enabled in 1510d, and the second base caller 1416 is enabled in 1530d. Thus, in 1530d, the second base caller 1416 begins processing the set of sensor data 1510d. Note that for a given base calling cycle, the second base caller 1416 cannot immediately begin processing the corresponding sensor data to generate base calls. This is because, due to phasing discussed later in this specification (see, e.g., Figures 17C, 17D), the second base caller 1416 must process the sensor data of one or more previous base calling cycles in order to satisfactorily call the bases of the current cycle. For example, assume that base calling cycles 1-1000 have been performed and the set of sensor data 1501d includes images from base calling cycle 100 onwards. Also assume that at 1530d, the second base caller 1416 is enabled to process sensor data for base calling cycle 100 and one or more subsequent base calling cycles. As discussed, the second base caller 1416 must process sensor data from one or more previous cycles in order to satisfactorily call the bases in cycle 100 and subsequent cycles. Processing sensor data from several previous cycles allows the second base caller 1416 to estimate the effects of phasing in cycle 100, which increases the quality of the base call in cycle 100. By way of example only, 5, 10, 20, or another suitable number of previous cycles may be processed by the second base caller 1416 in order for the second base caller 1416 to satisfactorily call the bases in cycle 100.
[0189] In a first example, assume that the second base caller 1416 has process sensor data from N1 previous cycles to satisfactorily call the base in cycle 100. In a second example, assume that the second base caller 1416 has process sensor data from N2 previous cycles to satisfactorily call the base in cycle 1000. Now, as discussed with respect to Figures 17C, 17D, the effects of phasing and prephasing become more evident as the base calling cycles progress. Thus, phasing and prephasing are more pronounced in cycle 1000 than in cycle 100. Thus, to satisfactorily call the base in cycle 1000, the second base caller 1416 must process a greater number of previous cycles than the number of previous cycles that must be processed to satisfactorily call the base in cycle 100. Thus, N2 is higher than N1.
[0190] Referring again to FIG. 15D, following 1535d, in 1540d, a final base call is generated for sensor data set 1501d using one or both of (i) the first base call classification information 1434 and / or (ii) the second base call classification information 1436.
[0191] If the final base call cannot be generated using only the second base call classification information 1436, the first base call classification information 1434 is enabled and used. FIG. 15E illustrates operation of the system 1400 in which if the final base call cannot be generated using only the second base call classification information 1436, the first base call classification information 1434 is used for the final base call 1440.
[0192] At 1505e, the flow cell 1405 generates a set of sensor data 1501e. As discussed, the set of sensor data 1501e can be generated for a particular sequence cycle at a particular location of the flow cell, such as by a particular cluster of a particular tile, or by a particular tile (i.e., the set is associated with a particular spatial location of the flow cell 1405 and a particular temporal sequence cycle). Also at 1505e, context information associated with the set of sensor data 1501e is accessed (e.g., by the switching module 1422 and / or the base call combining module 1428). As discussed, the context information can be generated by the context information generating module 1418.
[0193] 15E, the switching module 1422 determines that the second base collaborator 1416 processes the set of sensor data 1501e, e.g., based on associated context information. Optionally, the switching module 1422 may also determine that the first base collaborator 1414 can also process the set of sensor data 1501e. Thus, at 1510e, the second base collaborator 1416 is enabled, and optionally, the first base collaborator 1414 is also enabled.
[0194] In 1515e, the second base caller 1416 generates second base call classification information 1436 for the set of sensor data 1501e. In an option in which the first base caller 1414 is also enabled, the first base caller 1414 generates first base call classification information 1434 for the set of sensor data 1501e.
[0195] At 1520e, a determination is made (e.g., by the switching module 1422 and / or the base call combining module 1428) as to whether a final base call can be generated from only the second base call classification information 1436 (e.g., without using the first base call classification information 1434). For example, it may be determined that there may be a relatively high probability of an error in the final base call 1440 (e.g., based on the context information) if, for example, the final base call 1440 is based only on the second base call classification information 1436. Numerous examples of such determinations are discussed in turn later herein. As merely one example, if the context information indicates the detection of a bubble in a cluster, as discussed later herein with respect to FIG. 19D, for example, the final base call cannot be generated from the second base call classification information 1436 (e.g., without using the first base call classification information 1434).
[0196] If the answer is "yes" in 1520e (i.e., if the final base call can be generated from the second base call classification information 1436 without using the first base call classification information 1434), method 1500c proceeds to 1525e, where the second base call classification information 1436 is used to generate the final base call for the set of sensor data 1501e.
[0197] If the answer is "no" in 1520e (i.e., for example, if the final base call cannot be generated from the second base call classification information 1436 without using the first base call classification information 1434), method 1500e proceeds to 1530e, where the first base caller 1414 is enabled, and then to 1535e, where the first base call classification information 1434 is generated using the first base caller 1414. Note that the operations at blocks 1530e and 1535e are optional and are therefore depicted using dotted lines. For example, if the first base caller 1414 was optionally enabled in 1510e, operation 1530e may be skipped. Similarly, if the first base call classification information 1434 was optionally generated using the first base caller 1414 in 1515e, operation 1535e may be skipped.
[0198] Assume a scenario in which the first base caller 1414 is not enabled in 1510e, and the first base caller 1414 is enabled in 1530e. Thus, in 1530e, the first base caller 1416 begins processing the set of sensor data 1510e. Note that for a given base calling cycle, the first base caller 1414 cannot immediately begin processing the corresponding sensor data to generate base calls. For example, assume that the first base caller 1414 operates on the corresponding set of data from base calling cycle Na. To satisfactorily generate base calls from cycle Na, the first base caller 1414 must also operate on sensor data from cycle Na, at least several cycles prior. For example, because, as discussed with respect to FIG. 7 and FIG. 10, the base calls for the current cycle are also based on data from one or more past cycles and one or more future cycles. Therefore, to generate the first base call classification information 1434 from cycle Na, the first base caller 1414 must also process sensor data from several previous cycles (such as cycle 2 in the example of FIG. 7 and cycle 5 in the example of FIG. 10).
[0199] Thereafter, in 1540e, final base calls are generated for the sensor data set 1501e using one or both of (i) the first base call classification information 1434 and / or (ii) the second base call classification information 1436.
[0200] Context information Figure 16 illustrates the context information generation module 1418 of the base calling system 1400 of Figure 14 generating context information 1420 for an example set of sensor data 1601. For example, the context information generation module 1418 receives information about the set of sensor data 1601 and generates various types of context information for the set of sensor data 1601, which in combination are referred to as context information for the set of sensor data 1601. For example, the context information generation module 1418 generates spatial context information 1604, temporal context information 1606, sequence context information 1608, and other context information 1610 for the set of sensor data 1601.
[0201] Spatial Context Information 1604 As the name suggests, spatial context information 1604 refers to context information associated with the spatial location of the tiles and clusters from which the set of sensor data 1601 is generated. Figures 17A and 17B below discuss examples of spatial context information 1604.
[0202] Figure 17A shows a flow cell 1405 of the system 1400 of Figure 14, which includes tiles 1406 that are grouped based on the spatial location of the tiles. For example, as discussed with respect to Figure 2, the flow cell 1405 of Figure 17A includes multiple lanes 1702 with multiple corresponding tiles 1406 within each lane. Figure 17A shows a top view of the flow cell 1405.
[0203] Individual tiles are classified based on their location, for example, tiles adjacent to any edge of the flow cell 1405 are labeled as edge tiles 1406a (indicated using a grey box) and the remaining tiles are labeled as non-edge tiles 1406b (indicated using a dotted box).
[0204] For example, tiles that are on a vertical edge (e.g., along the Y axis) and / or a horizontal edge (e.g., along the X axis) of the flow cell 1404 are classified as edge tiles 1406a, as shown in Figure 14. Thus, the edge tiles 1406a are adjacent (e.g., immediately adjacent) to the corresponding edges of the flow cell 1404, and the non-edge tiles are not adjacent to any edges of the flow cell 1404.
[0205] Base calling cycles are performed for clusters within each tile of the flow cell 1404. In one example, parameters related to the base calling operation of the tiles can be based on the relative position of the tiles. For example, the excitation light 101 discussed with respect to FIG. 1 is directed toward the tiles of the flow cell, and different tiles can receive different amounts of excitation light 101, for example, based on the position of the individual tiles and / or the position of one or more light sources emitting the excitation light 101. For example, if the light source(s) emitting the excitation light 101 are vertically above the flow cell, the non-edge tile 1406b can receive a different amount of light than the edge tile 1406a. In another example, ambient or external light around the flow cell 1405 (e.g., ambient light from outside the biosensor) can affect the amount and / or characteristics of the excitation light 101 received by the individual tiles of the flow cell 1405. As just one example, edge tiles 1406a may receive excitation light 101 along with some amount of ambient light from outside of flow cell 1405, while non-edge tiles 1406b may receive primarily excitation light 101. In yet another example, individual sensors (or pixels or photodiodes) included in flow cell 1405 (e.g., sensors 106, 108, 110, 112, and 114 shown in FIG. 1) may sense light based on the position of the corresponding tile based on the position of the corresponding sensor. For example, the sensing operation performed by one or more sensors associated with edge tiles 1406a may be affected by ambient light (along with excitation light 101) relatively to the effect of ambient light on the sensing operation of one or more other sensors associated with non-edge tiles 1406b. In yet another example, the flow of reactants (including, for example, any substances that may be used to obtain a desired reaction during base calling, such as reagents, enzymes, samples, other biomolecules, and buffers) flowing to various tiles may also be affected by tile position. For example, tiles that are closer to a source of reactant may receive a larger amount of reactant than tiles that are farther from the source.
[0206] In one example, the spatial context information 1604 (see FIG. 16 ) associated with the set of sensor data 1601 includes information regarding whether the set of sensor data 1601 was generated in an edge tile 1406a or a non-edge tile 1406b. As discussed above, parameters associated with a base call may be slightly different for different categories of tiles. Thus, in one embodiment, the spatial context information 1604 indicating whether the set of sensor data 1601 is generated from an edge tile or a non-edge tile may influence the selection of a base caller for processing the set of sensor data 1601. By way of example only, based on the details of the implementation, the first base caller 1414 may be more suitable for processing sensor data from one of the edge tiles or the non-edge tiles, and the second base caller 1416 may be more suitable for processing sensor data from another one of the edge tiles or the non-edge tiles.
[0207] FIG. 17B shows tiles 1406 of a flow cell 1405 of the system 1400 of FIG. 14, where the tiles 1406 include clusters 1407 sorted based on the spatial location of the clusters.
[0208] In one example, the locations of various clusters within a tile may be estimated based on sensor data (which may be, for example, image data) received from the tile. For example, the location of an individual cluster may be identified using the (x,y) coordinates of the cluster. Thus, each cluster 1407 has a corresponding (x,y) coordinate that identifies the location of the cluster relative to the tile. In FIG. 17B, the clusters 1407 of the example tile 1406 are classified as either edge clusters 1407a or non-edge clusters 1407b. For example, the clusters 1407 that are within a threshold distance LI from the edge of the tile are labeled as edge clusters 1407a, and the clusters 1407 that are outside the threshold distance LI from the edge of the tile are labeled as non-edge clusters 1407b. Thus, the edge clusters 1407a are located near the periphery of the tile 1406, and the non-edge clusters 1407a are located near the central portion of the tile 1406. As discussed, the (x,y) coordinates of the cluster can be used to determine (e.g., by the context information generation module 1418) the distance of the cluster to the edge of the tile, based on which the context information generation module 1418 classifies the cluster as either an edge cluster 1407a or a non-edge cluster 1407b. As a simple example, shown in Figure 17B is an imaginary dotted rectangle that is within the perimeter of the tile 1406 and at a distance LI from the perimeter of the tile 1406. Clusters within the dotted rectangle are classified as non-edge clusters 1407b, and clusters between the perimeter of the dotted rectangle and the perimeter of the tile 1406 are classified as edge clusters 1407a.
[0209] As discussed with respect to FIG. 1, the flow cell 1405 may include lenses (such as a filter layer 124 including an array of microlenses or other optical components) for capturing images of the various clusters. In one example, there may be slight differences in the focusing of the various clusters when capturing the images, e.g., as an image sensor or camera moves around the flow cell. For example, the edge cluster 1407a may be slightly out of focus relative to the non-edge cluster 1407b when the image of the cluster is captured. The out-of-focus event may also occur due to heating or mechanical vibration caused by the movement of the lens. Thus, depending on the implementation, as discussed in more detail later in this specification (see FIG. 19G, FIG. 20D), one of the first or second base collas 1414 or 1416 may be better suited to process sensor data from the edge cluster 1407a, and the other of the first or second base collas 1414 or 1416 may be better suited to process sensor data from the non-edge cluster 1407b. In one example, the spatial context information 1604 (see FIG. 16 ) associated with the set of sensor data 1601 includes information regarding whether the set of sensor data 1601 was generated from one or more edge clusters 1407 a or one or more non-edge clusters 1407 b, based on which the set of sensor data 1601 may be processed by a particular one or both of the first or second base clusters 1414 or 1416.
[0210] Thus, to summarize the above discussion, the spatial context information 1604 associated with a set of sensor data 1601 includes (i) information regarding whether the set of sensor data 1601 was generated from an edge tile 1406a or a non-edge tile 1406b, and / or (ii) information regarding whether the set of sensor data 1601 was generated from one or more edge clusters 1407a or one or more non-edge clusters 1407b. Other suitable spatial context information may be envisioned based on the teachings of the present disclosure.
[0211] Temporal Context Information 1606 Referring again to FIG. 16, the context information generation module 1418 also generates temporal context information 1606. For example, the base calling system discussed herein may be configured to receive a sample in which bases are called. Such base calling may be performed over multiple base calling cycles. In one example, the temporal context information 1606 of the set of sensor data 1601 indicates one or more base calling cycle numbers in which the set of sensor data 1601 is generated. For example, assume that there are N base calling cycles and the set of sensor data 1601 is associated with base calling cycles N1-N2 out of the total N base calling cycles. The temporal context information 1606 of the set of sensor data 1601 includes such information. As discussed herein below, the selection of which base caller should be used to process the set of sensor data 1601 may also be based on the number of base calling cycles with which the set of sensor data 1601 is associated.
[0212] FIG. 17C shows an example of fading, where the signal intensity decreases as a function of cycle number in a sequencing run of base calling operations. Fading is the exponential decay of the fluorescent signal intensity as a function of the base calling cycle number. As the sequencing run progresses, the specimen strands are washed excessively, exposed to laser emissions that create reactive species, and subjected to harsh environmental conditions. All of this results in a gradual loss of fragments in each specimen, reducing its fluorescent signal intensity. Fading is also referred to as extinction or signal decay. FIG. 17C shows an example of fading 1700C. In FIG. 17C, the intensity values of specimen fragments with AC microsatellites show an exponential decay.
[0213] FIG. 17D conceptually illustrates the decreasing signal-to-noise ratio as the cycle of sequencing progresses. For example, as sequencing progresses, the signal intensity decreases and the noise increases, resulting in a substantial decrease in the signal-to-noise ratio, making accurate base calling more difficult. Physically, it has been observed that later synthesis steps attach tags to different positions relative to the sensor than earlier synthesis steps. If the sensor is below the sequence being synthesized, the signal decay results from attaching tags to strands further away from the sensor in later sequencing steps than in earlier steps. This causes signal decay as the sequencing cycle progresses. In some designs, if the sensor is above the substrate that holds the clusters, the signal may increase as sequencing progresses, instead of decreasing.
[0214] In the investigated flow cell designs, noise increases while the signal decays. Physically, phasing and prephasing increase noise as sequencing progresses. Phasing refers to a step in sequencing where the tag cannot advance along the sequence. Prephasing refers to a sequencing step where the tag jumps forward by two positions instead of one position during a sequencing cycle. Phasing and prephasing are both relatively infrequent, occurring on the order of once in 500-1000 cycles. Phasing is slightly more frequent than prephasing. Phasing and prephasing affect individual strands within a cluster that generate intensity data, so the intensity noise distribution from the cluster accumulates in binomial, trinomial, quaternary, etc., expansions as sequencing progresses.
[0215] Further details of fading, signal attenuation, and signal-to-noise ratio reduction, as well as Figures 17C and 17D, can be found in U.S. Non-provisional Patent Application No. 16 / 874,599, entitled "Systems and Devices for Characterization and Performance Analysis of Pixel-Based Sequencing," filed May 14, 2020 (Attorney Docket No. ILLM1011-4 / IP-1750-US), which is incorporated by reference as if fully set forth herein.
[0216] Thus, during base calling, the reliability or quality of the base call (e.g., the probability that the called base is correct) can be based on the base calling cycle number in which the current base is being called. Thus, the selection of the first base caller 1414 and / or the second base caller 1416 to process the set of sensor data 1601 can also be based on the current cycle number in which the base calling operation is being performed, which can be included in the temporal context information 1606 for the set of sensor data 1601, as discussed in more detail later herein.
[0217] Sequence context information1608 FIG. 18 shows the base calling accuracy (1 base call error rate) for different exemplary configurations of base callers (e.g., DeepRTA, DeepRTA-K0-06, DeepRTA-349-K0-10-160p, DeepRTA-KO-16, DeepRTA-K0-16-Lanczos, DeepRTA-KO-18, and DeepRTA-K0-20) for base calling homopolymers (e.g., GGGGG), and sequences with near homopolymers or sequences with flanking homopolymers (e.g., GGTGG). In one example, a sequence with flanking homopolymers (e.g., GGTGG) includes a homopolymer (e.g., GG) flanking either side of a base of interest (e.g., T). Similarly, a near homopolymer includes a sequence where most or most of the bases are the same (e.g., 3 out of 5 bases, or 4 out of 5 bases, or 4 out of 7 bases are G). The table shown in Figure 18 shows data (e.g., base calling probability, or probability of calling a base correctly) for various base calling cycles, such as cycles 20, 40, 60, and 80. For example, the probability of correctly calling the middle base of the sequence GGGGG using DeepRTA base calling at cycle 80 is 96.97%. Note that some examples of sequences with homopolymers, near homopolymers, or adjacent homopolymers discussed in this disclosure are assumed to have five bases. However, there may be any different number of bases in such a particular sequence, such as 3, 5, 6, 7, 9, or another suitable number.
[0218] As described above, in some implementations, the base caller makes a base call for the current sequencing cycle by processing a window of a sequencing image for multiple sequencing cycles, including the current sequencing cycle contextualized by the right and left sequencing cycles. A repeating pattern of base "G" may result in an erroneous base call, since base "G" is represented by a dark or minimum signal state (also referred to herein as an off state, an unreadable signal state, or an inactive state) in the sequencing image. Such an erroneous base call also occurs when the current sequencing cycle is a non-G base (e.g., base "T"), but is flanked by Gs to the left and right. Note that non-G bases (i.e., A, C, or T) are represented by a lit or on (or active) state in the sequencing image.
[0219] In one example, there are some specific base call sequence patterns that have a relatively high probability of errors in base calling. Two such examples, GGGGG and GGTGG, are shown in FIG. 18. There may be other specific base call sequence patterns (e.g., GGTCG) that also have a relatively high probability of errors in base calling. In one example, such a specific base call sequence pattern has multiple Gs, such as at least the first and last Gs in the sequence, and possibly a third G between the two terminal Gs in the 5-base sequence. Other examples of such specific base call sequences include GGXGG, GXGGG, GGGXG, GXXGG, and GGXXG, where X can be any of A, C, T, or G.
[0220] In one example, the base sequence context information 1608 for the set of sensor data 1601 also provides an indication as to whether the set of sensor data 1601 is associated with any such special base sequence patterns. For example, if the set of sensor data 1601 is for calling intermediate bases in the sequence GGGGG (or GGTGG), this may require special operations to generate the final base calls, as discussed herein (e.g., see Figures 19B, 19C, 20A).
[0221] Other Context Information 1610 16, the context information generation module 1418 further generates other context information 1610. The other context information 1610 can cover any type of context information not covered by the spatial, temporal, and sequence context information. Numerous examples of other context information 1610 are possible, some of which are discussed herein below.
[0222] At times, bubbles form across one or more clusters during one or more sequences of base calling operations. Such bubbles may be globules of gas (such as air) in any liquid present in the cluster (such as bubbles in the reagents used for base calling). The presence of bubbles may be detected based on analyzing images captured from the affected cluster(s). For example, the presence of bubbles in a cluster may be estimated by detecting a unique intensity signal signature in the captured images of the cluster. In one example, the other context information 1610 may indicate whether the set of sensor data from a cluster 1601 is associated with such a bubble. In other words, if an image in the set of sensor data from a cluster 1601 indicates the presence of a bubble in the cluster, the other context information 1610 provides an indication of such a bubble in the cluster. Detection of bubbles is discussed in further detail in co-pending U.S. patent application Ser. No. 63 / 170,072, entitled "Machine-Learning Model for Detecting a Bubble Within a Nucleotide-Sample Slide for Sequencing," filed April 2, 2021, which is incorporated herein by reference. Further details regarding the generation of final base calls when bubbles are detected are discussed in due course later in this specification.
[0223] In one example, the reagents used in the flow cell play a major role in how base calling is performed. For example, a first base caller 1414 may be preferred when a first type of reagent is used, while a second base caller 1416 may be preferred when a second type of reagent is used. In one example, other context information 1610 provides an indication of the reagents used in the flow cell. Further details regarding the generation of final base calls based on the selection of reagents are discussed in due course later in this specification.
[0224] Selective use of the first base call 1414 and the second base call 1416: the final base call is a function (e.g., average, maximum, minimum, or another suitable function) of the classification information from the two base calls. FIG. 19A shows the generation of a final base call for a set of sensor data based on a function of first base call classification information 1434 from a first base caller 1414 and second base call classification information 1436 from a second base caller 1416 of the system 1400 of FIG. 14.
[0225] In one embodiment, each base caller 1414, 1416 outputs a corresponding probability that the called base is A, C, G, or T. For example, consider the first base call classification information 1434 from the first base caller 1414. The first base call classification information 1434 is in the form of a probability or confidence score p1(A), p1(C), p1(G), p1(T) for a given base called, where p1(A) indicates the probability that the called base is A. p1(C) indicates the probability that the called base is C. p1(G) indicates the probability that the called base is G, and p1(T) indicates the probability that the called base is T. As just one example, if p1(A), p1(C), p1(G), and p1(T) are 0.6, 0.2, 0.15, and 0.05, respectively, the first base caller 1414 indicates a high probability of 0.6 that the called base is A.
[0226] In one example, the sum of p1(A), p1(C), p1(G), and p1(T) is 1. Thus, the first base caller outputs a normalized probability of each base, in one example, using, for example, a softmax function. In another example, other techniques (e.g., other than softmax) may be used. For example, the base caller has an output layer that does not use softmax. For example, a regression-based operation may be used, which may derive a probability measure for each base, for example, using Euclidean or Mahalanobis distance to the crowd center.
[0227] Similarly, the second base call classification information 1436 is in the form of probabilities or confidence scores p2(A), p2(C), p2(G), p2(T) for a given base being called, where the sum of p2(A), p2(C), p2(G), p2(T) is 1.
[0228] In one embodiment, in addition to the probabilities described herein above, the base callers can also output the corresponding called base. For example, the first base caller 1414 outputs a first called base and the second base caller 1416 outputs a second called base.
[0229] A simple rule for base calling is as follows. For example, assume that for a given base to be called, the first base call classification information 1434 output by the first base caller 1414 is p1(A), p1(C), p1(G), p1(T), where p1(C) is greater than each of p1(A), p1(G), and p1(T). Then, the first base caller 1414 can call the base as C. In another example, the first base caller 1414 can call the base as C only if the corresponding probability p1(C) is higher than a threshold probability. In yet another example, assume p1(C)>p1(A)>p1(T) and p1(G). That is, p1(C) has the highest probability, followed by probability p1(A). The first base caller 1414 can then call the base C if p1(C) is higher than p1(A) by at least a threshold amount (i.e., the difference between the probabilities for the two bases is at least a threshold amount). Any other suitable rule(s) for base calling can be envisioned based on the teachings of this disclosure. The second base caller 1416 can also call the base accordingly.
[0230] 19A, the base call combining module 1428 receives the first base call classification information 1434 and the second base call classification information 1436, as well as the context information 1420. Assume that based on the context information 1420, the base call combining module 1428 decides to combine the first and second base call classification information, for example, as discussed with respect to method 1500c of FIG. 15C. Thus, in this example, both base callers 1414 and 1416 have processed the set of sensor data, and the final confidence scores pf(A), pf(C), pf(G), pf(T) and the final called bases are based on the output of both base callers 1414 and 1416.
[0231] If the classification information from the two base codes agree or match, use the average (e.g., arithmetic mean), minimum, maximum, or geometric mean of the confidence scores from the two base codes. 19A, assume a scenario in which a first base call classification information 1434 from a first base caller 1414 and a second base call classification information 1436 from a second base caller 1416 match. For example, the first base caller 1414 outputs a first base call classification information 1434 that includes confidence scores for p1(A), p1(C), p1(G), p1(T), and calls the base as C, merely by way of example. Also, for example, the second base caller 1416 outputs a second base call classification information 1436 that includes confidence scores for p2(A), p2(C), p2(G), p2(T), and also calls the base as C, merely by way of example. Thus, the base calls from both base callers match, which is C in this example.
[0232] In such a scenario where the base calls from both base callers 1414 and 1416 match, final base call 1440 includes the final called base that matches the base calls made by base callers 1414 and 1416.
[0233] In one embodiment, the final confidence scores pf(A), pf(C), pf(G), pf(T) are appropriate functions of the confidence scores p1(A), p1(C), p1(G), p1(T) output by the first base caller 1414 and the confidence scores p2(A), p2(C), p2(G), p2(T) output by the second base caller 1416.
[0234] For example, each of the final confidence scores pf(A), pf(C), pf(G), pf(T) may be the average or arithmetic mean of a corresponding one of the confidence scores p1(A), p1(C), p1(G), p1(T) output by the first base caller 1414 and a corresponding one of the confidence scores p2(A), p2(C), p2(G), p2(T) output by the second base caller 1416. Thus, if both base callers 1414 and 1416 called the base under consideration as C, the base call combination module 1428 will output the final called base as C and output a final confidence score as follows:
[0235]
number
[0236] In another example, instead of the average or arithmetic mean, another mathematical function (such as the geometric mean) can be used. For example, if the geometric mean is used, Equation 1 can be rewritten as follows:
[0237]
number
[0238] In another example, if the base calling system 1400 wishes to report conservative scores, each of the final confidence scores pf(A), pf(C), pf(G), pf(T) may be the minimum of a corresponding one of the confidence scores p1(A), p1(C), p1(G), p1(T) output by the first base caller 1414 and a corresponding one of the confidence scores p2(A), p2(C), p2(G), p2(T) output by the second base caller 1416 (e.g., assuming that the base calls of the two base callers match). Thus, if both base callers 1414 and 1416 called the base under consideration as C, the base call combination module 1428 would output the final called base as C and output the final confidence score as follows:
[0239]
number
[0240] In yet another example, if the base calling system 1400 wishes to report a high confidence score, each of the final confidence scores pf(A), pf(C), pf(G), pf(T) may be the maximum of a corresponding one of the confidence scores p1(A), p1(C), p1(G), p1(T) output by the first base caller 1414 and a corresponding one of the confidence scores p2(A), p2(C), p2(G), p2(T) output by the second base caller 1416 (e.g., assuming that the base calls of the two base callers match). Thus, if both base callers 1414 and 1416 called the base under consideration as C, the base call combination module 1428 would output the final called base as C and output the final confidence score as follows:
[0241]
number
[0242] In yet another example, if the base calling system 1400 wishes to report weighted confidence scores, each of the final confidence scores pf(A), pf(C), pf(G), pf(T) may be a normalized weighted sum of a corresponding one of the confidence scores p1(A), p1(C), p1(G), p1(T) output by the first base caller 1414 and a corresponding one of the confidence scores p2(A), p2(C), p2(G), p2(T) output by the second base caller 1416 (e.g., assuming that the base calls of the two base callers match). Thus, if both base callers 1414 and 1416 called the base under consideration as C, the base call combination module 1428 would output the final called base as C and output the final confidence score as follows:
[0243]
number
[0244] In one example, the weights A1 and A2 in Equation 4 are pre-specified fixed weights such that A1 + A2 = 1. In one example, the weights A1 and A2 are adjusted or updated during the training process, for example, based on training data.
[0245] A normalized ratio of confidence scores from two base callers based on the temporal context (e.g., base call cycle number) associated with the sensor data. In one example, the base calling system 1400 generates each of the final confidence scores pf(A), pf(C), pf(G), pf(T) to be a weighted average of each of the confidence scores p1(A), p1(C), p1(G), p1(T) output by the first base caller 1414 and a corresponding one of the confidence scores p2(A), p2(C), p2(G), p2(T) output by the second base caller 1416 (e.g., assuming the base calls of the two base callers match), with the weights being based on the context information 1420. That is, the context information 1420 dictates the weights given to the individual scores of the confidence scores from the two base callers.
[0246] 19A1 illustrates a look-up table (LUT) 1901 showing an exemplary weighting scheme used for the final confidence score based on the temporal context information 1606 (see FIG. 16). The actual weightings included in the LUT 1910 are merely examples and are not limiting.
[0247] Due to the fading, pre-phasing, and fading discussed with respect to Figures 17C and 17D, the performance of both base callers 1414 and 1416 has been observed to be comparable during the initial base calling cycles (e.g., showing relatively better signal quality and less noise during the initial base calling cycles, see Figure 17D). During later base calling cycles, the first base caller 1414 outperforms the second base caller 1416 because the first base caller 1414 may be better equipped to handle signal degradation during later base calling cycles. However, the first base caller 1414 may be computationally intensive to operate compared to the operation of the second base caller 1416.
[0248] Thus, in one example, as shown in Figure 19A1, confidence scores from the second base caller 1416 are emphasized over confidence scores from the first base caller 1414 for an initial threshold number of base calling cycles. As the base calling cycles progress, confidence scores from the first base caller 1414 are emphasized more (e.g., because the first base caller 1414 has outperformed the second base caller 1414 during later cycles).
[0249] Specifically, with reference to the first row of LUT 1901, assume there are N base calling cycles. For base calling cycles 1 through N1 (i.e., the first N1 base calling cycles), a high (e.g., 90-100%) weighting is given to the confidence score from the second base caller 1416 and a low (e.g., 0-10%) weighting is given to the confidence score from the first base caller 1414. Thus, during base calling cycles 1 through N1, the first base caller 1414 may be disabled or inoperable. This increases computational efficiency, since the first base caller 1414 is computationally intensive to operate (e.g., compared to the operation of the second base caller 1416). As discussed, during the first N1 cycles, both base callers have comparable performance, and thus no degradation in the quality of the base calls is observed.
[0250] where N1 is a suitable number of base calling cycles between 1 and N2 (see below). By way of example only, N1 can be 100, 150, 200, 250, or any other suitable number of base calling cycles. N1 can be determined to be the number of initial base calling cycles at which both base callers provide base calls of reasonably equal quality.
[0251] Thus, for example, for base calling cycles between cycle 1 and N1, the final base call pf (e.g., assuming 100% weighting given to the second base call) is given by:
[0252]
number
[0253] As discussed, the first base caller 1414 may be disabled (i.e., not operational on the corresponding set of data) for at least the first N1 cycles. Note that the first base caller 1414 operates on the corresponding set of data from cycle (N1+1) onwards (see the second row of LUT 1901). To satisfactorily generate base calls for cycle (N1+1) and subsequent cycles, the first base caller 1414 must also operate at least a few cycles prior to cycle (N1+1). For example, because, as discussed with respect to Figures 7 and 10, the base call for the current cycle is also based on data from one or more past cycles and one or more future cycles (see also the discussion with respect to Figure 15E for further explanation). Thus, the first base caller 1414 may be non-operative on the corresponding set of data between cycle 1 and cycle (N1-T) and operational from cycle (N1-T+1). where T is the threshold number of cycles, the data required to start base calling from cycle (N1+1).
[0254] Referring now to the second row of LUT 1901, in one example, for base calling cycles (N1+1) to N2, a first weighting is given to the confidence score from the second base caller 1416 and a second weighting is given to the confidence score from the first base caller 1414. In the example of FIG. 19A1, the first and second weightings are both medium weights, such as about 50%, by way of example only. Thus, during these cycles, both base callers 1414 and 1416 are operational. Thus, for example, for base calling cycles between cycles N1+1 and N2, the final score pf is given by the following formula:
[0255]
number
[0256] Now, referring to the third row of LUT 1901, in one example, for base calling cycles (N2+1) through N, a low (e.g., 0%) weighting is given to the confidence score from the second base caller 1416 and a high (e.g., 100%) weighting is given to the confidence score from the first base caller 1414. This is because, as discussed herein, during later base calling cycles, the first base caller 1414 outperforms the second base caller 1416 because the first base caller 1414 may be better equipped to handle signal degradation during later base calling cycles (see Figures 17C, 17D).
[0257] Thus, for example, for a base call cycle between cycle (N2+1) and N, the final score pf is given by the following formula:
[0258]
number
[0259] In one example, the LUT 1901 (or any other LUT discussed herein) may be stored in a memory of the system 1400 (memory not shown in FIG. 14). The switching module 1422 and / or the base call combining module 1428 access the LUT 1901 from the memory and receive context information 1420 (e.g., temporal context information) indicating the current base call cycle number. Based on the temporal context information, the switching module 1422 and / or the base call combining module 1428 select an appropriate row of the LUT 1901 and operate according to the weights specified in the selected row.
[0260] Confidence score correction based on sequence context information that indicates special base calls (base calls from two base calls match) Assume a scenario in which base calls from two base callers match and the base sequence context information indicates that a base called from either of the base callers contains a special base sequence, such as a homopolymer (e.g., GGGGG), a sequence with adjacent homopolymers (e.g., GGTGG), a near homopolymer, or another special base sequence. In one example, five consecutive final base calls are made by the base call combination module 1428 (or either of the base callers 1414, 1416), and the five consecutive final base calls contain the special base sequence. As previously described herein (see FIG. 18), the probability of error for such a special base sequence may be higher. Thus, the system 1400 may take special measures to potentially modify the confidence scores associated with the bases of such base sequences. Again, it is noted that some examples of special base sequences (such as sequences with homopolymers, near homopolymers, or adjacent homopolymers) discussed in this disclosure have five bases. However, there may be any different number of bases in such a particular base sequence, such as 3, 5, 6, 7, 9, or another suitable number.
[0261] FIG. 19B shows a LUT 1905 indicating the base caller to be used when the base being called contains a special base sequence. In the LUT 1905, the letter "X" indicates any base such as A, C, T, or G. Thus, for any of the base sequences included in the LUT 1905 (GGXGG, GXGGG, GGGXG, GXXGG, GGXXG, etc.), the confidence score from, for example, the second base caller 1416 is used to determine the final confidence score. This is because the inventors' experiments have determined that the second base caller 1416 outperforms the first base caller 1414 when any of the special base sequences shown in the LUT 1905 are encountered.
[0262] Thus, if five consecutive final base calls made by the base call combining module 1428 are any of the special base sequences in LUT1905, the base call combining module 1428 modifies the confidence scores associated with each of the five bases (or at least some, e.g., the central one) to correspond to the confidence scores output by the second base caller 1416 for the five bases.
[0263] In one example, the LUT 1905 (or any other LUT discussed herein) may be stored in a memory of the system 1400 (memory not shown in FIG. 14). The switching module 1422 and / or the base call combining module 1428 access the LUT from the memory and receive the context information 1420. Based on the context information, the switching module 1422 and / or the base call combining module 1428 selects an appropriate row of the LUT and operates according to the base calling action specified in the selected row. Unless otherwise specified, this applies to all LUTs discussed in this disclosure.
[0264] FIG. 19C illustrates a LUT 1910 showing the weightings given to the confidence scores of the individual base callers when the base being called contains a special base sequence. Note that the actual weightings included in the LUT 1910 are merely examples and do not limit the scope of the present disclosure. For example, referring to the first row of the LUT 1910, if the special sequence GGXGG is encountered, a weighting of 60% may be given to the confidence score from the second base caller 1416 and a weighting of 40% may be given to the confidence score from the first base caller 1414. For example, the middle (i.e., 3 digits) of the sequence indicated by the "X" may be weighted to 100%. rd ) base is T, the first base call 1414 indicates a confidence score of p1(T) and the second base call 1414 indicates a confidence score of p2(T). In such an example, the final called base is T and the middle (i.e., 3 rd ) The final confidence score for the base is:
[0265]
number
[0266] In one example, the weights in LUT 1910 may be determined empirically through testing and calibration.
[0267] The other rows of the LUT 1910 may also have weights based on the detected base sequence. These weights may be pre-specified, or optimal values for these weights may be determined through testing and calibration.
[0268] Note that in all of the example weights specified in the LUT 1910, the weight for the second base caller 1416 is higher than the weight for the first base caller 1414. This is because, as described herein above, in some instances, the second base caller 1416 may outperform the first base caller 1414 when encountering any of the special base sequences shown in the LUT.
[0269] Generating final classification information based on bubble detection in clusters As previously described herein, during one or more sequences of base calling operations, bubbles may form across one or more clusters. Such bubbles may be globules of gas (such as air) in any liquid present in the cluster (such as bubbles in a reagent used for base calling). The presence of bubbles may be detected based on analyzing images captured from the affected cluster(s). For example, the presence of bubbles in a cluster may be estimated by detecting a unique intensity signal signature in a captured image of the cluster. In one example, other context information 1610 may indicate whether a set of sensor data 1601 from a cluster is associated with such a bubble.
[0270] 19D illustrates a LUT 1915 illustrating the operation of the base call combination module 1428 of FIG. 14 given the detection of one or more air bubbles in a cluster of flow cells. For example, referring to the first row of LUT 1915, if no air bubbles are detected in the flow cells, a final base call is performed by the base call combination module 1428, e.g., generally according to any suitable manner of operation discussed herein in this disclosure.
[0271] With reference to the second row of the LUT 1915, we discuss a scenario in which one or more bubbles are detected within a cluster of flow cells. In general, the first base caller 1414 is better equipped to process base calls for clusters that contain such bubbles. Thus, in one embodiment, in response to the other context information 1610 (see FIG. 16) indicating the presence of a bubble in a cluster, the base call combination module 1428 assigns a relatively high weighting (e.g., a weighting between 90 and 100%) to the confidence scores from the first base caller 1414 and a relatively low weighting (e.g., a weighting between 0 and 10%) to the confidence scores from the second base caller 1416.
[0272] It should be noted that a tile of a flow cell is composed of multiple clusters, and an air bubble, for example, may be detected in a single cluster of a tile. Thus, sensor data from the single cluster is primarily processed by the first base coller 1414 according to the second row of the LUT 1915, and sensor data from other clusters of the tile is processed by the first base coller 1414 and / or the second base coller 1416 according to the first row of the LUT 1915.
[0273] Assume that no bubbles are detected in the cluster for base call cycles 1 through Na, and that in cycle (Na+1) the cluster is detected to contain a bubble. Thus, from base call cycle (Na+1) onwards, the first base caller 1414 will process the sensor data from the cluster according to the second row of the LUT 1915. However, assume that prior to cycle (Na+1) (i.e., from cycles 1 through Na), the first base caller 1414 has not operated on sensor data from that cluster, and the second base caller 1416 has operated on sensor data from that cluster. However, in order for the first base caller 1414 to start calling bases from cluster (Na+1), the first base caller 1414 needs to process several past cycles. (Because, for example, as discussed with respect to Figures 7 and 10, the base calls for the current cycle are also based on data from one or more past cycles and one or more future cycles; see also the discussion with respect to Figure 15E). Thus, in response to context information indicating the presence of a bubble in cycle (Na+1), the first base caller processes sensor data for several cycles occurring prior to cycle (Na+1) (e.g., processes sensor data for cycles Na, (Na-1), (Na-2), ..., (Na-T)) and is prepared to process and base call cycle (Na+1) now based on the processing of such past cycles, where T is a threshold number of past base calling cycles that the first base caller must process in order to correctly process the sensor data for the current base calling cycle.
[0274] Generating final classification information based on out-of-focus even detection in clusters As previously described herein, the flow cell 1405 can include lenses (such as a filter layer 124 including an array of microlenses or other optical components) for capturing images of the various clusters. In one example, there may be slight differences in focus for the various clusters when capturing images, such as as an image sensor or camera moves around the flow cell. For example, an edge cluster 1407a may be slightly out of focus relative to a non-edge cluster 1407b when an image of the cluster is captured. Out of focus events may also occur due to heating or mechanical vibrations caused by the movement of the lens.
[0275] 19D1 illustrates a LUT 1917 illustrating the operation of the base call combination module 1428 of FIG. 14 taking into account the detection of an out-of-focus image(s) from a cluster of flow cells. For example, referring to the first row of LUT 1917, if no out-of-focus images are detected for a flow cell, the final base call is performed by the base call combination module 1428 normally, e.g., according to any suitable manner of operation discussed herein in this disclosure.
[0276] With reference to the second row of the LUT 1917, we discuss a scenario in which an out-of-focus image(s) is / are detected from one or more clusters of the flow cell. In general, the first base caller 1414 is better equipped to process base calls for clusters that generate such out-of-focus images. Thus, in one embodiment, in response to other context information 1610 (see FIG. 16 ) indicating the presence of an out-of-focus image from a cluster, the base call combination module 1428 assigns a relatively high weighting (e.g., a weighting between 90 and 100%) to the confidence scores from the first base caller 1414 and a relatively low weighting (e.g., a weighting between 0 and 10%) to the confidence scores from the second base caller 1416.
[0277] It should be noted that a tile of a flow cell may contain multiple clusters, and out-of-focus images may be detected, for example, in a single cluster or a few clusters of the tile (but not all or most of the clusters). Thus, sensor data from one or more clusters having out-of-focus images is primarily processed by the first base coller 1414 according to the second row of the LUT 1915, and sensor data from other clusters of the tile is processed by the first base coller 1414 and / or the second base coller 1416 according to the first row of the LUT 1915.
[0278] Normalized ratio of confidence scores from the two base collabs based on the reagent used Reagents play a major role in base calling, as previously described herein. By way of example only, if a first group of reagents is used, the first base caller 1414 may be more suitable than the second base caller 1416, and if a second group of reagents is used, the first base caller 1414 may be less suitable than the second base caller 1416. In one embodiment, the context information 1601 indicates the type of reagent used, and the context information generation module 1418 can specify normalized weightings for the confidence scores from the two base callers to determine a final confidence score.
[0279] 19E illustrates a LUT 1920 showing example weightings given to the confidence scores of individual base collaborators based on the group of reagents used. For example, referring to the first row of the LUT 1920, when an example reagent group A is used, a weighting of A1% is given to the confidence score from the first base collaborator 1414 and a weighting of A2% is given to the confidence score from the second base collaborator 1416, where A1+A2=100. Similarly, referring to the second row of the LUT 1920, when an example reagent group B is used, a weighting of B1% is given to the confidence score from the first base collaborator 1414 and a weighting of B2% is given to the confidence score from the second base collaborator 1416, where B1+B2=100.
[0280] The normalized ratio of confidence scores from two base calls in the log-probability domain Various examples and embodiments hereinabove discuss confidence scores in terms of probability. However, in one embodiment, confidence scores can be expressed using a logarithmic scale, and mathematical operations discussed herein (e.g., with respect to Equations 1-8) can be performed with confidence scores expressed using a logarithmic scale. For example, the Phred quality score is a measure of the quality of the identification of nucleic acid bases generated by automated DNA sequencing. The Phred quality score Q is defined as a property logarithmically related to the base call probability P as follows:
[0281]
number
[0282] Thus, a base calling accuracy of 90% (e.g., p1(c) having a value of 0.9) is converted to a corresponding Phred score of 10, a base calling accuracy of 99% (e.g., p1(c) having a value of 0.99) is converted to a corresponding Phred score of 20, and so on. Here, P is the base calling probability, which is related to the probability of error E as P=(1-E). The Phred quality score Q is thus calculated as Q=-10×log 10 It is related to the probability of error E as (1-E), where E is the probability of error for a particular base call. Further details of quality scores and error probabilities are discussed, for example, in co-pending U.S. Provisional Patent Application No. 63 / 226,707, entitled "Quality Score Calibration of Basecalling Systems," filed July 28, 2021 (Attorney Docket No. (ILLM1045-1 / IP-2093-PRV)), which is incorporated by reference.
[0283] In one embodiment, the mathematical operations discussed herein (e.g., with respect to Equations 1-8) may be performed using Phred scores instead of confidence scores. Thus, in some examples where the mathematical operations use Phred or quality scores, the selection of the base caller to be used may be based on the Phred or quality score (e.g., as discussed with respect to Equations 1-8).
[0284] Generation of a final confidence score from the two base scores based on spatial context, e.g. edge tiles associated with the sensor data As discussed above with respect to FIG. 17A, some tiles may be classified as edge tiles based on the spatial location of the tiles. For example, in FIG. 17A, tiles adjacent to any edge of the flow cell 1405 are labeled as edge tiles 1406a, and the remaining tiles are labeled as non-edge tiles 1406b. For example, tiles on a vertical edge (e.g., along the Y axis) and / or a horizontal edge (e.g., along the X axis) of the flow cell 1404 are classified as edge tiles 1406, as shown in FIG. 14. Thus, the edge tiles 1406 are directly adjacent to the corresponding edge of the flow cell 1404.
[0285] Also as discussed with respect to FIG. 17A, in one example, parameters related to the base calling operation of tiles can be based on the relative position of the tiles. For example, the excitation light 101 discussed with respect to FIG. 1 is directed toward the tiles of a flow cell, and different tiles can receive different amounts of excitation light 101, for example, based on the position of the individual tiles and / or the position of one or more light sources emitting the excitation light 101. For example, if the light source(s) emitting the excitation light 101 are vertically above the flow cell, the non-edge tile 1406b can receive a different amount of light than the edge tile 1406a. In another example, ambient or external light around the flow cell 1405 (e.g., ambient light from outside the biosensor) can affect the amount and / or characteristics of the excitation light 101 received by the individual tiles of the flow cell 1405. As just one example, edge tiles 1406a may receive excitation light 101 along with some amount of ambient light from outside flow cell 1405, while non-edge tiles 1406b may receive primarily excitation light 101. In yet another example, individual sensors (or pixels or photodiodes) included in flow cell 1405 (e.g., sensors 106, 108, 110, 112, and 114 shown in FIG. 1) may sense light based on the position of the corresponding sensor based on the position of the corresponding tile. For example, the sensing operation performed by one or more sensors associated with edge tiles 1406a may be affected by ambient light (along with excitation light 101) relatively more than the effect of ambient light on the sensing operation of one or more other sensors associated with non-edge tiles 1406b. In yet another example, the flow of reactants (including, for example, any substances that may be used to obtain a desired reaction during base calling, such as reagents, enzymes, samples, other biomolecules, and buffers) flowing to various tiles may also be affected by tile position. For example, tiles that are closer to a source of reactant may receive a larger amount of reactant than tiles that are farther from the source.
[0286] In one example, the spatial context information 1604 (see FIG. 16) associated with the set of sensor data 1601 includes information regarding whether the set of sensor data 1601 was generated in an edge tile 1406a or a non-edge tile 1406b.
[0287] Figure 19F illustrates a LUT 1925 that illustrates the operation of the base call combination module 1428 of Figure 14 taking into account the spatial classification of tiles. For example, referring to the first row of the LUT 1925, for non-edge tiles, the final base calls are typically performed by the base call combination module 1428, e.g., according to any suitable manner of operation discussed herein in this disclosure.
[0288] With reference to the second row of LUT 1925, a final base call scenario for an edge tile is discussed. In general, as discussed herein, the first base caller 1414 is better equipped to handle base calls for edge tiles. Thus, in one embodiment, for an edge tile, the base call combination module 1428 assigns an E1 weight to the confidence score from the first base caller 1414 and an E2 weight to the confidence score from the second base caller 1416, where in one example, E1 is higher than E2 and the sum of E1 and E2 is 100% (i.e., the weighting is normalized).
[0289] Generation of a final confidence score from two base scores based on spatial context, e.g. edge clusters associated with sensor data As discussed above with respect to FIG. 17B, the clusters 1407 of the exemplary tile 1406 are classified as either edge clusters 1407a or non-edge clusters 1407b. Also, as discussed above herein, the flow cell 1405 may include lenses (such as a filter layer 124 including an array of microlenses or other optical components) for capturing images of the various clusters, and when the images of the clusters are captured, the edge clusters 1407a may be slightly out of focus relative to the non-edge clusters 1407b. Thus, depending on the implementation, one of the first or second base collaborators 1414 or 1416 may be better suited to process sensor data from the edge clusters 1407a, and the other of the first or second base collaborators 1414 or 1416 may be better suited to process sensor data from the non-edge clusters 1407b. In one example, the spatial context information 1604 (see FIG. 16 ) associated with the set of sensor data 1601 includes information regarding whether the set of sensor data 1601 was generated from one or more edge clusters 1407 a or one or more non-edge clusters 1407 b, based on which the set of sensor data 1601 may be processed by a particular one or both of the first or second base clusters 1414 or 1416.
[0290] Figure 19G illustrates a LUT 1930 that illustrates the operation of the base call combination module 1428 of Figure 14, taking into account the spatial classification of clusters. For example, referring to the first row of the LUT 1930, for non-edge clusters, the final base calling is typically performed by the base call combination module 1428, e.g., according to any suitable manner of operation discussed herein in this disclosure.
[0291] With reference to the second row of the LUT 1930, a final base calling scenario for an edge cluster is discussed. In general, as discussed herein, the first base caller 1414 may be better equipped to handle base calling for edge tiles. Thus, in one embodiment, for an edge cluster, the base call combination module 1428 weights the confidence score from the first base caller 1414 C1 and weights the confidence score from the second base caller 1416 C2, where in one example, C1 is higher than C2 and the sum of C1 and C2 is 100% (i.e., the weighting is normalized). In one example, the weighting C1 can be as high as 100%, in which case the classification information from the first base caller 1414 is used exclusively to base call the edge cluster.
[0292] A decrease in the final confidence score when the classification information from the two base classes differs or does not match 19A, the first base caller 1414 outputs a first called base and a first confidence score for p1(A), p1(C), p1(G), p1(T), and the second base caller 1416 outputs a second called base and a second confidence score for p2(A), p2(C), p2(G), p2(T). In one example, for a given base, the first called base from the first base caller 1414 may not match the second called base from the second base caller 1416.
[0293] For example, assume that the first base caller 1414 calls a base with a confidence score of p1(A) as A, and the second base caller 1416 calls a base with a confidence score of p2(C) as C. In such a scenario, the final called bases output by the base call combination module 1428 are:
[0294]
number
[0295] Note that since the two base calls from the two base callers are different, the probability of error is high. Thus, the final confidence score can be reduced. For example, assume that p1(A) is higher than p2(C) (i.e., p1(A)>p2(C)) and the final called base is A. Then, the final confidence score pf(A) corresponding to A is:
[0296]
number
[0297] Thus, the final confidence score is artificially lowered due to the differences in the bases called by the two base callers.
[0298] In another example, the final confidence score pf(A) is reduced as follows:
[0299]
number
[0300] Therefore, the final confidence score is lowered using an appropriate weight W1 that is less than 1 due to differences in the bases called by the two base calls.
[0301] When the taxonomic information from two base codes, together with specific context information (e.g., a particular base sequence), differs or does not match As described herein above, the first base caller 1414 outputs a first called base and a first confidence score for p1(A), p1(C), p1(G), p1(T). The second base caller 1416 outputs a second called base and a second confidence score for p2(A), p2(C), p2(G), p2(T). In one example, for a given base, the first called base from the first base caller 1414 may not match the second called base from the second base caller 1416.
[0302] In one embodiment, if a first called base from a first base caller 1414 does not match a second called base from a second base caller 1416, and such a mismatch also involves one or more specific contextual information, the contextual information can be taken into account for the final called base.
[0303] 20A shows a LUT 2000 illustrating the operation of the base call combination module 1428 of FIG. 14 when (i) a special base sequence is detected and (ii) the first called base from the first base caller 1414 does not match the second called base from the second base caller 1416. For example, with reference to the first row of the LUT 2000, a scenario is discussed in which the first called base from the first base caller 1414 matches the second called base from the second base caller 1416, and a special base sequence is detected, such as a sequence having a homopolymer (e.g., GGGGG), adjacent homopolymers, or near homopolymers (such as GGXGG). Further examples of such special sequences are discussed with respect to FIG. 19B. Because the first called base from the first base caller 1414 matches the second called base from the second base caller 1416, the final called base matches the bases called from the first and second base callers, and the confidence score may be calculated according to FIG. 19B and / or according to any suitable manner of operation discussed herein. Also, as previously mentioned, it should be noted that some examples of special base sequences discussed in this disclosure (such as sequences having homopolymers, near homopolymers, or adjacent homopolymers) have five bases. However, there may be any different number of bases in such special base sequences, such as 3, 5, 6, 7, 9, or another suitable number.
[0304] Referring now to the second row of the LUT2000, a scenario is discussed in which a first called base from the first base caller 1414 does not match a second called base from the second base caller 1416, and a special base sequence is detected, such as a sequence having a homopolymer (e.g., GGGGG), adjacent homopolymers, or near homopolymers (e.g., GGXGG). Further examples of such special sequences are discussed with respect to FIG. 19B. Because the first called base from the first base caller 1414 does not match the second called base from the second base caller 1416, the final called base is based on the second called base from the second base caller 1416 (e.g., the second base caller 1416 is more reliable for such special base sequences, for reasons discussed with respect to FIG. 19B and FIG. 19C). The confidence score for the final called base can be, for example, the minimum or average (or another suitable function) of the corresponding confidence scores from the two base callers.
[0305] When the classification information from the two base classes, along with certain context information (e.g., air bubble detection), differs or does not match FIG. 20B shows a LUT 2005 illustrating the operation of the base call combination module 1428 of FIG. 14 when (i) a bubble is detected in a cluster and (ii) the first called base from the first base caller 1414 does not match the second called base from the second base caller 1416.
[0306] For example, referring to the first row of LUT 2005, a scenario is discussed in which a first called base from a first base caller 1414 matches a second called base from a second base caller 1416, and no bubbles are detected in any cluster. Thus, the final base call is performed according to any suitable method of operation discussed herein.
[0307] Next, referring to the second row of the LUT 2005, a scenario is discussed in which (i) the first called base from the first base caller 1414 does not match the second called base from the second base caller 1416, and (ii) a bubble is detected in the cluster. Since the first called base from the first base caller 1414 does not match the second called base from the second base caller 1416, the final called base is based on the first called base from the first base caller 1414 (which is more reliable in the case of bubble detection, e.g., for reasons discussed with respect to FIG. 19D). The confidence score for the final called base can be, for example, the minimum or average (or another suitable function) of the corresponding confidence scores from the two base callers.
[0308] When the classification information from the two base classes differs or does not match, along with certain contextual information (e.g., out-of-focus images) FIG. 20C shows a LUT 2010 illustrating the operation of the base call combination module 1428 of FIG. 14 when (i) one or more out-of-focus images are detected from at least one cluster and (ii) a first called base from a first base caller 1414 does not match a second called base from a second base caller 1416.
[0309] For example, with reference to the first row of LUT 2010, a scenario is discussed in which a first called base from a first base caller 1414 matches a second called base from a second base caller 1416, and no out-of-focus images are detected in any cluster. Thus, the final base call is performed according to any suitable method of operation discussed herein.
[0310] Next, referring to the second row of the LUT 2010, a scenario is discussed in which (i) the first called base from the first base caller 1414 does not match the second called base from the second base caller 1416, and (ii) one or more out-of-focus images are detected from at least one cluster. Since the first called base from the first base caller 1414 does not match the second called base from the second base caller 1416, the final called base is based on the first called base from the first base caller 1414 (e.g., the first base caller 1414 is more reliable in the case of out-of-focus image detection, for reasons discussed with respect to FIG. 19D1). The confidence score for the final called base can be, for example, the minimum or average (or another suitable function) of the corresponding confidence scores from the two base callers.
[0311] When the classification information from the two base classes, together with certain contextual information (such as spatial contextual information indicating edge clusters), differs or does not match FIG. 20D shows a LUT 2015 illustrating the operation of the base call combination module 1428 of FIG. 14 when (i) the sensor data is from an edge cluster and (ii) a first called base from the first base caller 1414 does not match a second called base from the second base caller 1416.
[0312] For example, with reference to the first row of LUT 2015, a scenario is discussed in which a first called base from a first base caller 1414 matches a second called base from a second base caller 1416, and the set of sensor data is from an edge cluster. Thus, the final base call is performed according to any suitable operating scheme discussed herein, such as that discussed with respect to FIG. 19G.
[0313] Next, referring to the second row of the LUT 2015, a scenario is discussed in which (i) the first called base from the first base caller 1414 does not match the second called base from the second base caller 1416, and (ii) the sensor data is from an edge cluster. Since the first called base from the first base caller 1414 does not match the second called base from the second base caller 1416, the final called base is based on the first called base from the first base caller 1414 (e.g., the first base caller 1414 is more reliable for edge clusters, for reasons discussed with respect to FIG. 19G). The confidence score for the final called base can be, for example, the minimum or average (or another suitable function) of the corresponding confidence scores from the two base callers.
[0314] Detecting potentially unreliable trust scores and selectively switching between base calls based on such detection As discussed herein with respect to Figures 19B and 19C, the first base caller 1414 may not perform satisfactorily (e.g., with respect to the second base caller) for some particular detected base sequences, for example, when calling sequences with homopolymers (e.g., GGGGG), adjacent homopolymers, or near homopolymers (e.g., GGTGG). In one embodiment, for some such sequences, the first base caller 1414 may generate a high confidence score for the called base, but such a high confidence score may be higher than the true confidence for the called base. Thus, for example, when such a relatively high confidence score (e.g., higher than a threshold) is called by the first base caller 1414 for a sequence with a homopolymer, or adjacent homopolymers or near homopolymers, such a high confidence score may not be reliable. In some such scenarios, the confidence score from the second base caller 1416 may be used.
[0315] In one example, for sequences with homopolymers, adjacent homopolymers, or near homopolymers, the confidence scores p1(A), p1(C), p1(G), p1(T) associated with the middle or third called base of the sequence can be modified. For example, assuming a sequence with adjacent homopolymers (e.g., GGTGG), the first base caller 1414 calls the third base with a certain confidence score, where the confidence score for the third base that is T is relatively high (e.g., higher than a threshold). Thus, the confidence scores p2(A), p2(C), p2(G), p2(T) from the second base caller 1416 can be used for the third base of a 5-base sequence with adjacent homopolymers or near homopolymers and can be used to determine the final confidence score.
[0316] Final base calls, including uncertain base calls when the taxonomic information from the two base calls differs or does not match In one example, if the classification information from the two base calls differs or does not match, the final base call 1440 may include an uncertain base call and a corresponding confidence score. For example, the final confidence scores for the various bases may be generated using any of the techniques discussed herein, such as minimum, average, maximum, or normalized weighted confidence scores, and the final base call may be indicated as uncertain.
[0317] For example, assume that the first base call classification information 1434 includes, for a given base being called, confidence scores p1(A), p1(C), p1(G), p1(T), and a first called base of A (e.g., because p1(A) is higher than each of p1(C), p1(G), and p1(T)). Also assume that the second base call classification information 1436 includes, for a given base being called, confidence scores p2(A), p2(C), p2(G), p2(T), and a second called base of C (e.g., because p2(C) is higher than each of p2(A), p2(G), and p2(T)). Because the two base calls do not match, the final base call is "N," where in one example "N" indicates an uncertain base call. In another example, for the particular use case discussed herein, "N" may represent either base A or C (i.e., the first and second base calls output by the two base callers). The final base call N may be appended with a final confidence score, which may be calculated using any of Equations 1-8 discussed herein above.
[0318] Neural network-based final base call decision module FIG. 21 illustrates a base calling system 2100 including a plurality of base callers for predicting a base call of an unknown specimen including a base sequence, in which a neural network-based final base call determination module 2128 determines a final base call 1440 based on the output of one or more of the plurality of base callers. In one example, the final base call determination module 2128 determines how to combine the first base call classification information 1434 and the second base call classification information 1436 to generate the final base call 1440, taking into account context information and other variables (e.g., as discussed with respect to FIG. 19A). The system 2100 is at least partially similar to the system 1400 of FIG. 14. However, the context information generation module 1418 and the base call combination module 1428 of FIG. 14 are replaced by the final base call determination module 2128 in the system 2100 of FIG. 21.
[0319] In one example, the final base call determination module 2128 is a neural network-based module trained using the output from the two base callers 1414 and 1416. The trained final base call determination module 2128 is then used for base calling. The training of the final base call determination module 2128 can be based on one or more final base call determination operations discussed herein. The operation of the system 2100 of FIG. 21 will become clear based on the discussion regarding FIG. 14 and further discussion regarding final base call determination presented herein. In other examples, the final base call determination module 2128 can be another suitable machine learning model, such as a logistic regression model, a gradient boosted tree model, a random forest model, a naive Bayes model, etc. In one example, the final base call determination module 2128 can be any suitable machine learning model that can combine two classification scores to generate the final base call 1440.
[0320] Weight Estimation Various weights are discussed herein throughout this disclosure and are used to weight the first classification information 1434 and the second classification information 1436 while generating the final classification information. Various techniques can be employed to generate the weights.
[0321] In one example, the weights can be fine-tuned using a trained neural network model of the final base call determination module 2128 of Figure 21. In another example, the weights can be empirically determined using trial and error or another suitable method. In yet another example, the predicted covariance matrix of the confidence scores can be empirically estimated and used to estimate the weights.
[0322] Base Calling System Architecture 22 is a block diagram of a base calling system 2200 according to one implementation. The base calling system 2200 can operate to obtain any information or data related to at least one of biological or chemical substances. In some implementations, the base calling system 2200 is a workstation, which can be similar to a benchtop device or desktop computer. For example, most (or all) of the systems and components for carrying out the desired reactions can be in a common housing 2216.
[0323] In certain implementations, the base calling system 2200 is a nucleic acid sequencing system (or sequencer) configured for a variety of applications, including, but not limited to, de novo sequencing, resequencing of whole genomes or targeted genomic regions, and metagenomics. Sequencers may also be used for DNA or RNA analysis. In some implementations, the base calling system 2200 may also be configured to generate reaction sites within a biosensor. For example, the base calling system 2200 may be configured to receive a sample and generate surface-attached clusters of clonally amplified nucleic acids from the sample. Each cluster may constitute or be part of a reaction site within a biosensor.
[0324]
[0359] Exemplary base calling system 2200 may include a system receptacle or interface 2212 configured to interact with biosensor 2202 to effect a desired reaction within biosensor 2202. In the discussion below with respect to FIG. 22, biosensor 2202 is loaded into system receptacle 2212. However, it is understood that a cartridge including biosensor 2202 may be inserted into system receptacle 2212, and that in some conditions, the cartridge may be temporarily or permanently removed. As discussed above, the cartridge may include, among other things, fluid control and fluid storage components.
[0325] In certain implementations, the base calling system 2200 is configured to perform multiple parallel reactions within the biosensor 2202. The biosensor 2202 includes one or more reaction sites where a desired reaction can occur. The reaction sites may be immobilized, for example, on a solid surface of the biosensor or on beads (or other mobile substrates) located within corresponding reaction chambers of the biosensor. The reaction sites may include, for example, clusters of clonally amplified nucleic acids. The biosensor 2202 may include a solid-state imaging device (e.g., a CCD or CMOS imager) and a flow cell attached thereto. The flow cell may include one or more flow channels that receive solutions from the base calling system 2200 and direct the solutions toward the reaction sites. Optionally, the biosensor 2202 may be configured to engage a thermal element for transferring thermal energy into and out of the flow channel.
[0326] Base calling system 2200 may include various components, assemblies, and systems (or subsystems) that interact with each other to perform a given method or assay protocol for biological or chemical analysis. For example, base calling system 2200 includes a system controller 2204, which may communicate with the various components, assemblies, and subsystems of base calling system 2200, and also a biosensor 2202. For example, in addition to system receptacle 2212, base calling system 2200 may also include a fluid control system 2206 for controlling the flow of fluids throughout the fluidic network of base calling system 2200 and biosensor 2202, a fluid reservoir system 2208 configured to hold any fluids (e.g., gases or liquids) that may be used by the bioassay system, a temperature control system 2210 that may regulate the temperature of the fluids in the fluidic network, fluid reservoir system 2208, and / or biosensor 2202, and an illumination system 2209 configured to illuminate biosensor 2202. As described above, when a cartridge having a biosensor 2202 is loaded into the system receptacle 2212, the cartridge may also include fluid control and fluid storage components.
[0327] As also shown, the base calling system 2200 may include a user interface 2214 for interacting with a user. For example, the user interface 2214 may include a display 2213 for displaying or requesting information from a user, and a user input device 2215 for receiving user input. In some implementations, the display 2213 and the user input device 2215 are the same device. For example, the user interface 2214 may include a touch-sensitive display configured to detect the presence of an individual touch and to identify the location of the touch on the display. However, other user input devices 2215, such as a mouse, touchpad, keyboard, keypad, handheld scanner, voice recognition system, motion recognition system, etc. may be used. As described in more detail below, the base calling system 2200 may communicate with various components, including a biosensor 2202 (e.g., in the form of a cartridge), to perform the desired reaction. The base calling system 2200 may also be configured to analyze data obtained from the biosensor to provide the desired information to the user.
[0328] The system controller 2204 may include any processor-based or microprocessor-based system, including systems using microcontrollers, reduced instruction set computers (RISC), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), logic circuits, and any other circuits or processors capable of performing the functions described herein. The above examples are merely exemplary and are therefore not intended to limit the definition and / or meaning of the term system controller. In an exemplary implementation, the system controller 2204 executes a set of instructions stored in one or more storage elements, memories, or modules for at least one of acquiring and analyzing detection data. The detection data may include multiple sequences of pixel signals, such that sequences of pixel signals from each of millions of sensors (or pixels) may be detected over many base calling cycles. The storage elements may be in the form of information sources or physical memory elements within the base calling system 2200.
[0329] The set of instructions may include various commands that instruct the base call system 2200 or the biosensor 2202 to perform certain operations, such as the methods and processes of various implementations described herein. The set of instructions may be in the form of a software program that may form a part of a tangible non-transitory computer readable medium or medium. As used herein, the terms "software" and "firmware" are interchangeable and include any computer program stored in memory that is executed by a computer, including RAM memory, ROM memory, EPROM memory, EEPROM memory, and non-volatile RAM (NVRAM) memory. The above memory types are merely exemplary and therefore are not limited to the types of memory that can be used to store a computer program.
[0330] The software may be in various forms, such as system software or application software. Furthermore, the software may be in the form of a collection of separate programs, or a program module or a portion of a program module within a larger program. The software may also include modular programming in the form of object-oriented programming. After obtaining the detection data, the detection data may be automatically processed by the base calling system 2200 processed in response to user input, or may be processed in response to a request made by another processing machine (e.g., a remote request via a communication link). In the illustrated implementation, the system controller 2204 includes an analysis module 2338 (shown in FIG. 23). In other implementations, the system controller 2204 does not include the analysis module 2338, but instead has access to the analysis module 2338 (e.g., the analysis module 2338 may be separately hosted on the cloud).
[0331] The system controller 2204 may be connected to the biosensor 2202 and other components of the base calling system 2200 via a communication link. The system controller 2204 may also be communicatively connected to an off-site system or server. The communication link may be a wire, a cord, or wireless. The system controller 2204 may receive user input or commands from a user interface 2214 and a user input device 2215.
[0332] The fluid control system 2206 includes a fluid network and is configured to direct and regulate the flow of one or more fluids through the fluid network. The fluid network may be in fluid communication with the biosensor 2202 and the fluid storage system 2208. For example, fluid may be selected from the fluid storage system 2208 and directed to the biosensor 2202 in a controlled manner, or fluid may be withdrawn from the biosensor 2202 and directed to a waste reservoir, for example, in the fluid storage system 2208. Although not shown, the fluid control system 2206 may include a flow sensor that detects the flow rate or pressure of the fluid in the fluid network. The sensor may be in communication with the system controller 2204.
[0333] The temperature control system 2210 is configured to regulate the temperature of fluids in different regions of the fluid network, the fluid reservoir system 2208, and / or the biosensor 2202. For example, the temperature control system 2210 may include a thermal cycler that interfaces with the biosensor 2202 and controls the temperature of the fluid flowing along a reaction site in the biosensor 2202. The temperature control system 2210 may also regulate the temperature of solid elements or components of the base calling system 2200 or the biosensor 2202. Although not shown, the temperature control system 2210 may include sensors for detecting the temperature of the fluids or other components. The sensors may be in communication with the system controller 2204.
[0334] The fluid storage system 2208 is in fluid communication with the biosensor 2202 and may store various reaction components or reactants used to carry out a desired reaction. The fluid storage system 2208 may also store fluids for washing or cleaning the fluidic network and the biosensor 2202 and for diluting reactants. For example, the fluid storage system 2208 may include various reservoirs for storing samples, reagents, enzymes, other biomolecules, buffers, aqueous, and non-polar solutions, and the like. Additionally, the fluid storage system 2208 may also include a waste reservoir for receiving waste from the biosensor 2202. In implementations that include a cartridge, the cartridge may include one or more of a fluid storage system, a fluid control system, or a temperature control system. Thus, one or more of the components described herein with respect to these systems may be housed within the cartridge housing. For example, the cartridge may have various reservoirs for storing samples, reagents, enzymes, other biomolecules, buffers, aqueous, and non-polar solutions, waste, and the like. Thus, one or more of the fluid reservoir system, fluid control system, or temperature control system may be removably engaged with the bioassay system via a cartridge or other biosensor.
[0335] The illumination system 2209 may include a light source (e.g., one or more LEDs) and multiple optical components for illuminating the biosensor. Examples of light sources include lasers, arc lamps, LEDs, or laser diodes. The optical components may be, for example, reflectors, polarizers, beam splitters, collimators, lenses, filters, wedges, prisms, mirrors, detectors, and the like. In implementations using an illumination system, the illumination system 2209 may be configured to direct excitation light to the reaction sites. As an example, a fluorophore may be excited by a wavelength of green light, so the wavelength of the excitation light may be about 532 nm. In one implementation, the illumination system 2209 is configured to generate illumination parallel to a surface normal of the surface of the biosensor 2202. In another implementation, the illumination system 2209 is configured to generate illumination that is off-angled to the surface normal of the surface of the biosensor 2202. In yet another implementation, the illumination system 2209 is configured to generate illumination having multiple angles, including some parallel illumination and some off-angle illumination.
[0336]
[0371] The system receptacle or interface 2212 is configured to engage the biosensor 2202 in at least one of mechanical, electrical, and fluidic ways. The system receptacle 2212 can hold the biosensor 2202 in a desired orientation to facilitate fluid flow through the biosensor 2202. The system receptacle 2212 can also include electrical contacts configured to engage the biosensor 2202 such that the base calling system 2200 can communicate with and / or power the biosensor 2202. Additionally, the system receptacle 2212 can include a fluid port (e.g., a nozzle) configured to engage the biosensor 2202. In some implementations, the biosensor 2202 is removably coupled to the system receptacle 2212 in a mechanical, electrical, and fluidic manner.
[0337] In addition, the base calling system 2200 may communicate remotely with other systems or networks, or with other bioassay systems 2200. Detection data obtained by the bioassay system(s) 2200 may be stored in a remote database.
[0338] FIG. 23 is a block diagram of a system controller 2204 that can be used in the system of FIG. 22. In one implementation, the system controller 2204 includes one or more processors or modules that can communicate with each other. Each of the processors or modules may include algorithms (e.g., instructions stored on a tangible and / or non-transitory computer-readable storage medium) or sub-algorithms for performing a particular process. The system controller 2204 is conceptually illustrated as a collection of modules, but may be implemented using any combination of dedicated hardware boards, DSPs, processors, etc. Alternatively, the system controller 2204 may be implemented using an off-the-shelf PC with a single processor or multiple processors, with functional operations distributed among the processors. As a further option, the modules described below may be implemented using a hybrid configuration in which certain modular functions are performed using dedicated hardware, while the remaining modular functions are performed using off-the-shelf PCs, etc. The modules may also be implemented as software modules within a processing unit.
[0339] In operation, the communication port 2320 may transmit information (e.g., commands) to the biosensor 2202 (FIG. 22) and / or the subsystems 2206, 2208, 2210 (FIG. 22). In implementations, the communication port 2320 may output multiple arrays of pixel signals. The communication port 2320 may receive user input from the user interface 2214 (FIG. 22) and transmit data or information to the user interface 2214. Data from the biosensor 2202 or subsystems 2206, 2208, 2210 may be processed in real-time by the system controller 2204 during a bioassay session. Additionally or alternatively, the data may be temporarily stored in system memory during a bioassay session and processed in slower than real-time or offline operation.
[0340] As shown in FIG. 23, the system controller 2204 may include multiple modules 2331-2339 in communication with a main control module 2330. The main control module 2330 may be in communication with a user interface 2214 (FIG. 22). Although the modules 2331-2339 are shown in direct communication with the main control module 2330, the modules 2331-2339 may also be in direct communication with each other, with the user interface 2214, and with the biosensor 2202. The modules 2331-2339 may also be in communication with the main control module 2330 via other modules.
[0341] The plurality of modules 2331-2339 include system modules 2331-2333, 2339 that communicate with the subsystems 2206, 2208, 2210, and 2209, respectively. The fluid control module 2331 may communicate with the fluid control system 2206 to control valves and flow sensors of the fluid network to control the flow of one or more fluids through the fluid network. The fluid storage module 2332 may notify a user when fluid is low or when a waste reservoir is at or near full capacity. The fluid storage module 2332 may also communicate with a temperature control module 2333 so that the fluid may be stored at a desired temperature. The illumination module 2339 may communicate with the illumination system 2209 to illuminate the reaction site at a specified time during a protocol, such as after a desired reaction (e.g., a binding event) has occurred. In some implementations, the illumination module 2339 may communicate with the illumination system 2209 to illuminate the reaction site at a specified angle.
[0342] The plurality of modules 2331-2339 may also include a device module 2334 that communicates with the biosensor 2202 and an identification module 2335 that determines identification information associated with the biosensor 2202. The device module 2334 may, for example, communicate with the system receptacle 2212 to verify that the biosensor has established electrical and fluidic connection with the base calling system 2200. The identification module 2335 may receive a signal that identifies the biosensor 2202. The identification module 2335 may use the identification information of the biosensor 2202 to provide other information to the user. For example, the identification module 2335 may determine and then display a lot number, date of manufacture, or a recommended protocol to operate with the biosensor 2202.
[0343] The plurality of modules 2331-2339 also includes an analysis module 2338 (also referred to as a signal processing module or signal processor) that receives and analyzes signal data (e.g., image data) from the biosensor 2202. The analysis module 2338 includes memory (e.g., RAM or flash) for storing the detection data. The detection data can include multiple sequences of pixel signals, such that sequences of pixel signals from each of millions of sensors (or pixels) can be detected over many base call cycles. The signal data can be stored for subsequent analysis or transmitted to the user interface 2214 to display desired information to a user. In some implementations, the signal data can be processed by a solid-state imager (e.g., a CMOS image sensor) before the analysis module 2338 receives the signal data.
[0344] Analysis module 2338 is configured to obtain image data from the photodetector in each of a plurality of sequencing cycles, the image data being derived from the luminescence signals detected by the photodetector, and process the image data for each of the plurality of sequencing cycles through a neural network (e.g., neural network based template generator 2348, neural network based base caller 2358 (see, e.g., Figures 7, 9, and 10), and / or neural network based quality scorer 2368) to generate base calls for at least some of the analytes in each of the plurality of sequencing cycles.
[0345] Protocol modules 2336 and 2337 communicate with main control module 2330 to control the operation of subsystems 2206, 2208, and 2210 in carrying out a predetermined assay protocol. Protocol modules 2336 and 2337 may include instruction sets for instructing base calling system 2200 to perform specific operations according to a predetermined protocol. As shown, the protocol module may be a Sequencing-By-Synthesis (SBS) module 2336 configured to issue various commands to carry out a sequencing-by-synthesis process. In SBS, the extension of a nucleic acid primer along a nucleic acid template is monitored to determine the sequence of nucleotides in the template. The underlying chemical process may be polymerization (e.g., catalyzed by a polymerase enzyme) or ligation (e.g., catalyzed by a ligase enzyme). In certain polymer-based SBS implementations, fluorescently labeled nucleotides are added to the primer (thereby extending the primer) in a template-dependent manner such that detection of the order and type of nucleotides added to the primer can be used to determine the sequence of the template. For example, to initiate a first SBS cycle, one or more labeled nucleotides, DNA polymerase, etc. can be delivered into / through a flow cell housing an array of nucleic acid templates. The nucleic acid templates may be located at corresponding reaction sites. These reaction sites can be detected where primer extension allows the incorporated labeled nucleotides to be detected through an imaging event. During the imaging event, an illumination system 2209 can provide excitation light to the reaction sites. Optionally, the nucleotides can further include a reversible termination property that terminates further primer extension once the nucleotide is added to the primer. For example, a nucleotide analog with a reversible terminator portion can be added to the primer such that no further extension can occur until a deblocking agent is delivered to remove the portion. Thus, in implementations using reversible termination, a command can be given to deliver a deblocking reagent to the flow cell (before or after detection occurs).One or more commands can be given to effect washing between various delivery steps. The cycle can then be repeated n times to extend the primer by n nucleotides, thereby detecting a sequence of length n. Exemplary sequencing techniques are described, for example, in Bentley et al., Nature 456:53-59 (2008), WO 04 / 018497, U.S. Patent No. 7,057,026, WO 91 / 06678, WO 07 / 123744, U.S. Patent No. 7,329,492, U.S. Patent No. 7,211,414, U.S. Patent No. 7,315,019, and U.S. Patent No. 7,405,281, each of which is incorporated herein by reference.
[0346] In the nucleotide delivery step of the SBS cycle, any one of a single type of nucleotide can be delivered at a time, or multiple different nucleotide types (e.g., A, C, T, and G together) can be delivered. In nucleotide delivery configurations where only a single type of nucleotide is present at a time, different nucleotides do not need to have separate labels because they can be distinguished based on the temporal separation inherent to the individualized delivery. Thus, the sequencing method or device can use a single color detection. For example, the excitation source only needs to provide excitation of a single wavelength or a single wavelength range. In nucleotide delivery configurations where delivery results in multiple different nucleotides being present in the flow cell at a given time, the sites incorporating different nucleotide types can be distinguished based on the different fluorescent labels attached to each nucleotide type in the mixture. For example, four different nucleotides can be used, each with one of four different fluorophores. In one implementation, the four different fluorophores can be distinguished using excitation in four different regions of the spectrum. For example, four different excitation radiation sources can be used. Alternatively, less than four different excitation sources can be used, but optical filtering of the excitation radiation from a single source can be used to generate a range of different excitation radiation in the flow cell.
[0347] In some implementations, less than four different colors can be detected in a mixture with four different nucleotides. For example, pairs of nucleotides can be detected at the same wavelength, but can be differentiated based on the difference in intensity for one member of the pair compared to the other, or based on a change to one member of the pair (e.g., via chemical modification, photochemical modification, or physical modification) that causes a distinct signal to appear or disappear compared to the signal detected for the other member of the pair. Exemplary devices and methods for differentiating four different nucleotides using detection of less than four colors are described, for example, in U.S. Patent Application Nos. 61 / 538,294 and 61 / 619,878, which are incorporated herein by reference in their entirety. U.S. Patent Application No. 13 / 624,200, filed September 21, 2012, is incorporated by reference in its entirety.
[0348] The multiple protocol modules may also include a sample preparation (or generation) module 2337 configured to issue commands to the fluidic control system 2206 and the temperature control system 2210 to amplify the product in the biosensor 2202. For example, the biosensor 2202 may be engaged to the base calling system 2200. The amplification module 2337 can issue instructions to the fluidic control system 2206 to deliver the necessary amplification components to a reaction chamber in the biosensor 2202. In other implementations, the reaction site may already contain some components for amplification, such as template DNA and / or primers. After delivering the amplification components to the reaction chamber, the amplification module 2337 can instruct the temperature control system 2210 to cycle through different temperature steps according to a known amplification protocol. In some implementations, the amplification and / or incorporation of nucleotides is performed isothermally.
[0349] The SBS module 2336 can issue commands to perform a bridge PCR in which a cluster of clonal amplicons is formed over a localized region within the channel of the flow cell. After generating the amplicons via bridge PCR, the amplicons may be "linearized" to create single-stranded template DNA, and sstDNA and sequencing primers may be hybridized to universal sequences flanking the region of interest. For example, a reversible terminator-based sequencing by synthesis method may be used as described above or as follows.
[0350] Each base calling or sequencing cycle can extend the sstDNA by a single base, which can be accomplished, for example, by using a modified DNA polymerase and a mixture of four types of nucleotides. The different types of nucleotides can have unique fluorescent labels, and each nucleotide can further have a reversible terminator that allows only a single base incorporation to occur in each cycle. After the single base is added to the sstDNA, an excitation light can be incident on the reaction site and the fluorescent emission can be detected. After detection, the fluorescent label and the terminator can be chemically cleaved from the sstDNA. Another similar base calling or sequencing cycle can be as follows. In such a sequencing protocol, the SBS module 2336 can instruct the fluid control system 2206 to direct the flow of reagents and enzyme solutions through the biosensor 2202. Exemplary reversible terminator-based SBS methods that can be utilized with the devices and methods described herein are described in U.S. Patent Application Publication No. 2007 / 0166705 (A1), U.S. Patent Application Publication No. 2006 / 0188901 (A1), U.S. Patent No. 7,057,026, U.S. Patent Application Publication No. 2006 / 0240439 (A1), U.S. Patent Application Publication No. 2006 / 02814714709 (A1), WO 05 / 065814, WO 06 / 064199, each of which is incorporated herein by reference in its entirety. Exemplary reagents for reversible terminator-based SBS are described in U.S. Pat. No. 7,541,444, U.S. Pat. No. 7,057,026, U.S. Pat. No. 7,427,673, U.S. Pat. No. 7,566,537, and U.S. Pat. No. 7,592,435, each of which is incorporated herein by reference in its entirety.
[0351] In some implementations, the amplification and SBS modules may operate in a single assay protocol, for example, where template nucleic acid is amplified and subsequently sequenced within the same cartridge.
[0352] The base calling system 2200 may also allow a user to reconfigure the assay protocol. For example, the base calling system 2200 may provide the user with an option through the user interface 2214 to modify the determined protocol. For example, if it is determined that the biosensor 2202 is to be used for amplification, the base calling system 2200 may request the temperature of the annealing cycle.
[0353] Additionally, the base calling system 2200 may issue a warning to the user if the user provides user input that is not generally accepted for the selected assay protocol.
[0354] In an implementation, biosensor 2202 includes a million sensors (or pixels), each of which generates a sequence of pixel signals over successive base call cycles. Analysis module 2338 detects the sequences of pixel signals and attributes them to corresponding sensors (or pixels) according to the row-wise and / or column-wise positions of the sensors on the array of sensors.
[0355] Each sensor in the array of sensors can generate sensor data for a tile of a flow cell, where the tile is in an area on the flow cell where a cluster of genetic material is placed during a base calling operation. The sensor data can include image data in an array of pixels. For a given cycle, the sensor data can include two or more images, generating multiple features per pixel as tile data.
[0356] 24 is a simplified block diagram of a computer 2400 system that can be used to implement the disclosed techniques. The computer system 2400 includes at least one central processing unit (CPU) 2472 that communicates with a number of peripheral devices via a bus subsystem 2455. These peripheral devices can include, for example, a storage subsystem 2410 including memory devices and a file storage subsystem 2436, user interface input devices 2438, user interface output devices 2476, and a network interface subsystem 2474. The input and output devices enable user interaction with the computer system 2400. The network interface subsystem 2474 provides an interface to external networks, including interfaces to corresponding interface devices in other computer systems.
[0357] The user interface input devices 2438 can include pointing devices such as a keyboard, a mouse, a trackball, a touch pad, or a graphics tablet, a scanner, a touch screen integrated into a display, audio input devices such as a voice recognition system and a microphone, as well as other types of input devices. In general, use of the term "input device" is intended to include all possible types of devices and manners for inputting information into the computer system 2400.
[0358] The user interface output devices 2476 may include a display subsystem, a printer, a fax machine, or a non-visual display such as an audio output device. The display subsystem may include a flat panel device such as an LED display, a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), a projection device, or some other mechanism for creating a visible image. The display subsystem may also provide non-visual displays such as an audio output device. In general, use of the term "output device" is intended to include all possible types of devices and manners for outputting information from the computer system 2400 to a user or to another machine or computer system.
[0359] The storage subsystem 2410 stores programming and data constructs that provide the functionality of some or all of the modules and methods described herein. These software modules are generally executed by the deep learning processor 2478.
[0360] In one implementation, the neural network is implemented using a deep learning processor 2478, which may be a configurable and reconfigurable processor, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), and / or a coarse-grained reconfigurable architecture (CGRA) and a graphics processing unit (GPU) or other configured device. The deep learning processor 2478 may be hosted by a deep learning cloud platform such as Google Cloud Platform™, Xilinx™, and Cirrascale™. Examples of deep learning processors 14978 include Google's Tensor Processing Unit (TPU)™, rackmount solutions such as the GX4 Rackmount Series™, GX149 Rackmount Series™, NVIDIA DGX-1™, Microsoft's Stratix V FPGA™, Graphcore's Intelligent Processor Unit (IPU)™, Qualcomm's Zeroth Platform™ with Snapdragon processors™, NVIDIA's Volta™, NVIDIA's DRIVE PX™, NVIDIA's JETSON TX1 / TX2 MODULE™, Intel's Nirvana™, Movidius VPU™, Fujitsu's DPI™, ARM's DynamicIQ™, IBM's TrueNorth™, and others.
[0361] The memory subsystem 2422 used in the storage subsystem 2410 may include multiple memories including a main random access memory (RAM) 2434 for storing instructions and data during program execution, and a read only memory (ROM) 2432 in which fixed instructions are stored. The file storage subsystem 2436 may provide persistent storage for program and data files and may include a hard disk drive, a floppy disk with associated removable media, a CD-ROM drive, an optical drive, or a removable media cartridge. Modules that implement the functionality of a particular implementation may be stored by the file storage subsystem 2436 in the storage subsystem 2410 or in another machine accessible by the processor.
[0362] The bus subsystem 2455 provides a mechanism for allowing the various components and subsystems of the computer system 2400 to communicate with each other as intended. Although the bus subsystem 2455 is shown generally as a single bus, alternative implementations of the bus subsystem may use multiple buses.
[0363] The computer system 2400 itself can be of various types, including a personal computer, a portable computer, a workstation, a computer terminal, a network computer, a television, a mainframe, a server farm, a loosely distributed set of loosely networked computers, or any other data processing system or user device. Due to the ever-changing nature of computers and networks, the description of the computer system 2400 shown in Figure 23 is intended only as a specific example for purposes of illustrating a preferred implementation of the invention. Many other configurations of the computer system 2400 can have more or fewer components than the computer system shown in Figure 23.
[0364] Terms Term set 1 (generating the final classification from the classification information of two base classes) 1. A computer-implemented method for base calling using at least two base callers, comprising: performing at least a first base coder and a second base coder on the sensor data generated for the sensing cycles in the series of sensing cycles; generating first classification information associated with the sensor data based on performing a first base call on the sensor data with the first base call; generating second classification information associated with the sensor data based on performing a second base call on the sensor data with the second base call; 11. A computer-implemented method comprising: generating final classification information based on the first classification information and the second classification information, the final classification information comprising one or more base calls for the sensor data. 2. The method of claim 1, wherein at least one of the first base chorus and the second base chorus implements a non-linear function, and at least one other of the first base chorus and the second base chorus is at least partially linear. 3. The method of claim 1, wherein at least one of the first base collaborator and the second base collaborator implements a neural network model, and at least another of the first base collaborator and the second base collaborator does not include a neural network model. 4. the first classification information produced by the first base caller includes, for each base calling cycle, (i) a first plurality of scores, each score of the first plurality of scores indicating a probability that the called base is one of A, C, T, or G, and (ii) a first called base; Item 2. The method of item 1, wherein the second classification information generated by the second base caller includes, for each base calling cycle, (i) a second plurality of scores, each score of the second plurality of scores indicating a probability that the called base is one of A, C, T, or G, and (ii) a second called base. 5. 5. The method of claim 4, wherein the final classification information includes, for each base calling cycle, (i) a third plurality of scores, each score of the third plurality of scores indicating a probability that the called base is one of A, C, T, or G, and (ii) a final called base. 6. The method of claim 4, wherein at least one of the first base collaborator and the second base collaborator uses a softmax function to generate a corresponding plurality of scores. 7. The method of claim 1, wherein generating the final classification information includes generating the final classification information by selectively combining the first classification information and the second classification information based on contextual information associated with the sensor data. 8. The method of claim 7, wherein the context information associated with the sensor data includes temporal context information, spatial context information, sequence context information, and other context information. 9. The method of claim 7, wherein the context information associated with the sensor data includes temporal context information indicating one or more base call cycle numbers associated with the sensor data. 10. The method of claim 7, wherein the context information associated with the sensor data includes spatial context information indicating a location of one or more tiles within the flow cell generating the sensor data. 11. The method of claim 7, wherein the context information associated with the sensor data includes spatial context information indicating a location of one or more clusters within a tile of a flow cell generating the sensor data. 11A. The method of claim 11, wherein the spatial context information indicates whether one or more clusters within a tile of a flow cell generating the sensor data are edge clusters or non-edge clusters. 11B. The method of claim 11A, wherein a cluster is classified as an edge cluster if the cluster is estimated to be located within a threshold distance from an edge of the tile. 11C. The method of claim 11A, wherein a cluster is classified as a non-edge cluster if the cluster is estimated to be located more than a threshold distance from any edge of the tile. 12. The method of claim 7, wherein the context information associated with the sensor data includes base sequence context information indicating base sequences that are called for the sensor data. 13. for a particular base being called, the first classification information includes a first score, a second score, a third score, and a fourth score indicating probabilities that the called base is A, C, T, and G, respectively; for a particular called base, the second classification information includes a fifth score, a sixth score, a seventh score, and an eighth score indicating the probability that the called base is A, C, T, and G, respectively; Producing final classification information Item 2. The method of item 1, comprising generating final classification information based on the first score, the second score, the third score, the fourth score, the fifth score, the sixth score, the seventh score, and the eighth score for the particular base being called. 14. the final score comprises a first final score that is a function of the first score and the fifth score, the first final score indicating the probability that the called base is A; the final score includes a second final score that is a function of the second score and the sixth score, the second final score indicating the probability that the called base is C; the final score includes a third final score that is a function of the third score and the seventh score, the third final score indicating the probability that the called base is T; 14. The method of claim 13, wherein the final score includes a fourth final score that is a function of the fourth score and the eighth score, the fourth final score indicating the probability that the called base is G. 15. the first final score is the average, normalized weighted average, minimum, or maximum of the first score and the fifth score; the second final score is the average, normalized weighted average, minimum, or maximum of the second score and the sixth score; the third final score is the average, normalized weighted average, minimum, or maximum of the third score and the seventh score; 15. The method of claim 14, wherein the fourth final score is the average, normalized weighted average, minimum or maximum of the fourth score and the eighth score. 16. for a particular base being called, the first classification information includes the first called base being one of A, C, T, and G and having a highest corresponding score among the first score, the second score, the third score, and the fourth score; Item 15. The method of item 14, wherein for a particular base being called, the second classification information includes the second called base having a corresponding score that is one of A, C, T, and G and is highest among the fifth score, the sixth score, the seventh score, and the eighth score. 17. for a particular base being called, the first classification information includes a first called base being one of A, C, T, and G; for a particular called base, the second classification information includes a second called base that is the same as the first called base, Producing final classification information Item 14. The method of item 1, comprising generating final classification information such that for a particular called base, the final classification information includes a final called base that matches the first called base and the second called base. 18. for a particular base being called, the first classification information includes a first called base being one of A, C, T, and G; for the particular base called, the second classification information includes a second called base that is another of A, C, T, and G, whereby the second called base does not match the first called base; Producing final classification information 2. The method of claim 1, comprising generating final classification information such that for a particular base called, the final classification information includes one of (i) the first called base, (ii) the second called base, or (iii) the final called base, marked as uncertain. 19. Item 2. The method of item 1, wherein at least one of the first classification information, the second classification information, or the final classification information indicates that the called base sequence has a particular base sequence pattern, and in response to an indication that the called base sequence has a particular base sequence pattern, generating the final classification information by placing a first weight on the first classification information and a second weight on the second classification information, the first weight and the second weight being different. 20. 20. The method according to claim 19, wherein the specific base sequence pattern comprises a homopolymer pattern or a near homopolymer pattern. 20a. 20. The method according to claim 19, wherein the specific base sequence pattern comprises a homopolymer pattern or a pattern having adjacent homopolymers. twenty one. 20. The method according to Item 19, wherein the specific base sequence pattern includes a plurality of bases, and at least the first and last bases are G. 21a. 20. The method according to Item 19, wherein the specific base sequence pattern comprises at least 5 bases, and at least the first and last bases are G. twenty two. 20. The method according to claim 19, wherein the specific base sequence pattern comprises a plurality of bases, and the majority of the plurality of bases in the specific base sequence pattern are G. 22a. 20. The method according to claim 19, wherein the specific base sequence pattern comprises at least five bases, and at least three bases of the specific base sequence pattern are G. 22A. 20. The method according to claim 19, wherein the specific base sequence pattern comprises any one of GGXGG, GXGGG, GGGXG, GXXGG, and GGXXG, and X is any one of A, C, T, or G. 22B. 20. The method of claim 19, wherein the particular base sequence pattern comprises a plurality of bases, and at least the first and last bases are each associated with an inactive base call. 22B1. 20. The method of claim 19, wherein the specific base sequence pattern comprises at least five bases, and at least the first and last bases are each associated with an inactive base call. 22C. 20. The method according to claim 19, wherein the specific base sequence pattern comprises a plurality of bases, and the base calls of at least the first and last bases are associated with a dark cycle. 22D. 20. The method of claim 19, wherein the specific base sequence pattern comprises a plurality of bases, and at least a majority of the bases in the specific base sequence pattern are each associated with an inactive base call. 22E. 20. The method of claim 19, wherein the specific base sequence pattern comprises a plurality of bases, and at least a majority of the bases of the specific base sequence pattern are each associated with a dark cycle. twenty three. 20. The method of claim 19, wherein the first weight is lower than the second weight, whereby the first classification information is weighted lower than the second classification information while generating the final classification information. twenty four. 24. The method of claim 23, wherein the first base call implements a neural network model and the second base call does not include a neural network model. twenty five. 20. The method of claim 19, wherein the first weight is greater than 90% and the second weight is less than 10%. 26. the sensor data includes (i) first sensor data for a first one or more sensing cycles; and (ii) second sensor data for a second one or more sensing cycles occurring subsequent to the first one or more sensing cycles; The final classification information is (i) first final classification information for the first one or more sensing cycles generated by (a) placing a first weight on first classification information associated with the first one or more sensing cycles; and (b) placing a second weight on second classification information associated with the first one or more sensing cycles; (i) second final classification information for the second one or more sensing cycles generated by: (a) placing a third weight on the first classification information associated with the second one or more sensing cycles; and (b) placing a fourth weight on the second classification information associated with the second one or more sensing cycles; The method of claim 1, wherein the first, second, third, and fourth weights are different. 27. The first base code implements a neural network model, and the second base code does not include a neural network model. the first weight is lower than the second weight, whereby, for the first one or more sensing cycles, the second classification information from the second base caller is emphasized over the first classification information from the first base caller; 27. The method of claim 26, wherein the third weight is higher than the fourth weight, thereby emphasizing the first classification information from the first base caller over the second classification information from the second base caller for the second one or more sensing cycles. 28. The sensor data includes: (i) first sensor data from a first one or more clusters of tiles of the flow cell; (ii) second sensor data from a second one or more clusters of tiles of the flow cell, and the final classification information comprises: (i) first final classification information for the first sensor data from a first one or more clusters, the first final classification information being generated by (a) placing a first weight on the first classification information from the first one or more clusters, and (b) placing a second weight on the second classification information from the first one or more clusters; and (i) second final classification information for the second sensor data from the second one or more clusters, the second final classification information being generated by (a) placing a third weight on the first classification information from the second one or more clusters, and (b) placing a fourth weight on the second classification information from the second one or more clusters; The method of claim 1, wherein the first, second, third, and fourth weights are different. 29. the first one or more clusters are edge clusters located within a threshold distance from one or more edges of a tile of the flow cell; 29. The method of claim 28, wherein the second one or more clusters are non-edge clusters located more than a threshold distance from one or more edges of the tile of the flow cell. 30. The first base code implements a neural network model, and the second base code does not include a neural network model. 30. The method of claim 29, wherein the first weight is higher than the second weight, thereby emphasizing, for the first one or more edge clusters, first classification information from the first base colleague over second classification information from the second base colleague. 31. 31. The method of claim 30, wherein the third weight is less than or equal to the fourth weight, such that for the second one or more non-edge clusters, the first classification information from the first base collaborator is emphasized less than or equal to the second classification information from the second base collaborator. 32. detecting the presence of one or more air bubbles in at least one cluster of tiles of the flow cell from the sensor data; Producing final classification information Item 1. The method of item 1, comprising generating final classification information by placing a first weight on the first classification information and a second weight on the second classification information in response to detecting one or more bubbles, the first weight and the second weight being different. 33. The first base code implements a neural network model, and the second base code does not include a neural network model. Item 33. The method of item 32, wherein the first weight is higher than the second weight, whereby in response to detection of one or more bubbles, the first classification information from the first base cola is emphasized over the second classification information from the second base cola. 34. The sensor data includes at least one image, and the method comprises: detecting that at least one image is an out-of-focus image; Producing final classification information Item 1. The method of item 1, comprising generating final classification information by placing a first weight on the first classification information and a second weight on the second classification information in response to detecting an out-of-focus image, the first weight and the second weight being different. 35. The first base code implements a neural network model, and the second base code does not include a neural network model. 33. The method of claim 32, wherein the first weight is higher than the second weight, whereby in response to detecting an out-of-focus image, first classification information from the first base chore is emphasized over second classification information from the second base chore. 36. The sensor data is associated with a plurality of sequencing cycles; The first classification information includes a first called base sequence corresponding to a plurality of sequencing cycles, and the second classification information includes a second called base sequence corresponding to a plurality of sequencing cycles; The first called base sequence and the second called base sequence do not match, and at least one of the first and second called base sequences has a specific base sequence pattern; The first base code implements a neural network model, and the second base code does not include a neural network model. Producing final classification information Item 1. The method of item 1, comprising generating final classification information in response to (i) at least one of the first or second called base sequences having a particular base sequence pattern, and (ii) a second base caller that does not include a neural network model, such that a final called base sequence of the final classification information matches the second called base sequence and does not match the first called base sequence. 37. Item 37. The method according to Item 36, wherein the specific base sequence pattern comprises a homopolymer pattern or a near homopolymer pattern. 38. Item 37. The method according to Item 36, wherein the specific base sequence pattern includes a plurality of bases, and at least the first and last bases are G. 39. Item 37. The method according to Item 36, wherein the specific base sequence pattern comprises a plurality of bases, and at least a majority of the bases in the specific base sequence pattern are G. 39a. Item 37. The method according to Item 36, wherein the specific base sequence pattern comprises at least five bases, and at least three bases of the specific base sequence pattern are G. 39A. 37. The method of claim 36, wherein the particular base sequence pattern comprises a plurality of bases, and at least the first and last bases are each associated with an inactive base call. 39B. Item 37. The method according to Item 36, wherein the specific base sequence pattern comprises a plurality of bases, and the base calls of at least the first and last bases are associated with a dark cycle. 39C. 37. The method of claim 36, wherein the specific base sequence pattern comprises a plurality of bases, and at least a majority of the bases in the specific base sequence pattern are each associated with an inactive base call. 39D. Item 37. The method of item 36, wherein the specific base sequence pattern comprises a plurality of bases, and at least a majority of the bases in the specific base sequence pattern are each associated with a dark cycle. 40. Generating final classification information includes receiving, by a machine learning model, first classification information associated with the sensor data from a first base caller; receiving, by the machine learning model, second classification information associated with the sensor data from a second base caller; Item 2. The method of item 1, further comprising: generating final classification information based on the first classification information and the second classification information by a machine learning model. 40a. The method of claim 40, wherein the machine learning model is one of a logistic regression model, a gradient boosted tree model, a random forest model, a naive Bayes model, or a neural network model. 40b. Generating final classification information includes receiving, from a first base caller, first classification information associated with the sensor data by a neural network model; receiving, by the neural network model, second classification information associated with the sensor data from a second base caller; and generating final classification information based on the first classification information and the second classification information by a neural network model. 41. A computer-implemented method comprising: generating sensor data for a sensing cycle in a series of sensing cycles; executing at least a first base coder and a second base coder on at least a corresponding portion of the sensor data, and selectively switching between execution of the first and second base coders based on context information associated with the sensor data, where the first base coder and the second base coder are different; generating first and second classification information using the first and second base collaborators, respectively; generating base calls based on one or both of the first classification information and the second classification information. 42. A non-transitory computer-readable storage medium having stored thereon computer program instructions for progressively training a base caller, the instructions, when executed on a processor, performing: performing at least a first base coder and a second base coder on the sensor data generated for the sensing cycles in the series of sensing cycles; generating first classification information associated with the sensor data based on performing a first base call on the sensor data with the first base call; generating second classification information associated with the sensor data based on performing a second base call on the sensor data with the second base call; A non-transitory computer-readable storage medium implementing a method, comprising: generating final classification information based on the first classification information and the second classification information, the final classification information comprising one or more base calls for the sensor data. 43. The non-transitory computer-readable storage medium of claim 42, wherein at least one of the first base chord and the second base chord implements a non-linear function, and at least one other of the first base chord and the second base chord is at least partially linear. 44. The non-transitory computer-readable storage medium of claim 42, wherein at least one of the first base code and the second base code implements a neural network model, and at least another of the first base code and the second base code does not include a neural network model. 45. the first classification information produced by the first base caller includes, for each base calling cycle, (i) a first plurality of scores, each score of the first plurality of scores indicating a probability that the called base is one of A, C, T, or G, and (ii) a first called base; 43. The non-transitory computer-readable storage medium of claim 42, wherein the second classification information generated by the second base caller includes, for each base calling cycle, (i) a second plurality of scores, each score of the second plurality of scores indicating a probability that the called base is one of A, C, T, or G, and (ii) a second called base. 46. 46. The non-transitory computer-readable storage medium of claim 45, wherein the final classification information includes, for each base calling cycle, (i) a third plurality of scores, each score of the third plurality of scores indicating a probability that the called base is one of A, C, T, or G, and (ii) a final called base. 47. The non-transitory computer-readable storage medium of claim 45, wherein at least one of the first base colleague and the second base colleague uses a softmax function to generate a corresponding plurality of scores. 48. Producing final classification information is 43. The non-transitory computer-readable storage medium of claim 42, further comprising generating final classification information by selectively combining the first classification information and the second classification information based on contextual information associated with the sensor data. 49. The non-transitory computer-readable storage medium of claim 48, wherein the context information associated with the sensor data includes temporal context information, spatial context information, base sequence context information, and other context information. 50. The non-transitory computer-readable storage medium of claim 48, wherein the contextual information associated with the sensor data includes temporal contextual information indicating one or more base call cycle numbers associated with the sensor data. 51. The non-transitory computer-readable storage medium of claim 48, wherein the context information associated with the sensor data includes spatial context information indicating a position of one or more tiles within the flow cell generating the sensor data. 52. The non-transitory computer-readable storage medium of claim 48, wherein the contextual information associated with the sensor data includes spatial contextual information indicating a location of one or more clusters within a tile of a flow cell generating the sensor data. 52A. The non-transitory computer-readable storage medium of claim 52, wherein the spatial context information indicates whether one or more clusters within a tile of a flow cell generating the sensor data are edge clusters or non-edge clusters. 52B. The non-transitory computer-readable storage medium of claim 52A, wherein a cluster is classified as an edge cluster if the cluster is estimated to be located within a threshold distance from an edge of the tile. 52C. The non-transitory computer-readable storage medium of claim 52A, wherein a cluster is classified as a non-edge cluster if the cluster is estimated to be located more than a threshold distance from any edge of the tile. 53. The non-transitory computer-readable storage medium of claim 48, wherein the context information associated with the sensor data includes base sequence context information indicating base sequences that are called for the sensor data. 54. for a particular base being called, the first classification information includes a first score, a second score, a third score, and a fourth score indicating probabilities that the called base is A, C, T, and G, respectively; for a particular called base, the second classification information includes a fifth score, a sixth score, a seventh score, and an eighth score indicating the probability that the called base is A, C, T, and G, respectively; Producing final classification information 43. The non-transitory computer-readable storage medium of claim 42, further comprising generating final classification information based on the first score, the second score, the third score, the fourth score, the fifth score, the sixth score, the seventh score, and the eighth score for the particular base being called. 55. the final score comprises a first final score that is a function of the first score and the fifth score, the first final score indicating the probability that the called base is A; the final score includes a second final score that is a function of the second score and the sixth score, the second final score indicating the probability that the called base is C; the final score includes a third final score that is a function of the third score and the seventh score, the third final score indicating the probability that the called base is T; 55. The non-transitory computer-readable storage medium of claim 54, wherein the final score includes a fourth final score that is a function of the fourth score and the eighth score, the fourth final score indicating the probability that the called base is G. 56. the first final score is the average, normalized weighted average, minimum, or maximum of the first score and the fifth score; the second final score is the average, normalized weighted average, minimum, or maximum of the second score and the sixth score; the third final score is the average, normalized weighted average, minimum, or maximum of the third score and the seventh score; 56. The non-transitory computer-readable storage medium of claim 55, wherein the fourth final score is the average, normalized weighted average, minimum or maximum of the fourth score and the eighth score. 57. for a particular base being called, the first classification information includes the first called base being one of A, C, T, and G and having a highest corresponding score among the first score, the second score, the third score, and the fourth score; 56. The non-transitory computer-readable storage medium of claim 55, wherein for a particular base being called, the second classification information includes the second called base having a corresponding score that is one of A, C, T, and G and is the highest among the fifth score, the sixth score, the seventh score, and the eighth score. 58. for a particular base being called, the first classification information includes a first called base being one of A, C, T, and G; for a particular called base, the second classification information includes a second called base that is the same as the first called base, Producing final classification information 43. The non-transitory computer-readable storage medium of claim 42, further comprising generating final classification information such that for a particular called base, the final classification information includes a final called base that matches the first called base and the second called base. 59. for a particular base being called, the first classification information includes a first called base being one of A, C, T, and G; for the particular base called, the second classification information includes a second called base that is another of A, C, T, and G, whereby the second called base does not match the first called base; Producing final classification information 43. The non-transitory computer-readable storage medium of claim 42, comprising generating final classification information such that for a particular base called, the final classification information includes one of (i) the first called base, (ii) the second called base, or (iii) a final called base that is marked as uncertain. 60. 43. The non-transitory computer-readable storage medium of claim 42, wherein at least one of the first classification information, the second classification information, or the final classification information indicates that the called base sequence has a particular base sequence pattern, and in response to an indication that the called base sequence has a particular base sequence pattern, generating the final classification information by placing a first weight on the first classification information and a second weight on the second classification information, the first weight and the second weight being different. 61. Item 61. The non-transitory computer-readable storage medium of Item 60, wherein the specific base sequence pattern comprises a homopolymer pattern or a near homopolymer pattern. 62. Item 61. The non-transitory computer-readable storage medium of Item 60, wherein the specific base sequence pattern includes a plurality of bases, and at least the first and last bases are G. 63. Item 61. The non-transitory computer-readable storage medium of Item 60, wherein the specific base sequence pattern includes a plurality of bases, and the majority of the bases in the specific base sequence pattern are G. 63A. Item 61. The non-transitory computer-readable storage medium of Item 60, wherein the specific base sequence pattern includes any of GGXGG, GXGGG, GGGXG, GXXGG, and GGXXG, where X is any of A, C, T, or G. 63B. 61. The non-transitory computer-readable storage medium of claim 60, wherein the particular base sequence pattern comprises a plurality of bases, and at least the first and last bases are each associated with an inactive base call. 63C. Item 61. The non-transitory computer-readable storage medium of Item 60, wherein the specific base sequence pattern includes a plurality of bases, and the base call of at least the first base and the last base is associated with a dark cycle. 63D. Item 61. The non-transitory computer-readable storage medium of Item 60, wherein the specific base sequence pattern comprises a plurality of bases, and a majority of the bases in the specific base sequence pattern are associated with inactive base calls. 63E. Item 61. The non-transitory computer-readable storage medium of Item 60, wherein the specific base sequence pattern includes at least five bases, and each of at least three bases of the specific base sequence pattern is associated with a dark cycle. 64. Item 61. The non-transitory computer-readable storage medium of item 60, wherein the first weight is lower than the second weight, thereby weighting the first classification information lower than the second classification information while generating the final classification information. 65. 65. The non-transitory computer-readable storage medium of claim 64, wherein the first base code implements a neural network model and the second base code does not include a neural network model. 66. Item 61. The non-transitory computer-readable storage medium of item 60, wherein the first weighting is greater than 90% and the second weighting is less than 10%. 67. the sensor data includes (i) first sensor data for a first one or more sensing cycles; and (ii) second sensor data for a second one or more sensing cycles occurring subsequent to the first one or more sensing cycles; The final classification information is (i) first final classification information for the first one or more sensing cycles generated by (a) placing a first weight on first classification information associated with the first one or more sensing cycles; and (b) placing a second weight on second classification information associated with the first one or more sensing cycles; (i) second final classification information for the second one or more sensing cycles generated by: (a) placing a third weight on the first classification information associated with the second one or more sensing cycles; and (b) placing a fourth weight on the second classification information associated with the second one or more sensing cycles; 43. The non-transitory computer-readable storage medium of claim 42, wherein the first, second, third, and fourth weights are different. 68. The first base code implements a neural network model, and the second base code does not include a neural network model. the first weight is lower than the second weight, whereby, for the first one or more sensing cycles, the second classification information from the second base caller is emphasized over the first classification information from the first base caller; Item 68. The non-transitory computer-readable storage medium of item 67, wherein the third weight is higher than the fourth weight, thereby emphasizing the first classification information from the first base colleague over the second classification information from the second base colleague for the second one or more sensing cycles. 69. The sensor data includes: (i) first sensor data from a first one or more clusters of tiles of the flow cell; (ii) second sensor data from a second one or more clusters of tiles of the flow cell, and the final classification information comprises: (i) first final classification information for the first sensor data from a first one or more clusters, the first final classification information being generated by (a) placing a first weight on the first classification information from the first one or more clusters, and (b) placing a second weight on the second classification information from the first one or more clusters; and (i) second final classification information for the second sensor data from the second one or more clusters, the second final classification information being generated by (a) placing a third weight on the first classification information from the second one or more clusters, and (b) placing a fourth weight on the second classification information from the second one or more clusters; 43. The non-transitory computer-readable storage medium of claim 42, wherein the first, second, third, and fourth weights are different.
[0365] 70. the first one or more clusters are edge clusters located within a threshold distance from one or more edges of a tile of the flow cell; 70. The non-transitory computer-readable storage medium of claim 69, wherein the second one or more clusters are non-edge clusters located more than a threshold distance from one or more edges of the tile of the flow cell.
[0366] 71. The first base code implements a neural network model, and the second base code does not include a neural network model. 71. The non-transitory computer-readable storage medium of claim 70, wherein the first weight is higher than the second weight, thereby emphasizing, for the first one or more edge clusters, first classification information from the first base collaborator over second classification information from the second base collaborator.
[0367] 72. 72. The non-transitory computer-readable storage medium of claim 71, wherein the third weight is less than or equal to the fourth weight, whereby, for the second one or more non-edge clusters, the first classification information from the first base collaborator is emphasized less than or equal to the second classification information from the second base collaborator.
[0368] 73. Further comprising detecting the presence of one or more air bubbles in at least one cluster of tiles of the flow cell from the sensor data; Producing final classification information 43. The non-transitory computer-readable storage medium of claim 42, comprising generating final classification information by placing a first weight on the first classification information and a second weight on the second classification information in response to detecting one or more bubbles, the first weight and the second weight being different.
[0369] 74. The first base code implements a neural network model, and the second base code does not include a neural network model. Item 74. The non-transitory computer-readable storage medium of item 73, wherein the first weight is higher than the second weight, whereby in response to detection of one or more air bubbles, the first classification information from the first base cola is emphasized over the second classification information from the second base cola.
[0370] 75. The sensor data includes at least one image, and the method comprises: detecting that at least one image is an out-of-focus image; Producing final classification information 74. The non-transitory computer-readable storage medium of claim 73, comprising generating final classification information by placing a first weight on the first classification information and a second weight on the second classification information in response to detecting an out-of-focus image, the first weight and the second weight being different.
[0371] 76. The first base code implements a neural network model, and the second base code does not include a neural network model. 74. The non-transitory computer-readable storage medium of claim 73, wherein the first weight is higher than the second weight, whereby in response to detecting an out-of-focus image, the first classification information from the first base colleague is emphasized more than the second classification information from the second base colleague.
[0372] 77. The sensor data is associated with a plurality of sequencing cycles; The first classification information includes a first called base sequence corresponding to a plurality of sequencing cycles, and the second classification information includes a second called base sequence corresponding to a plurality of sequencing cycles; The first called base sequence and the second called base sequence do not match, and at least one of the first and second called base sequences has a specific base sequence pattern; The first base code implements a neural network model, and the second base code does not include a neural network model. Producing final classification information 43. The non-transitory computer-readable storage medium of claim 42, comprising generating final classification information in response to (i) at least one of the first or second called base sequences having a particular base sequence pattern, and (ii) a second base caller that does not include a neural network model, such that a final called base sequence of the final classification information matches the second called base sequence and does not match the first called base sequence. 78. 78. The non-transitory computer-readable storage medium of claim 77, wherein the specific base sequence pattern comprises a homopolymer pattern or a near homopolymer pattern. 79. 78. The non-transitory computer-readable storage medium of claim 77, wherein the specific base sequence pattern includes a plurality of bases, and at least the first and last bases are G. 80. 78. The non-transitory computer-readable storage medium of claim 77, wherein the specific base sequence pattern comprises a plurality of bases, and a majority of the bases in the specific base sequence pattern are G. 80A. 78. The non-transitory computer-readable storage medium of claim 77, wherein the particular base sequence pattern comprises a plurality of bases, and at least the first and last bases are each associated with an inactive base call. 80B. 78. The non-transitory computer-readable storage medium of claim 77, wherein the particular base sequence pattern comprises a plurality of bases, and the base call of at least the first base and the last base is associated with a dark cycle. 80C. 78. The non-transitory computer-readable storage medium of claim 77, wherein the specific base sequence pattern comprises a plurality of bases, and a majority of the plurality of bases of the specific base sequence pattern are associated with an inactive base call. 80D. Item 61. The non-transitory computer-readable storage medium of Item 60, wherein the specific base sequence pattern includes at least five bases, and each of at least three bases of the specific base sequence pattern is associated with a dark cycle. 81. Producing final classification information is receiving, from a first base caller, first classification information associated with the sensor data by the neural network model; receiving, by the neural network model, second classification information associated with the sensor data from a second base caller; and generating final classification information based on the first classification information and the second classification information by a neural network model.
[0373] Term Set 2 (switch / selectively activate two base classes) 1. A computer-implemented method for base calling using at least two base callers, comprising: performing a first base coder on the sensor data generated for the sensing cycle in the series of sensing cycles; and generating first classification information associated with the sensor data based on performing the first base coder on the sensor data with the first base coder; determining that the first classification information is inadequate for generating final classification information for the sensor data; responsive to determining the inappropriateness of the first classification information, performing a second base call on the sensor data, the second base call being different from the first base call; generating second classification information associated with the sensor data based on performing a second base call on the sensor data with the second base call; 11. A computer-implemented method comprising: generating final classification information based on the first classification information and the second classification information, the final classification information comprising one or more base calls for the sensor data. 2. The first classification information includes a first called base sequence, and determining that the first classification information is inappropriate includes determining that the first called base sequence matches a specific base sequence pattern; Item 2. The method of item 1, comprising determining that the first classification information is inappropriate for generating final classification information based on the first called base sequence matching a specific base sequence pattern. 3. Item 3. The method according to Item 2, wherein the specific base sequence pattern comprises a homopolymer pattern or a near homopolymer pattern. 4. Item 3. The method according to Item 2, wherein the specific base sequence pattern includes a plurality of bases, at least the first and last bases of which are G. 4A. Item 3. The method according to Item 2, wherein the specific base sequence pattern contains at least five bases, and at least the first and last bases are G. 5. Item 3. The method according to Item 2, wherein the specific base sequence pattern comprises a plurality of bases, at least three of which are G. 5A. Item 3. The method according to Item 2, wherein the specific base sequence pattern contains at least five bases, and at least three bases of the specific base sequence pattern are G. 6. Item 3. The method according to Item 2, wherein the specific base sequence pattern includes any one of GGXGG, GXGGG, GGGXG, GXXGG, and GGXXG, and X is any one of A, C, T, or G. 6A. Item 3. The method according to item 2, wherein the particular base sequence pattern comprises a plurality of bases, and at least the first and last bases are each associated with an inactive base call. 6B. Item 3. The method according to item 2, wherein the specific base sequence pattern includes a plurality of bases, and the base calls of at least the first and last bases are associated with the dark cycle. 6C. Item 3. The method according to item 2, wherein the specific base sequence pattern comprises at least five bases, and each of at least three bases of the specific base sequence pattern is associated with an inactive base call. 6D. Item 3. The method according to item 2, wherein the specific base sequence pattern comprises at least five bases, and each of at least three bases of the specific base sequence pattern is associated with a dark cycle. 7. The method of claim 2, wherein generating the final classification information includes generating the final classification information by placing a first weight on the first classification information and a second weight on the second classification information in response to the first called base sequence matching a particular base sequence pattern, the first weight and the second weight being different. 8. The first base code implements a neural network model, and the second base code does not include a neural network model. Item 8. The method of item 7, wherein the first weight is lower than the second weight, whereby the first classification information is weighted lower than the second classification information while generating the final classification information. 9. The first base code implements a neural network model, and the second base code does not include a neural network model. the second classification information comprises a second called sequence; The first called sequence does not match the second called sequence; Item 3. The method of item 2, wherein in response to (i) the first called base sequence matching a particular base sequence pattern and (ii) the second base call not including a neural network model, a final called base sequence of the final classification information matching the second called base sequence and not matching the first called base sequence is generated. 10. Determining that the first classification information is inappropriate Detecting the presence of an air bubble in the cluster from which the sensor data was generated; Item 14. The method of item 1, further comprising: determining, based on the detection of an air bubble, that the first classification information is unsuitable for generating final classification information. 11. The second base code implements a neural network model, and the first base code does not include a neural network model and generates final classification information; Item 11. The method of item 10, comprising generating final classification information by placing a first weight on the first classification information and a second weight on the second classification information, the second weight being greater than the first weight. 12. the sensor data is current sensor data, the current sensor data is for sensing cycle N1 and one or more subsequent sensing cycles, N1 being a positive integer greater than 1; performing a second base call on the current sensor data; first performing a second base call on past sensor data associated with at least T sensing cycles occurring prior to sensing cycle N1 to estimate fading data associated with at least T sensing cycles; and subsequently performing a second base call on current sensor data associated with sensing cycle N1 and one or more subsequent sensing cycles using the estimated fading data. 13. The sensor data is first sensor data generated from a first one or more clusters of tiles of a flow cell, and the method comprises: generating second sensor data from a second...
Claims
1. 1. A computer-implemented method for base calling using at least two base callers, comprising: performing at least a first base coder and a second base coder on sensor data including images of tiles including non-overlapping regions of the flow cell for a sensing cycle in the series of sensing cycles; selectively switching between execution of the first and second base callers based on spatial context information associated with corresponding first and second portions of the sensor data, the spatial context information indicating a location of one or more of the tiles within the flow cell; generating first classification information associated with the first portion of the sensor data based on executing the first base caller on the first portion of the sensor data by the first base caller; generating second classification information associated with the second portion of the sensor data based on executing the second base caller on the second portion of the sensor data with the second base caller; generating final classification information based on the first classification information and the second classification information, wherein the final classification information comprises one or more base calls for the sensor data.
2. 2. The computer-implemented method of claim 1, wherein one of the first base chorus or the second base chorus implements a non-linear function and the other of the first base chorus or the second base chorus is at least partially linear.
3. 3. The computer-implemented method of claim 1, wherein one of the first base code or the second base code implements a neural network model, and the other of the first base code or the second base code does not include a neural network model.
4. the first classification information produced by the first base caller includes, for each base calling cycle, (i) a first plurality of scores, each score of the first plurality of scores indicating a probability that a respective called base is one of A, C, T, or G, and (ii) a first called base; 2. The computer-implemented method of claim 1, wherein the second classification information produced by the second base caller includes, for each base calling cycle: (i) a second plurality of scores, each score of the second plurality of scores indicating a probability that a respective called base is one of A, C, T, or G; and (ii) a second called base.
5. 5. The computer-implemented method of claim 4, wherein the final classification information comprises, for each base calling cycle: (i) a third plurality of scores, each score of the third plurality of scores indicating a probability that a respective called base is one of A, C, T, or G; and (ii) a final called base.
6. 6. The computer-implemented method of claim 5, wherein at least one of the first base chorus or the second base chorus uses a softmax function to generate corresponding scores.
7. generating the final classification information, 2. The computer-implemented method of claim 1, comprising generating the final classification information by selectively combining the first classification information and the second classification information based on contextual information associated with the sensor data.
8. 1. A system comprising: at least one processor; A non-transitory computer-readable storage medium having stored thereon computer program instructions, the computer program instructions, when executed on at least one processor, performing at least a first base coder and a second base coder on sensor data including images of tiles including non-overlapping regions of the flow cell for a sensing cycle in the series of sensing cycles; selectively switching between execution of the first and second base callers based on spatial context information associated with corresponding first and second portions of the sensor data, the spatial context information indicating a location of one or more of the tiles within the flow cell; generating first classification information associated with the first portion of the sensor data based on executing the first base caller on the first portion of the sensor data by the first base caller; generating second classification information associated with the second portion of the sensor data based on executing the second base caller on the second portion of the sensor data with the second base caller; generating final classification information based on the first classification information and the second classification information, the final classification information including one or more base calls for the sensor data.
9. The system of claim 8 , wherein the spatial context information indicates whether one or more of the tiles in the flow cell are edge tiles or non-edge tiles.
10. 10. The system of claim 8 or 9, wherein the spatial context information indicates the location of one or more clusters within at least one tile of the flow cell.
11. The system of claim 10 , wherein the spatial context information indicates whether the one or more clusters in the at least one tile of the flow cell are edge clusters or non-edge clusters.
12. The system of claim 11 , wherein a cluster is classified as an edge cluster if the cluster is estimated to be located within a threshold distance from an edge of the at least one tile.
13. The system of claim 11 , wherein a cluster is classified as a non-edge cluster if the cluster is estimated to be located more than a threshold distance from any edge of the at least one tile.
14. The system of claim 8 , wherein the additional context information associated with the sensor data includes sequence context information indicating a sequence called for the sensor data.
15. The method of claim 1, wherein for a particular called base, the first classification information includes a first called base that is one of A, C, T, and G; for the particular base called, the second classification information includes a second called base that is the same as the first called base; generating the final classification information, 10. The system of claim 8, further comprising generating the final classification information such that for the particular base called, the final classification information includes a final called base that matches the first called base and the second called base.
16. 1. A non-transitory computer-readable storage medium having stored thereon computer program instructions for progressively training a base caller, the computer program instructions, when executed on a processor, comprising: performing at least a first base coder and a second base coder on sensor data including images of tiles including non-overlapping regions of the flow cell for a sensing cycle in the series of sensing cycles; selectively switching between execution of the first and second base callers based on spatial context information associated with corresponding first and second portions of the sensor data, the spatial context information indicating a location of one or more of the tiles within the flow cell; generating first classification information associated with the first portion of the sensor data based on executing the first base caller on the first portion of the sensor data by the first base caller; generating second classification information associated with the second portion of the sensor data based on executing the second base caller on the second portion of the sensor data with the second base caller; generating final classification information based on the first classification information and the second classification information, the final classification information including one or more base calls for the sensor data.
17. for a particular base being called, the first classification information includes a first called base being one of A, C, T, and G; for the particular base called, the second classification information includes a second called base that is another of A, C, T, and G, whereby the second called base does not match the first called base; generating the final classification information, 17. The non-transitory computer-readable storage medium of claim 16, comprising generating the final classification information such that, for the particular base called, the final classification information includes a final called base where one of (i) the first called base, (ii) the second called base, or (iii) is marked as uncertain.
18. At least one of the first classification information, the second classification information, and the final classification information indicates a called base sequence having a specific base sequence pattern, 18. The non-transitory computer-readable storage medium of claim 16 or 17, wherein in response to indicating that the called base sequence has the specific base sequence pattern, generating the final classification information by placing a first weight on the first classification information and a second weight on the second classification information, wherein the first weight and the second weight are different.
19. the first portion of the sensor data includes (i) sensor data from a first one or more clusters of tiles of a flow cell, and the second portion of the sensor data includes (ii) sensor data from a second one or more clusters of the tiles of the flow cell; The final classification information is (i) first final classification information for the sensor data from the first one or more clusters; and (ii) second final classification information for the sensor data from the second one or more clusters.
20. The method of claim 20, wherein the first one or more clusters are edge clusters located within a threshold distance from one or more edges of the tiles of the flow cell; 20. The non-transitory computer-readable storage medium of claim 19, wherein the second one or more clusters are non-edge clusters located more than the threshold distance from the one or more edges of the tiles of the flow cell.