K-MER-based method for assembling polynucleotide sequences

The k-mer approach improves DNA sequencing by fragmenting and aligning sequences on an acyclic k-mer graph, addressing the inefficiencies of NGS in mapping repetitive regions and enabling efficient assembly of longer nucleotide sequences.

JP2026509693APending Publication Date: 2026-03-25ILLUMINA INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-07
Publication Date
2026-03-25

AI Technical Summary

Technical Problem

Existing DNA sequencing techniques, particularly Next-Generation Sequencing (NGS), struggle to accurately map highly repetitive or homologous regions of the genome, leading to inefficiencies in identifying larger genetic mutations such as whole gene deletions, and are often costly and time-consuming.

Method used

A k-mer approach is employed to assemble nucleotide sequences by fragmenting samples into shorter sequences, aligning them to a reference genome, and using a globally optimal procedure to determine the heaviest edge weights on an acyclic k-mer graph, improving assembly reliability and efficiency.

Benefits of technology

This method enhances the ability to map challenging genomic regions, providing long-range information and reducing costs and time, enabling the assembly of longer nucleotide sequences with higher accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026509693000001_ABST
    Figure 2026509693000001_ABST
Patent Text Reader

Abstract

A method and system for polynucleotide sequencing and sequence assembly using a k-mer graph approach are disclosed. The method may include receiving a sample containing nucleic acid sequences, fragmenting the sample into several shorter sequences, and aligning the shorter sequences to a reference genome to identify k-mer sequences. The system may include a processor, memory, and a storage device configured to store the reference genome and the sample. The processor may be configured to perform steps of the method, including aligning the shorter sequences to the reference genome.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] (Cross-reference of related applications) This application claims the interests of U.S. Provisional Patent Application No. 63 / 489,606, filed on 10 March 2023, the contents of which are incorporated herein by reference in their entirety.

[0002] This disclosure relates to DNA sequencing and sequence assembly. More specifically, this disclosure relates to a method for assembling nucleotide sequence by assembling a large number of small sequences using a k-mer approach. [Background technology]

[0003] Identifying disease-causing DNA mutations has been a long-term goal of genetic medicine. Genomic variants can be either small changes to a patient's DNA sequence or larger deletions and duplications. Existing sequencing techniques are relatively well-suited to detecting single-nucleotide polymorphisms ("SNPs") and short insertions / deletions ("indels") because these individual mutations preserve the context of nearby sequences. Some diseases are caused by more extensive mutations, such as alpha-thalassemia, which is caused by whole gene deletions of HBA1 and HBA2. Next-generation sequencing (NGS), developed over the past decade, is becoming capable of reliably identifying differences between a patient's genome and a reference genome. NGS refers to a diverse collection of post-Sanger sequencing techniques, including synthetic sequencing, ligation sequencing, and ion-semiconductor sequencing.

[0004] NGS is the most widely adopted technology for whole-genome sequencing (WGS), providing an accurate, scalable, and cost-effective solution characterized in over 300,000 scientific publications. However, small portions of the genome remain difficult to map due to highly repetitive or homologous regions. While standard short-read sequencing provides accurate base-level sequences to offer short-range information, it may underperform in providing long-range information. NGS technologies and assembly methods aim to address such edge cases and accelerate access to the remaining approximately 5% of gene regions that are currently difficult to map.

[0005] Furthermore, while NGS methods are widely used in large-scale DNA sequencing projects, such methods can be expensive and time-consuming. An alternative assembly method may consider short substrings of fixed length k, known as k-mers. The k-mer approach for assembly involves fragmenting a sample into multiple shorter sequences and aligning the shorter sequences to a reference genome to identify progressively longer k-mer sequences. [Overview of the project] [Means for solving the problem]

[0006] One aspect of this disclosure relates to a sequence determination method and system for generating high-quality assemblies. For example, some embodiments can generate acyclic k-mer graphs. Some embodiments apply a globally optimal procedure to determine the path with the heaviest edge weights on the acyclic k-mer graph. Such embodiments can improve upon conventional methods that rely on greedy path extraction for assembling k-mer graphs, or even greedy path extraction with lookback, because greedy procedures focus on local information and not on all available data, and therefore may not be able to find a globally optimal solution. A choice made by a greedy procedure for a single path on a k-mer graph may depend on a choice already made upstream, which can exacerbate errors and reduce the reliability of the assembly. In one aspect, a globally optimal procedure may be applied if the k-mer graph cannot be optimally assembled by using the optimal solution of its subproblems. The methods and systems disclosed herein can improve greedy procedures by finding the globally best one or more assemblies in terms of describing the highest proportion of input reads within each subset of unaligned reads to be assembled.

[0007] In some embodiments, the k-mers of a reference guide may be oriented to a representative reference sequence segment. Embodiments may also include generating a directed k-mer graph using the k-mers of the reference guide and reads. In some embodiments, the k-mers of reads from the genomic data may be added sequentially to the k-mer graph. Embodiments may also include determining polynucleotide sequences using the directed k-mer graph.

[0008] Embodiments of the present disclosure may utilize mutant read sequences, and such methods and systems may include generating aligned mutant read sequences and gene reference sequence segments. Embodiments of the present disclosure may also use cluster files and optional associated data. In some embodiments, the cluster file may include read sequences and the assignment of read sequences to clusters. In some embodiments, the cluster file may include more than one million read sequences. In some embodiments, the generated alignment sequences may include more than 100 subgraphs. In some embodiments, the orientation information of at least some of the reads in the genomic data may include information on the relative orientation of duplicate sequences in read pairs. In some embodiments, the length of the reads in the genomic data ranges from 25 bp to 300 bp.

[0009] Embodiments of the present disclosure may also include a method for generating a reference guide having reference sequence segments as k-mers using BAM files and data structures. In some embodiments, the method may include generating a k-mer graph using the k-mers and reads of the reference guide. In some embodiments, the method may be targeted to sequencing experiments using only acyclic k-mer graphs. In addition, or alternatively, in some embodiments, the method may be capable of generating acyclic k-mer graphs favorably at a fairly high speed. A fairly high speed for generating acyclic k-mer graphs may be a speed that does not require filtering the sequences of the acyclic k-mer graph or where no benefit is provided from filtering. In some embodiments, the method may include determining the heaviest path in the k-mer graph using a globally optimal procedure.

[0010] Some embodiments relate to a method for assembling a nucleotide sequence of a polynucleotide from read pairs, the method comprising: providing a flow cell containing clusters of read pairs, each read pair containing two sequence reads, the two sequence reads being oriented opposite to each other; mapping the plurality of read pairs to a reference guide of a polynucleotide; oriented the sequence reads in each read pair to be oriented in the same direction as the reference guide of a polynucleotide; generating at least one k-mer graph from the oriented sequence reads, including nodes and edges, each node of the at least one k-mer graph corresponding to a read pair from a single cluster, and each edge having a weight corresponding to the number of identical sequence reads in the cluster; and assembling a nucleotide sequence of a polynucleotide by tracing a plurality of acyclic paths through the at least one k-mer graph.

[0011] Another embodiment relates to a system for analyzing the sequence of polynucleotides, comprising a machine-readable memory and a processor configured to execute machine-readable instructions, wherein, when executed by the processor, the machine-readable instructions cause the system to perform the steps described above and herein.

[0012] Another embodiment is a non-temporary computer-readable medium that, when executed by a processor, stores a polynucleotide sequence analysis program which includes instructions causing a polynucleotide sequencer to perform the steps described above and herein. [Brief explanation of the drawing]

[0013] The features of the examples in this disclosure will become apparent from the following detailed description and drawings. In the drawings, similar reference numerals correspond to components that are similar but not identical. For brevity, reference numerals or features having the aforementioned functions may or may not be described in relation to other drawings in which they appear.

[0014] [Figure 1] This flowchart shows the process of sequencing a reference genome by inputting polynucleotide cluster data into a k-mer assembly system and outputting an assembled sequence data file. [Figure 2] This document illustrates an embodiment of a system including memory, which contains a cluster assembly process module. [Modes for carrying out the invention]

[0015] All patents, applications, published applications, and other publications referenced herein are incorporated herein by reference in their entirety. Where any term or phrase is used herein in a manner that contradicts or otherwise contradicts the definitions contained in the patents, applications, published applications, and other publications incorporated herein by reference, the use herein shall prevail over the definitions incorporated herein by reference.

[0016] The following description and examples illustrate embodiments of the present invention in detail. Those skilled in the art will recognize that there are numerous variations and modifications of the present invention that fall within the scope of the invention. Therefore, the description of preferred embodiments should not be considered limiting to the scope of the invention.

[0017] overview Embodiments relate to a system and method for efficiently determining the sequence of a relatively long nucleic acid molecule by fragmenting the nucleic acid molecule into relatively short fragments, sequencing those fragments to determine sequence reads, and then assembling the sequence reads to determine the final sequence of the long nucleic acid molecule. Generally, a sequencing read (also referred to as a “read”) refers to the estimated sequence of nucleotide bases in a nucleic acid molecule. Sequencing reads can be of any suitable length, such as approximately 20 nt, 30 nt, 36 nt, 40 nt, 50 nt, 75 nt, 100 nt, 150 nt, 200 nt, 250 nt, 300 nt, 400 nt, 500 nt, or longer. In some embodiments, sequencing reads are less than 200 nt, 150 nt, 100 nt, or 75 nt. Sequencing reads can be “paired,” meaning they originate from different ends of the nucleic acid fragment. Paired reads may have intervening unknown sequences or overlap with each other. In some cases, a sequencing read is a contig or consensus sequence assembled from separate, overlapping reads. A sequencing read can be analyzed in terms of its constituent k-mers. Generally, a "k-mer" refers to a subsequence of a given length k that makes up a sequencing read. For example, the sequence "AGCTCT" can be split into three nucleotide subsequences "AGC", "GCT", "CTC", and "TCT". In this example, each of these subsequences is a k-mer, where k=3. The k-mers may or may not be overlapping.

[0018] Sequence comparison may involve one or more comparison steps in which one or more k-mers of sequencing reads are compared to k-mers of one or more reference sequences (also simply referred to as "references"). In some embodiments, k-mers are approximately 3nt, 4nt, 5nt, 6nt, 7nt, 8nt, 9nt, 10nt, 11nt, 12nt, 13nt, 14nt, 15nt, 16nt, 17nt, 18nt, 19nt, 20nt, 25nt, 30nt, 35nt, 40nt, 45nt, 50nt, 75nt, 100nt, or longer. In some embodiments, k-mers are approximately 30nt, 25nt, 20nt, 15nt, 10nt, or shorter. k-mers may range in length from 3nt to 13nt, 5nt to 25nt, 7nt to 99nt, or 3nt to 99nt. The length of the k-mers analyzed in each step may vary. For example, the first comparison can compare a k-mer in a sequencing read with a reference sequence of 21nt length, and the second comparison can compare a k-mer in a sequencing read with a reference sequence of 7nt length. With respect to any given sequence, the k-mers analyzed in the comparison step may be duplicates (e.g., in a sliding window), or they may be the same or different in length. While k-mers are generally referred to herein as being constructed from nucleic acid sequences, it should be understood that k-mers may also include polypeptide sequences (including comparisons of k-mers consisting of amino acids).

[0019] A reference array can include any array against which array determination reads are compared. Typically, the reference array is related to several known features, such as the state of the sample source, taxon, specific species, expression profile, specific gene, associated phenotype, such as the likelihood of disease progression, drug resistance or pathogenicity, increase or decrease in susceptibility to disease, or other features. Typically, the reference array is just one of many such reference arrays in an array database. Various databases containing various types of reference arrays are available, and one or more of them can function as a reference database either individually or in any of various combinations. The database can include many species and sequence types such as NR, UniProt, SwissProt, TrEMBL, or UniRef90. The database can include specific types of sequences from multiple species, such as those used for taxonomic classification of species such as bacteria.

