Online base call compression

Data compression techniques for sequencing devices address throughput limitations by processing and synchronizing substreams of raw read data, enhancing operational speed and efficiency.

JP7787988B2Active Publication Date: 2025-12-17F HOFFMANN LA ROCHE & CO AG
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024520562
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-10-04
Filing Date
2022-10-04
Publication Date
2025-12-17
Estimated Expiration
2042-10-04

AI Technical Summary

Technical Problem

Sequencing devices face bottlenecks in data transmission and storage due to the generation of large amounts of raw data, limiting sequencing throughput and operational speed.

Method used

Implementing data compression techniques to process raw read data from sequencing devices, including separate compression of header, base call, and quality score substreams, and encoding sequence reads relative to a reference genome, with real-time processing to manage computational resources and synchronize output.

Benefits of technology

Enhances sequencing throughput by reducing data output bottlenecks and ensuring synchronized, efficient transmission and storage of compressed data, maintaining operational speed and accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007787988000004
    Figure 0007787988000004
  • Figure 0007787988000005
    Figure 0007787988000005
  • Figure 0007787988000006
    Figure 0007787988000006
Patent Text Reader

Abstract

For high sequencing throughput, the circuit can compress the read data generated by the sequencing device in real time. Various compression techniques can be used. The raw data stream can be processed to generate a raw read data stream. The raw read data stream can include substreams of data including a header data substream, a base call substream, and a quality score substream. The substreams can be extracted and compressed using separate threads, and the compressed data can be combined again. Sequence reads corresponding to different copies of the same nucleic acid molecule can be clustered and used to generate a consensus read. The number of sequence reads used to generate a consensus read can be limited to a threshold value when the consensus read is substantially accurate. After the limit is reached, data from any new raw read data corresponding to the same nucleic acid molecule can be discarded.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Cross-reference to related patent applications This application claims the benefit of priority to U.S. Provisional Patent Application No. 63 / 251,979, filed October 4, 2021, which is incorporated herein by reference for all purposes. [Background technology]

[0002] Sequencing devices, such as nanopore devices, can be used for rapid sequencing of nucleic acids in biological samples. The sequencing device can generate raw data corresponding to signals associated with the detection (direct or indirect) of nucleotides in nucleic acid molecules from the biological sample. The raw data generated by the sensors in the device can then be converted (e.g., by another part of the sequencing system) into raw read data corresponding to the determination of the type and order of the detected nucleotides in the sequence of nucleotides. Determining the type of nucleotide and its order in the sequence of nucleotides is also known as base calling. The raw read data can include other information, such as data related to the quality of the collected signal.

[0003] Improving the ability of sequencing devices to detect signals at faster rates will result in the generation of large amounts of raw data, which can result in large amounts of raw read data, which can cause problems such as bottlenecks that can limit the signal rate and therefore the sequencing throughput. Summary of the Invention

[0004] The present disclosure generally relates to nucleic acid sequencing, and more particularly to embodiments that can enable high sequencing throughput. For example, some embodiments (e.g., inference circuits) can compress read data generated using raw data received from a sequencing device (e.g., a nanopore-based sequencing device). Various compression techniques can be used to reduce the amount of output data so that output bottlenecks do not cause errors or artificially limit the operational speed of the sequencing device.

[0005] According to one embodiment, raw data can be received from a sensor chip including multiple cells. The raw data can include multiple measurements for each position of a nucleic acid molecule. The raw data can include measurements for at least 100,000 nucleic acid molecules. A stream of read data can be generated that includes header information, base call data, and quality scores for the nucleic acid molecules. A first substream of header information can be extracted from the stream of read data. The header information can identify each nucleic acid molecule. A first thread can be used to compress the first substream of header information to generate compressed header information. A second substream of base call data can be extracted from the stream of read data. The substream of base call data can provide base calls at each position of each nucleic acid molecule. A second thread can be used to compress the second substream of base call data to generate compressed base call data. A third substream of quality score data can be extracted from the stream of read data. The substream of quality score data can provide a quality score for each base call at each position of each nucleic acid molecule. A third thread can be used to compress a third substream of quality score data to generate compressed quality score data. In various embodiments, the substreams of data can be output separately or combined. For example, two or more of the compressed header information, compressed base call data, and compressed quality score data can be combined to generate a stream of compressed data. The stream of compressed data can then be output.

[0006] In some embodiments for compressing raw read data, sequence reads from a substream of base call data corresponding to a template nucleic acid molecule can be aligned to a reference sequence (e.g., a reference genome). The reference sequence can include a naturally occurring nucleic acid sequence (e.g., a human genome) or a synthetic nucleic acid sequence (e.g., engineered DNA or RNA). The synthetic sequence can include naturally occurring or synthetic amino acids (e.g., amino acids containing synthetic nucleoside and / or nucleotide analogs). The position of the sequence read can be determined relative to the reference sequence. Similarities and differences between the sequence reads from the base call data and the reference sequence can be identified for each nucleotide. The sequence reads can be encoded using a code generated based on the identified similarities and differences. The encoded sequence reads can then be compressed using patterns (e.g., repeat codes or sequences of codes) and genome location information within the encoded sequence code. At least a portion of the sequence (e.g., base pair type) information within the sequence reads from the substream of base call data can be replaced with genome location information (i.e., the genome location corresponding to the reference) if the read information matches the reference, and codes for differences can be used for non-matching nucleotides. Thus, the position information can replace the sequence read information for at least a portion of the sequence that matches the reference sequence in a contiguous fashion.

[0007] Substreams of quality score data corresponding to sequence reads from the base call data can also be encoded and compressed accordingly. Encoding of quality score data may not require a reference genome. For example, quality score data may be compressed by converting discrete (or quantitative) quality scores into concrete (or qualitative) quality scores (e.g., categorical data). Further details regarding quality score compression are provided below.

[0008] The genomic location and code of the read can be generated in real time, along with the compression of the code.The inference circuit used to determine the genomic location and code can include a local memory for temporarily storing data for processing.The local memory can be a memory combined with the inference circuit, and can be on the same integrated circuit or connected via a high-throughput bus.The inference circuit (for example, performing the matching and storing steps) can include, for example, a graphics processing unit (GPU), a field programmable gate array (FPGA), a central processing unit (CPU), or a combination thereof.Other processing units can also be used to perform the method described herein.

[0009] In some embodiments, a first substream of header information, a second substream of base call data, and a third substream of quality score data can be compressed simultaneously. Different portions of computational resources (e.g., CPU, GPU, FPGA processing unit, memory, etc.) can be allocated to each substream. The size of each portion of computational resources allocated to process each substream can be managed by a load balancing system. The load balancing system can be optimized to compress each substream for approximately the same period of time, so that the final output is synchronized and the compressed header data, read data, and quality score data for a given nucleic acid can be output simultaneously.

[0010] In some embodiments for clustering sequence reads, a consensus sequence read can be generated for a template nucleic acid molecule based on two or more sequence reads corresponding to copies of the template nucleic acid molecule. The consensus sequence read can be generated before or after clustering the sequence reads. The consensus sequence read can be generated for each cluster when a new sequence read is assigned to the cluster, or the consensus sequence read can be generated before or after outputting the sequence reads of the cluster, after the number of sequence reads in the cluster reaches a threshold. Sequence reads corresponding to the same template can be clustered together as described above and elsewhere herein, or the sequence reads can be identified as corresponding to the same nucleic acid molecule or molecular family by identifying them based on barcode and / or position information (e.g., as a result of matching) of two or more sequence reads. Two or more sequence reads can be compiled into a consensus read, which can be performed in an inference circuit or a later circuit in the pipeline. When performed in an inference circuit, the consensus sequence read can evolve as more raw data is generated from the same nucleic acid molecule or molecular family. Consensus sequence reads can be compressed based on the position and code (e.g., encoding nucleotides based on alignment information) generated for each nucleic acid (e.g., DNA-based or RNA-based) compared to a reference genome, as described above and elsewhere herein.

[0011] A cutoff amount (threshold) can be determined for the number of sequence reads used to generate a consensus sequence read for a nucleic acid molecule or molecular family.In this way, sequence reads that exceed the cutoff amount can be discarded, so that fewer sequence reads need to be output from the inference circuit when a consensus read is determined by a subsequent circuit.Such discarding can be beneficial when a specific template nucleic acid is over-amplified (for example, in PCR prior to sequencing).Alternatively, when a consensus is generated by the inference circuit, computational resources and memory can be saved by using only a sufficient number of sequence reads of a nucleic acid molecule to build a consensus, rather than using all of them.In this way, a consensus sequence read for a nucleic acid molecule or molecular family can be substantially generated.The cutoff value can correspond to the threshold value related to clustering, as described above or elsewhere herein.

[0012] According to one embodiment, raw data can be received from a sensor chip including multiple cells. The raw data can include multiple measurements for each position of a nucleic acid molecule. The raw data can include measurements for at least 100,000 nucleic acid molecules. A portion of the at least 100,000 nucleic acid molecules can include clusters of nucleic acid molecules. The clusters of nucleic acid molecules can be generated by making copies of a template nucleic acid molecule. The copies can be made using polymerase chain reaction (PCR). The nucleic acid molecules of a cluster can correspond to the same template nucleic acid molecule. Sequence data can be generated by an inference circuit from the raw nucleic acid molecule data by determining a nucleotide for each position in the sequence of the nucleic acid molecule. The sequence reads of the at least 100,000 nucleic acid molecules can then be clustered. A counter can keep count of the size of each cluster (e.g., the number of sequence reads assigned to a cluster). The size of the cluster can be limited by a certain threshold (cutoff amount). Thus, as each sequence read is assigned to a particular cluster corresponding to the sequence read, the counter increment for that cluster (i.e., by 1) is increased. The counter of the cluster can then be compared with a predetermined threshold. If the counter is greater than the threshold, the sequence read assigned to the cluster can be discarded (i.e., removed from memory). If the counter is less than the threshold, the sequence read can be added to the sequence read corresponding to the cluster. The sequence reads corresponding to the clusters with counters greater than or equal to the threshold can be output. The output can be sent to a memory device (e.g., disk, cloud-based storage, etc.). For each cluster, a consensus read can be generated based on the sequence reads assigned to each cluster. The consensus read can then be compressed and output from the sequencing system (e.g., to a storage device).

[0013] In some embodiments for clustering sequence reads, the sequence reads may include one or more barcode sequences corresponding to nucleotides attached to the nucleic acid molecules. Specific clusters may be assigned to one or more specific barcode sequences. Identifying a specific cluster corresponding to a sequence read may include comparing one or more barcode sequences of the sequence read with one or more specific barcode sequences to which one or more clusters are assigned to determine a match. A cluster may be generated for a new sequence read if one or more barcode sequences of the new sequence read do not match any of the barcode sequences to which existing clusters are assigned. Identifying a specific cluster corresponding to a sequence read may also include comparing the content of the sequence read with the content of the sequences to which each cluster is assigned (e.g., similar to comparing barcode sequences). For example, this may be done by aligning the sequence read to a reference genome to determine a genomic location. The genomic location may then be compared with one or more genomic locations to which one or more clusters are assigned. The genomic location may include a start genomic location and an end genomic location. The genomic location of a specific cluster may be determined using other sequence reads of the specific cluster (e.g., by pairwise or multiple alignment between the content of the sequence read and the sequence read within the specific cluster).

[0014] These and other embodiments of the invention are described in detail below. For example, other embodiments relate to systems, apparatus, and computer-readable media associated with the methods described herein.

[0015] The nature and advantages of embodiments of the present invention may be better understood with reference to the following detailed description and accompanying drawings. [Brief explanation of the drawings]

[0016] [Figure 1]1 illustrates one embodiment of a cell in a nanopore-based sequencing chip. [Figure 2] 1 illustrates one embodiment of a cell in a nanopore-based sequencing chip. [Figure 3] 1 shows an embodiment of a cell for performing nucleotide sequencing using Nano-SBS technology. [Figure 4] 1 shows an embodiment of a cell intended to perform nucleotide sequencing with preloaded tags. [Figure 5] 1 illustrates one embodiment of a sequencing process using preloaded tags. [Figure 6A] 1 illustrates one embodiment of a circuit within a cell of a nanopore-based sequencing chip, which can be configured to detect whether a lipid bilayer is formed within the cell without destroying the already formed lipid bilayer. [Figure 6B] This figure shows the same circuitry inside a cell of a nanopore-based sequencing chip as shown in Figure 6A. Compared to Figure 6A, instead of showing the lipid membrane / bilayer between the working and counter electrodes, it shows an electrical model that describes the electrical properties of the working electrode and the lipid membrane / bilayer. [Figure 7] 1 shows example data points captured from a nanopore cell during the light and dark periods of an AC cycle. [Figure 8] 1 illustrates one embodiment of a sequencing device hardware configuration in accordance with certain embodiments. [Figure 9] 1 shows a flowchart illustrating an exemplary method for compressing raw read data in accordance with certain embodiments. [Figure 10] 1 shows a flowchart illustrating an exemplary method for compressing a read data stream using multiple threads, in accordance with certain embodiments. [Figure 11A] 1 illustrates an embodiment of a raw read data compression system in accordance with certain embodiments. [Figure 11B]1 illustrates an example where a thread is a software thread that can be scheduled onto one or more processing units according to one embodiment of the present disclosure. [Figure 12] 1 shows a flowchart illustrating an exemplary method for compressing a sub-stream of base code data in accordance with certain embodiments. [Figure 13] 10 illustrates experimental results of compressing sequencing data according to certain embodiments. [Figure 14] 10 illustrates experimental results of compressing sequencing data according to certain embodiments. [Figure 15] 10 illustrates experimental results of compressing sequencing data according to certain embodiments. [Figure 16] 10 illustrates experimental results of compressing sequencing data according to certain embodiments. [Figure 17] 10 illustrates experimental results of compressing sequencing data according to certain embodiments. [Figure 18] 10 illustrates experimental results of compressing sequencing data according to certain embodiments. [Figure 19] 1 illustrates an example of an amplification process according to certain embodiments. [Figure 20] 1 illustrates an embodiment of a sequence read data clustering system in accordance with certain embodiments. [Figure 21] 1 shows a flowchart illustrating an exemplary method for clustering read data to reduce the amount of sequencing data in accordance with certain embodiments. [Figure 22] 1 shows raw data for multiple passes of a molecule (e.g., an xpandomer molecule) read using a nanopore according to certain embodiments. [Figure 23] 1 illustrates sequencing to generate intramolecular consensus according to an embodiment of the present invention. [Figure 24] 1 illustrates a block diagram of an exemplary computer system usable in systems and methods according to certain embodiments. DETAILED DESCRIPTION OF THE INVENTION

[0017] definition "Nucleic acid" may refer to deoxyribonucleotides or ribonucleotides and their polymers in either single- or double-stranded form. The term can encompass nucleic acids containing known nucleotide analogs or modified backbone residues or linkages, which are synthetic, natural, and non-natural, have similar binding properties as the reference nucleic acid, and are metabolized in a similar manner to the reference nucleotide. Examples of such analogs include, but are not limited to, phosphorothioates, phosphoramidites, methyl phosphonates, chiral methyl phosphonates, 2-O-methyl ribonucleotides, and peptide nucleic acids (PNAs). Nucleic acids may also be represented by surrogate molecules inserted into the original nucleic acid, each corresponding to a specific nucleotide.

[0018] Unless otherwise indicated, a particular nucleic acid sequence implicitly encompasses conservatively modified variants thereof (e.g., degenerate codon substitutions), and complementary sequences, as well as the explicitly stated sequence. Specifically, degenerate codon substitutions can be achieved by generating sequences in which the third position of one or more selected (or all) codons is substituted with mixed-base and / or deoxyinosine residues (Batzer et al., Nucleic Acid Res. 19:5081 (1991); Ohtsuka et al., J. Biol. Chem. 260:2605-2608 (1985); Rossolini et al., Mol. Cell. Probes 8:91-98 (1994)). The term nucleic acid is used interchangeably with gene, cDNA, mRNA, oligonucleotide, and polynucleotide.

