Tile location and / or cycle based weight set selection for base calling
The tile position and/or cycle-based weight set selection enhances the efficiency and performance of CNN inference in portable systems by optimizing data flow and resource utilization.
Patent Information
- Application Number
- JP2025132498
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-03-04
- Filing Date
- 2025-08-07
- Publication Date
- 2025-12-09
AI Technical Summary
Deploying deep convolutional neural networks (CNNs) in portable and embedded systems is challenging due to large data volumes, intensive computations, diverse algorithm structures, and frequent memory accesses, which affect the efficiency and performance of hardware accelerators like GPUs and FPGAs.
Utilizing field programmable gate arrays (FPGAs) with customized digital circuits for CNN acceleration, optimizing data flow and hardware architecture to minimize data communication while maximizing resource utilization, and employing tile position and/or cycle-based weight set selection for base calling in neural networks.
Enhances the efficiency and performance of CNN inference in portable systems by optimizing data flow and resource utilization, leveraging FPGAs' reconfigurability and energy efficiency, and improving the accuracy of base calling processes.
Smart Images

Figure 2025179067000001_ABST
Abstract
Description
[Technical Field]
[0001] This application relates to tile position and / or cycle-based weight set selection for base calling. [Priority application] This application is a continuation of U.S. Provisional Patent Application No. 63 / 161,880 (Attorney Docket No. ILLM1019-1 / IP-1861-PRV), filed on March 16, 2021, entitled "Tile Location and / or Cycle Based Weight Set Selection for Base Calling," U.S. Provisional Patent Application No. 63 / 161,896 (Attorney Docket No. ILLM1019-2 / IP-2049-PRV), filed on March 16, 2021, entitled "Neural Network Parameter Quantization for Base Calling," U.S. Non-Provisional Patent Application No. 17 / 687,551 (Attorney Docket No. ILLM1019-3 / IP-1861-US), filed on March 4, 2022, entitled "Tile Location and / or Cycle Based Weight Set Selection for Base Calling," and U.S. Non-Provisional Patent Application No. 17 / 687,551 (Attorney Docket No. ILLM1019-3 / IP-1861-US), filed on March 4, 2022, entitled "Neural Network Parameter Quantization for Base Calling." This application claims the benefit of U.S. Nonprovisional Patent Application No. 17,687,583 (Attorney Docket No. ILLM1019-4 / IP-2049-US), entitled "Patent Calling," which is incorporated herein by reference for all purposes.
[0002] 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. Specifically, the disclosed technology relates to the use of deep neural networks, such as deep convolutional neural networks, to analyze data, and the use of weight sets. Built-in
[0003] The following are incorporated by reference as if fully set forth herein:
[0004] U.S. Provisional Patent Application No. 62 / 979,384, entitled "ARTIFICIAL INTELLIGENCE-BASED BASE CALLING OF INDEX SEQUENCES," filed February 20, 2020 (Attorney Docket No. ILLM1015-1 / IP-1857-PRV);
[0005] U.S. Provisional Patent Application No. 62 / 979,414, entitled "ARTIFICIAL INTELLIGENCE-BASED MANY-TO-MANY BASE CALLING," filed February 20, 2020 (Attorney Docket No. ILLM1016-1 / IP-1858-PRV);
[0006] U.S. Provisional Patent Application No. 62 / 979,385, entitled "KNOWLEDGE DISTILLATION-BASED COMPRESSION OF ARTIFICIAL INTELLIGENCE-BASED BASE CALLER," filed February 20, 2020 (Attorney Docket No. ILLM1017-1 / IP-1859-PRV);
[0007] U.S. Provisional Patent Application No. 63 / 072,032, entitled "DETECTING AND FILTERING CLUSTERS BASED ON ARTIFICIAL INTELLIGENCE-PREDICTED BASE CALLS," filed August 28, 2020 (Attorney Docket No. ILLM1018-1 / IP-1860-PRV);
[0008] U.S. Provisional Patent Application No. 62 / 979,411, entitled "DATA COMPRESSION FOR ARTIFICIAL INTELLIGENCE-BASED BASE CALLING," filed February 20, 2020 (Attorney Docket No. ILLM1029-1 / IP-1964-PRV);
[0009] U.S. Provisional Patent Application No. 62 / 979,399, entitled "SQUEEZING LAYER FOR ARTIFICIAL INTELLIGENCE-BASED BASE CALLING," filed February 20, 2020 (Attorney Docket No. ILLM1030-1 / IP-1982-PRV);
[0010] U.S. Nonprovisional 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);
[0011] U.S. Nonprovisional Patent Application No. 16 / 825,991, entitled "ARTIFICIAL INTELLIGENCE-BASED GENERATION OF SEQUENCING METADATA," filed March 20, 2020 (Attorney Docket No. ILLM1008-17 / IP-1741-US);
[0012] U.S. Nonprovisional Patent Application No. 16 / 826,126, entitled "ARTIFICIAL INTELLIGENCE-BASED BASE CALLING," filed March 20, 2020 (Attorney Docket No. ILLM1008-18 / IP-1744-US);
[0013] U.S. Nonprovisional Patent Application No. 16 / 826,134, entitled "ARTIFICIAL INTELLIGENCE-BASED QUALITY SCORING," filed March 20, 2020 (Attorney Docket No. ILLM1008-19 / IP-1747-US);
[0014] 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-US);
[0015] U.S. Nonprovisional 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); and
[0016] U.S. Nonprovisional Patent Application No. 17 / 176,147, entitled "HARDWARE EXECUTION AND ACCELERATION OF ARTIFICIAL INTELLIGENCE-BASED BASE CALLER," filed February 15, 2021 (Attorney Docket No. ILLM1020-2 / IP-1866-US). [Background technology]
[0017] 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 problems 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 themselves may also correspond to implementations of the claimed technology.
[0018] Rapid improvements in computing power have enabled deep convolutional neural networks (CNNs) to achieve great success in many computer vision tasks in recent years, with significantly improved accuracy. During the inference phase, 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. This creates opportunities for specific acceleration hardware, such as field programmable gate arrays (FPGAs), by customizing digital circuits to be particularly effective for inferencing deep learning algorithms. However, deploying CNNs in portable and embedded systems remains challenging due to large data volumes, intensive computations, diverse algorithm structures, and frequent memory accesses.
[0019] Because convolution provides most of the operations in CNNs, the convolution acceleration scheme significantly impacts the efficiency and performance of hardware CNN accelerators. Convolution involves a multiply-and-accumulate (MAC) operation with four levels of loops that slide along kernels and feature maps. The first loop level calculates the MAC for pixels within a kernel window. The second loop level accumulates the sum of MAC products across various different input feature maps. After completing the first and second loop levels, the final output pixel is obtained by adding a bias. The third loop level slides the kernel window within the input feature map. The fourth loop level generates various different output feature maps.
[0020] FPGAs, particularly for accelerating inference tasks, have attracted increasing interest and become more widely used. This is due to their (1) high reconfigurability, (2) superiority over application-specific integrated circuits (ASICs) in terms of the development time required to keep up with the rapid evolution of CNNs, (3) good performance, and (4) superior energy efficiency compared to GPUs. The high performance and efficiency of FPGAs can be achieved by synthesizing circuits customized for specific computations and directly processing billions of operations with a customized memory system. For example, hundreds to thousands of digital signal processing (DSP) blocks in modern FPGAs support core convolution operations, such as multiply-and-accumulate operations with high parallelism. Dedicated data buffers between external on-chip memory and the on-chip processing engine (PE) can be designed to achieve prioritized data flow by configuring tens of megabytes of on-chip block random access memory (BRAM) on the FPGA chip.
[0021] 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.
[0022] 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 implementations of the disclosed technology are described with reference to the following drawings: [Brief explanation of the drawings]
[0023] [Figure 1] 1 shows a cross-sectional view of a biosensor that can be used in various embodiments. [Figure 2] 1 shows an implementation of a flow cell that includes clusters within its tiles. [Figure 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. [Figure 5] FIG. 1 is a simplified diagram illustrating aspects of base calling operations, including the functionality 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 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 the organization of tiles of sensor data used by a neural network architecture such as that of FIG. 7. [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. 7. [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. 10 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 specialized 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 combination layers, each of which may include a convolution. [Figure 13B] 10 illustrates another implementation of combination layers, each of which may include convolutions. [Figure 14] 1 illustrates various exemplary tile position-based weight selection schemes used for base calling. [Figure 15] 1 illustrates various exemplary tile position-based weight selection schemes used for base calling. [Figure 16] 1 illustrates various exemplary tile position-based weight selection schemes used for base calling. [Figure 17A] 1 shows an example of fading, where signal intensity decreases as a function of cycle number, in a sequencing run of a base calling operation. [Figure 17B] 1 conceptually illustrates the decreasing signal-to-noise ratio as the sequencing progresses cycles. [Figure 18]1 shows an exemplary base call cycle number-based weight selection scheme used for base calling. [Figure 19] 1 shows various exemplary weight selection schemes based on (i) the time progression of base call cycle number and (ii) the spatial location of the tile. [Figure 20] 1 shows various exemplary weight selection schemes based on (i) the time progression of base call cycle number and (ii) the spatial location of the tile. [Figure 21A] 1 shows various exemplary weight selection schemes based on (i) the time progression of base call cycle number and (ii) the spatial location of the tile. [Figure 21B] 1 shows various exemplary weight selection schemes based on (i) the time progression of base call cycle number and (ii) the spatial location of the tile. [Figure 22] 10 illustrates one implementation of a base calling operation in which the weight set used for base calling is selected based on spatial tile information and temporal subseries sensing cycle information. [Figure 23A] Each weight set represents different weight sets for different tile categories and for different sensing cycles, including corresponding spatial weights and corresponding temporal weights. [Figure 23B] Different weight sets for a particular tile category indicate different weight sets for different tile categories and for different cycles, including common spatial weights and different temporal weights. [Figure 23C] 1 illustrates a system for selecting a weight set based on one or more sequencing run parameters. [Figure 24] FIG. 1 is a block diagram of a base calling system according to one implementation. [Figure 25] FIG. 25 is a block diagram of a system controller that can be used in the system of FIG. 24. [Figure 26] FIG. 1 is a simplified block diagram of a computer system that can be used to implement the disclosed techniques. DETAILED DESCRIPTION OF THE INVENTION
[0024] 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 their components, 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 coupled together in a substantially single structure.
[0025] 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 are 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, a hard disk, etc.). Similarly, a program may be a stand-alone program, may be incorporated as a subroutine within an operating system, may be a function within an installed software package, etc. It should be understood that the various embodiments are not limited to the arrangements and instrumentality shown in the figures.
[0026] 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 "comprising" or "having" or "including" an element or elements having a particular characteristic may include the additional elements, whether or not they have that characteristic.
[0027] As used herein, a "desired reaction" includes a change in at least one of the chemical, electrical, physical, or optical properties (or qualities) of an analyte of interest. In certain embodiments, the desired reaction is a positive binding event (e.g., the 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 ion concentration 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 one another; 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 pH of the surrounding solution or environment. An additional desired response can be the detection of ion flow across a membrane (e.g., a natural or synthetic bilayer membrane), e.g., when ions flow through the membrane, the current is disrupted and this disruption can be detected.
[0028] In certain embodiments, the desired reaction involves the 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 at the oligonucleotide bearing 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 increase fluorophore (or Förster) resonance energy transfer (FRET) by bringing a donor fluorophore into close proximity with an acceptor fluorophore, decrease FRET by separating the donor and acceptor fluorophores, increase fluorescence by separating a quencher from the fluorophore, or decrease fluorophore by colocalizing the quencher and fluorophore.
[0029] 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 a reaction site in solution and / or immobilized at the reaction site. A reaction component can interact directly or indirectly with another substance, such as an analyte of interest.
[0030] As used herein, the term "reaction site" refers to a localized region where a desired reaction can occur. A reaction site may include a support surface of a substrate onto which a substance can be immobilized. For example, a reaction site may include a substantially planar surface within a channel of a flow cell having colonies of nucleic acids thereon. Typically, but not always, the nucleic acids in the colonies have the same sequence, e.g., 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 unevenly along the support surface or 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.
[0031] This application uses the terms "reaction chamber" and "well" interchangeably. As used herein, the term "reaction chamber" or "well" includes a spatial region that is in fluid communication with a flow channel. A reaction chamber may be at least partially isolated from the surrounding environment or another spatial region. For example, multiple reaction chambers may be separated from one another by a shared wall. As a more specific example, a reaction chamber may include a cavity defined by the inner surface of a 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 PCT / US2011 / 057111, filed October 20, 2011, the entire contents of which are incorporated herein by reference.
[0032] 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 is 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 is sized and shaped to receive a number of beads or solid substrates. As another example, the reaction chamber may also be filled with a porous gel or material configured to control diffusion or filter fluids that may enter the reaction chamber.
[0033] In some embodiments, a sensor (e.g., a photodetector, photodiode) is associated with a corresponding pixel area on the sample surface of the biosensor. Thus, a pixel area is a geometric construct that represents the area on the sample surface of a 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, 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.
[0034] 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 specific 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 can 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.
[0035] 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.
[0036] 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 sequence. In other embodiments, a cluster can be any element or group of elements that occupy a physical region on the sample surface. In embodiments, the cluster is immobilized in a reaction site and / or reaction chamber during the base call cycle.
[0037] 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 the molecular level. For example, a biomolecule or biological substance or chemical may be immobilized on the surface of a substrate material using adsorption techniques, including non-covalent bonding (e.g., electrostatic forces, van der Waals, and hydrophobic interfacial dehydration), as well as covalent bonding techniques in which a functional group or linker facilitates attachment of the biomolecule to the surface. Immobilizing a 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 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, immobilizing 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.
[0038] 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. 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 methods described in more detail below. In some embodiments, a nucleic acid can be attached to a surface and amplified using one or more primer pairs. For example, one of the primers can be in solution, and the other primer can be immobilized (e.g., 5'-attached) on the surface. As an example, a nucleic acid molecule can 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 can 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 can 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.
[0039] 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). The 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.
[0040] In embodiments including a reaction chamber, an article or solid substance (including a semi-solid substance) may be placed within the reaction chamber. When placed, the article or solid may be physically held or immobilized within the reaction chamber via interference fit, adhesion, or confinement. Exemplary articles or solids that may be placed within the reaction chamber include polymer beads, pellets, agarose gel, powders, quantum dots, or other solids that can be compressed and / or held within the reaction chamber. In certain embodiments, nucleic acid superstructures such as DNA balls can be placed within or within the reaction chamber, for example, by attaching them to the inner surface of the reaction chamber or by dwelling in a liquid within the reaction chamber. DNA balls or other nucleic acid superstructures can be preformed and then placed within or within the reaction chamber. Alternatively, DNA balls can be synthesized in situ in the reaction chamber. DNA balls can be synthesized by rolling circle amplification to generate concatemers of specific nucleic acid sequences, and the concatemers can be treated under conditions that 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.
[0041] As used herein, "base calling" refers to identifying nucleotide bases 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. By way of example, base calling can be performed using the four-channel, two-channel, or one-channel methods and systems described in the incorporated materials of U.S. Patent Application Publication No. 2013 / 0079232. In certain embodiments, a base calling cycle is referred to as a "sampling event." In a one-dye, two-channel sequencing protocol, a sampling event includes two illumination steps in chronological order, such that a pixel signal is generated at each step. The first illumination step induces illumination from a given cluster representing nucleotide bases A and T in an AT pixel signal, and the second illumination step induces illumination from a given cluster representing nucleotide bases C and T in a CT pixel signal. Biosensors
[0042] 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 capable of retaining 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 directly fixed 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 reaction surface 134 that holds 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 particular sensor pixel area during a base call cycle (e.g., each with 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.
[0043] 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.
[0044] 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 comprise a material that is transparent to excitation light 101 propagating from outside the biosensor 100 into the flow channel 144. In one example, the excitation light 101 approaches the flow cover 136 at a non-orthogonal angle.
[0045] Also as 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 the cartridge or a workstation. The flow channel 144 is sized and shaped to direct fluid along the sample surface 134. The height H1 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.
[0046] 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 to the sidewalls 138, 125. Alternatively, the flow cell 102 may be etched to define the flow cover 136 and sidewalls 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.
[0047] 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. Furthermore, 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.
[0048] 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) onto which biomolecules or other analytes of interest can be immobilized. For example, each of the reaction sites can include a cluster of biomolecules immobilized on the sample surface 134. Thus, the passivation layer 126 can be formed from a material that allows the reaction sites to be immobilized thereon. The passivation layer 126 can also include a material that is at least transparent to the desired fluorescence. By way of example, the passivation layer 126 can include silicon nitride (SiN) and / or silica (SiO). However, other suitable materials can be used. In the illustrated embodiment, the passivation layer 126 can be substantially planar. However, in alternative embodiments, the passivation layer 126 can include recesses, such as pits, wells, or grooves. In the illustrated embodiment, the passivation layer 126 has a thickness of about 150-200 nm, more specifically about 170 nm.
[0049] The filter layer 124 may include various features that affect light transmission. 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 reaction sites toward corresponding sensors 106, 108, 110, 112, and 114 configured to detect the 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 approximately 1-5 μm, more specifically, approximately 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.
[0050] 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 silicon wafer, 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 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 fabrication process.
[0051] 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 an area of approximately 1-2 square micrometers (μm 2 ) The array can include 500,000 sensors, 5 million sensors, 10 million sensors, or even 120 million sensors. Sensors 106, 108, 110, 112, and 114 can be configured to detect predetermined wavelengths of light that exhibit a desired response.
[0052] 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 comprise 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 pixel signals (or detection signals) for communicating the detection data to a signal processor. The circuitry may also perform additional analog and / or digital signal processing within the sampling device 104. The sampling device 104 may include conductive vias 130 for signal routing (e.g., transmitting pixel signals to a signal processor). The pixel signals may also be transmitted through electrical contacts 132 of the sampling device 104.
[0053] The sampling device 104 is discussed in further 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 configuration or use 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.
[0054] Figure 2 shows one implementation of a flow cell 200 that includes clusters within its tiles. Flow cell 200 corresponds to flow cell 102 of Figure 1, e.g., without flow cover 136. Furthermore, the depiction of flow cell 200 is symbolic in nature, and 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 flow cell 200.
[0055] In one embodiment, flow cell 200 is divided or segmented 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.
[0056] 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.
[0057] In one example, each lane 202 includes one or more tile columns. For example, in Figure 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.
[0058] 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.
[0059] Figure 3 shows an exemplary Illumina GA-IIx™ flow cell with eight lanes, including a zoomed-in view of one tile and its clusters and their surrounding background. For example, there are 100 tiles per lane on the Illumina Genome Analyzer II and 68 tiles per lane in the Illumina HiSeq2000. Tile 212 holds hundreds of thousands to millions of clusters. In Figure 3, an image generated from a tile with clusters shown as bright spots is shown in 308 (e.g., 308 is a magnified image view of the tile), and exemplary cluster 304 is labeled. Cluster 304 contains approximately 1,000 identical copies of the template molecule, although the clusters vary in size and shape. Clusters are grown from template molecules by bridge amplification of the input library prior to sequencing runs. The purpose of amplification and cluster growth is to increase the intensity of the emitted signal, as imaging devices cannot reliably sense a single fluorophore. 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 .
[0060] Clusters and tiles are discussed in further detail with respect to 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).
[0061] FIG. 4 is a simplified block diagram of a system for analyzing sensor data, such as base call sensor output, from a sequencing system (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 a neural network-based base caller 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 call sensor (e.g., as discussed with respect to FIGS. 1-3) and a flow cell 401. The flow cell, as discussed with respect to FIGS. 1-3, can include one or more tiles in which clusters of genetic material are exposed to a sequence of analyte flow that is used to induce reactions within the clusters and identify bases in the genetic material. A sensor senses the reaction of each cycle of the sequence in each tile of the flow cell to provide tile data. An example of this technology 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 group of genetic material sensed during the base calling operation.
[0062] 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 sequences of arrays of tile data, base call reads generated by the base calling operation, and other information used in the base calling operation. In this illustration, the system also includes memory 404 that stores a configuration file (or files), e.g., FPGA bit files, and neural network model parameters 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.
[0063] Sequencing machine 400 is coupled to configurable processor 450 by bus 405. Bus 405 can be implemented using high-throughput technology, such as bus technology compatible with the PCIe (Peripheral Component Interconnect Express) standard currently maintained and developed by the PCI-SIG (Peripheral PCI Special Interest Group) standard. Also, in this embodiment, memory 460 is coupled to configurable processor 450 by bus 461. Memory 460 can be on-board memory located on a circuit board with configurable processor 450. Memory 460 is used for high-speed access by configurable processor 450 of working data used in base calling operations. Bus 461 can also be implemented using high-throughput technology, such as bus technology compatible with the PCIe standard.
[0064] 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 configurable elements on the processor.
[0065] 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, the operation of configurable logic blocks, and configurable execution units such as configurable interconnects and other elements of the configurable array. A configuration file is reconfigurable if it can be changed in the field by modifying a 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. Various 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.
[0066] The embodiments described herein use a configurable processor 450 to implement a multi-cycle neural network. The configuration file for the configurable processor can be implemented by specifying the logical functions to be performed using a high-level description language (HDL) or register transfer level (RTL) language specification. This specification can be compiled using resources designed by a selected configurable processor to generate the configuration file. The same or similar specifications can be compiled to generate the design of an application-specific integrated circuit, which may not be a configurable processor.
[0067] Thus, alternatives to the configurable processor in all 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.
[0068] 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.
[0069] Configurable processor 450 is configured, in this example, by a configuration file loaded using a program executed by CPU 402 or other source that configures an array of configurable elements on configurable processor 454 to perform base calling functions. In this example, the configuration includes data flow logic 451 coupled to buses 405 and 461 and that performs the function of distributing data and control parameters among elements used in base calling operations.
[0070] Configurable processor 450 is also configured with base call execution logic 452 to execute the multi-cycle neural network. Logic 452 includes a plurality 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 the available resources on the configurable processor.
[0071] 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 configurable interconnect and memory resources on a configurable processor, for example, 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.
[0072] The configurable processor is configured to perform a multi-cycle neural network operation using the trained parameters to generate classification data for sensing cycles of the base calling operation. The neural network operation is performed to generate classification data for subject sensing cycles of the 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 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 sequence as needed according to the particular neural network model being executed. The number N can be any number greater than 1. In some examples described herein, the sensing cycles of the N sensing cycles represent 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 include an integer number N of 5 or greater.
[0073] The data flow logic 451 is configured to use an input unit for a given operation that includes tile data for an array of N spatially aligned patches to move the tile data and at least some trained parameters of the model from memory 460 to a 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.
[0074] The tile data of the sensing cycles described herein can include an array of sensor data having one or more features. For example, the sensor data can include two images 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 sensors. For example, in a base calling embodiment, 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 the group of genetic material on the tile.
[0075] During execution of a multi-cycle neural network as described below, the tile data may also include data generated during execution of the multi-cycle neural network, called 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.
[0076] As shown, a system for analyzing 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 configurable processor 450, having access to the memory. The neural network processor is configured to perform neural network operations using trained parameters to generate classification data for the sensing cycles. As described herein, the neural network operations operate on an arrangement of N arrays of tile data from each sensing cycle of N sensing cycles comprising a subject cycle to generate classification data for the subject cycle. Data flow logic 451 is provided for moving 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 the N arrays of spatially aligned patches from each sensing cycle of the N sensing cycles.
[0077] Also described is a system in which the neural network processor has access to a memory and includes a plurality of execution clusters, and execution logic clusters in the plurality of execution clusters are configured to execute the neural network. The data flow logic accesses 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 each 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.
[0078] Figure 5 is a simplified diagram illustrating aspects of base calling operations, including runtime program functionality executed by a host processor. In this diagram, image sensor output from a flow cell (such as those shown in Figures 1 and 2) is provided on line 500 to image processing thread 501, which can perform processes on the image, such as resampling, aligning, and arranging 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 uses a metric derived from the softmax output to detect unreliable clusters in early sequencing cycles; data from those wells / clusters is then discarded, and no output data is generated for those clusters. For example, the process can identify clusters with high confidence during the first N1 (e.g., 25) base calls and reject other clusters. Rejected clusters may be polyclonal or very weakly intense or unclear according to criteria. This procedure can be executed by the host CPU. Alternative implementations could potentially use this information to identify the necessary clusters that should be returned to the CPU, thereby limiting the storage required for intermediate data.
[0079] 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, depending on the status of the base calling operation, to data cache 504 over high-speed bus 503 or to multi-cluster neural network processor hardware 520, such as the configurable processor of FIG. 4, over high-speed bus 505. Hardware 520 returns classification data output by the neural network to dispatch logic 510, which passes the information to data cache 504 or over line 511 to thread 502, which can use the classification data to perform base calling and quality score calculations and arrange 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 call reads, performs other operations such as data compression, and writes the resulting base call output to a specified destination for consumption by the customer.
[0080] 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 classification data output from the 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 scoring thread 502. The host processor may also perform input operations (not shown), such as resampling, batch normalization, or other adjustments to the tile data before inputting it to the hardware 520.
[0081] FIG. 6 is a simplified diagram of a configurable processor configuration, 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 dataflow logic described with reference to FIG. 1 . The wrapper 600 manages interfacing and coordination with a runtime program in the CPU via a CPU communication link 609 and manages communication with an onboard DRAM 602 (e.g., memory 460) via a DRAM communication link 610. The dataflow logic in the wrapper 600 provides patch data obtained by traversing an array of tile data on the onboard 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 onboard DRAM 602. The wrapper 600 also manages the transfer of data between the onboard DRAM 602 and host memory for both the input array of tile data and the output patch of classification data. The wrapper transfers the patch data to the assigned cluster 601 on line 613. 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 by or generated in response to a runtime program on the host on line 611 via CPU communication link 609. The cluster can also provide wrapper 600 with state signals on line 616 that are used in conjunction with control signals from the host to manage the traversal of the array of tile data to provide spatially aligned patch data and to run a multi-cycle neural network on the patch data using the resources of cluster 601.
[0082] As described above, multiple clusters may reside 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 described herein.
[0083] In an example system, model data, including kernel data such as filter weights and biases, can be sent from the host CPU to a configurable processor, so that the model can be updated as a function of cycle number. Base calling operations can typically involve hundreds of sensing cycles. In some embodiments, base calling operations can include paired-end reads. For example, model-trained parameters can be updated every 20 cycles (or other number of cycles) or according to an update pattern implemented in a particular system and neural network model. In some embodiments, where a sequence for a given string in a genetic cluster on a tile includes paired-end reads that include a first portion extending downward (or upward) from a first end of the string and a second portion extending upward (or downward) from a second end of the string, trained parameters can be updated at the transition from the first portion to the second portion.
[0084] In some embodiments, image data for multiple cycles of sensor data for a tile can be sent from the CPU to wrapper 600. Wrapper 600 can optionally perform some preprocessing and transformation of the sensor data and write that information to onboard DRAM 602. The input tile data for each sensing cycle can include an array of sensor data containing 4000 x 3000 pixels or more per tile per sensing cycle, with two features representing the colors of two images of the tile and including one or two bytes per pixel. In an 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 can consume several hundred megabytes per number. 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 tile.
[0085] 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 is processed using a ping-pong buffer technique or a raster scan technique.
[0086] When an assigned cluster completes its operation of the neural network for the current patch and generates an output patch, it signals the wrapper. The wrapper either reads the output patch from the assigned cluster, or the assigned cluster pushes data to the wrapper. The wrapper then assembles the output patch for the processed tile in DRAM 602. Once processing of the entire tile is complete and the output patch of data is transferred to DRAM, the wrapper sends 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 within the wrapper 600. A runtime program can control the sequencing operations to complete analysis of all tile data arrays on every cycle, operating in a continuous flow to provide real-time analysis.
[0087] FIG. 7 is a diagram of a multi-cycle neural network model that can be implemented using the systems described herein. The example shown in FIG. 7 can be referred to as a 5-cycle input, 1-cycle output neural network. The input to the multi-cycle neural network model includes five spatially aligned patches (e.g., 700) from the tile data array for 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, so 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.
[0088] The model includes a separate stack 701 of neural network layers for each input patch. Thus, stack 701 receives patch tile data from cycle K+2 as input and is separate from stacks 702, 703, 704, and 705 so that they do not share input or intermediate data. In some embodiments, stacks 710-705 can all have the same model and the same trained parameters. In other embodiments, the models and trained parameters may be different in different stacks. Stack 702 receives patch tile data from cycle K+1 as input. Stack 703 receives patch tile data from cycle K as input. Stack 704 receives patch tile data from cycle K-1 as input. Stack 705 receives patch tile data from cycle K-2 as input. Each layer of the separate stacks performs a convolution operation of a kernel including multiple filters over the layer's input data. As in the example above, patch 700 may include three features: The output of layer 710 may include 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 filter parameters 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 input to an inverse layer 720 of temporal combination layers, in which the intermediate data from multiple cycles is combined. In the illustrated example, the inverse layer 720 includes a first layer including three combination layers 721, 722, and 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, and 723.
[0089] 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 of classification data for the tile in cycle K. In some embodiments, the output patches can have different sizes and dimensions than the input patches. In some embodiments, the output patches can include per-pixel data that can be filtered by the host to select cluster data.
[0090] The output classification data 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., creating base call output parameters according to the maximum output, and then using a nonlinear mapping learned using the context / network output to give the base quality).
[0091] 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 nonlinear models, for output probability calculation.
[0092] 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.
[0093] A five-cycle input, one-cycle output neural network data input unit similar to that of FIG. 7 is described with reference to FIGS. 8A and 8B for a base calling operation using two-channel sensor data. For example, for a given base in a genetic sequence, the base calling operation can perform two streams of sample and two reactions, which generate two channels of signals, such as images, that can be processed to identify which one of four bases is located at the current position in 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 one-channel method and system. The incorporated materials in U.S. Patent Application Publication No. 2013 / 0079232 discuss base calling using various numbers of channels, such as one, two, or four channels.
[0094] 8A shows five cycles of tile data arrays 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 is written to on-board DRAM or other memory in the system that can 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, array 820 of tile metadata can be written to memory once, with each cycle containing the DFC file included for use as input to the neural network.
[0095] 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 in U.S. 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.
[0096] The dataflow logic configures an input unit, which can 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 arrays of tile data 801-805, 811, 815, 820 for five input cycles and deliver them via datapath (schematically 850) to memory on a configurable processor configured for use by the assigned execution cluster. The assigned execution cluster performs a five-cycle input / one-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.
[0097] Figure 9 is a simplified representation of a neural network stack that can be used in a system like 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.
[0098] 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 fused into one or more layers, and there may not be a separate batch normalization layer.
[0099] Several spatially separated convolutional layers are implemented as the first set of convolutional layers of the neural network, as discussed above for the configurable processor. In this example, the first set of convolutional layers applies spatially 2D convolutions.
[0100] 9, for a number L / 2 of spatially separated neural network layers in each stack (where L was described with reference to FIG. 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 over 20 in different embodiments.
[0101] For SP_CONV_0, the kernel weights are stored in, for example, a (1, 6, 6, 3, L) structure because this layer has three input channels. In this example, the "6" in this structure comes from storing the coefficients in the transformed Winograd domain (the kernel size is 3x3 in the spatial domain, but expands in the transform domain).
[0102] For the other SP_CONV layers, the kernel weights are stored in a (1, 6, 6L) structure in this example since there are K(=L) inputs and outputs for each of these layers.
[0103] The output of the stack of spatial layers is provided to the temporal layers, including convolutional layers 924, 925, which run on an FPGA. Layers 924 and 925 may be convolutional layers that apply 1D convolutions 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 over 20 in different embodiments.
[0104] The first temporal layer, TEMP_CONV_0 layer 824, 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 four outputs per pixel representing the confidence of each base call.
[0105] 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, for example.
[0106] 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, spatially aligned input patch tile data for cycles 0 through 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 inverse hierarchical arrangement of time stack 1020, and outputs 1035(2) through 1035(7) provide base call classification data for subject cycles 2 through 7.
[0107] 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 described above is first explained.
[0108] The neural network-based base caller processes data from the 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. The neural network-based base caller learns the sequence-specific context during training and calls bases based on it. Additionally, data from pre- and post-sequencing cycles provide secondary contributions of pre-phasing and phasing signals to the current sequencing cycle.
[0109] Images captured in different sequencing cycles and in different image channels are misaligned and have residual registration errors with each other. To account for this misalignment, the specialized architecture includes a spatial convolution layer that does not mix information between sequencing cycles, but only mixes information within the same sequencing cycle.
[0110] The spatial convolutional layer uses so-called "decoupled convolutions" that operate on decoupling 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.
[0111] For example, consider the input data as including (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 initiates three separate data processing pipelines (or convolution pipelines): a current data processing pipeline, a previous data processing pipeline, and a 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 convolutional representation" as the output of the final spatial convolutional 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 convolutional layers to generate a so-called "previous spatial convolutional representation" as the output of the final spatial convolutional 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 convolutional layers to produce the so-called “next spatially convolved representation” as the output of the final spatial convolutional layer.
[0112] In some implementations, the current pipeline, one or more previous pipelines, and one or more next processing pipelines execute in parallel.
[0113] In some implementations, the spatial convolutional layer is part of a spatial convolutional network (or sub-network) within a dedicated architecture.
[0114] 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 inputs from the spatial convolutional network and operate on the spatially convolved representations produced by the final spatial convolutional layer for each data processing pipeline.
[0115] The inter-cycle operational freedom of the temporal convolutional layers arises from the fact that misalignment features present in the image data supplied as input to the spatial convolutional network are purged from the spatial convolutional representation by the stack or cascade of separated convolutions performed by the array of spatial convolutional layers.
[0116] The temporal convolutional layer uses so-called "combinatorial convolution," which convolves group-wise on input channels with subsequent inputs on a sliding window basis. In one implementation, the subsequent inputs are subsequent outputs generated by previous spatial or temporal convolutional layers.
[0117] In some implementations, the temporal convolutional layer is part of a temporal convolutional network (or sub-network) in a 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.
[0118] The output of the final temporal convolutional layer is fed into an output layer, which produces outputs that are used to base call one or more clusters in one or more sequencing cycles.
[0119] During forward propagation, the specialized architecture processes information from multiple inputs in two stages. In the first stage, decoupled convolutions are used to prevent mixing of information between inputs. In the second stage, combined convolutions are used to mix information between inputs. The results from the second stage are used to make a single inference on the multiple inputs.
[0120] This differs from batch-mode techniques, in which a 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).
[0121] 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.
[0122] In one implementation, each input may include five input channels: a red image channel, a red distance channel, a green image channel, a green distance channel, and a scaling channel. In another implementation, each input may include k feature maps generated by a previous convolutional layer, with each feature map 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 U.S. Patent Application Publication No. 2013 / 0079232 discuss base calling using various numbers of channels, such as one channel, two channels, or four channels.
[0123] FIG. 12 shows an implementation of separated layers, each of which may include a convolution. Separated 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.
[0124] FIG. 13A shows one implementation of a combining layer, each of which may include a convolution. FIG. 13B shows another implementation of a combining layer, each of which may include a convolution. A combining 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.
[0125] In some implementations, the distinct inputs originate from an output array generated by a preceding spatial or temporal convolutional layer. In the output array, the distinct inputs are arranged as successive outputs and are therefore viewed as successive inputs by the next temporal convolutional layer. Then, in the next temporal convolutional layer, a combinatorial convolution applies a convolutional filter to groups of corresponding input channels in the successive inputs.
[0126] In one implementation, the successive inputs have a temporal ordering such that the current input is generated by the current sequencing cycle at time step (t), the previous input is generated by the previous sequencing cycle at time step (t-1), and the next input is generated by the 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.
[0127] In one implementation, each input may include five input channels: a red image channel, a red distance channel, a green image channel, a green distance channel, and a scaling channel. In another implementation, each input may include k feature maps generated by a previous convolutional layer, with each feature map treated as an input channel.
[0128] 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 group size.
[0129] In Figure 13A, corresponding input channels from two consecutive inputs are combined within each sliding window, so B = 2. In Figure 13B, corresponding input channels from three consecutive inputs are combined within each sliding window, so B = 3.
[0130] In one implementation, the sliding windows share the same convolutional filter. In another implementation, a different convolutional filter is used for each sliding window. In some implementations, each temporal convolutional layer includes a bank of k convolutional filters, each of which is applied to successive inputs on a sliding window basis.
[0131] Further details of Figures 4-10 and variations thereof can be found in co-pending U.S. Non-Provisional Patent Application No. 17 / 176,147, filed February 15, 2021, entitled "HARDWARE EXECUTION AND ACCELERATION OF ARTIFICIAL INTELLIGENCE-BASED BASE CALLER" (Attorney Docket No. ILLM1020-2 / IP-1866-US), which is incorporated by reference as if fully set forth herein.
[0132] Figure 14 shows an exemplary tile position-based weight selection scheme used for base calling. For example, shown in Figure 14 is an exemplary flow cell 1400 including multiple lanes 1450, each including a corresponding number of tiles (e.g., as also discussed with respect to Figures 1 and 2). The depiction of flow cell 1400 is symbolic in nature, and flow cell 1400 symbolically shows the various lanes and tiles therein without showing various other components of flow cell 1400. Figure 14 shows a top view of flow cell 1400 (e.g., without showing flow cover 136 of Figure 1).
[0133] In one embodiment, as also discussed with respect to FIG. 2 , the flow cell 1400 is divided or segmented into multiple lanes, such as lanes 1450a, 1450b, 1450c, ..., 1450(P-2), 1450(P-1), and 1450P, i.e., P lanes, where P is a positive integer. As also discussed with respect to FIG. 2 , in one embodiment, each lane 1450 is further divided into non-overlapping regions called tiles. In one example, each lane 1450 includes one or more tile columns. For example, in FIG. 14 , each lane 1450 includes two corresponding tile columns, and the individual tiles in FIG. 14 are indicated by corresponding rectangular boxes. The number of tiles in each tile column in each lane is implementation-specific. Each tile includes a corresponding number of clusters. During the sequencing procedure, the clusters on the tile and their surrounding background are imaged. For example, FIGS. 2 and 3 show example clusters within a tile.
[0134] In one embodiment, the tiles of the flow cell 1400 are classified into various types, for example, based on the location of the tile. In the exemplary implementation of Figure 14, individual tiles of the flow cell 1400 are classified as edge tiles 1408, near-edge tiles 1410, or non-edge (or central) tiles 1412.
[0135] For example, tiles that lie 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 1400 are classified as edge tiles 1408, as shown in Figure 14. Thus, the edge tiles 1408 are directly adjacent to the corresponding edge of the flow cell 1400.
[0136] Tiles that are near (e.g., directly adjacent to) edge tiles are classified as near-edge tiles 1410. For example, a near-edge tile 1410 is one tile away from the edge of the flow cell 1400. Thus, an edge tile 1408 separates a corresponding near-edge tile 1410 from the corresponding edge of the flow cell 1400.
[0137] A tile that is not an edge or near-edge tile is a non-edge tile 1412, also referred to as a central tile 1412. Thus, the central tile 1412 is relatively closer to the center of the flow cell 1400 compared to, for example, the edge tile 1408 or the near-edge tile 1410. For example, the central tile 1414 is separated from the edge of the flow cell 1400 by the edge tile 1408 and the near-edge tile 1410.
[0138] 14 into three categories (such as edge, near-edge, and center or non-edge), such categories are merely examples, and different tile position-based classifications can also be used. For example, in another implementation, tiles can be classified as (i) edge or near-edge tiles, and (ii) center tiles (e.g., combining the edge tile and near-edge tile categories into a single category), thereby resulting in two classifications of tiles.
[0139] As previously mentioned, FIGS. 7 and 10 are exemplary multi-cycle neural network models that can be used for base calling, and FIG. 9 is a simplified diagram of a neural network stack that can be used in systems such as those of FIGS. 7 and 9. Various functions within the neural network model used to make base calls use biases and weights. For example, during a convolution operation, a filter containing one or more kernels (e.g., as shown in FIG. 12) has corresponding weights that are trained during the training phase of the neural network model. For example, the weights are adjusted using training data generated from one or more tiles and used for base calling, for example, in the flow cell of FIG. 14.
[0140] Base calling cycles are performed for clusters within individual tiles of flow cell 1400. In one example, parameters associated with base calling operations for 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 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 tile and / or the position of one or more light sources emitting the excitation light 101. For example, if the light sources emitting the excitation light 101 are vertically above flow cell 1400, center tile 1412 can receive a different amount of light than edge tile 1408 and / or near-edge tile 1410.
[0141] In another example, ambient or external light around the flow cell 1400 (e.g., ambient light from outside the biosensor 100) can affect the amount and / or characteristics of the excitation light 101 received by the individual tiles of the flow cell 1400. By way of example only, the edge tiles 1408 can receive the excitation light 101 along with some amount of ambient light from outside the flow cell 1400, while the center tiles 1412 can receive primarily the excitation light 101.
[0142] In yet another example, individual sensors (or pixels or photodiodes) included in flow cell 1400 (e.g., sensors 106, 108, 110, 112, and 114 shown in FIG. 1 ) can 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 tile 1408 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 center tile 1412.
[0143] In another example, the flow of reactants (including, for example, reagents, enzymes, samples, other biomolecules, buffers, and any other materials that may be used to achieve a desired reaction during base calling) flowing to various tiles may also be affected by tile location, e.g., tiles near a reactant source may receive a larger amount of reactant than tiles farther from the source.
[0144] Thus, stated another way, the parameters related to base calling may be slightly different for different categories of tiles. Accordingly, in one embodiment, different sets of weights are used for different categories of tiles to compensate for the above exemplary tile position dependency of the base calling process.
[0145] For example, in the implementation of Figure 14, three candidate weight sets are used: (i) an edge weight set WeT1418 for edge tiles, (ii) a near-edge weight set WnT1420 for near-edge tiles, and (iii) a center weight set WcT1422 for center (or non-edge) edge tiles.
[0146] In one example, during training of a neural network model used for base calling (such as those discussed with respect to Figures 7, 9, and 10), the neural network model is first trained on image data generated only by edge tiles 1408 (e.g., training data generated from near-edge or center tiles is not used). The resulting weights are included in edge weight set WeT 1418.
[0147] Then, a neural network model is trained on image data generated only by the near-edge tiles 1410 (e.g., no training data generated from edge or central tiles is used), and the resulting weights are included in the near-edge weight set WnT 1420. Finally, a neural network model is trained on image data generated only by the central tile 1412 (e.g., no training data generated from edge or near-edge tiles is used), and the resulting weights are included in the edge weight set WcT 1422.
[0148] Thus, each weight set includes a corresponding number of weights for configuring a neural network model, and the configured neural network processes sensor data from the corresponding category of tile. For example, as discussed with respect to FIGS. 7, 9, 10, and 11, the topology of the neural network model includes (i) one or more spatial layers that do not combine sensor data and the resulting feature maps between successive sensing cycles, and (ii) a temporal layer that combines the resulting feature maps between successive sensing cycles. Thus, each weight set includes corresponding spatial weights in the spatial layer and corresponding temporal weights in the temporal layer. For example, the edge weight set WeT 1418 of the edge tile includes corresponding first one or more spatial weights in the spatial layer and corresponding first one or more temporal weights in the temporal layer. Similarly, the center weight set WcT 1422 of the center tile includes corresponding second one or more spatial weights in the spatial layer and corresponding second one or more temporal weights in the temporal layer.
[0149] During the inference phase when a base calling cycle is performed, if a base in a cluster of edge tiles is to be called, the neural network model is configured with edge weight set WeT1418, and sensor data from the edge tiles is used for the base calling operation. Similarly, if a base in a cluster of near-edge tiles is to be called, the neural network model is configured with near-edge weight set WnT1420, and sensor data from the near-edge tiles is used for the base calling operation. Finally, if a base in a cluster of center tiles is to be called, the neural network model is configured with center weight set WeT1422, and sensor data from the center tiles is used for the base calling operation.
[0150] Figure 15 shows another exemplary tile position-based weight selection scheme used for base calling. For example, shown in Figure 15 is a flow cell 1400 including multiple lanes 1450a, 1450b, 1450c, ..., 1450(P-2), 1450(P-1), and 1450P, each of which includes multiple corresponding tiles.
[0151] 15, each tile of flow cell 1400 is classified based on the location of the corresponding lane to which it belongs. For example, one or more lanes at the top of flow cell 1400 (such as lanes 1450P and 1450(P-1)) are classified as top peripheral lanes, one or more lanes at the bottom of flow cell 1400 (such as lanes 1450a and 1450b) are classified as bottom peripheral lanes, and one or more lanes in the middle of flow cell 1400 (such as lanes 1450c and 1450(P-2)) are classified as central lanes. Note that the number of lanes belonging to each category is merely an example, and variations may be possible. For example, instead of two lanes, each peripheral lane category could include one corresponding lane, or three corresponding lanes, etc.
[0152] Tiles in the top perimeter lane are classified as top perimeter lane tiles 1508a, tiles in the bottom perimeter lane are classified as bottom perimeter lane tiles 1508b, and tiles in the center lane are classified as center lane tiles 1510.
[0153] For the reasons discussed with respect to Figure 14, in one embodiment, tiles in various categories of lanes in the flow cell of Figure 15 can be assigned different weight sets. For example, in the implementation of Figure 15, two candidate weight sets are used: (i) a peripheral weight set WpL 1504 for peripheral lane tiles 1508a, 1508b (e.g., tiles belonging to the top and bottom peripheral lanes), and (ii) a central weight set WcL 1506 for central lane tiles 1510.
[0154] For example, during training of a neural network model used for base calling (such as those discussed with respect to Figures 7, 9, and 10), the neural network model is first trained on image data generated only by the peripheral lane tiles 1508a, 1508b (e.g., training data generated from the central lane tile 1510 is not used). The resulting weights are included in the marginal weight set WpL 1504.
[0155] The neural network model is then trained on image data generated only by the central lane tile 1510 (e.g., training data generated from the peripheral lane tiles 1508a, 1508b is not used), and the resulting weights are included in the central weight set WcL 1506.
[0156] During the inference phase when a base calling cycle is performed, if a base in a cluster of peripheral lane tiles 1508 is called, the neural network model is configured with weights from the peripheral weight set WpL 1504, and sensor data from the peripheral lane tiles 1508 is used for the base calling operation. Similarly, if a base in a cluster of central lane tiles 1510 is called, the neural network model is configured with weights from the central weight set WcL 1506, and sensor data from the central lane tile 1510 is used for the base calling operation.
[0157] Figure 16 shows yet another exemplary tile position-based weight selection scheme used for base calling. For example, shown in Figure 16 is a flow cell 1400 including multiple lanes 1450a, 1450b, 1450c, ..., 1450(P-2), 1450(P-1), and 1450P, each of which includes multiple corresponding tiles.
[0158] 16, the flow cell 1400 is divided into multiple segments or sections based on imaginary dotted lines 1603 (i.e., the dotted lines 1603 are for classification purposes and do not actually exist on the flow cell). For example, the flow cell 1400 is divided into an upper left section 1610TL (weight set WTL), an upper center section 1610TC (weight set WTC), an upper right section 1610TR (weight set WTR), a middle left section 1610ML (weight set WML), a center section 1610C (weight set WC), a middle right section 1610MR (weight set WMR), a bottom left section 1610BL (weight set WML), a bottom center section 1610BC (weight set WBC), and a bottom left section 1610BL (weight set WBL). Each tile of the flow cell 1400 is classified based on the section to which it belongs.
[0159] For reasons similar to those discussed with respect to Figure 14, in one embodiment, tiles in the various sections of Figure 16 are assigned corresponding weight sets. For example, in the implementation of Figure 16, tiles in top-left section 1610TL are assigned top-left weight set WTL, tiles in top-center section 1610TC are assigned top-center weight set WTC, tiles in top-right section 1610TR are assigned top-right weight set WTR, tiles in middle-left section 1610ML are assigned middle-left weight set WML, tiles in middle section 1610C are assigned middle weight set WC, tiles in middle-right section 1610MR are assigned middle-right weight set WMR, tiles in bottom-left section 1610BL are assigned bottom-left weight set WML, tiles in bottom-center section 1610BC are assigned bottom-center weight set WBC, and tiles in bottom-left section 1610BL are assigned bottom-left weight set WBL.
[0160] For example, during training of a neural network model used for base calling (such as those discussed with respect to FIGS. 7, 9, and 10), the neural network model is first trained on sensor data generated only by tiles on the top-left section 1610TL (e.g., sensor data from other categories of tiles is not used), and the resulting weights are included in the top-left weight set WTL. This process is repeated for tiles in various other sections to generate various candidate weight sets, such as a top-center weight set WTC, a top-right weight set WTR, a middle-left weight set WML, a middle weight set WC, a middle-right weight set WMR, a bottom-left weight set WML, a bottom-center weight set WBC, and a bottom-left section weight set WBL.
[0161] During the inference phase, when a base calling cycle is performed, as bases in a cluster of tiles in the top left section 1610TL are called, the neural network model is configured with the weights in the corresponding top left weight set WTL, and sensor data from tiles in the top left section 1610TL is used in the base calling operation. This process is repeated for tiles in various other sections as well.
[0162] 16, the flow cell 1400 is divided into nine different sections. However, the flow cell 1400 can be divided into a different number of sections, such as, for example, four sections including an upper left quadrant, an upper right quadrant, a lower left quadrant, and a lower right quadrant.
[0163] FIG. 17A shows an example of fading, where signal intensity decreases as a function of cycle number, during a sequencing run of a base calling operation. Fading is the exponential decay of the fluorescent signal intensity of a cluster as a function of cycle number. As the sequencing run progresses, the specimen strands are washed extensively, exposed to laser emissions that create reactive species, and subjected to harsh environmental conditions. All of this results in the gradual loss of fragments in each specimen, reducing its fluorescent signal intensity. Fading is also referred to as extinction or signal decay. FIG. 17A shows an example of fading 1700. In FIG. 17A, the intensity values of specimen fragments with AC microsatellites exhibit exponential decay.
[0164] Figure 17B conceptually illustrates the decreasing signal-to-noise ratio as the sequencing cycle progresses. For example, as sequencing progresses, signal intensity decreases and noise increases, resulting in a substantial decrease in the signal-to-noise ratio, making accurate base calling increasingly difficult. Physically, it has been observed that later synthesis steps attach tags to the sensor at different positions than earlier synthesis steps. When the sensor is below the sequence being synthesized, signal decay occurs because tags are attached 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, when the sensor is above the substrate holding the cluster, the signal may increase as sequencing progresses instead of decreasing.
[0165] 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 sequencing step in which the tag cannot advance along the sequence. Prephasing refers to a sequencing step in which the tag jumps forward two positions instead of one during a sequencing cycle. Both phasing and prephasing are relatively infrequent, occurring approximately once every 500–1000 cycles. Phasing is slightly more frequent than prephasing. Because phasing and prephasing affect individual strands within a cluster that generate intensity data, the intensity noise distribution from the cluster accumulates as sequencing progresses, with binomial, trinomial, and quaternary unfolding.
[0166] Further details of fading, signal attenuation, and signal-to-noise ratio reduction, as well as Figures 17A and 17B, 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.
[0167] 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, in addition to or instead of relying on the tile position (e.g., as discussed with respect to Figures 14, 15, and 16), the weight set can also be based on the current cycle number in which the base calling operation is being performed. Figure 18 shows an exemplary base call cycle number-based weight selection scheme used for base calling.
[0168] For example, FIG. 18 is directed to a base calling run for an exemplary tile M. Assume there are N base calling cycles between which strands within various clusters of the exemplary tile M should be identified. As discussed, due to the factors discussed with respect to FIGS. 17A and 17B and / or various other factors, the signal strength detected by a biosensor (e.g., sensors 106, 108, 110, 112, and 114 of FIG. 1) varies (e.g., decays) as a function of the number of base calling cycles. For example, assume that the N base calling sensing cycles are divided into three subseries of cycles, such as (a) initial sensing cycle 1 to N1, (b) intermediate sensing cycle (N1+1) to N2, and (c) final sensing cycle (N2+1) to N, as shown in FIG. 18, where N>N2>N1 and N, N1, and N2 are positive integers. Thus, the N sensing cycles are divided into three sub-series of cycles, but the N sensing cycles may also be divided into a different number of three sub-series of cycles (such as 2, 4, or more).
[0169] Note that the number of sensing cycles in each of the above three subseries of cycles may or may not be equal and may be implementation specific. By way of example only, and without limiting the scope of this disclosure, if N is 100, the 100 cycles may be divided into subseries including 30 initial cycles, 30 middle cycles, and 40 final cycles. That is, in this simple example, N1=30 and N2=60.
[0170] 17A and 17B, for example, the average level of signal strength received by the base caller from the biosensor at cycle number N1 may differ from the average level of signal strength received by the base caller from the biosensor at cycle number N. Thus, for example, a neural network model trained for cycle number N1 may not provide satisfactory results for cycle number N.
[0171] Thus, a neural network model used for base calling (such as those discussed with respect to FIGS. 7, 9, and 10) can be trained for a particular subseries of cycles. For example, the neural network model is first trained on sensor data occurring only during sensing cycles 1 through N1, and the resulting weights are included in a first cycle subseries weight set W(1-N1) 1810a. Then, the neural network model is trained on sensor data occurring only during sensing cycles (N1+1) through N2, and the resulting weights are included in a second cycle subseries weight set W(N1-N2) 1810b. Finally, the neural network model is trained on sensor data occurring only during sensing cycles (N2+1) through N, and the resulting weights are included in a third cycle subseries weight set W(N2-N) 1810c. For example, in the first cycle subseries weight set W(1-N1) 1810a, note that the phrase (1-N1) is a cycle index, meaning that this weight set pertains to sensing cycles 1 through N1. It will be noted that in the example of FIG. 18, the base calling operation is performed using sensor data from one or more channels (such as one channel, two channels, three channels, four channels, or more channels), and for a given cycle, weights may be applicable to sensor data from all such channels.
[0172] During the inference phase, if the base is called for cycles 1 through N1, the neural network model is configured with the first cycle subseries weight set W(1-N1) 1810a. Similarly, if the base is called for cycles (N1+1) through N2, the neural network model is configured with the second cycle subseries weight set W(N1-N2) 1810b. Finally, if the base is called for cycles N2 through N3, the neural network model is configured with the third cycle subseries weight set W(N2-N3) 1810c.
[0173] Figures 14, 15, and 16 show various examples of weight set selection based on tile position. Accordingly, these figures illustrate various examples of weight set selection based on the spatial progression of base calling operations through tile positions on a biosensor. Meanwhile, Figure 18 illustrates an example of weight set selection based on the temporal progression of base calling operations through a subseries of sensing cycles within a series of sensing cycles 1 through N. Figure 19 combines the concept of weight set selection based on spatial tile position (e.g., as discussed in connection with Figures 14-16) with the concept of weight set selection based on the temporal progression of base calling cycles (e.g., as discussed in connection with Figure 18). Accordingly, Figure 19 illustrates an exemplary weight selection scheme based on (i) the temporal progression of base calling cycle numbers and (ii) the spatial position of the tile.
[0174] For example, Figure 19 shows a first tile M1 and a second tile M2. Assume that tile M1 is a first category of tile and tile M2 is a second category of tile. By way of example only, tile M1 could be the edge tile 1408 of Figure 14, and tile M2 could be the center tile 1412 of Figure 14. Thus, for example, as discussed with respect to Figures 14, 15, and 16, the weight set used to base call strands in a cluster in tile M1 will be different from the weight set used to base call strands in a cluster in tile M2.
[0175] Similar to Figure 18, Figure 19 assumes that there are N base call cycles between which strands in various clusters in tiles M1 and M2 are to be identified. Further, similar to Figure 18, Figure 19 assumes that the N base call sensing cycles are divided into three subseries of cycles, such as (a) initial sensing cycle 1 to N1, (b) intermediate sensing cycle (N1+1) to N2, and (c) final sensing cycle (N2+1) to N, where N>N2>N1 and N, N1, and N2 are positive integers, although in other embodiments the N sensing cycles may be divided into a different number of subseries of cycles (e.g., 2, 4, or more).
[0176] In one example, a neural network model used for base calling (such as those discussed with respect to FIGS. 7, 9, and 10) may be trained for a particular subseries of cycles and for a particular tile. For example, the neural network model is first trained on sensor data generated only during sensing cycles 1 through N1 and only for edge tile 1408, and the resulting weight set is labeled "weight set (eT, (1-N1))." Note that the term "eT" in this weight set is a tile category or tile position index, meaning that this weight set is specifically for edge tile 1408. Also, the term "(1-N1)" in this weight set is a cycle index, meaning that this weight set is specifically for sensing cycles 1 through N1.
[0177] Similarly, the neural network model is then trained on sensor data generated only during sensing cycles (N1+1) to N2 and only for edge tiles 1408, and the resulting weight set is labeled as "weight set (eT, (N1-N2))." Again, the phrase "eT" is a tile position or tile category index meaning that this weight set is specifically for edge tiles 1408. Similarly, the phrase "(N1-N2)" within this weight set is a cycle index meaning that this weight set is specifically for sensing cycles (N1+1) to N2.
[0178] Similarly, the neural network model is then trained on sensor data generated only during sensing cycles (N2+1) through N and only for edge tiles 1408, and the resulting weight set is labeled as "weight set (eT, (N2-N))." Again, the term "eT" is a tile position index meaning that this weight set is specifically for edge tiles 1408. Similarly, the term "(N2-N)" within this weight set is a cycle index meaning that this weight set is specifically for sensing cycles (N2+1) through N.
[0179] Furthermore, the neural network model is trained on sensor data that occurred only during sensing cycles 1 through N1 and only for the center tile 1412, and the resulting weight set is labeled as "weight set (cT, (1-N1))." Note that the term "cT" in this weight set is a tile position index that means this weight set is specifically for the center tile 1412. Also, the term "(1-N1)" in this weight set is a cycle index that means this weight set is specifically for sensing cycles 1 through N1.
[0180] Similarly, the neural network model is then trained on sensor data that occurred only during sensing cycles (N1+1) to N2 and only for the center tile 1412, and the resulting weight set is labeled as "weight set (cT, (N1-N2))." Again, the phrase "cT" is a tile position index meaning that this weight set is specifically for the center tile 1412. Similarly, the phrase "(N1-N2)" within this weight set is a cycle index meaning that this weight set is specifically for sensing cycles (N1+1) to N2.
[0181] Similarly, the neural network model is then trained on sensor data generated only during sensing cycles (N2+1) through N and only for the central tile 1412, and the resulting weight set is labeled as "weight set (cT, (N2-N))." Again, the phrase "cT" is a tile position index meaning that this weight set is specifically for the central tile 1412. Similarly, the phrase "(N2-N)" within this weight set is a cycle index meaning that this weight set is specifically for sensing cycles (N2+1) through N.
[0182] During the inference phase, if the base is called for cycles 1 to N1 and for tile M1 (e.g., edge tile 1408 in the example of FIG. 19), the neural network model is configured with weight set (eT, (1-N1)). Similarly, if the base is called for cycles (N1+1) to N2 and for tile M1, the neural network model is configured with weight set (eT, N1-N2)). Also, if the base is called for cycles (N2+1) to N and for tile M1, the neural network model is configured with weight set (eT, (N2-N)).
[0183] Similarly, if the base is called for cycles 1 to N1 and for tile M2 (e.g., the center tile 1412 in the example of FIG. 19), the neural network model is configured with weight set (cT, (1-N1)). Similarly, if the base is called for cycles (N1+1) to N2 and for tile M2, the neural network model is configured with weight set (cT, N1-N2)). Also, if the base is called for cycles (N2+1) to N and for tile M2, the neural network model is configured with weight set (cT, (N2-N)).
[0184] Figure 20 shows another exemplary weight selection scheme based on (i) the temporal progression of base call cycle number and (ii) the spatial location of the tile. The tile classification shown in Figure 20 is similar to that shown in Figure 14. For example, with reference to Figures 14 and 20, edge tiles 1408 are shown with diagonal lines therein, near-edge tiles 1410 are shown with cross-hatching therein, and central tiles 1412 are shown with dots or gray shading therein.
[0185] Three boxes 1908, 1910, and 1912 are also shown in Figure 20. Referring to box 1908, shown are weight sets specific to the edge tile 1408 and to various sub-series of sensing cycles. For example, weight set (eT, (1-N1)) is specifically for the edge tile 1408 and sensing cycles 1 through N1. weight set (eT, (N1-N2)) is specifically for the edge tile 1408 and sensing cycles (N1+1) through N2. weight set (eT, (N2-N)) is specifically for the edge tile 1408 and sensing cycles (N2+1) through N.
[0186] Similarly, referring to box 1910, shown are weight sets specific to the near-edge tiles 1410 and to various sub-series of sensing cycles. For example, weight set (nT, (1-N1)) is specifically for the near-edge tiles 1410 and sensing cycles 1 through N1. weight set (nT, (N1-N2)) is specifically for the near-edge tiles 1410 and sensing cycles (N1+1) through N2. weight set (nT, (N2-N)) is specifically for the near-edge tiles 1410 and sensing cycles (N2+1) through N.
[0187] Similarly, referring to box 1912, shown are weight sets specific to the central tile 1412 and to various sub-series of sensing cycles. For example, weight set (cT, (1-N1)) is specifically for the central tile 1412 and sensing cycles 1 through N1. weight set (cT, (N1-N2)) is specifically for the central tile 1412 and sensing cycles (N1+1) through N2. weight set (cT, (N2-N)) is specifically for the central tile 1412 and sensing cycles (N2+1) through N.
[0188] Figure 21A shows another exemplary weight selection scheme based on (i) the time progression of base call cycle number and (ii) the spatial location of the tile. The tile classification shown in Figure 21A is similar to that shown in Figure 15. For example, with reference to Figures 15 and 21, peripheral lane tile 1508 (which is a combination of top peripheral lane tile 1508a and bottom peripheral lane tile 1508b of Figure 15) is shown with a diagonal line therein, and central lane tile 1510 is shown with a dotted line or gray shaded box.
[0189] 21A. Referring to box 2110, shown are weight sets specific to the peripheral lane tiles 1508 and to various sub-series of sensing cycles. For example, weight set (p1, (1-N1)) is specifically for the peripheral lane tiles 1508 and sensing cycles 1 through N1. Weight set (p1, (N1-N2)) is specifically for the peripheral lane tiles 1508 and sensing cycles (N1+1) through N2. Weight set (p1, (N2-N)) is specifically for the peripheral lane tiles 1508 and sensing cycles (N2+1) through N.
[0190] Similarly, referring to box 2112, shown are weight sets specific to the center lane tile 1510 and to various sub-series of sensing cycles. For example, weight set (c1, (1-N1)) is specifically for the center lane tile 1510 and sensing cycles 1 through N1. weight set (c1, (N1-N2)) is specifically for the center lane tile 1510 and sensing cycles (N1+1) through N2. weight set (c1, (N2-N)) is specifically for the center lane tile 1510 and sensing cycles (N2+1) through N.
[0191] In one embodiment, as described above, weight set (pl, (1-N1)), weight set (pl, (N1-N2)), weight set (pl, (N2-N)), weight set (cl, (1-N1)), weight set (cl, (N1-N2)), and weight set (cl, (N2-N)) each include a corresponding weight. For example, weight set (p1, (1-N1)) includes a first plurality of weights for configuring a corresponding plurality of spatial and temporal layers (see, e.g., Figures 7 and 9 for examples of such layers), weight set (p1, (N1-N2)) includes a second plurality of weights for configuring the corresponding plurality of spatial and temporal layers, weight set (p1, (N2-N)) includes a third plurality of weights for configuring the corresponding plurality of spatial and temporal layers, weight set (c1, (1-N1)) includes a fourth plurality of weights for configuring the corresponding plurality of spatial and temporal layers, weight set (c1, (N1-N2)) includes a fifth plurality of weights for configuring the corresponding plurality of spatial and temporal layers, and weight set (c1, (N2-N)) includes a sixth plurality of weights for configuring the corresponding plurality of spatial and temporal layers.
[0192] At least one weight in the first plurality of weights is different from a corresponding weight in the second plurality of weights (in some examples, the two weight sets can have one or more common or identical weights). At least one weight in the second plurality of weights is different from a corresponding weight in the third plurality of weights, which in turn is different from a corresponding weight in the fourth plurality of weights, and so on. In one embodiment, one or more weights in the various weight sets are quantized using different scaling factors.
[0193] The various weight sets are associated with corresponding sequencing cycles, such that in one example, the weights in the various weight sets correspond to different sequencing chemistries, sequencing configurations, and / or sequencing assays. For example, weight set (p1, (1-N1)), weight set (p1, (N1-N2)), and weight set (p1, (N2-N)) correspond to the first, second, and third sequencing chemistries, respectively (e.g., used during sequencing cycles 1 to N1, sequencing cycles (N1+1) to N2, and sequencing cycles (N2+1) to N, respectively). Weight set (p1, (1-N1)), weight set (p1, (N1-N2)), and weight set (p1, (N2-N)) correspond to the first, second, and third sequencing assays, respectively. Weight set (pl, (1-N1)), weight set (pl, (N1-N2)), and weight set (pl, (N2-N)) correspond to the first, second, and third sequencing configurations, respectively.
[0194] Figure 21B shows another exemplary weight selection scheme based on (i) the temporal progression of base call cycle numbers and (ii) the spatial location of the tiles. The tile classification shown in Figure 21B is similar to that shown in Figure 16. For example, referring to Figures 16 and 21B, flow cell 1400 is divided into an upper left section 1610TL, an upper center section 1610TC, an upper right section 1610TR, a middle left section 1610ML, a center section 1610C, a middle right section 1610MR, a bottom left section 1610BL, a bottom center section 1610BC, and a bottom left section 1610BL. Each tile of flow cell 1400 is classified based on the section to which it belongs.
[0195] 21B also shows a table 2150 including various weights for tiles in various sections and for various sub-series of sensing cycles 1 through N. For example, referring to the first row of table 2150, weight set (TL, (1-N1)) is specifically for tiles in the upper left section 1610TL and sensing cycles 1 through N1. Weight set (TL, (N1-N2)) is specifically for tiles in the upper left section 1610TL and sensing cycles (N1+1) through N2. Weight set (TL, (N2-N)) is specifically for tiles in the upper left section 1610TL and sensing cycles (N2+1) through N.
[0196] Similarly, referring to the second row of table 2150, weight set (TC, (1-N1)) is specifically for tiles in the upper center section 1610TC and sensing cycles 1 through N1. Weight set (TC, (N1-N2)) is specifically for tiles in the upper center section 1610TC and sensing cycles (N1+1) through N2. Weight set (TC, (N2-N)) is specifically for tiles in the upper center section 1610TC and sensing cycles (N2+1) through N. Similarly, various other rows of table 2150 include weight sets for tiles in various other sections and various sub-series of sensing cycles, as would be apparent to one of ordinary skill in the art based on the above description.
[0197] FIG. 22 shows an implementation of a base calling operation 2200 in which the weight set used for base calling is selected based on spatial tile information and temporal subseries sensing cycle information.
[0198] In the base calling operation 2200 of Figure 22, it is assumed that the tiles of the flow cell 1400 are classified according to the examples of Figures 15 and 21 A. Such tile classifications are not intended to limit the scope of the present disclosure, and the base calling operation 2200 may also be applied to any other type of tile classification, such as any of those discussed with respect to Figures 14, 16, 20, 21B, and / or any other tile classifications envisioned by one of skill in the art based on the teachings of the present disclosure.
[0199] Furthermore, in the base calling operation 2200 of Figure 22, it is assumed that the N sensing cycles are divided into three sub-series of cycles, as discussed with respect to Figures 18-21B, including: (a) cycles 1 to N1, (b) cycles (N1+1) to N2, and (c) cycles (N2+1) to N. Again, such division of sensing cycles is not intended to limit the scope of the present disclosure, and the base calling operation 2200 may also be applied to any other type of subdivision of sensing cycles that may be envisioned by one of skill in the art based on the teachings of the present disclosure.
[0200] In Figure 22, base calling operations 1a-6a are specifically for the peripheral lane tiles and cycles 1 through N1. Similarly, base calling operations 1b-6b are specifically for the central lane tiles and cycles 1 through N1. Operations 1a-6a and 1b-6b can be repeated for cycles (N1+1) through N2, and further repeated for cycles (N2+1) through N, although such repetition is not shown in detail in Figure 22. Such repetition for cycles (N1+1) through N2, and further for cycles (N2+1) through N, will be understood by those skilled in the art based on the description of operations 1a-6a and 1b-6b for cycles 1 through N1.
[0201] In action 1a, the data flow logic 451 (see, e.g., FIG. 4) receives cluster sensor data and weight sets (p, (1-N1)) for the peripheral lane tile 1508 and cycles 1 to N1 (see FIG. 21A). The cluster data includes a sequencing image showing the intensity emissions of clusters in the peripheral lane tile 1508 in sequencing cycles 1 to N1 of a sequencing run, as described above. In action 2a, the data flow logic 451 forwards the cluster data and weight sets (p, (1-N1)) for the peripheral lane tile 1508 and cycles 1 to N1 to a neural network-based base caller 2308 (e.g., examples of which are shown in FIGS. 7, 9, and 10) executed by the configurable processor 450 (see, e.g., FIG. 4). The cluster data and weight sets (p, (1-N1)) for the peripheral lane tile 1508 and cycles 1 to N1 are loaded into the neural network-based base caller 2308. Also, although not shown in FIG. 22, the topology of the neural network model is also loaded from memory into the configurable processor 450 via data flow logic 451.
[0202] In action 3a, the configurable processor 450 configures the topology of a neural network running on the configurable processor 450 with the loaded weight set (p, (1-N1)). The neural network-based base caller 2308 configured with the loaded weight set (p, (1-N1)) generates representations (e.g., feature maps) from the cluster data based on the loaded weight set (p, (1-N1)) (e.g., by processing the cluster data through its configured spatial and temporal convolutional layers), and generates base call classification data (e.g., base call classification scores) for multiple clusters in the peripheral lane tile 1508 and for sequencing cycles 1 to N1 based on these representations. For example, the neural network-based base caller 2308 applies the loaded weight set (p, 1-N1) to the cluster data to generate base call classification data. In one implementation, for example, the base call classification scores are not normalized, and they are not subjected to exponential normalization by a softmax function.
[0203] In action 4a, the configurable processor 450 sends the base call classification data for the clusters in the peripheral lane tiles 1508 and for cycles 1 through N1 to the data flow logic 451. In action 5a, the data flow logic 451 provides the host processor 2304 with the base call classification scores for the clusters in the peripheral lane tiles 1508 and for cycles 1 through N1.
[0204] In action 6a, the host processor 2304 normalizes the unnormalized base call classification scores (e.g., by applying a softmax function, block 740 of FIG. 7 or 930 of FIG. 9) to generate normalized base call classification scores, i.e., base calls, for strands within the cluster of the peripheral lane tile 1508 and for cycles 1 to N1.
[0205] Thus, in operations 1a-6a, the system base calls strands within clusters of peripheral lane tiles 1508 and in cycles 1-N1 using the weight set (p, (1-N1)) trained specifically for peripheral lane tiles 1508 and cycles 1-N1. Note that operations 1a-6a show a high-level and simplified version of the base calling operations and may not show one or more other operations that may be performed for base calling. Further details of the base calling operations can be found in U.S. Provisional Patent Application No. 63 / 072,032, entitled "DETECTING AND FILTERING CLUSTERS BASED ON ARTIFICIAL INTELLIGENCE-PREDICTED BASE CALLS," filed August 28, 2020 (Attorney Docket No. ILLM1018-1 / IP-1860-PRV), which is incorporated by reference as if fully set forth herein.
[0206] Operations 1a-6a are specifically for base calling strands within clusters in peripheral lane tiles 1508 and in cycles 1 to N1. These operations are repeated as operations 1b-6b, but for clusters in central lane tiles 1510 and in cycles 1 to N1. For example, in action 1b, data flow logic 451 receives cluster data and weight sets (c1, (1-N1)) for central lane tile 1510 and cycles 1 to N1 (see FIG. 21A). The cluster data includes sequencing images showing intensity emissions of clusters in central lane tile 1510 in sequencing cycles 1 to N1 of a sequencing run, as described above. In action 2b, data flow logic 451 forwards cluster data and weight sets (c1, (1-N1)) for central lane tile 1508 and cycles 1 to N1 to neural network-based base caller 2308 executed by configurable processor 450. The center lane tile 1510 and the weight set for cycles 1 to N1 (c1, (1-N1)) are used to reconstruct the neural network-based base caller 2308.
[0207] In action 3b, the reconfigured neural network-based base caller 2308 running on the configurable processor 450 generates initial representations (e.g., feature maps) from the cluster data (e.g., by processing the cluster data through its spatial and temporal convolutional layers) and generates base call classification scores for the plurality of clusters in the central lane tile 1510 and for sequencing cycles 1 to N1 based on these initial intermediate representations. In one implementation, for example, the initial base call classification scores are not normalized, and they are not subjected to exponential normalization by a softmax function.
[0208] In action 4b, the configurable processor 450 sends the base call classification scores for the clusters in the center lane tile 1510 and for cycles 1 through N1 to the data flow logic 451. In action 5b, the data flow logic 451 provides the host processor 2304 with the base call classification scores for the clusters in the center lane tile 1510 and for cycles 1 through N1.
[0209] In action 6b, the host processor 2304 normalizes the unnormalized base call classification scores (e.g., by applying a softmax function) to generate normalized base call classification scores, i.e., base calls, for the clusters of the central lane tile 1510 and for the strands from cycle 1 to N1.
[0210] Thus, base calling operations 1a-6a are specifically for peripheral lane tile 1508 and cycles 1 through N1. Similarly, base calling operations 1b-6b are specifically for central lane tile 1510 and cycles 1 through N1. Operations 1a-6a and 1b-6b are repeated for cycles (N1+1) through N2, and then for cycles (N2+1) through N, as symbolically shown in FIG. 22.
[0211] Referring back to FIG. 7 , the illustrated model includes separated stacks 701, 702, 703, 704, and 705. For example, stack 701 receives as input patch tile data from cycle K+2. 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 separated stacks performs a convolution operation of a kernel including multiple filters on the layer's input data. Output feature sets (intermediate data) from each of stacks 701-705 are provided as input to an inverse layer of a temporal combination layer 720, where intermediate data from multiple cycles are combined.
[0212] Thus, as discussed with respect to Figures 7, 9, and 11, stacks 701, ..., 705 perform decoupled spatial convolutions. There is no temporal intermixing or interaction between inputs from various cycles in the various stacks 701, ..., 705. Finally, after data processing in stacks 701, ..., 705, there is processing of data from various successive cycles in section 720. The various layers in stacks 701, ..., 705 are also referred to herein as spatial layers, and the kernel weights of the various filters in stacks 701, ..., 705 are also referred to herein as spatial weights. Similarly, the various layers in section 720 are also referred to herein as temporal layers, and the kernel weights of the various filters in section 720 are also referred to herein as temporal weights. For example, the weights applied during spatial convolutions 921, 922, 923 in Figure 9 are spatial weights, while the weights applied during temporal convolutions 924, 925 in Figure 9 are temporal weights.
[0213] FIG. 23A shows various weight sets for various tile categories and for various sensing cycles, where each weight set includes a corresponding spatial weight and a corresponding temporal weight. The tile classifications shown in FIG. 23A are similar to those discussed with reference to FIGS. 15 and 21A. As discussed with reference to FIG. 21A, the peripheral lane tiles 1508 of cycles 1 to N1 are associated with corresponding weight sets (p1, 1-N1). As shown in FIG. 23A, the weight sets (p1, 1-N1) include corresponding spatial weights (s-p1, (1-N1)) and corresponding temporal weights (t-p1, (1-N1)). The spatial weights (s-p1, (1-N1)) are used to configure the spatial layer of the neural network model when the neural network model processes the cluster sensor data of the peripheral lane tiles 1508 of cycles 1 to N1. The time weights (t-pl, (1-N1)) are used to configure the time layer of the neural network model when the neural network model processes the cluster sensor data of the peripheral lane tiles 1508 from cycle 1 to N1.
[0214] Similarly, as discussed with respect to Figure 21A, the peripheral lane tiles 1508 of cycles N1 to N2 are associated with corresponding weight sets (p1, N1-N2). As shown in Figure 23A, weight sets (p1, N1-N2) include corresponding spatial weights (s-p1, (N1-N2)) and corresponding temporal weights (t-p1, (N1-N2)). Various other weight sets in Figure 23A similarly have corresponding spatial and temporal weights.
[0215] Figure 23B shows various weight sets for various tile categories and for various cycles, where different weight sets for a particular tile category include common spatial weights and different temporal weights. The tile classifications shown in Figure 23A are similar to those discussed with respect to Figures 15, 21A, and 23A. However, unlike Figure 23A, in Figure 23B, the weight sets (p-i, (1-N-i)), (p-i, (N-N-2)), and (p-i, (N-N)) for the peripheral lane tiles 1508 have a common spatial weight (s-p-i). Thus, the same or common spatial weight (s-p-i) is used for the peripheral lane tiles 1508 and for each of the subseries cycles 1 to N-i, (N+1) to N-i, and (N+1) to N.
[0216] The weight sets (pl, (1-N1)), (pl, (N1-N2)), and (pl, (N2-N)) have different time weights, such as time weight (t-pl, (1-N1)), time weight (t-pl, (N1-N2)), and time weight (t-pl, (N2-N)).
[0217] Similarly, the weight sets (c1, (1-N1)), (c1, (N1-N2)), and (c1, (N2-N)) for the center lane tile 1510 have a common spatial weight (s-c1). Thus, the same or common spatial weight (s-c1) is used for the center lane tile 1510 and for each of the subseries cycles 1 to N1, (N+1) to N2, and (N2+1) to N.
[0218] The weight sets (cl, (1-N1)), (cl, (N1-N2)), and (cl, (N2-N)) have different time weights, such as time weight (t-cl, (1-N1)), time weight (t-cl, (N1-N2)), and time weight (t-cl, (N2-N)).
[0219] In one embodiment, as discussed with respect to Figures 17A and 17B, fading, fading, and / or pre-fading cause degradation of sensor data as sequencing cycles progress. Such degradation is addressed by the temporal layer of the neural network model (such as the layer in block 720 of Figure 7 or layers 924, 925 of Figure 9). Thus, in Figure 23B, the time weights of various subseries sequencing cycles are trained differently. For example, the time weights for cycles 1 through N1 and a given tile category are different from the time weights for cycles N1 through N2 of the same tile category. In contrast, all cycles share a common spatial weight for a given tile category, as shown in Figure 23B, when the spatial layer (such as the layer in blocks 701, ..., 705 of Figure 7 or layers 921, 922, 923 of Figure 9) may not significantly remedy degradation in signal quality.
[0220] Thus, when processing sensor data for a particular tile category, such as the peripheral lane tile 1508, the common spatial weights (s-p-i) and temporal weights (t-p-i, (1-N1)) of the weight set (p-i, (1-N1)) for cycles 1 to N1 are first loaded into the configurable processor, and the neural network-based base caller 2308 is configured with these spatial and temporal weights. For example, the spatial layer of the neural network-based base caller 2308 is configured with the common spatial weights (s-p-i), and the temporal layer of the neural network-based base caller 2308 is configured with the temporal weights (t-p-i, (1-N1)). The configured neural network-based base caller 2308 applies the configured spatial and temporal layers to the sensor data for cycles 1 to N1 of the peripheral lane tile 1508 to generate base call classification data for cycles 1 to N1 of the peripheral lane tile 1508.
[0221] Subsequently, before processing the sensor data for cycle (N1+1), the time weights (t-p-l, (N1-N2)) of the weight set (p-l, N1-N2) are loaded without loading any corresponding spatial weights of this weight set. The temporal layer of the neural network-based base caller 2308 is configured with the time weights (t-p-l, (N1-N2)). The neural network-based base caller 2308 then applies the previously configured spatial layer (e.g., previously configured with the common spatial weights (s-p-l)) and the reconfigured temporal layer (e.g., reconfigured with the time weights (t-p-l, (N1-N2))) to the sensor data for cycles (N1+1) to N2 of the surrounding lane tiles 1508 to generate base call classification data for cycles (N1+1) to N2 of the surrounding lane tiles 1508.
[0222] Subsequently, before processing cycle (N2+1) of sensor data, the time weights (t-p-l, (N2-N)) of weight set (p-l, N2-N) are loaded without loading any corresponding spatial weights of this weight set. The temporal layer of neural network-based base caller 2308 is reconfigured with the time weights (t-p-l, (N2-N)). Then, neural network-based base caller 2308 applies the previously configured spatial layer (e.g., previously configured with the common spatial weights (s-p-l)) and the reconfigured temporal layer (e.g., reconfigured with the time weights (t-p-l, (N2-N))) to cycle (N2+1) through N of the sensor data of the surrounding lane tiles to generate base call classification data for cycle (N2+1) through N of the surrounding lane tiles.
[0223] Base call classification data for other tile categories (such as center lane tile 1510) is generated in a correspondingly similar manner, which will be understood by those skilled in the art based on the above description and the diagram in Figure 23B.
[0224] Figure 23C illustrates a system 2300 that selects a weight set based on one or more sequencing run parameters 2382. For example, shown is weight set selection logic 2386, which may execute on the configurable processor 450 and / or the host processor 2304. The weight set selection logic 2386 receives the one or more sequencing run parameters 2382, as well as one or more other weight set selection criteria discussed with respect to Figures 14-23B. The weight set selection logic 2386 selects a weight set from among a plurality of candidate weight sets 2384a, ..., 2384N, based on the one or more sequencing run parameters 2382 and / or one or more other weight set selection criteria discussed with respect to Figures 14-23B. In the example of Figure 23B, the weight set selection logic 2386 selects weight set 2384b. The selected weight set is then loaded into the configurable processor 450 and used to configure a neural network topology for base calling, as discussed herein.
[0225] The one or more sequencing run parameters 2382 may include one or more appropriate parameters associated with the current sequencing run. For example, the reaction components (such as reagents, enzymes, samples, other biomolecules, and buffers) used in the sequencing run may affect the sensor data, and a weight set may be selected based on the type, parameters, or batch of reaction components used. For example, phasing characteristics (see FIG. 17B) may be based on the reagent pack used in the sequencing run and may vary based on the type, age, and / or batch of the reagent pack. Thus, various candidate weight sets may be generated for batches of different types of reaction components, and the weight set selection logic 2386 may select a weight set based on the reaction components used in the current sequencing cycle.
[0226] In another example, the weight set selection logic 2386 can estimate fading characteristics and select a weight set based on the fading characteristics. For example, different weight sets can be generated for different fading characteristics. Fading parameters can then be estimated early in the sequencing run and used to select a weight set. In yet another example, multiple candidate weight sets can be tried, and the weight set with the lowest error rate (or highest signal-to-noise ratio) can be selected for the entire sequencing run.
[0227] 24 is a block diagram of a base calling system 2400 according to one implementation. The base calling system 2400 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 2400 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 performing the desired reactions can be within a common housing 2416.
[0228] In certain implementations, base calling system 2400 is a nucleic acid sequencing system (or sequencer) configured for various 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, base calling system 2400 may also be configured to generate reaction sites within a biosensor. For example, base calling system 2400 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.
[0229] Exemplary base calling system 2400 may include a system receptacle or interface 2412 configured to interact with biosensor 2402 to effect a desired reaction within biosensor 2402. In the description that follows with respect to Figure 24, biosensor 2402 is loaded into system receptacle 2412. However, it is understood that a cartridge containing biosensor 2402 may be inserted into system receptacle 2412, and that in some conditions, the cartridge may be temporarily or permanently removed. As noted above, the cartridge may include, among other things, fluid control and fluid storage components.
[0230] In certain implementations, base calling system 2400 is configured to perform multiple parallel reactions within biosensor 2402. Biosensor 2402 includes one or more reaction sites where desired reactions can occur. The reaction sites may be immobilized, for example, on a solid surface of the biosensor or on beads (or other movable substrates) located within corresponding reaction chambers of the biosensor. The reaction sites may include, for example, clusters of clonally amplified nucleic acids. Biosensor 2402 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 base calling system 2400 and direct the solutions toward the reaction sites. Optionally, biosensor 2402 may be configured to engage a thermal element for transferring thermal energy into and out of the flow channels.
[0231] Base calling system 2400 may include various components, assemblies, and systems (or subsystems) that interact with each other to perform a predetermined method or assay protocol for biological or chemical analysis. For example, base calling system 2400 includes a system controller 2404, which may be in communication with the various components, assemblies, and subsystems of base calling system 2400, and also includes biosensor 2402. For example, in addition to system receptacle 2412, base calling system 2400 may also include a fluid control system 2406 for controlling fluid flow throughout the fluidic network of base calling system 2400 and biosensor 2402, a fluid reservoir system 2408 configured to hold any fluids (e.g., fluids, gases, or liquids) that may be used by the bioassay system, a temperature control system 2410 that may regulate the temperature of the fluids in the fluidic network, fluid reservoir system 2408, and / or biosensor 2402, and an illumination system 2409 configured to illuminate biosensor 2402. As described above, when a cartridge having biosensor 2402 is loaded into system receptacle 2412, the cartridge may also include fluid control and fluid storage components.
[0232] Base calling system 2400 may also include a user interface 2414 for interacting with a user. For example, user interface 2414 may include a display 2413 for displaying or requesting information from a user and a user input device 2415 for receiving user input. In some implementations, display 2413 and user input device 2415 are the same device. For example, user interface 2414 may include a touch-sensitive display configured to detect the presence of individual touches and identify the location of the touches on the display. However, other user input devices 2415, such as a mouse, touchpad, keyboard, keypad, handheld scanner, voice recognition system, motion recognition system, etc., may also be used. As described in more detail below, base calling system 2400 may communicate with various components, including biosensor 2402 (e.g., in the form of a cartridge), to perform desired reactions. Base calling system 2400 may also be configured to analyze data obtained from the biosensor to provide desired information to the user.
[0233] System controller 2404 may include any processor- 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, thus, are not intended to limit the definition and / or meaning of the term system controller. In an exemplary implementation, system controller 2404 executes sets of instructions stored in one or more storage elements, memories, or modules to at least one of acquire and analyze 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) can be detected over many base call cycles. The storage elements may be in the form of information sources or physical memory elements within base calling system 2400.
[0234] The set of instructions may include various commands that instruct the base call system 2400 or biosensor 2402 to perform specific 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, which may form part of a tangible, non-transitory computer-readable medium or media. As used herein, the terms "software" and "firmware" are used interchangeably and include any computer program stored in memory executed by a computer, including RAM memory, ROM memory, EPROM memory, EEPROM memory, and non-volatile RAM (NVRAM) memory. The above memory types are exemplary only and thus not limiting of the types of memory that may be used to store a computer program.
[0235] 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 portion of a program module within a larger program. The software may also include modular programming in the form of object-oriented programming. After acquiring the detection data, the detection data may be processed automatically by the processed base calling system 2400 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 communications link). In another implementation shown, the system controller 2404 includes an analysis module 2538 (shown in FIG. 25 ). In other implementations, the system controller 2404 does not include the analysis module 2538, but instead has access to the analysis module 2538 (e.g., the analysis module 2538 may be separately hosted on the cloud).
[0236] The system controller 2404 may be connected to the biosensor 2402 and other components of the base calling system 2400 via a communication link. The system controller 2404 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 2404 may receive user input or commands from a user interface 2414 and user input devices 2415.
[0237] The fluid control system 2406 includes a fluid network and is configured to direct the flow of one or more fluids through the fluid network. The fluid network may be in fluid communication with the biosensor 2402 and the fluid reservoir system 2408. For example, fluid may be selected from the fluid reservoir system 2408 and directed to the biosensor 2402 in a controlled manner, or fluid may be drawn from the biosensor 2402 and directed to, for example, a waste reservoir within the fluid reservoir system 2408. Although not shown, the fluid control system 2406 may include a flow sensor that detects the flow rate or pressure of the fluid within the fluid network. The sensor may be in communication with the system controller 2404.
[0238] Temperature control system 2410 is configured to regulate the temperature of fluids in different regions of the fluid network, fluid reservoir system 2408, and / or biosensor 2402. For example, temperature control system 2410 may include a thermal circulator that interacts with biosensor 2402 and controls the temperature of fluids flowing along reaction sites within biosensor 2402. Temperature control system 2410 may also regulate the temperature of solid elements or components of base calling system 2400 or biosensor 2402. Although not shown, temperature control system 2410 may include sensors for detecting the temperature of fluids or other components. The sensors may be in communication with system controller 2404.
[0239] The fluid storage system 2408 is in fluid communication with the biosensor 2402 and may store various reaction components or reactants used to carry out a desired reaction. The fluid storage system 2408 may also store fluids for washing or cleaning the fluidic network and the biosensor 2402 and for diluting the reactants. For example, the fluid storage system 2408 may include various reservoirs for storing samples, reagents, enzymes, other biomolecules, buffers, aqueous, and non-polar solutions, etc. Additionally, the fluid storage system 2408 may also include a waste reservoir for receiving waste from the biosensor 2402. 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. Accordingly, one or more of the components described herein for these systems may be contained 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, etc. 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.
[0240] The illumination system 2409 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, etc. In implementations using an illumination system, the illumination system 2409 may be configured to direct excitation light to the reaction sites. As an example, a fluorophore may be excited by a green wavelength of light, so the wavelength of the excitation light may be approximately 532 nm. In one implementation, the illumination system 2409 is configured to generate illumination parallel to a surface normal of the surface of the biosensor 2402. In another implementation, the illumination system 2409 is configured to generate illumination that is off-angled relative to the surface normal of the surface of the biosensor 2402. In yet another implementation, the illumination system 2409 is configured to generate illumination having multiple angles, including some parallel illumination and some off-angle illumination.
[0241] System receptacle or interface 2412 is configured to engage biosensor 2402 in at least one of mechanical, electrical, and fluidic manners. System receptacle 2412 can hold biosensor 2402 in a desired orientation to facilitate fluid flow through biosensor 2402. System receptacle 2412 can also include electrical contacts configured to engage biosensor 2402 so that base calling system 2400 can communicate with and / or provide power to biosensor 2402. Additionally, system receptacle 2412 can include a fluid port (e.g., a nozzle) configured to engage biosensor 2402. In some implementations, biosensor 2402 is removably coupled to system receptacle 2412 both electrically and fluidically.
[0242] Additionally, the base calling system 2400 may communicate remotely with other systems or networks, or with other bioassay systems 2400. Detection data obtained by the bioassay system 2400 may be stored in a remote database.
[0243] FIG. 25 is a block diagram of a system controller 2404 that can be used in the system of FIG. 24. In one implementation, the system controller 2404 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 2404 is conceptually illustrated as a collection of modules, but may also be implemented using any combination of dedicated hardware boards, DSPs, processors, etc. Alternatively, the system controller 2404 may be implemented using a single processor or an off-the-shelf PC with 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 remaining modular functions are performed using an off-the-shelf PC, etc. The modules may also be implemented as software modules within a processing unit.
[0244] During operation, the communication port 2520 may transmit information (e.g., commands) to the biosensor 2402 ( FIG. 24 ) and / or the subsystems 2406, 2408, 2410 ( FIG. 24 ). In implementations, the communication port 2520 may output multiple arrays of pixel signals. The communication port 2520 may receive user input from the user interface 2414 ( FIG. 24 ) and transmit data or information to the user interface 2414. Data from the biosensor 2402 or the subsystems 2406, 2408, 2410 may be processed in real time by the system controller 2404 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.
[0245] As shown in FIG. 25, the system controller 2404 may include multiple modules 2531-2539 in communication with a main control module 2530. The main control module 2530 may be in communication with a user interface 2414 (FIG. 24). While the modules 2531-2539 are shown in direct communication with the main control module 2530, the modules 2531-2539 may also be in direct communication with each other, the user interface 2414, and the biosensor 2402. The modules 2531-2539 may also be in communication with the main control module 2530 through other modules.
[0246] The plurality of modules 2531-2539 include system modules 2531-2533, 2539 that communicate with subsystems 2406, 2408, 2410, and 2409, respectively. Fluid control module 2531 may communicate with fluid control system 2406 to control valves and flow sensors in the fluid network to control the flow of one or more fluids through the fluid network. Fluid storage module 2532 can notify a user when fluid is low or when a waste reservoir is at or near full capacity. Fluid storage module 2532 may also communicate with temperature control module 2533 so that fluid can be stored at a desired temperature. Illumination module 2539 may communicate with illumination system 2409 to illuminate reaction sites at specified times during a protocol, such as after a desired reaction (e.g., a binding event) has occurred. In some implementations, illumination module 2539 can communicate with illumination system 2409 to illuminate reaction sites at a specified angle.
[0247] The plurality of modules 2531-2539 may also include a device module 2534 that communicates with the biosensor 2402 and an identification module 2535 that determines identification information associated with the biosensor 2402. The device module 2534 may, for example, communicate with the system receptacle 2412 to confirm that the biosensor has established electrical and fluidic connection with the base calling system 2400. The identification module 2535 may receive a signal that identifies the biosensor 2402. The identification module 2535 may use the identification information of the biosensor 2402 to provide other information to the user. For example, the identification module 2535 may determine and subsequently display the lot number, manufacturing date, or recommended protocol for operating the biosensor 2402.
[0248] The plurality of modules 2531-2539 also includes an analysis module 2538 (also referred to as a signal processing module or signal processor) that receives and analyzes signal data (e.g., image data) from the biosensor 2402. The analysis module 2538 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 2414 to display desired information to the 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 2538 receives the signal data.
[0249] Analysis module 2538 is configured to acquire image data from the photodetector during 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 2548, neural network-based base caller 2558 (see, e.g., Figures 7, 9, and 10), and / or neural network-based quality scorer 2568) to generate base calls for at least some of the analytes during each of the plurality of sequencing cycles.
[0250] Protocol modules 2536 and 2537 communicate with main control module 2530 to control the operation of subsystems 2406, 2408, and 2410 in carrying out a predetermined assay protocol. Protocol modules 2536 and 2537 may include instruction sets for instructing base calling system 2400 to perform specific operations according to a predetermined protocol. As shown, a protocol module may be a sequencing-by-synthesis (SBS) module 2536 configured to issue various commands to execute a sequencing-by-synthesis process. In SBS, the extension of nucleic acid primers 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 primers (thereby extending the primers) in a template-dependent manner, such that detection of the order and type of nucleotides added to the primers can be used to determine the sequence of the template. For example, to initiate the first SBS cycle, one or more labeled nucleotides, DNA polymerase, etc. can be delivered into / through a flow cell containing an array of nucleic acid templates. The nucleic acid templates may be located at corresponding reaction sites. Primer extension can detect incorporated labeled nucleotides through an imaging event, and these reaction sites can be detected. During the imaging event, an illumination system 2409 can provide excitation light to the reaction sites. Optionally, the nucleotides can further include a reversible termination feature that terminates further primer extension once the nucleotide is added to the primer. For example, a nucleotide analog with a reversible terminator moiety can be added to the primer to prevent further extension until a deblocking agent is delivered to remove the moiety.Thus, in another implementation 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 is then 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. Pat. No. 7,057,026, WO 91 / 06678, WO 07 / 123744, U.S. Pat. No. 7,329,492, U.S. Pat. No. 7,211,414, U.S. Pat. No. 7,315,019, and U.S. Pat. No. 7,405,281, each of which is incorporated herein by reference.
[0251] In the nucleotide delivery step of the SBS cycle, any 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 distinct labels because they can be distinguished based on the temporal separation inherent in individualized delivery. Thus, a sequencing method or apparatus can use single-color detection. For example, the excitation source only needs to provide excitation at 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, each bearing one of four different fluorophores, can be used. 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, fewer than four different excitation sources can be used, but optical filtering of the excitation radiation from a single source can be used to generate different excitation radiation ranges in the flow cell.
[0252] In some implementations, fewer than four different colors can be detected in a mixture having four different nucleotides. For example, pairs of nucleotides can be detected at the same wavelength but can be distinguished based on differences in intensity for one member of the pair, or based on a change to one member of the pair (e.g., through 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 distinguishing four different nucleotides using detection of fewer 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 entireties. U.S. Patent Application No. 13 / 624,200, filed September 21, 2012, is incorporated herein by reference in its entirety.
[0253] The multiple protocol modules may also include a sample preparation (or generation) module 2537 configured to issue commands to the fluidic control system 2406 and the temperature control system 2410 to amplify the product in the biosensor 2402. For example, the biosensor 2402 may be coupled to the base calling system 2400. The amplification module 2537 can issue instructions to the fluidic control system 2406 to deliver the necessary amplification components to a reaction chamber in the biosensor 2402. 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 2537 can instruct the temperature control system 2410 to cycle through different temperature steps according to a known amplification protocol. In some implementations, amplification and / or nucleotide incorporation is performed isothermally.
[0254] The SBS module 2536 can issue commands to perform bridge PCR, in which clusters of clonal amplicons are formed over localized regions within the flow cell channel. After generating 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, reversible terminator-based sequencing by synthesis methods can be used, as described above or as follows.
[0255] Each base calling or sequencing cycle can extend the sstDNA by a single base, which can be achieved, for example, by using a modified DNA polymerase and a mixture of four types of nucleotides. Different types of nucleotides can have unique fluorescent labels, and each nucleotide can further have a reversible terminator that allows only a single base to be incorporated in each cycle. After a single base is added to the sstDNA, excitation light can be incident on the reaction site and fluorescence emission can be detected. After detection, the fluorescent label and 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 2536 can instruct the fluid control system 2406 to direct the flow of reagent and enzyme solutions through the biosensor 2402. 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.
[0256] In some implementations, the amplification and SBS modules may operate in a single assay protocol, for example, template nucleic acids are amplified and subsequently sequenced within the same cartridge.
[0257] Base calling system 2400 may also allow the user to reconfigure the assay protocol. For example, base calling system 2400 may provide the user with options through user interface 2414 to modify the determined protocol. For example, if it is determined that biosensor 2402 will be used for amplification, base calling system 2400 may request the temperature of the annealing cycle. Additionally, base calling system 2400 may issue a warning to the user if the user provides user input that is not generally accepted for the selected assay protocol.
[0258] In an implementation, biosensor 2402 includes millions of sensors (or pixels), each of which generates a sequence of pixel signals over successive base call cycles. Analysis module 2538 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.
[0259] Each sensor in the array of sensors can generate sensor data for a tile of the flow cell, where the tile is within an area on the flow cell where a cluster of genetic material is placed during base calling. The sensor data can include image data within 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.
[0260] 26 is a simplified block diagram of a computer 2600 system that can be used to implement the disclosed techniques. The computer system 2600 includes at least one central processing unit (CPU) 2672 that communicates with a number of peripheral devices via a bus subsystem 2655. These peripheral devices may include, for example, a storage subsystem 2610, including memory devices and a file storage subsystem 2636, a user interface input device 2638, a user interface output device 2676, and a network interface subsystem 2674. The input and output devices enable user interaction with the computer system 2600. The network interface subsystem 2674 provides an interface to external networks, including interfaces to corresponding interface devices in other computer systems.
[0261] The user interface input devices 2638 can include pointing devices such as a keyboard, a mouse, a trackball, a touchpad, or a graphics tablet, a scanner, a touchscreen integrated into a display, audio input devices such as a voice recognition system and a microphone, and other types of input devices. In general, use of the term "input device" is intended to encompass all possible types of devices and ways of inputting information into the computer system 2600.
[0262] The user interface output devices 2676 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 producing a visible image. The display subsystem may also provide a non-visual display such as an audio output device. In general, use of the term "output device" is intended to encompass all possible types of devices and ways for outputting information from the computer system 2600 to a user or to another machine or computer system.
[0263] The storage subsystem 2610 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 2678.
[0264] In one implementation, the neural network is implemented using a deep learning processor 2678, 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 2678 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™, and IBM's TrueNorth™.
[0265] The memory subsystem 2622 used in memory subsystem 2610 may include multiple memories, including a main random access memory (RAM) 2634 for storing instructions and data during program execution, and a read only memory (ROM) 2632 in which fixed instructions are stored. The file storage subsystem 2636 may provide persistent storage for program and data files and may include a hard disk drive, 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 2636 in the storage subsystem 2610 or in another machine accessible by the processor.
[0266] Bus subsystem 2655 provides a mechanism for allowing the various components and subsystems of computer system 2600 to communicate with each other as intended. Although bus subsystem 2655 is shown schematically as a single bus, alternative implementations of the bus subsystem may use multiple buses.
[0267] The computer system 2600 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 computer system 2600 shown in Figure 26 is intended only as a specific example for purposes of illustrating a preferred implementation of the present invention. Many other configurations of computer system 2600 can have more or fewer components than the computer system shown in Figure 26. [Explanation of symbols]
[0268] 100 Biosensors 101 Excitation light 102 flow cell 104 Sampling Device 106 Sensors 106' pixel area 106A Cluster Pair 106B Cluster Pair 108 Sensors 108' pixel area 108A Cluster Pair 108B Cluster Pair 110 Sensors 110' pixel area 110A Cluster Pair 110B Cluster Pair 112 Sensors 112' pixel area 2413 Display 2414 User Interface 2415 User Input Devices 2416 Housing 2520 communication port 2530 Main Control Module 2600 Computer Systems 2636 File Storage Subsystem 2638 User Interface Input Device 2655 Bus Subsystem 2672 Central Processing Unit (CPU) 2674 Network Interface Subsystem 2676 User Interface Output Device 2678 Deep Learning Processor
Claims
1. 1. A system comprising: A host processor; a memory accessible by the host processor, the memory comprising: Neural network topology and a plurality of weight sets for configuring the topology to perform a base calling operation, wherein a weight set in the plurality of weight sets is trained on a respective training data set in a plurality of training data sets, the training data sets corresponding to a respective sequencing event in a plurality of sequencing events of the base calling operation, the sequencing events spanning a temporal progression of the base calling operation across a sub-series of sensing cycles within a series of sensing cycles and a spatial progression of the base calling operation across positions on a biosensor; a memory for storing sensor data for a sensing cycle in the series of sensing cycles; a configurable processor, the configurable processor having access to the memory; and loading the topology into processing elements of the configurable processor; selecting a weight set from the plurality of weight sets based at least in part on sensing cycles of a sub-series of subjects and / or subject position on the biosensor; loading the processing element with subject sensor data for the sensing cycles of the subject sub-series and the subject positions on the biosensor; and a system configured with data flow logic to load weights in the selected weight set into the processing elements to configure the topology with the weights, and to cause the neural network to apply the weights in the selected weight set to the subject sensor data to generate base call classification data.
2. 2. The system of claim 1, wherein the sub-series of sensing cycles includes an initial sensing cycle of the sub-series, a middle sensing cycle of the sub-series, and a final sensing cycle of the sub-series, and the training data set and the weight set correspond to the initial sensing cycle of the sub-series, the middle sensing cycle of the sub-series, and the final sensing cycle of the sub-series, respectively.
3. The system of claim 1 or 2, wherein the locations on the biosensor include edge locations and non-edge locations, and the training data set and the weight set correspond to the edge locations and the non-edge locations, respectively.
4. 4. The system of claim 1, wherein the locations on the biosensor include a first quadrant location, a second quadrant location, a third quadrant location, and a fourth quadrant location, and the training data set and the weight set correspond to the first quadrant location, the second quadrant location, the third quadrant location, and the fourth quadrant location, respectively.
5. 5. The system of claim 1, wherein the biosensor is divided into a plurality of tiles, and each of the edge positions, non-edge positions, first quadrant positions, second quadrant positions, third quadrant positions, and fourth quadrant positions includes a corresponding one or more tiles from the plurality of tiles.
6. 6. The system of claim 1, wherein the sequencing events span a temporal progression of the base calling operation through base-call paired-end reads, and the training dataset and the weight set each correspond to a read within the paired-end reads.
7. the sub-series of sensing cycles includes an initial sub-series sensing cycle, a middle sub-series sensing cycle, and a final sub-series sensing cycle; the locations on the biosensor include edge locations and non-edge locations; the training data sets, and therefore the weight sets, respectively correspond to (i) an initial sensing cycle and the edge positions of the sub-series, (ii) an intermediate sensing cycle and the edge positions of the sub-series, (iii) a final sensing cycle and the edge positions of the sub-series, (iv) an initial sensing cycle and the non-edge positions of the sub-series, (v) an intermediate sensing cycle and the non-edge positions of the sub-series, and (vi) a final sensing cycle and the non-edge positions of the sub-series; A system according to any one of claims 1 to 6.
8. the sub-series of sensing cycles includes an initial sub-series sensing cycle, a middle sub-series sensing cycle, and a final sub-series sensing cycle; the locations on the biosensor include a first category of locations and a second category of locations; the training data set, and therefore the weight set, respectively corresponds to (i) an initial sensing cycle of the subseries and a position of the first category, (ii) a middle sensing cycle of the subseries and a position of the first category, (iii) a final sensing cycle of the subseries and a position of the first category, (iv) an initial sensing cycle of the subseries and a non-edge position of the second category, (v) a middle sensing cycle of the subseries and a position of the second category, and (vi) a final sensing cycle of the subseries and a position of the second category; A system according to any one of claims 1 to 7.
9. the configurable processor further comprising: Determining one or more parameters of the current sequencing run; and The system of any one of claims 1 to 8, further comprising selecting the weight set from the plurality of weight sets based on the one or more determined parameters of the current sequencing run.
10. 10. The system of claim 9, wherein the one or more determined parameters of the current sequencing run include one or more of a characteristic of a reaction component used in the biosensor or a fading characteristic associated with the sensor data.
11. 1. A system comprising: A host processor; a memory accessible by the host processor, the memory comprising: Neural network topology and first, second, and third weight sets for configuring the topology to perform a base calling operation, the first, second, and third weight sets corresponding to first, second, and third sub-series of sensing cycles, respectively, within a series of sensing cycles; a memory for storing first, second, and third sensor data corresponding to the first, second, and third sub-series of sensing cycles, respectively; a configurable processor, the configurable processor having access to the memory; and loading the topology into processing elements of the configurable processor; loading the first sensor data into the processing elements, loading the first weight set into the processing elements to configure the topology with weights in the first weight set, and causing the neural network to apply the weights in the first weight set to the first sensor data to generate first base call classification data for a sensing cycle in the first sub-series of sensing cycles; loading the second sensor data into the processing elements, loading the second weight set into the processing elements to configure the topology with weights in the second weight set, and causing the neural network to apply the weights in the second weight set to the second sensor data to generate second base call classification data for sensing cycles in the second sub-series of sensing cycles; and a system configured with data flow logic to load the third sensor data onto the processing elements, load the third weight set onto the processing elements to configure the topology with weights in the third weight set, and cause the neural network to apply the weights in the third weight set to the third sensor data to generate third base call classification data for a sensing cycle within the third sub-series of sensing cycles.
12. The memory fourth, fifth, and subsequent weight sets for configuring the topology to perform base calling operations, the fourth, fifth, and subsequent weight sets corresponding to fourth, fifth, and subsequent sub-series of sensing cycles within the series of sensing cycles, respectively; and fourth, fifth, and subsequent sensor data for the fourth, fifth, and subsequent sub-series of sensor data.
13. the configurable processor: loading the fourth sensor data into the processing element, loading the fourth weight set into the processing element and configuring the topology with weights in the fourth weight set, and causing the neural network to apply the weights in the fourth weight set to the fourth sensor data to generate fourth base call classification data for a sensing cycle within the fourth sub-series of sensing cycles; loading the fifth sensor data into the processing element, loading the fifth weight set into the processing element to configure the topology with weights in the fifth weight set, and causing the neural network to apply the weights in the fifth weight set to the fifth sensor data to generate fifth base call classification data for a sensing cycle within the fifth sub-series of sensing cycles; and 13. The system of claim 11 or 12, further comprising dataflow logic to load the processing elements with the subsequent sensor data and the subsequent weight set, configure the topology with weights in the subsequent weight set, and cause the neural network to apply the weights in the subsequent weight set to the subsequent sensor data to generate subsequent base call classification data for a sensing cycle in the subsequent sub-series of sensing cycles.
14. 14. The system of claim 11, wherein the topology takes as input sensor data from successive sensing cycles, the topology including a spatial layer that does not combine the sensor data and resulting feature maps between the successive sensing cycles, and a temporal layer that combines the resulting feature maps between the successive sensing cycles.
15. 15. The system of claim 11, wherein the first weight set includes a first spatial weight for a spatial layer and a first temporal weight for a temporal layer, the second weight set includes a second spatial weight for the spatial layer and a second temporal weight for the temporal layer, and the third weight set includes a third spatial weight for the spatial layer and a third spatial weight for the temporal layer.
16. the first weight set includes spatial weights for a spatial layer and first temporal weights for a temporal layer, the second weight set includes second temporal weights for the temporal layer, and the third weight set includes third temporal weights for the temporal layer, and the configurable processor: loading the first sensor data into the processing element, loading the spatial weights and the first temporal weights into the processing element to configure the spatial layer with the spatial weights and the temporal layer with the first temporal weights, and causing the neural network to apply the configured spatial and temporal layers to the first sensor data to generate first base call classification data for a sensing cycle within the first sub-series of sensing cycles; loading the second sensor data into the processing element, loading the second time weights into the processing element to reconstruct the time layer with weights in the second time weights without reconstructing the spatial layer, and causing the neural network to apply the reconstructed time layer and the previously constructed spatial layer to the second sensor data to generate second base call classification data for sensing cycles in the second sub-series of sensing cycles; and 16. The system of claim 11, further comprising data flow logic to load the third sensor data into the processing element, load the third time weights into the processing element to reconstruct the temporal layer with weights in the third time weights without reconstructing the spatial layer, and cause the neural network to apply the reconstructed temporal layer and the previously constructed spatial layer to the third sensor data to generate third base call classification data for a sensing cycle within the third sub-series of sensing cycles.
17. The system of any one of claims 11 to 16, wherein the weights in the first, second and third weight sets are quantized using different scaling factors.
18. 18. The system of any one of claims 11 to 17, wherein the weights in the first, second, and third weight sets correspond to first, second, and third sequencing chemistries, respectively.
19. The system of any one of claims 11 to 18, wherein the weights in the first, second, and third weight sets correspond to first, second, and third sequencing assays, respectively.
20. The system of any one of claims 11 to 19, wherein the weights in the first, second, and third weight sets correspond to first, second, and third sequencing configurations, respectively.
21. 1. A computer-implemented method for generating base call classification data, comprising: loading a neural network topology into a processing element of a processor, the processor performing base calling operations; storing (i) first sensor data from clusters in a first one or more tiles of a flow cell, (ii) second sensor data from clusters in a second one or more tiles of the flow cell, (iii) a first weight set including first one or more weights, and (iv) a second weight set including second one or more weights, wherein the first sensor data and the second sensor data occur during a subset of sensing cycles within a series of sensing cycles; configuring the topology of the neural network with the first set of weights, and causing the neural network configured with the first set of weights to process the first sensor data and generate first base call classification data for the first one or more tiles and for the subset of sensing cycles; configuring the topology of the neural network with the second set of weights, and causing the neural network configured with the second set of weights to process the second sensor data and generate second base call classification data for the second one or more tiles and for the subset of sensing cycles.
22. the subset of sensing cycles is a first subset of sensing cycles, and the method comprises: storing (i) third sensor data from clusters in the first one or more tiles, (ii) fourth sensor data from clusters in the second one or more tiles, (iii) a third set of weights, and (iv) a fourth set of weights, wherein the third sensor data and the fourth sensor data occur during a second subset of sensing cycles in the series of sensing cycles, the second subset of sensing cycles following the first subset of sensing cycles in the series of sensing cycles; configuring the topology of the neural network with the third set of weights, and causing the neural network configured with the third set of weights to process the third sensor data and generate third base call classification data for the first one or more tiles and for a second subset of the sensing cycles; 22. The method of claim 21, further comprising configuring the topology of the neural network with the fourth set of weights, and causing the neural network configured with the fourth set of weights to process the fourth sensor data and generate fourth base call classification data for the second one or more tiles and for a second subset of sensing cycles.
23. the first one or more tiles are in a first region of the flow cell; the second one or more tiles are in a second region of the flow cell.
23. The method of claim 21 or 22.
24. the first one or more tiles are edge tiles of the flow cell; the second one or more tiles are non-edge tiles of the flow cell; The method according to any one of claims 21 to 23.
25. generating the first set of weights by training the neural network on sensor data generated from edge tiles only; generating the second set of weights by training the neural network on sensor data generated only from non-edge tiles; The method of any one of claims 21 to 24, further comprising:
26. 1. A system comprising: A host processor; a memory accessible by the host processor that stores (i) a neural network topology and (ii) a plurality of weights for configuring the topology to perform base calling operations, the plurality of weights being based on tile position, a series of sensing cycles, and / or sensor data; a configurable processor, the configurable processor having access to the memory; and loading the topology into processing elements of the configurable processor; a system configured with dataflow logic to load the plurality of weights into the processing elements, configure the topology with the plurality of weights, and cause the neural network to generate base call classification data.
27. the plurality of weights is a first plurality of weights, the tile position is a first tile position, the series of sensing cycles is a first series of sensing cycles, and the sensor data is first sensor data; the memory further stores a second plurality of weights to configure the topology to perform base calling operations, the second plurality of weights being based on second tile positions, a second series of sensing cycles, and / or second sensor data; the configurable processor:
27. The system of claim 26, further comprising data flow logic to load the second plurality of weights into the processing elements, configure the topology with the second plurality of weights, and cause the neural network to generate additional base call classification data.
28. the first tile position is over a first region within a flow cell; the second tile location is on a second region within the flow cell.
28. The system of claim 27.
29. the second series of sensing cycles occurring subsequent to the first series of sensing cycles; 29. A system according to claim 27 or 28.