[0020] The database can include multiple sequences from a single species, such as the human genome, human transcriptome, model organism (e.g., mouse genome, yeast transcriptome, or C. elegans proteome), or disease vector (e.g., bat, mite, or mosquito, as well as other domestic and wild animals). In some embodiments, the reference database includes sequences of human transcripts. The reference sequences in the database can include DNA sequences, RNA sequences, or protein sequences. The reference sequences in the database can include sequences from multiple taxa. In some cases, the reference sequence is from a reference individual or reference sample source. Examples of reference individual genomes are, for example, a maternal genome, a paternal genome, or the genome of a non-cancerous tissue sample.

[0021] Examples of reference individuals or sample sources are the human genome, the mouse genome, or the genomes of bacteria, archaea, viruses, phages, fungi, and parasites of a particular serotype, genotype, strain, variant, or otherwise characterized type. The database may include polymorphic reference sequences that contain one or more mutations with respect to known polynucleotide sequences. Such polymorphic reference sequences can be different alleles found in a population, such as SNPs, indels, microdeletions, microexpansions, common rearrangements, gene recombinations, or prophage insertion sites, and may contain information regarding their relative abundance compared to non-polymorphic sequences. Polymorphic reference sequences can also be artificially generated from the reference sequences stored in the database, such as by changing one or more (including all) positions in the reference genome so that a plurality of possible mutations not present in the actual reference database are represented for comparison. The database of reference sequences can include reference sequences from one or more of a variety of different taxonomic groups, including but not limited to bacteria, archaea, chromalveolata, viruses, fungi, plants, fish, amphibians, reptiles, birds, mammals, and humans. In some cases, the database of reference sequences consists of sequences from one or more (e.g., 10, 100, 1000, 10000, 100000, 1000000, or more) reference individuals or reference sample sources, and each reference sequence in the database is associated with its corresponding individual or sample source. In some embodiments, an unknown sample can be identified as being derived from an individual or sample source represented in the reference database based on sequence comparison.

[0022] In some embodiments, each reference sequence in the database of reference sequences is associated with a k-mer weight as a measure of the degree of likelihood that a particular k-mer within the reference sequence is derived from the reference sequence. Calculation of the k-mer weight can include comparing the reference sequences in the database to other reference sequences in the database by one or more methods described herein. The k-mer values thus associated with the sequences in the database can be used in determining the k-mer weight for k-mers within the sequencing reads.

[0023] With or without weighting, k-mer collections can be used in numerous tasks in bioinformatics analysis, many of which are configured to count k-mers as a preprocessing step. While k-mers can be used for data preprocessing in taxonomic classification systems, they are also used for assembly and graph construction as described herein. In the construction of a typical de Bruijn graph, for example, the graph has nodes and edges, where nodes are oligonucleotide sequences and edges mean that two oligonucleotides are identical to each other, overlapping except for the first base and the next last base of the first k-mer (for a given k-mer, the left and right (k-1)-mers of the graph, respectively). Thus, edges mean that a k-mer at a particular node can be extended by a single base to produce another k-mer connected to another node in the graph. The amount of support for edges in a k-mer graph provides guidance in graph assembly and can be used when determining a path through many nodes of the k-mer graph to construct a particular K+1 long sequence.

[0024] Some embodiments provide the extraction of contigs having a specific k-mer count from a weighted de Bruijn graph. In some embodiments, the weight of an edge can be calculated by counting the number of reads that exactly match the sequence that the edge represents. For example, if only one read has a particular edge k-mer, that edge will have a weight of 1. However, if five reads have that particular k-mer, the edge will have a weight of 5, and so on. Thus, an edge in a graph with the most read pairs containing a perfect match with the k-mer corresponding to the edge will have a higher weight than another edge in a graph with fewer read pairs containing a perfect match with the k-mer corresponding to the edge.

[0025] In some embodiments, guide sequences copied from a reference genome are not counted when assigning weights to the corresponding edges. Therefore, the edge weights described herein may originate from the actual sequence reads entering the assembly process. In some embodiments, node weights (k-mer counts) can be associated with all k-mers from the graph. In some embodiments, the weighted graph can be constructed directly from the raw input sequences without prior counting. In some embodiments, the canonical graph may include each k-mer in both its normal and reversed forms. In some embodiments, a similar data structure can be modeled by storing only one k-mer and implicitly modeling the others.

[0026] Generally, comparing k-mers in a read to a reference sequence involves counting matching k-mers in the read and the reference sequence. The strictness of identifying matches can vary. For example, a match may be a perfect match where the nucleotide sequence of the k-mer from the read is identical to the nucleotide sequence of the k-mer from the reference. Alternatively, a match may be an imperfect match, with 1, 2, 3, 4, 5, 10, or more mismatches being acceptable. In addition to counting matches, the weight of each k-mer can be calculated by counting how many times a particular k-mer appears in a particular reference sequence, how many times a particular k-mer appears in the group of sequences containing the reference sequence, and how many times a particular k-mer appears in all reference sequences in the database of the reference sequence. In one embodiment, the k-mer weight is calculated according to the following formula, which calculates the k-mer weight as a measure of the degree of probability that a particular k-mer (Ki) originates from the reference sequence (refi), as follows:

[0027]

number

[0028] C is K i This represents a function that returns a count. ref (Ki ) indicates the count of K in a specific reference. i C db (K i ) indicates the count of K in the database. This weight provides a relative database-specific measure of the degree to which a k-mer is likely to be derived from a specific reference. Before comparing sequencing reads to a reference sequence, the k-mer weight (or a measure of the likelihood that a k-mer is derived from a given reference sequence) can be calculated for each k-mer in the database and for the reference sequence. In some examples, the k-mer weight of the degree to which a k-mer is likely to be derived from a specific taxon is the C i in the above formula, defined as a function that returns the total number of K i in a specific taxon. ref (K i ) is calculated by defining.

[0029] One aspect of the present disclosure is directed to introducing artificial mutations prior to sequencing, which helps to classify reads into assembly clusters that need to be assembled. For the purposes of this description, the distinction between "sequencing clusters" and "assembly clusters" is emphasized. A "sequencing cluster" can refer to a set of DNA fragments generated by bridge amplification of a single DNA fragment within a "spot" on a flow cell, for example, which typically results in a single read pair. An "assembly cluster" can refer to a cluster of reads that share mutations and are presumed to be derived from the same mutant template. An "assembly cluster" can also generally refer to any cluster of reads that are presumed to be related. For example, some assembly clustering processes use single-linkage clustering to construct the transitive closure of sequences with similarity above a specific threshold.

[0030] In some embodiments, artificial mutations may provide an assembly cluster method for subsetting the assembly process into parts of the overall polynucleotide assembly process. In some embodiments, the assembly clusters may individually correspond to single molecules of a reasonable length relative to the entire genome. In some embodiments, artificial mutations may provide a fingerprint for fitting specific short reads to corresponding assembly clusters. In some embodiments, artificial mutations may help assemble short reads into longer reads / contigs, which can be more readily mapped to a reference genome. For example, two read pairs may share sequences with several artificial mutations that can enable the unique identification or grouping of reads belonging to a single original molecule.

[0031] In some embodiments, an artificially mutated template is fragmented into smaller fragments (e.g., paired-end inserts) and sequenced. The resulting sequence can be decomposed into (overlapping) k-mers, where length k is considerably smaller than the length of the sequencing read. In some embodiments, the disclosed method uses a 150 bp sequencing read and can use k=21, or 31, or 41, or 51, or 81. Other implementations for reaching assembly clusters that need to be assembled are also contemplated.

[0032] As described above, embodiments of the present disclosure relate to a system and method for sequencing a target nucleic acid sequence by sequencing a short segment of the target sequence and then assembling the short segment into a final target sequence through a k-mer graphing process. In some embodiments, the sequence reads are assembled by comparison with a reference genome. In some embodiments, the target sequence can be artificially mutated to include a mutant sequence ("mut" sequence). This helps to assemble the short read into a longer read / contig. Because the resulting read is longer, it can then be more easily mapped by the reference genome. In some embodiments, only the DNA is mutated. In some embodiments, a fragment of the genome can be mutated before sequencing.

[0033] In such embodiments, a template sequence is randomly mutated and then fragmented into multiple shorter sequences of length "k" (referred to throughout this disclosure as "k-mers"). The nucleotide sequences of these k-mer sequences are then determined, for example, using next-generation sequencing ("NGS") technology. NGS technology is useful for rapidly and simultaneously sequencing multiple relatively short nucleotide sequences. In some embodiments, NGS technology first creates a sequencing cluster of oligonucleotide sequences on a flow cell and then reads this by an NGS system, such as one manufactured by Illumina, Inc. (San Diego, CA). During the reading process, each sequencing cluster may be used to read the bound oligonucleotide sequence in the forward or reverse direction so that pairs of reads corresponding to the 5'-3' and 3'-5' orientations of the oligonucleotide to be sequenced are determined. These read pairs are then fed into the system, as described below, to generate a k-mer graph, which can be used to assemble the sequenced oligonucleotide read pairs into determined nucleotide sequences.

[0034] For example, long target polynucleotides, such as fragments of genome sequences, can be artificially mutated using the process described in International Publication No. 2021 / 064365 (which is incorporated herein by reference in its entirety). The mutated target polynucleotides are then fragmented, and each individual fragment is attached to a flow cell and amplified to create sequencing clusters. Each sequencing cluster containing a portion of the mutated target polynucleotide is then identified and may be said to correspond to an assembly cluster. The nucleotide sequences of the forward and reverse strand pairs within each assembly cluster can then be determined using NGS technology.

[0035] One aspect of this disclosure relates to constructing a k-mer graph of all k-mer sequences from a set of reads in an assembly cluster. By using a reference guide sequence, sequence reads can first be assigned to positions along a presumed reference guide polynucleotide. Then, each set of paired reads and reference guides is passed to a k-mer assembler system, which can construct a k-mer graph of k-mer sequences from a sequencing run using paired reads and reference guides containing potentially adjacent k-mer sequences. Since each sequenced fragment may have different orientations of read pairs, the system can determine which orientation of the read pairs matches the orientation of the reference guide sequence. From this information, as will be discussed in more detail below, the system can use the orientation information to provide all sequence data from a particular assembly cluster in a single orientation that is the same as the reference guide. It should be understood that if some k-mer sizes do not produce a graph with satisfactory predetermined features (e.g., a graph containing cycles or too many non-unique k-mers), multiple k-mer graphs with different k-mer sizes may be constructed. Once a satisfactory k-mer graph is constructed for a given k-mer size, a best-score path extraction procedure can be applied to assemble a long template from all the k-mer graph data, which can then be output to a results file, as described in more detail below.

[0036] One embodiment involves determining the highest-scoring path through a k-mer graph to assemble a target polynucleotide sequence from k-mers. This can be achieved by first finding the best forward path through the k-mer graph. Each k-mer graph includes nodes and edges. Nodes may include sets of read pairs determined from each sequencing cluster sequenced on a flow cell. Edges are used to imply that two k-mers at two adjacent nodes are identical to each other except for the first base of one k-mer and the last base of the next k-mer. Edges mean that the k-mers associated at a particular node have a sequence and that the adjacent node is the same k-mer sequence, extended by a single base to produce another k-mer corresponding to the adjacent node in the k-mer graph.

[0037] In one embodiment, the count of reads in an assembly cluster that precisely matches the sequence implied by an edge can be calculated as the weight of that edge. Thus, edges originating from an assembly cluster with a larger number of read pairs having identical sequences will have a higher edge weight than edges in an assembly cluster with a smaller number of identical read pairs. Once the k-mer assembly system has computed a set of forward acyclic paths from a first node to a final node, the system can compute the highest-scoring reverse path to determine the best fit for the target sequence assembled from each k-mer. By starting from the final node in each path and then choosing to move backward through the path by selecting the node with the highest weight, the k-mer assembly system assembles the nucleotide sequence corresponding to the highest-scoring path. In some embodiments, the disclosed methods and systems can utilize dynamic programming methods, which may allow determining the highest-scoring path without computing a total score for all possible paths. The dynamic programming methods further described herein allow the overall problem to be divided into segments, each of which may be easier to compute or otherwise solve.

[0038] In one embodiment, the target sequence is a relatively long template read from an assay. Several embodiments of the present disclosure enable the determination of N50 sequences of 6–7kb and continuous long-read sequences having read lengths of 5kb, 10kb, 20kb, 30kb, 40kb, 50kb, or more.