[0019] The term "nucleotide" may be understood to refer to naturally occurring ribonucleotide or deoxyribonucleotide monomers, as well as their related structural variants, including derivatives and analogs that are functionally equivalent for the particular context in which the nucleotide is used (e.g., hybridization to a complementary base), unless the context clearly dictates otherwise (e.g., X-NTPs used in SBX sequencing).

[0020] The term "tag" can refer to a detectable moiety, which can be an atom or molecule, or an assembly of atoms or molecules. The tag can provide an optical, electrochemical, magnetic, or electrostatic (e.g., inductive, capacitive) signature, which can be detected with the aid of a nanopore. Typically, when a nucleotide is attached to a tag, it is called a "tagged nucleotide." The tag can be attached to the nucleotide via a phosphate moiety.

[0021] The terms "raw data" or "raw signal data" refer to data generated by sensors in a sequencing device. Raw data includes signal values ​​associated with the sequencing of nucleic acid molecules.

[0022] "Nanopore" refers to a pore, channel, or passageway formed or otherwise provided in a membrane. The membrane may be an organic membrane, such as a lipid bilayer, or a synthetic membrane, such as a membrane formed from a polymeric material. The nanopore may be positioned adjacent to or in close proximity to a sensing circuit, such as a complementary metal-oxide semiconductor (CMOS) or field-effect transistor (FET) circuit, or an electrode connected to the sensing circuit. In some examples, the nanopore has a characteristic width or diameter on the order of about 0.1 nanometer (nm) to about 1000 nm. Some nanopores are proteins.

[0023] The term "light period" can generally refer to a period during which the tag of a tagged nucleotide is pushed into the nanopore by an electric field applied through an AC signal. The term "dark period" can generally refer to a period during which the tag of a tagged nucleotide is pushed out of the nanopore by an electric field applied through an AC signal. An AC cycle can include a light period and a dark period. In different embodiments, the polarity of the voltage signal applied to the nanopore cell to put the nanopore cell into the light period (or dark period) can be different. The light period and the dark period can correspond to different portions of the AC signal relative to a reference voltage.

[0024] The term "signal value" can refer to the value of a sequencing signal output from a sequencing cell. According to certain embodiments, the sequencing signal can be an electrical signal measured and / or output from a point in the circuit of one or more sequencing cells; for example, the signal value can be (or represent) a voltage or current. The signal value can represent the result of a direct measurement of the voltage and / or current, or can represent an indirect measurement; for example, the signal value can be a measurement of the time it takes for the voltage or current to reach a specified value. The signal value can represent any measurable quantity that correlates with a characteristic of the sequencing device. For example, in a nanopore sequencing device, the resistivity of the nanopore and what allows the derivation of the resistivity and / or conductance of the nanopore (threaded and / or unthreaded) can affect the signal value. As another example, the signal value can correspond to the intensity of light from a fluorophore attached to a nucleotide catalyzed into a nucleic acid by a polymerase, for example.

[0025] The term "raw read data" or "read data" refers to data generated from raw data or raw signal data. The raw read data includes a read data stream. The read data stream includes substreams of data corresponding to each nucleic acid molecule, including an identifier or header substream, a nucleic acid base call substream, and a quality score substream.

[0026] The term "base call data" refers to data generated from raw data that identifies a nucleotide (e.g., the nitrogen-containing base of a nucleotide) at a given position in a nucleic acid sequence. Each entry in the base call data represents a nucleotide and can include one code for the corresponding nucleotide. Base call data can include primary nucleotides such as adenine (A), thymine (T), guanine (G), cytosine (C), and uracil (U), or synthetic nucleotides. Additionally, base call data can include other possible base calls, such as undetermined nucleotides.

[0027] The term "quality score data" refers to data generated from raw data that provides a measure of confidence in the accuracy of correctly made base calls (e.g., between four bases) for a nucleic acid. Quality scores can reflect the stochastic behavior inherent in observing single molecules. While the quality of base calls may not degrade with time or read length, there may be different quality scores for randomly different base calls at different times for a given nucleic acid. Alternatively, the quality scores of bases in a read may exhibit a dependency on read length or the position of the base within the read. A higher quality score for a base call may indicate a higher confidence that the base call is correct. For example, signal values ​​closer to the peak of a probability distribution function (PDF) may result in base calls with higher quality scores than signal values ​​further from the peak of the PDF.

[0028] The terms "header data" and "read ID data" refer to information that identifies a read in a larger collection of reads. For example, a stream of raw read data generated for a portion of raw data has the same header data across the stream of raw read data for that portion. The raw data can include multiple portions of raw data generated simultaneously or at different times for the same nucleic acid molecule (e.g., template nucleic acid molecule) or different nucleic acid molecules (e.g., different template nucleic acid molecules).

[0029] The terms "consensus sequence read," "consensus sequence," "consensus read," or "consensus" refer to a nucleic acid sequence read generated by aligning multiple sequence reads corresponding to the same template nucleic acid molecule or family of molecules. A consensus sequence read may be generated by aligning multiple sequence reads to each other, or by aligning each of the multiple sequence reads to a reference genome.

[0030] The term "real-time" or "live" refers to processing raw data from nucleic acid molecules at a rate equal to or higher than the rate at which raw data is generated.The real-time processing of raw data eliminates the need to store raw data or read data in long-term memory (for example, disk, hard drive, cloud storage, or any external memory device). Detailed Description

[0031] The technology disclosed herein relates to analyzing sequencing data of one or more nucleic acid molecules generated from a sequencing device, and more particularly to efficiently processing (e.g., compressing, filtering, or discarding) sequence read data generated by a sequencing device (e.g., a nanopore-based sequencing device). A sequencing device can generate raw data at an extremely high speed. The raw data can be processed (e.g., by another part of the sequencing system) to provide an output containing sequence information (e.g., RNA or DNA sequence) of the nucleic acid molecule, referred to as raw read data. Bottlenecks in transmitting and / or storing this output can limit sequencing throughput. Therefore, in order to transmit and store the output at a speed comparable to the raw data generation speed of the sequencing device, the output needs to be processed and compressed in real time. The compressed data can then be transmitted from the sequencing device for storage, for example, in a storage device.

[0032] In some cases, a series of sequencing processes, such as performing different sequencing with new DNA molecules in each cell, are carried out on the same sequencing device.The time between two consecutive sequencing processes or turnaround time may not be enough to offload the raw data generated in each sequencing process from the downstream channel of sequencing device.Therefore, the analysis and compression of the data generated in each sequencing process can be carried out in real time when data is generated.This can allow the storage of compressed data to be completed before or during the turnaround time.

[0033] The raw data stream can be processed (e.g., by an inference chip) to generate a raw read data stream. The raw read data stream can include substreams of data, including a header data substream, a base call substream, and a quality score substream. The header data can include information that can identify the raw read data stream and its substream corresponding to the nucleic acid molecule, as well as other information corresponding to the sequencing device and sequencing process (e.g., sequencing device information, time of sequencing, etc.). The base call data substream can include nucleotide information (i.e., base call codes for nucleotides) for each corresponding position in the sequence read. The quality score data substream can include confidence values ​​for each base call corresponding to each nucleotide in the sequence read from the base call data substream. The substreams can be extracted and compressed using separate threads. In some embodiments, the compressed data can be recombined.

[0034] In some embodiments, sequence reads from a base call data substream of a raw read data stream are compressed by aligning the sequence reads to a reference genome. The sequence reads can be encoded by replacing nucleotides in the sequence reads with alignment information. The encoding can distinguish whether nucleotides from the sequence reads match the reference genome sequence or whether a mismatch exists. The mismatch can include insertions, deletions, skips, or soft clips. The encoding and position of each nucleotide relative to the reference genome can be used to compress the sequence reads. For example, a series of matched nucleotides can be compressed into a position range with a start position and an end position relative to the reference genome.

[0035] In some embodiments, the template nucleic acid molecule may be amplified in library preparation prior to sequencing. Thus, multiple template nucleic acid molecules (e.g., copies and originals) can be sequenced. Raw data corresponding to these nucleic acid molecules or portions thereof can then be generated by a sequencing device (e.g., at different times). Sequence reads of two or more raw data (e.g., from raw read data) corresponding to different copies of the same nucleic acid molecule can be clustered and used to generate a consensus read of the nucleic acid molecule. The number of sequence reads used to generate a consensus read can be limited to a cutoff number (threshold), or can be limited until the consensus read is considered complete or substantially accurate. After reaching the limit / cutoff, data from new raw read data corresponding to the same nucleic acid molecule or portions thereof can be discarded and excluded from further analysis. The corresponding new raw read data can be removed from the device to reduce the amount of data in memory and the amount of data that needs to be output from memory. I. Nanopore Systems

[0036] The nanopore cell in the nanopore sensor chip can be implemented in many different ways. For example, in some embodiments, tags of different sizes and / or chemical structures can be attached to different nucleotides in the nucleic acid molecule to be sequenced. In some embodiments, complementary strands to the template of the nucleic acid molecule to be sequenced can be synthesized by hybridizing different polymer-tagged nucleotides with the template. In some embodiments, both the nucleic acid molecule and the attached tag can translocate through the nanopore, and an ionic current through the nanopore can indicate the nucleotide present in the nanopore due to the specific size and / or structure of the tag attached to the nucleotide. In some embodiments, only the tag can be translocated into the nanopore. Furthermore, there can be many different ways to detect different tags in the nanopore. A. Nanopore Sequencing Cell

[0037] FIG. 1 is a simplified structure illustrating one embodiment of a nanopore cell 100 within a nanopore-based sequencing chip, according to certain embodiments. The nanopore cell 100 may include a well formed by a dielectric material, such as an oxide 106. A membrane 102 may be formed on the surface of the well to cover it. In some embodiments, the membrane 102 may be a lipid bilayer. A bulk electrolyte 114, which may include, for example, a soluble protein nanopore transmembrane molecular complex (PNTMC) and an analyte of interest, is disposed on the surface of the cell. A single PNTMC 104 may be inserted into the membrane 102 by electroporation. Individual membranes within the array are not chemically or electrically connected to one another. Thus, each cell in the array is an independent sequencing machine, generating data specific to a single polymer molecule associated with the PNTMC. The PNTMC 104 acts on the analyte, modulating the ionic current passing through the otherwise impermeable bilayer.

[0038] An analog measurement circuit 112 is connected to a working electrode 110 (e.g., composed of a metal) covered by a thin film of electrolyte 108. The thin film of electrolyte 108 is insulated from the bulk electrolyte 114 by an ion-impermeable membrane 102. The PNTMC 104 provides the only path for ionic current to flow across the membrane 102 from the bulk liquid to the working electrode 110. The cell further includes a counter electrode (CE) 116, which is an electrochemical potential sensor. The cell further includes a reference electrode 117.

[0039] 2 illustrates an exemplary embodiment of a nanopore cell 200 within a nanopore sensor chip that can be used for characterizing polynucleotides or polypeptides according to certain embodiments. Nanopore cell 200 may include a well 205 formed from dielectric layers 201 and 204, a membrane, such as a lipid bilayer 214, formed over well 205, and a sample chamber 215 separated from well 205 by lipid bilayer 214 on lipid bilayer 214. Well 205 may contain electrolyte 206, and sample chamber 215 may hold bulk electrolyte 208 containing a nanopore, such as a soluble protein nanopore transmembrane molecular complex (PNTMC), and an analyte of interest (e.g., a nucleic acid molecule to be sequenced).

[0040] The nanopore cell 200 may include a working electrode 202 at the bottom of a well 205 and a counter electrode 210 disposed within a sample chamber 215. A signal source 228 may apply a voltage signal between the working electrode 202 and the counter electrode 210. A single nanopore (e.g., PNTMC) may be inserted into the lipid bilayer 214 by an electroporation process triggered by the voltage signal, thereby forming a nanopore 216 within the lipid bilayer 214. The individual membranes (e.g., lipid bilayers 214 or other membrane structures) within the array may not be chemically or electrically connected to one another. Thus, each nanopore cell within the array may be an independent sequencing machine, acting on an analyte of interest to generate data specific to a single polymer molecule associated with the nanopore that modulates ionic current through the otherwise impermeable lipid bilayer.

[0041] As shown in FIG. 2 , the nanopore cell 200 may be formed on a substrate 230, such as a silicon substrate. A dielectric layer 201 may be formed on the substrate 230. Dielectric materials used to form the dielectric layer 201 may include, for example, glass, oxide, nitride, etc. An electrical circuit 222 for controlling electrical stimulation and processing signals detected from the nanopore cell 200 may be formed on the substrate 230 and / or in the dielectric layer 201. For example, multiple patterned metal layers (e.g., metal 1 through metal 6) may be formed in the dielectric layer 201, and multiple active devices (e.g., transistors) may be fabricated on the substrate 230. In some embodiments, a signal source 228 is included as part of the electrical circuit 222. The electrical circuit 222 may include, for example, an amplifier, an integrator, an analog-to-digital converter, a noise filter, feedback control logic, and / or various other components. The electrical circuitry 222 may further be connected to a processor 224 connected to a memory 226, which can analyze the sequencing data to determine the sequence of the polymer molecules sequenced in the array.

[0042] The working electrode 202 may be formed on the dielectric layer 201 and may form at least a portion of the bottom of the well 205. In some embodiments, the working electrode 202 is a metal electrode. For non-faradaic conduction, the working electrode 202 may be fabricated from a metal or other material that is resistant to corrosion and oxidation, such as platinum, gold, titanium nitride, and graphite. For example, the working electrode 202 may be a platinum electrode with electroplated platinum. In another example, the working electrode 202 may be a titanium nitride (TiN) working electrode. The working electrode 202 may be porous, thereby increasing its surface area and the resulting capacitance associated with the working electrode 202. Because the working electrode of a nanopore cell may be independent from the working electrode of another nanopore cell, the working electrode may be referred to as a cell electrode in this disclosure.

[0043] A dielectric layer 204 may be formed above the dielectric layer 201. The dielectric layer 204 forms walls surrounding the well 205. The dielectric material used to form the dielectric layer 204 may include, for example, glass, oxide, silicon mononitride (SiN), polyimide, or other suitable hydrophobic insulating material. The top surface of the dielectric layer 204 may be silanized. The silanization may form a hydrophobic layer 220 above the top surface of the dielectric layer 204. In some embodiments, the hydrophobic layer 220 has a thickness of about 1.5 nanometers (nm).

[0044] A well 205 formed by the dielectric layer 204 contains an electrolyte 206 above the working electrode 202. The electrolyte 206 may be buffered and may include one or more of lithium chloride (LiCl), sodium chloride (NaCl), potassium chloride (KCl), lithium glutamate, sodium glutamate, potassium glutamate, lithium acetate, sodium acetate, potassium acetate, calcium chloride (CaCl), strontium chloride (SrCl), manganese chloride (MnCl), and magnesium chloride (MgCl). In some embodiments, the electrolyte 206 has a thickness of about 3 microns (μm).

[0045] 2, a membrane may be formed on the dielectric layer 204 and span across the well 205. In some embodiments, the membrane may include a lipid monolayer 218 formed on a hydrophobic layer 220. When this membrane reaches the opening of the well 205, the lipid monolayer 218 may transition into a lipid bilayer 214 that spans across the opening of the well 205. The lipid bilayer may be formed from, for example, diphytanoyl-phosphatidylcholine (DPhPC), 1,2-diphytanoyl-sn-glycero-3-phosphocholine, 1,2-di-O-phytanyl-sn-glycero-3-phosphocholine (DoPhPC), palmitoyl-oleoyl-phosphatidylcholine (POPC), dioleoyl-phosphatidyl-methylester (DOPME), dipalmitoylphosphatidylcholine (DPPC), phosphatidylcholine, phosphatidylethanolamine, phosphatidylserine, phosphatidic acid ... The lipid composition may comprise or consist of a phospholipid selected from dylinositol, phosphatidylglycerol, sphingomyelin, 1,2-di-O-phytanyl-sn-glycerol, 1,2-dipalmitoyl-sn-glycero-3-phosphoethanolamine-N-[methoxy(polyethylene glycol)-350], 1,2-dioleoyl-sn-glycero-3-phosphoethanolamine-N-lactosyl, GM1 ganglioside, lysophosphatidylcholine (LPC), or any combination thereof.

