Rapid detection of gene fusions
A computer-implemented method using a lead array unit and machine learning models filters genetic fusion candidates efficiently, reducing execution time and resource consumption in genetic fusion detection.
Patent Information
- Application Number
- JP2021557678
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-12-05
- Filing Date
- 2020-12-04
- Publication Date
- 2025-01-31
- Estimated Expiration
- 2040-12-04
AI Technical Summary
Existing methods for detecting genetic fusions in biological samples are inefficient and require significant computational resources, leading to prolonged execution times and high resource consumption.
A computer-implemented method using a lead array unit and machine learning models to filter and identify genetic fusion candidates, reducing the number of candidates through a filtering engine that accelerates the detection process by leveraging hardware-accelerated read alignment and machine learning techniques.
The method significantly reduces execution time, memory usage, and power consumption while maintaining accuracy in detecting genetic fusions, enabling faster and more efficient analysis of biological samples.
Smart Images

Figure 0007624929000001 
Figure 0007624929000002 
Figure 0007624929000003
Abstract
Description
[Technical field]
[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Provisional Patent Application No. 62 / 944,304, filed December 5, 2019, which is incorporated herein by reference in its entirety. [Background technology]
[0002] Gene fusions can be used as oncogenic agents that are important diagnostic and therapeutic targets in the treatment of diseases such as cancer. Summary of the Invention [Means for solving the problem]
[0003] According to an innovative aspect of the present disclosure, a computer-implemented method for identifying one or more gene fusions in a biological sample is disclosed. In one aspect, the method may include: acquiring, by one or more computers, first data representing a plurality of sequenced reads from a read sequence unit; identifying, by one or more computers, a plurality of gene fusion candidates included in the acquired first data; and filtering, by one or more computers, the plurality of gene fusion candidates to determine a set of filtered gene fusion candidates, and for each particular gene fusion candidate of the filtered gene fusion candidates, generating, by one or more computers, input data for input to a machine learning model, where generating the input data includes extracting feature data representing the particular gene fusion candidate from data including (i) one or more segments of a reference sequence in which the particular gene fusion candidate was sequenced by the read sequence unit; and (ii) data generated based on an output of the read sequence unit. The method may include generating input data and providing, by one or more computers, the generated input data as input to a machine learning model, the machine learning model being trained to generate output data representing a likelihood that a particular gene fusion candidate is a valid gene fusion based on the machine learning model processing input data representing (i) one or more segments of a reference sequence where a particular gene fusion candidate has been sequenced by the read sequence unit, and (ii) data generated based on the output of the read sequence unit; providing the generated input data as input to the machine learning model; obtaining, by the one or more computers, output data generated by the machine learning model based on the machine learning model processing the generated input data; and determining, by the one or more computers, whether the particular gene fusion candidate corresponds to a valid gene fusion candidate based on the output data.
[0004] Other versions include corresponding systems, apparatus, and computer programs for performing the actions of the methods defined by instructions encoded on a computer-readable storage device.
[0005] These and other versions may optionally include one or more of the following features. For example, in some implementations, generating the input data further includes extracting feature data including annotation data describing annotation of a segment of the reference sequence where the particular gene fusion candidate was sequenced by the lead sequence unit. In such implementations, the machine learning model is trained to generate output data representing a likelihood that the gene fusion candidate is a valid gene fusion candidate based on the machine learning model processing input data representing (i) one or more segments of the reference sequence where the particular gene fusion candidate was sequenced by the lead sequence unit, (ii) annotation data describing annotation of the segment of the reference sequence where the particular gene fusion candidate was sequenced by the lead sequence unit, and (iii) data generated based on the output of the lead sequence unit.
[0006] In some implementations, identifying, by the one or more computers, a plurality of gene fusion candidates contained within the acquired first data may include identifying, by the one or more computers, a plurality of split read sequences.
[0007] In some implementations, identifying, by the one or more computers, a plurality of gene fusion candidates contained within the acquired first data includes identifying, by the one or more computers, a plurality of mismatched read pair sequences.
[0008] In some implementations, the read sequence unit is implemented using one or more sets of processing engines configured using hardware logic circuitry physically arranged to perform operations to (i) receive data representing the first read, (ii) map the data representing the first read to one or more portions of a reference sequence to identify one or more positions of a matched reference sequence, (iii) generate one or more sequence scores corresponding to each of the matched reference sequence positions of the first read, (iv) select one or more candidate sequences for the first read based on the one or more sequence scores, and (v) output data representing the candidate sequences for the first read.
[0009] In some embodiments, the read sequence unit is implemented using a set of one or more processing engines by using one or more central processing units (CPUs) or one or more graphics processing units (GPUs), and executes software instructions that cause the one or more CPUs or one or more GPUs to (i) receive data representing the first read, (ii) map the data representing the first read to one or more portions of a reference sequence to identify one or more positions of a matched reference sequence for the first read, (iii) generate one or more sequence scores corresponding to each of the matched reference sequence positions for the first read, (iv) select one or more candidate sequences for the first read based on the one or more sequence scores, and (v) output data representing the candidate sequences for the first read.
[0010] In some implementations, the method may further include receiving, by the lead sequencing unit, a plurality of reads that have not yet been sequenced, sequencing, by the lead sequencing unit, a first subset of the plurality of reads, and storing, by the lead sequencing unit, the first subset of the sequenced reads in a memory device. In such implementations, obtaining, by the one or more computers, first data representing the plurality of sequenced reads from the lead sequencing unit may include obtaining, by the one or more computers, the first subset of the sequenced reads from the memory device, and performing one or more operations of claim 1 while the lead sequencing unit sequences a second subset of the plurality of reads that have not yet been sequenced.
[0011] In some implementations, data generated based on the output of the read sequence unit may include any one or more of: variant allele frequency counts, unique read sequence counts, read probabilities across transcripts, MAPQ scores, or data indicative of homology between parent genes.
[0012] In some implementations, determining whether a particular fusion candidate corresponds to a valid gene fusion candidate based on the output data may include determining, by one or more computers, whether the output data meets a predetermined threshold, and determining that the particular fusion candidate corresponds to a valid gene fusion candidate based on determining that the output data meets the predetermined threshold.
[0013] In some implementations, determining whether a particular fusion candidate corresponds to a valid gene fusion candidate based on the output data may include determining, by one or more computers, whether the output data meets a predetermined threshold, and determining that the particular fusion candidate does not correspond to a valid gene fusion candidate based on determining that the output data does not meet the predetermined threshold.
[0014] These and other innovative aspects of the present disclosure will become readily apparent from a consideration of the detailed description, the accompanying drawings, and the claims. [Brief description of the drawings]
[0015] [Figure 1] FIG. 1 is a block diagram of an example of a system for rapidly detecting valid gene fusions.
[0016] [Diagram 2] 1 is a flow chart of an example of a process for rapid detection of valid gene fusions.
[0017] [Diagram 3] FIG. 1 is a block diagram of another example of a system for rapidly detecting valid gene fusions.
[0018] [Figure 4] FIG. 1 is a block diagram of system components that can be used to implement a system for rapid detection of valid gene fusions. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0019] The present disclosure relates to a system, method, device, computer program, or any combination thereof for rapidly detecting gene fusions. The presence of a particular gene fusion may be an important indicator of a particular disease, an indicator suggesting the use of a particular treatment for a particular disease, or a combination thereof. For example, a particular gene fusion may be an indicator of a particular type of cancer, such as acute myeloid leukemia and chronic myeloid leukemia, myelodysplastic syndrome (MDS), soft tissue sarcoma, or a treatment thereof. The present disclosure can rapidly detect accurate gene fusions by using a filtering engine to reduce the number of gene fusion candidates (also referred to herein as "fusion candidates") processed to determine whether each fusion candidate is a valid gene fusion. This filtering engine can promote only a filtered subset of candidate gene fusions for further downstream processing as described herein, thereby enabling a more accurate selection of fusion candidates for subsequent analysis, while also achieving a reduction in the computational resources that need to be expended to identify valid gene fusions.
[0020] The reduction of the candidate gene fusion set also provides other technical advantages. For example, the methods and systems disclosed herein provide reduced execution time compared to conventional methods of processing and scoring all gene fusion candidates. The reduced execution time to perform the operations also results in reduced consumption of processing resources (e.g., CPU or GPU resources), memory usage, and power consumption. While the filtering engine provides reduced execution time compared to conventional methods, the methods and systems disclosed herein may also provide other ways to reduce execution time. For example, in some implementations, further reductions in execution time may be achieved by using a hardware-accelerated read alignment unit to perform the mapping, alignment, and generation of metadata used to process the candidate gene fusions.
[0021] 1 is a block diagram of an example of a system 100 for rapidly detecting valid gene fusions. The system 100 may include a nucleic acid sequencing device 110, a memory 120, a secondary analysis unit 130, a fusion candidate identification module 140, a fusion candidate filtering module 150, a feature set generation module 160, a machine learning model 170, a gene fusion determination module 180, an output application program interface (API) module 190, and an output display 195. In the example of FIG. 1, each of these components is described as being implemented within the nucleic acid sequencing device 110. However, the present disclosure is not limited to such an embodiment.
[0022] 1 may instead be executed on a computer outside of the nucleic acid sequencing device 110. For example, in some implementations, the secondary analysis module may be implemented within the nucleic acid sequencing device 110, and the fusion candidate identification module 140, the fusion candidate filtering module 150, the feature set generation module 160, the machine learning model 170, the gene fusion determination module 180, and the output application program interface (API) module 190 may be implemented within one or more different computers. In such implementations, the one or more different computers and the nucleic acid sequencing device may be communicatively coupled using one or more wired networks, one or more wireless networks, or a combination thereof.
[0023] For purposes of this specification, the term "module" includes one or more software components, one or more hardware components, or any combination thereof, which may be used to implement the functionality attributed to the respective module according to this specification. In general, the "modules" described herein use one or more processors to execute software instructions to implement the functionality of the modules described herein. The processors may include a central processing unit (CPU), a graphics processing unit (GPU), etc.
[0024] Similarly, the term "unit" as used herein includes one or more software components, one or more hardware components, or any combination thereof, which may be used to realize the functionality attributed to the respective unit according to this specification. In general, the "units" described herein use one or more hardware components, such as hardwired digital logic gates or hardwired digital logic blocks, arranged as a processing engine to perform operations that realize the functionality of the unit described herein. Such hardwired digital logic gates or hardwired digital logic circuits may include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and the like.
[0025] The nucleic acid sequencing device 110 (also referred to herein as sequencing device 110) is configured to perform a primary nucleic acid sequence analysis. Performing the primary analysis may include receiving, by the sequencing device 110, a biological sample 105, such as a blood sample, a tissue sample, a sputum, or a nucleic acid sample, and generating, by the sequencing device 110, output data, such as one or more reads 112, each representing a nucleotide order of a nucleic acid sequence of the received biological sample. In some implementations, sequencing by the nucleic acid sequencer 110 may be performed in multiple read cycles, where a first read cycle "read 1" generates one or more first reads representing a nucleotide order from a first end of a nucleic acid sequence fragment, and a second read cycle "read 2" generates one or more second reads, each representing a nucleotide order from the other end of one of the nucleic acid sequence fragments. In some implementations, the reads may be short reads of about 80-120 nucleotides in length. However, the present disclosure is not limited to reads of any particular nucleotide length. Instead, the present disclosure can be used for reads of any nucleotide length.
[0026] In some implementations, the biological sample 105 may include a DNA sample, and the nucleic acid sequencer 110 may include a DNA sequencer. In such implementations, the order of sequenced nucleotides in the reads generated by the nucleic acid sequencer may include one or more of guanine (G), cytosine (C), adenine (A), and thymine (T) in any combination. In some implementations, the nucleic acid sequencer 110 may be used to generate RNA reads of the biological sample 105. In such implementations, this may be done using an RNA-seq protocol. As an example, the biological sample 105 may be pre-treated using reverse transcription to form complementary DNA (cDNA) using reverse transcriptase. In other implementations, the nucleic acid sequencer 110 may include an RNA sequencer, and the biological sample may include an RNA sample. The RNA reads generated using cDNA or via the RNA sequencer may consist of C, G, A, and Uracil (U). The example of Figure 1 described herein is described with respect to generating and analyzing RNA reads, however, the present disclosure may be used to generate and analyze any type of nucleic acid sequence read, including DNA or RNA reads.
[0027] The sequencing device 110 may include a next generation sequencer (NGS) configured to generate sequence reads, such as reads 112-1, 112-2, 112-n (where "n" is any positive integer greater than 0), for a given sample in a manner that achieves ultra-high throughput, ultra-high scalability, and ultra-high speed through the use of massively parallel sequencing technology. NGS allows for rapid sequencing of entire genomes and the ability to zoom into deeply sequenced target regions or utilize RNA sequencing (RNA-Seq) to discover novel RNA variants and splice sites, or gene expression analysis, analysis of epigenetic factors such as genome-wide DNA methylation and DNA-protein interactions, sequencing of cancer samples to study rare somatic variants and tumor subclones, and quantifying mRNA, for example, for the study of microbial diversity in humans or the environment.
[0028] The sequencing device 110 may sequence the biological sample 105 and generate a corresponding set of reads represented using A, C, T, and G. The sequencing device may then perform reverse transcription to generate cDNA sequences representing the corresponding RNA sequences. These RNA-seq reads 112-1, 112-2, 112-n are output by the sequencing device 110 and stored in the memory device 120. In some implementations, the RNA-seq reads 112-1, 112-2, 112-n may be compressed into smaller sized data records prior to storage of the reads 112-1, 112-2, 112-n in the memory device 120. The memory device 120 may be accessible by each of the components of FIG. 1, including the secondary analysis unit 130, the fusion candidate identification module 140, the fusion candidate filtering module 150, the feature set generation module 160, the machine learning model 170, the gene fusion determination module 180, and the output API module 190. Although each module may be shown as providing an output of a first module to a second module, a practical implementation of such functionality may include a first module that stores the output in a memory device, such as memory 120, and a second module that accesses the stored output from the memory device and processes the accessed output as an input to the second module.
[0029] The secondary analysis unit 130 may access the reads 112-1, 112-2, 112-n stored in the memory device 120 and perform one or more secondary analysis operations on the reads 112-1, 112-2, 112-n. In some implementations, the reads 112-1, 112-2, 112-n may be stored in the memory device 120 in compressed data records. In such implementations, the secondary analysis unit may perform an uncompression operation on the compressed read records prior to performing the secondary analysis operations on the read records. The secondary analysis operations may include mapping one or more reads to a reference genome, aligning one or more reads to a reference genome, or both. In some implementations, the secondary analysis operations may also include a variant calling operation. In addition to performing secondary analysis operations, the secondary analysis unit 130 may also be configured to perform a classification operation. A classification operation may include, for example, ordering the reads sequenced by the secondary analysis unit based on the location in the reference genome to which the sequenced reads are mapped.
[0030] In some implementations, such as the example of FIG. 1, secondary analysis unit 130 may include memory 132 and programmable logic device 134. Programmable logic device 134 may have hardware logic circuitry that may be dynamically configured to include one or more secondary analysis operation units, such as lead arrangement unit 136, and may be used to perform one or more secondary analysis operations using the hardware logic circuitry. Dynamically configuring programmable logic device 134 to include a secondary analysis operation unit, such as lead arrangement unit 136, may include, for example, providing one or more instructions to programmable logic device 134 in the hardware logic of lead arrangement unit 136 that cause programmable logic device 134 to arrange hardware logic gates of programmable logic device 134 into a hardwired digital logic configuration configured to implement a function.
[0031] The one or more operations that induce dynamic configuration of programmable logic device 134 may include compiled hardware description language code, one or more instructions for programmable logic device 134 to configure itself based on the compiled hardware description language code, and the like. Such operations that induce dynamic configuration of programmable logic device 134 may be generated and deployed to programmable logic device 134 by a control program executed by sequencing device 110 or other computer hosting the control program. In some implementations, the control program may be a software module whose instructions reside in a memory device, such as memory 120. The functionality of the control program for generating and deploying instruction hardware description language code or other instructions to configure programmable logic device 134 may be realized by executing the control program software module using one or more processors, such as one or more CPUs or one or more GPUs.
[0032] The functionality of the read sequence unit 136 may include obtaining one or more first reads, such as RNA reads 112-1, 112-2, 112-n, stored in the memory 120 by the sequencing device 110, mapping the obtained first reads 112-1, 112-2, 112-n to one or more reference sequence positions of a reference sequence, and then aligning the mapped first reads 112-1, 112-2, 112-n to the reference sequence. That is, the mapping step may identify a set of candidate reference sequence positions for each of the obtained first reads that match the particular read. The alignment step may then score each of the candidate reference sequence positions and select the particular reference sequence position with the highest alignment score as the correct alignment for the particular read. The reference sequence may include an organized series of nucleotides that correspond to a known genome.
[0033] Arranging the hardware logic gates of the programmable logic device 134 in response to one or more instructions from the control program may include configuring logic gates such as AND gates, OR gates, NOR gates, XOR gates, or any combination thereof to perform the digital logic functions of the lead ordering unit 136. Alternatively or additionally, arranging the hardware logic gates may include dynamically configured logic blocks including hardware logic units customizable to perform complex arithmetic operations including addition, multiplication, comparison, and the like. The exact arrangement of the hardware logic gates, logic blocks, or combinations thereof is defined by instructions received from the control program. The received instructions may include or be derived from compiled hardware description language (HDL) program code written by an entity defining the schematic layout of the secondary analysis operation units to be programmed into the programmable logic device 134. The HDL program code may include program code written in a language such as Very High Speed Integrated Circuit Hardware Description Language (VHDL), Verilog, and the like. The entity may include one or more human users drafting the HDL program code, one or more artificial intelligence agents generating the HDL program code, or a combination thereof.
[0034] The programmable logic device 134 may include any type of programmable logic device. For example, the programmable logic device 134 may include one or more field programmable gate arrays (FPGAs), one or more complex programmable logic devices (CPLDs), one or more programmable logic arrays (PLAs), or combinations thereof, that are dynamically configurable and reconfigurable as needed to execute a particular workflow by a control program. For example, in some implementations, it may be desirable to use the programmable logic device 134 as the lead alignment unit 136, as described above. However, in other implementations, it may be desirable to use the programmable logic device 134 to perform a variant calling function, or functions in support of variant calling, such as a hidden Markov model (HMM) unit. In still other implementations, the programmable logic device 134 may also be dynamically configured to support common computing tasks, such as compression and decompression, because the hardware logic of the programmable logic device 134 is capable of performing these tasks, and other tasks identified above, much faster than performing the same tasks using software instructions executed by the one or more computing units 150. In some implementations, the programmable logic device 134 can be dynamically reconfigured during run time to perform different operations.
[0035] As an example, in some implementations, the programmable logic device 134 may be implemented using an FPGA dynamically configured as an unfolding unit to access data representing compressed versions of the first reads 112-1, 112-2, 112-n stored in the memory device 120 or 132. The secondary analysis unit 130 may use the unfolding unit to unfold the compressed data representing the first reads 112-1, 112-2, 122-n (e.g., if the reads received from the nucleic acid sequencer are compressed). The unfolding unit may store the unfolded reads in the memory 120 or 132. In such implementations, the FPGA may then be dynamically reconfigured as a read alignment unit 136 and used to perform mapping and alignment of the compressed first reads 112-1, 112-2, 112-n stored in the memory 132 or 120. The read alignment unit 136 may then store the data representing the mapped and aligned reads in the memory 132 or 120. Although the series of operations is described as including an unfolding operation, a mapping operation, and an ordering operation, the present disclosure is not limited to performing these operations, or to performing only these operations. Instead, the programmable logic device 134 may be dynamically configured to perform the functionality of any operational unit in any order as necessary to achieve the functionality described herein.
[0036] The embodiment of FIG. 1 illustrates a secondary analysis unit 130 that uses a hardware logic device in the form of a programmable logic device 134 to implement the lead arrangement unit 136. However, the present disclosure is not limited to using a programmable logic device to implement the lead arrangement unit 136. Alternatively, other types of integrated circuits may be used to implement the lead arrangement unit 136 within the hardwired digital logic of the secondary analysis unit 130. For example, in some implementations, the secondary analysis unit 143 may be configured to implement the functionality of one or more secondary analysis operation units using one or more application specific integrated circuits (ASICs). Although not reprogrammable, the one or more ASICs may be designed with custom hardware logic of one or more secondary analysis operation units, such as the lead arrangement unit 136, variant calling unit, variant calling operation support unit, etc., to accelerate and parallelize the execution of the secondary analysis operations. In some implementations, the use of one or more ASICs as the hardwired logic circuitry of the secondary analysis unit 130 to implement the functionality of one or more secondary analysis operation units may be even faster than using a programmable logic device such as an FPGA. Thus, one skilled in the art will appreciate that ASICs may be used in place of programmable logic devices such as FPGAs in any of the embodiments described herein. In implementations where ASICs are employed, it may be necessary to use a dedicated ASIC or dedicated logical groupings in a single ASIC for each secondary analysis operation unit performed by the ASIC. Examples include one or more ASICs for read alignment, one or more ASICs for decompression, one or more ASICs for compression, or a combination thereof. Alternatively, the same functionality may also be achieved with dedicated logical groups within the same ASIC.
[0037] In addition, the embodiments of the present disclosure described with respect to systems 100 and 300 of Figures 1 and 3, respectively, are described with respect to the use of a hardware implementation of the lead alignment unit 136 in a programmable logic device. In addition, it is noted above that one or more ASICs may be used to implement the lead alignment engine or other secondary analysis operation units. However, the present disclosure is not limited to the use of hardware units to perform such secondary analysis operations. Instead, in some implementations, any of the operations described herein as performed by a programmable logic device, such as lead alignment, compression, or decompression, may also be implemented using one or more software modules.
[0038] 1 , execution of the system 100 may begin with the sequencing device 110 sequencing the biological sample 105. Sequencing the biological sample may include generating, by the sequencing device 110, a read sequence that is a data representation of an ordered sequence of nucleotides present in the biological sample 105. If the system 100 is configured to process DNA reads, then the reads generated by the sequencing device 110 may be stored in memory 120.
[0039] Alternatively, in some implementations, if the system 100 is configured to process RNA reads, the sequencing device 110 may be configured to perform pre-processing of the biological sample 110 using reverse transcription to form complementary DNA (cDNA) using a reverse transcriptase. In such implementations, such as the implementation in the example of FIG. 1, the reads generated by the sequencing device 110 include RNA reads 112-1, 112-2, 112-n. In other implementations, the nucleic acid sequencer 110 may include an RNA sequencer and the biological sample may include an RNA sample. Regardless of whether the RNA reads are generated by a DNA sequencing device using cDNA or via an RNA sequencer, the RNA reads each include a sequence of nucleotides consisting of C, G, A, and U. The reads 112-1, 112-2, 112-n may be stored in the memory 120 in compressed or uncompressed format.
[0040] Execution of the system 100 may continue with the secondary analysis unit 130 retrieving the reads 112-1, 112-2, 112-n stored in the memory 120. In some implementations, the secondary analysis unit 130 may access the reads 112-1, 112-2, 112-n in the memory device 120 and store the accessed reads 112-1, 112-2, 112-n into the memory 132 of the secondary analysis unit 130. In other implementations, upon a determination by the control program that sequencing of the reads 112-1, 112-2, 112-n is complete and the secondary analysis unit 130 is available to perform secondary analysis operations, the control program may load the reads 112-1, 112-2, 112-n into the memory 132 of the secondary analysis unit 130.
[0041] If the reads 112-1, 112-2, 112-n are compressed, the secondary analysis unit 130 may dynamically configure the programmable logic device 134 as an unfolding unit to access the reads 112-1, 112-2, 112-n in the memory 132 or 120 to unfold the reads 112-1, 112-2, 112-n, and then store the unfolded reads 112-1, 112-2, 112-n in the memory 1320 or 120. In some implementations, the secondary analysis unit may dynamically reconfigure the programmable logic device to perform the unfolding in response to instructions from a control program.
[0042] If the reads 112-1, 112-2, 122-n are not compressed, the secondary analysis unit 130 may access the reads from memory 132 or 120 and perform the read alignment operations. In some implementations, the secondary analysis unit 130 may receive instructions from a control program instructing the secondary analysis unit 130 to configure or reconfigure the programmable logic device 134 to include a read alignment unit 136, and then use the read alignment unit 136 to perform alignment of the reads 112-1, 112-2, 112-n. Alternatively, in other implementations, the programmable logic device may already be configured to include a read alignment unit 136, and use the read alignment unit 136 to perform alignment of the reads 112-1, 112-2, 112-n. In still other implementations, the secondary analysis unit 130 may include an ASIC configured to perform the read alignment and then use the ASIC to perform alignment of the reads 112-1, 112-2, 112-n.
[0043] The secondary analysis unit 130 may be configured to perform read sequencing operations in parallel with gene fusion analysis. For example, the secondary analysis unit 140 may take a first batch of reads generated by the non-sequencing sequencing device 110, sequence the first batch of reads using the read sequencing unit 136, classify the sequenced reads using a sorting engine that may be implemented in the hardware configuration of the programmed logic device 136 or in software by executing program instructions, and then output the first batch of sequenced and classified reads for storage in the memory device 132, 130. In some implementations, the memory 132 may function as a local cache for the secondary analysis unit 132 that loads data to be processed by the read sequencing unit and then offloads data output by the read sequencing unit 136. Thus, once the first batch of sequenced reads is output by the read sequencing unit 136 to the memory 132, the first batch of sequenced reads may be classified and then output to the memory 120. Fusion candidate identification module 140 may then access the first batch of sequenced and classified reads from memory 120 and process the first batch of sequenced and classified reads, while secondary analysis unit 130 performs sequence operations on a second batch of previously unsequenced reads generated by sequencing device 110. This process may be performed iteratively until each batch of reads has been processed through system 100. Although this embodiment is described as having a sequenced and classified batch, it is not a requirement of this disclosure that the batch of sequenced reads is also classified. Instead, the use of sequenced and classified reads may be used in system 100 or system 300 to obtain performance improvements, such as reduced execution times, as described below.
[0044] The fusion candidate identification module 140 may obtain a batch of sequenced and classified reads sequenced by the read sequence unit 136 to determine whether the batch of sequenced and classified reads includes one or more gene fusion candidates. In some implementations, if the received batch includes sequenced and classified reads, then the fusion candidate identification module 140 may evaluate the classified reads of the batch whose genomic intervals corresponding to the batch overlap with the breakpoints of at least one fusion candidate. This may reduce the number of fusion candidates that require downstream analysis. In other implementations, if the received batch includes unclassified sequenced reads, then the fusion candidate identification module 140 may evaluate each of the sequenced reads in the batch to determine whether the sequenced read is a fusion candidate. In some implementations, the operation of determining by the fusion candidate identification module 140 whether the batch of reads includes one or more fusion candidates includes determining by the fusion candidate identification module 140 whether the batch of reads includes one or more split read sequences, one or more mismatched read pairs, one or more soft clip sequences, or a combination thereof.
[0045] In some implementations, the fusion candidate identification module 140 may be configured to identify split read sequences as fusion candidates. The fusion candidate identification module 140 may identify split read sequences by analyzing the genes of the reference sequence to which each particular read was sequenced within a batch of sequenced reads. If the fusion candidate identification module 140 determines the read maps to a single gene, the fusion candidate identification module 140 may determine that the read is not a split read. Alternatively, if the fusion candidate identification module 140 determines that the read is sequenced to two different genes, then the read may be determined to be a split read. In such implementations, the split read may be determined to be a fusion candidate. For example, if a first subset of nucleotides of the read is sequenced to a first parent gene of a reference genome and a second subset of nucleotides of the read is sequenced to a second parent gene of a reference genome, then the read may be determined to be sequenced to two different reads. In some implementations, the first subset of nucleotides may be a prefix of the read and the second subset of nucleotides may be a suffix of the read. If the fusion candidate identification module 140 is configured to identify split reads, data identifying the split reads, if any, may be stored in the memory device 120.
[0046] In some implementations, the fusion candidate identification module 140 may be configured to identify mismatched read pairs as fusion candidates. The fusion candidate identification module 140 may identify mismatched read pairs by analyzing the genes of the reference sequence to which each particular read pair was sequenced within a batch of sequenced reads. If the read pair is sequenced to the reference sequence and the sequence orientation and extent is the expected orientation and extent, then the read pair is determined to not be a mismatched read. Alternatively, if the read pair is sequenced to the reference sequence and the sequence orientation or extent is unexpected, then the read pair is determined to be a mismatched read pair. In such implementations, if one read in a pair maps to one parent gene and the other maps to another parent gene, then the mismatched read may be determined to be a fusion candidate. If the fusion candidate identification module 140 is configured to identify mismatched reads, data identifying the mismatched reads, if any, may be stored in the memory device 120.
[0047] In some implementations, the fusion candidate identification module 140 may be configured to identify soft-clipped sequences. The fusion candidate identification module 140 may identify soft-clipped sequences by analyzing the genes of the reference sequence to which each particular sequenced read was sequenced within a batch of sequenced reads. In some implementations, the fusion candidate identification module 140 may determine whether the read is sequenced in its entirety to a single location in the reference genome. If the fusion candidate identification module 140 determines that the read is sequenced in its entirety to a single location in the reference genome, then the fusion candidate identification module 140 may determine that the read is not a soft-clipped read. Alternatively, if the fusion candidate identification module 140 determines that only a portion of the read is sequenced to the reference genome, then the fusion candidate identification module 140 may determine that the read is a soft-clipped read. If the sequenced portion of the read map is sequenced to one parent gene and the non-sequenced portion is determined to have a similar sequence to another parent gene, then the soft-clipped read is determined to be a fusion candidate. If the fusion candidate identification module 140 is configured to identify soft-clipped reads, data identifying the soft-clipped reads, if any, may be stored in the memory device 120 as gene fusion candidates.
[0048] The fusion candidate filtering module 150 may obtain data describing the set of fusion candidates identified by the fusion candidate identification module 140. In some implementations, the fusion candidate filtering module may access the memory device 120 and obtain the data describing the fusion candidates from the memory device 120. In other implementations, the fusion candidate filtering module may receive the data describing the fusion candidates from the output of the aforementioned modules, such as the fusion candidate identification module 140. The fusion candidate filtering module 150 may use one or more filters to filter the data describing the set of fusion candidates to identify a filtered set of gene fusion candidates that is smaller than the entire set of gene fusion candidates. In some implementations, these filters are applied in a single stage. For example, each of the one or more filters may be applied, and each fusion candidate in the set of fusion candidates may be evaluated against each of the one or more filters. However, other implementations may employ a multi-stage filtering approach. In such implementations, a first set of one or more filters is applied to the initial set of fusion candidates identified by the fusion candidate identification module 140. A second set of one or more filters is then applied to the first set of filtered fusion candidates remaining after application of the first filtering stage. Additional filtering stages may be applied as necessary to achieve an optimal set of filtered fusion candidates.
[0049] In some implementations, the fusion candidate filtering module 150 may filter the set of fusion candidates to consider overlapping fusion candidates resulting from the high depth of coverage used during short read sequencing. For example, pile-up resulting from 30x sequencing may lead to the fusion candidate identification module 140 identifying up to 30 fusion candidates that are overlapping. The fusion candidate filtering module 150 may remove such overlapping fusion candidates by applying filters to the characteristics of the fusion candidates to check for overlaps. For example, the fusion candidate filtering module 150 may determine whether multiple fusion candidates are sequenced to the same parent gene, sequenced to a portion of the reference genome that spans the same or similar breakpoints, or a combination thereof. If the fusion candidate filtering module 150 identifies multiple fusion candidates that are sequenced to the same parent gene, sequenced to a portion of the reference genome that spans the same or similar breakpoints, or a combination thereof, the fusion candidate filtering module 150 may determine that the fusion candidates are overlapping and select only one of the fusion candidates as the representative fusion candidate. In such cases, the remaining fusion candidates aligned to the same parent genes aligned to portions of the reference genome spanning the same or similar breakpoints or combinations thereof may be discarded without further downstream analysis. The representative fusion candidates may then be further added to a set of filtered fusion candidates in a memory device, such as memory device 120.
[0050] Alternatively or additionally, the fusion candidate filtering module 150 may filter the set of fusion candidates based on one or more prescribed conditions. For example, the fusion candidate filtering module 150 may analyze each fusion candidate and determine whether the fusion candidate has one or more attributes that satisfy one or more prescribed conditions employed by the filtering module 150. In some implementations, the one or more prescribed conditions may include the sequence location of each portion of the fusion candidate, the sequence overlap distance relative to the breakpoint spanned by the fusion candidate, the sequence orientation of the fusion candidate, the lead sequence quality of the fusion candidate, the further mapping position of the fusion candidate, or any combination thereof.
[0051] As an example, one or more prescribed conditions may be used by the fusion candidate filtering module 150 to filter fusion candidates based on sequence position. In some implementations, for example, the fusion candidate filtering module 150 may be configured to use a prescribed condition that filters fusion candidates having reads aligned to a reference sequence in such a manner that the total length of the sequence crosses the fusion breakpoint by more than a predetermined number of nucleotides. In some implementations, the predetermined number of nucleotides of this prescribed condition may be 8 nucleotides. Alternatively or additionally, the fusion candidate filtering module 150 may be configured to filter fusion candidates having reads aligned to a reference sequence in such a manner that the total length of the sequence on the reference sequence does not reach within a predetermined threshold number of nucleotides of the fusion breakpoint. In some implementations, the predetermined threshold number of nucleotides for this prescribed condition may be 50 nucleotides. Alternatively or additionally, the fusion candidate filtering module 150 may be configured to use a prescribed condition that filters fusion candidates having reads aligned to a reference sequence in such a manner that the aligned positions of the reads at the two fusion breakpoints share at least a predetermined number of nucleotides. In some implementations, the predetermined number of shared nucleotides may include at least 8 nucleotides.
[0052] As another example, one or more prescribed conditions may be used by the fusion candidate filtering module 150 to filter fusion candidates based on orientation. In some implementations, for example, the fusion candidate filtering module 150 may be configured to use prescribed conditions to filter fusion candidates having a sequence orientation indicative of the transcription of at least one nucleotide sequence of the parent genes in the fusion transcript.
[0053] As another example, one or more prescribed conditions may be used by the fusion candidate filtering module 150 to filter fusion candidates based on mapping quality. In some implementations, for example, the fusion candidate filtering module 150 may be configured to use prescribed conditions to filter fusion candidates having read sequences with mapping quality scores that do not meet a predetermined threshold.
[0054] As another example, one or more prescribed conditions may be used by the fusion candidate filtering module 150 to filter fusion candidates based on additional mapping positions. In some implementations, for example, the fusion candidate filtering module 150 may be configured to use prescribed conditions to filter fusion candidates based on a determination that the lead portion of the fusion candidate maps to multiple positions of the reference sequence. In some implementations, the fusion candidate filtering module 150 may be configured to exclude positions annotated to be homologous genes.
[0055] The fusion candidates that satisfy each of the one or more prescribed conditions may be added to a set of filtered fusion candidates in a memory device, such as memory device 120. The fusion candidates that do not satisfy each of the one or more prescribed conditions may be discarded without further downstream analysis. In some implementations, the filtering based on the prescribed conditions of the fusion candidates may be applied as a second stage filter after the application of the first stage deduplication filter. In other implementations, the filtering based on the prescribed conditions of the fusion candidates may be applied as a first filtering stage, and then the deduplication filter may be applied as a second stage filter. In other implementations, the filtering based on the prescribed conditions may be applied as a single stage filter without traditional deduplication filtering. Filtering the fusion candidates based on one or more of these prescribed conditions may significantly reduce the number of fusion candidates that need to be further processed downstream.
[0056] Downstream processing may be performed on each fusion candidate in the set of fusion candidates filtered by the fusion candidate filtering module 150. The downstream processing includes execution of the feature set generation module 160, the machine learning model 170, the gene fusion determination module 180, and the output API module 190. Such downstream processing may be used to determine whether the candidate fusion candidate corresponds to a valid gene fusion.
[0057] The feature set generation module 160 may draw data from multiple data sources to identify a set of data attributes to perform feature extraction. These data sources include attribute data stored in memory 120 for fusion candidates, including (i) the read(s) of the fusion candidate, (ii) the portion(s) of the reference sequence location at which the fusion candidate reads were aligned, and (iii) annotations of the segment of the reference genome at which the particular gene fusion candidate was aligned. In some implementations, the annotations may include annotations of gene exons, annotations indicating the presence of homologous genes, annotations indicating a list of enriched genes, or combinations thereof.
[0058] The data that the feature set generation module 160 sources may also include data generated by the lead sequence unit 136 during the sequencing process. In some implementations, the feature set generation module 160 may derive feature data from data generated by the lead sequence unit 136 during sequencing of the fusion candidates. For example, the feature set generation module 160 may derive information such as, for example, variant allele frequency counts, unique read sequence counts, read probabilities across transcripts, MAPQ scores, data indicative of homology between parent genes, or combinations thereof, from the data generated by the lead sequence unit 136.
[0059] The feature set generation module 160 may be used to generate feature data representing one or more of the above-mentioned attributes of the fusion candidates drawn from multiple data sources and encode the feature data into one or more data structures 162 for input to the machine learning model 170. For example, in some implementations, the entire set of features extracted from the attributes of the fusion candidates may be encoded into a single vector 162 that is incorporated into the machine learning module 170. For example, in a split-read sequence or soft-clip sequence scenario, each of the features extracted from these types of fusion candidate attributes may be encoded into a single vector 162.
[0060] In other implementations, the feature data may be extracted from the attributes of the fusion candidates, i.e., may be multiple input vectors coded. In such scenarios, the input vector 162 may be composed of a pair of input vectors 162a, 162b. For example, in a split read fusion candidate scenario, each of the features extracted from the attributes related to the prefixes of the split reads may be coded into the input vector 162a, including a feature representing the nucleotides of the prefixes of the split reads, a feature representing the segment of the reference sequence to which the prefixes align, and any other features extracted from the above-mentioned attributes related to the prefixes, or any combination thereof. Similarly, in such implementations, each of the features extracted from the attributes related to the suffixes of the split reads, including a feature representing the nucleotides of the suffixes of the split reads, a feature representing the segment of the reference sequence to which the suffixes align, and any other features extracted from the above-mentioned attributes related to the suffixes, or any combination thereof, may be coded into the input vector 162b. As another example, if a mismatched read pair is identified as a fusion candidate, then extracted features representing the first read of the mismatched read pair, extracted features representing the portion of the reference sequence sequenced thereto, features extracted from attributes associated with the first read of the mismatched read pair, or any combination thereof may be encoded into input vector 162a. Similarly, in such an embodiment, extracted features representing the second read of the mismatched read pair, extracted features representing the portion of the reference sequence sequence sequenced thereto, features extracted from attributes associated with the second read of the mismatched read pair, or any combination thereof may be encoded into input vector 162b.
[0061] Each of the one or more vectors 162 may numerically represent the generated feature data, including any of the features extracted from the fusion candidates or any of the features extracted from the data received from the lead sequence unit 136 and stored in the memory 120 associated with the fusion candidates. For example, each vector 162 or 162a, 162b may include multiple fields, each corresponding to a specific feature of a specific lead of a specific fusion candidate. Depending on the specific fusion candidate, this may result in one or more input vectors, as described above. The feature set generation module 160 may determine a numerical value for each of the fields that describes the degree to which a specific feature is expressed in the attributes of a specific lead of the fusion candidate. The numerical value determined for each of the fields may be used to encode the generated feature data representing the attributes of the lead of the fusion candidate into one or more respective vectors 162. The generated one or more vectors 162a, 162b, which numerically represent the corresponding lead of the fusion candidate, are provided as input to the machine learning model 170. In some implementations, even when multiple concept vectors are generated for a fusion candidate, the multiple concept vectors may contact a single vector 162 that may be input to the machine learning model 170. In such implementations, multiple vectors are guaranteed (i) in certain split-read implementations where prefix features are assigned to a first vector and suffix features are assigned to a second vector, or (ii) in mismatched pair implementations where a first portion of the single vector may correspond to a first concept vector and a second portion of the single vector may correspond to a second concept vector.
[0062] The machine learning model 170 may include a deep neural network trained to generate a probability that a fusion candidate corresponds to a valid gene fusion based on processing one or more input vectors 162 representing the characteristics of the fusion candidate. A valid gene fusion is a chimeric transcript that contains sequences from multiple genes due to rearrangements in the genome connecting a prefix of one parent gene with a suffix of another parent gene. In the context of the present disclosure, a valid gene fusion is determined to be predicted by the model 170, for example, if the output data 178 generated by the machine learning model meets a predetermined threshold. The machine learning model 170 may include an input layer 172 for receiving input data, one or more hidden layers 174a, 174b, 174c for processing the input data received via the input layer 172, and an output layer 176 for providing the output data 178. Each hidden layer 174a, 174b, 174c includes one or more weights or other parameters. During training, weights or other parameters of the corresponding hidden layers 174 a, 174 b, 174 c can be adjusted such that the trained deep neural network produces a desired target output 178 that indicates the likelihood that one or more input vectors 162 represent valid gene candidates based on the machine learning model 170 processing the one or more input vectors 162.
[0063] The machine learning model 170 may be trained in a number of different ways. In one implementation, the machine learning model 170 may be trained to distinguish between (i) one or more input vectors representing features extracted from attributes of valid fusion candidates and (ii) one or more input vectors representing features extracted from attributes of invalid fusion candidates. In some implementations, such training may be accomplished using labeled training vector pairs. Each training vector may represent a training fusion candidate, but may be composed of the same types of feature data as the one or more input vectors 162 described above. In such implementations, the one or more input vectors 162 representing features extracted from attributes of the fusion candidates may be labeled as being a valid gene fusion or an invalid gene fusion. In some implementations, the valid gene fusion label or the invalid gene fusion label may be represented as a numerical value. For example, in some implementations, a valid gene fusion label may be a "1" and an invalid gene fusion label may be a "0". In other implementations, for example, a valid gene fusion indicator can be a number of "0" to "1" that meets a predetermined threshold, and an invalid gene fusion indicator can be a number of "0" to "1" that does not meet the predetermined threshold. In such implementations, the magnitude by which the number meets or does not meet the predetermined threshold is an indication of the confidence that the training pair of input vectors represents a valid gene fusion or an invalid gene fusion. In some implementations, meeting the predetermined threshold can include exceeding the predetermined threshold. However, implementations can also be configured such that meeting the threshold can mean not exceeding the predetermined threshold. Such implementations can include, for example, implementations in which the comparator and the parameter are both negated.
[0064] During training, each labeled set of one or more training vectors is provided as an input to the machine learning model 170 and processed by the machine learning model 170, and then the training output generated by the machine learning model 170 is used to determine a predicted label for each of the labeled sets of one or more training vectors. Based on the machine learning model's processing of the labeled one or more training vectors corresponding to a pair of leads for a training fusion candidate, the predicted label generated by the machine learning model 170 can be compared to the training label of one or more training vectors corresponding to one or more leads (or lead portions) of the training fusion candidate. The parameters of the machine learning model 170 can then be adjusted based on the difference between the predicted label and the training label. This process can continue iteratively for each of the multiple labeled training vector(s) corresponding to the respective training fusion candidate until the predicted fusion candidate label generated by the machine learning model 170 based on the processing of the set of one or more training vectors corresponding to the respective training fusion candidate matches, within a predetermined level of error, the training label of the set of one or more training vectors corresponding to the respective training fusion candidate.
[0065] In some implementations, the labeled training fusion candidates may be obtained from a library of training fusion candidates that have been reviewed and labeled by one or more human users. However, in other implementations, the labeled training fusion candidates may include training fusion candidates that have been generated and labeled by a simulator. In such implementations, a simulator may be used to create a distribution of different categories of training fusion candidates that may be used to train the machine learning model 170. In general, if the run-time machine learning model 170 accepts a single input vector 162, each of the extracted features of the fusion candidates encodes the single input vector 162, and then the machine learning model 170 is trained using the single input vector with the same features as the input vector 162 using the training process described above. Similarly, if the run-time machine learning module 170 accepts two training vectors 162a, 162b as described above, then the machine learning model 170 is trained using two input vectors that each have the same corresponding features of the above input vectors 162a, 162b. That is, the types of input vectors processed at run time are the same as the vectors used to train model 170 using the training process described above.
[0066] During processing of the input data 162 corresponding to features extracted from the attributes of the fusion candidates, the output of each hidden layer 174a, 174b, 174c may include an activation vector. The activation vectors output by each respective hidden layer may be propagated through subsequent layers of the deep neural network and used by the output layer to generate output data 178. In the example of FIG. 1, the machine learning model 170 is trained to generate output data 178 representing a combination score generated by the machine learning model 170 based on the machine learning model processing of separate input vectors 162a, 162b, each of which corresponds to one of the leads of the fusion candidates. This combination score 178 is finally generated by the output layer 176 of the trained machine learning model 170 based on operations performed by the output layer 176 of the trained machine learning model 170 on the activation vectors received from the final hidden layer 174c.
[0067] The output data 178 generated by the trained machine learning model 170 may be evaluated by the gene fusion determination module 180 to determine whether the output data 178 indicates that a fusion candidate corresponding to one or more input vectors 162 is a valid fusion candidate. In some implementations, the output data 178 may be provided to the gene fusion determination module 180 by the trained machine learning model 170. In other implementations, the system 100 may store the output 178 of the trained machine learning model 170 in a memory device, such as the memory device 120, for subsequent access by the gene fusion determination module 180. The gene fusion determination module 180 may obtain the output data 178 generated by the machine learning model 170 and evaluate the output data 178 to determine whether the fusion candidate corresponding to the pair 162 of input vectors 162a, 162b is a valid gene fusion based on the output data 178. In some implementations, the gene fusion determination module 180 may determine whether the fusion candidate corresponding to the one or more input vectors 162 is a valid gene fusion by comparing the output data 178 generated by the machine learning model with a predetermined threshold. If the gene fusion determination module 180 determines that the output data 178 meets the predetermined threshold, then the gene fusion determination module 180 may determine that the fusion candidate corresponding to the one or more input vectors 162 is a valid gene fusion. Alternatively, if the gene fusion determination module 180 determines that the output data 178 does not meet the predetermined threshold, then the gene fusion determination module 180 may determine that the fusion candidate corresponding to the one or more input vectors 162 is not a valid gene fusion.
[0068] In some implementations, the gene fusion determination module 180 may generate output data 182 indicative of the results of the determination made by the gene fusion determination module 180 based on the gene fusion determination module's 180 evaluation of the output data 178 generated by the machine learning model 170. This output data 182 may include data identifying gene fusion candidates corresponding to one or more input vectors 162 and data identifying the determination of the gene fusion determination module 180. The data identifying the determination of the gene fusion determination module 180 may include data indicating whether the gene fusion candidates corresponding to the one or more input vectors 162 are valid gene fusions or invalid gene fusions. In some implementations, the output data 182 may only indicate a list of valid gene fusions identified based on the output data 178, a list of invalid gene fusions identified based on the output data 178, data indicating that no valid gene fusions were identified, or any combination thereof. In some implementations, this output data 182 may be stored in the memory 182 for subsequent use by another computing module, for subsequent output to a user device, etc.
[0069] Alternatively or additionally, the gene fusion determination module 180 may generate output data 184 that may be provided as input to an output application programming interface (API) module 190. The output data 184 may instruct the output API to generate output on an output display indicating whether a gene fusion candidate corresponding to one or more input vectors 162 is a valid gene fusion or an invalid gene fusion. In some implementations, the instructions may cause the output API module 190 to access the output data 182 stored in the memory device 120 and generate rendering data that, when rendered by a computing device coupled to the output display 195, produces on the output display 195 (i) data identifying a fusion candidate corresponding to one or more input vectors 162 and (ii) data indicating whether the identified fusion candidate is a valid gene fusion or an invalid gene fusion. This may include causing the output display 195 to display any of the output data 182 stored in the memory 184. In some implementations, the output may be displayed in the form of a report.
[0070] In some implementations, the gene fusion determination module 180 stores output data 182 for each gene fusion candidate in the memory device 120 based on the performance of downstream processing performed on each fusion candidate in the set of filtered gene fusion candidates. In such implementations, the gene fusion determination module 180 may only instruct the output API module 190 to output the results of the gene fusion analysis stored in the memory 120 for each fusion candidate in the set of filtered gene fusion candidates upon completion of downstream processing for each fusion candidate. In such a scenario, the output 192 provided for display on the output display 195 may include a list of valid gene fusions, a list of invalid gene fusions, or both. In other implementations, the gene fusion determination module 180 may cause the output API module 190 to output result data indicating a list of identified gene fusions, if any, upon completion of downstream processing for that particular fusion candidate.
[0071] Other types of output 192 may be provided by the output API module 190. For example, in some implementations, the output 192 may be data that causes another device, such as a printer, to output a report including (i) data identifying fusion candidates corresponding to one or more vectors 162 and (ii) data indicating whether the identified fusion candidates are valid genes. In other implementations, the output data 192 may cause a speaker to output audio data including (i) data identifying fusion candidates corresponding to one or more vectors 162 and (ii) data indicating whether the identified fusion candidates are valid genes. Other types of output data may also be triggered by the output APIR module 190.
[0072] In some implementations, the output display 195 may be a display panel of the sequencing device 110. In other implementations, the output display 195 may be a display panel of a user device connected to the sequencing device 110 using one or more networks. Indeed, the sequencing device 110 may be used to communicate the output data 192 to any device having any display.
[0073] 2 is a flow chart of an example process 200 for rapid detection of valid gene fusions. A system, such as system 100, may begin performing process 200 by acquiring, using one or more computers, first data representing a plurality of sequenced reads from a read sequence unit (210). The system may identify a plurality of gene fusion candidates contained within the acquired first data (220). The system may filter the plurality of gene fusion candidates to determine a filtered set of gene fusion candidates (230).
[0074] The system may obtain a particular gene fusion candidate from the filtered set of gene fusion candidates 240. The system may generate input data for input to the machine learning model, where generating the input data includes extracting feature data representative of the particular gene fusion candidate from data including (i) one or more segments of a reference sequence in which the particular gene fusion candidate is sequenced by the lead sequence unit, and (ii) data generated based on the output of the lead sequence unit 250.
[0075] The system may provide the generated input data as input to a machine learning model, which is trained to generate output data representing the likelihood that a gene fusion candidate is a valid gene fusion based on the machine learning model processing input data representing (i) a segment of the reference genome where a particular gene fusion candidate is sequenced by the read sequence unit, and (ii) data generated based on the output of the read sequence unit (260). The system may obtain the output data generated by the machine learning model based on the machine learning model processing the input data (270). The system may determine whether a particular fusion candidate corresponds to a valid gene fusion candidate based on the output data (280).
[0076] Upon completion of stage 280, the system may determine (290) whether another fusion candidate of the filtered set of fusion candidates should be evaluated. If the system determines that there is another fusion candidate of the filtered set of fusion candidates to be evaluated, then the system may continue execution of process 200 at stage 240. Alternatively, if the system determines that there is not another fusion candidate of the filtered set of fusion candidates to be evaluated, then the system may end execution of the process at stage 295. If the set of sets of fusion candidates has not been exhausted, another fusion candidate may be present in the filtered set of fusion candidates.
[0077] 3 is a block diagram of another example of a system 300 for rapidly detecting valid gene fusions. System 300 performs the same functions as system 100 in that system 300 generates RNA (or DNA) sequence reads 112 using a sequencing device 110, uses a secondary analysis unit 130 to align the RNA sequence reads 112 to a reference sequence, identifies fusion candidates using a fusion candidate identification module 140, determines a set of filtered fusion candidates for downstream analysis using a fusion candidate filtering module 150, and then performs downstream analysis of the set of filtered fusion candidates to identify valid gene fusions using a feature set generation module 160, a machine learning module 170, a gene fusion determination module 190, and an output API module 190. Each of these functional units, modules, or models performs the same functions as those attributed to them in the description of system 100 of FIG. 1.
[0078] The difference between system 300 and system 100 is that the identification of fusion candidates, fusion candidate filtering, and downstream analysis of the filtered set of fusion candidates are performed on a different computer 320 and not within the sequencing device 110. Thus, the difference between system 300 and system 100 lies in how the sequenced reads for gene fusion analysis are implemented and coupled to computer 320 using network 310, how they are retrieved by computer 320, and how the gene fusion results are implemented and transmitted to another device with a corresponding display for output.
[0079] More specifically, the sequencing device 110 may sequence the biological sample 105 and generate RNA reads 112-1, 112-2, 112-n, where "n" is any positive integer greater than 0, as described with respect to the system 100. Although RNA reads are used as an example, the system may also perform the same process on DNA reads. The sequencing device 110 may store the reads 112-1, 112-2, 112-n in the memory 120. In some implementations, the reads 112-1, 112-2, 112-n may be in a compressed format.
[0080] The secondary analysis unit 130 may obtain the reads 112-1, 112-2, 112-n and store the reads 112-1, 112-2, 122-n in the memory 132 of the secondary analysis unit 130. In some implementations, this may include a control program of the sequencing device 110 to stream the reads 112-1, 112-2, 112-n into the memory 132 of the secondary analysis unit 130. In other implementations, the secondary analysis unit 130 may request the reads 112-1, 112-2, 122-n. If the reads 112-1, 112-2, 112-n are compressed, the programmable logic device 134 of the secondary analysis unit 130 may be configured as the unfolding unit 138 into state B and used to unfold the reads 112-1, 112-2, 112-n. The programmable logic device 134 may then be reconfigured to state A as a lead alignment unit and used to align the leads 112-1, 112-2, 112-n to the reference sequence.
[0081] The secondary analysis unit 130 may be reconfigured to state B as a compression unit to compress the sequenced reads using the compression unit to prepare the sequenced reads for transmission to the computer 320. In this example, compressing the first batch of sequenced reads includes compressing not only the sequenced reads, but also data generated by the read sequence unit 136 related to the sequenced reads used for gene fusion analysis. This data is described with respect to the system 100 of FIG. 1 and may include, for example, variant allele frequency counts, unique read sequence counts, read probabilities across transcripts, MAPQ scores, data indicative of homology between parent genes, or combinations thereof. In addition, other data that may be compressed into the first batch of sequenced reads may include (i) fusion candidate reads, (ii) portions of the reference sequence positions where the fusion candidate reads were sequenced, and (iii) annotations of the segments of the reference genome where the particular gene fusion candidate was sequenced. In some implementations, the annotations may include annotations of gene exons, annotations indicating the presence of homologous genes, annotations indicating a list of enriched genes, or combinations thereof.
[0082] After compressing the sequenced reads, the secondary analysis unit 130 may store the first batch of compressed reads in the memory 120. The sequencing device 110 may then transmit the first batch of sequenced reads 125 over a network 310 to a computer 320 for gene fusion analysis. The network 310 may include one or more wired networks, one or more wireless networks, or a combination thereof. In different implementations, the network 310 may be one or more of a wired Ethernet, a wired optical network, a LAN, a WAN, a cellular network, the Internet, or a combination thereof. In some implementations, the computer 320 may be a remote cloud server. However, in other implementations, the computer 320 may be connected to the sequencing device 110 via a direct connection, such as a direct Ethernet connection, a USB-C connection, or the like. In this example of FIG. 300, the first batch of reads is compressed before communication, but compression need not be used. Instead, compression is offered as a way to reduce network bandwidth consumption and minimize storage costs, which may provide significant technical benefits and reduce costs when dealing with the large data sizes of genomes.
[0083] In some implementations, the first batch of sequenced reads includes the entire set of reads generated for the sample 105. In other implementations, the first batch of sequenced reads is only a portion of the entire set of reads generated for the sample 105, and a batch processing system may be used to facilitate parallel processing. For example, in some implementations, after the secondary analysis unit stores the first batch of sequenced reads in memory 120, the secondary analysis unit 130 obtains a second batch of reads that have not yet been sequenced for storage in memory 132. Then, if the second batch of reads was compressed, the secondary analysis unit 130 may perform decompression and perform sequencing of the second batch of reads while the computer 320 performs gene fusion analysis of the first batch of reads. Such parallel processing facilitated by batch processing of reads may significantly reduce the execution time of the system 300 required to determine valid gene fusions for the reads of the sample 105.
[0084] The computer 320 may receive the first batch of reads 125 over the network 310 and store the first batch of reads in the memory 320. If the first batch of reads 125 is compressed, the computer 320 may decompress the first batch of reads using a compression / decompression module 325 and store the first batch of reads in the memory 320. The computer 320 may then execute the gene fusion analysis pipeline of the fusion candidate identification module 140, the fusion candidate filtering module 150, the feature set generation module 160, the machine learning model 170, the gene fusion determination module 180, and the output API module 190 in the same manner as described with respect to the system 100 of FIG.
[0085] The output 192 may be provided to a number of different devices over the network 310. As an example, the output data may be sent to a sequencing device for output on a sequencer's display 195. Alternatively or additionally, the output 192 may be provided for display on a display of a user device 330 over the network 310. The user device 330 may include a smartphone, tablet computer, laptop computer, desktop computer, or any other computer with a display. Alternatively or additionally, the output 192 may also be provided for output via a printer 340 over the network 310. In such an implementation, the output may be a hardcopy report of the determined valid gene fusions.
[0086] FIG. 4 is a block diagram of system components that can be used to implement a system for rapid detection of gene fusions.
[0087] Computing device 400 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. Computing device 450 is intended to represent various forms of mobile devices, such as personal digital assistants, cell phones, smartphones, and other similar computing devices. In addition, computing device 400 or 450 may include a Universal Serial Bus (USB) flash drive. The USB flash drive may store an operating system and other applications. The USB flash drive may include input / output components, such as a wireless transmitter or a USB connector that may be inserted into a USB port of another computing device. The components shown herein, their connections and relationships, and their functions are meant to be merely examples and are not meant to limit the implementation of the inventions described and / or claimed in this document.
[0088] The computing device 400 includes a processor 402, a memory 404, a storage device 406, a high-speed interface 408 connecting to the memory 404 and a high-speed expansion port 410, and a low-speed interface 412 connecting to a low-speed bus 414 and the storage device 408. The components 402, 404, 406, 408, 410, and 412 are interconnected using various buses and may be mounted on a common motherboard or in other suitable manners. The processor 402 may process instructions for execution within the computing device 400, including instructions stored in the memory 404 or on the storage device 408, to display graphical information for a GUI on an external input / output device, such as a display 416 coupled to the high-speed interface 408. In other implementations, multiple processors and / or multiple buses may be used, along with appropriate multiple memories and types of memory. Multiple computing devices 400 may also be connected such that each device provides a portion of the required operations, for example, as a server bank, a group of blade servers, or a multiprocessor system.
[0089] The memory 404 stores information within the computing device 400. In one implementation, the memory 404 is a volatile memory unit or units. In another implementation, the memory 404 is a non-volatile memory unit or units. The memory 404 may also be another form of computer-readable medium, such as a magnetic disk or optical disk.
[0090] The storage device 408 can provide a large-scale storage mechanism for the computing device 400. In one implementation, the storage device 408 can be or contain a computer-readable medium such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid-state memory device, or an array of devices including devices in a storage area network or other configuration. The computer program product can be tangibly embodied in an information carrier. The computer program product can also contain instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer-readable or machine-readable medium, such as the memory 404, the storage device 408, or a memory on the processor 402.
[0091] The high-speed controller 408 manages bandwidth-intensive operations of the computing device 400, while the low-speed controller 412 manages low-bandwidth-intensive operations. Such an allocation of functions is only one example. In one implementation, the high-speed controller 408 is coupled to the memory 404, the display 416, for example via a graphics processor or accelerator, and to a high-speed expansion port 410, which may accept various expansion cards (not shown). In this implementation, the low-speed controller 412 is coupled to the storage device 408 and the low-speed expansion port 414. The low-speed expansion port, which may include various communication ports, for example, USB, Bluetooth, Ethernet, wireless Ethernet, may be coupled to one or more input / output devices, such as a keyboard, a pointing device, a microphone / speaker pair, a scanner, or a networking device, such as a switch or router, for example, via a network adapter. The computing device 400 may be implemented in many different forms, as shown in the figure. For example, the computing device 400 may be implemented as a standard server 420, or multiple times within a group of such servers. The computing device 400 may also be implemented as part of a rack server system 424. In addition, the computing device 400 may be implemented in a personal computer, such as a laptop computer 422. Alternatively, components from the computing device 400 may be combined with other components in a mobile device (not shown), such as device 450. Each such device may contain one or more of the computing devices 400, 450, and the entire system may be made up of multiple computing devices 400, 450 in communication with each other.
[0092] The computing device 400 may be implemented in many different forms, as shown in the figure. For example, the computing device 400 may be implemented as a standard server 420, or multiple times within a group of such servers. The computing device 400 may also be implemented as part of a rack server system 424. In addition, the computing device 400 may be implemented in a personal computer, such as a laptop computer 422. Alternatively, components from the computing device 400 may be combined with other components in a mobile device (not shown), such as device 450. Each such device may contain one or more of the computing devices 400, 450, and the entire system may be made up of multiple computing devices 400, 450 in communication with each other.
[0093] Computing device 450 includes, among other components, a processor 452, memory 464, and input / output devices such as a display 454, a communications interface 466, and a transceiver 468. Device 450 may also include a storage device, such as a microdrive or other device, to provide additional storage. Each of components 450, 452, 464, 454, 466, and 468 are interconnected using various buses, and some of the components may be mounted on a common motherboard or in any other suitable manner.
[0094] The processor 452 may execute instructions within the computing device 450, including instructions stored in the memory 464. The processor may be implemented as a chipset of chips including separate and multiple analog and digital processors. In addition, the processor may be implemented using any of a number of architectures. For example, the processor 410 may be a CISC (Complex Instruction Set Computer) processor, a RISC (Reduced Instruction Set Computer) processor, or a MISC (Minimum Instruction Set Computer) processor. The processor may provide for coordination of other components of the device 450, such as, for example, control of a user interface, applications executed by the device 450, and wireless communication by the device 450.
[0095] The processor 452 may communicate with a user via a control interface 458 and a display interface 456 coupled to a display 454. The display 454 may be, for example, a TFT (thin film transistor liquid crystal display) display, an OLED (organic light emitting diode) display, or other suitable display technology. The display interface 456 may include suitable circuitry for driving the display 454 to present graphical and other information to a user. The control interface 458 may receive commands from a user and convert the commands for transmission to the processor 452. Additionally, an external interface 462 may be provided in communication with the processor 452 to enable near-field communication between the device 450 and other devices. The external interface 462 may provide, for example, wired communication in some implementations or wireless communication in other implementations, although multiple interfaces may also be used.
[0096] The memory 464 stores information within the computing device 450. The memory 464 may be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. An expansion memory 474 may also be provided and connected to the device 450 via an expansion interface 472, which may include, for example, a SIMM (single in-line memory module) card interface. Such expansion memory 474 may provide additional storage space for the device 450 or may also store applications or other information for the device 450. In particular, the expansion memory 474 may include instructions that perform or complement the processes described above, but may also include sensitive information. Thus, for example, the expansion memory 474 may be provided as a security module for the device 450, but may be programmed with instructions that enable secure use of the device 450. Additionally, secure applications may be provided via the SIMM card along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.
[0097] The memory may include, for example, flash memory and / or NVRAM memory, as described below. In one implementation, a computer program product may be tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is, for example, a computer-readable or machine-readable medium, such as memory 464, expansion memory 474, or memory on processor 452, which may be received via transceiver 468 or external interface 462.
[0098] Device 450 may communicate wirelessly via communication interface 466, which may include digital signal processing circuitry as necessary. Communication interface 466 may provide for communication under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, via radio frequency transceiver 468. In addition, short-range communication may occur, such as using Bluetooth, Wi-Fi, or other such transceivers (not shown). In addition, a Global Positioning System (GPS) receiver module 470 may provide additional navigation-related and location-related wireless data to device 450, which may be used appropriately by applications running on device 450.
[0099] Device 450 may also communicate audibly using voice codec 460, which may receive speech information from a user and convert the speech information into usable digital information. Voice codec 460 may also generate audible sounds for the user, such as through a speaker in a handset of device 450. Such sounds may include sounds from a voice telephone call, but may also include recorded sounds, such as voice messages, music files, and the like, and may also include sounds generated by applications operating on device 450.
[0100] Computing device 450 may be implemented in many different forms, as shown in the figure. For example, computing device 450 may be implemented as a mobile phone 480. Computing device 450 may also be implemented as part of a smartphone 482, personal digital assistant, or other similar mobile device.
[0101] Various implementations of the systems and methods described herein may be realized in digital electronic circuitry, integrated circuits, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations of such implementations, including implementations in one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, which may be special purpose or general purpose, coupled to receive data and instructions from, and transmit data and instructions to, a storage system, at least one input device, and at least one output device.
[0102] These computer programs (also known as programs, software, software applications, or code) contain machine instructions for a programmable processor and may be implemented in a high-level procedural language and / or object-oriented programming language and / or in assembly / machine language. As used herein, the term "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus, and / or device, such as magnetic disks, optical disks, memories, programmable logic devices (PLDs) used to provide machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor.
[0103] To provide for interaction with a user, the systems and techniques described herein may be implemented on a computer having a display device, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user, and a pointing device, such as a mouse or trackball, by which the user may provide input to the computer. For example, feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and input from the user may be received in any form, including acoustic input, speech input, or tactile input, although other types of devices may be used to provide interaction with the user as well.
[0104] The systems and techniques described herein can be implemented in a computing system that includes a back-end component, e.g., a data server, or a middleware component, e.g., an application server, or a front-end component, e.g., a client computer having a graphical user interface or web browser through which a user may interact with an implementation of the systems and techniques described herein, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communications network. Examples of communications networks include a local area network ("LAN"), a wide area network ("WAN"), and the Internet.
[0105] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of clients and servers arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. Other embodiments
[0106] Several embodiments have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the present invention. Additionally, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desired results. Additionally, other steps may be provided or removed from the described flows, and other components may be added to or removed from the described systems. Accordingly, other embodiments are within the scope of the following claims.
Claims
1. 1. A computer-implemented method for identifying one or more gene fusions in a biological sample, comprising: acquiring, by one or more computers, first data representative of a plurality of sequenced reads from a lead sequence unit; identifying, by one or more computers, a plurality of gene fusion candidates contained within the obtained first data; filtering, by one or more computers, the plurality of gene fusion candidates to determine a set of filtered gene fusion candidates; For each particular gene fusion candidate of the filtered gene fusion candidates, generating, by one or more computers, input data for input to a machine learning model, the generating the input data comprising: (i) one or more segments of a reference sequence in which the particular gene fusion candidate is sequenced by the read sequence unit; (ii) extracting feature data representative of the particular gene fusion candidate from the data including: data generated based on the output of the read sequence unit; and wherein the data generated based on the output of the read sequence unit includes any one or more of a count of variant allele frequency, a count of unique read sequences, a MAPQ score, or data indicative of homology between parent genes; providing, by one or more computers, the generated input data as input to the machine learning model, the machine learning model being trained using labeled training vectors to generate output data representing a likelihood that a gene fusion candidate is a valid gene fusion based on machine learning model processing input data representing (i) one or more segments of a reference sequence in which the particular gene fusion candidate was sequenced by the read sequence unit, and (ii) data generated based on an output of the read sequence unit, each labeled training vector representing a training fusion candidate and including (i) one or more segments of a reference sequence in which the training fusion candidate was sequenced, and (ii) one or more of a count of variant allele frequencies, a count of unique read sequences, a MAPQ score, or data indicative of homology between parent genes; providing the generated input data as input to the machine learning model, the data generated based on an output of the read sequence unit including one or more of a count of variant allele frequencies, a count of unique read sequences, a MAPQ score, or data indicative of homology between parent genes; obtaining, by one or more computers, output data generated by the machine learning model based on the machine learning model processing the generated input data; and determining, by one or more computers, whether the particular fusion candidate corresponds to a valid gene fusion candidate based on the output data.
2. generating the input data further comprises extracting feature data comprising annotation data describing an annotation of the segment of the reference sequence to which the particular gene fusion candidate is sequenced by the read sequence unit; The machine learning model is trained using labeled training vectors to generate output data representing a likelihood that a gene fusion candidate is a valid gene fusion candidate based on the machine learning model processing input data, each labeled training vector representing a training fusion candidate and including: (i) one or more segments of a reference sequence on which the training fusion candidate was sequenced; (ii) annotation data describing an annotation of the segment of the reference sequence on which the training fusion candidate was sequenced; and (iii) one or more of a variant allele frequency count, a unique read sequence count, a MAPQ score, or data indicative of homology between parent genes, the machine learning model processing input data being: (i) one or more segments of a reference sequence in which the particular gene fusion candidate is sequenced by the read sequence unit; (ii) annotation data describing an annotation of the segment of the reference sequence to which the particular gene fusion candidate is sequenced by the read sequence unit; and (iii) data generated based on the output of the read sequence unit, wherein the data generated based on the output of the read sequence unit comprises one or more of a count of variant allele frequencies, a count of unique read sequences, a MAPQ score, or data indicative of homology between parent genes.
3. 3. The method of claim 1 or 2, wherein identifying, by one or more computers, a plurality of gene fusion candidates contained within the acquired first data comprises identifying, by one or more computers, a plurality of split read sequences.
4. 4. The method of claim 1, wherein identifying, by one or more computers, a plurality of gene fusion candidates contained within the obtained first data comprises identifying, by one or more computers, a plurality of mismatched read pair sequences.
5. the read arrangement unit is implemented using a set of one or more processing engines configured using hardware logic circuitry physically arranged to perform operations, the hardware logic circuitry being used to: (i) receiving data representative of a first lead; (ii) mapping the data representing the first read to one or more portions of a reference sequence to identify one or more positions of a matching reference sequence; (iii) generating one or more sequence scores corresponding to each of the positions of the matched reference sequence of the first read; (iv) selecting one or more candidate sequences for the first read based on the one or more sequence scores; (v) outputting data representing candidate sequences of the first read.
6. The read arrangement unit is implemented using a set of one or more processing engines by using one or more central processing units (CPUs) or one or more graphics processing units (GPUs), and the one or more CPUs or one or more GPUs include: (i) receiving data representative of a first lead; (ii) mapping the data representing the first read to one or more portions of a reference sequence to identify one or more positions of a reference sequence to which the first read is aligned; (iii) generating one or more sequence scores corresponding to each of the positions of the matched reference sequence of the first read; (iv) selecting one or more candidate sequences for the first read based on the one or more sequence scores; (v) executing software instructions that cause outputting data representing candidate sequences of the first read.
7. receiving a plurality of unsequenced leads by the lead sequencing unit; Arranging a first subset of the plurality of leads by the lead arrangement unit; storing, by the lead arrangement unit, the first subset of arranged leads in a memory device; 7. The method of claim 1, wherein obtaining, by one or more computers, first data representing a plurality of sequenced reads from a lead sequence unit comprises obtaining, by one or more computers, the first subset of sequenced reads from the memory device, and performing one or more of the operations of claim 1 while the lead sequence unit sequences a second subset of the plurality of reads that have not yet been sequenced.
8. determining whether the particular fusion candidate corresponds to a valid gene fusion candidate based on the output data; determining, by one or more computers, whether the output data meets a predetermined threshold; and determining that the particular fusion candidate corresponds to a valid gene fusion candidate based on determining that the output data satisfies the predetermined threshold.
9. determining whether the particular fusion candidate corresponds to a valid gene fusion candidate based on the output data; determining, by one or more computers, whether the output data meets a predetermined threshold; and determining that the particular fusion candidate does not correspond to a valid gene fusion candidate based on determining that the output data does not meet the predetermined threshold.
10. 1. A system for identifying one or more gene fusions in a biological sample, comprising: A system comprising one or more computers and one or more storage devices storing instructions operable, when executed by the one or more computers, to cause the one or more computers to perform the method of any one of claims 1 to 9.
11. A non-transitory computer readable medium storing software including instructions executable by one or more computers, the instructions, when so executed, causing the one or more computers to perform the method of any one of claims 1 to 9.
Citation Information
Patent Citations
Deep learning analysis pipeline for next generation sequencing
US10354747B1
Systems and methods for detecting structural variants
US20160019340A1