[0039] Specific embodiments for sequencing double-stranded polynucleotides using nanopores, and / or for analyzing or organizing signals associated with k-mer polynucleotides, can be utilized using systems or methods disclosed in U.S. Patent Provisional Application No. 63 / 247,155, filed September 22, 2021, and U.S. Patent Application No. 17 / 224,496, published October 7, 2021, as U.S. Patent Publication No. 2021 / 0313009 (these disclosures are incorporated herein by reference in their entirety). While some advantages of the present disclosures apply to short-read sequencing, the assembly clustering and other methods of the present disclosures are intended to be applicable to long-read sequencing as well.

[0040] definition All technical and scientific terms used herein have the same meanings as those generally understood by those skilled in the art to which this disclosure pertains, unless otherwise defined.

[0041] As used herein, the singular forms “a,” “and,” and “the” refer to multiple objects unless the context explicitly indicates otherwise. Therefore, for example, a reference to “array” may include multiple such arrays.

[0042] The terms comprising, including, and containing, and their various forms, are synonymous and equally broad in meaning. Furthermore, unless otherwise explicitly stated, an example of having, including, or possessing one or more elements having a particular characteristic may include additional elements, regardless of whether those additional elements possess that characteristic.

[0043] As used herein, “nucleic acid base” refers to heterocyclic bases, such as adenine, guanine, cytosine, thymine, uracil, inosine, xanthine, hypoxanthine, or their heterocyclic derivatives, analogs, or tautomers. Nucleic acid bases may be naturally occurring or synthesized. Non-restrictive examples of nucleic acid bases include adenine, guanine, thymine, cytosine, uracil, xanthine, hypoxanthine, 8-azapurine, purines substituted with methyl or bromine at position 8, 9-oxo-N6-methyladenine, 2-aminoadenine, 7-deazaxanthine, 7-deazaguanine, 7-deaza-adenine, N4-ethanocytosine, 2,6-diaminopurine, N6-ethano-2,6-diaminopurine, 5-methylcytosine, 5-(C3~C6)-alkynylcytosine, 5-fluorouracil, 5-bromouracil, Thiouracil, pseudoisocytosine, 2-hydroxy-5-methyl-4-triazolopyridine, isocytosine, isoguanine, inosine, 7,8-dimethylaloxazine, 6-dihydrothymine, 5,6-dihydrouracil, 4-methyl-indole, etenoadenine, and nucleic acid bases not found in nature, as described in U.S. Patent Nos. 5,432,272 and 6,150,510, and International Publication Nos. 92 / 002258, 93 / 10820, 94 / 22892, and 94 / 24144, and Fasman ("Practical Handbook of Biochemistry and Molecular Biology", pp. 385-394, 1989, CRC Press, Boca Raton, LO) (all of which are incorporated herein by reference in their entirety).

[0044] As used herein, the term “nucleotide” is intended to mean a molecule comprising a sugar and at least one phosphate group, and in some examples also comprising a nucleic acid base. A nucleotide lacking a nucleic acid base may be called “debased.” In some embodiments, a “nucleotide” comprises a nitrogen-containing heterocyclic base, a sugar, and one or more phosphate groups. A nucleotide is a monomeric unit of a nucleic acid sequence. Examples of nucleotides include, for example, ribonucleotides or deoxyribonucleotides. In ribonucleotides (RNA), the sugar is ribose, and in deoxyribonucleotides (DNA), the sugar is deoxyribose, i.e., a sugar lacking the hydroxyl group at the 2' position of ribose. The nitrogen-containing heterocyclic base may be a purine base or a pyrimidine base. Examples of purine bases include adenine (A) and guanine (G), and their modified derivatives or analogues. Examples of pyrimidine bases include cytosine (C), thymine (T), and uracil (U), as well as their modified derivatives or analogues. The C-1 atom of deoxyribose is bonded to the N-1 atom of the pyrimidine or the N-9 atom of the purine. The phosphate group may be monophosphate, diphosphate, or triphosphate. While these nucleotides are natural nucleotides, it should be further understood that non-natural nucleotides, modified nucleotides, or analogues of the aforementioned nucleotides may also be used.