[0046] As shown, a single nanopore 216, formed by, for example, a single PNTMC, is embedded in the lipid bilayer 214. As described above, the nanopore 216 may be formed by inserting a single PNTMC into the lipid bilayer 214 by electroporation. The nanopore 216 allows at least a portion of an analyte of interest and / or small ions (e.g., Na) to pass between the two sides of the lipid bilayer 214. + , K. + , Ca 2+ , C.I. - ) may be large enough to pass through.

[0047] The sample chamber 215 is located above the lipid bilayer 214 and can hold a solution of an analyte of interest for characterization. The solution can be an aqueous solution containing the bulk electrolyte 208, buffered to an optimal ion concentration, and maintained at an optimal pH to keep the nanopore 216 open. The nanopore 216 provides the only path for ion flow across the lipid bilayer 214 from the bulk electrolyte 208 to the working electrode 202. In addition to the nanopore (e.g., PNTMC) and the analyte of interest, the bulk electrolyte 208 can further include one or more of lithium chloride (LiCl), sodium chloride (NaCl), potassium chloride (KCl), lithium glutamate, sodium glutamate, potassium glutamate, lithium acetate, sodium acetate, potassium acetate, calcium chloride (CaCl), strontium chloride (SrCl), manganese chloride (MnCl), and magnesium chloride (MgCl).

[0048] The counter electrode (CE) 210 may be an electrochemical potential sensor. In some embodiments, the counter electrode 210 may be shared among multiple nanopore cells and may therefore be referred to as a common electrode. In some cases, the common potential and common electrode may be common to all nanopore cells, or at least to all nanopore cells in a particular group. The common electrode may be configured to apply a common potential to the bulk electrolyte 208 in contact with the nanopore 216. The counter electrode 210 and working electrode 202 may be connected to a signal source 228 to provide an electrical stimulus (e.g., a voltage bias) across the lipid bilayer 214 and may be used to sense electrical properties (e.g., resistance, capacitance, and ionic current flow) of the lipid bilayer 214. In some embodiments, the nanopore cell 200 may further include a reference electrode 212.

[0049] In some embodiments, various checks can be performed during the creation of nanopore cells as part of validation or quality control. Once nanopore cells are created, further validation steps can be performed, for example, to identify nanopore cells that operate as desired (e.g., one nanopore in each cell). Such validation checks can include physical checks, voltage calibration, open channel calibration, and identification of cells with a single nanopore. B. Nanopore-Based Sequencing by Synthesis

[0050] The nanopore cells within the nanopore sensor chip may enable parallel sequencing using single molecule nanopore-based sequencing by synthesis (Nano-SBS) technology.

[0051] 3 shows an embodiment of a nanopore cell 300 for sequencing nucleotides using Nano-SBS technology. In Nano-SBS technology, a template 332 to be sequenced (e.g., a nucleotide acid molecule or another analyte of interest) and a primer may be introduced into the bulk electrolyte 308 in the sample chamber of the nanopore cell 300. By way of example, the template 332 may be circular or linear. The nucleic acid primer may be hybridized to a portion of the template 332 to which four differently polymer-tagged nucleotides 338 may be added.

[0052] In some embodiments, an enzyme (e.g., a polymerase 334, such as a DNA polymerase) is associated with the nanopore 316 for use in synthesizing a complementary strand to the template 332. For example, the polymerase 334 may be covalently bound to the nanopore 316. The polymerase 334 may catalyze the incorporation of a nucleotide 338 onto a primer using a single-stranded nucleic acid molecule as a template. The nucleotide 338 may include a tag species (“tag”) in which the nucleotide is one of four different types: A, T, G, or C. When the tagged nucleotide properly complexes with the polymerase 334, the tag can be drawn (loaded) into the nanopore by an electrical force, such as a force generated in the presence of an electric field generated by a voltage applied across the lipid bilayer 314 and / or the nanopore 316. The tail of the tag may be located within the barrel of the nanopore 316. A tag held within the barrel of nanopore 316 generates a unique ion blocking signal 340 due to the distinct chemical structure and / or size of the tag, thereby electronically identifying the attached base to which the tag is attached.

[0053] As used herein, a "loaded" or "threaded" tag can be a tag that is located within and / or remains within or near the nanopore for a sensible period of time, e.g., 0.1 milliseconds (ms) to 10,000 ms. In some cases, the tag is loaded into the nanopore before being released from the nucleotide. In some instances, the probability that a loaded tag will pass through (and / or be detected by) the nanopore after being released in the event of nucleotide incorporation is reasonably high, e.g., 90% to 99%.

[0054] In some embodiments, before polymerase 334 is connected to nanopore 316, the conductance of nanopore 316 can be high, such as about 300 picosiemens (300 pS). When tags are loaded into the nanopore, unique conductance signals (e.g., signal 340) are generated due to the distinct chemical structures and / or sizes of the tags. For example, the conductance of the nanopore can be about 60 pS, 80 pS, 100 pS, or 120 pS, corresponding to one of four types of tagged nucleotides, respectively. The polymerase can then undergo isomerization and phosphoryl transfer reactions to incorporate the nucleotide into the growing nucleic acid molecule and release the tag molecule.

[0055] In some cases, some of the tagged nucleotides may not match (complementary bases) to the current position of the nucleic acid molecule (template). Tagged nucleotides that do not base-pair with the nucleic acid molecule may also pass through the nanopore. These unpaired nucleotides can be rejected by the polymerase within a timescale shorter than that of correctly paired nucleotides remaining associated with the polymerase. Tags attached to unpaired nucleotides pass through the nanopore quickly and can be detected only for a short period of time (e.g., less than 10 ms), while tags attached to paired nucleotides are loaded into the nanopore and are detectable for a long period of time (e.g., at least 10 ms). Thus, unpaired nucleotides can be identified by a downstream processor based at least in part on the time the nucleotide is detected in the nanopore.

[0056] Measuring the conductance (or equivalently, resistance) of a nanopore containing a loaded (threaded) tag via current flow through the nanopore can provide identification of the tag species and, therefore, the nucleotide at the current location. In some embodiments, a direct current (DC) signal can be applied to the nanopore cell (e.g., to prevent the direction of tag movement through the nanopore from reversing). However, operating a nanopore sensor using DC for extended periods can change the composition of the electrodes, create ion concentration imbalances across the nanopore, and produce other undesirable effects that can adversely affect the lifetime of the nanopore cell. Applying an alternating current (AC) waveform can reduce electron transfer, avoiding these undesirable effects and providing certain advantages, as described below. The nucleic acid sequencing methods described herein that utilize tagged nucleotides are fully compatible with applied AC voltages and, therefore, can achieve these advantages using AC waveforms.

[0057] Being able to recharge electrodes during an AC detection cycle can be advantageous when sacrificial electrodes, electrodes whose molecular characteristics change upon current application (e.g., electrodes containing silver), or electrodes whose molecular characteristics change upon current application are used. Electrodes may wear out during a detection cycle when a direct current signal is used. Recharging can prevent the electrodes from reaching a wear limit, such as complete depletion, which can be a problem when the electrodes are small (e.g., when the electrodes are small enough to provide an array of electrodes with at least 500 electrodes per square millimeter). Electrode life may, in some cases, correspond to and at least partially depend on the width of the electrode.

[0058] Suitable conditions for measuring ionic current through a nanopore are known to those skilled in the art, and examples are provided herein. Measurements can be performed by applying a voltage across the membrane and pore. In some embodiments, the voltage used can be in the range of -400 mV to +400 mV. Preferably, the voltage used is in a range having a lower limit selected from -400 mV, -300 mV, -200 mV, -150 mV, -100 mV, -50 mV, -20 mV, and 0 mV, and an upper limit separately selected from +10 mV, +20 mV, +50 mV, +100 mV, +150 mV, +200 mV, +300 mV, and +400 mV. More preferably, the voltage used is in the range of 100 mV to 240 mV, and most preferably in the range of 160 mV to 240 mV. Nanopores using higher applied potentials can improve discrimination between different nucleotides. Nucleic acid sequencing using AC waveforms and tagged nucleotides is described in U.S. Patent Application Publication No. 2014 / 0134616, entitled "Nucleic Acid Sequencing Using Tags," filed November 6, 2013, which is incorporated herein by reference in its entirety. In addition to the tagged nucleotides described in U.S. Patent Application Publication No. 2014 / 0134616, sequencing can be performed using nucleotide analogs lacking sugars or acyclic moieties, such as (S)-glycerol nucleoside triphosphates (gNTPs) of the five common nucleic acid bases, i.e., adenine, cytosine, guanine, uracil, and thymine (Horhota et al., Organic Letters, 8:5345-5347

[2006] ).

[0059] In some embodiments, other signal values, such as current values, can also or alternatively be measured and used to identify the nucleotide that has been threaded through the nanopore.

[0060] FIG. 4 shows one embodiment of a cell for performing nucleotide sequencing using preloaded tags. A nanopore 401 is formed in a membrane 402. An enzyme (e.g., a polymerase 403, such as a DNA polymerase) is associated with the nanopore. In some cases, the polymerase 403 is covalently bound to the nanopore 401. The polymerase 403 is associated with a nucleic acid molecule 404 to be sequenced. In some embodiments, the nucleic acid molecule 404 is circular. In some cases, the nucleic acid molecule 404 is linear. In some embodiments, a nucleic acid primer 405 is hybridized to a portion of the nucleic acid molecule 404. The polymerase 403 catalyzes the incorporation of a nucleotide 406 into the primer 405, using the single-stranded nucleic acid molecule 404 as a template. The nucleotide 406 comprises a tag species ("tag") 407.

[0061] FIG. 5 illustrates one embodiment of a process 500 for nucleic acid sequencing using preloaded tags. Step A illustrates the components as described in FIG. 4. Step C illustrates the tag being loaded into the nanopore. A "loaded" tag can be a tag that is located within and / or remains within or near the nanopore for a sensible period of time, e.g., 0.1 milliseconds (ms) to 10,000 ms. In some cases, the preloaded tag is loaded into the nanopore before being released from the nucleotide. In some instances, a tag is preloaded when the probability that the tag will pass through (and / or be detected by) the nanopore after being released in the event of nucleotide incorporation is reasonably high, e.g., 90% to 99%.

[0062] In step A, a tagged nucleotide (one of four different types: A, T, G, or C) is not associated with the polymerase. In step B, the tagged nucleotide is associated with the polymerase. In step C, the polymerase is docked to the nanopore. Upon docking, the tag is drawn into the nanopore by electrical forces, such as forces arising in the presence of an electric field generated by a voltage applied across the membrane and / or nanopore.

[0063] Some of the associated tagged nucleotides are not base-paired with the nucleic acid molecule. These unpaired nucleotides are typically rejected by the polymerase within a timescale that is shorter than the timescale that correctly paired nucleotides remain associated with the polymerase. Because the unpaired nucleotides are only transiently associated with the polymerase, the process 500 shown in FIG. 5 typically does not progress past step D. For example, the unpaired nucleotides are rejected by the polymerase in step B or shortly after the process proceeds to step C.

[0064] In various embodiments, before the polymerase docks into the nanopore, the conductance of the nanopore may be approximately 300 picosiemens (300 pS). As another example, in step C, the conductance of the nanopore may be approximately 60 pS, 80 pS, 100 pS, or 120 pS, corresponding to one of four types of tagged nucleotides. The polymerase incorporates the nucleotide into the growing nucleic acid molecule through isomerization and phosphoryl transfer reactions, releasing the tag molecule. In particular, when the tag is retained within the nanopore, the distinct chemical structures of the tag generate unique conductance signals (e.g., see signal 310 in FIG. 3 ), thereby electronically identifying the added base. Repeating the cycle (i.e., steps A-E or steps A-F) enables sequencing of the nucleic acid molecule. In step D, the released tag passes through the nanopore.

[0065] In some cases, tagged nucleotides that are not incorporated into the growing nucleic acid molecule also pass through the nanopore, as seen in step F of Figure 5. While unincorporated nucleotides may, in some cases, be detected by the nanopore, the present method provides a means for distinguishing between incorporated and unincorporated nucleotides based at least in part on the time the nucleotide is detected in the nanopore. Tags attached to unincorporated nucleotides pass quickly through the nanopore and are detected for only a short period of time (e.g., less than 10 ms), whereas tags attached to incorporated nucleotides are loaded into the nanopore and detected over an extended period of time (e.g., at least 10 ms).

[0066] Further details regarding nanopore-based sequencing can be found, for example, in U.S. patent application Ser. No. 14 / 577,511, entitled "Nanopore-Based Sequencing With Varying Voltage Stimulus," U.S. patent application Ser. No. 14 / 971,667, entitled "Nanopore-Based Sequencing With Varying Voltage Stimulus," U.S. patent application Ser. No. 15 / 085,700, entitled "Non-Destructive Bilayer Monitoring Using Measurement Of Bilayer Response To Electrical Stimulus," and U.S. patent application Ser. No. 15 / 085,713, entitled "Electrical Enhancement Of Bilayer Formation." C. Nanopore-Based Sequencing Using Surrogate Molecules

[0067] Another example is sequencing by eXpansion (SBX). In such technologies, chemistry converts DNA sequences into easily measurable surrogate molecules, such as Xpandomer molecules. In some embodiments, Xpandomer synthesis is based on the natural mechanism of DNA replication, in which extendible nucleoside triphosphates (X-NTPs) serve as substrates for template-dependent polymerase-based replication. Xpandomer synthesis can be based on four easily distinguishable X-NTPs (also called high-signal-to-noise reporters), one for each DNA base. Engineered polymerases can incorporate these modified nucleotides into the Xpandomer to accurately copy target nucleic acid templates from libraries. As the Xpandomer molecule passes through the nanopore, the distinct electrical signals of each base reporter (reporter element) can be easily distinguished, enabling high-precision, high-throughput nanopore-based nucleic acid sequencing.

[0068] A surrogate molecule (e.g., Xpandomer) can be formed from a template nucleic acid molecule in the following manner: The surrogate molecule can include multiple units. Each unit can include one or more reporter code portions (also called reporter elements). The reporter codes can correspond to different nucleotides (e.g., A, T, C, G). The reporter codes can generate different electrical signals in the nanopore, thus allowing for identification of the nucleotide sequence. The surrogate molecule can be shuttled through the nanopore several times to allow for multiple reads.

[0069] As some examples, nanopore sequencing by expansion (SBX) is described in International Publication No. WO 2020 / 236526, filed May 14, 2020, entitled "Translocation control elements, reporter codes, and further means for translocation control for use in nanopore sequencing," and U.S. Patent No. 7,939,259, filed June 19, 2008, entitled "High throughput nucleic acid sequencing by expansion," the entire contents of both of which are incorporated herein by reference for all purposes. II. Measurement circuit

[0070] FIG. 6A shows a lipid membrane or lipid bilayer 612 positioned between a cell working electrode 614 and a counter electrode 616 as part of an electrical circuit 600 such that a voltage is applied across the lipid membrane / bilayer 612. A lipid bilayer is a thin film consisting of two layers of lipid molecules. A lipid membrane is a membrane that is a few (three or more) lipid molecules thick. Additionally, the lipid membrane / bilayer 612 is in contact with a bulk liquid / electrolyte 618. Note that the working electrode 614, lipid membrane / bilayer 612, and counter electrode 616 are depicted upside down compared to the working electrode, lipid bilayer, and counter electrode of FIG. 1. In some embodiments, the counter electrode is shared among multiple cells and is therefore also referred to as a common electrode. The common electrode is connected to a voltage source V liq 620 can be configured to apply a common potential to the bulk liquid in contact with the lipid membrane / bilayer in the measurement cell. The common potential and common electrode are common to all measurement cells. In contrast to the common electrode, a working cell electrode is present in each measurement cell, and the working cell working electrode 614 can be configured to apply a separate potential independently of the working cell electrodes of the other measurement cells.