[0045] Examples of nucleotides include deoxyribonucleotides, modified deoxyribonucleotides, ribonucleotides, modified ribonucleotides, peptide nucleotides, modified peptide nucleotides, modified phosphate-glycoskeletal nucleotides, and mixtures thereof. Examples of nucleotides include adenosine monophosphate (AMP), adenosine diphosphate (ADP), adenosine triphosphate (ATP), thymidine monophosphate (TMP), thymidine diphosphate (TDP), thymidine triphosphate (TTP), cytidine monophosphate (CMP), cytidine diphosphate (CDP), cytidine triphosphate (CTP), guanosine monophosphate (GMP), guanosine diphosphate (GDP), guanosine triphosphate (GTP), uridine monophosphate (UMP), uridine diphosphate (UDP), and uridine triphosphate (uridine Deoxyadenosine triphosphate (UTP), deoxyadenosine monophosphate (dAMP), deoxyadenosine diphosphate (dADP), deoxyadenosine triphosphate (dATP), deoxythymidine monophosphate (dTMP), deoxythymidine diphosphate (dTDP), deoxythymidine triphosphate (dTTP), deoxycytidine diphosphate (deoxycytidineThis includes deoxycytidine diphosphate (dCDP), deoxycytidine triphosphate (dCTP), deoxyguanosine monophosphate (dGMP), deoxyguanosine diphosphate (dGDP), deoxyguanosine triphosphate (dGTP), deoxyuridine monophosphate (dUMP), deoxyuridine diphosphate (dUDP), and deoxyuridine triphosphate (dUTP).

[0046] Examples of nucleotides: The term “nucleotide” may also be intended to encompass any nucleotide analog, which is a type of nucleotide that contains modified nucleic acid bases, sugars, a backbone and / or phosphate moieties compared to naturally occurring nucleotides. Nucleotide analogs may also be referred to as “modified nucleic acids.” Examples of modified nucleic acid bases include inosine, xasanine, hypoxasanine, isocytosine, isoguanine, 2-aminopurine, 5-methylcytosine, 5-hydroxymethylcytosine, 2-aminoadenine, 6-methyladenine, 6-methylguanine, 2-propylguanine, 2-propyladenine, 2-thiouracil, 2-thiothymine, 2-thiocytosine, 15-halouracil, 15-halocytosine, 5-propynyluracil, 5-propynylcytosine, 6-azouracil, 6-azo These include cytosine, 6-azothymine, 5-uracil, 4-thiouracil, 8-haloadenine or guanine, 8-aminoadenine or guanine, 8-thioladenine or guanine, 8-thioalkyladenine or guanine, 8-hydroxyladenine or guanine, 5-halosubstituted uracil or cytosine, 7-methylguanine, 7-methyladenine, 8-azaguanine, 8-azaadenine, 7-deazaguanine, 7-deazaadenine, 3-deazaguanine, 3-deazaadenine, and the like. As is known in the art, certain nucleotide analogs cannot be incorporated into polynucleotides, such as adenosine 5'-phosphosulfate. A nucleotide may contain any suitable number of phosphates, e.g., 3, 4, 5, 6, or more than 6 phosphates. Nucleotide analogs also include roch nucleic acid (LNA), peptide nucleic acid (PNA), and 5-hydroxylbutynyl-2'-deoxyuridine ("Super T").

[0047] In some embodiments, the term “modification” as used herein is intended to refer not only to chemical modifications of nucleic acids, but also to changes in the three-dimensional structure or composition of nucleic acids, interactions between nucleic acids and drugs (e.g., those bound to nucleic acids), and other perturbations related to nucleic acids. Thus, the site or location of modification is the locus (e.g., a single nucleotide or a series of consecutive or discontinuous nucleotides) in which such modification occurs within the nucleic acid. In the case of a double-stranded template, such modifications may occur in a strand complementary to the nascent strand synthesized by the polymerase processing the template, or in a substituted strand. For example, modified nucleotides may include 5-methylcytosine, N6-methyladenosine, N3-methyladenosine, N7-methylguanosine, 5-hydroxymethylcytosine, pseudouridine, thiouridine, isoguanosine, isocytosine, dihydrouridine, quosin, waiosin, inosine, triazole, diaminopurine, β-D-glucopyranosyloxymethyluracil (also known as β-D-glucosyl-HOMedU, β-glucosyl-hydroxymethyluracil, "dJ" or "base J"), 8-oxoguanosine, and 2'-O-methyl derivatives of adenosine, cytidine, guanosine, and uridine. Modified DNA and RNA bases are described, for example, in Narayan P, et al. (1987) Mol Cell Biol 7(4):1572-5, Horowitz S, et al. (1984) Proc Natl Acad Sci USA81(18):5667-71, "RNA's Outfits: The nucleic acid has dozens of chemical costumes,” (2009) C&EN;87(36):65-68, Kriaucionis, et al. (2009) Science 324(5929):929-30, and Tahiliani, et al. (2009) Science 324(5929):930-35, Matray, et al. (1999) Nature 399(6737):704-8, Ooi, et al. (2008)Cell 133:1145-8, Petersson, et al. (2005) J Am Chem Soc.127(5):1424-30, Johnson, et al. (2004)32(6):1937-41, Kimoto, et al. (2007) Nucleic Acids Res. 35(16):5360-9, Ahle, et al. (2005) Nucleic Acids Res 33(10):3176, Krueger, et al. al., Curr Opinions in Chem Biology 2007,11(6):588), Krueger, et al. (2009) Chemistry & Biology 16(3):242, McCullough, et al. (1999) Annual Rev of Biochem 68:255, Liu, et al. (2003) Science 302(5646):868-71, Limbach et al. Further details are provided in al. (1994) Nucl. Acids Res. 22(12):2183-2196, Wyatt, et al. (1953) Biochem. J. 55:774-782, Josse, et al. (1962) J. Biol. Chem. 237:1968-1976, Lariviere, et al. (2004) J. Biol. Chem. 279:34715-34720, and in International Patent Application Publication No. 2009 / 037473 (these disclosures are incorporated herein by reference in their entirety).

[0048] Modifications may further include the presence of non-native base pairs in nucleic acids, and include, but are not limited to, homo and heterobase pairs of hydroxypyridone and pyridopurine, pyridine-2,6-dicarboxylate and pyridine metal base pairs, pyridine-2,6-dicarboxamide and pyridine metal base pairs, metal-mediated pyrimidine base pairs T-Hg(II)-T and C-Ag(I)-C, and metal homobase pairs of 2,6-bis(ethylthiomethyl)pyridine nucleic acid base Spy, and alkyne substitutions, enamine substitutions, alcohol substitutions, imidazole substitutions, guanidine substitutions, and pyridimine substitutions to purines or pyridimine bases (Wettig, et al. (2003) J Inorg Biochem 94:94-99, Clever, et al. (2005) Angew Chem Int Ed 117:7370-7374, Schlegel, et al. (2009) Org Biomol Chem 7(3):476-82, Zimmerman, et al. (2004) Bioorg Chem 32(1):13-25, Yanagida, et al. (2007) Nucleic Acids Symp Ser(Oxf) 51:179-80, Zimmerman (2002) J Am Chem Soc 124(46):13684-5, Buncel, et al. (1985) Inorg Biochem 25:61-73, Ono, et al. (2004) Angew Chem 43:4300-4302, Lee, et al. (1993) Biochem Cell Biol 71:162-168, Loakes, et al. al. (2009), Chem Commun 4619-4631, and Seo, et al. (2009) J Am Chem Soc 131:3246-3252, these disclosures are incorporated herein by reference in their entirety.Other types of modifications include, for example, nicks, missing bases (e.g., depurine or depyrimidine sites), ribonucleosides (or modified ribonucleosides) in deoxyribonucleoside-based nucleic acids, deoxyribonucleosides (or modified deoxyribonucleosides) in ribonucleoside-based nucleic acids, pyrimidine dimers (e.g., thymine dimers or cyclobutanepyrimidine dimers), cis-platin crosslinks, oxidative damage, hydrolysis damage, other methylated bases, bulky DNA or RNA base adducts, photochemical reaction products, interchain crosslink products, mismatched bases, and other types of "damage" to nucleic acids. Modified nucleotides can be caused by exposure to DNA, including radiation (e.g., UV), carcinogenic chemicals, crosslinking agents (e.g., formaldehyde), certain enzymes (e.g., nickase, glycosylase, exonuclease, methylase, other nucleases, glucosyltransferases, etc.), viruses, toxins, and other chemicals, as well as thermal damage.

[0049] As used herein, the term “polynucleotide” refers to a molecule containing a sequence of nucleotides linked together. Polynucleotides are a non-exclusive example of polymers. Examples of polynucleotides include deoxyribonucleic acid (DNA), ribonucleic acid (RNA), and their analogues such as locked nucleic acid (LNA) and peptide nucleic acid (PNA). Polynucleotides may be single-stranded sequences of nucleotides, such as RNA or single-stranded DNA, double-stranded sequences of nucleotides, such as double-stranded DNA, or mixtures of single-stranded and double-stranded sequences of nucleotides. Double-stranded DNA (dsDNA) includes genomic DNA and PCR and amplification products. Single-stranded DNA (ssDNA) can be converted to dsDNA and vice versa. Polynucleotides may include enantiomerized DNA, LNA, or non-spontaneously occurring DNA such as PNA. The exact sequence of nucleotides in a polynucleotide may be known or unknown. Examples of polynucleotides include: genes or gene fragments (e.g., probes, primers, expressed sequence tags (ESTs), or serial analysis of gene expression (SAGE) tags), genomic DNA, genomic DNA fragments, exons, introns, messenger RNA (mRNA), transfer RNA, ribosomal RNA, ribozymes, cDNA, recombinant polynucleotides, synthetic polynucleotides, branched polynucleotides, plasmids, vectors, isolated DNA of any sequence, isolated RNA of any sequence, nucleic acid probes, any of the aforementioned primers, or amplified copies.

[0050] The terms “oligonucleotide” and “polynucleotide” may be used interchangeably herein. Unless otherwise specified, the distinction between the terms is not intended to indicate any specific difference in size, sequence, or other properties. For clarity, when describing a particular method or composition involving several polynucleotide species, different terms may be used to distinguish one species of polynucleotide from another.

[0051] The terms “nucleic acid” and “polynucleotide” may be used interchangeably and refer to single-stranded or double-stranded deoxyribonucleotides or ribonucleotide polymers, and unless otherwise specified, include known analogues of naturally occurring nucleotides that hybridize to nucleic acids in a similar manner to naturally occurring nucleotides, such as peptide nucleic acids (PNAs) and phosphorothioate DNA. Unless otherwise specified, a particular nucleic acid sequence includes its complementary sequence. Examples of nucleotides include, but are not limited to, ATP, dATP, CTP, dCTP, GTP, dGTP, UTP, TTP, dUTP, 5-methyl-CTP, 5-methyl-dCTP, ITP, dITP, 2-amino-adenosine-TP, 2-amino-deoxyadenosine-TP, 2-thiothymidine triphosphate, pyrrolo-pyrimidine triphosphate, and 2-thiocytidine, as well as alpha-thio triphosphate for all of the above, and 2'-O-methyl-ribonucleotide triphosphate for all of the above bases. Examples of modified bases include, but are not limited to, 5-Br-UTP, 5-Br-dUTP, 5-F-UTP, 5-F-dUTP, 5-propynyl-dCTP, and 5-propynyl-dUTP.

[0052] As used herein, the term “primer” is defined as a polynucleotide to which a nucleotide can be added via a free 3'OH group. A primer may include a 3' block that prevents polymerization until the block is removed. A primer may include a 5' end modification to enable a coupling reaction or to allow the primer to be coupled to another part. A primer may include one or more parts, such as 8-oxo-G, which can be cleaved under suitable conditions, such as UV light, chemicals, or enzymes. The length of the primer may be the length of any preferred number of bases and may include a preferred combination of natural and / or non-natural nucleotides. The target polynucleotide may include an “amplification adapter” or more simply an “adapter” that hybridizes to the primer (having a sequence complementary to the primer) and can be amplified to produce a complementary copy polynucleotide by adding a nucleotide to the free 3'OH group of the primer.

[0053] As used herein, the term “double-stranded,” when used in reference to a polynucleotide, is intended to mean that all or substantially all of the nucleotides in the polynucleotide are hydrogen-bonded to each other in the complementary polynucleotide. A double-stranded polynucleotide may also be referred to as “double-stranded.”

[0054] As used herein, the term "single-stranded," when used in reference to a polynucleotide, means that none of the nucleotides in the polynucleotide are hydrogen-bonded to any other nucleotide in the complementary polynucleotide.

[0055] As used herein, the term “target polynucleotide” is intended to mean the polynucleotide that is the subject of analysis or action, and may also be referred to by terms such as “library polynucleotide,” “template polynucleotide,” or “library template.” The analysis or action involves subjecting the polynucleotide to amplification, sequencing, and / or other procedures. The target polynucleotide may include additional nucleotide sequences to the target sequence being analyzed. For example, the target polynucleotide may include one or more adapters, including an amplification adapter that functions as a primer binding site, which is flank to the target polynucleotide sequence being analyzed. In a particular example, multiple target polynucleotides may have first and second adapters that are identical to each other but have different sequences. Two adapters that may be adjacent to a particular target polynucleotide sequence may have the same sequence as each other, or complementary sequences, or the two adapters may have different sequences. Thus, species in multiple target polynucleotides may include known sequence regions adjacent to unknown sequence regions that are evaluated by sequencing (e.g., SBS). In some examples, the target polynucleotide carries an amplification adapter at a single end, and such adapter may be located at either the 3' or 5' end of the target polynucleotide. The target polynucleotide may be used without an adapter, in which case the primer binding sequence may be the sequence present on the target polynucleotide directly.

[0056] For example, the template polynucleotide chain may be any sample to be sequenced and may consist of DNA, RNA, or their analogues (e.g., peptide nucleic acids). The source of the template (or target) polynucleotide chain may be genomic DNA, messenger RNA, or other nucleic acids from natural sources. In some cases, the template polynucleotide chain derived from such sources can be amplified before use. Any of the various known amplification techniques can be used, including but not limited to polymerase chain reaction (PCR), rolling circle amplification (RCA), multiple displacement amplification (MDA), or random primer amplification (RPA). It should be understood that amplification of the template polynucleotide chain before use is optional. Therefore, in some cases, the template polynucleotide chain will not be amplified before use. The template / target polynucleotide chain may, in some cases, be derived from a synthetic library. The synthetic nucleic acid may have a natural DNA or RNA composition, or may be an analogue thereof.

[0057] Biological samples from which template polynucleotide chains may be derived include, for example, mammals such as rodents (mice, rats, rabbits, guinea pigs), ungulates (horses, sheep, pigs, goats, cats, dogs), primates, humans or non-human primates; plants such as Arabidopsis thaliana, maize, sorghum, oats, wheat, rice, rapeseed, and soybeans; algae such as Chlamydomonas reinhardtii; nematodes such as Caenorhabditis elegans; insects such as Drosophila melanogaster, mosquitoes, bees, and spiders; fish such as zebrafish; reptiles; amphibians such as frogs and African clawed frogs (Xenopus laevis); and Dictyostelium. Examples include fungi such as Pneumocystis carinii, Takifugu rubripes, yeast, budding yeast (Saccharamoyces cerevisiae), or fission yeast (Schizosaccharomyces pombe); or derived from Plasmodium falciparum. The template polynucleotide chain 48 may be derived from bacteria, prokaryotes such as Escherichia coli, Staphylococcus, or Mycoplasma pneumoniae; archaea; viruses such as Hepatitis C virus, Ebola virus, or human immunodeficiency virus; or viloids. The template polynucleotide chain may be derived from a homogeneous culture or population of the above organisms, or alternatively, from a collection of several different organisms, such as a colony or ecosystem.

[0058] Furthermore, the template polynucleotide chain does not have to be derived from natural sources; rather, it can be synthesized using known techniques. For example, gene expression probes or genotyping probes can be synthesized and used in the examples described herein.

[0059] In some cases, the template polynucleotide chain can be obtained as fragments of one or more larger nucleic acids. Fragmentation can be carried out using any of the various techniques known in the art, including, for example, atomization, sonication, chemical cleavage, enzymatic cleavage, or physical shearing. Fragmentation can also result from the use of certain amplification techniques that produce amplicons by copying only a portion of a larger nucleic acid chain. For example, PCR amplification produces fragments whose size is defined by the length of the nucleotide sequence on the original template between the positions where adjacent primers hybridize during amplification. The length of the template polynucleotide chain may be in terms of the number of nucleotides or in terms of meter length (e.g., nanometers).

[0060] A template / target polynucleotide chain or a group of its amplicons may have an average chain length desirable or appropriate for a particular sequencing instrument. For example, the average chain length may be about 100,000 nucleotides, about 50,000 nucleotides, about 10,000 nucleotides, about 5,000 nucleotides, about 1,000 nucleotides, about 500 nucleotides, about 100 nucleotides, or less than about 50 nucleotides. Alternatively or additionally, the average chain length may be about 10 nucleotides, about 50 nucleotides, about 100 nucleotides, about 500 nucleotides, about 1,000 nucleotides, about 5,000 nucleotides, about 10,000 nucleotides, about 50,000 nucleotides, or greater than about 100,000 nucleotides. Alternatively or additionally, the mean chain length may be approximately 10 kilonucleotides, approximately 50 kilonucleotides, approximately 100 kilonucleotides, approximately 500 kilonucleotides, approximately 1,000 kilonucleotides, approximately 5,000 kilonucleotides, approximately 10,000 kilonucleotides, approximately 50,000 kilonucleotides, or more than approximately 100,000 kilonucleotides. Alternatively or additionally, the mean chain length may be approximately 10 meganucleotides, approximately 50 meganucleotides, approximately 100 meganucleotides, approximately 500 meganucleotides, approximately 1,000 meganucleotides, approximately 5,000 meganucleotides, approximately 10,000 meganucleotides, approximately 50,000 meganucleotides, or more than approximately 100,000 meganucleotides. The mean chain length of the target polynucleotide chain or the population of its amplicons may be in the range between the maximum and minimum values ​​above.

[0061] In some cases, a set of template / target polynucleotide chains may be configured to have the maximum length for its members, or otherwise to have the maximum length for its members. For example, the maximum length of a member may be about 100,000 nucleotides, about 50,000 nucleotides, about 10,000 nucleotides, about 5,000 nucleotides, about 1,000 nucleotides, about 500 nucleotides, about 100 nucleotides, or less than about 50 nucleotides. For example, the maximum length of a member may be about 100,000 meganucleotides, about 50,000 meganucleotides, about 10,000 meganucleotides, about 5,000 meganucleotides, about 1,000 meganucleotides, about 500 meganucleotides, about 100 meganucleotides, or less than about 50 meganucleotides. Alternatively or additionally, a collection of template polynucleotide chains or its amplicons may be generated under conditions that have a minimum length for its members, or otherwise configured to have a minimum length for its members. For example, the minimum length of a member may be about 10 nucleotides, about 50 nucleotides, about 100 nucleotides, about 500 nucleotides, about 1,000 nucleotides, about 5,000 nucleotides, about 10,000 nucleotides, about 50,000 nucleotides, or greater than about 100,000 nucleotides. For example, the minimum length of a member may be approximately 10 kilonucleotides, 50 kilonucleotides, 100 kilonucleotides, 500 kilonucleotides, 1,000 kilonucleotides, 5,000 kilonucleotides, 10,000 kilonucleotides, 50,000 kilonucleotides, or greater than approximately 100,000 kilonucleotides.For example, the minimum length of a member may be approximately 10 meganucleotides, 50 meganucleotides, 100 meganucleotides, 500 meganucleotides, 1,000 meganucleotides, 5,000 meganucleotides, 10,000 meganucleotides, 50,000 meganucleotides, or greater than 100,000 meganucleotides. The maximum and minimum chain lengths of the template polynucleotide chain in the population may be within the range between the above maximum and minimum values.

[0062] As used herein, the terms “read” or “sequence read” refer to the raw sequence obtained from a sequencing machine. A read may consist of multiple segments. For sequencing data, reads are indexed by the order in which they are sequenced. In DNA sequencing, a read is an estimated sequence of base pairs (or base pair probabilities) corresponding to all or part of a single DNA fragment. A typical sequencing experiment involves fragmenting a genome into millions of molecules, which are size-selected and concatenated into adapters. The set of fragments is called a sequencing library, which is sequenced to generate a set of reads.

[0063] As used herein, the term “link file” refers to information about duplicated read sequences, including the length of the duplicate, the number of mutations in the duplicated region, and the relative orientation of the duplicate (forward or backward complement). The relative orientation, also called “polarity,” can take values ​​of 1 (same orientation), -1 (the read duplicate is the backward complement to one of the reads), or 0 (unknown orientation).

[0064] As used herein, the term “guide” refers to a segment of the reference genome.

[0065] As used herein, the term "MUT read" refers to a read that has an artificial mutation introduced to allow reads from a single template molecule to be grouped together.

[0066] As used herein, the term "indel" refers to an insertion or deletion.

[0067] As used herein, the term "SNP" refers to a single nucleotide polymorphism.

[0068] As used herein, the term “template” means a DNA / RNA sequence that is either partially sequenced by a sequencing machine or assembled from a raw sequence.

[0069] As used herein, the term "segment" refers to a sequence or subsequence.

[0070] As used herein, the term “linear alignment” refers to the alignment of reads to a single reference sequence, which may include insertions, deletions, skips, and clippings, but may not include changes in direction (i.e., a portion of the alignment on the forward strand and another portion of the alignment on the reverse strand). A linear alignment may be represented by a single SAM record.

[0071] As used herein, the term "lead alignment" refers to linear alignment or chimeric alignment, which are the complete expressions of lead alignment.

[0072] As used herein, the term “multiple mappings” refers to a situation where the correct placement of a read may be ambiguous (for example, due to iteration). In this case, multiple read alignments may exist for the same read. One of these alignments is considered primary. All other alignments have a secondary alignment flag set in the SAM record representing them. Typically, SAM records have the same QNAME and the same value for the 0x40 and 0x80 flags. Typically, the alignment designated as primary is the best alignment, but the decision regarding primary alignment can change.

[0073] As used herein, the term “tracing” refers to constructing an array of nodes joining arrays of edges from a k-mer graph. For example, tracing may refer to a random walk on a k-mer graph sampling a potential k-mer array. In a k-mer graph, nodes can represent k-mers, edges can represent co-occurrences between k-mers and adjacent k-mers, and optionally, edge directions can represent the ordering of k-mers. All nodes and edges may or may not be distinct. Edges may or may not be oriented. Tracing may optionally begin by identifying nodes that have no nodes connected to them, such that those nodes are the beginning of a potential path to be traced.

[0074] As used herein, the term “BAM file” refers to the binary version of a SAM file. A SAM file (.sam) is a tab-separated text file containing sequence alignment data. These formats are further described online. BAM, rather than SAM, is the preferred format for IGV. Since IGV 2.0.11, IUPAC ambiguity codes in BAM files are supported. A Binary Alignment Map (BAM) is the comprehensive raw data of genome sequencing. It consists of a lossless compressed binary representation of the sequence alignment map. BAM is a compressed binary representation of SAM (sequence alignment map) and is a compact, indexable representation of nucleotide sequence alignments. The purpose of indexing is to quickly find overlapping alignments at a particular location without having to examine all of them. Before indexing, BAMs must be sorted by reference ID, and then by leftmost coordinate. BAM is in the compressed BGZF format.

[0075] The structure of a BAM file may include a header section and an alignment section: [1] Header - The sample name, sample length, and alignment method are all included in this section. The alignment section contains alignments linked to specific information in the header section. [2] Alignment - Read name, read sequence, read quality, alignment information, and custom tags are all included in this file. Chromosome, start coordinates, alignment quality, and matching descriptor string are all included in the read name. The alignment section includes: Read Group (RG), barcode tag (BC), single-end alignment quality (SM), paired-end alignment quality (AS), edit distance tag (NM), and amplicon name tag (XN).

[0076] The BAM format uses a 0-reference coordinate system, while the SAM format uses a 1-reference coordinate system. The BAM format uses [-2 31 ,2 32 It can represent values ​​within the range of ].

[0077] Method of Disclosure Figure 1 shows an overview of a guide assembly process 100 according to one embodiment. This process receives input from a clusters.gz file 105 and a BAM file 110 of a subgraph. The clusters.gz file is a compressed file that stores the reads and read pairs associated with each cluster from the sequencing run. The clusters.gz file may have one line per cluster, and each line will have identifiers for each read pair associated with the cluster, numbered sequentially from 1 to n. Note that each line can identify all read pairs associated with the cluster, and therefore, there can be a large number of read pair identifiers for each cluster.

[0078] A subgraph BAM file is a coordinate-sorted BAM file of all reads referenced in the sequence cluster file from the NGS process, and their alignment to a template or reference genome. In one embodiment, an entire NGS sequence run can be subsetted into multiple BAM files, each file containing a portion of all reads from the sequencing run. This enables an overall k-mer assembly process that assembles millions of clusters by creating subsets of clusters and their associated BAM files, each of which becomes, for example, hundreds of distinct k-mer subgraphs. Subsetting BAM files can simplify the data processing requirements for managing an entire dataset (the data to be managed may be 1 terabyte or more).

[0079] In some embodiments, the method may divide the overall sequencing problem of millions of clusters and / or assemblies into, for example, fewer than a thousand subgraphs. In some embodiments, 10 million assemblies may be divided into any of 10,000, 5,000, 1,000, 700, 500, 300, and 100 subgraphs. In some embodiments, 5 million assemblies may be divided into any of 10,000, 5,000, 1,000, 700, 500, 300, and 100 subgraphs. In some embodiments, 1 million assemblies may be divided into any of 10,000, 5,000, 1,000, 700, 500, 300, and 100 subgraphs. Typical sizes of the overall dataset can include billions of read pairs and may be 10 billion, 8 billion, 6 billion, and 4 billion read pairs. Such datasets may approach 1 terabyte in size and therefore will not fit in the RAM on the product hardware. Embodiments of this disclosure can advantageously subset the assembly size to fit typical computer hardware or optimize the files for processing on FPGA hardware (as opposed to processing on a processor). In some embodiments, the input data is in the same format as a typical BAM or SAM file. A typical input file may contain lines per cluster, each line may contain an identifier. The identifier may be an integer identifier for each read pair, sequentially numbered from 1 to any large number N.

[0080] Furthermore, overlapping similar read pairs can be determined by matching the read pairs to each other. This allows the system to create links between overlapping similar read pairs, which can be stored in a subgraph link file 114. The subgraph link file stores the links between pairs of read pairs. In some embodiments, these linked read pairs share sequence homology with each other. In some embodiments, a process of artificially mutating the original template sequence results in identifiable mutations in pairs of read pairs, which helps determine sequence homology and overlap between sets of read pairs. Links can also identify pairs of read pairs that are similar to each other in overlap and specify the orientation in which each read pair overlaps with other read pairs. This allows the system to know the orientation of the nucleic acids in each read pair, as the read pairs match with other similar read pairs. For example, if two read pairs are oriented in the same direction relative to the template, the system can determine that they are positively oriented, and if they are oriented in opposite directions relative to the template, the system can determine that they are negatively oriented. These orientations can be used later in the assembly step.

[0081] Next, process 100 moves to box 118, where a read cluster is generated by taking all the sequences of read pairs contained in a single cluster into memory together so that the system can access them sequentially. Thus, this step collects a given sequence of clusters into memory for subsequent processing by the system. In one embodiment of the present disclosure, the process may use a standard BAM file to generate read clusters. For example, read clusters may be generated by inputting a cluster file into an assembly system, where the cluster file contains one cluster per line. Each line in the cluster file may contain a list of IDs of the read pairs that make up that cluster. This cluster file can be parsed to create a map that associates each read ID with its cluster ID, where the ID of a given cluster may be its line number. Each line may be parsed independently, and each read ID that makes up the line may be stored in the cluster map as a key. An exemplary value for the key may be the line number of the associated cluster.

[0082] After analysis, a vector of reads can be created for each cluster. The BAM file may be processed using a read-to-cluster ID map. In some embodiments, the map can be used for each record to find the cluster ID associated with the read ID. The read may be added to the vector of reads corresponding to its cluster. The disclosed method can output a vector associating each cluster ID with the vector of reads contained in the cluster.

[0083] Next, process 100 moves to box 120, where the subgraph links information to collect orientation information for each of the read pairs from each cluster. This information can be used to determine whether a given read pair is oriented correctly with its linked read pair. Given orientation information, the system can use that orientation information (e.g., orientation information 114) to construct a k-mer graph for a particular sequence. In some embodiments, the process proceeds by parsing a binary subgraph link file in a single sequential pass, during which a "union-find" data structure is input. Once this data structure is fully input, the union-find data structure can record three pieces of information: a) the assignment of each read pair to the connected components in the graph, b) the read ID of a representative read in each connected component, which may be the smallest (absolute) read ID in the component, and c) the orientation of each read in the connected component relative to the representative read.

[0084] To construct a union-find data structure, the representative vector can be initialized to a length equal to the maximum read ID. Each element of the representative vector can record two pieces of information: the representative read ID of the connected component to which the read currently belongs, and its orientation relative to the representative (i.e., polarity). The representative ID of entry i may be initialized to i, and the polarity may be initialized to 1. Alternatively, if the set of read IDs is sparse, using an unordered map / hash table may result in a more memory-efficient implementation. These functions can output a data structure that allows querying the relative orientation of reads in a cluster.

[0085] If the read orientation is negative, the system can re-orient the sequence data of the read pair so that all linked read pairs associated with the cluster can be oriented in the same direction as the single target sequence being assembled.

[0086] In the next step, the reference genome information from reference file 116 is used as input to box 124 to generate a reference guide. This allows us to determine where each read pair aligns along the reference genome. Using this data, we can estimate which read pairs are most likely to align with specific sections of the reference genome or template. From this estimation, some estimated alignments of linked read pairs may be determined from each cluster with a reference genome, or none at all.

[0087] When generating a reference guide for a given cluster, the assembly system can iterate through associated reads and clusters and infer an appropriate reference guide according to the mapping locations of the reads. The input for generating the reference guide may be a BAM file containing reference-sorted mappings of MUT reads associated with the cluster. This step 124 can iterate through all paired reads from the cluster and use their mapping locations to extract the reference guide for the cluster. For a given read, the reference guide may be initially initialized according to the mapped start and end locations of that read. Since the input BAM file may be coordinate-sorted, while processing subsequent reads, if the two reads are within a given range, the previous reference guide may be extended to take into account the mapping coordinates of the current read. If the two reads are not within a given range, a new reference guide may be initialized for the current read, and the same process may be applied to all reads.

[0088] In some cases, the threshold may be set to exclude reference guides that may be too short, or that are covered by an insufficient number of reads. In some embodiments, a lower threshold may be a reference guide having at least two reads and / or read pairs that map to the reference guide, where at least one of the two reads must have a strong alignment (e.g., mapQ≧20). In some embodiments, the lower threshold for a reference guide may also require that the reference guide has a length of at least 250 bp. In some embodiments, a lower threshold can be set to exclude reference guides whose length is less than 500, 400, 300, 200, 100, or less nucleotides. Such guides can still be extracted by the process described above, but are not output if they are below the set threshold.

[0089] If orientation information is provided for the reference guide, the orientation of both the read and the reference guide may also be updated accordingly during this step 124. Using the data structure entered during the previous step, each read in each read pair can be compared and oriented toward the cluster representative and toward the orientation shown in the BAM file. For a given read belonging to a given pair, the following formula can be used (where 1 indicates forward and -1 indicates reverse): orientation[read]=relativeOrientation(pair,representative) * (isFirstMate(read)?1:-1) * In the BAMSign(read) expression, relativeOrientation(pair,representative) returns 1 if both pairs have the same orientation, -1 if they do not have the same orientation, and 0 if their relative orientation is unknown.