[0071] Figure 6B shows another variation of the circuit shown in Figure 6A for the electrical circuit 600 within a cell of a nanopore-based sequencing chip. Compared to Figure 6A, instead of showing the lipid membrane / bilayer between the working and counter electrodes, an electrical model is shown that represents the electrical properties of the working electrode and the lipid membrane / bilayer.

[0072] 6B shows an electrical circuit 600 (which may include a portion of electrical circuit 222 of FIG. 2) that represents an electrical model of a nanopore cell, such as nanopore cell 200. As mentioned above, in some embodiments, electrical circuit 600 includes a counter electrode 640 (e.g., counter electrode 210) that may be shared among multiple nanopore cells or all nanopore cells in the nanopore sensor chip and is therefore sometimes referred to as a common electrode. The common electrode is coupled to a voltage source V liq 620 can be configured to apply a common potential to the bulk electrolyte (e.g., bulk electrolyte 208) in contact with the lipid bilayer (e.g., lipid bilayer 214) in the nanopore cell. In some embodiments, an AC non-Faraday mode can be utilized to apply a voltage V liq can be modulated with an AC signal (e.g., a square wave) and applied to the bulk electrolyte in contact with the lipid bilayer within the nanopore cell. In some embodiments, V liq is a square wave with a magnitude of ±200-250 mV and a frequency between, for example, 25-600 Hz. The bulk electrolyte between the counter electrode 640 and the lipid bilayer can be modeled by a large capacitor (not shown), for example, 100 μF or more.

[0073] 6B further illustrates an electrical model 622 that represents the electrical properties of the working electrode 602 (e.g., working electrode 202) and the lipid bilayer (e.g., lipid bilayer 214). The electrical model 622 includes a capacitor C that models the capacitance associated with the lipid bilayer. bilayer 626 and a resistor R that models the variable resistance associated with the nanopore that can change based on the presence of a particular tag within the nanopore. pore 628. Additionally, the electrical model 622 includes a double layer capacitance cdbl and a capacitor C representing the electrical properties of the working electrode 602 and well (e.g., well 205) of the cell. dbl 624. Working electrode 602 may be configured to apply a separate potential independent of the working electrodes in other nanopore cells.

[0074] The pass device 606 can be a switch that can be used to connect or disconnect the lipid bilayer and working electrode to the electrical circuit 600. The pass device 606 can be controlled by a memory bit to enable or disable a voltage stimulus applied across the lipid bilayer of the nanopore cell. Until lipids are deposited to form the lipid bilayer, the impedance between the two electrodes is very low because the well of the nanopore cell is not sealed, so the pass device 606 can be kept open to avoid a short circuit condition. The pass device 606 can be closed after the lipid solvent is deposited into the nanopore cell and the well of the nanopore cell is sealed.

[0075] The electrical circuit 600 includes an on-chip integrating capacitor C int 608(n cap ) may further include an integrating capacitor C int 608 uses the reset signal 603 to close the switch 601, thereby resetting the integrating capacitor C int 608 is a voltage source V pre 605. In some embodiments, the voltage source V pre 605 provides a fixed positive voltage having a magnitude of, for example, 900 mV. When switch 601 is closed, integrating capacitor C int 608 is a voltage source V pre 605 may be precharged to a positive voltage level.

[0076] Integrating capacitor C int After 608 is precharged, a reset signal 603 is used to open switch 601 and turn on the integrating capacitor C int 608 is a voltage source V pre605. At this point, the voltage source V liq Depending on the level of int 608), or vice versa. liq During the positive phase of the square wave from the voltage source V (e.g., during the light or dark period of the AC voltage source signal cycle), the potential of the counter electrode 640 is at a higher level than the potential of the working electrode 602. liq During the negative phase of the square wave from the AC voltage source (e.g., during the dark or light period of the AC voltage source signal cycle), the potential of the counter electrode 640 is at a level lower than the potential of the working electrode 602. Therefore, in some embodiments, the integrating capacitor C int 608 is connected to a voltage source V pre From the pre-charged voltage level of 605, it may be further charged to a higher level and discharged to a lower level during the dark period due to the potential difference between the counter electrode 640 and the working electrode 602. In other embodiments, charging and discharging may occur during the dark and light periods, respectively.

[0077] Integrating capacitor C int 608 may be charged or discharged over a fixed period depending on the sampling rate of the analog-to-digital converter (ADC) 610, which may be greater than 1 kHz, 5 kHz, 10 kHz, or 100 kHz, or even higher. For example, at a sampling rate of 1 kHz, the integrating capacitor C int 608 may be charged / discharged over a period of about 1 ms, and then at the end of the integration period the voltage level may be sampled and converted by ADC 610. A particular voltage level will correspond to a particular tag species within the nanopore and therefore to the nucleotide at the current position on the template.

[0078] After being sampled by the ADC 610, the integrating capacitor C int 608 is an integrating capacitor C int 608 is again the voltage source V preThe integrating capacitor C may be precharged again by closing switch 601 using reset signal 603 so that it is connected to 605. int 608 and pre-charging the integrating capacitor C int The steps of waiting a period of time for charging or discharging 608 and sampling and converting the voltage level of the integrating capacitor with ADC 610 may be repeated periodically throughout the sequencing process.

[0079] The digital processor 630 can process the ADC output data, for example, for normalization, data buffering, data filtering, data compression, data reduction, event extraction, or assembling the ADC output data from the array of nanopore cells into various data frames. In some embodiments, the digital processor 630 can perform further downstream processing, such as base calling. The digital processor 630 can be implemented as hardware (e.g., within a GPU, FPGA, ASIC, etc.) or as a combination of hardware and software.

[0080] Thus, a voltage signal applied across the nanopore can be used to detect a specific state of the nanopore. One possible state of the nanopore is an open channel state when no tagged polyphosphates are present in the nanopore barrel. The other four possible states of the nanopore correspond to states when one of four different types of tagged polyphosphate nucleotides (A, T, G, or C) is held within the nanopore barrel. Yet another possible state of the nanopore is when the lipid bilayer is ruptured.

[0081] Integrating capacitor C int When the voltage level at 608 is measured after a period of time, different states of the nanopore can result in different voltage level measurements. intThe rate of decay (decrease due to discharging or increase due to charging) of the voltage at 608 (i.e., the rate of decay of the integrating capacitor C int The steepness of the voltage graph at 608 is related to the resistance of the nanopore (e.g., resistor R pore 628). More specifically, because the resistances for the nanopore in different states are different due to the distinct chemical structures of the molecules (tags), correspondingly different rates of voltage decay are observed, which can be used to distinguish between different states of the nanopore. The voltage decay curves can be exponential curves with an RC time constant τ=RC, where R is the resistance for the nanopore (i.e., R pore 628), and C is the capacitance of the membrane in parallel with R (i.e., capacitor C bilayer 626). The time constant of the nanopore cell can be, for example, about 200-500 ms. Although the decay curve may not exactly match an exponential curve due to the detailed implementation of the bilayer, the decay curve can resemble an exponential curve and be monotonic, thus allowing for detection of the tag.

[0082] In some embodiments, the resistance for a nanopore in an open channel state can be in the range of 100 MOhm to 20 GOhm. In some embodiments, the resistance for a nanopore with a tag present inside the nanopore barrel can be in the range of 200 MOhm to 40 GOhm. In other embodiments, the integrating capacitor C int 608 may be omitted because the voltage introduced to the ADC 610 will still vary due to voltage attenuation in the electrical model 622 .

[0083] Integrating capacitor C int The rate of decay of the voltage at 608 can be determined in a variety of ways. As mentioned above, the rate of voltage decay can be determined by measuring the voltage decay over a fixed time interval. For example, the rate of decay of the voltage at 608 can be determined by measuring the voltage decay over a fixed time interval. intThe voltage at 608 can be first measured by ADC 610 at time t1, after which the voltage is measured again by ADC 610 at time t2. int When the slope of the voltage curve of 608 is steeper, the voltage difference is larger, and when the slope of the voltage curve is gentler, the voltage difference is smaller. int The rate of decay of the voltage at 608 can be used as a metric to determine the state of the nanopore cell.

[0084] In other embodiments, the rate of voltage decay can be determined by measuring the time required for a selected amount of voltage decay. For example, the time required for the voltage to fall or rise from a first voltage level V1 to a second voltage level V2 can be measured. The steeper the voltage versus time curve, the shorter the time required; the less steep the voltage versus time curve, the longer the time required. In this way, the required time can be measured and the integrating capacitor C int Voltage at 608 V ncap The rate of decay of the resistance of the nanopore can be used as a metric to determine the rate of decay of the resistance of the nanopore, and therefore the state of the nanopore cell. Those skilled in the art will recognize various circuits that can be used to measure the resistance of the nanopore, for example, amperometric techniques.

[0085] In some embodiments, the electrical circuit 600 includes a pass device (e.g., pass device 606) and an additional capacitor (e.g., an integrating capacitor C int 608), which allows the size of the nanopore-based sequencing chip to be reduced. bilayer 626) may be sufficient to create the required RC time constant by itself, without requiring any additional capacitance on the chip. bilayer 626 can be used as an integrating capacitor, and the voltage signal Vpre Then, the voltage signal V liq By eliminating the additional capacitors and pass devices that would otherwise be fabricated on-chip in the electrical circuitry, the footprint of a single nanopore cell in the nanopore sequencing chip can be significantly reduced, and thus the nanopore sequencing chip can be easily scaled to include many more cells (e.g., having millions of cells in the nanopore sequencing chip).

[0086] Figure 7 shows example data points captured from a nanopore cell during the light and dark periods of an AC cycle. The changes in the data points are exaggerated in Figure 7 for illustrative purposes. The voltage (V) applied to the working electrode or integrating capacitor PRE ) is at a constant level, for example 900 mV. The voltage signal 510 (V LIQ ) is an AC signal shown as a square wave, with a duty cycle of, for example, about 40%, but which may be any suitable value, such as 50% or less.

[0087] During the light period 720, the voltage source V liq The voltage signal applied to the counter electrode by 620 is the voltage V applied to the working electrode. PRE lower, so that the tag may be forced into the nanopore barrel by the electric field caused by the different voltage levels applied to the working and counter electrodes (e.g., due to the flow of charges and / or ions on the tag). When switch 601 is opened, the voltage at the node before the ADC (e.g., at the integrating capacitor) decreases. After a voltage data point is acquired (e.g., after a specified period of time), switch 601 can be closed and the voltage at the measurement node will again drop to V PRE The process can be repeated to measure multiple voltage data points. In this way, multiple data points may be acquired during the light period.

[0088] As shown in Figure 7, V LIQ The first data point 722 in the light period after the change in sign of the signal may be lower than the subsequent data point 724. This may be because there is no tag in the nanopore (open channel), and therefore the resistance is low and the discharge rate is high. In some cases, the first data point 722 may be lower than V, as shown in FIG. LIQ This may be due to the capacitance of the double layer coupling the signal to the on-chip capacitor. Data point 724 may be acquired after the insertion event occurs, i.e., after the tag is forced into the nanopore barrel, where the resistance of the nanopore, and therefore the rate of discharge of the integrating capacitor, depends on the particular type of tag forced into the nanopore barrel. Data point 724 may be acquired by measuring the C dbl Due to charge buildup at 624, it may decrease slightly with each measurement.

[0089] During the dark period 730, the voltage signal 710 (V LIQ ) is the voltage applied to the working electrode (V PRE ), and thus the tag is believed to be pushed out of the nanopore barrel. When switch 601 is opened, the voltage signal 710 (V LIQ ) voltage level is V PRE After a voltage data point is taken (e.g., after a specified period of time), switch 601 can be closed and the voltage at the measurement node will again rise to V PRE 7. The process can be repeated to measure multiple voltage data points. In this manner, multiple data points can be acquired during the dark period, including the first point delta 732 and subsequent data point 734. As noted above, during the dark period, the nucleotide tag is extruded from the nanopore, and thus minimal information about the nucleotide tag is acquired in addition to being used in normalization.

[0090] Furthermore, FIG. 7 shows that during the light period 740, even if the voltage signal 710 (V LIQ ) is the voltage (V PRE ), indicating that no insertion event occurs (open channel). Thus, the resistance of the nanopore is low and the rate of discharge of the integrating capacitor is high. As a result, the acquired data points, including the first data point 742 and subsequent data point 744, exhibit low voltage levels.

[0091] The voltage measured during the light or dark period can be expected to be approximately the same for each measurement of the constant resistance of the nanopore (e.g., performed during the light mode of a given AC cycle when one tag is in the nanopore), because the charge on the double layer capacitor C dbl This may not be the case when charge accumulates at 624. This charge accumulation can cause the time constant of the nanopore cell to become longer. As a result, the measured value can decrease for each data point within a cycle due to shifting voltage levels. Thus, within a cycle, the data points can vary somewhat from one data point to another, as shown in FIG. 7. III. Raw Read Data Compression Architecture

[0092] In some embodiments, a sequencing system may generate raw read data at a rate that exceeds the capacity of one or more elements downstream of the sensor that performs sequencing and generates raw data. The one or more elements may include elements in a data processing system used to store or analyze data. The one or more elements may include a bus channel capacity or memory capacity. The difference in speed between data generation and subsequent analysis and / or storage may result in data overload and reduce the performance of the sequencing device. Therefore, a method and system for locally compressing raw read data in real time is disclosed herein. A. Sequencing System

[0093] 8 illustrates one embodiment of a sequencing system, including the hardware configuration and communication channels between different components of the system. A sequencing sensor 810 generates raw data, which is transmitted to an inference circuit 820 (also referred to as an inference chip) at a rate 815. The inference circuit 820 generates a stream of raw read data from the raw data, including base calls, quality scores, and other substreams (e.g., header information). In some embodiments, the rate 815 may be at least 12 gigabytes per second (GB / s).

[0094] The raw read data or substreams thereof, as well as the raw data and any intermediate data, can be transmitted between memory 830 and inference circuitry 820 at a rate 835. In various embodiments, rate 835 is at least about 50 GB / s, 60 GB / s, 70 GB / s, 80 GB / s, 100 GB / s, 150 GB / s, 200 GB / s, or more than 200 GB / s. Memory 830 can buffer the raw data, the raw read data, or portions thereof.

[0095] The raw read data stream can be sent to and from storage 840 at rates 825 and 845. Storage 840 can be on-station storage, which is a data storage device (e.g., a hard drive or hard disk, such as a solid-state drive) that can be located on the same device as the inference chip. Rates 825 and 845 can be approximately 1.3-2 GB / s. In some embodiments, the rate 845 of data output from storage 840 (shown as on-system storage) can be lower than the input rate 825. These rates are merely examples and are used to illustrate that downstream throughput is less than the amount of data generated upstream, and therefore a bottleneck exists. Various embodiments can address this bottleneck by compressing or discarding data in a specific manner that preserves accuracy.

[0096] A network inference controller (NIC) 850 can be used to offload data from storage device 840 to an external drive or disk at a rate 855. The NIC can provide a high transfer rate of approximately 1.25 GB / s (10 Gb / s). As shown in this example, the rate of raw data generation 815 is much faster than the rate of data transmission to and from storage device 840. Therefore, data needs to be compressed in real time as it is generated by inference circuitry 820.

[0097] By way of example, the inference circuitry 820 can include multiple cores or chips. For example, some embodiments can have multiple GPUs (e.g., four, six, eight, etc.) connected by a very high bandwidth link, such as a wire-based serial multi-lane short-range communication link (e.g., NVlink). In some cases, the dynamic random access memory (DRAM) of one GPU can also access the DRAM of the next GPU. B. Compressing raw read data in real time