[0090] This process may be useful for unmapped reads, and some embodiments of this disclosure can calculate the orientation relative to a cluster representative, ensuring that the read can be sent to the next step in the pipeline with the correct orientation. A similar procedure can be applied to a reference guide, and for the reference guide, the orientation can be calculated based on the orientation of each individual mapped read, and a majority vote can be performed. If most reads align in the opposite direction to a given guide, the guide can be inversely complementarized, and the aligned reads can be inversely complementarized accordingly.

[0091] The output of this process may be a vector containing all reference guides associated with clusters that passed the quality threshold, as well as a pile-up vector recording read event information for each position in each reference guide. A boolean value may also be returned to indicate whether the cluster should be sent to the k-mer assembler. If the reference guide is too long, or if the cluster contains too many reads, this boolean value may be set to false, and the cluster may not be sent to the k-mer assembly system. Step 124 may also return the ID, chromosome, and start and end positions of the most supported reference guide for the cluster.

[0092] This reference guide data can be used in subsequent assembly graph processes even if not all linked read pairs match a specific location along the reference genome. For example, in the process of generating a reference guide, the assembly system may align a specific read pair from a cluster to location A on the reference genome. The system may then align linked read pairs from the same cluster to location B on the same reference genome. If locations A and B are close to each other, the two linked reads should be in close proximity on the reference genome, and the alignment is more likely to be correct. However, if locations A and B are not close to each other, the likelihood of both linked read pairs being properly aligned is low. For example, if locations A and B are within 5000, 4000, 3000, 2000, 1000, 500, or less bases, the linked read pairs may be considered properly aligned to the reference genome. This process can then be repeated for all read pairs associated with a particular cluster, so that each read pair can be aligned with the reference genome, and a measure of how well the read pairs from the cluster correlate with the reference genome can be determined. Generally, the more read pairs found to align with the reference genome, the higher the system's confidence that the alignment is correct. If there is confidence that a reference guide can be found with sufficient evidence, a particular guide can be added to the assembly process. This process is repeated for all linked sets of read pairs for any cluster, and all guides found to contain sufficient alignment with several read pairs from the cluster are added to the assembly process. In one embodiment, a map / alignment process can be used to filter sequences based on a confidence score for a given alignment or position. In some embodiments, read pairs can be aligned with the reference genome using any method or process known in the art.

[0093] Next, in box 126, the reference guides and their aligned, oriented, and linked read pairs are input to the graph process. The graph construction process may be a k-mer based construction process, as outlined in U.S. Patent Nos. 14,775,252 and 17,165,828 (both of which are incorporated herein by reference in their entirety). The input for this graph process step may be a set of reads and a set of reference guides associated with clusters. Consecutive sequences of bases of sufficient quality may be extracted from their reference guides and reads to form subsequences, which are then used to create k-mers of a specific length. It should be understood that this length may be adjusted, and the graph construction process may be restarted using multiple different lengths as needed to generate an effective k-mer graph during the graph assembly process.

[0094] k-mers generated from reference guides may be tagged in a way that distinguishes them later from k-mers generated by covering reads. In certain embodiments, k-mers originating from reference guides (e.g., k-mers that do not appear in any reads) may not contribute to the graph edge weights. Furthermore, the uniqueness of k-mers may be tracked within the domain of each subsequence. For example, this may mean that a particular k-mer can only be considered non-unique if it appears multiple times in a single subsequence. According to some embodiments, a k-mer that occurs multiple times across multiple subsequences but only once in each individual subsequence is not considered non-unique.

[0095] In some embodiments, graph construction may begin with k-mers from a reference guide used to construct the skeleton of the k-mer graph, which can then be used to guide the assembly of the k-mer graph. Each reference guide may be processed independently, and through the threading process, k-mers originating from the reference guide can be sequentially added to the k-mer graph. Thus, each k-mer that does not yet exist in the graph induces a new vertex with zero or more edges connected to a shared k-1 mer. As a result, new vertices and edges may be added, with an initial edge count of 0, since the reference guide may not be allowed to contribute to the edge weights if a new fork is created or an existing path is extended. At the end of this step, after all k-mers from the reference guide have been added to the graph, all edges in the graph have a weight of 0.

[0096] Furthermore, since multiple reference guides may be provided, the graph obtained after such a first step may have multiple sources and multiple sinks. After processing all reference guides, k-mers derived from covering reads can be added to the graph through the same process, and the edge count in the graph may be incremented as the reads traverse existing paths. New vertices may be added if a new fork is created or an existing path is extended, but the initial edge count may be set to 1.

[0097] If a cycle is generated, or if the graph has too low complexity, as determined by the percentage of k-mers that may be non-unique, the construction may be aborted to retry with different k-mer lengths (see, for example, step 127). After forking, paths can typically only be rejoined on nodes corresponding to k-mers that may be within a unique set. This means that only unique k-mers can fork. It should be understood that a unique k-mer does not necessarily have to be unique across all sets of k-mers, but is unique in the context of a single subsequence, which can then be joined to all sets of unique k-mers. Furthermore, reference guide k-mers may not need to be unique for the graph construction to succeed at a given k-mer length. The output may be a successful graph with the minimum k-mer length, but may contain any cyclic k-mers for construction purposes.

[0098] As described above, the assembly system can construct test graphs using k-mers of different sizes to determine graphs that do not have cycles. In some embodiments, the smallest k-mer that produces a useful graph may be selected. In some embodiments, the k-mer may be in the size range of 10 to 100 nucleotides in length, but the number of nucleotides per k-mer is intended to be less or more. The k-mer graph includes nodes and edges. A node is an oligonucleotide sequence, and an edge means that two oligos are identical to each other, except for, for example, the first base of one oligo and the last base of the next oligo. Thus, such an edge implies that a k-mer at a particular node can be extended by a single base to produce another k-mer that is another node in the k-mer graph.

[0099] In a k-mer graph, an edge is an indicator of the support from an oligonucleotide to a particular k+1 nucleotide at a relevant node in the graph. One feature provided during the disclosed assembly and graph scanning is the amount of support a particular edge has in the sequence, as well as the read data that constitute the graph and assembly problem. In one embodiment, the weight of an edge can be calculated using the count of reads that exactly match the sequence implied by the edge. For example, if there is one read with a particular edge k-mer, the weight of that edge may be set to 1. If there are five reads with a particular edge k-mer, the weight of that edge may be set to 5, and so on.

[0100] To determine the reconstruction of the target reference genome, the system can select a single forward path through the k-mer graph in box 128. In some embodiments, the method of the present disclosure may use heaviest path extraction. In some embodiments, a single heaviest path may be calculated, but it is explicitly considered that multiple paths may be extracted (especially in the case of multiple reference guides). An exemplary function for heaviest path extraction may work as follows, by first performing path scoring of forward paths on the k-mer graph: The weight of each possible path may be defined as the sum of the weights of the path's edges, which may be used to determine the heaviest possible forward path. This step can be subjected to dynamic programming of forward paths, so that each node knows the weight of the best (partial) path ending at that node and the identity of the edges (if any) leading to the node that are included in the best path to the node. Since path extraction is not necessarily constrained to start and end at the start and end nodes of the reference guide, extracted paths may start and end at any node. A single heaviest path may be calculated, but in the case of multiple reference guides, multiple paths may be extracted, for example, by iteratively finding and removing the heaviest path from the graph in each iteration. At the end of the step, we know the node that has the heaviest path ending at that node. This is the "heaviest path termination node". The disclosed function can output the node in the graph corresponding to the last node of the heaviest path.

[0101] In some embodiments, such a function can assign quality scores to long template bases based on the weight of maximal edges and / or identify and mark bases that are supported only by a reference guide. The disclosed function may output an assembled long template with a quality score assigned to each base.

[0102] The input for these steps 128 or 130 may be a k-mer graph generated during the previous step, which does not include cycles if the graph construction is successful. Path extraction can be performed directly on the k-mer graph. Paths are not constrained to be strictly head to tail and can therefore start and stop at any node. The weight of each path can be defined as the sum of the weights of the path's edges. In some embodiments, all graph nodes may be looped over, and nodes without input edges may be added to the queue. For each node, the best weight and best length values ​​may be recorded along with a backtrack pointer indicating the previous node of the best path associated with that node, which may be used in subsequent backtracking steps.

[0103] After initializing the queue, nodes added to the queue may be entered one by one. For each node, if its best weight value is strictly greater than the current global best weight found (initialized to 0), the latter value may be updated according to the node's value, and a pointer to that node may be recorded as the best end. Then, all output edges of the current node, which may be called the source, can be processed. Each node that can be reached following one of those edges may be called a target. If the sum of the source's best weight and the weights of the subsequent edges is strictly greater than the target's best weight, the target's best weight and best length values ​​may be set accordingly, and the target's backtrack pointer is set to the source. Since references may not be allowed to contribute to edge weights, such embodiments can ensure that the beginning and end of a path do not contain reference-only nodes, and that the resulting long template does not contain leading / trailing bases derived solely from reference guides.

[0104] If all input edges leading to a target have been visited, there are no additional paths to travel through the graph to reach that target. Targets can be added to a queue, similar to the initialization of a queue. Thus, all nodes in the graph can be processed according to the same process. We ensure that every node is processed only once by ensuring that all input edges can be visited before adding a node to the queue. Processing of a single node selected from the queue continues until the queue is empty, at which point the embodiments of this disclosure are repeated through all nodes in the graph. The output may be the node in the graph marked as the best-end after all nodes have been processed.

[0105] Next, process 100 can determine the heaviest path extraction and backtracking in box 130. This process can start from the last node in the path with the highest sum of edge weight scores. Starting from the last node in that path, the system moves backward through the path, calculating k-mers as it scans the path to determine the sequence associated with each node. If there are multiple possible paths to a node, when the system reaches that node, it can select and scan the path with the highest edge weight score as it moves backward through the path. The system continues to iterate this process backward through the path, moving through the path by selecting the highest weighted edge for each node in the path, until it reaches the first node. Once the final backtracking path through the k-mer graph is determined, the system can construct the nucleotide sequences of the nodes that make up the path, because each node differs from the previous node by a single nucleotide in the graph.

[0106] As described above, multiple forward paths can be extracted through the k-mer graph, and therefore, a backtracking process can be applied to each of these paths. The input for this backtracking step may be a pointer to a graph node marked as the "best tail". The "best tail" may be any tail that the forward path extraction process identifies as a beneficial tail end of a path through the k-mer graph. In some embodiments, the best tail may be the locally optimal tail for the best path identified during forward path extraction. The step including 130 performs backtracking of the heaviest path to generate a long template. Backtracking can be performed from the best tail until the process reaches a node where no backtracking pointer has been set to indicate that the beginning of the heaviest path has been reached.

[0107] For each node scanned in this manner, the weight of the edge connecting the backtrack pointer to the current node may be added to the end of the edge weight list. This list may be constrained to contain up to K+1 values ​​(where K is the k-mer size of the graph) in order to assign quality values ​​to the assembled long template bases based on the weights of the maximal edges. For each node, its last base may be added to the beginning of the resulting long template, or it may be assigned a quality value that is a function of the maximum value present in the edge weight list. Given how the list is constructed, in this embodiment, each base will be assigned a quality value that depends on the number of reads that the base supported. If the list contains the maximum allowed number of values, the first element of the list can then be removed, and the backtrack process continues at the node pointed to by the backtrack component point. More precisely, each quality value can be calculated using the following formula (where maxEdgeWeight represents the maximum value in the list at a given time, and 33 is the offset used for ASCII encoding): qualityValue = min(maxEdgeWeight>0 ? 20+2 *(maxEdgeWeight-1):0,40)+33. This strategy also provides identification and labeling of bases that can only be supported by the reference guide, assigning them a quality value of 0.

[0108] Upon reaching the first node (e.g., a node without a backtrack pointer), each base may be added to the beginning of the resulting long template one by one, and the maximum value present in the edge weight list may be assigned as the quality value. After processing each base in the same manner as before, the first element of the edge weight list may be removed to maintain the weight logic of maximal edges for quality value assignment. The output may be an assembled long template with the quality values ​​assigned to each base.

[0109] One aspect of this disclosure relates to a method and application for constructing a k-mer graph. In some embodiments, the k-mer assembly method may differ from a typical k-mer assembly process. For example, in some embodiments, guide sequences are copied from within a reference genome and are not counted when assigning edge weights. Instead, in some embodiments, the edge weights may be attributable to the actual sequence reads that enter the assembly process.

[0110] In the trivial case, a graph can be constructed in which one k-mer is followed by another, which can be extended along the next edge by one base to the next, and so on, until the end of the sequence by another base along the next edge. The graph can be constructed using all the k-mers in the input reads and guides to that graph by generating a straight line of k-mers. However, this assembly method can be complex in practice for several reasons. Realistic graphs are generally more complex and involve splits in which paths can branch in two different directions that do not return to each other, and bubbles in which paths can branch for a while in longer, slightly different sequences before returning.

[0111] To address these concerns, some embodiments can proceed by selecting a single path through the graph such that the sum of the edge weights on that path is greater than or equal to that of any other possible path through the graph. The edge weights can then be used to their advantage to generate an array from the k-mer graph.

[0112] Some embodiments of this disclosure may use dynamic programming techniques to assist in assembly. Dynamic programming generally refers to computer programming techniques that first divide a problem into subproblems, save the results, and then optimize the subproblems to find an overall solution. Using dynamic programming techniques, some embodiments may begin by first identifying nodes that have no nodes connected to them, such that those nodes are the start of potential paths. The assembly then proceeds by tracing from each of those nodes and building a sum of edge weights until the node has two possible paths to reach it or two possible paths to exit it. Some embodiments have different bookkeeping methods for summing the edge weights. Embodiments may proceed by finding the best possible score of node paths for a given node being traced, and whether the trace enters from the top, bottom, or underside of the node (i.e., two options for entering the node).

[0113] In some embodiments, the method according to this disclosure can determine the best partial path for a subset of nodes. In some embodiments, the method can select the best path using edge weight propagation or forward path scoring techniques. Thus, each node can be associated with the best possible weight of any path that reaches it. The node can then provide information about which preceding node provided the best partial path up to that point. Ultimately, there will be some nodes for which there is no place to continue. A single best score can then be calculated and selected from all those terminal nodes. For example, the single best score could be the heaviest path from forward path scoring.

[0114] In some embodiments, the method can use backtracking to generate a complete path. Each terminal node simply creates a single array from the k-mer of the node itself, since these nodes have no path back to any different preceding nodes. Thus, if a node has only one path to reach it (i.e., one edge to it), the disclosed method can attempt to retrieve the edge backward to the preceding node, then act on that node, and continue moving backward. However, if the first node (a non-terminal node) has two or more options to reach it, each option has the weight of the edge computed during the first forward path and the best score associated with that node. Thus, some embodiments can trace the best edge backward and can recursively or iteratively over the process of tracing the best edge backward. An embodiment can proceed until it reaches the starting node of its path, which may be a single node that has no nodes to enter.

[0115] After recursion, some embodiments collect all relevant nodes and associated scores. Such embodiments can extract sequences from all nodes from unique paths in a k-mer graph. In some embodiments, confidence scores may be assigned to the weights of individual edges and the sum of edge weights for different traces. Larger edge weight scores may represent relatively high confidence in the potential sequence, while lower edge weights are less desirable and may provide relatively low confidence in the potential sequence. In some embodiments, alternative path information may be retained for part or all of the sequencing process to assist in finding global optimal conditions. The methods according to this disclosure may provide information including sequences and confidence scores that can be output as assembled sequences. This information may be referred to as a contig, a term well known in assembly literature. The contig may be output as a fastQ containing sequence data and confidence scores.

[0116] The assembled sequence or contig can then be used as part of the output in box 134. The sequence can then be output as a compressed fastq file 136.

[0117] It should be understood that in some cases, the graph construction process performed in box 126 may not be able to create a useful k-mer graph. For example, the graph may only contain cycles where each path through the graph is a cycle on itself, and therefore there are no linear paths through the graph. In that case, the system may output a set of subgraph files containing directed reads for each cluster in fastq file 138, or data about directed reference guides from each cluster 140 from the failed graph construction. It should be understood that if the graph construction process fails in box 126, process 100 may proceed directly to output files 138, 140, and may not continue with any further processes in boxes 128, 130, 134, or 136.

[0118] Embodiments of this disclosure may also include systems for analyzing and assembling polynucleotide sequences. Figure 2 is a block diagram of an exemplary computing system 200 that may be used in connection with an exemplary sequencing system. The computing system 200 may be configured to determine DNA sequences by using the sequencing and assembly methods disclosed herein. The general architecture of the computing system 200 shown in Figure 2 includes the configuration of computer hardware and software components. The computing system 200 may include more (or fewer) elements than those shown in Figure 2. However, not all of these general conventional elements need to be shown to provide a valid disclosure.

[0119] As illustrated, the computing system 200 includes a processing unit 210, a network interface 220, a computer-readable media drive 230, an input / output device interface 240, a display 250, and an input device 260, all of which can communicate with each other via a communication bus. The network interface 220 may provide connectivity to one or more networks or computing systems. The processing unit 210 may therefore receive information and commands from other computing systems or services via the network. The processing unit 210 may also communicate with memory 270 and further provide output information from an optional display 250 via the input / output device interface 240. The input / output device interface 240 may also accept input from any input device 260, such as a keyboard, mouse, digital pen, microphone, touchscreen, gesture recognition system, speech recognition system, gamepad, accelerometer, gyroscope, or other input device.

[0120] Memory 270 may include computer program instructions (grouped as modules or components in some embodiments) that the processing unit 210 executes to implement one or more embodiments. Memory 270 generally includes RAM, ROM, and / or other persistent, auxiliary, or non-transient computer-readable media. Memory 270 may store an operating system 272 that provides computer program instructions for use by the processing unit 210 in the overall management and operation of the computing device 200. Memory 270 may further include computer program instructions and other information for implementing aspects of the present disclosure.

[0121] For example, in one embodiment, the memory 270 includes a cluster assembly process module 274 for analyzing and assembling polynucleotide sequences. The cluster assembly process module 274 can perform the methods disclosed herein, including the process described with respect to Figure 1. In addition, the memory 270 may include, or communicate with, a data store 290 and / or one or more other data stores that store one or more inputs, one or more outputs, and / or one or more results (including intermediate results) that determine the DNA sequence and provide the assembly process according to this disclosure. Such data may include, for example, non-mutant sequence reads, mutant sequence reads, and reference guides.

[0122] In some embodiments, the disclosed systems and methods may involve approaches for shifting or distributing certain sequence data analysis functions and sequence data storage devices to a cloud computing environment or cloud-based network. User interaction with sequencing data, genomic data, or other types of biological data may be mediated through a central hub that stores the data and controls access to various interactions with the data. In some embodiments, the cloud computing environment may also provide sharing of protocols, analysis methods, libraries, sequence data, and distributed processing for sequencing, analysis, and reporting. In some embodiments, the cloud computing environment facilitates user modification or annotation of sequence data. In some embodiments, the systems and methods may be implemented in a computer browser, on-demand, or online.

[0123] In some embodiments, software written to perform the methods described herein is stored on several forms of computer-readable media, such as memory, CD-ROMs, DVD-ROMs, memory sticks, flash drives, hard drives, SSD hard drives, servers, and mainframe storage systems.

[0124] In some embodiments, the method may be written in any of a variety of suitable programming languages, such as compiled languages ​​like C, C#, C++, Fortran, and Java. Other programming languages ​​may include scripting languages ​​such as Perl, MatLab, SAS, SPSS, Python, Ruby, Pascal, Delphi, R, and PHP. In some embodiments, the method is written in C, C#, C++, Fortran, Java, Perl, R, or Python. In some embodiments, the method may be a standalone application having data input and data display modules. Alternatively, the method may be a computer software product, and the distributed object may include a class containing an application that includes the computation method described herein.

[0125] In some embodiments, the method may be incorporated into existing data analysis software, such as that found in sequencing instruments. Software including the computer implementation described herein may be installed directly on a computer system or indirectly stored on computer-readable media and loaded onto a computer system as needed. Furthermore, the method may reside on a computer that is remote from where the data is generated, such as software found on servers maintained in a different location from where the data is generated, such as those provided by third-party service providers.

[0126] Assay equipment, desktop computers, laptop computers, or servers may include a processor that makes operational communication with accessible memory, including instructions for implementing the system and method. In some embodiments, the desktop or laptop computer may operably communicate with one or more computer-readable storage media or devices and / or output devices. Assay equipment, desktop computers, and laptop computers may operate under many different computer-based operating languages, such as those used by Apple-based computer systems or PC-based computer systems. Assay equipment, desktops, and / or laptop computers and / or server systems may further provide computer interfaces for creating or modifying experimental definitions and / or conditions, viewing data results, and monitoring experimental progress. In some embodiments, output devices may be computer monitors or computer screens, printers, portable devices such as portable digital assistants (i.e., PDAs, Blackberry, iPhone®), tablet computers (e.g., iPads), hard drives, servers, memory sticks, flash drives, or other graphic user interfaces.

[0127] The computer-readable storage device or medium can be any device such as a server, mainframe, supercomputer, or magnetic tape system. In some embodiments, the storage device may be located in close proximity to the assay equipment, for example, adjacent to or in close proximity to the assay equipment. For example, the storage device may be located in relation to the assay equipment in the same room, the same building, an adjacent building, on the same floor of a building, or on a different floor of a building. In some embodiments, the storage device may be located outside or distal to the assay equipment. For example, the storage device may be located in a different part of a city, in a different city, in a different state, or in a different country relative to the assay equipment. In embodiments where the storage device is located distal to the assay equipment, communication between the assay equipment and one or more of the desktop, laptop, or server is typically via an internet connection, either wirelessly via an access point or via a network cable. In some embodiments, the storage device may be maintained and managed by an individual or entity directly associated with the assay equipment, while in other embodiments, the storage device may be maintained and managed by a third party, typically at a distal location relative to the individual or entity associated with the assay equipment. In the embodiments described herein, the output device may be any device for visualizing data.

[0128] Assay instruments, desktops, laptops, and / or server systems may be used to store and / or retrieve computer execution software programs incorporating computer code for performing and implementing the calculation methods described herein, data for use in implementing the calculation methods, etc. One or more of the assay instruments, desktops, laptops, and / or servers may include one or more computer-readable storage media for storing and / or retrieving software programs incorporating computer code for performing and implementing the calculation methods described herein, data for use in implementing the calculation methods, etc. Computer-readable storage media may include, but are not limited to, one or more of hard drives, SSD hard drives, CD-ROM drives, DVD-ROM drives, floppy disks, tapes, flash memory sticks, or cards. Furthermore, networks, including the Internet, may be computer-readable storage media. In some embodiments, computer-readable storage media refers to computing resource storage accessible by a computer network via the Internet or a company network provided by a service provider, rather than, for example, from a local desktop or laptop computer at a distal location to the assay instrument.

[0129] In some embodiments, a computer-readable storage medium for storing and / or retrieving computer code for performing and implementing the calculation methods described herein, data used to perform the calculation methods, etc., is operated and maintained by a service provider that operably communicates with assay equipment, desktops, laptops, and / or server systems via an internet connection or network connection.

[0130] In some embodiments, the hardware platform for providing a computing environment includes a processor (i.e., a CPU) where processor time and memory layout, such as random access memory (i.e., RAM), are system considerations. For example, smaller computer systems provide inexpensive, high-speed processors and large memory and storage capacity. In some embodiments, a graphics processing unit (GPU) can be used. In some embodiments, the hardware platform for performing the computing methods described herein includes one or more computer systems having one or more processors. In some embodiments, smaller computers are clustered together to create a supercomputer network.