[0098] FIG. 9 is a flowchart illustrating a method for real-time compression of raw read data obtained from raw data generated by a sequencing device (e.g., a nanopore-based sequencing device). The raw data may include sequencing data for one or more nucleic acid molecules or portions thereof. Raw read data can be generated from the raw data. The raw data can be processed by a primary analysis pipeline to generate raw read data, for example, by accelerated computing hardware (e.g., inference circuit 820 of FIG. 8). The raw read data can then be stored locally (e.g., in a buffer) or provided in real time for compression (e.g., by using method 900). The raw data and / or raw read data can be buffered in memory for approximately 5 seconds (s), 3 s, 2 s, 1 s, 0.5 s, 0.1 s, or less. The data buffering period is a small fraction of, or significantly shorter than, an execution cycle (e.g., the time required for the sequencing device to generate raw data) to ensure real-time processing of the data. In some cases, the raw read data is provided for compression when generated from the raw data (e.g., by method 900).

[0099] In step 910, raw read data for a nucleic acid molecule is received (e.g., from inference circuitry 820 or memory 830). The raw read data may be received by another portion of inference circuitry 820. The raw read data may be generated from the raw data by a base calling module using, for example, the techniques disclosed in U.S. Patent Application No. 15 / 669,207, the entirety of which is incorporated herein by reference for all purposes.

[0100] In step 920, substreams, such as a base call substream, a quality score substream, and a header substream, can be generated from the raw read data. The base call data in the base call substream can include a sequence of base calls for each of a plurality of nucleic acid molecules (e.g., at least 100,000 nucleic acid molecules) or portions thereof. A header data substream can be generated to distinguish sequencing data corresponding to separate sequencing processes or separate molecules or portions thereof. Similarly, a quality score substream can be generated for each raw read stream. A primary analysis pipeline can convert raw data from the sequencing device into raw read data including base calls, quality scores, and a header substream in real time. The rate of raw read generation may be approximately 1000 reads / second, 10,000 reads / second, 100,000 reads / second, 1,000,000 reads / second, 10,000,000 reads / second, 100,000,000 reads / second, 1,000,000,000 reads / second, or even higher.

[0101] In some embodiments, the primary analysis pipeline performs step 920 in real time. For example, the primary analysis can convert raw data from a sequencing device into raw read data as soon as the sequencing cell produces complete raw data for a given sequencing cell (i.e., a given nucleic acid molecule). Alternatively, the primary analysis pipeline can perform step 920 in a near-real-time manner. In some embodiments, the raw data is buffered for a period that may be longer than the average time of a molecular trace detection event. The raw data may accumulate during this time, which is called a time chunk. The data for the time chunk can be processed, and all reads from a given time chunk can be generated substantially simultaneously. A time chunk can last approximately 0.1 seconds, 1 second, or 10 seconds. A time chunk can last at least approximately 0.1 seconds, 1 second, 10 seconds, or more. A time chunk can be up to approximately 10 seconds, 1 second, 0.1 seconds, or less in length.

[0102] In some embodiments, a portion of the raw read data can be temporarily stored. The raw read data can then be compressed at a later point in time. In some embodiments, a channel downstream of the sequencing device may not have the capacity to transfer, analyze, or store the raw data or raw read data at the rate at which it is generated by the sequencing device. In these cases, the raw data and / or raw read data can be compressed before transferring or storing the data.

[0103] In step 930, the raw read data stream is compressed. In some embodiments, each substream within the raw read data is compressed separately. Different substreams within the raw read data may be analyzed and compressed simultaneously or sequentially. For example, a header substream, a base call data substream, and a quality score data substream may be processed one after the other in an ordered or unordered manner (e.g., using multiple threads in series that can function as a single computational thread). In some embodiments, the substreams are compressed in parallel. Further details regarding compression are provided below.

[0104] In step 940, the compressed data substreams are transferred to disk for storage. This may eliminate the need to write and / or read uncompressed data (e.g., raw data or raw read data) to and / or from disk. Because raw read data is generated by the sequencing device at an extremely high rate, writing large amounts of raw data and / or raw read data to disk may be infeasible due to system constraints, such as limited available memory size, I / O bandwidth, or limited bus channel capacity. In some cases, compressed substreams of raw read data are combined to generate compressed data corresponding to the sequencing data generated from the sequencing device in a single compressed data stream.

[0105] In some cases, in steps 920-930, raw read data from the time chunks is compressed. The raw read data may be compressed simultaneously or sequentially from separate time chunks. The compressed data from each time chunk can be stored in memory (e.g., a buffer). The compressed data from separate time chunks can then be combined into a single compressed data stream. This can be used when data from nucleic acid molecules is generated in different time chunks. The combined compressed data can be stored in memory (e.g., a buffer) so that compressed data from the same nucleic acid molecule generated in a later time chunk can be merged. C. Compression of read data substreams using separate threads and load balancing

[0106] FIG. 10 is a flowchart illustrating another exemplary method for compressing raw data generated by a sequencing device (e.g., a nanopore-based sequencing device).

[0107] In step 1010, a first stream of raw data is received from the sensor chip. The raw data may include multiple measurements for each position of a plurality of nucleic acid molecules. The plurality of nucleic acid molecules may include at least 2, 3, 4, 5, 10, 50, 100, 1,000, 10,000, 100,000, 500,000, 1 million, or even more nucleic acid molecules. The sensor chip may include multiple sequencing cells, each sequencing a separate nucleic acid molecule. In some embodiments, the raw data received from the sensor chip may include sequencing data for multiple nucleic acids corresponding to the same nucleic acid molecule or a portion thereof. In some embodiments, the raw data received from two or more of the multiple cells in the sensor chip may include sequencing data that are uncorrelated with each other in terms of sequence content or their position relative to a reference genome. For example, the raw data generated by the sensor chip from multiple cells may include sequencing information corresponding to two or more nucleic acid molecules that may belong to different positions relative to a reference sequence.

[0108] In step 1020, the primary analysis pipeline generates a second stream of raw read data from the raw data received from the sensor chip. The raw read data can be generated from the raw data by a base calling module using, for example, the techniques disclosed in U.S. Patent Application Publication No. 2018 / 0037948, which is incorporated by reference in its entirety for all purposes.

[0109] Each raw read data stream may correspond to a specific location within a nucleic acid molecule or genome. In some cases, a barcode (e.g., a unique or random sequence identifier) ​​may be attached to the nucleic acid molecule to identify the molecule. The barcode may be attached to the nucleic acid molecule prior to sequencing. For example, a unique molecular identifier (UMI), molecular barcode, or random barcode may be attached to the nucleic acid molecule or a portion thereof during library preparation prior to sequencing. Base call data corresponding to such barcodes may be used to identify the nucleic acid molecule in real time.

[0110] The second stream of raw read data generated in step 1020 from raw data corresponding to specific locations on a nucleic acid molecule or genome can be separated into data substreams. The data substreams can include a header data substream, a quality score substream, and a base call data substream.

[0111] In step 1030, a header data substream is extracted from the second stream of raw read data. The header data can have a specific format that can be used for extraction. In other examples, specific data tags (e.g., any set of bits or characters) can be used to separate different types of data, such as separating header data from base call data.

[0112] In step 1040, the header data substream is compressed to generate compressed header information. The analysis and compression of the header data substream may be performed by one or more computational threads (threads). In some cases, the process of compressing the header data substream is performed by one or more first threads. The threads may be executed in parallel or serially. As described above, the raw data generated by the sequencing chip may include sequencing information corresponding to different nucleic acid molecules or locations within a genome. The header data may include information identifying one read among multiple reads in the raw data. In some embodiments, the header data includes a string or text. Thus, the header data can be compressed as text. In some embodiments, the header data substream is composed of multiple data subfields. Individual data subfields may be identified using data specifications for each subfield. For example, a subfield may be represented by the character length of the data or a delimiter. Alternatively, the header data may be binary encoded and then compressed (e.g., lossless or lossy bit compression).

[0113] In step 1050, a base call data substream is extracted from the second stream of raw read data. The base call data can include a sequence of base calls for each of a plurality of nucleic acid molecules (e.g., at least 100,000 nucleic acid molecules) or a portion thereof. The base call data substream includes a nucleotide type or base call for each position in a sequence read from the raw read data. Extraction can use similar techniques across different substreams.

[0114] In step 1060, the base call data substreams are compressed to generate compressed base call data. In some cases, the compression of the base call data is lossless, in which substantially all data is preserved. In other words, lossless compression reduces the size of the data without removing some of the data, as opposed to lossy compression, which involves removing some of the data. The analysis and compression of the base call data substreams may be performed by one or more threads. The computational thread used to analyze and compress the base call data substreams may be different from the thread used to analyze and compress the header data substream. In some cases, the process of compressing the base call data substreams is performed by one or more second threads. The second thread may include one or more computational threads that may operate in parallel, serially, or any combination thereof. The threads described herein may be software threads or hardware threads.

[0115] In step 1070, a quality score data substream is extracted from the second stream of raw read data. The quality score data substream contains the probability that a base call at a given position in a sequence read is correct. The quality score may be encoded as a single ASCII value (e.g., a single character). The quality score may be encoded by converting a concrete value (e.g., a probability value between 0 and 1, 0 and 100, or 0 and 1000) into a discrete or categorical value (e.g., low quality, high quality, very high quality, or very low quality, or discrete numbers indicating the same category). The quality score may include multiple values ​​for multiple features associated with each base call (multi-valued features). The quality score for each base call may include, for example, a probability score or confidence score that the base call is correct, as well as multiple scores for the likelihood of a mismatch (e.g., including an insertion, deletion, skip, or soft clip) indicating the probability that the base call is a mismatch. Thus, there may be a substitution score, an insertion score, a deletion score, or other types of scores. The features may include features other than the mismatch probability. Additionally, the score may be a linear combination of the scores.

[0116] In step 1080, the quality score data substreams are compressed to generate compressed quality score data. In some cases, the compression of the quality score data is lossy. The analysis and compression of the quality score data substreams may be performed by one or more threads. The computational thread used to analyze and compress the quality score data substreams may be different from the threads used to analyze and compress the header data substream or the base call data substream. In some cases, the process of compressing the quality score data substreams is performed by a third thread. The third thread may include one or more computational threads that may operate in parallel, serially, or any combination thereof.

[0117] In step 1090, the compressed header data, compressed base call data, and compressed quality score data can optionally be combined to generate a third stream of compressed data. In some embodiments, the compressed header data, compressed base call data, and compressed quality score data are stored separately in memory (e.g., on a storage device, disk, or cloud storage). Different sub-streams can be processed and compressed using separate threads.

[0118] A load balancing system can be used to manage the computational resources allocated to each thread. In some embodiments, the load balancing system allocates computational resources to minimize the number of computing units that are idle at any given time. This can maximize processing power and minimize processing time. In some cases, the load balancing system allocates computational resources to different threads to ensure that the compression processes for all sub-streams are completed approximately simultaneously. Computational resources can include computing units (e.g., CPUs, GPUs, FPGAs, memory, I / O bandwidth, etc.).

[0119] The sequence read data of the base call data substream, header data substream, and quality score data substream of one or more nucleotides may be processed and compressed at a time. The compressed data stream can be generated by adding the compressed data of one or more nucleotides at a time. The incomplete compressed data stream can be intermittently stored in local memory (e.g., SRAM). The complete compressed data can then be stored in a storage device (e.g., a hard drive such as a solid-state drive). D. Load Balancing

[0120] Raw read data can be generated from raw data obtained from the sensor chip. The raw read data stream can include two or more substreams of base call data, quality score data, and header data. Each substream can contain data that may differ (e.g., in content or format) from the data in the other substreams. Thus, analysis and compression of each substream data can be performed differently (e.g., using different algorithms, threads, or different hardware). Disclosed herein are systems and methods for compressing base call substreams, quality score (q-score or Q-score) substreams, and header data substreams.

[0121] 11A illustrates one embodiment of a raw read data compression system 1100. Raw read data 1110 can be generated from raw data received from a sequencing device (e.g., by using a base call module), as described above. Depending on the configuration used, various modules (engines) may be optional.

[0122] Substreams of data can then be extracted from the raw read data using an extraction engine 1120. The extraction engine 1120 can analyze the raw read data to generate a first substream of header data, a second substream of base call data, and a third substream of quality control data. The extraction engine 1120 can include logic to search for specific characters that identify the type of data or separation markers that separate different types of data. The raw read data 1110 can include portions of different types of data in a specified order so that the next type of data after the separation marker can be pre-specified.

[0123] Each of the substreams may then be processed and compressed by a separate computational thread. A first thread 1130 may be used to compress the first substream of header data. A second thread 1140 may be used to compress the second substream of base call data. A third thread 1150 may be used to compress the third substream of quality score data. In some cases, the first, second, and third threads may include one or more computational threads. In some cases, two or more substreams may be processed and compressed using a single thread. Additionally, the first, second, and third threads may communicate with a synchronization engine 1160. The threads may correspond to software threads that may be assigned to one or more processing units (e.g., time-shared when assigned to the same processing unit and executed in parallel on different processing units).

[0124] The synchronization engine 1160 may perform various functions. For example, the synchronization engine can coordinate the scheduling of threads. For example, the synchronization engine 1160 can perform load balancing by assigning one or more threads to be processed by one or more processing units (e.g., CPUs, GPUs, FPGAs, or virtual machines). The assignment can be based on known ratios of the data amounts of various streams or the complexity of the compression technique (e.g., base call compression requires alignment to a reference sequence). The synchronization engine 1160 can receive dynamic information, for example, regarding the size of data buffered for a given substream, indicating that the particular substream is lagging. In such a case, the synchronization engine 1160 can allocate more resources (e.g., time or hardware) to that substream. Additionally, the synchronization engine 1160 can allocate one or more threads to a memory unit (e.g., a memory cache or buffer). The synchronization engine 1160 can allocate resources to threads to ensure that the substreams are compressed at approximately the same rate or output at approximately the same time. The synchronization engine 1160 can then send the compressed sub-streams to the combining engine 1170 .

[0125] In some embodiments, the hardware resources dedicated to a particular sub-stream may be dedicated (e.g., ASICs). In such a situation, the synchronization engine 1160 may coordinate the output data so that all compressed data for a particular sequencing cell (e.g., the same nucleic acid) can be identified in the sub-stream, and such synchronized data may be bundled together and sent downstream, for example, to the combine engine 1170. In other embodiments, the threads may provide compressed data directly to the combine engine 1170, and the synchronization engine 1160 may not be present.

[0126] The combine engine 1170 can merge two or more of the compressed substreams to generate a single compressed data stream corresponding to the raw read data 1110. In some cases, nucleic acid molecules may be sequenced discontinuously (e.g., in time chunks). The combine engine 1170 can include a buffer for storing combined compressed data from two or more raw read data streams (e.g., from separate time chunks). The combine engine 1170 can then merge the combined and compressed data streams from the different raw read data streams into a single compressed data stream. The combined and compressed data streams from the combine engine 1170 can then be sent to an input / output (I / O) unit 1180. Alternatively, the compressed substreams may be sent directly to the I / O 1180, e.g., if no combining is performed and instead the compressed substreams are output when ready. Separate chunks of each substream can be buffered and output in chunks.

[0127] 11B illustrates an example of a load balancing system 1181 for scheduling software threads. The load balancing system 1181 may be part of a synchronization engine (e.g., synchronization engine 1160). One or more software threads 1185 may process and compress one or more substreams extracted from raw data (e.g., using extraction engine 1120). A scheduler 1187 may assign one or more threads 1185 to a computational processing unit 1190. The computational processing unit 1190 may comprise one or more processing units (e.g., a CPU, a GPU, an FPGA, or a virtual machine). The scheduler 1187 may assign each thread to one or more CPUs, one or more GPUs, or a combination thereof. In some cases, two or more threads may be assigned to a single processing unit (CPU, GPU, or FPGA).

[0128] The scheduler 1187 can assign threads to the processing units 1190 based at least in part on known ratios of the data amounts of the various threads. The assignment can be based at least in part on dynamic information regarding the size of data buffered for a given thread, for example, indicating that the particular thread is lagging. The scheduler 1187 can ensure that the software threads 1185 are processed at approximately the same rate or output approximately simultaneously. Each thread can output a compressed sub-stream, or a portion thereof, to the memory 1192. The memory 1192 can include one or more temporary storage units (e.g., cache memory). In some cases, the output from one or more threads can be combined by the processing unit 1190 to generate combined compressed data or packaged into one output to be processed by a combining engine (e.g., the combining engine 1170). The load balancing system 1181 can perform any of the other processes described above for the synchronization engine 1160. IV. Compression Techniques A. Reference-Based Methods for Read Compression

[0129] 12 is a flowchart illustrating a method 1200 for compressing a base call substream from raw read data generated by a sequencing device (e.g., a nanopore-based sequencing device). The base call data can include a sequence of base calls (also referred to as sequence reads) for each of at least 100,000 nucleic acid molecules, or for some other number of molecules, such as at least 2, 3, 4, 5, 10, 50, 100, 1000, 10,000, 100,000, 500,000, 1 million, or even more nucleic acid molecules. For sequence reads corresponding to nucleic acid molecules, the base call data includes a base call for each position within the sequence read. Method 1200 can be performed for each sequence of base calls corresponding to each nucleic acid. The compression can be the compression of the second substream of base call data described above.

[0130] The base call data substreams store sequences of bases in nucleic acid molecules (e.g., DNA or RNA), hereinafter referred to as sequence reads or reads. A sequence read in a base call data substream may include a nucleic acid sequence as a string of A, T, C, G, U, or N, where each letter represents adenine (A), thymine (T), guanine (G), cytosine (C), uracil (U), or undetermined or ambiguous (N).

[0131] In step 1210, the sequence reads are aligned to a reference sequence to obtain genomic location information. This sequence alignment can be performed using various software packages or software-implemented techniques, such as (but not limited to) BLAST, FASTA, Bowtie, BWA, BFAST, SHRiMP, SSAHA2, NovoAlign, and SOAP, or other techniques known to those skilled in the art. The reference sequence can be a human reference sequence, such as hg18 or hg38.

[0132] Sequence alignment can generate an identifier that identifies the position in the reference sequence to which the read aligns. For example, the identifier can include the genomic start and end positions of the reference sequence on a chromosome (e.g., a human chromosome) from a reference genome (e.g., a human genome) to which the sequence read aligns. Thus, the alignment position relative to the reference genome can be determined. For example, the first or last alignment position of the read (e.g., closest to the 3' or 5' end of the reference sequence) can be used to identify the alignment position or alignment window. Other methods can be used to store alignment coordinates. In some cases, the read can be a plus or minus strand. If the read aligns without reverse complementing the sequence read, the read is considered a "plus" strand. If the sequence read must be reverse complemented before alignment, the alignment is considered a "minus" strand. The optimal alignment can be determined using any suitable algorithm for aligning sequences, non-limiting examples of which include the Smith-Waterman algorithm, the Needleman-Wunsch algorithm, algorithms based on the Burrows-Wheeler transformation (e.g., Burrows Wheeler Aligner), ClustalW, Clustal X, BLAST (e.g., BLASTn at http: / / www.ncbi.nlm.nih.gov / ), Novoalign (Novocraft Technologies), ELAND (Illumina, San Diego, Calif.), SOAP (available at soap.genomics.org.cn), and Maq (available at maq.sourceforge.net).

[0133] In step 1220, differences between the sequence reads and the reference genome are identified. The differences can be in various forms, such as, for example, substitutions, insertions, or deletions.

[0134] In step 1230, the sequence read can be encoded using the alignment results, including the identified differences. Table 1 shows an exemplary chart that can be used to encode a read containing A, T, C, and G using 14 possible encodings. The encodings shown in Table 1 are only an example and can be modified. The sequence read can then be encoded into text or bit strings using the encodings. The bit strings or text encoded at the base level can be compressed in subsequent steps. The encodings include matches, four substitutions, four soft clips (ends of the reads not aligned), four insertions, and a deletion. [Table 1]

[0135] In step 1240, at least a portion of the sequence that matches the reference sequence is replaced with genomic location information within the reference sequence. For example, if some of the first nucleotides of the sequence match the reference sequence, and then one or more mismatches exist, the first nucleotide can be replaced with a starting position relative to the reference sequence, a number indicating the length of the portion, and a code representing the mismatch. In this case, the one or more mismatches may remain encoded. Any portion of the matching sequence can be similarly replaced with a starting position corresponding to the position of the first matching nucleotide and the length of the portion of the matching sequence (i.e., to compress the sequence data). The code for the sequence match may or may not be included. The portion of the sequence that matches the reference sequence may be 2 bases, 3 bases, 5 bases, 10 bases, 20 bases, 30 bases, 40 bases, 100 bases, 500 bases, or even longer. The portion can then be replaced with only three numbers, for example, including the chromosome number, the starting position relative to the position of the first nucleotide of the portion that matches the reference sequence, and the length of the portion. In some embodiments, the length of the read must be stored as part of the location and identity of the matching base and can be used to decode the final compressed data.

[0136] In step 1250, compressed base call data for the base call data substream is generated using the position information, the encoded base calls, or a combination thereof. For example, the encoded sequence read may include a position relative to the reference genome, such as the leftmost (or rightmost) position of the read, a position where a match exists between the read and the reference sequence, and a position where an insertion, deletion, or any other encoded mismatch exists. Compression of the encoded sequence read can then be performed, for example, by replacing the portion of the read that matches the reference with a position number or window of numbers. Different combinations of position and encoded sequence can be used to compress the sequence read. B. Read and Quality Score Characteristics Affecting Compression Strategies and Achievable Compression Ratios

[0137] Basic characteristics of base call data and quality score data include the number of bits used to generate base calls and / or quality score (q-score) values. These basic characteristics of base call data and quality score data can affect the compression rate. Table 2 shows four different scenarios in which base calls are generated using 2 bits per base call and the number of bits to generate each quality score value varies from 0 to 6 bits. In some embodiments, quality score values ​​can be generated using 7 bits, 6 bits, 4 bits, 3 bits, 2 bits, 1 bit, or 0 bits (e.g., when no quality score is determined). Quality scores may be specified using a first resolution. Quality scores may be compressed by downsampling to a lower resolution. Downsampling results in lossy compression, in which at least a portion of the data may be lost in the process of compressing the data. For example, the quality score may be encoded by converting a concrete value (e.g., a probability value between 0 and 1, between 0 and 100, or between 0 and 1000) into a discrete or categorical value (e.g., low quality, high quality, very high quality, or very low quality, or discrete numbers indicating the same category). For example, a quality score between 0 and 1000 can be separated into four quartiles, and each quartile can be encoded using two or more bits. [Table 2] [Example]

[0138] C. Working Example Figures 13-18 show the compression ratio results for each individual substream and the compressed and combined data for a set of sequenced DNA molecules. Data from the various substreams was compressed using open-source compression methods. Each row represents a unique parameter combination for the compression method. The various columns in Figures 13-18 include "orig_siz," "comp_sz," "comp_ratio," and "bit_per_bp," which represent the original size of the data substream before compression (orig_siz), the size of the data in the compressed substream (comp_sz), the ratio of the original data size to the compressed data size (comp_ratio), and the number of bits stored per base pair of the DNA read sequence (bit_per_bp), which indicates the compression ratio, respectively.

[0139] Figure 13 shows the results of compressing the header data substream. The data was compressed using various parameter combinations of eight compression methods (zlib, zstd, lzma, gzip, lz4, snappy, blosclz, and lz4hc). The best compression ratio achieved was approximately 64, resulting in a compression ratio (bits per bp) of approximately 0.006.

[0140] Figure 14 shows the results from compressing the matched chromosome name information. The compression algorithm achieved a compression ratio of approximately 70 and a compression factor of approximately 0.0007.

[0141] Figure 15 shows the results from compressing the match start position information. The best compression ratio achieved was about 2.24, resulting in a compression ratio of 0.16.

[0142] Figure 16 shows the results from compressing read sequences using a particular aligner and bit encoding. The bit-encoded size of the data (pack_sz) was approximately half the size of the original data. The bit-encoded data was then compressed using a compression method. The best compression ratio was approximately 32, resulting in a compression ratio (bit_per_bp) of 0.26.

[0143] Figure 17 shows the summary results from the compression.

[0144] Figure 18 shows the results from compressing the read sequences using a particular aligner and text encoding. [Table 3]

[0145] The data in Table 3 is from a given configuration of the reference genome and encoding a given dataset. These values ​​may vary based on the encoding and genome (e.g., human vs. E. coli) and may vary from dataset to dataset. The first row (DNA) corresponds to the number of bits required per base in the reads in the dataset after encoding against the reference sequence and compression of the encoded sequence. The second row is the positional information (matching reference ID, position, and strand). Compression of the quality score requires 0.24 bits per base. V. Clusters, Consensus Reads, and Read Data Reduction

[0146] As mentioned above, the higher rate of raw data generation by a sequencing device compared to the capacity of some downstream channels of the sensor can cause problems such as bottlenecks that can limit the signal rate, thereby limiting sequencing throughput. This problem can be addressed by reducing the amount of data transmitted through the downstream channels. The systems and methods provided herein relate to reducing the amount of sequencing data corresponding to nucleic acid molecules in real time without adversely affecting the performance (e.g., speed, accuracy, etc.) of the sequencing device. More specifically, the methods and systems provided herein can be used for rapid identification of sequence reads corresponding to nucleic acid molecules or molecular families based on identifiers (e.g., unique molecular identifiers (UMIs), random sequence barcodes, or sequence read content). This information can then be used in real time to discard or retain the sequence reads.

[0147] An example of the case where sequence reads can be discarded is when a cluster of reads corresponds to multiple copies of the same template nucleic acid molecule.Such a cluster of sequence reads can be used to determine consensus sequence reads.However, to determine the consensus sequence of template nucleic acid, only a certain number (threshold) of sequence reads may be required.Sequence reads that exceed the threshold can be discarded.

[0148] Therefore, the method and system provided herein can be used to quickly identify the sequence read corresponding to nucleic acid molecule or molecular family based on identifier.Then, this information can be used in real time to decide not to save corresponding read to disk, or even to stop the sequencing of the molecule that has been sequenced halfway, and remove the molecule from the sequencing device (for example, in nanopore-based sequencing device, remove the molecule from nanopore).Further details of clustering and bandwidth saving techniques will be described later. A. Barcoding of template molecules

[0149] Sequencing technology is not perfect, and it is prone to errors in sequencing template nucleic acid molecules.In addition, a single copy of template nucleic acid molecule may be lost or damaged before or during sequencing.Therefore, multiple copies of the first (template) nucleic acid molecule can be used for sequencing.The first nucleic acid molecule can be obtained from a sample (for example, tumor tissue sample, liquid biopsy, or any other biological sample).Multiple copies of the first nucleic acid molecule can be generated, for example, by using polymerase chain reaction (PCR) amplification.

[0150] Furthermore, the first nucleic acid molecule can be barcoded by attaching a molecular barcode to the molecule before amplification. Then, the barcoded template molecule can be amplified to generate multiple copies of the template with the same barcode. The barcode can include a "unique molecular identifier" (UMI) sequence (e.g., a sequence used to label a population of nucleic acid molecules so that each molecule in the population is associated with a different identifier). Barcode and UMI technologies, as well as methods for labeling nucleic acid molecules with barcodes or UMI sequences, are known in the art. See, for example, Fu et al. (2014), PNAS 111:1891-1896, Islam et al. (2014) Nat Methods 11:163-168, Kivioja et al., Nat Methods 9:72-74 (2012), U.S. Patent Nos. 5,604,097, 7,537,897, 8,715,967, 8,835,358, and WO 2013 / 173394.

[0151] Figure 19 illustrates one embodiment of an amplification process using molecular barcodes. A template nucleic acid molecule 1910 can be amplified to generate a first set of progeny molecules 1920, which are copies of the template nucleic acid molecule 1910. Subsequent amplifications can be performed to generate additional copies of the template by serial amplification. For example, a second set of progeny molecules 1930 can be amplified from progeny molecule 1920. Additionally, a third set of progeny molecules 1940 can be generated from progeny molecule 1940. Molecular barcodes can be attached to one or both ends 1912 and 1914 of template nucleic acid molecule 1910. Progeny molecules 1920, 1930, 1940 can also have the same barcode as template nucleic acid molecule 1910. A plurality of molecules, including a template and its progeny molecules, having similar molecular barcodes (e.g., random barcodes and / or UMIs) can be considered a molecular family.

[0152] Amplification may be performed using PCR. The barcode may comprise a UMI or a random sequence of nucleic acids. The barcode may be 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, or even more nucleotides in length. In some cases, the barcode is at most about 50, 40, 30, 20, 10, or 5 nucleotides in length. The template may be amplified for 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 50, 100, or even more cycles to generate at least about 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, or even more progeny molecules (i.e., amplified copies of the template).

[0153] Then, template and amplified copy can be further prepared for sequencing by sequencing device.In some cases, a plurality of nucleic acid molecules similar to template can be barcoded and amplified, and processed by sequencing device.A plurality of molecules can be obtained from one or more samples.For example, 100 molecules, 1000 molecules, 100,000 molecules, 1 million molecules, 1 billion molecules, or even more molecules can be barcoded and amplified, and processed by sequencing device.The raw data generated from sequencing of these molecules can then be processed and compressed by any of the methods and systems provided in the present disclosure, including encoding, using matching technology, clustering, or constructing consensus sequence reads. B. Clustering of sequence reads

[0154] A population of different barcoded amplified nucleic acid molecules can be pooled and provided to a sequencing device for sequencing. In some cases, hundreds, thousands, millions, billions, or even more barcoded amplified molecules can be pooled and sequenced by a sequencing device. The template molecule and its copies can be sequenced randomly (i.e., copies of the same molecule can be sequenced at different times or time chunks). Raw data can be generated by a sequencing device at high speed for a population of nucleic acid molecules, as described above and elsewhere herein. The raw data can include streams of sequence information, and each stream of raw data corresponds to a nucleic acid molecule (e.g., a barcoded nucleic acid molecule) from a molecular family.

[0155] There are several undesirable aspects to using UMI and PCR strategies in library preparation in combination with in silicon intermolecular consensus analysis, which determines the consensus of sequence reads that all correspond to the same template nucleic acid molecule (i.e., are part of the same cluster). In some cases, the amplification and sampling process UMI-labeled nucleic acid molecules (or UMI molecule families) can be unevenly represented. Sampling can involve random sampling of molecules generated during the amplification process. For example, a portion of the amplified molecules (i.e., including the original template molecule) can be sampled for sequencing. Different parameters (e.g., the number of PCR cycles) in the amplification process to generate different molecule families prior to sequencing can result in molecule families containing different numbers of nucleic acid molecules. This can be caused, for example, by overamplification (e.g., using PCR). Alternatively, in some cases, the initial amount (e.g., concentration) of a nucleic acid molecule can be greater than other nucleic acid molecules in the sample, resulting in a molecule family containing more progeny with the same barcode and content (i.e., nucleotide sequence). Therefore, the amount of sequence reads generated by a sequencing device corresponding to a nucleic acid molecule or molecule family can vary significantly across different molecules or molecule families. As a result, a nucleic acid molecule or molecule family can be over- or under-sampled. This can also be caused by other factors, such as sequencing errors.