[0131] In some embodiments, the computation methods described herein are performed on a collection of inter- or intra-inter-connected computer systems (i.e., grid technologies) capable of cooperatively running various operating systems. For example, the CONDOR framework (University of Wisconsin-Madison) and systems available from United Devices are an example of the coordination of multiple independent computer systems for handling large amounts of data. These systems may provide a Perl interface for submitting, monitoring, and managing large sequence analysis jobs on clusters in a sequential or parallel configuration.

[0132] One aspect of this disclosure relates to a workflow module that can be integrated into an existing workflow. In some embodiments, the workflow module may be a reference guide assembly module and may be incorporated into an NGS sequence analysis platform, such as Illumina's DRAGEN® Bio-ID platform. In some embodiments, the workflow module can use clustering information to extract aligned MUT reads and reference sequence segments (referred to as reference guides) for each cluster. The set of reads and reference guides for each assembly cluster can be passed to the assembly system to construct a k-mer graph of all sequences. If orientation information is provided, the assembly system can use that information to infer the appropriate orientation of the reads and reference guides. In practice, the assembly system can be used to construct multiple graphs, each with a different k-mer size. In some embodiments, if some k-mer sizes do not produce a satisfactory graph (e.g., a graph containing cyclic or too many non-unique k-mers), these unsatisfactory graphs can be discarded. In some embodiments, once satisfactory graphs are constructed for several k-mer sizes, the heaviest path extraction procedure is applied to assemble a long template for the associated clusters, which is output to a results file. In some embodiments, if path extraction fails to generate a long template, the reads and reference guides associated with the clusters may be output to two different files (one for reads and one for reference guides), which are then optionally passed to an alternative assembly method. In some embodiments, if not all k-mer sizes result in a graph, the reads and reference guides associated with the clusters may be output to two different files (one for reads and one for reference guides), which are then optionally passed to an alternative assembly method. In some embodiments, pathways for handling unsatisfactory graphs are deprecated.

[0133] In some embodiments, the k-mer graph assembly system can use clustering information to extract aligned MUT reads and reference guides for each individual assembly cluster. In some embodiments, the individual assembly clusters are determined before the main assembly process. From their aligned MUT reads and reference guides, a k-mer graph can be constructed. In some embodiments, if the resulting graph contains cycles or too many non-unique k-mers, construction can be stopped, and a larger k-mer size can be started and tested. In some embodiments, after constructing a satisfactory graph, the heaviest path extraction procedure can be applied to assemble a long template of the original clusters. In some embodiments, the same procedure can be applied independently to each assembly cluster. If path extraction fails, or if all k-mer sizes produce an unsatisfactory graph, the reads and reference guides can be written to a separate file and passed to a fallback process.

[0134] In some embodiments, the assembler system or method may generate a compressed file as output, such as a gzipped fastq file containing a long template and numbered according to the input subgraph IDs. In some embodiments, the method may generate a csv file as output, containing timing details of steps in the assembly procedure, numbered according to the input subgraph IDs. In some embodiments, the method may generate a gzip-compressed fastq file containing leads of clusters that could not be assembled using the assembly system and pass it to a fallback process as output. In some embodiments, the method may generate a compressed fasta file containing reference guides of clusters that could not be assembled in the assembly process and pass it to a fallback process as output.

[0135] Embodiments may be part of a computer system according to some embodiments of the present disclosure. In some embodiments, the system may include machine-readable memory and a processor, which may be configured to execute machine-readable instructions that, when executed by the processor, cause the system to perform the steps described herein. The processor may include, for example, a k-mer module containing instructions configured to perform a method for assembling polynucleotides from k-mer fragments.

[0136] In some embodiments, the k-mer module may be implemented or run by a programmed computer, such as a processor configured with specific instructions, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic device, separate gate or transistor logic, separate hardware components, or any combination thereof designed to perform the functions described herein. The processor may be a microprocessor, but alternatively, the processor may be a controller, a microcontroller, or a state machine, or a combination thereof. The processor or group of processors for performing the methods described herein may be of various types, including programmable devices (e.g., CPLDs and FPGAs), as well as unprogrammable devices such as gate array ASICs or general-purpose microprocessors.

[0137] A processor can also be implemented as a combination of computing devices, such as a DSP and a microprocessor, multiple microprocessors, one or more microprocessors associated with a DSP core, or any other combination of such configurations. For example, the systems described herein may be implemented using discrete memory chips, a portion of the memory in a microprocessor, flash, EPROM, or other types of memory. In some examples, a hardware platform may be used to provide a computing environment. The hardware platform may include a processor (e.g., a CPU) and memory such as random access memory (RAM). In some embodiments, a graphics processing unit (GPU) may be used. In some embodiments, the hardware platform for performing the computing methods described herein includes one or more computer systems having one or more processors. In some embodiments, smaller computers are clustered together to result in a supercomputer network. The hardware platform may be built specifically for a required purpose, or it may be a general-purpose computer (or group of computers) that is selectively started or reconfigured by computer programs and / or data structures stored in the computer. In some embodiments, a group of processors performs some or all of the described functionalities collaboratively (e.g., via a network or cloud computing) and / or in parallel.

[0138] Elements of the methods or processes described herein may be embodied in software modules executed by a processor. The software modules may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disks, removable disks, CD-ROMs, or any other form of computer-readable storage medium. Exemplary storage media may be coupled to the processor so that the processor can read information from and write information to the storage medium. Alternatively, the storage medium may be integrated with the processor. The processor and storage medium may reside within an ASIC. The software modules may include computer-executable instructions that cause a hardware processor to execute computer-executable instructions. [Examples]

[0139] Pseudocode for the heaviest path extraction embodiment In some embodiments, the method can use the heaviest path extraction method to select the k-mer array. Path extraction can be performed directly on the k-mer graph. Paths are not strictly constrained to be head-to-tail and can therefore start and stop at any node. The weight of each path can be calculated as the sum of the weights of its edges. In some embodiments, the weight of each path can be calculated as a linear or nonlinear representation of the edge weights. An example of pseudocode according to this disclosure proceeds as follows:

[0140] [Table 1]

[0141] Pseudocode for the most complex passback tracking In some embodiments, the method may use an extraction method for selecting the heaviest passback tracking k-mer sequence. Path extraction may be performed directly on the k-mer graph, or optionally, after the first heaviest path step has been performed. Paths can start and stop at any node. The weight of each path can be calculated as the sum of the weights of its edges. In some embodiments, the weight of each path can be calculated as a linear or nonlinear representation of the edge weights. An example of pseudocode according to this disclosure proceeds as follows:

[0142] [Table 2]

[0143] Generating cluster read orientation In some embodiments, the method of this disclosure generates the orientation of cluster reads. However, this step is not mandatory and may be skipped, for example, if the link orientation is not provided. If orientation data is not provided, this step may be skipped throughout the entire workflow, and any reads may be further added to the graph in the orientation in which the reads appear in the input BAM file.

[0144] In some embodiments, the generation of cluster read orientations proceeds as follows: A binary subgraph link file can be parsed in a single sequential pass into which a "union-find" data structure is input. Once fully input, the union-find data structure records three pieces of information: [1] Assignment of each lead pair to connected components in the graph [2] The read ID of a representative read for each connected component. This may be the smallest (absolute) read ID of the component. [3] Orientation of each lead in the connected components relative to a representative lead.

[0145] To construct a union-find data structure, the "representative vector" can be initialized to a length equal to the maximum read ID. Each element of the representative vector records two pieces of information: the representative read ID of the connected component to which the read currently belongs, and the orientation (i.e., polarity) relative to the representative. The representative ID of entry i may be initialized to i, and the polarity may be initialized to 1.

[0146] In some embodiments, the union-find construction procedure can be performed using a function such as "find_representative()". find_representative() takes a query read ID as input and returns the representative ID of the representative of the connected component and the direction of the query read to the representative read. Such an example may proceed as follows:

[0147] [Table 3]

[0148] Finally, find_representative() can be called for any valid read ID to update it to point directly to the constituent representative read ID instead of indirectly pointing through another read. This completes the "path compression" part of union-find. Note that in practice, the set of read IDs may be sparse, in which case using unordered_map / hashtable may result in a more memory-efficient implementation.

[0149] The exemplary embodiments described in the detailed description, drawings, and claims are not intended to be limiting. The teachings herein can be applied in numerous different ways, including, for example, those defined and covered by the claims. It will be apparent that the embodiments herein can be embodied in a wide variety of forms, and that any particular structure, function, or both disclosed herein are merely representative. Based on the teachings herein, those skilled in the art should understand that the embodiments disclosed herein can be implemented independently of any other embodiments, and that two or more of these embodiments can be combined in various ways. For example, a system or apparatus can be implemented or a method can be carried out by those skilled in the art using any reasonable number or combination of the embodiments described herein. Furthermore, such a system or apparatus can be implemented or a method can be carried out using other structures, functions, or structures and functions in addition to, or other than, one or more of the embodiments described herein. Other embodiments can be utilized and other modifications can be made without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the embodiments of this disclosure may be arranged, substituted, combined, and designed in a wide variety of different configurations, as described in general herein and illustrated in the drawings, all of which are expressly intended herein and form part of this disclosure. It should be understood that the embodiments disclosed are not limited to the embodiments described below, as other embodiments may be included in the scope of this disclosure and claims.

Claims

1. A method for assembling the nucleotide sequence of a polynucleotide from a read pair, To provide a cluster of read pairs, where each read pair contains two sequence reads, and the two sequence reads are oriented in opposite directions to each other. Mapping multiple read pairs to the reference guide of the polynucleotide, The sequence reads in each read pair are oriented so that they are in the same orientation as the reference guide of the polynucleotide, From the oriented sequence reads, generate at least one k-mer graph including nodes and edges, wherein each node of the at least one k-mer graph corresponds to the pair of reads from a single cluster, and each edge has a weight corresponding to the number of identical sequence reads in the cluster. A method comprising assembling the nucleotide sequence of the polynucleotide by tracing a plurality of acyclic paths through at least one k-mer graph.

2. The method according to claim 1, wherein assembling the nucleotide sequence of the polynucleotides comprises determining a path through the at least one k-mer graph having the maximum sum of the edge weights.

3. The method according to claim 1 or 2, wherein assembling the nucleotide sequence of the polynucleotide comprises selecting a non-cyclic path having the maximum sum as the path for assembling the nucleotide sequence.

4. The method according to claim 2, wherein assembling the nucleotide sequence includes selecting a final node in each of the acyclic paths through the at least one k-mer graph.

5. The method according to claim 4, wherein assembling the nucleotide sequence includes tracing a reverse path through the at least one kmer graph starting from the final node.

6. The method according to claim 5, wherein tracing the reverse path includes selecting a final node in a non-cyclic path where the sum of the edge weights along the reverse path is the highest compared to other reverse paths.

7. The method according to any one of claims 1 to 6, wherein assembling the nucleotide sequence of the polynucleotide includes a globally optimal path for edge weights for each acyclic path through the at least one k-mer graph.

8. The method according to claim 1, wherein mapping the read pairs comprises providing a cluster file, the cluster file comprising a read sequence and an assignment of the read sequence to an assembly cluster.

9. The method according to claim 8, wherein the cluster file includes more than one million read sequences.

10. The method according to claim 1, wherein generating at least one k-mer graph includes generating a plurality of k-mer graphs.

11. The method according to claim 10, wherein generating the at least one k-mer graph includes generating more than 100 k-mer graphs.

12. The method according to claim 1, wherein the pair end length of the lead pair is in the range of 25 bp to 10,000 bp.

13. The method according to claim 1 or 2, wherein assembling the nucleotide sequence of the polynucleotide includes tracing a path through the acyclic k-mer graph of the at least one k-mer graph.

14. A system for analyzing the sequence of polynucleotides, Machine-readable memory and A system comprising a processor configured to execute machine-readable instructions, wherein when a machine-readable instruction is executed by the processor, the system causes the system to perform the steps described in claim 1.

15. A non-temporary computer-readable medium for storing a polynucleotide sequence analysis program including instructions, wherein when the instructions are executed by a processor, the non-temporary computer-readable medium causes a polynucleotide sequence determination device to perform the steps described in claim 1.