[0156] This may be undesirable from an assay perspective. For example, if a particular assay has a desired coverage depth (e.g., 10x) for each UMI molecular family, the resulting inter-molecular consensus families (clusters) may reach an average read depth of 10x, but the variance between families will be large. Thus, some molecular families may have insufficient representation, while others may have orders of magnitude more reads than required. Families with extremely high coverage depth may not provide much benefit to the assay, while UMI molecular families with membership numbers below the desired depth will not be able to generate high-quality consensus reads. For example, each family labeled with UMIs may represent a region of interest within the genome. To meet the assay needs for all regions of interest, sequencing throughput requirements must be increased so that all regions of interest are covered by at least the minimum required depth. Regions of interest may be subject to targeted sequencing, such as enrichment of DNA from those regions, as can be done by amplification of DNA or capture probes.

[0157] Figure 20 illustrates one embodiment of a sequence read data clustering system 2000. Raw read data is received as input 2010. The raw read data may be generated by an inference circuit from raw data received from a sequencing device (i.e., a sensor chip containing multiple cells), as described above or elsewhere herein. The raw read data may then be sent to an extraction engine 2020, where base call data, including nucleotide information for each position within a sequence read of a template molecule, is extracted from the raw read data. The base call data may then be processed by a clustering engine 2030, further details of which are provided below.

[0158] The clustering engine 2030 may determine cluster information by including the size of the cluster to the cluster counting module 2040. The size of the cluster may correspond to the current count of reads assigned to the cluster. The data, including the raw read data, may then be sent to the compression engine 2050 or discarded based on the comparison made by the cluster counting module 2040. If the size already exceeds a threshold, further reads may be discarded. The read data sent to the compression engine may then be processed and compressed using any of the methods described herein and sent to the I / O 2060.

[0159] The clustering engine 2030 may include a barcode module 2031, an alignment module 2032, and a clustering module 2033. Further, the clustering engine 2030 may include or have access to a cluster database 2034. The barcode module 2031 may identify barcode sequences in the sequence reads. The alignment module 2032 may perform sequence alignment between the sequence reads and sequences corresponding to the clusters or reference sequences. The sequence reads may then be assigned to clusters by the clustering module 2033 based at least in part on output from the alignment module 2032 (e.g., sequence similarity or read position relative to the reference sequence). The clustering module 2033 may cluster the sequence reads, each cluster including sequence reads corresponding to the same template nucleic acid molecule or molecule family.

[0160] The cluster database 2034 may include information corresponding to each cluster to determine whether a new read belongs to an existing cluster or whether a new cluster should be generated. This information may be stored in the cluster database 2034 in identifier 2038. The identifier 2038 may include information corresponding to the barcode information and / or position information of one or more sequence reads assigned to a cluster (e.g., start and / or end positions relative to a reference sequence). Furthermore, the identifier of a cluster may include sequence read content (e.g., of another sequence read in the cluster or a consensus read of all reads in the cluster). For example, the start and / or stop coordinates of a sequence read may be used as, or part of, the identifier. In some cases where the consensus is determined on an inference circuit, a consensus sequence may be incrementally generated for each cluster as each sequence read is assigned to a cluster. In such cases, the consensus sequence or its position for each cluster may be stored in identifier 2038.

[0161] The number of sequence reads assigned to a cluster can be stored in the cluster database 2034 as a counter value for that cluster in counter 2036. The counter value for each particular cluster can be increased incrementally as new sequence reads are assigned to that particular cluster. The information in the cluster database 2034 can be accessed by various modules (i.e., 2031, 2032, and 2033) within the search engine.

[0162] Clustering module 2033 may assign sequence reads to clusters based on output from barcode module 2031 and / or alignment module 2032, as well as information in identifier 2038. Thus, a sequence read may be assigned to a cluster by comparing its sequence or its position (e.g., relative to a reference sequence) with identifier 2038 to determine a match.

[0163] The barcode may include a random sequence barcode, a UMI, or a combination thereof. The barcode module 2031 can identify barcode sequences in a sequence read in real time. The barcode module 2031 can then compare (e.g., by sequence matching) the barcode sequence of the sequence read with barcode sequences corresponding to different clusters (e.g., from the identifiers 2038 in the cluster database 2034). Furthermore, the barcode module 2031 can compare the barcode sequences of one or more sequence reads with each other and assign them to different clusters. For example, if a particular barcode sequence of a sequence read does not exist in the cluster database 2034 (i.e., a nucleic acid molecule having a particular barcode has not been previously sequenced), the clustering module 2033 can assign the sequence read to different clusters based in part on the barcode module 2031.

[0164] Sequence reads may be analyzed using an alignment module 2032. The alignment module 2032 may align sequence reads to a reference sequence and / or one or more other sequence reads. The output of the alignment module 2032 may be used in addition to (or independently of) the output from the barcode module 2031 to cluster new sequence reads (e.g., by the clustering module 2033). For a particular sequence read, if the alignment module 2032 does not find a similar sequence in any of the existing clusters (e.g., by comparing sequence content or position to a reference sequence), the clustering module 2033 may assign the sequence read to a new cluster.

[0165] In one example, the alignment module 2032 can align a sequence read to a reference sequence (e.g., of a reference genome), and then the alignment module 2032 can determine the position of the sequence read relative to the reference sequence. The position of the sequence read can then be compared to the positions of the sequences of the clusters to identify the clusters corresponding to the sequence read.

[0166] In another example, the alignment module 2032 can align the sequence read to a sequence read that has already been assigned to a cluster representing the cluster. Alternatively, the alignment module 2032 may include a multiple sequence alignment algorithm. The sequence read can then be aligned to two or more of the sequence reads in the cluster (or all of the sequence reads) by the multiple sequence alignment algorithm. The sequence read can be assigned to a cluster taking into account a sequence similarity criterion (e.g., minimum similarity). The sequence read can be assigned to a cluster that results in the highest sequence similarity when aligned to the sequence read.

[0167] In yet another example, the alignment module 2032 can align sequence reads to a consensus sequence representing the sequence of the cluster. A consensus sequence can be incrementally generated for each cluster as new sequence reads are assigned to each cluster. A sequence similarity criterion (e.g., minimum similarity) can be applied to the alignment output to assign the sequence read to a cluster. The sequence read can be assigned to the cluster with the consensus that, when aligned to the sequence read, produces the highest sequence similarity.

[0168] In some embodiments, the consensus read of a cluster can be used as a reference to compress all the reads in the cluster.For example, suppose that there are 100 reads in a cluster, each read is about 350bp long, and there is a true deletion in the sample, and the deletion appears in almost all of these reads.Then, instead of independently performing delta compression of each read against the reference, the consensus read can be stored together with the deletion against the reference.Then, to compress each read, the read can be mapped to the consensus read, and delta compression can be performed against the consensus.This can bring about a higher compression rate for the reads in that cluster.

[0169] The optimal alignment by the alignment module 2032 can be determined using any suitable algorithm for aligning sequences, non-limiting examples of which include the Smith-Waterman algorithm, the Needleman-Wunsch algorithm, algorithms based on the Burrows-Wheeler transformation (e.g., Burrows Wheeler Aligner), ClustalW, Clustal X, BLAST (e.g., BLASTn at http: / / www.ncbi.nlm.nih.gov / ), Novoalign (Novocraft Technologies), ELAND (Illumina, San Diego, Calif.), SOAP (available at soap.genomics.org.cn), and Maq (available at maq.sourceforge.net). Two or more sequence reads may have the same content if they have moderate, high, or very high sequence similarity. In some cases, two or more sequences with the same content may have at least about 70%, 80%, 90%, 95%, 99%, or more sequence similarity. In some cases, two or more sequence reads are considered to be the same when they have at least 94% sequence similarity.

[0170] If a barcode does not exist or if the barcode matches more than one cluster, the output from the alignment module 2032 can be used to perform clustering. For example, the alignment module 2032 can align a new sequence read to a sequence corresponding to a cluster with a similar barcode. The output can be used to assign the sequence read to a cluster or to generate a new cluster, for example, in clustering a set of sequence reads. If the sequence read cannot be assigned to an existing cluster, the output from the clustering module 2033 can be used by the clustering module 2033 to generate a new cluster using a clustering algorithm. Some clustering algorithms use single-linkage clustering and build a transitive closure of sequences with similarity above a certain threshold. Examples of these algorithms include BLASTClust (nih.gov) and CluSTr (ebi.ac.uk / clustr). UCLUST (drive5.com / usearch) and CD-HIT (cd-hit.org) use a greedy algorithm that identifies a representative sequence for each cluster and assigns a new sequence to that cluster if it is sufficiently similar to the representative sequence; if the sequences do not match, the sequence becomes the representative sequence for the new cluster. Similarity scores are often based on sequence matching. Sequence clustering is frequently used to create a non-redundant set of representative sequences. C. Discarding Overrepresented Data

[0171] To balance the amount of sequence reads across different molecules, the clustered sequence reads can be counted for each cluster using the clustering engine 2030. Each cluster can correspond to a nucleic acid molecule or a molecular family. A cluster can include one or more sequence reads corresponding to the same nucleic acid molecule or molecular family. The size of the cluster (i.e., the number of sequence reads assigned to a cluster) can be controlled to reduce over-representation in one or more clusters relative to other clusters. The size of the cluster can be monitored by a counter as described above in this specification. When the clustering module 2033 assigns sequence reads to a particular cluster, the counter can increase the size of that cluster.

[0172] To reduce bottlenecks, the size of the clusters can be controlled to reduce the amount of data (e.g., sequence read data corresponding to nucleic acid molecules or molecular families) that can be stored in memory and / or transmitted (e.g., to a storage device). In some cases, a threshold can be applied to control the cluster size. Output from the clustering engine 2030 can be provided to the cluster counting module 2040. The output from the clustering engine can include sequence read data (or base call data) and cluster information (e.g., cluster identification and counter value) to which the sequence read is assigned. The cluster count check can compare the counter value in the cluster information with a threshold. If the counter for a particular cluster exceeds the threshold, the new sequence read assigned to that particular cluster can be discarded from the system. Alternatively, the sequencing procedure for the partially sequenced molecule associated with this new sequence read can be stopped, and the corresponding nucleic acid molecule can be cleared from the sequencing device (e.g., by removing the nucleic acid molecule from the nanopore in a nanopore-based sequencing device). If the cluster count value is below the threshold, the cluster count module 2040 may send the output received from the clustering engine 2030 to a downstream module.

[0173] In some cases, the cluster counting module 2040 sends the data to a compression engine 2050 for processing and compression using any of the methods described above or elsewhere herein. In some cases, the compression engine (e.g., using techniques described herein, such as in Section IV) can process the sequence read data to generate consensus sequence reads for clusters corresponding to nucleic acid molecules or molecular families. Alternatively, the cluster counting module 2040 can send the data directly to input / output (I / O) 2060, e.g., for storage in a memory device. Data reduction as described above (i.e., data truncation) and elsewhere herein can improve computer and sequencing device performance by improving memory usage and reducing constraints imposed on the system by bottlenecks (e.g., bus capacity and I / O speed are lower than raw data generation by the sensor chip). D. Flowchart

[0174] The methods and systems provided herein, including clustering and consensus read construction, can be used to mitigate the oversampling problem and reduce the amount of data that needs to be stored for each nucleic acid molecule or molecule family in order to generate an accurate nucleotide sequence for each nucleic acid molecule.

[0175] FIG. 21 shows a flowchart of a method 2100 according to some embodiments of the present disclosure for clustering sequence reads to reduce the amount of sequencing data.

[0176] In step 2110, raw data is received from the sensor chip. The raw data may include a plurality of measurements for each position of each nucleic acid molecule of the plurality of nucleic acid molecules. The plurality of nucleic acid molecules may include at least 2, 3, 4, 5, 10, 50, 100, 1000, 10,000, 100,000, or even more nucleic acid molecules. The sensor chip may include a plurality of sequencing cells, each sequencing one or more distinct nucleic acid molecules. At least a portion of the plurality of nucleic acid molecules (e.g., at least 100,000 nucleic acid molecules) may include a cluster of nucleic acid molecules. The nucleic acid molecules of the cluster may correspond to the same template nucleic acid molecule.

[0177] In step 2120, for each position of each nucleic acid molecule, the raw data can be used to determine the nucleotide at that position to generate a sequence read for each nucleic acid molecule. In some cases, the template is barcoded (e.g., using a unique molecular identifier (UMI) or a random identifier (randomer)). The sequence read of the barcoded template can then include the sequence of the barcode and sequence information of the nucleic acid sequence. The barcode can include one or more barcodes that include a UMI, a randomer, or a combination thereof.

[0178] In step 2130, a specific cluster may be identified for each sequence read of a plurality of nucleic acid molecules (e.g., at least 100,000 nucleic acid molecules). The cluster may correspond to the sequence read. A specific barcode may be assigned to a specific cluster (e.g., if the barcode is unique, such as a UMI). In some cases, a specific cluster may correspond to one or more specific barcode sequences. A specific cluster corresponding to a sequence read can be identified by comparing one or more barcode sequences of the sequence read with one or more specific barcode sequences to which the specific cluster corresponds. If a match is determined, the sequence read can be assigned to the specific cluster. If one or more barcode sequences of the sequence read do not match one or more specific barcode sequences assigned to an existing cluster, a new cluster corresponding to the sequence read can be generated.

[0179] Identifying a specific cluster corresponding to a sequence read can include comparing the genomic location of the specific cluster with the genomic location of the sequence read.The genomic location can be determined by matching a sequence (for example, a sequence read, or the sequence to which a specific cluster corresponds) with a reference sequence.The genomic location can include a start genomic location and an end genomic location relative to the reference sequence.The genomic location of a specific cluster can correspond to the genomic location of a sequence read that has already been assigned to that specific cluster.

[0180] In some cases, the same barcode (for example, randomer) can be assigned to two or more clusters.The sequence information of the nucleic acid sequences assigned to one or more clusters can then be compared.The sequence information of the nucleic acid sequences assigned to one or more clusters can be different from each other.In other words, a unique sequence read, including nucleic acid sequence and randomer information, can be assigned to each cluster.Here, each unique sequence read corresponds to a different template nucleic acid molecule.Then, clusters can be generated by making copies of template nucleic acid.The copies can be generated using polymerase chain reaction (PCR).

[0181] Once a particular cluster is identified for each sequence read, a counter for the particular cluster may be incremented in step 2140. The counter may record the number of sequence reads assigned to a particular cluster.

[0182] In step 2150, the first counter of the first cluster may be compared to a threshold to determine whether the first counter is greater than the threshold. The threshold may be predetermined (e.g., provided by a user). The threshold may be calculated based on one or more factors including the length of the sequence read, the nucleic acid content of the sequence read (e.g., A, T, C, G, or U bases), the error rate associated with sequencing, amplification (e.g., PCR), and / or barcoding. The threshold may be approximately 10, 20, 30, 40, 50, 60, or even greater.

[0183] In step 2160, in response to determining that the first counter is greater than a threshold, the sequence reads corresponding to the first cluster may be discarded. If the number of sequence reads assigned to the first cluster is less than the threshold, the sequence reads may remain associated with the cluster (i.e., remain stored in memory). If the counter is less than or equal to the threshold, the sequence reads corresponding to the cluster may be output (e.g., from the inference circuit). Sequence reads assigned to the first cluster for which the first counter is greater than or equal to the threshold may be discarded. Limiting the number of sequence reads assigned to a cluster can reduce the amount of data that can be stored or transmitted from the sequencing system. This can therefore alleviate constraints caused by bottlenecks in the system, as described above or elsewhere herein. E. Formation of cluster-specific intermolecular consensus reads

[0184] As described above, each cluster may contain multiple sequence reads corresponding to nucleic acid molecules. To reduce the amount of data in a cluster, the sequence reads can be collapsed into a single sequence read representing a consensus sequence. This consensus is an inter-molecular consensus because sequence reads from multiple nucleic acid molecules are used. Intra-molecular consensus determined from a single nucleic acid molecule is described in the next section. The consensus sequence of a cluster is a single nucleotide sequence, where every position is the most commonly called nucleotide among all sequence reads in that cluster. The consensus sequence can be generated by multiple alignment among all sequence reads in the cluster. Alternatively, the consensus sequence can be generated by aligning each sequence read in the cluster to a reference genome. Then, for every position in the multiple alignment or alignment to the reference genome, the most common nucleotide among all reads can be selected.

[0185] Each sequence read may contain random errors that may occur randomly during the process of nucleic acid amplification and sequencing.Therefore, the consensus sequence generated from multiple sequence reads can more accurately represent nucleic acid molecules.By forming consensus sequence reads from more sequence reads, consensus sequence reads can be obtained that can more accurately correspond to the actual sequence of nucleic acid molecules.On the other hand, if too many sequence reads are included in the generation of consensus reads, more time and more memory and computational resources can be consumed.Therefore, in order to optimize the generation of accurate consensus data, the number of sequence reads used to construct consensus can be cut off.For example, highly accurate consensus sequence can be generated from a maximum of about 100, 50, 40, 30, 20, 10 or even fewer sequence reads.

[0186] The cluster size threshold data can directly correspond to this cutoff value. In some cases, the cluster size threshold can be based at least in part on this cutoff value. In some cases, the cluster size threshold can be the same as this cutoff value. For example, a consensus read corresponding to a nucleic acid sequence is generated using only sequence reads that are equal to or less than the cutoff value. Any sequence reads corresponding to nucleic acid molecules that have a number of sequence reads that exceeds the cutoff value can be discarded from the system (e.g., deleted from memory). In some cases, a consensus read can be generated upon transmission to a downstream module or I / O as soon as the number of sequence reads reaches the cutoff value for the nucleic acid molecule.

[0187] In some cases, a second cutoff value can be used to ensure high quality in consensus reads.The second cutoff value can comprise a lower limit for the number of sequence reads used to generate consensus sequence.In some cases, at least 2, 3, 5, 10, 20, 30, 40, 50, 60 or even more sequence reads are used to construct consensus sequence.For example, consensus reads can not be generated or output unless the number of sequence reads corresponding to nucleic acid molecules exceeds the second cutoff.In some cases, a message can be generated to indicate that the number of sequence reads corresponding to nucleic acid molecules is not enough to generate consensus reads. F. Intramolecular Consensus

[0188] In some embodiments, nucleic acid molecules can be sequenced multiple times, resulting in multiple sequence reads (also called subreads). For example, molecules can be passed through a nanopore, and each pass results in a sequence read. In such an example, an intramolecular consensus can be generated. The intramolecular consensus can be determined at each position based on the majority base call at that position across the individual subreads. Multiple passes can provide a final read (intramolecular consensus) that is more accurate than any one of the individual subreads.

[0189] As depicted in Figure 19, each of the progeny molecules 1940 is sequenced. For each of these progeny molecules 1940, an xpandomer molecule can be generated. Multiple sequence reads can be obtained by passing the xpandomer molecule through the nanopore multiple times. An intramolecular consensus can then be determined. The intramolecular consensus of each progeny molecule can then be used to determine an intermolecular consensus.

[0190] Figure 22 shows raw data from multiple passes of an xpandomer molecule read using a nanopore. The xpandomer molecule can be captured by the nanopore to read the same molecule multiple times. An example of a "captured" molecule is shown in the raw trace in Figure 22, where a single xpandomer is captured at periods 2, 3, 4, and 5. In this scenario, the same molecule is read four more times, and these subreads from the same molecule occur close together in time. This natural clustering of reads in time favors the formation of a consensus read.

[0191] From a data transfer perspective, one drawback of intermolecular consensus is that it is not easily amenable to online processing, or at least more difficult to perform in an online fashion. Reads corresponding to members of the same molecular family are randomly distributed in time over the course of a run. Therefore, given the lack of a predetermined time position for each individual molecular family lead member, it is easier to wait until the end of the run to begin the read clustering process required for consensus. The capture molecule approach avoids this problem. Because the subreads are known to be consecutive in time, a consensus can be determined at that point, and only the consensus can be passed on to the next stage. The read itself can then be discarded.

[0192] Figure 23 shows a diagram of the combined captured raw read sequence resulting from nanopore sequencing. The read sequence can be used to generate an intramolecular consensus. The length corresponds to the target nucleic acid molecule, which is 116 bp in length. A nucleic acid molecule, e.g., a surrogate molecule such as Xpandomer, was translocated through the nanopore in 30 forward cycles and 25 reverse cycles. Each pulse translocates one nucleotide read (e.g., corresponding to one or more reporter elements).

[0193] A total of 20 cycles were used to cover the entire length of the molecule. The reads for each cycle are shown at the top. Because each cycle contains overlapping reads, individual nucleotides are sequenced several times. The consensus read is shown under "Trapped Consensus Read." Below the trapped consensus read, the number of times the nucleotide was sequenced is shown. For example, the initial subsequence of AAGCT is sequenced twice. The central portion beginning with TCTGGT is sequenced six times. The beginning of the molecule can be sequenced multiple times if the initial forward and reverse cycles are set to have the same number of pulses before changing to a cycle in which the number of forward pulses in the light period is greater than the number of reverse pulses in the dark period. The end of the molecule can be sequenced multiple times by continuing the forward and reverse pulses until the molecule has completely exited the nanopore. VI. Computer Systems

[0194] Any of the computer systems referred to herein may utilize any suitable number of subsystems. An example of such a subsystem is shown in computer system 10 in FIG. 24. In some embodiments, a computer system includes a single computer device, and the subsystems may be components of the computer device. In other embodiments, a computer system may include multiple computer devices, each of which is a subsystem with internal components. Computer systems may include desktop and laptop computers, tablets, mobile phones, and other mobile devices.

[0195] The subsystems shown in FIG. 24 are interconnected via a system bus 75. Additional subsystems are shown, such as a printer 74, a keyboard 78, a storage device 79, and a monitor 76 connected to a display adapter 82. Peripherals and input / output (I / O) devices connected to the I / O controller 71 can be connected to the computer system by any of several means known in the art, such as an input / output (I / O) port 77 (e.g., USB, FireWire®). For example, the I / O port 77 or an external interface 81 (e.g., Ethernet, Wi-Fi, etc.) can be used to connect the computer system 10 to a wide area network such as the Internet, a mouse input device, or a scanner. Through the interconnection via the system bus 75, the central processing unit 73 can communicate with each subsystem and control the execution of instructions from the system memory 72 or storage device 79 (e.g., a fixed disk such as a hard drive or an optical disk) as well as the exchange of information between the subsystems. The system memory 72 and / or storage device 79 may embody computer-readable media. Another subsystem is a data collection device 85, such as a camera, microphone, accelerometer, etc. Any data mentioned herein can be output from one component to another and to a user.

[0196] A computer system may include multiple identical components or subsystems connected to each other, for example, by an external interface 81, an internal interface, or a removable storage device that can be connected and disconnected from one component to another. In some embodiments, computer systems, subsystems, or devices may communicate over a network. In such cases, one computer may be considered a client and another computer may be considered a server, each of which may be part of the same computer system. Each of the clients and servers may include multiple systems, subsystems, or components.

[0197] Aspects of the embodiments may be implemented in a modular or integrated manner in the form of control logic using hardware (e.g., application specific integrated circuits or field programmable gate arrays), and / or using computer software in conjunction with a generally programmable processor. As used herein, a processor includes a single-core processor, a multi-core processor on the same integrated chip, or multiple processing units located on a single circuit board or networked together. Based on the disclosure and teachings provided herein, those skilled in the art will know and understand other ways and / or methods for implementing embodiments of the present invention using hardware and combinations of hardware and software.

[0198] Any software components or functions described in this application may be implemented as software code executed by a processor using any suitable computer language, such as, for example, Java, C, C++, C#, Objective-C, or Swift, or a scripting language, such as, for example, Perl or Python, using conventional or object-oriented techniques. The software code may be stored on a computer-readable medium for storage and / or transmission as a series of instructions or commands. Suitable non-transitory computer-readable media may include random access memory (RAM), read-only memory (ROM), magnetic media such as a hard drive or floppy disk, or optical media such as a compact disc (CD) or DVD (digital versatile disc), flash memory, etc. The computer-readable medium may be any combination of such storage or transmission devices.

[0199] Furthermore, such programs may be encoded and transmitted using carrier signals suitable for transmission over wired, optical, and / or wireless networks conforming to various protocols, including the Internet. Thus, computer-readable media can be generated using data signals encoded with such programs. Computer-readable media encoded with program code may be packaged with a compatible device or provided separately from other devices (e.g., via Internet download). Any such computer-readable media may be located on or within a single computer product (e.g., a hard drive, CD, or an entire computer system), or may reside on or within different computer products within a system or network. A computer system may include a monitor, printer, or other suitable display for providing a user with any of the results described herein.

[0200] Any of the methods described herein may be performed, in whole or in part, on a computer system including one or more processors that can be configured to perform the steps. Accordingly, embodiments may be directed to a computer system configured to perform the steps of any of the methods described herein, possibly including different components that perform each step or each group of steps. Although the steps of the methods herein are presented as numbered steps, they may be performed simultaneously or in a different order. Additionally, some of these steps may be used with some of the other steps from other methods. Also, some or all of the steps may be optional. Furthermore, any steps of any method may be performed by a module, unit, circuit, or other means for performing these steps.

[0201] The specific details of the particular embodiments may be combined in any suitable manner without departing from the spirit and scope of the embodiments of the invention. However, other embodiments of the invention may be directed to particular embodiments with respect to each individual aspect, or to particular combinations of these individual aspects.

[0202] The foregoing description of exemplary embodiments of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form described, and many modifications and variations are possible in light of the above teaching.

[0203] The terms "a," "an," or "the" are intended to mean "one or more" unless specifically stated otherwise. The use of "or" is intended to mean "inclusive or," and not "exclusive or," unless specifically stated otherwise. A reference to a "first" element does not necessarily require that a second element be provided. Furthermore, a reference to a "first" or "second" element does not limit the referenced element to a particular location unless expressly stated.

[0204] All patents, patent applications, publications, and descriptions mentioned herein are incorporated by reference in their entirety for all purposes. No admission is made that any of them is prior art.

Claims

1. By the inference circuit, receiving a first stream of raw data from a sensor chip including a plurality of cells, the first stream including a plurality of measurements for each position of each nucleic acid molecule of the at least 100,000 nucleic acid molecules; generating, by an extraction engine of the inference circuit, a second stream of read data based on the first stream of raw data, the second stream of read data including header information, base call data, and quality scores for the at least 100,000 nucleic acid molecules; extracting, by the extraction engine, from the second stream a first substream of header information identifying each of the at least 100,000 nucleic acid molecules; compressing, by a first thread of the inference circuitry, a first sub-stream of header information to generate compressed header information; extracting, by the extraction engine, from the second stream a second substream of base call data providing a base call at each position of each of the at least 100,000 nucleic acid molecules; compressing, by a second thread of the inference circuitry, a second sub-stream of base call data to generate compressed base call data; extracting, by the extraction engine, a third substream of quality score data from the second stream, the third substream providing a quality score for each base call at each position of each of the at least 100,000 nucleic acid molecules; compressing, by a third thread of the inference circuitry, a third sub-stream of the quality score data to generate compressed quality score data; outputting the compressed header information, the compressed base call data, and the compressed quality score data; performing the first thread, the second thread, and the third thread are assigned by a synchronization engine of the inference circuit to be processed by one or more processing units to perform load balancing of the compression of the first sub-stream of header information, the compression of the second sub-stream of base call data, and the compression of the third sub-stream of quality score data, and a processing time from receiving the first stream of raw data to outputting the compressed data occurs at a rate equal to or greater than the rate at which the first stream of raw data is received; the synchronization engine performs load balancing based on at least one of: (i) a ratio of data amounts of the first substream, the second substream, and the third substream; (ii) a real-time processing rate of each of the first substream, the second substream, and the third substream; (iii) dynamic information regarding the size of buffered data for a given substream; and (iv) a complexity of a compression technique for the first substream, the second substream, and the third substream.

2. The method of claim 1 , wherein the compressed header information, the compressed base call data, and the compressed quality score data are combined before output.

3. 2. The method of claim 1, wherein the load balancing of the compression of the first substream of header information, the compression of the second substream of base call data, and the compression of the third substream of quality score data is performed by allocating the first thread, the second thread, and the third thread based on the ratio of data amounts of the first substream, the second substream, and the third substream, or the complexity of compression techniques for the first substream, the second substream, and the third substream.

4. the base call data includes a sequence of base calls for each of the at least 100,000 nucleic acid molecules, and compressing the second substream of base call data includes: For each sequence of base calls corresponding to each nucleic acid, aligning the sequence to a reference sequence to obtain genomic location information; identifying whether one or more differences exist between the sequence and the reference sequence; encoding any differences to generate a code identifying said differences; replacing at least a portion of the sequence that matches the reference sequence with the genomic location information within the reference sequence; generating the compressed base call data using the signature and the genomic location information; The method of claim 1 , comprising:

5. 5. The method of claim 4, wherein the replaced genomic location information identifies a range of genomic locations within the sequence that match the reference sequence.

6. The method of claim 1 , wherein the first thread, the second thread, and the third thread are executed in sequence.

7. at least a portion of the at least 100,000 nucleic acid molecules comprises a cluster of nucleic acid molecules, the nucleic acid molecules of the cluster corresponding to the same template nucleic acid molecule; generating the condensed base call data includes: For each position in each nucleic acid molecule: generating sequence reads by determining the nucleotide at the position using the raw data; and For each sequence read for the at least 100,000 nucleic acid molecules, identifying a particular cluster corresponding to the sequence read and incrementing a counter for the particular cluster; determining that a first counter for a first cluster is greater than a threshold; in response to determining that the first counter is greater than the threshold, discarding sequence reads corresponding to the first cluster; 2. The method of claim 1, comprising:

8. 8. The method of claim 7, wherein the sequence reads above the threshold are discarded.

9. 8. The method of claim 7, wherein the sequence read is an intramolecular consensus read.

10. The intramolecular consensus read generating from said nucleic acid molecule a surrogate molecule comprising one or more reporter elements corresponding to each nucleotide; passing the surrogate molecule through the nanopore multiple times to obtain multiple subreads; determining the intramolecular consensus read by comparing the plurality of subreads; The method of claim 9 , wherein the value is determined by

11. the sequence reads comprise one or more barcode sequences corresponding to nucleotides attached to the nucleic acid molecule; the particular clusters are assigned to one or more particular barcode sequences; Identifying the particular cluster corresponding to the sequence reads comprises: comparing one or more barcode sequences of the sequence reads to the one or more particular barcode sequences to determine a match; The method of claim 7, comprising:

12. 12. The method of claim 11, further comprising creating a cluster for a new sequence read if the one or more barcode sequences of the new sequence read do not match the one or more specific barcode sequences assigned to an existing cluster.

13. Identifying the particular cluster corresponding to the sequence reads comprises: aligning the sequence reads to a reference sequence to determine a genomic location; comparing said genomic location to the assigned genomic location of said particular cluster; The method of claim 7, comprising:

14. 14. The method of claim 13, wherein the genomic locations include a start genomic location and an end genomic location, and the assigned genomic location of the particular cluster has been determined using another sequence read of the particular cluster.

15. 8. The method of claim 7, further comprising outputting from the inference circuit a sequence read corresponding to the first cluster before the counter becomes greater than the threshold.

16. The method of claim 7 , wherein the cluster of nucleic acid molecules is generated by making copies of the template nucleic acid molecule.

17. 17. The method of claim 16, wherein the copies are generated using PCR.

18. 8. The method of claim 7, further comprising generating a consensus sequence read using the sequence reads of a cluster.

19. A computer readable medium having stored thereon a plurality of instructions for controlling a computer system to perform the method of any one of claims 1 to 18.

20. A computer system for carrying out the method according to any one of claims 1 to 18.